[Debian Wiki] Update of "BOINC/Development/GitUsage" by SteffenMoeller

Debian Wiki debian-www at lists.debian.org
Mon Apr 12 21:58:44 UTC 2010


Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Debian Wiki" for change notification.

The "BOINC/Development/GitUsage" page has been changed by SteffenMoeller:
http://wiki.debian.org/BOINC/Development/GitUsage?action=diff&rev1=24&rev2=25

  #language en
- This page is work in progress. It should describe the layout of pkg-boinc's Git repositories.
  
-  * master
+ = Packaging BOINC with git =
+ 
+ This page is work in progress. Please contact us if you are keen to receive an update. Such external stimuli often help :)
+ 
+ == Overview ==
+ 
+ The general workflow for using the repository is to first have all upstream code in the collaboratively maintained remote branch 'upstream'. One then checks out the branch one wants to work with for performing the Debian packaging (maybe 'master') and merges all of upstream into it. Git-buildpackage will then perform the building.
+ 
+ == Branches ==
+ 
+ When packaging with git, both the Debian packaging sources ''and'' the upstream sources are stored in the archive. And when, like we are, one is using git-buildpackage, some default names for the different components should be respected to keep the argument list short.
+ 
+  * upstream - the branch holding the upstream sources
+  * master - the branch holding the Debian directory that shall be packaged, one must have checked this one out when invoking git-buildpackage
+ 
+ There are many more branches, which are somewhat historic, representing various attempts to be very current or very feature-rich. The server package never made it into Debian, sadly, mostly because none of us Debian package maintainers needs it and we are too busy to just play with it more.
+ 
   * debian/experimental
   * debian/<codename>
   * debian/backports/<codename>
   * debian/fb/<feature>
-  * upstream
+ 
+ And there is this special branch here
   * pristine-tar
+ which is not really required if one is only interested in the very latest source tree (as we are for boinc) but which plays into our hands once we support many different versions. Let's ignore this for now.
+ 
- Once you have cloned the repository, as describe below, a list of branches available on the server is made visible with
+ After a first checkout of the repository (cloning in git terminology, described below) a list of branches available on the server is made visible with
  
  {{{
- git branch -r}}}
+ git branch -r
- ----
-  The programs that are referred to in the following paragraphs are contained in the Debian packages: [[http://packages.debian.org/git-core|git-core]] [[http://packages.debian.org/git-buildpackage|git-buildpackage]] [[http://packages.debian.org/git-svn|git-svn]] [[http://packages.debian.org/pristine-tar|pristine-tar]]
+ }}}
+ 
+ == Preparation ==
+ 
+ The programs that are referred to in the following paragraphs are contained in the Debian packages: [[http://packages.debian.org/git-core|git-core]] [[http://packages.debian.org/git-buildpackage|git-buildpackage]] [[http://packages.debian.org/pristine-tar|pristine-tar]] [[http://packages.debian.org/git-load-dirs|git-load-dirs]]. Please run
+ {{{
+ apt-get install git-buildpackage pristine-tar git-load-dirs
+ }}}
+ to perform the installation.
+ 
+ And to build the package, also install the following build-dependencies
+ {{{
+ apt-get install dh-buildinfo docbook2x automake1.9 autoconf libssl-dev libcurl4-openssl-dev freeglut3-dev libxmu-dev libxi-dev libwxgtk2.8-dev libsqlite3-dev
+ }}}. This list is not unlikely to be outdated, since this page is not expected to be kept in completel sync. But don't worry, you will receive respective instructions should anything be missing.
  
  <<Anchor(AccessingRepositories)>>
  
  == Accessing repositories ==
  Check out the source of package ''<package>'' with:
- 
  {{{
  git clone ssh://<alioth-login>@git.debian.org/git/pkg-boinc/<package>.git
  cd *boinc*
@@ -29, +58 @@

  where <package> is one of 'boinc', 'boinc-app-seti' and 'kboincspy' as inspectable via http://git.debian.org.
  
  If you do not have an Alioth account, you can check out the repositories read-only:
- 
  {{{
  git clone git://git.debian.org/git/pkg-boinc/<package>.git
  cd *boinc*
@@ -46, +74 @@

  [...]
  }}}
  
+ == Upstream ==
+ 
  However, we are interested in the differences between that "everything we need locally" master and the original upstream version. git is very good at determining such differences since difference between source trees is what source code management systems are all about. We just need another branch, ''upstream'' to keep the original. And when the original updates, then we just have another branch to merge our Debian-packaging-motivated changes against.
+ 
+ The repository may be considered special in a way since the remote upstream branch already offers a complete upstream source tree. For an initial rerun of the packaging, nothing needs to be done. If this is your first contact with this page and/or git, then just proceed directly with the section 'Build Package'.
  
  <<Anchor(RegeneratingTarballs)>>
  
- == Regenerating upstream tarballs ==
+ === Regenerating upstream tarballs ===
  Upstream {{{.orig.tar.gz}}} tarballs can be regenerated with the {{{pristine-tar}}} tool directly from the repositories. To do so create a local {{{pristine-tar}}} branch from the remote {{{origin/pristine-tar}}} branch first:
  
  {{{
@@ -90, +122 @@

  
  <<Anchor(BuildingPackages)>>
  
- == Building packages ==
+ == Build Packages ==
+ 
+ Make sure you are in the master branch, if unsure, run 'git checkout master'. You will notice the directory named 'debian'.
  Building packages with {{{git-buildpackage}}} is now as easy as running:
+ 
+ {{{
+ git buildpackage
+ }}}
+ 
+ Hm. One could improve that just a bit by not requesting signatures
+ 
+ {{{
+ git buildpackage -uc -us
+ }}}
+ 
+ git-buildpackage will learn about the version to pack from the debian/changelog file. And since no .orig.tar.gz file is present, it will be recreated from the upstream branch. Once this was done, the remainder works as with dpkg-buildpackage, with no further involvement of the package maintainer.
+ 
+ === Variants for the invocation of git buildpackage ===
  
  {{{
  git buildpackage --git-pristine-tar



More information about the pkg-boinc-commits mailing list