Subject: [beepwg] [ANN] Turbulence 0.5.2 'Los días raros' release is ready!

From: Francis Brosnan Blazquez <[email-masked]>
Date: Fri, 20 May 2011 10:54:16 +0200

-= Turbulence 0.5.2 =-
                     "Los días raros release"       

Release note
~~~~~~~~~~~~

  Advanced Software Production Line is proud to announce Turbulence
  0.5.2 "Los días raros" release: an open source BEEP application
  server, written on top of Vortex Library 1.1.

  Turbulence is a BEEP server extensible through modules which allows
  to implement server side profiles that are used and combined later
  with other profiles through run time configuration.

  Turbulence is written to make it easy to develop and deploy BEEP
  profiles, allowing developers to provide a convenient configuration
  interface to site administrators and end users.

  Check out the following links to get ready with Turbulence:

    - http://www.aspl.es/turbulence
      [Turbulence homepage]

    - http://www.aspl.es/vortex
      [Vortex Library homepage]
 
    - http://www.sf.net/projects/vortexlibrary
      [Sources and binaries]

    - http://www.beepcore.org
      [BEEP Core community web site]

    - http://www.aspl.es/xml
      [Axl Library, XML 1.0 implementation]
    
The release in short
~~~~~~~~~~~~~~~~~~~~

  Added fully working mod-tls which allows to configure different
  certificates according to serverName provided on BEEP session.

  General updates to SASL infrastructure which now support
  loading databases from different locations or providing a particular
  sasl configuration at the profile path working directory. Also added
  support for MySQL.

  Many bugs were fixed and many regression tests were added. Added lot
  of documentation.

Change notifications
~~~~~~~~~~~~~~~~~~~~
  None.

Changes since the 0.4.1
~~~~~~~~~~~~~~~~~~~~~~~

* [new] Updated tbc-sasl-conf tool to allow loading databases from
  different locations than default. This allows users to implement
  SASL databases inside they working directories.

* [new] Updated tbc-sasl-conf tool to allow changing passwords to
  existing users.

* [fix] Fixed log creation with wrong permissions.

* [fix] Making configure process to create directory used to transfer
  socket connections between process and to set the right permissions
  (/var/lib/turbulence).

* [fix] Updated clean start code to detect if the server was started
  or not, to avoid killing the server when it was working.

* [fix] Committing debian files.

* [fix] Adding some checks to turbulence_msg, error, wrn and error to
  avoid printing NULL values. Updated mod-python module to also check
  values received from Python space (especially None).

* [fix] Updating mod-python to sanitize strings received on
  tbc.{msg,error} API avoiding passing incomplete %s format to C API.

* [fix] Updating mod-python turbulence.Ctx.msg/error/wrn method to
  replace all % by # to avoid printf functions inside C API to handle
  such characters..

* [fix] Updating module versions.

* [new] Updated mod-python to allow administrator to define python
  paths that will be included before loading a python app.  XML path:
  <mod-python/application/location/add-path>

* [fix] Updated mod-python location support to allow keeping the path
  defined to load the python start file after module was completely
  loaded.

* [fix] Updated python.conf.xml example to include add-path
  references.

* [fix] Committing init script.

* [new] Added new fully working mod-tls to support TLS profile inside
  turbulence. The module allows to configure a set of certificates to
  be used according to serverNames provided by connecting peer. Added
  initial module documentation.

* [fix] Making mod-sasl to not return a critical error on profile path
  selected in the case no database is found associated to the
  serverName provided.

* [fix] Improved profile path filtering code to use gathered
  information from turbulence connection manager module to search and
  apply restrictions instead of checking all profiles registered
  globally. Now all operations are done against opened profiles on a
  connection (not channels) which improve operations where 1000
  channels may be opened but only 3 profiles are running.

* [fix] Updated turbulence profile path module to allow application
  layer to install a profile alias that causes to check a certain
  attribute on a connection instead of the profile itself. This is
  useful for TLS profile because once it finishes, there is no TLS
  channel to check.  API added:

   - turbulence_ppath_add_profile_attr_alias

* [new] Updated turbulence expressions module to also record the
  expression that was used to build the object. Now it is possible to
  check this string by using:

   - turbulence_expr_get_expression

* [new] Updated turbulence documentation to explain how to use system
  paths.

* [fix] Updated turbulence process module to check if exists the run
  time directory used to create the child control socket. The module
  creates it in the case it is not available.

* [new] Added new function that allows getting profile stats on a
  particular connection. API added:

   - turbulence_conn_mgr_profiles_stats

* [new] Updated regression test to check new mod-tls added. Added
  additional checks to ensure the module properly interacts with other
  modules, especially mod-sasl (test 22).

* [fix] Updated mod-tls documentation to include examples to create a
  key and a certificate.

* [fix] Adding documentation to explain how to include additional
  paths to mod-python loaded applications.

* [fix] Updating error reporting at mod-tls.

* [fix] Fixed documentation building warning to avoid using
  gnu-extensions.

* [fix] Updating documentation.

* [new] Updates on-bad-signal actions to include support to get a
  backtrace of the current process and dump it into a file. Also added
  support to send this report to a configured mail address. Used new
  smtp client support added. API added:

   - turbulence_support_get_backtrace

  Added test_10-a to check support added.

* [new] Added new configurable API to send SMTP messaged with
  preconfigured SMTP servers, allowing to report notifications
  (backtrace reports). API added:

   - turbulence_support_smtp_send
   - turbulence_support_simple_smtp_send

  Added regression test (test-01-b) to check support added.

* [new] Added internal TurbulenceCtx status to check if we are running
  in the context of the parent process or a child created
  (ctx->is_main_process).

* [fix] Updated turbulence.example.conf to include latest smtp
  notification examples..

* [fix] Updated signal handling to do a SMTP notification for any bad
  signal received instead of only when backtrace option is configured.

* [new] Added documentation to explain how to use SMTP notifications.

* [fix] Adding additional debugging info to console signal handling.

* [new] Updated mod-python to include turbulence.Ctx.broadcast_msg
  API.  Added documentation to explain how to use it.

* [fix] Fixed gcc warning caused by not catching result from write ()
  function.

* [fix] Fixing naming error inside internal attribute to flag
  turbulence is exiting.

* [fix] Making turbulence_conn_mgr_broadcast to check if the
  connection found is defined to skip it.

* [fix] Updated turbulence_conn_mgr module to temporally unlock
  internal mutex when each individual connection shutdown is called
  during the cleanup process (avoid deadlocks with user code that
  calls to conn mgr functions from inside connection close handlers,
  that are activated by shutdown stuff).

* [fix] Fixed turbulence.example.conf to allow regtest pass (test_06).

* [fix] Fixed documentation error inside PyTurbulenceCtx doc.

* [fix] Adding missing file.

* [fix] Adding missing mod-python documentation.

* [fix] more mod-python documentation.

* [fix] Adding more tbc.Ctx documentation.

* [fix] Making mod-sasl Xml backend to reload database if file
  modification stamp differs. Allows reloading database modified by
  command line with a turbulence loaded in memory.

* [new] Added initial code to mod-sasl to support more database
  formats in a dynamic way. Road to add support to mysql.

* [new] Added high level load module function to reuse all this code
  in other places (like mod-sasl to load backend extensions).  Updated
  turbulence-run to use it. API added:

   - turbulence_module_open_and_register

* [fix] More updates to mod-sasl to load extension modules that will
  provide more database backends.

* [new] Adding initial code to implement mod-sasl-mysql.  [fix]
  Updated tbc-mod-gen to produce proper function signature for profile
  path selected handler.

* [fix] More updates to support detecting mysql platform support and
  updated mod-sasl-mysql and common-sasl.[ch] to support registering
  handlers for additional formats.

* [fix] More updates to mod-sasl to support external handlers that
  adds support for more database format. Added new functions to get
  handler registered (to manage the particular format), load database
  and to check if a format is registered. Adding initial auth-db
  example based on mysql.

* [new] General updates to mod-sasl module to allow loading extension
  modules that will provide support for additional backends. Used this
  new support for a mysql backend. Still more work required.

* [fix] Added initial test (test_12b) to check mod-sasl mysql support.

* [fix] More mod-sasl generalizations to allow delegating more
  functions to common functions that may be implemented by external
  handlers. Reorganized users database loading code to share as much
  as possible between each loaded.

* [fix] More updates to support backend handlers for mod-sasl. Updates
  applied to auth code.

* [fix] More updates to mod-mysql-sasl.

* [fix] Added a delay to test_13-a to ensure connection counting check
  is passed now connection close is not blocking (due to vortex
  change).

* [fix] Making turbulence conn manager connection close to check the
  has reference before doing nothing. This is now triggered by
  connection close non-blocking behavior.

* [fix] Updated mod-sasl-mysql to release result on failure and to
  cleanup libmysqlclient-dev on module close.

* [fix] Updated mod-sasl auth-db loading (xml format) to use base dir
  used to load sasl.conf file in the case all loading paths fails.

* [fix] Updated mod-sasl documentation to explain how to use new
  mod-sasl-mysql module. Added extension.modules file example and
  included into the installer.

* [new] Added a simple tool (gen-mod-sasl-pass.py) to mod-sasl code to
  allow creating passwords using the format expected by the module and
  as example of code to allow other apps to produce these passwords.

* [fix] Fixed missing file references at mod-sasl.

* [fix] Adding missing files for turbulence test_12-b.

* [fix] Adding missing file extension.example.modules to mod-sasl
  code.

* [fix] Minor updates due to vortex internal changes. Updated
  regression test to allow selecting which test to run.

* [fix] Making profile selection path (turbulence-ppath) to reduce its
  log when connection is on greetings phase.

* [fix] Making turbulence conn manager to now report as a failure not
  finding profile stats for a connection in the case the connection
  has no channels running on it.

* [new] Updated PyTurbulence to include .wrn method. API added:

   - PyTurbulenceCtx.wrn

* [new] Updated API to include a function to return current temporal
  directory. API added:

  - turbulence_runtime_tmpdir

* [fix] Updated turbulence_support_get_backtrace to check if the
  directory that will hold the backtrace is writable for the current
  user changing the output path to the temporal directory.

* [fix] Making turbulence child process to check connection status
  after notifying profile path select, to avoid registering a broken
  connection.

* [fix] Updates to mod-python module to support connection filtering
  at ctx.broadcast_msg inside Python API. Still more work required.

* [new] Updated PyTurbulence inside mod-python to allow providing a
  filtering function to control connection broadcast
  (tbc.broadcast_msg).

* [fix] Updated turbulence regression test to check this new feature
  (test_13-b).

* [new] Updated mod-sasl-mysql to allow configuring an SQL query which
  is called to log auth operations (with ok and failure status).
  Updated documentation and example to show how to use it.

* [fix] Fixed memory leak at mod-sasl-mysql causing to leak axlError
  reference on query failure.

* [fix] Adding initial code to support coma separated regexp
  list. Added initial regression test. Still more work required.

* [fix] Finished work required to support "or" expressions defined.
  by coma. Added regression test to check support added.

* [new] Updated mod-sasl module to allow mod-sasl-mysql extension to
  check for ip-filter declaration allowing to filter Auth logins
  attempts using an ip expression. Nice!!

* [fix] Fixing documentation. Adding examples for expressions
  supported by turbulence expressions.

* [fix] Fixed wrong handling at child process creation when a profile
  path was selected (because it is too generic) and TLS was then
  activated on that child process. Now the child process detects this
  situation and preconfigures profile path that was previously
  selected.

* [fix] Security: making child control connection with parent to
  remove the file associated as soon as the connection is established.

* [fix] Added internal check to prevent child process creating new
  child processes due to connection created.

* [fix] Restored parent/child control connection to make the bind()
  operation at the child.

* [fix] Adding internal notes to turbulence profile path module to
  explain how profile path works in general and how a profile path is
  selected..

* [fix] Fixed internal profile path bug which was causing due to races
  to not activate the right profile path when they depend on having a
  channel activated. In the case the race is activated, the
  notification about the channel comes after this data is required and
  thus the profile path isn't activated. Checked regression tests to
  ensure they are working.

* [new] Adding new support function to implement microsecond wait. API
  added:

   - turbulence_ctx_wait

* [fix] Added lot of debugging information to profile path activation
  process to help tracking configuration problems.

About Us
~~~~~~~~

  Advanced Software Production Line provides GNU/Linux support and
  consulting services to help organizations to introduce GNU/Linux
  inside its process.

  Contact us, using English or Spanish, to get commercial support
  and/or BEEP based development services.

  You can reach us:

       http://www.aspl.es - [email-masked]

  Enjoy Turbulence!  

--
Francis Brosnan Blázquez           - [email-masked]
Advanced Software Production Line  - http://www.aspl.es
20th may 2011, Madrid (Spain)