Differences between revisions 10 and 11
Revision 10 as of 2010-02-24 01:46:40
Size: 1860
Editor: ?RichardDarst
Comment:
Revision 11 as of 2010-02-25 17:27:43
Size: 2344
Editor: ?RichardDarst
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Goal of this workshop: Provide advanced theory useful for people modifying packages or creating them. For people modifying packages, you'll learn many little things which could be important. For creating packages, you'll be much better prepared to read and understand guides at a deeper level than just following the steps. However, this is still not a step-by-step guide in "how to build packages".
Line 32: Line 34:
     * What you have to do to not use packaging tools.
Line 45: Line 48:
 * No helper package

Goal of this workshop: Provide advanced theory useful for people modifying packages or creating them. For people modifying packages, you'll learn many little things which could be important. For creating packages, you'll be much better prepared to read and understand guides at a deeper level than just following the steps. However, this is still not a step-by-step guide in "how to build packages".

Draft outline

If you want to help here, add as much as you think important to this outline. Then, whoever presents it can narrow it down to what they see as practical in the time we have.

  • Binary packages
    • Constructing/unpacking with just ar and tar.
    • dpkg-deb --unpack
    • DEBIAN - metainfo
    • root, containing all files as installed
    • Package files database, no overlaps, dpkg-divert
    • How to build a binary package: make a folder containnig the root and DEBIAN, then dpkg-deb --build
  • Source packages
    • (brief note on package formats, we'll get to this later)
    • Goal here: Make a DEBIAN+root directory, run dpkg-deb --pack on it.
    • debian/rules is a Makefile
    • Interface to building: what the autobuilders/policy require:
      • debian/rules binary (run with fake or real superuser privileges)
      • debian/rules build (run with normal user privileges)
    • Other required files
      • debian/control
      • debian/changelog
      • Not build related: debian/{copyright,readme,news,}
    • Common packaging tools:
      • debhelper
        • Tries to automatically install stuff based on common names
        • Use debian/package.XXX to add extra stuff to install
        • dh vs dh7
        • debian/package.{install, docs, xxx}
        • Adding more stuff to its makefiles
      • cdbs
      • yada
      • What you have to do to not use packaging tools.
    • Other tools: shlibdeps, ... ... ...
  • Package formats
    • 1.0: .orig.tar.gz + diff to add debian/ directory
    • 3.0: 1 or more .orig.tar.(gz|bz2) + .debian.tar.(gz|bz2)
  • Some archive related stuff?
  • Other useful tools?

Example packages:

  • Ultra-minimal package (no packaging system, no complexity in building)
  • Minimal debhelper package (dh and dh7)
  • Debhelper package using a few debhelper features
  • CDBS package
  • yada package
  • No helper package
  • Really complex packages