Debian VoIP Team ================ Contacts -------- We have two different lists. The only "human" list is the maintainers list. The other has the only purpose of holding mails from SVN commits. General discussion mailing list: SVN commits only mailing list (moderated): IRC: #debian-voip on irc.debian.org Subversion repository --------------------- You can browse it only at: http://anonscm.debian.org/viewvc/pkg-voip/ You can find some commit statistics at: http://cia.vc/stats/project/pkg-voip To "checkout" the repository use these commands: * If you want a read-only copy, use: svn co svn://anonscm.alioth.debian.org/svn/pkg-voip/ * If you are a developer with an account at Alioth, you can also use: svn co svn+ssh://${ALIOTH_USERNAME}@svn.debian.org/svn/pkg-voip/ Authorized SSH keys are controlled at https://alioth.debian.org/account/ The repository layout is: * packagename/ - trunk/ - branches/ - tags/ If only one version of the package is available at the time, development must be made at trunk/ dir, copying the dir to tags/'pkg-version' each time a new release is made. When, at some point, the need to have two different versions at the same time arises (for example, if we need a version to be in unstable and a different one to be in experimental), experimental development will be made in trunk/ and if a new unstable package needs to be cooked, copying tag/'latest_version_in_sid' to tag/'latest_version_in_sid'+1 will make the trick. The according Vcs-Svn and Vcs-Browser stanzas in debian/control have the following syntax: Vcs-Svn: svn://anonscm.debian.org/pkg-voip/$PACKAGE/trunk/ Vcs-Browser: http://anonscm.debian.org/viewvc/pkg-voip/$PACKAGE/ where of course $PACKAGE is the name of the SVN path (which should be identical to the source name). Homepage fields should be added to all pkg-voip packages to the Source part unless really useful to have Source and Package point to different URLs. The Homepage field is supported by dpkg-dev (>= 1.14.6). If in doubt, sort the targets in debian/rules like this: 1. headers, variable definitions 2. includes (like dpatch, cdbs etc.) 3. "build/build-arch/build-indep" targets including config.status and autotools/patch 4. clean target (including unpatch) 5. binary target 6. get-orig-source and print-version target 7. .PHONY definitions To speed up the quite laggy ssh connection establishment process feel free to update your ~/.ssh/config with the following: Host svn.debian.org user yourusername ControlPath /tmp/ssh_svn.d.o_control Once added run "ssh -fMN svn.debian.org" to establish the link and make it background. From there on no more password will be required as the ssh connection is held open by the ssh process. (You may find it helpful to add this to your logon scripts) Using svn-buildpackage ~~~~~~~~~~~~~~~~~~~~~~ Packages with an upstream tarball will require you to set the mergeWithUpstream property first (from the package root) so that svn-buildpackage will look for the .orig.tar.gz in the ../tarballs directory. % svn propset mergeWithUpstream 1 debian Please note that this only works for packages which have only the debian/ directory committed. Consequently, you must modify upstream sources indirectly using some patch system like CDBS's simple-patchsys.mk, CDBS + patchsys-quilt or dpatch. To download the *.orig.tar.gz to the ../tarballs directory, most of the pkg-voip packages have a "get-orig-source" target in their debian/rules. Further, there is a "print-version" target showing the upstream version used for the current packaging. You can run the get-orig-source directly from trunk/ or tags/$version/. After you have finished and committed your Debian patches via % svn commit [PACKAGE] as well as copying the orig.tar.gz to ../tarballs/ if necessary, you may build your package with the following commands: % svn-buildpackage -rfakeroot You might want to add --svn-ignore-new to the flags if you do not want to commit before having finished your testbuild. Further, if you use debuild and edited /etc/devscripts.conf to use fakeroot by default, there is no need to add this to svn-buildpackage. svn-buildpackage provides svn-do, which you may find useful: % /usr/share/svn-buildpackage/contrib/svn-do It executes svn-buildpackage --svn-export and enters that directory. After you change the tree as you like, exit the shell; your changes will be copied back to your working tree. Note, however, that it doesn't automatically "svn add" the new files that you may have created (e.g. debian/patches/foo); you'll have to do this manually. You may also want to edit the script and add --svn-ignore to the svn-buildpackage options. Don't commit tarballs/ or build-area/ directory contents to SVN! They would be wasting loads of bandwith and there is no point. What you may find useful is setting these two: ------------------------------------------------- $ cat >> ~/.devscripts <> ~/.svn-buildpackage.conf <.dsc svn+ssh://${ALIOTH_USERNAME}@svn.debian.org/svn/pkg-voip/ Type in your alioth password a few hundred times :-) and your package should be uploaded to the archive. Note you will also need to manually copy the package.orig.tar.gz to your tarballs directory. The -o option is important as this ensures that we 'Only keep modified files under SVN control' Git repositories ---------------- We have a set of git repositories on Alioth, all under `pkg-voip`. See http://wiki.debian.org/Alioth/Git * Browse a repository: http://anonscm.debian.org/gitweb/?p=pkg-voip/foo.git * Read-only clone: `git clone git://anonscm.debian.org/pkg-voip/foo.git` * As a developer: `git+ssh://git.debian.org/git/pkg-voip/foo.git' Authorized SSH keys are controlled at https://alioth.debian.org/account/ Creating a Git Repository ~~~~~~~~~~~~~~~~~~~~~~~~~ Here is what you need to create the repository ''foo'': ------------------------ ssh git.debian.org cd /srv/git.debian.org/git/pkg-voip # Create repo: mkdir foo.git cd foo.git git init --bare # Fix HTTP access: mv hooks/post-receive.sample hooks/post-receive # Notifications: echo /home/groups/pkg-voip/scripts/pkg-voip-post-receive >> hooks/post-receive git config --add hooks.mailinglist pkg-voip-commits@lists.alioth.debian.org echo $project_short_name >description ------------------------ Now push your content into the repository. Run the following from the directory of your git repository: -------------------------- git remote add alioth git+ssh://git.debian.org/git/pkg-voip/foo.git git push alioth master -------------------------- Patch management systems ------------------------ Since all of our packages use mergeWithUpstream (we only keep debian/ in the repository) a patch management system should be used to make changes to upstream files. Most of the packages use '3.0 (quilt)' format. Some still use manual quilt or dpatch. dpatch ~~~~~~ Using dpatch is as easy as putting ------------------------------------------------- include /usr/share/dpatch/dpatch.make ------------------------------------------------- to your debian/rules. This creates three new targets, "patch" and "unpatch" which are phony and patch-stamp that's not phony which can be used as depends upon on configure and clean respectively. For clean you'll need to make sure unpatch is run after the regular cleanup or rerun builds will fail in clean. quilt ~~~~~ Similarly, using quilt is as easy as putting ------------------------------------------------- include /usr/share/quilt/quilt.make ------------------------------------------------- to your debian/rules. This creates three new targets, "patch" and "unpatch" which are phony and patch-stamp that's not phony which can be used as depends upon on configure and clean respectively. For clean you'll need to make sure unpatch is run after the regular cleanup or rerun builds will fail in clean. It is recommended to use these settings so that you can move around on your series with quilt: ------------------------------------------------- cat >> ~/.quiltrc < # e.g: debian/backports/lenny svn-buildpackage -uc -us If all worked well, svn-buildpackage will print out the locations of the binary packages it has generated. They will be built in the directory ../build-area/ . -(snip)- This file --------- This file is a asciidoc-formatted file that resides on the top-level directory of the pkg-voip team's subversion repository. Testing them: asciidoc -n -a toc README and check the generated README.html . Once you updated it and commited the changes, run the following to apply them: ssh wagner.debian.org 'make -C /home/groups/pkg-voip/htdocs clean all' In case any of the above is unclear to you or seems outdated, please drop us a note to the maintainers list. Your Debian pkg-VoIP packaging team