Translation(s): English - Italiano - Svenska - Русский
This portal is about information relevant to developers wishing to package software for Debian. If you were looking for information on installing and removing packages from your Debian system, see the package management page.
Debian packages are maintained by a community of Debian Developers and volunteers.
If you're just starting out with Debian packaging, please read the official documentation first:
the Debian New Maintainers' Guide -- tutorial for simple package
Debian Packaging Tutorial -- slides-based overview of Debian packaging
Debian Policy -- guiding rules Developers Reference -- advanced guide etc.
Contents
Introduction to Debian Packaging
To get a good grounding in Debian packaging:
first read the excellent introduction to Debian Packaging to build a package from scratch,
you can also look at the building tutorial to apply changes to an existing package.
if you are new to debian, then setting up debian unstable system can help you setup a development environment.
Now that you have seen the basics, it is highly recommended that you read some real stuff:
the Debian New Maintainers' Guide describes the building of a Debian package to ordinary Debian users.
the Debian Policy includes technical requirements that each package must satisfy.
Then, if you are looking for answers, you can come back here or read:
the interesting pdf file included in the package packaging-tutorial.
The Developers Reference provides an overview of the recommended procedures and the available resources for Debian developers.
What not to do:
There are no shortcuts to learning good packaging practices. Avoid equivs which is only useful for building trivial metapackages and does not teach you anything about packaging.
Packaging Procedures
Types / Formats
AndroidTools - android tools
Fonts - packages
Go - libraries and applications
Haskell - libraries
Java - libraries and applications
JavaScript - libraries and applications
Lua - modules
Mono - libraries and applications
Mozilla Extensions - XUL extensions
OCaml - libraries
Python - modules and applications
Ruby - modules and applications
RPM - repackaging RPM packages as .deb packages
Tools
Quilt - patch management
Darcs - version control
Git - version control
sbuild - clean build tool
Pbuilder - clean build tool
Secure Pbuilder - builder tool
build scripts used by ruby team - helps testing reverse dependencies easily
Advanced Procedures
Useful Pages
Mentors sponsors/mentors for packages in specific areas of Debian
?Adding and removing diversions
?How to split a package into smaller packages
Repackage_srcrpm - creating a proper Debian source package while referencing the src.rpm package
Creating package without some particular architectures - for easy porting
DpkgConffileHandling - Gracefully Handling conffiles
DEX - improving Debian and its derivatives through cross-community teamwork
Repacking - Collecting information about repacking
PackageConfigUpgrade : propose a new way to smoothly handle configuration upgrades during package upgrades
Diagrams - packaging related diagrams and sketches
Training Sessions
From Debian Women
DebianWomen organise interesting training sessions.
External links
http://qref.sourceforge.net/Debian/reference/ch-package.en.html
http://www.debian.org/doc/manuals/apt-howto/ and package apt-howto
http://www.debian.org/devel/wnpp/prospective - requested packages, and packages being worked on.
What's in a debian/ directory - detailed worked example
See also:
http://www-128.ibm.com/developerworks/linux/library/l-debpkg.html : creating debian packages - high-level description of debian packaging .
http://www.debian-administration.org/articles/336 Rolling your own debian packages.
Autobuilding non-free packages: http://article.gmane.org/gmane.linux.debian.devel.announce/997
Wiki pages
All pages related to packaging in Debian:
- AdvancedBuildingTips
- Alioth
- AndroidTools
- AutomakeTransition
- AutomaticPackagingTools
- BuildingFormalBackports
- BzrBuildpackage/DesignIdeas
- CheckInstall
- ConfigPackages
- CopyrightReviewTools
- Courses2005/BuildingWithoutHelper
- CreatePackageFromPPA
- Creating signed GitHub releases
- DEX
- DataPackages
- DebianAstro/AstropyPackagingTutorial/Packaging
- DebianAstro/AstropyPackagingTutorial/Preparation
- DebianDevelopment
- DebianGNUstep/TODO
- DebianMentorsFaq
- DebianPackageManagement
- DebianPackaging-FAQs
- DebianRepository/Setup
- DebugPackage
- DevelopersCorner
- Diagrams
- Distcc
- DpkgConffileHandling
- DpkgDiversions
- EditingBinaryPackageMetadata
- EmacspeakTestingGuide
- FTBFS
- FastTrack
- Fonts/PackagingPolicy
- Games
- Games/Sponsors/Queue
- GettingPorted
- GitPackaging
- GitPackagingSurvey
- GitPackagingSurvey/bare debian
- GitPackagingSurvey/bare debian monorepo
- GitPackagingSurvey/bare template
- GitPackagingSurvey/git-debcherry
- GitPackagingSurvey/git-debrebase
- GitPackagingSurvey/git-dpm
- GitPackagingSurvey/manually maintained applied
- GitPackagingSurvey/merging
- GitPackagingSurvey/modified orig plus further unapplied patches
- GitPackagingSurvey/rebasing
- GitPackagingSurvey/unapplied
- GitPackagingWorkflow
- GitPackagingWorkflow/DebConf11BOF
- GitSrc
- HardeningWalkthrough
- HowToPackageForDebian
- Java/Packaging
- Javascript/Policy
- Maintainers
- MediaWiki
- Mentors
- Mingw-W64
- NonMaintainerUpload
- PackageArchitectureAlmostAny
- PackageConfigUpgrade
- PackageTransition
- Packaging
- Packaging/BinaryPackage
- Packaging/HackingDependencies
- Packaging/Intro
- Packaging/Pre-Requisites
- Packaging/ruby-team-meta-build
- Packaging/sbuild
- PackagingFAQ
- PackagingWithDarcs
- PackagingWithDocker
- PackagingWithGit
- PbuilderTricks
- PkgExim4
- PkgExim4UserFAQ
- PkgQtKde/BookwormReleasePlans
- Projects/DebSrc3.0
- Python/DbgBuilds
- Python/LibraryStyleGuide
- Python/Policy
- RFP
- RPM
- RenamingPackages
- Repackage_srcrpm
- Repacking
- ReproducibleBuilds
- Salsa
- SecurePbuilder
- ServiceSandboxing
- SimpleBackportCreation
- SimplePackagingTutorial
- SoftwarePackaging
- SponsorChecklist
- SystemBuildTools
- Teams
- Teams/CUPS
- Teams/DebianHaskellGroup
- Teams/DebianMonoGroup/NewPackage
- Teams/DebianMozExtTeam
- Teams/Dpkg/Spec/DeclarativePackaging
- Teams/Foo2zjs
- Teams/MySQL
- Teams/MySQL/MySQL-wsrep
- Teams/OCamlTaskForce
- Teams/Printing
- Teams/Ruby/Packaging
- UntrustedDebs
- UsingQuilt
- WNPP
- binNMU
- de/PackagingWithGit
- debian/patches
- debian/watch
- es/MediaWiki
- es/Packaging
- es/SimpleBackportCreation
- fr/Alioth
- fr/CheckInstall
- fr/DebianPackage
- fr/SimpleBackportCreation
- id/PackagingWithGit
- it/AdvancedBuildingTips
- it/Alioth
- it/DebianDevelopment
- it/DebianPackageManagement
- it/Games
- it/HowToPackageForDebian
- it/Packaging
- it/Packaging/BinaryPackage
- it/Packaging/Intro
- it/PackagingWithGit
- it/Salsa
- it/SimpleBackportCreation
- it/UsingQuilt
- piuparts
- pt_BR/AdvancedBuildingTips
- pt_BR/Alioth
- pt_BR/DebianDevelopment
- pt_BR/Games
- pt_BR/HowToPackageForDebian
- pt_BR/Packaging
- pt_BR/Packaging/BinaryPackage
- pt_BR/Packaging/Intro
- pt_BR/Packaging/Pre-Requisites
- pt_BR/Packaging/SourcePackage
- pt_BR/Salsa
- pt_BR/SimpleBackportCreation
- pt_BR/Teams
- pt_BR/udeb
- pt_PT/Teams
- ru/HowToPackageForDebian
- ru/IntroDebianPackaging
- ru/SimpleBackportCreation
- sbuild
- udeb
- uk/DebianDevelopment
- uk/Salsa
- uk/Teams
- zh_CN/HowToPackageForDebian