View source | Discuss this page | Page history | Printable version   

Release Management/Cloud Appliance Updates/2.50



The 2.50 version of the Openbravo ERP professional relies on rPath Linux and other related tools like rBuilder, Conary, rMake and cvc. This document explains the process of updating packages in this version.

General process

The typical workflow consists on a developer modifying a package, which is later committed and cooked in the rBuilder machine. Once the developer is satisfied with the result it's promoted to the QA label, where the quality assurance team tests it. Once it passes the tests it is promoted to the release label, and finally it is mirrored into an update server.

High-level process

Package modification

Firstly, we modify whatever is required in the package(s) we want. As an example, we'll add gzip support to Apache HTTPD. To achieve this, we need to add a file (e.g. mod_deflate.conf) to /etc/httpd/conf.d/ with some specific syntax. So we create the file and add it to the packager's list:

$ cd $HOME/src/ops-2.50-devel/httpd
$ echo "AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript text/javascript" > mod_deflate.conf
$ cvc add mod_deflate.conf

And now it is necessary to specify that we want it to be copied into /etc/httpd/conf.d/. This is done in the recipe.

$ (edit httpd.recipe and append lines)
r.Install('mod_deflate.conf', '%(sysconfdir)s/httpd/conf.d/')

'%(sysconfdir)s' is a macro that corresponds to /etc. See the complete directory macro list for more information. These are used to ease the package's portability.

Commit and cook

The next step is to commit the package to rBuilder and then cook it. We'll use rMake for this task,w hich does this in one step:

$ rmake build httpd.recipe --commit -m "Add gzip support with mod_deflate"

Update external packages

Check here to update the external packages

Cook the group

Next step is to include committed package to the group package, so you need to cook the group package using cvc, for 2.50 it is group-ops-appliance

$ cvc co group-ops-appliance #If you have the package prior, do $ cvc up
$ cd group-ops-appliance
$ cvc cook --allow-flavor-change 'group-ops-appliance[!dom0,domU,!vmware,xen is: x86]' 'group-ops-appliance[!dom0,!domU,!vmware,!xen is: x86]' 'group-ops-appliance[!dom0,!domU,vmware,!xen is: x86]'  'group-ops-appliance[!dom0,domU,!vmware,xen is: x86_64]' 'group-ops-appliance[!dom0,!domU,!vmware,!xen is: x86_64]' 'group-ops-appliance[!dom0,!domU,vmware,!xen is: x86_64]'


The package by default has been cooked in a label called Consider that there are 3 stages, and one label corresponds to every stage:

Now you should take an image of the appliance, and point it to get updates from the rBuilder machine. This is done by modifying the /etc/conary/config.d/on file and by replacing by

Update the appliance and test that the required feature is enabled. In this case we would use Firebug to check this.

Promote to QA

As the package has passed our personal tests, we want QA to test them so that it can be published. So we promote it to the QA label:

$ ops-2.50-promote-qa

This scripts does it all automatically. So now the QA team can be notified about this.

Promote to Release

Once the QA team gives the green light, we can promote them to the Release label:

$ ops-2.50-promote-release

Release Notes

  1. Collect all the fixes done in this release.
  2. Create/Update the release notes for this release.



Now the updates are available in the Release label of the rBuilder machine. But this machine is in a LAN and not accessible from the Internet. So we mirror the contents of this label to a machine called the Update Server. Basically this is a mirror copy of the Release label, just dedicated to serving updates to appliance users.

This step must be performed using the rBuilder's admin interface. So log in in the rBuilder's rAPA interface and go to the Schedule Outbound Mirroring menu item. Then click on Mirror Now. This triggers the mirroring process. Check the logs to make sure that it has compelted succesfully.


Send an e-mail to with OBUA-<yyyy-mm-dd> Openbravo ERP Cloud Appliance 2.50 as the subject and the following body:

Openbravo Update Advisory: <yyyy-mm-dd>
Release Date: <month dd, year> (eg: July 22, 2009)
Product: Openbravo ERP Cloud Appliance 2.50
Type: Maintenance updates/New features
Importance: Low/Medium/High/Critical

* Add xxxx to yyyy.
* Fix issue when xxxx so that now yyyy.
* Change xxxx's behavior so that now yyyy.
* tomcat: Updated to 6.0.26. Added memory leak detection mechanism.

Check for the complete changelog here:

For more information on configuration and maintenance:

Copyright 2008-2011 Openbravo, S.L.U.

Retrieved from ""

This page has been accessed 5,969 times. This page was last modified on 4 January 2011, at 11:10. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.