Leitfaden für Debian-Betreuer

Helge Kreutzmann

Deutsche Übersetzung (2017-2021) 

Mechtilde Stehmann

Deutsche Übersetzung (2020) 

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Diese Anleitung wurde mit den nachfolgenden Dokumenten als Referenz erstellt:

  • »Making a Debian Package (AKA the Debmake Manual)«, Copyright © 1997 Jaldhar Vyas.
  • »The New-Maintainer’s Debian Packaging Howto«, Copyright © 1997 Will Lowe.
  • »Debian-Leitfaden für Neue Paketbetreuer«, Copyright © 1998-2002 Josip Rodin, 2005-2017 Osamu Aoki, 2010 Craig Small und 2010 Raphaël Hertzog.

Die neuste Version dieser Anleitung sollte

Zusammenfassung

Dieser Anleitung »Leitfaden für Debian-Betreuer« (2026-02-08) beschreibt gewöhnlichen Debian-Benutzern und angehenden Entwicklern den Bau des Debian-Pakets mittels des Befehls debmake.

Diese Anleitung konzentriert sich auf die moderne Paketierart und enthält viele einfache Beispiele.

  • POSIX-Shell-Skript-Paketierung
  • Python3-Skript-Paketierung
  • C mit Makefile/Autotools/CMake
  • mehrere Binärpakete mit Laufzeitbibliotheken usw.

Diese »Anleitung für Debian-Betreuer« kann als Nachfolger des »Debian-Leitfaden für Neue Paketbetreuer« angesehen werden.


Inhaltsverzeichnis

1. Vorwort
2. Überblick
3. Voraussetzungen
3.1. Leute bei Debian
3.2. Wie Sie beitragen können
3.3. Soziale Dynamik von Debian
3.4. Technische Erinnerungen
3.5. Debian-Dokumentation
3.6. Hilfequellen
3.7. Archivsituation
3.8. Wege, beizutragen
3.9. Neue Beitragende und Betreuer
4. Werkzeugeinrichtung
4.1. Email setup
4.2. mc setup
4.3. git setup
4.4. quilt setup
4.5. devscripts setup
4.6. sbuild setup
4.7. Persistent chroot setup
4.8. gbp setup
4.9. HTTP-Proxy
4.10. Privates Debian-Depot
4.11. Virtuelle Maschinen
4.12. Local network with virtual machines
5. Simple packaging
5.1. Packaging tarball
5.2. Gesamtbild
5.3. Was ist Debmake?
5.4. Was ist Debuild?
5.5. Schritt 1: Holen der Quellen der Originalautoren
5.6. Step 2: Generate template files with debmake
5.7. Schritt 3: Anpassung der Vorlagendateien
5.8. Step 4: Building package with debuild
5.9. Step 3 (alternatives): Modification to the upstream source
5.10. Patch by diff -u approach
5.11. Patch by dquilt approach
5.12. Patch by dpkg-source --auto-commit approach
6. Basics for packaging
6.1. Arbeitsablauf des Paketierens
6.2. debhelper package
6.3. Paketname und -version
6.4. Natives Debian-Paket
6.5. debian/rules file
6.6. debian/control file
6.7. debian/changelog file
6.8. debian/copyright file
6.9. debian/patches/* files
6.10. debian/source/include-binaries file
6.11. debian/watch file
6.12. debian/upstream/signing-key.asc file
6.13. debian/salsa-ci.yml file
6.14. Other debian/* files
7. Quality of packaging
7.1. Reformat debian/* files with wrap-and-sort
7.2. Validate debian/* files with debputy
8. Check packaging with cme
9. Sanitization of the source
9.1. Fix with Files-Excluded
9.2. Fix with debian/rules clean
9.3. Fix with extend-diff-ignore
9.4. Fix with tar-ignore
9.5. Fix with git clean -dfx
10. More on packaging
10.1. Package customization
10.2. Customized debian/rules
10.3. Variables for debian/rules
10.4. New upstream release
10.5. Manage patch queue with dquilt
10.6. Build commands
10.7. Note on sbuild
10.8. Special build cases
10.9. Upload orig.tar.xz
10.10. Skipped uploads
10.11. Bug reports
11. Advanced packaging
11.1. Historical perspective
11.2. Current trends
11.3. Note on build system
11.4. Continuous integration
11.5. Bootstrapping
11.6. Compiler hardening
11.7. Reproduzierbares Bauen
11.8. Substvar
11.9. Bibliothekspaket
11.10. Multiarch
11.11. Aufteilung eines Debian-Binärpakets
11.12. Pakettrennungsszenarien und -beispiele
11.13. Multiarch library path
11.14. Multiarch header file path
11.15. Multiarch *.pc file path
11.16. Bibliothekssymbole
11.17. Library package name
11.18. Bibliotheksübergänge
11.19. biNMU-sicher
11.20. Fehlersuchinformationen
11.21. -dbgsym package
11.22. debconf
12. Packaging with git
12.1. Salsa repository
12.2. Salsa account setup
12.3. Salsa CI service
12.4. Branch names
12.5. Patch unapplied Git repository
12.6. Patch by gbp-pq approach
12.7. Manage patch queue with gbp-pq
12.8. gbp import-dscs --debsnap
12.9. Note on gbp
12.10. The Git repository browser
12.11. Git commit history organization
12.12. Quasi-native Debian packaging
12.13. Patch applied Git repository
12.14. Note on dgit
13. Tipps
13.1. Build under UTF-8
13.2. UTF-8 conversion
13.3. Hints for Debugging
14. Tool usages
14.1. debdiff
14.2. dget
14.3. mk-origtargz
14.4. origtargz
14.5. git deborig
14.6. dpkg-source -b
14.7. dpkg-source -x
14.8. debc
14.9. bts
14.10. dpkg-depcheck
15. Weitere Beispiele
15.1. Cherry-pick templates
15.2. Kein Makefile (Shell, CLI)
15.3. Makefile (Shell, CLI)
15.4. pyproject.toml (Python3, CLI)
15.5. Makefile (Shell, GUI)
15.6. pyproject.toml (Python3, GUI)
15.7. Makefile (Paket mit einem Programm)
15.8. Makefile.in + configure (Paket mit einem Programm)
15.9. Autotools (Paket mit einem Programm)
15.10. CMake (Paket mit einem Programm)
15.11. Autotools (Paket mit mehreren Programmen)
15.12. CMake (multi-binary package)
15.13. Internationalization
15.14. Details
16. debmake(1)-Handbuchseite
16.1. BEZEICHNUNG
16.2. ÜBERSICHT
16.3. BESCHREIBUNG
16.4. Positional arguments
16.5. Options
16.6. BEISPIELE
16.7. HELFERPAKETE
16.8. CAVEAT
16.9. DEBUG
16.10. AUTOR
16.11. LIZENZ
16.12. SIEHE AUCH
17. debmake options
17.1. Shortcut option (-i)
17.2. debmake -b
17.3. debmake -B
17.4. debmake -x