These are my personal notes on how to handle Debian packaging best locally. Naturally they aren't authoritative, and I may have "missed a memo" - if so, let me know!
- New package
git initgbp import-orig...debmake
- Clean up and edit
- License scan
debmake -k- quick check after updated upstreamscan-copyrightscme update dpkg-copyright- but be careful and see docs.- See https://github.com/dod38fr/config-model/wiki/Updating-debian-copyright-file-with-cme
- See also https://manpages.debian.org/buster/libconfig-model-dpkg-perl/Config::Model::Dpkg::Copyright.3pm.en.html
- Changelog update for release (timestamp, UNRELEASED -> unstable)
gbp dch --releasedch --release --newsfor packages with a NEWS file.
- Building
gbp buildpackage -uc -us- build binary for sid in the cowbuildergbp buildpackage -uc -us --git-dist=buster- build binary for Buster in the cowbuildergbp buildpackage -uc -us --git-dist=buster --git-arch=i386- build binary for Buster 32-bit in the cowbuildergbp buildpackage -uc -us --git-dist=buster-backports -vCURRENT_BUSTER_VERSION- build binary for buster-backports in the cowbuilder - be sure to look up the current version in buster and update the-vargument- against deps: put deps for YOURPACKAGE in
~/extra/pbuilder/deps/YOURPACKAGEand passDEPS=YOURPACKAGEto the builder. (based on https://wiki.debian.org/PbuilderTricks#How_to_include_local_packages_in_the_build )
- Update cowbuilders
git-pbuilder updateupdates the sid cowbuilder (default)env DIST=buster git-pbuilder updateupdates the buster cowbuilderenv DIST=buster ARCH=i386 git-pbuilder updateupdates the buster 32-bit cowbuilderenv DIST=buster-backports git-pbuilder updateupdates the buster-backports cowbuilder- equivalent command but with
git-pbuilder createcreates them, though you may want to export a variable to change where they live. e.g. in Fish,set -U COWBUILDER_BASE /extra/ryan/pbuilder - You can use ubuntu distro release names here too:
- you might need
sudo apt install -t experimental debootstrap,sudo apt install zstd, and installing https://launchpad.net/ubuntu/+source/ubuntu-keyring first. env DIST="impish" git-pbuilder create --mirror http://us.archive.ubuntu.com/ubuntu
- you might need
- Whalebuilder
- Install apt-cacher-ng locally
- Apt-cacher-ng docker image: https://github.com/deployable/docker-apt-cacher-ng
- Easiest usage: make sure that auto-apt-proxy is included in whatever image you use to build.
- If using patched whalebuilder, it has that already, otherwise build whalebuilder image like
whalebuilder create -d ubuntu -r impish --repository http://us.archive.ubuntu.com/ubuntu --hook 'RUN apt-get install -y -qq auto-apt-proxy' cached/impish whalebuilder create -r bullseye --hook 'RUN apt-get install -y -qq auto-apt-proxy' cached/bullseye- Build with something like
whalebuilder build cached/bullseye --network bridge copybara_0.0.0.r2746.g2afcc641-1.dsc
- Signing
debsignin the directory works - key ID was set in config file. (~/.devscripts)- Have to manually specify
debsign -k 1E642ED2F007FDF153B6688E9045010AE5C2B9ED(orF029455EAB70F520FF4A03BD7F534CD56F00321Efor old ID) to sign with work key instead of personal.
- Testing
sadt -b -vwill run the autopkgtests locally, verbosely, and assuming a built source tree (hence-b)
- Submitting
dput mentors package-name.changesfor submitting to https://mentors.debian.netdput ppa:ppanamehere package-name.changesfor submitting to a ppa (only uses source packages)osc dput package-name.dscfor submitting to OBS
- Other important links
- Debian Policy Manual
this one is normative!
- Upgrading checklist for bumping out of date standards versions.
- Debian Developer's Reference
- Guide for Debian Maintainers (successor of deb new maintainer's guide)
- git-buildpackage manual
- Debian Policy Manual
this one is normative!
gbp pseudo-headers/meta tags in git commit messages:
Gbp-Dch: IgnoreGbp-Dch: Short(useful if usinggbp dch --full)Gbp-Dch: Full(useful by default - when--fullnot given )Thanks: msgCloses: bugnumber
This file: 2020-2024 by Rylie Pavlik. CC0 public domain dedication.