Converting Debian packages from dpatch to quilt

A backup copy of written by Romain Francoise

I’ve been using quilt a lot at work recently (in a non-Debian environment), and I’ve been enjoying it very much. So much that I’ve decided to convert my Debian packages to it, from dpatch. Once you’re used to quilt, using dpatch is almost literally painful. :)

There doesn’t seem to be a ready-made guide on how to convert packages from dpatch to quilt, so here’s how to do it painlessly in five easy steps:

    1. Install the quilt package (duh) and make sure that the QUILT_PATCHES variable is set to debian/patches in your shell environment. Or you can set it in your ~/.quiltrc file instead (see this post for other interesting settings).
    2. Delete the build dependency on dpatch from your debian/control file, replacing it with a dependency on quilt (>= 0.40).
    3. In your debian/rules file, include /usr/share/quilt/quilt.make instead of /usr/share/dpatch/dpatch.make.
    4. Convert all your dpatch files by using the following command from your package’s top level:
      for p in $(dpatch list-all); do \
      quilt import -P $p.diff debian/patches/$p.dpatch; \
      quilt push; \
    5. Delete dpatch files:

rm -f debian/patches/00list debian/patches/*.dpatch

And that’s pretty much it! You’ll probably want to clean up the headers of your debian/patches/*.diff files since they’ll still contain some dpatch markers. You can now build your package as usual. To edit a patch, use quilt push, quilt edit, finish with quilt refresh to save the patch.

For more information on how to use quilt, read the tutorial, it’s in /usr/share/doc/quilt. You won’t regret switching!

And a Comment from kartikm:

Better to use: quilt push; quilt header -e; quilt refresh for header editing..


How to compile Debian packages

  • Install needed tools:
    apt-get install devscripts dpkg-dev
  • Install packages needed to compile the package:
    sudo apt-get update
    sudo apt-get build-dep PAKET

    (This only works if the package is available via apt-src entries in sour apt-sources)
  • If the package is available via ‘deb-src’ the sources can be downloaded and compiled directly:
    sudo apt-get update
    fakeroot apt-get -b source PAKET
  • Alternatively you can download the three source files (*.orig.tar.gz, *.diff.gz or *.debian.tar.gz and *.dsc) with ‘dget’:
    dget http://somurl/package.dsc
  • Unpack it:
    dpkg-source -x paket*.dsc
  • Change to the package dir:
    cd paket*
  • Compile it with
    -S only build the source package
    -b only compile a prepared source package
    -sa add orig.tar.gz to the *.dsc file
    -sd not add orig.tar.gz to the *.dsc file
    -us not sign the source
    -uc not sign the chnages
    -b no sources
    -B no architecture-independent
    ‘debuild’ is a wrapper for ‘dpkg-buildpackage’ which could also be called directly

Debian Sources

Unter Debian gibt es die /etc/apt/sources.list ,\\
sie bestimmt wo apt, synaptic, kpackage und andere ihre ihre daten her beziehen.

Mit “apt-get update” aktualisiert man die lokale Datenbank mit allen in der sources.list eingetragenen servern.

Danach kann man dort vorhandene Packete (Programme und Bibliotheken) herunterladen:
# apt-get install kde

oder nach bestimmten sachen suchen
# apt-get search icq

Zum durchsuchen kann man auch online.\\
Alternative Packete:

Nun folgt eine kleine Auswahl nützlicher Quellen:

# scorched3d
#deb unstable main

# torcs –
#deb ./

# some unofficial packages for debian/stable
#deb sarge main contrib non-free restricted

# some unofficial sourcepackages for debian
#deb-src unstable main contrib non-free

# freenx – graphical remote control
#deb sid nx

# mplayer, w32codecs, libdvdcss2 and others
#deb sid main

# wine cvs-snapshots
#deb ./

# kdetv bootsplash-tools ccd2iso – tvtool source only
#deb-src unstable main contrib non-free

# sancho jboss – mlnet client
#deb sid sherpya

# freevo – Python based PVR/DVR
#deb unstable main

# gnome-bluetooth bluez-utils gnome-phone-manager – bluetoothtools
#deb ./

# bluez – Linux Bluetooth Protocol Stack
#deb ./

# loop-aes cdtool aespipe cryptofs-root libaudit-source-perl (kanotix default)
#deb unstable/

# hibernate – suspend to disk script –
#deb ./

# dc-qt valknut and others – Direct Connect client
#deb ./

# opera – Web Browser
#deb unstable non-free

Poll emails with Fetchmail

Install Fetchmail:

apt-get install fetchmail sendmail

Create and edit a ~/.fetchmailrc

poll <> protocol pop3 username <pop login> password <pop pass> is <local username>

Restrict access:

chmod 600 ~/.fetchmailrc

Test the setup with:

fetchmail -v –keep -a

Open crontab with

crontab -e

and add

# m h dom mon dow command
7,17,27,37,47,57 * * * * nice -n 10 /usr/bin/fetchmail > ~/fetchmail.log 2>&1