====== Debian-Paketierung für die Arbeitsgruppe ====== Für das Entwickeln von Debian Paketen, sollte man sich auf einem Debian stable System befinden. Man braucht folgende Pakete eigentlich immer: * build-essential * devscripts * lintian * quilt * git * pbuilder ====== Debian New Maintainer's Guide ====== Das Paketieren für Debian (und abgeleitete Distributionen) wird sehr gut im [[https://www.debian.org/doc/manuals/maint-guide/|Debian New Maintainers' Guide]] erklärt. Diesen bitte als Lerngrundlage verwenden. ======= Debian Packaging Tweaks ====== Die folgenden Zeilen sind nach Anpassung an die eigene Person im eigenen HOME der Datei ''~/.bashrc'' hinzufügen (am Ende der standardmäßigen ''.bashrc''): export DEBFULLNAME="Firstname Lastname" export DEBUSER="" export EMAIL="" export DEBEMAIL=${EMAIL} export DEBSIGN_KEYID="" alias dquilt="quilt --quiltrc=${HOME}/.quiltrc-dpkg" alias lintian='lintian -iIE --pedantic --show-overrides --color auto' alias debcommit='{ dquilt pop -a || [ $? = 2 ]; } && debcommit' Die Datei ''~/.devscripts'' ist zu erstellen: DEBCHANGE_RELEASE_HEURISTIC=changelog DEBCHANGE_MULTIMAINT_MERGE=yes DEBCHANGE_MAINTTRAILER=yes Und folgender Inhalt gehört in ''~/.quiltrc-dpkg'': d=. ; while [ ! -d $d/debian -a `readlink -e $d` != / ]; do d=$d/..; done if [ -d "$d/debian" ] && [ -z "$QUILT_PATCHES" ]; then # if in Debian packaging tree with unset $QUILT_PATCHES QUILT_PATCHES="debian/patches" QUILT_PATCH_OPTS="--reject-format=unified" QUILT_DIFF_ARGS="-p ab --no-timestamps --no-index --color=auto" QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index" QUILT_COLORS="diff_hdr=1;32:diff_add=1;34:diff_rem=1;31:diff_hunk=1;33:diff_ctx=35:diff_cctx=33" if ! [ -d $d/debian/patches ]; then mkdir $d/debian/patches; fi fi Debian-Paketierung findet meist unter Verwendung von Git statt. Hier ist der Git Prompt hilfreich (vergleiche [[https://www-ps.informatik.uni-kiel.de/dokuwiki/doku.php?id=user:git#git_prompt|hier]]). ====== Beispiel: Paket psifi-PAKET für buster / amd64 anpassen ====== - In /local/USER/Debuild git clone ssh:%%//%%git@git.ps.informatik.uni-kiel.de:55055/packaging/psifi-PAKET.git - Änderungen im git Verzeichnis vornehmen - Mit dch Editor debian/changes anpassen. dch -r zum final Release verwenden. - Im git Verzeichnis Source Paket bauen mit debuild -uc -us -S -Zxz -d - git add -A; git commit -m "upload to production (20YY.MM.DD.X+deb10)"; git push - git tag 20YY.MM.DD.X+deb10 ; git push origin --tags - Binary Paket bauen: sudo pbuilder --build --distribution buster --architecture amd64 --basetgz /var/cache/pbuilder/buster-amd64-base.tgz /local/USER/Debuild/psifi-PAKET_20YY.MM.DD.X+deb10.dsc - Das *_amd64.changes File des Binary Pakets mit GPG signieren: debsign -k /var/cache/pbuilder/result/psifi-PAKET_2020.MM.DD.X+deb10_amd64.changes - In das Paket Repo hochladen: dupload -t psifi-debian-production /var/cache/pbuilder/result/psifi-PAKET_20YY.MM.DD.X+deb10_amd64.changes