Added by Jesse Zhang, last edited by Jesse Zhang on Apr 06, 2010  (view change)

Labels:

gnome gnome Delete
Enter labels to add to this page:
Wait Image 
Looking for a label? Just start typing.

GNOME Live Demos, (main page here), is a demo of latest gnome release. It's based on Foresight and this page is about how to build the images.

It's maintained using the rbuild tool. More docs available here. rbuild can be viewed as a frontend to conary/cvc/rmake and it's much simpler than using these tools separately/manually.

Setting up working environment (about passwords)

The 'gnome' product on rBuilder is "externally managed" and you may get a different password for it. The solution for rbuild is not like that for usual conary usage, where you write all the passwords in ~/.conaryrc, like

user                jesse.rpath.org jesse <normal-passwd>
user                gnome.rpath.org jesse <gnome-passwd>
user                foresight.rpath.org jesse <fl-passwd>

This won't work for ~/.rbuildrc since it has a different format. The project-specific rbuildrc must be modified, e.g. ~/projects/gnome-2.30/.rbuild/rbuildrc. Append the password to the file:

user                    jesse <gnome-passwd>
Create new product for each of GNOME's major release

rbuild uses the concept of product. Each gnome release, 2.26, 2.28, 2.30, needs to be a new product.

Product is defined by a product-definition package. product-definition needs to exist before rbuild can work. So it has to be created manually, with cvc.

(The example is based on the 2.30 release).
First check out an older product.

cd <arbitrary-dir-1> # e.g. ~/projects/
rbuild init gnome.rpath.org@gnome:gnome-2.28
cd gnome-2.28/Release/
rbuild checkout product-definition

Note: product-definition is on the Release branch, not on Development as others.

Create the new product's definition.

cd <arbitrary-dir-2> # e.g. /tmp/tmp1/
cvc newpkg product-definition --config 'buildLabel gnome.rpath.org@gnome:gnome-2.30'
cp ~/projects/gnome-2.28/Release/product-definition.* .
cvc add product-definition.* .
cvc ci -m 'new product version for 2.30'

Create the product.

cd ~/projects/
rbuild init gnome.rpath.org@gnome:gnome-2.30

Done.

Bump its base/platform
cd ~/projects/gnome-2.30
rbuild rebase # it's automatically committed; no commit needed
Get packages into the new buildLabel

Packages on the Live Demo is from Foresight (fl:2-devel), so to build the Demo, latest gnome release must have already been built into fl:2-devel.

Besides this, some packages need to be modified, in order to remove the branding changes made by foresight. E.g. the 'Foresight Linux' string in gdm and the Foresight theme.

  • Firstly get the group-gnome-dist group from previous releases.
    cvc promote group-gnome-dist:source=gnome.rpath.org@gnome:gnome-2.28-devel \
    gnome.rpath.org@gnome:gnome-2.28-devel--/gnome.rpath.org@gnome:gnome-2.30-devel
    
    cd ~/projects/gnome-2.30/Development/  # need to be in Development dir/branch
    rbuild checkout group-gnome-dist
    # do any necessary tweak, with cvc
    
  • Then promote any package needed for re-branding. For example
    (Run "conary rq --install-label gnome.rpath.org@gnome:gnome-2.26" to check the old products as an example)
    gdm
    gnome-applets
    gnome-desktop
    gnome-menus
    gnome-panel
    gnome-system-tools
    gnome-themes
    libgnome ???
    live-setup
    splashy-theme
    
  • The 'gnomepackage' recipe needs to be copied too. 'cvc promote' it from fl:2-devel (because we are using release tarballs, not fresh git like gnome-dev kit) as mentioned above. It doesn't need any change.
Build packages.
cd Development/
rbuild build packages

Note: make sure your working space is updated to tip (e.g. when multiple developers are working on the same product), or there might be glitches:

[Fri Feb 26 09:16:34 2010] Creating rMake build job for 4 items
warning: the following edited packages were not in any groups or have not been 
committed yet - building with default flavors: live-setup, splashy-theme
Build groups in Development stage
cd Development/
rbuild build groups
Promote groups to QA, and build images in QA
cd Development/
rbuild promote
cd ../QA/
rbuild build images
Test it

Test it, rebuild, tweak packages...
<TODO: about quick test/build>

The --no-recurse option to 'rbuild build package' may help. The following command will build the specified package only:

rbuild build packages gnome-panel --no-recurse

Otherwise it will build all checked-out packages that are modified (right?).

Promote to Release
cd QA/
rbuild promote
cd Release/
rbuild build images

Publish images, and it's done.

TODO list
  • Need a platform-definition based on fl:2-devel