====== Debian Paket erstellen ======
===== Simpel =====
Einfachste Variante, einfach zusammenbauen aufgrund der Ordnerstruktur im Projektverzeichnis:
- Ordner für Projekt anlegen (Z.B. ''example'')
- Ordnerstruktur anlegen der Projektordner entspricht dabei ''/''
- ''debian''-Ordner anlegen
- ''control''-Datei anlegen
- Ordnerstruktur mit gewünschten Dateien befüllen
- Rechte der Dateien setzen bzw. überprüfen
- in dem dem Projektordner übergeordneten Verzeichnis
dpkg -b ./example example.deb
Weitere Werkzeuge
* ''dh-make'' zum "Debianisieren" eines Upstream-Quellpaketes
* ''uupdate'' zur Datenübernahme für eine neue Upstream-Version
===== Mit Tarballs =====
* ''dpkg-buildpackage -uc -us''
===== Mit Git =====
FIXME Das hier sind erste Notizen. Wie eine neue Version zu einem vorhandenen Repository
hinzugefügt werden kann ist leider noch völlig unklar. Diverse Versuche sind bisher fehlgeschlagen.
Debain-Paket lediglich mit Git verwalten
Es stehen keine Tarballs zur Verfügung
Werkzeug: git-buildpackage
Wenn Änderungen gemacht wurden, so sind sie mit
git clean -fd
git checkout .
zu bereinigen
Des weiteren dürfen keine Dateien mehr im Verzeichnis sein, die ggf.
durch einen früheren Build-Prozeß erzeugt wurden und über z.B. .gitignore
nicht angezeigt werden.
Gewünschten Tag auschecken
git checkout debian/3.5.14+dfsg1.orig-1
gbp buildpackage --git-ignore-branch
oder aktuelle version
git checkout debian/sid
gbp buildpackage
Changelogeintrag schreiben
export DEBEMAIL="mustermann@example.com"
gbp dch --snapshot --auto debian/
Änderungen mit neuem Changelog committen
===== Paket bauen =====
apt-get source
cd
dpkg-buildpackage -us -uc
Im übergeordneten Verzeichnis ist jetzt das neue Paket abgelegt.
===== Paket ändern =====
Es gibt mehrere Möglichkeiten:
- Änderungen in den Upstream einbauen
- Änderungen als Patch im Debian-Paket zur Verfügung stellen
* ''dpatch'', ''quilt''
* ''dch -i'' erhöht die Versionsnummer, ein entsprechender Changelogeintrag wird vorbereitet und angezeigt
* apt-get source ...
* Versionsnummer änderen mit ''dch'' bzw. ''debchange''
* Changelog anpassen
dch --local ccpi
- Paket herunterladen und lokal ändern
apt-get source
cd
[...] Änderungen durchführen
dpkg-source --commit
Dadurch wird ein Patch innerhalb der Debian-Struktur erstellt
dpkg-buildpackage -us -uc
===== Paket ändern mit Quilt =====
- Quellen holen
apt-get source openssh
- Changelog-Eintrag schreiben NMU: Non Maintainer Update
cd openssh-7.9p1
dch --nmu
- Prüfe Format (sollte normalerweise quilt sein):
cat debian/source/format
oder
what-patch
- ''~/.quiltrc'' konfigurieren bzw. prüfen
- Alle Patches einspielen
quilt push -a
- Neuen Patch erstellen
quilt new keylength-768.patch
- Quellen ändern mit
quilt edit sshkey.h
#define SSH_RSA_MINIMUM_MODULUS_SIZE 768
- Am Ende
quilt refresh
- Paket(e) erstellen
dpkg-buildpackage -us -uc
Das oder die Pakete liegen dann im Verzeichnis eine Ebene höher
und können ganz normal mit ''dpkg'' eingespielt werden.
===== Referenzen =====
* https://www.linux-community.de/ausgaben/linuxuser/2013/08/debian-pakete-selbst-erstellen/