Converting Debian packages from dpatch to quilt

A backup copy of blog.orebokech.com 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; \
      done
    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..

Advertisements

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
    debuild
    Parameters:
    -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.\\
Debian: http://packages.debian.org/\\
Ubuntu: http://packages.ubuntu.com/\\
Alternative Packete: http://www.apt-get.org/search.php

Nun folgt eine kleine Auswahl nützlicher Quellen:

# scorched3d
#deb ftp://progn.org/debian unstable main

# torcs – http://torcs.sourceforge.net/
#deb http://www.falassion.de/unstable/ ./

# some unofficial packages for debian/stable
#deb http://ftp.debian-unofficial.org/debian sarge main contrib non-free restricted

# some unofficial sourcepackages for debian
#deb-src http://mentors.debian.net/debian unstable main contrib non-free

# freenx – graphical remote control
#deb http://debian.tu-bs.de/project/kanotix/unstable/ sid nx

# mplayer, w32codecs, libdvdcss2 and others
#deb ftp://ftp.nerim.net/debian-marillat sid main

# wine cvs-snapshots
#deb http://wine.sourceforge.net/apt/sid/ ./

# kdetv bootsplash-tools ccd2iso – tvtool source only
#deb-src http://mentors.debian.net/debian unstable main contrib non-free

# sancho jboss – mlnet client
#deb http://debian.cli.unipi.it/4sid/ sid sherpya

# freevo – Python based PVR/DVR
#deb http://freevo.sourceforge.net/debian unstable main

# gnome-bluetooth bluez-utils gnome-phone-manager – bluetoothtools
#deb http://people.ubuntu.com/~jdub/warty/ ./

# bluez – Linux Bluetooth Protocol Stack
#deb http://bluez.sourceforge.net/download/debian/ ./

# loop-aes cdtool aespipe cryptofs-root libaudit-source-perl (kanotix default)
#deb http://debian.hinterhof.net/ unstable/

# hibernate – suspend to disk script – http://www.suspend2.net/
#deb http://cp.yi.org/apt/hibernate ./

# dc-qt valknut and others – Direct Connect client
#deb http://debian.xmixahlx.com/packages/unstable/ ./

# opera – Web Browser
#deb http://deb.opera.com/opera/ unstable non-free

Good software for Windows

Open Source

Freeware

Unfree

Good software for Linux

Internet

  • firefox/iceweasel – webbrowser (Gnome)
  • thunderbird/icedove – email-client (Gnome)
  • tvbrowser – Internet EPG (Java)
  • pidgin – Multi-protocol-instant-messenger (Gnome)

Multimedia

  • k3b – burning (KDE)
  • digikam – Photomanager (KDE)
  • amarok – complex audio player (version 1.x is better than 2.x) (KDE)
  • minirok – simple audio player (KDE)

Files

  • krusader – Total Commander like file-browser (KDE)
  • kid3 – THE ID3-tag-editor (KDE)

System

  • konsole – x-terminal with tabs (KDE)
  • gparted – partitioning tool (Gnome)
  • htop – Process monitor (CLI)

Video Tools

Links

Free Multiplatform Games

A personal selection of games for Linux and Windows

First Person Shooter

Quake3 based
Quake2 based
Other shooter

Strategy games

Other games

Poll emails with Fetchmail

Install Fetchmail:

apt-get install fetchmail sendmail

Create and edit a ~/.fetchmailrc

poll <pop.server.de> 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