🦊

Deb Packaging

Format defined between the policy manual and the dh suite of tools.

Best Practices

See hello for a best practice example.

initializing a quick and hacky launchpad package

# mkdir <pkg-name>-<version>
cd foo-0.1
vim foo.c Makefile
dh_make --createorig
# edit at least these
vim debian/changelog debian/control
debuild -i -us -uc -b
debsign ../foo_0.1-1_amd64.changes 
# upload
dput ppa:eslerm/foopackages ../foo_0.1-1_amd64.changes 

ubuntu-archive-tools

ubuntu-archive-tools contains critical tools for Launchpad management.

git clone https://git.launchpad.net/ubuntu-archive-tools

copy-package

For moving between PPAs.

./copy-package --to ppa:eslerm/ubuntu/asahi-testing --suite noble --to-suite mantic libdrm

--include-binaries fits certain situations.

--suite is the pocket. PPAs can have different pockets. (--dry-run does not catch this)

create orig tarball from git commit

git tag upstream/24.0_pre20240228 eebfe8416a6266bc1662f2d99485b2dce87a34f5
gbp export-orig
ls ../mesa_24.0~pre20240228.orig.tar.gz

get a debian source package

pull-debian-source -D debian xz-utils 5.6.1-1

Or check snapshot.debian.org.

compare package versions

$ dpkg --compare-versions 1.2.3 lt 1.2.4
$ echo $?
0