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:
- First, you'll need a GPG key. If you've have one create it.
- Send the GPG key to the rBuilder project:
- Browse to http://on.openbravo.com (internal access only).
- Click on Edit my account.
- Click on Upload a package signing key. Paste the output of your public key in ASCII format:
gpg --armor --export KEYID
- Create the a file in $HOME/.rmakerc with this line:
echo "resolveTroves group-os=conary.rpath.com@rpl:2" > $HOME/.rmakerc
- Configure your $HOME/.conaryrc. Example:
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
![]() | 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
Update the names of the appliances
- In on.openbravo.com go to the project.
- In product version, select 2.50.
- In the list of three images that appear, click on the pencil at the right of each appliances and change the maintenance pack version.
- Submit.
Professional appliance packaging
![]() | 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>"
![]() | 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
![]() | 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
- Login to http://on.openbravo.com/rAA/
- Schedule Outbound Mirroring -> (click on) Mirror Now
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
- ant
- group-ops-appliance
- httpd
- sun-jdk
- openssh
- rapa-plugin-ops
- tomcat
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
- mercurial
- mod_jk
- ossp-uuid
- postgresql
- rapa
- tomcat-native
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
- chkconfig-overrides
- distro-release
- firewall-custom
- framebuffer
- home-openbravo
- info-openbravo
- ops-base
- rapa-branding-custom
- updates-config
Packages that are promoted
These are the packages been promoted from rPath's conary
- info-postgres
- info-tomcat
- libpcap
- nmap
- patch
- screen
- unzip
- utempter
- wget
- which
- zip