Building Debian Dependencies

=Building Debian Dependencies=
This is a quick introduction to building packages for new Koha dependencies, with references to the officious documentation that tells you more detail.
There are things you should know about the guidelines for when dependencies can be added. Read these now.
==Creating a new package==
Get started by following the documentation here:
http://pkg-perl.alioth.debian.org/git.html#starting_a_new_package
Don't forget to file an ITP (Intent To Package) to start with, using reportbug.
==Working with an existing package==
The package may not have to be in Debian itself for this, just that it's in the pkg-perl git repo, meaning that someone has made a start on it.
Follow the documentation here:
http://pkg-perl.alioth.debian.org/git.html#working_with_existing_packages
This assumes that you have an account on alioth and are in the pkg-perl group. If you don't have an account then you should get one. If you don't want to get one, then do a git clone using a URL of the form:
 git clone git://git.debian.org/git/pkg-perl/packages/libthe-module-perl.git
If you have an alioth account, then you can commit directly. If you don't, feel free to send patches to the release manager, but this will take longer and you will start to owe them signoffs on their stuff.
==Building packages==
First, set up lintian to be as annoying as possible:
 $ cat ~/.lintianrc 
 display-info=yes
 info=yes
 pedantic=yes
 show-overrides=yes
 color=auto
 display-experimental=yes
 LINTIAN_PROFILE=pkg-perl
then run
 debuild -us -uc
to create the package. Lintian will probably yell at you for many transgressions. Go fix them.
When you think everything is happy, do:
 pdebuild
as this will highlight any dependency errors that were missed, sometimes the module metadata doesn't contain everything. Your pbuilder environment should be running Debian Wheezy, as that's the minimum that Koha supports.
==Making packages ready for Debian==
quilt is what is used for patching software to suit Debian better. There is a guide to its use here:
http://pkg-perl.alioth.debian.org/howto/quilt.html
Make sure that debian/{control, copyright, changelog} are as correct as you can make them.
Read this email thread — including the followups — for people's notes on traps and processes.
If you think everything is good, and you have an account on alioth, then you can set the distribution name in the changelog to unstable and the nice pkg-perl people will review it and find the bits you forgot to check, then you'll fix it and in a day or two it'll be uploaded.
==Putting packages into the Koha repo==
This is needed for Koha users to get to it so that not everyone has to run Debian Sid. At the moment, only the package maintainer is able to add things to this repo. If it becomes necessary, we can build things with a queue and what not.
==TODOs==
Things I'd like to do if I had all the time in the world:
* have our own git repo that tracks our packages with their various special pocket names
* copy the dpt sub-commands to work with our own repo
* automate creation of the branches with the pockets we need
* automate building of packages and uploading to the repo
Category:Development
Category:Documentation
Category:Debian_Packages