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

Release Management/Appliance Packaging/2.50


Contents

Introduction

This document explain how to package the community and professional appliances manually, this process is practically automated in the release process.

Conary

Basic Conary setup

You'll need a rPath text development environment (cvc, rMake, Conary). In RM we have an internal machine called tde2-32, which we use for this packaging. Then, make sure you check and follow these steps, to be followed only the first time you do a 2.50 release:

gpg --armor --export KEYID
echo "resolveTroves group-os=conary.rpath.com@rpl:2" > $HOME/.rmakerc
user *.openbravo.com johndoe mypassword
contact johndoe@openbravo.com
name John Doe

signatureKey None
signatureKeyMap ops.openbravo.com@openbravo:ops-2.50-devel 260B15C0

[oberp-2.50-devel]
buildLabel  oberp.openbravo.com@openbravo:oberp-2.50-devel
installLabelPath oberp.openbravo.com@openbravo:oberp-2.50-devel

[ops-2.50-devel]
buildLabel  ops.openbravo.com@openbravo:ops-2.50-devel
installLabelPath ops.openbravo.com@openbravo:ops-2.50-devel

Community appliances

Update external packages

Bulbgraph.png   Note: We never upgrade the packages to major version in the middle of any major release of erp. So remember to update the packages only for minor releases.

Some packages are maintained by rPath and others by us, such as Ant, Sun JDK, Tomcat, Tomcat Native, mod_jk or ossp-uuid. To automatically check for updates of this package, we have a self-made script:

$ oberp-2.50-ckexternal

If you see that any of the packages has a new version available, then perform the following steps to update it:

cd src/oberp-2.50-devel
cvc co <package>
cd <package>
vim <package.recipe> # edit the version string
rmake build <package.recipe>
rmake commit job_id -m "<commit message>"

And also, some packages are shadowed by us, such as distro-release, PostgreSQL, Apache HTTPD or rAPA. To check for new updates of these:

$ oberp-2.50-ckshadows
Bulbgraph.png   Note: that it will give an error when there are no updates, effectively saying that there are none. The ones that do not output anything are the ones that have new versions available. Perform the same steps (except change the version, it's done automatically) as with the external packages to build them using rMake.

Update the names of the appliances

  1. In on.openbravo.com go to the project.
  2. In product version, select 2.50.
  3. In the list of three images that appear, click on the pencil at the right of each appliances and change the maintenance pack version.
  4. Submit.

Professional appliance packaging

Bulbgraph.png   Note: We never upgrade the packages to major version in the middle of any major release of erp. So remember to update the packages only for minor releases.

Basic Conary setup

Firstly make sure you have Conary and rMake correctly configured. While the Community Appliance is 32bit only, the Professional Appliance is conth 32 and 64bits. So make sure you configure Conary in both tde2-32 and tde2-64 before continuing.

Update external packages

Some packages are maintained by rPath and others by us, such as Ant, Sun JDK, Tomcat, Tomcat Native, mod_jk or ossp-uuid. To automatically check for updates of this package, we have a self-made script:

$ ssh tde2-64
$ ops-2.50-ckexternal.sh

If you see that any of the packages has a new version available, then perform the following steps to update it:

cd $HOME/src/ops-2.50-devel
cvc co <package>
cd <package>
vim <package.recipe> # edit the version string
rmake build <package.recipe>
rmake commit [ID] -m "<commit message>"
Bulbgraph.png   Note Please check packages specification for how to build the update packages with flavour

Also, some packages are promoted from conary.rpath.com@rpl:2 to our ops.openbravo.com@openbravo:ops-2.50-devel label, so that appliance users get them from ours. To check for new versions of those:

$ ops-2.50-ckpromotes.sh
Bulbgraph.png   Note that the ops-2.50-ckpromotes already promotes new versions of packages if needed. So no further actions are requires regarding promoted packages.

And also, some packages are shadowed by us, such as distro-release, PostgreSQL, OpenSSH, Apache HTTPD or rAPA. To check for new updates of these:

$ ops-2.50-ckshadows.sh

Note that it will give an error when there are no updates, effectively saying that there are none. The ones that do not output anything are the ones that have new versions available. Perform the same steps as with the external packages to build them using rMake.

Cook the group package to include this update

$ cd $HOME/src/ops-2.50-devel/group-ops-appliance
$ cvc up
$ 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]'

Once this finishes generate a virtual image of the appliance to test it using the rBuilder's web interface.

Note:  Remember to increase the free space in the appliance image before creating it for testing.

Promote to QA and release

Once the personal testing succeeds, promote it to QA and then to the Release label:

$ ops-2.50-promote-qa
$ ops-2.50-promote-release

Sync the updates to rmirror

Generate images

Log into the rBuilder web interface and go to the "Openbravo ERP Professional Subscription SMB Edition" project. Then click on Manage Images and finally on Create a set of images from a product definition. Here select the Release label and click on Submit. This will generate all the images we need, excepting Virtualbox.

Notification

To notify about the latest update, check the template here

Specification for building packages

Packages to be built together for x86 and x86_64

Build the above packages as

$ ssh tde2-64
# Edit the recipe file for the version change
$ cvc commit -m "Update to version xyz"
$ cvc cook '<package_name>[is: x86]' '<package_name>[is: x86_64]'
Example $ cvc cook 'httpd[is: x86]' 'httpd[is: x86_64]'

If executing cvc cook command, you get an error of unresolved build dependencies, you can use this command instead

$ rmake build <package_name>.recipe{x86_64} <package_name>.recipe{x86}

Packages to be build separately for x86 and x86_64

Build the package in any one platform (say x86_64) and commit it, then update the package in other platform (say x86) to build and commit

Packages with no flavor

These are the packages can be build or cooked in any platform

Packages that are promoted

These are the packages been promoted from rPath's conary

Retrieved from "http://wiki.openbravo.com/wiki/Release_Management/Appliance_Packaging/2.50"

This page has been accessed 3,786 times. This page was last modified on 8 September 2010, at 16:54. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.