Introduction
Here's a small howto on how to work with the pkg-iproute Collaborative Maintenance repository on Alioth. This repository is the base for the "iproute", "iproute-dev" and "iproute-doc" packages (src:iproute) found in Debian (and Ubuntu).
Working with pkg-iproute collab-maint repository
Since soon after the wheezy release, the iproute package was renamed to the upstream name iproute2 and was then also given the new versioning scheme (with v3.9.0 being the first upstream version making it into the debian archive). This now also means we can make use of a regular debian/watch file.
Further refinements has been made on how to work with pkg-iproute in git.
checkout and building the repository
- apt-get install devscripts
- debcheckout iproute2
- apt-get build-dep iproute2
- cd iproute2
- git-buildpackage --git-pristine-tar -uc -us
importing a new upstream release
- git-import-orig --pristine-tar --uscan
- git-dch --auto
working with patches
The package uses the standardised "3.0 (quilt)" source format. This means patches get added to ./debian/patches/ in quilt style.
Different people might have different opinion on which way is easiest, but one way of doing work with patches is to import them into git:
- gbp-pq import
make your changes to the branch you just created (and imported the packages patches into), then:
- gbp-pq export
You've now updated ./debian/patches/ (and dropped your temporary patch branch) and should commit your changes!
pulling commits from upstream into ./debian/patches/
If you for example want to pull a single patch from upstream and add it as a patch, here's an example.
Add the upstream repository as a remote:
- git remote add upstream-repo git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git
Download the content:
- git fetch upstream-repo
Import existing patches to patch branch:
- gbp-pq import
Find upstream commit id you want to import:
- git log upstream-repo/master
Import the commit into the patch branch:
git cherry-pick <commit>
Export patches:
- gbp-pq export
Now don't forget to commit your changes in ./debian/patches/ !
Finally, run "git-dch --auto" to update the changelog!
contributing changes to pkg-iproute
Contributions are very welcome! If this is your first time contributing, please email your changes to iproute@packages.debian.org or better yet open a bug report and submit it there!
To export your work as patches:
- git format-patch -o /tmp/ origin/master..
If you feel experienced enough to push stuff directly without review (please avoid!), then you might want to add a "pushUrl" since debcheckout will set origin to the "anonymous checkouts":
git remote set-url --push origin git+ssh://USERNAME@git.debian.org/git/collab-maint/pkg-iproute.git
Making releases
The general procedure for making and uploading a new package version to the debian archive consists of the following steps.
Update the (debian) changelog:
- git-dch --auto
Target distribution in changelog (and make final adjustments):
- dch -r
Commit changelog to repository:
- git commit -m "Update debian/changelog" debian/changelog
Build the package (in a clean environment):
(I use a script which helps me set up cowbuilder with extra tweaks, but something like this should work.)
- pbuilder --update
- git-pbuilder --git-pristine-tar -uc -us
Install and Test the new package:
- dpkg -i /var/cache/pbuilder/result/iproute2*.deb
Sign the updated package:
- debsign /var/cache/pbuilder/results/iproute2*.changes
Upload to the debian archive:
- dput /var/cache/pbuilder/results/iproute2*.changes
Tag the release in git:
- git-buildpackage --git-sign-tags --git-tag-only
- git push
- git push --tags
See also