Differences between revisions 9 and 11 (spanning 2 versions)
Revision 9 as of 2012-05-18 08:55:42
Size: 2932
Comment:
Revision 11 as of 2012-07-31 10:14:39
Size: 3961
Editor: ?MartinSteigerwald
Comment: documented experimental branches for packaging OpenNebula 3.6
Deletions are marked like this. Additions are marked like this.
Line 56: Line 56:
== Experimental branches ==
We've created new ''experimental'' and ''upstream-experimental'' branches for packaging new versions of OpenNebula that cannot go to ''unstable'' yet – currently for packaging OpenNebula 3.6 during Wheezy freeze:

  * ''upstream-experimental'' contains the upstream tarball contents.
  * ''experimental'' is debian packaging merged with upstream-experimental. commit here to contribute to packaging new OpenNebula version
  * Both the regular branches and the experimental branches use the branch ''pristine-tar'' as pristine-tar picks up things by commit name

Within the ''experimental'' branch gbp is configured to use these experimental branches:

{{{
ms@mango:~/[…]/opennebula> cat debian/gbp.conf
[DEFAULT]
# use pristine-tar:
pristine-tar = True
# use experimental branches for debian packaging and upstream
# remove this after these are merged back into regular branches
upstream-branch = upstream-experimental
debian-branch = experimental
}}}

Line 70: Line 91:

----
CategoryGit

Git Workflow of the pkg-opennebula OpenNebula Team

See also OpenNebula

Our repositories

Pre-requisites

  • apt-get install git-buildpackage pristine-tar devscripts
  • apt-get build-dep opennebula

Quick "overview" of build process

git clone git+ssh://git.debian.org/git/pkg-opennebula/opennebula.git
cd opennebula/
git-buildpackage --git-builder="debuild -uc -us"

Cloning repository for local work

git clone ssh://<alioth-login>@git.debian.org/git/pkg-opennebula/opennebula.git

Content of Git repository : branches / tags

To be more precise, here is content of each GIT branch :

  • remotes/origin/upstream is just in "clean" import of opennebula-2.0.1.tar.gz (minus some *.jar files) is described in debian/README.source
  • remotes/origin/pristine-tar store some delta files which are applied by git-buildpackage to always get the same tarball (same md5 + sha256 sums) from GIT branch.
  • remotes/origin/master is our working branch = upstream + debian/ directory. You can freely commit to this one.

So during each build, git-buildpackage extract remotes/origin/upstream to opennebula_2.0.1.orig and apply pristine-tar to get the same .tar.gz. Then it call the x-builder of your choice : debuild or pbuilder/sbuild (for clean chroot build).

Workflow for local modifications

Backporting

We've created a new squeeze branch off of master and make the necessary changes there (like changing Build-Depends).

  • We should create a squeeze chroot for clean build:

    DIST=squeeze git-pbuilder create 
  • Checkout squeeze branch and made necessary changes:

    git checkout squeeze
    vi debian/control
    dch --bpo -a 
  • Then to build for in a squeeze chroot :

    git-buildpackage --git-pbuilder --git-dist=squeeze --git-debian-branch=squeeze 
  • For generics guidelines: http://www.eyrie.org/~eagle/notes/debian/git.html "Backporting"

Experimental branches

We've created new experimental and upstream-experimental branches for packaging new versions of OpenNebula that cannot go to unstable yet – currently for packaging OpenNebula 3.6 during Wheezy freeze:

  • upstream-experimental contains the upstream tarball contents.

  • experimental is debian packaging merged with upstream-experimental. commit here to contribute to packaging new OpenNebula version

  • Both the regular branches and the experimental branches use the branch pristine-tar as pristine-tar picks up things by commit name

Within the experimental branch gbp is configured to use these experimental branches:

ms@mango:~/[…]/opennebula> cat debian/gbp.conf 
[DEFAULT]
# use pristine-tar:
pristine-tar = True
# use experimental branches for debian packaging and upstream
# remove this after these are merged back into regular branches
upstream-branch = upstream-experimental
debian-branch = experimental

Importing new upstream release

For each new "upstream" release, I just use git-import-dsc to :

  • import tarball in upstream branch
  • import binary-delta-diff from pristine-tar in pristine-tar branch
  • merge back changes to master branch

Options for this "git-import-orig" is described in debian/README.source of opennebula. This is automated by :

debian/rules get-orig-source
  • download upstream tarball with uscan using debian/watch information
  • launch debian/orig-tar.sh
  • ... which call git-import-orig with the right options


CategoryGit