This document aims at explaining how you can get, build and install your Sourceforge packages from the CVS repository.
In order to have any use for this document, you'll need the following items ready:
This paragraph is about getting the current state of the package from the CVS repository.
First you need to login on the CVS server with the following command:
cvs -d:pserver:firstname.lastname@example.org:/cvsroot/debian-sf login
The password is the empty string, just press Enter when asked.
Note: this operation is only needed once.
To get a snapshot of the current state of the CVS repository on the 2.5 development branch, issue the following command:
cvs -z3 -d:pserver:email@example.com:/cvsroot/debian-sf co -d sourceforge-2.5 -r Branch_2_5 sourceforge
This should have created a directory named sourceforge-2.5, in which you have a "working copy" of the current state of the 2.5 branch.
To get a snapshot of the current state of the CVS repository on the trunk (which currently holds the 2.6 branch), issue the following command:
cvs -z3 -d:pserver:firstname.lastname@example.org:/cvsroot/debian-sf co -d sourceforge-2.6 sourceforge
This should have created a directory named sourceforge-2.6, in which you have a "working copy" of the current state of the 2.6 branch.
When you want to bring your local copy up-to-date with the modifications that were made in the CVS repository, place yourself in your working copy directory and issue the following command:
cvs update -d
This will fetch the changes that were made in the branch corresponding to your current working copy, and apply these changes to your copy, thus bringing it up-to-date with the latest changes.
To build the packages, place yourself in your working copy directory (sourceforge-2.5 or sourceforge-2.6) and issue the following command:
debuild -us -uc
This will build the package(s) in the parent directory. You'll see one *.deb file (or several if you're with 2.6), a *.changes file, and a few others that you can safely ignore for now.
You might want to clean up your source directory afterwards, so that you don't have temporary files left over (which would be a nuisance if/when you start interfering with CVS later). To do so:
fakeroot ./debian/rules clean
The simplest way to install a package is to do it by hand with dpkg. If you are tracking the 2.5 branch, you'll only get one *.deb file. To install it, just run:
dpkg -i sourceforge_2.5-33_all.deb
(Replace the version number adequately.)
If you're on the 2.6 branch, you'll get a whole bunch of *.deb files. You'll have to un dpkg -i on each of them in the appropriate order. What this order actually is can vary, but if you start with sourceforge-common, then go on with sourceforge-db-postgresql and sourceforge-ldap-openldap, you should be able to install the rest in pretty much any order afterwards. If not, well, dpkg will be sure to tell you.
There is another way of installing the packages. It is a bit more complex to set up, but it prevents the hassle of installing the packages by hand with dpkg: it relies on apt-get to do the bring job of installing the packages and the dependencies in the appropriate order. What you do is put your package(s) in a directory that apt-get can handle.
Making an apt-able directory has long been a hassle, but Colin Walters came up with a very nice program called mini-dinstall, which takes care of lots of boring details. Basically, it scans an incoming/ directory for new packages, and installs them in the appropriate drectories, while generating the Packages and Sources files that apt-get uses.
And since putting files into that incoming/ directory could also be boring, support for a local apt repository has been added to the dput program.
Since both mini-dinstall and dput are both rather new and rather customisable, you should read their documentation to see if they fit your needs, and to check how to use them. It's not difficult, but it might sound too much of a hassle if you just want to install the latest snapshot package.
Once you have installed them and set them up, you can use apt-get to install and upgrade your Sourceforge packages:
apt-get install sourceforge
And it should take care of installing the dependencies and the packages in the appropriate order.
Both, until you decide which one you prefer. I personally prefer #2, but I did spend an hour or two fiddling with mini-dinstall and dput (and sending patches).
Well, now that you know how to build and install your own packages from CVS, feel free to send us patches fixing bugs. Please do so by issuing the following command from the working copy directory:
cvs diff -uN
...and sending us the result, either in the Savannah patch tracker or on the debian-sf-devel mailing-list (details are available on the Savannah website). Don't forget to bring your working copy up-to-date (see above) before you try any diff.
If/when you send patches, please try to keep them as small and self-contained as possible (fix one bug at a time), don't forget to add an entry in the debian/changelog file (if you wish to remain anonymous, just don't include your name), and keep in mind that you're not allowed to break things if that can be avoided :-)