PBuilder Usage

Jurjen Bokma

July 2009


PBuilder is a program to create chroot jails to build Debian packages in.

Procedure 57.  Debianization and first packaging

  1.     sudo apt-get install pbuilder
      

  2. sudo pbuilder create --debootstrapopts --variant=buildd

  3. mv hello-world-1.0.tar.gz ~/packaging
    cd !$
    tar zxvf hello-world-1.0.tar.gz
    cd hello-world-1.0.tar.gz
    export DEBEMAIL=j.bokma@rug.nl
    export DEBFULLNAME="Jurjen Bokma"
    dh_make --createorig
    Type of package: single binary, multiple binary, library, kernel module or cdbs?
    [s/m/l/k/b] s

    Maintainer name : Jurjen Bokma
    Email-Address   : j.bokma@rug.nl
    Date            : Sun, 12 Jul 2009 16:30:07 +0200
    Package Name    : hello-world
    Version         : 1.0
    License         : blank
    Using dpatch    : no
    Type of Package : Single
    Hit <enter> to confirm:
    Done. Please edit the files in the debian/ subdirectory now. hello-world
    uses a configure script, so you probably don't have to edit the Makefiles.

    Now edit debian/{changelog,control,copyright,manpage.xml}, and delete the superfluous:

    rm debian/*.ex debian/*.EX debian/README.Debian

  4. cp /etc/pbuilderrc ~/.pbuilderrc
    pdebuild --buildresult ..
    <lengthy output snipped>
    dpkg --info ../hello-world_1.0-1_i386.deb
    new debian package, version 2.0.
    size 3322 bytes: control archive= 570 bytes.
        403 bytes,    12 lines      control
        203 bytes,     3 lines      md5sums
    Package: hello-world
    Version: 1.0-1
    Architecture: i386
    Maintainer: Jurjen Bokma <j.bokma@rug.nl>
    Installed-Size: 48
    Depends: libc6 (>= 2.1.3), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.2.1)
    Section: unknown
    Priority: extra
    Homepage: <insert the upstream URL, if relevant>
    Description: Trivial HelloWorld program in C++
     HelloWorld will display the text "Hello, world!"
     on stdout. The newline is included.

Procedure 58.  Upgrading a package from an upstream upgrade (simple case)
  1. cp hello-world-1.1.tar.gz ~/packaging

  2. cd hello-world-1.0/
    uupdate -u ../hello-world-1.1.tar.gz
    New Release will be 1.1-0ubuntu1.
    Symlinking to pristine source from hello-world_1.1.orig.tar.gz...
    -- Untarring the new sourcecode archive ../hello-world-1.1.tar.gz
    Success!  The diffs from version 1.0-1 worked fine.
    Remember: Your current directory is the OLD sourcearchive!
    Do a "cd ../hello-world-1.1" to see the new package
    cd ../hello-world-1.1

  3. dch -v 1.1-1

    And describe all changes in the changelog

  4. pdebuild --buildresult ..
    <Huge output snipped once again>