Debian New Maintainers' Guide
Debian New Maintainers' Guide
Debian New Maintainers' Guide
Josip Rodin<br>original contents joy-mg@debian.org>
Osamu Aoki<br>updated contents osamu@debian.org>
version 1.2.53
Copyright © 1998-2002 Josip Rodin
Copyright © 2005-2015 Osamu Aoki
Copyright © 2010 Craig Small
Copyright © 2010 Raphaël Hertzog
This document may be used under the terms of the GNU General Public License<br>version 2 or higher.
This document was made using these two documents as examples:
Making a Debian Package (AKA the Debmake Manual), copyright © 1997 Jaldhar<br>Vyas.
The New-Maintainer's Debian Packaging Howto, copyright © 1997 Will Lowe.
The rewrite of this tutorial document with updated contents and more practical examples is available as "Guide for Debian Maintainers". Please use this new tutorial as the primary tutorial document.
2022-10-08 03:52:48 UTC
Table of Contents
1. Getting started The Right Way
1.1. Social dynamics of Debian
1.2. Programs needed for development
1.3. Documentation needed for development
1.4. Where to ask for help
2. First steps
2.1. Debian package building workflow
2.2. Choose your program
2.3. Get the program, and try it out
2.4. Simple build systems
2.5. Popular portable build systems
2.6. Package name and version
2.7. Setting up dh_make
2.8. Initial non-native Debian package
3. Modifying the source
3.1. Setting up quilt
3.2. Fixing upstream bugs
3.3. Installation of files to their destination
3.4. Differing libraries
4. Required files under the debian directory
4.1. control
4.2. copyright
4.3. changelog
4.4. rules
4.4.1. Targets of the rules file
4.4.2. Default rules file
4.4.3. Customization of rules file
5. Other files under the debian directory
5.1. README.Debian
5.2. compat
5.3. conffiles
5.4. package.cron.*
5.5. dirs
5.6. package.doc-base
5.7. docs
5.8. emacsen-*
5.9. package.examples
5.10. package.init and package.default
5.11. install
5.12. package.info
5.13. package.links
5.14. {package.,source/}lintian-overrides
5.15. manpage.*
5.15.1. manpage.1.ex
5.15.2. manpage.sgml.ex
5.15.3. manpage.xml.ex
5.16. package.manpages
5.17. NEWS
5.18. {pre,post}{inst,rm}
5.19. package.symbols
5.20. TODO
5.21. watch
5.22. source/format
5.23. source/local-options
5.24. source/options
5.25. patches/*
6. Building the package
6.1. Complete (re)build
6.2. Autobuilder
6.3. debuild command
6.4. pbuilder package
6.5. git-buildpackage command and similar
6.6. Quick rebuild
6.7. Command hierarchy
7. Checking the package for errors
7.1. Suspicious changes
7.2. Verifying a package's installation
7.3. Verifying a package's maintainer scripts
7.4. Using lintian
7.5. The debc command
7.6. The debdiff command
7.7. The interdiff command
7.8. The mc command
8. Updating the package
8.1. New Debian revision
8.2. Inspection of the new upstream release
8.3. New upstream release
8.4. Updating the packaging style
8.5. UTF-8 conversion
8.6. Reminders for updating packages
9. Uploading the package
9.1. Uploading to the Debian archive
9.2. Including orig.tar.gz for upload
9.3. Skipped uploads
A. Advanced packaging
A.1. Shared libraries
A.2. Managing debian/package.symbols
A.3. Multiarch
A.4. Building a shared library package
A.5. Native Debian package
Chapter 1. Getting started The Right Way