Differences between revisions 65 and 109 (spanning 44 versions)
Revision 65 as of 2019-08-17 13:14:29
Size: 8499
Comment:
Revision 109 as of 2021-11-29 11:42:55
Size: 9473
Comment: make translation header ready to be included in translated pages
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: English - [[it/Packaging|Italiano]] - [[sv/Packaging|Svenska]] - [[ru/Packaging|Русский]]-~ ##For Translators - to have a constantly up to date translation header in you page, you can just add a line like the following (with the comment's character at the start of the line removed)
## <<Include(Packaging, ,from="^##TAG:TRANSLATION-HEADER-START",to="^##TAG:TRANSLATION-HEADER-END")>>
##TAG:TRANSLATION-HEADER-START
~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: [[Packaging|English]] - [[es/Packaging|Español]] - [[pt_BR/Packaging|Português (Brasil)]] - [[it/Packaging|Italiano]] - [[sv/Packaging|Svenska]] - [[ru/Packaging|Русский]]-~
##TAG:TRANSLATION-HEADER-END

<<BR>>
||<tablestyle="width: 100%; text-align: center; border: 0px hidden"> {{https://www.debian.org/logos/openlogo-nd-50.png}} {{https://www.debian.org/Pics/debian.png}}||
||<style="border: 0px hidden">~+{{attachment:Portal/IDB/logo_portal.png}} Welcome to [[Debian]] '''packaging portal'''+~||
Line 5: Line 13:
Debian packages are maintained by a community of Debian Developers and volunteers. This page contains information relevant to developers wishing to package software for Debian. {{attachment:Portal/IDB/icon-template-32x32.png}} This portal is about ''' information relevant to developers wishing to package [[Software|software]] for Debian.''' If you were looking for information on installing and removing packages from your Debian system, see the [[PackageManagement|package management]] page.
Line 7: Line 15:
If you were looking for information on installing and removing packages from your Debian system, see the [[PackageManagement|package management]] pages instead. Debian [[Software|packages]] are maintained by a community of Debian Developers and volunteers.


{{{#!wiki debian
If you're just starting out with Debian packaging, please read the official documentation first:<<BR>>
[[https://www.debian.org/doc/manuals/debmake-doc/index.en.html|Guide for Debian Maintainers]] -- describes the building of a Debian package with many examples <<BR>>
[[https://www.debian.org/doc/devel-manuals#packaging-tutorial|Debian Packaging Tutorial]] -- slides-based overview of Debian packaging<<BR>>
[[https://www.debian.org/doc/debian-policy/|Debian Policy]] -- guiding rules<<BR>>
[[https://www.debian.org/doc/manuals/developers-reference/|Developers Reference]] -- advanced guide etc.<<BR>>
[[https://mentors.debian.net/intro-maintainers/| Introduction for maintainers: How will my package get into Debian?]]<<BR>>
}}}
Line 11: Line 29:
== What is a "package"? ==
Line 13: Line 30:
A Debian package is a collection of files that allow for applications or libraries to be distributed via the Debian package management system. The aim of packaging is to allow the automation of installing, upgrading, configuring, and removing computer programs for Debian in a consistent manner. ----
Line 15: Line 32:
A Debian package consists of one source package component and one or more binary package components. Debian Policy requires that these package files are built with a particular structure and format but there are many methods of arriving at these files.

{{{#!wiki warning
Only packages that are compliant with Debian policy will be accepted into the archive. Manually constructed binary packages (.deb) that are not built from a source package will never be accepted.
}}}

Source packages not only contain the upstream source distribution and options for the Debian package build system but also lists of run-time dependencies and conflicting packages, a machine-readable description of copyright and license information, initial configurations, etc.

While the goal of packaging is to produce these files, for the most part, you will be working with the unpacked source in a directory. The source package (.dsc) and binary packages (.deb) will be built for you by tools such as dpkg-buildpackage.

You can read more about the anatomy of [[DebianPackage|binary packages]] or [[SourcePackage|source packages]] on their wiki pages.
Line 28: Line 34:

{{{#!wiki debian
If you're just starting out with Debian packaging, please read the official documentation first:

 * [[http://www.debian.org/doc/manuals/maint-guide/index.en.html|the Debian New Maintainers' Guide]] -- tutorial for simple package
 * [[http://www.debian.org/doc/devel-manuals#packaging-tutorial|Debian Packaging Tutorial]] -- slides-based overview of Debian packaging
 * [[http://www.debian.org/doc/debian-policy/|Debian Policy]] -- guiding rules
 * [[http://www.debian.org/doc/manuals/developers-reference/|Developers Reference]] -- advanced guide etc.

}}}
Line 45: Line 41:
 * [[http://www.debian.org/doc/manuals/maint-guide/index.en.html|the Debian New Maintainers' Guide]] describes the building of a Debian package to ordinary Debian users.
 * [[http://www.debian.org/doc/debian-policy/|the Debian Policy]] includes technical requirements that each package must satisfy.

* [[https://www.debian.org/doc/manuals/debmake-doc/index.en.html|Guide for Debian Maintainers]] describes the building of a Debian package with many examples
 (This replaces outdated [[https://www.debian.org/doc/manuals/maint-guide/index.en.html|the Debian New Maintainers' Guide]] )
 * [[https
://www.debian.org/doc/debian-policy/|the Debian Policy]] includes technical requirements that each package must satisfy.
 * More than anything, please also check the source code of existing recently updated packages of similar kinds.
Line 49: Line 48:
  * the interesting pdf file included in the package [[DebianPkg:packaging-tutorial|packaging-tutorial]].
  * [[http://www.debian.org/doc/manuals/developers-reference/|The Developers Reference]] provides an overview of the recommended procedures and the available resources for Debian developers.
  * the interesting pdf file included in the package [[DebianPkg:packaging-tutorial|packaging-tutorial]] or you can read it [[https://www.debian.org/doc/manuals/packaging-tutorial/|here]].
  * [[https://www.debian.org/doc/manuals/developers-reference/|The Developers Reference]] provides an overview of the recommended procedures and the available resources for Debian developers.
Line 54: Line 53:
Line 59: Line 59:
 * [[AndroidTools]] - android tools
 * [[Fonts/PackagingPolicy|Fonts]] - packages
 * [[https://go-team.pages.debian.net/packaging.html|Go]] - libraries and applications
 * [[http://pkg-haskell.alioth.debian.org/haskell-policy/|Haskell]] - libraries (outdated, updating is listed as TODO item on [[Haskell]])
 * [[Java/Packaging|Java]] - libraries and applications
 * [[Javascript/Policy|JavaScript]] - libraries and applications
 * [[http://pkg-lua.alioth.debian.org/policy.html|Lua]] - modules
 * [[Teams/DebianMonoGroup/NewPackage|Mono]] - libraries and applications
 * [[Teams/DebianMozExtTeam#Common_practices|Mozilla Extensions]] - XUL extensions
 * [[http://pkg-ocaml-maint.alioth.debian.org/ocaml_packaging_policy.html/index.html|OCaml]] - libraries
 * [[Python/Packaging|Python]] - modules and applications
 * [[Teams/Ruby/Packaging|Ruby]] - modules and applications
 * [[AndroidTools]] - Android tools
 * [[Fonts/PackagingPolicy]] - Fonts
 * [[https://go-team.pages.debian.net/packaging.html]] - Golang libraries and applications
 * [[Teams/DebianHaskellGroup]] - Haskell environment and libraries
 * [[Java/Packaging]] - Java libraries and applications
 * [[Javascript/Policy]] - JavaScript libraries and applications
 * [[https://salsa.debian.org/lua-team]] - Lua modules
 * [[Teams/DebianMonoGroup/NewPackage]] - Mono libraries and applications
 * [[Teams/DebianMozExtTeam]] - Mozilla extensions
 * [[Teams/OCamlTaskForce]] - OCaml libraries
 * [[Python/Packaging]] - Python modules and applications
 * [[Teams/Ruby/Packaging]] - Ruby modules and applications
 * [[Teams/RustPackaging]] - Rust crates and applications
Line 72: Line 73:
Line 75: Line 77:
 * [[UsingQuilt|Quilt]] - patch management
 * [[PackagingWithDarcs|Darcs]] - version control
 * [[PackagingWithGit|Git]] - version control
 * [[Packaging/sbuild|sbuild]] - clean build tool
 * [[PbuilderTricks|Pbuilder]] - clean build tool
 * [[SecurePbuilder|Secure Pbuilder]] - builder tool
 * [[Packaging/ruby-team-meta-build|build scripts used by ruby team]] - helps testing reverse dependencies easily
 * [[UsingQuilt]] - Patch management
 * [[PackagingWithDarcs]] - Darcs version control
 * [[PackagingWithGit]] - Git version control
 * [[Packaging/sbuild]] - sbuild clean build tool
 * [[Packaging/debspawn]] - debspawn
clean build tool
 * [[PbuilderTricks]] - Pbuilder clean build tool
 * [[SecurePbuilder]] - Secure Pbuilder builder tool
 * [[Packaging/ruby-team-meta-build]] - build scripts used by ruby team, helps testing reverse dependencies easily
Line 85: Line 89:
 * [[AdvancedBuildingTips|some advanced building tips]]
 * [[Courses2005/BuildingWithoutHelper|How to make a Debian package without using a helper]]
 * [[/HackingDependencies|hacking dependencies]]
 * [[AdvancedBuildingTips]] - Advanced building tips
 * [[Courses2005/BuildingWithoutHelper]] - How to make a Debian package without using a helper
 * [[/HackingDependencies]] - hacking dependencies
 * [[/ComplexWebApps]] - Create debian packages for complex web applications
Line 91: Line 95:
 * [[PackagingFAQ|Packaging FAQ]]
 * [[Mentors|Mentors]] sponsors/mentors for packages in specific areas of Debian
 * [[Renaming_a_Package|Renaming a Package]]
 * [[PackageTransition|Package Transition]]
 * [[Adding and remo
ving diversions]]
 * [[PackagingFAQ]] - Packaging FAQ
 * [[Mentors]] - sponsors/mentors for packages in specific areas of Debian
 * [[Renaming_a_Package]] - Renaming a Package
 * [[PackageTransition]] - Package Transition
 * [[DpkgDi
versions]]
Line 97: Line 101:
 * [[PkgSplit|How to split a package into smaller packages]]  * [[PkgSplit]] - How to split a package into smaller packages
Line 99: Line 103:
 * [[DebugPackage|Debug Package]]
 * [[PackageArchitectureAlmostAny|Creating package without some particular architectures]] - for easy porting
 * [[ConfigPackages|Config Package]]
 *
DpkgConffileHandling - Gracefully Handling conffiles
 * [[EditingBinaryPackageMetadata|Editing Binary Package Metadata]]
 * [[SoftwarePackaging|Software Packaging]]
 * [[SponsorChecklist|Sponsor Checklist]]
 * [[HowToPackageForDebian|How to package for Debian]]
 * [[Package]]

 * [[AutomaticPackagingTools|Automatic Packaging Tools]]
 * [[DEX|DEX]] - improving Debian and its derivatives through cross-community teamwork
 * [[Repackaging]] -
Collecting information about repackaging
 * [[DebugPackage]] - Debug Package
 * [[PackageArchitectureAlmostAny]] - Creating package without some particular architectures for easy porting
 * [[ConfigPackages]] - Config Package
 * [[
DpkgConffileHandling]] - Gracefully Handling conffiles
 * [[EditingBinaryPackageMetadata]] - Editing Binary Package Metadata
 * [[SoftwarePackaging]] - Software Packaging
 * [[SponsorChecklist]] - Sponsor Checklist
 * [[HowToPackageForDebian]] - How to package for Debian
 * [[AutomaticPackagingTools]] - Automatic Packaging Tools
 * [[DEX]] - improving Debian and its derivatives through cross-community teamwork
 * [[Repacking]] - Collecting information about repacking
 * AutomakeTransition
 * [[PackageConfigUpgrade]] - propose a new way to smoothly handle configuration upgrades during package upgrades
 *
DataPackages
 * [[Diagrams]] - packaging related diagrams and sketches
 * [[WNPP]] - ''Work-Needing and Prospect
ive Packages'' list packages that have been requested for packaging, or need a new maintainer
 * [[Salsa]] - collaborative development server for Debian based on the GitLab software
 * [[CheckInstall]] - Build binar
y .deb packages from installation scripts (`make install`...)
 * [[SimpleBackport
Creation]] - Backport a DebianUnstable package to DebianStable
Line 116: Line 127:
[[DebianWomen]] organise interesting [[DebianWomen/Projects/Events/TrainingSessions|training sessions]]. [[DebianWomen]] organise [[DebianWomen/Projects/Events/TrainingSessions|training sessions]].
Line 119: Line 130:
== Other Information == == External links ==
Line 121: Line 132:
=== External useful links ===
 * http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Debian-Binary-Package-Building-HOWTO.html
 * 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.
 * [[http://people.connexer.com/~roberto/howtos/debcustomize|Debian Package Customization HOWTO]]
 * [[http://feeding.cloud.geek.nz/posts/whats-in-a-debian-directory/|What's in a debian/ directory]] - detailed worked example
 * [[https://github.com/dod38fr/config-model/wiki/Managing-Debian-packages-with-cme|Managing Debian package files with cme]]
 * [[http://packaging.ubuntu.com/|Ubuntu Packaging Guide]]
 * https://feeding.cloud.geek.nz/posts/whats-in-a-debian-directory/ - What's in a debian/ directory
 * https://github.com/dod38fr/config-model/wiki/Managing-Debian-packages-with-cme - Managing Debian package files with cme
 * https://packaging.ubuntu.com/ - Ubuntu Packaging Guide
 * https://www.debian.org/doc/manuals/apt-howto/ - APT HOWTO (Obsolete Documentation)
 * https://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Debian-Binary-Package-Building-HOWTO.html Debian Binary Package Building HOWTO (2005)
 * [[https://about.gitlab.com/blog/2016/10/12/automated-debian-package-build-with-gitlab-ci/|How to build and deploy a Debian Package with GitLab CI]]
 * [[https://github.com/jordansissel/fpm|fpm]] can build .deb packages from various other package formats ([[https://github.com/jordansissel/fpm/wiki/ConvertingGems|rubygems]], [[https://github.com/jordansissel/fpm/wiki/ConvertingPython|pip]], pear, tar, npm, pacman...)
 * [[https://wiki.ubuntu.com/Packaging|Packaging - Ubuntu Wiki]]
 * [[https://www.eyrie.org/~eagle/notes/debian/build-tools.html|Debian build tools - Russ's Debian Notes]]
 * [[https://www.eyrie.org/~eagle/notes/debian/scripts.html|Packaging Scripts for Debian - Russ's Debian Notes]]
Line 132: Line 145:
 * http://www-128.ibm.com/developerworks/linux/library/l-debpkg.html : creating debian packages - high-level description of debian packaging .
 * WikiPedia:List_of_open-source_software_packages
 * [[http://www.debian-administration.org/articles/336]] Rolling your own debian packages.
 * [[http://vcs-pkg.org/|VCSPackaging]]
 * Autobuilding non-free packages: http://article.gmane.org/gmane.linux.debian.devel.announce/997
Line 138: Line 146:
 * AutomakeTransition
 * PackageConfigUpgrade : propose a new way to smoothly handle configuration upgrades during package upgrades
 * DataPackages
 * [[https://www.debian-administration.org/articles/336|Debian adminstration - Rolling your own Debian packages (part 1)]]
 * [[https://lists.debian.org/msgid-search/20061129152824.GT2560@mails.so.argh.org|Autobuilding non-free packages]]
 * [[https://www.strangeparty.com/2010/06/17/a-debian-packaging-howto/|A Debian packaging howto (2010)]]
 * [[https://raphaelhertzog.com/2010/12/17/do-not-build-a-debian-package-with-dpkg-b/|Avoid a newbie packager mistake: don’t build your Debian packages with dpkg -b]]


== Wiki pages ==

All pages related to packaging in Debian:

<<FullSearch(language:en category:CategoryPackaging)>>

Line 142: Line 160:
CategoryPackaging
----

CategoryPackaging | CategoryPortal

Translation(s): English - Español - Português (Brasil) - Italiano - Svenska - Русский


https://www.debian.org/logos/openlogo-nd-50.png https://www.debian.org/Pics/debian.png

Portal/IDB/logo_portal.png Welcome to Debian packaging portal


Portal/IDB/icon-template-32x32.png 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:
Guide for Debian Maintainers -- describes the building of a Debian package with many examples
Debian Packaging Tutorial -- slides-based overview of Debian packaging
Debian Policy -- guiding rules
Developers Reference -- advanced guide etc.
Introduction for maintainers: How will my package get into Debian?


Introduction to Debian Packaging

To get a good grounding in Debian packaging:

Now that you have seen the basics, it is highly recommended that you read some real stuff:

Then, if you are looking for answers, you can come back here or read:

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

Tools

Advanced Procedures

Useful Pages

Training Sessions

From Debian Women

DebianWomen organise training sessions.

See also:

Wiki pages

All pages related to packaging in Debian:

  1. AdvancedBuildingTips
  2. Alioth
  3. AndroidTools
  4. AutomakeTransition
  5. AutomaticPackagingTools
  6. BuildingFormalBackports
  7. BzrBuildpackage/DesignIdeas
  8. CheckInstall
  9. ConfigPackages
  10. CopyrightReviewTools
  11. Courses2005/BuildingWithoutHelper
  12. CreatePackageFromPPA
  13. DEX
  14. DataPackages
  15. DebianAstro/AstropyPackagingTutorial/Packaging
  16. DebianAstro/AstropyPackagingTutorial/Preparation
  17. DebianDevelopment
  18. DebianMentorsFaq
  19. DebianPackageManagement
  20. DebianPackaging-FAQs
  21. DebugPackage
  22. DevelopersCorner
  23. Diagrams
  24. Distcc
  25. DpkgConffileHandling
  26. DpkgDiversions
  27. EditingBinaryPackageMetadata
  28. EmacspeakTestingGuide
  29. FTBFS
  30. Fonts/PackagingPolicy
  31. Games
  32. Games/Sponsors/Queue
  33. GettingPorted
  34. GitPackaging
  35. GitPackagingSurvey
  36. GitPackagingSurvey/bare debian
  37. GitPackagingSurvey/bare debian monorepo
  38. GitPackagingSurvey/bare template
  39. GitPackagingSurvey/git-debcherry
  40. GitPackagingSurvey/git-debrebase
  41. GitPackagingSurvey/git-dpm
  42. GitPackagingSurvey/manually maintained applied
  43. GitPackagingSurvey/merging
  44. GitPackagingSurvey/modified orig plus further unapplied patches
  45. GitPackagingSurvey/rebasing
  46. GitPackagingSurvey/unapplied
  47. GitSrc
  48. HardeningWalkthrough
  49. HowToPackageForDebian
  50. Java/Packaging
  51. Javascript/Policy
  52. Maintainers
  53. MediaWiki
  54. Mentors
  55. Mingw-W64
  56. NonMaintainerUpload
  57. PackageArchitectureAlmostAny
  58. PackageConfigUpgrade
  59. PackageTransition
  60. Packaging
  61. Packaging/BinaryPackage
  62. Packaging/HackingDependencies
  63. Packaging/Intro
  64. Packaging/Pre-Requisites
  65. Packaging/ruby-team-meta-build
  66. Packaging/sbuild
  67. PackagingFAQ
  68. PackagingWithDarcs
  69. PackagingWithDocker
  70. PackagingWithGit
  71. PbuilderTricks
  72. PkgExim4UserFAQ
  73. Projects/DebSrc3.0
  74. Python/DbgBuilds
  75. Python/LibraryStyleGuide
  76. Python/Policy
  77. RPM
  78. RenamingPackages
  79. Repackage_srcrpm
  80. Repacking
  81. ReproducibleBuilds
  82. Salsa
  83. SecurePbuilder
  84. SimpleBackportCreation
  85. SimplePackagingTutorial
  86. SoftwarePackaging
  87. SponsorChecklist
  88. Teams
  89. Teams/CUPS
  90. Teams/DebianHaskellGroup
  91. Teams/DebianMonoGroup/NewPackage
  92. Teams/DebianMozExtTeam
  93. Teams/Foo2zjs
  94. Teams/MySQL
  95. Teams/MySQL/MySQL-wsrep
  96. Teams/OCamlTaskForce
  97. Teams/Printing
  98. Teams/Ruby/Packaging
  99. UsingQuilt
  100. WNPP
  101. binNMU
  102. debian/patches
  103. debian/watch
  104. piuparts
  105. pt_PT/Teams
  106. sbuild
  107. udeb


CategoryPackaging | CategoryPortal