Differences between revisions 17 and 18
Revision 17 as of 2013-08-12 17:17:08
Size: 6236
Editor: ?georgesk
Revision 18 as of 2013-08-12 17:21:58
Size: 6366
Editor: ?georgesk
Deletions are marked like this. Additions are marked like this.
Line 47: Line 47:
=== Paths ===
Line 53: Line 54:
=== Getting the team's work into my computer ===
Line 69: Line 70:

=== Configurations ===
Line 75: Line 79:

=== Working on the package jmol ===

Translation(s): English - Italiano

(!) ?Discussion

svn-buildpackage is a tool which helps in maintainance of packages with Subversion.

Group maintainance HowTo


  • storing layout information can be done in subversion properties of the debian/ directory
  • store the following information in the layout information (via svn-bp:* properties of the debian/ directory)
    • upstream tarball - layout information origUrl (this will allow a workflow like the one described in Games/Development/BuildProcess)

    • set all the URL fields:
      • trunkUrl
      • tagsUrl (use URI for authenticated users)
      • branchesUrl
  • specify layout information by using relative paths


origUrl specification:

eddy@bounty ~/usr/src/games/trunk/wormux $ svn pl debian/ | grep svn-bp
eddy@bounty ~/usr/src/games/trunk/wormux $ svn pg svn-bp:origUrl debian/

Relative information:


Introduction for a beginner, with debichem

These lines have been written when I began to join the team Debichem.


Everyone has particular habits: I used to manage all of my packages in directories like ${HOME}/developpement/$PACKAGE

For example the package "units-filter" was managed inside ${HOME}/developpement/units-filter, and this directory contained files like ${HOME}/developpement/units-filter/units-filter_3.5.orig.tar.gz

From now on, the particular directory ${HOME}/developpement will be named ${devroot}.

Getting the team's work into my computer

  • As svn-buildpackage makes sense with a team, you must first joint a the team which is using this tool, and have an account in its SVN repository
  • chechout the tree which provides the collaborative data:

cd ${devroot}
svn checkout svn+ssh://svn://svn.debian.org/blends/projects/debichem/trunk/debichem
  • this creates a directory ${devroot}/debichem with all of the team's work, which will be tracked by SVN.

  • the data in this directory can be refreshed by the following command:

cd ${devroot}/debichem
svn update


  • I created a configuration file ~/.svn-buildpackage.conf containing those lines:

  • Just beware: ${devroot} must be changed by the effective path to the package directories; $PACKAGE is written litterally.

Working on the package jmol

  • I will work on the package jmol. My first step is to retreive its last upstream version. So I cd to the jmol subdirectory of the team-maintained tree, and I use uscan to get the last version:

cd ${destdir}/debichem/unstable/jmol
mkdir ${destdir}/jmol
uscan --force-download --destdir ${destdir}/jmol
  • As a result, I wait some time before I see that feedback:

jmol: Version (13.2.3) available on remote site:
  (local version is 13.0.15+dfsg, mangled local version number 13.0.15)
jmol: Successfully downloaded updated package Jmol-13.2.3-full.tar.gz
    and symlinked jmol_13.2.3.orig.tar.gz to it
... [ many other lines ] ...
+ exit 0
  • the file ${destdir}/jmol/jmol_13.2.3+dfsg.orig.tar.gz is created successfully.

here are the next hints from Daniel Leidert

- To do some patching or check compilation you can do `svn-do`. In the
  resulting path you can create or modify patches. Do `exit` and all changes
  will be copied to the subversion tree (including changed or added patch
  files). Do `exit 1` or similar and all changes will be dropped.


Just tag, no dependency checks

svn-buildpackage --svn-tag-only -d

Obtaining the unpacked source package without building

svn-buildpackage -d --svn-export


svn-buildpackage -d --svn-builder echo

Modifing easily packages which are partially imported (sources which have the mergeWithUpstream option set)

All of the following commands use the svn-do wrapper script which is present in /usr/bin/svn-do (in older versions svn-do was in /usr/share/svn-buildpackage/contrib/svn-do)

# clean the tree (useful if this requires the full source tree)
% svn-do debclean
I: Exporting source tree via svn-buildpackage...
I: Running command: debclean
I: Copying back the debian/ tree...
`debian/control' ->

# use quilt to refresh a patch
% QUILT_PATCHES=debian/patches svn-do \
     sh -c "quilt push 002_static-linking-dont-build-perf.patch; quilt refresh"
I: Copying back the debian/ tree...
`debian/patches/002_static-linking-dont-build-perf.patch' ->

# start a source editing session and decide later not to copy back the
# debian/ tree
% svn-do $SHELL
I: Running command: /bin/zsh
% exit 1
E: command exited with 1; not copying back the debian/ tree.

# edit a patch in a CDBS' simple-patchsys based package
% svn-do cdbs-edit-patch 02_pmount.patch


svn-buildpackage is currently maintained as part of the collab-maint repository. To join the development team, check it out, join the channel #debian-svn-bp on OFTC, subscribe to PTS on http://packages.qa.debian.org/s/svn-buildpackage.html. There are some potential improvements that could be made.

Obtaining the current svn-buildpackage can be done via the following command:

debcheckout svn-buildpackage

or, if you want to use authorized access (requires an account on Alioth):

debcheckout -a svn-buildpackage