Unofficial package tips
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
here are some of my tips when packaging unofficial software as .debs.
Perhaps its useful for someone :)
Packaging tips for unofficial packages
======================================
Maintainer email
- ----------------
You can set the DEBEMAIL environment variable if you like to have a
different email address for Debian packaging. Example:
export DEBEMAIL=joe@joesdomain.org
Native Package or not?
- ----------------------
Short answer: don't make a native package. Be sure to provide a
.orig.tar.gz before calling $(DEBUILD).
a) Download the original mypackage-1.0.tar.gz
b) Rename it to an original upstream file (notice the underscore
instead of a dash):
mv mypackage-1.0.tar.gz mypackage_1.0.orig.tar.gz
c) Untar it and run dh_make, answer its questions:
tar xzvf mypackage_1.0.orig.tar.gz
cd mypackage-1.0 && dh_make; cd ..
d) As we have already the orig.tar.gz, delete the .orig tree:
rm -rf mypackage-1.0.orig
e) edit mypackage-1.0/debian/* and build your debian package
(see below for the $(DEBUILD) variable):
cd mypackage-1.0 && $(DEBUILD)
Package version
- ---------------
The Debian package version number is parsed from the top entry of
debian/changelog, eg. "mypackage (1.1-0.1) unstable; urgency=low".
Notice here the "-0.1", this is the debian internal number, and it must
be lower than "-1" for unofficial packages. Subsequent releases must
have "-0.2", "-0.3", etc.
An official package will have "1.1-1".
If there is already an official package eg with version "1.1-4", then
use "1.1-4.1", "1.1-4.2", ...
Package description
- -------------------
If you already maintain official Debian packages, your package description
can note that this is not an official one. I usually add these two lines
in front of the package description to remind users that even if this
package is signed by my GPG key, its not an official one:
File debian/control:
Description: this is mypackage
*** Unofficial package from joe@joesdomain.org ***
.
<description follows>
Bug reports
- -----------
The standard tool for reporting bugs is "reportbug".
Your package should have:
File /usr/share/bug/mypackage/control:
Send-To: joe@joesdomain.org
See /usr/share/doc/reportbug/README.developers for more info.
Building the package
- --------------------
You should sign your packages with your GPG key. Run "gpg --gen-key"
to generate one.
You can also use my patch at http://bugs.debian.org/178456 to add --linda
option to debuild.
Here is the debuild line I am using right now (you have to replace
32EC6F3E with your own GPG key id):
File Makefile:
# run debuild, log everything to $@-build.log
define DEBUILD
(debuild -pgpg -sgpg -k32EC6F3E -tc -L -i 2>/dev/stdout && echo "built ok" > ../$@) | tee ../$@-build.log
endef
mypackage:
cd mypackage-1.1 && $(DEBUILD)
Making it apt-get'able
- ----------------------
a) Configure dput:
File /home/joe/.dput.cf:
[local]
fqdn = localhost
incoming = /home/joe/myarchive
allow_unsigned_uploads = 0
b) Copy all mypackage files into your archive:
dput local mypackage_1.1-0.1.changes
c) Change into the myarchive directory and call:
apt-ftparchive sources . | gzip -9 > Sources.gz
apt-ftparchive packages . | gzip -9 > Packages.gz
d) As root, add the deb and deb-src line:
File /etc/apt/sources.list:
# ... more deb lines above
deb file:/home/joe/myarchive ./
deb-src file:/home/joe/myarchive ./
e) make it available for others by putting myarchive on a webserver.
Then others can have
File /etc/apt/sources.list:
# my http repository
deb http://www.joesdomain.org/~joe/myarchive ./
deb-src http://www.joesdomain.org/~joe/myarchive ./
Cheers, Bastian
- --
Bastian Kleineidam
Atombombe · Plutonium · Fat Man · Do it Yourself · Tim Taylor
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
iD8DBQE+X4FbeBwlBDLsbz4RAml6AKDFvK2jPyZvGR0ceE30MtlQ7t++DwCbBTSU
IDTwzU66KSeQD1b2MjNg+HY=
=qYHC
-----END PGP SIGNATURE-----
Reply to: