Differences between revisions 65 and 78 (spanning 13 versions)
Revision 65 as of 2019-08-17 13:14:29
Size: 8499
Comment:
Revision 78 as of 2019-09-11 19:43:37
Size: 7093
Editor: nodiscc
Comment: limit search macro to english
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
<<BR>>
||<tablestyle="width: 100%; text-align: center; border: 0px hidden"> {{http://www.debian.org/logos/openlogo-nd-50.png}} {{http://www.debian.org/Pics/debian.png}}||
||<style="border: 0px hidden">~+{{attachment:Portal/IDB/logo_portal.png}} Welcome to [[Debian]] '''packaging portal'''+~||
Line 5: Line 8:
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 10:
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>>
[[http://www.debian.org/doc/manuals/maint-guide/index.en.html|the Debian New Maintainers' Guide]] -- tutorial for simple package<<BR>>
[[http://www.debian.org/doc/devel-manuals#packaging-tutorial|Debian Packaging Tutorial]] -- slides-based overview of Debian packaging<<BR>>
[[http://www.debian.org/doc/debian-policy/|Debian Policy]] -- guiding rules
[[http://www.debian.org/doc/manuals/developers-reference/|Developers Reference]] -- advanced guide etc.<<BR>>
}}}
Line 11: Line 23:
== What is a "package"? ==
Line 13: Line 24:
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 26:
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 28:

{{{#!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 55: Line 45:
Line 59: Line 50:
 * [[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
Line 72: Line 63:
Line 75: Line 67:
 * [[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]] - Ruby 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
Line 85: Line 78:
 * [[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
Line 91: Line 85:
 * [[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 91:
 * [[PkgSplit|How to split a package into smaller packages]]  * [[PkgSplit]] - How to split a package into smaller packages
Line 99: Line 93:
 * [[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]]
 * [[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
Line 108: Line 102:
 * [[AutomaticPackagingTools|Automatic Packaging Tools]]
 * [[DEX|DEX]] - improving Debian and its derivatives through cross-community teamwork
 * [[Repackaging]] - Collecting information about repackaging
 * [[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 Prospective Packages'' list packages that have been requested for packaging, or need a new maintainer
Line 119: Line 119:
== Other Information == == External links ==
Line 121: Line 121:
=== 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)
Line 132: Line 129:
 * 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 130:
 * AutomakeTransition
 * PackageConfigUpgrade : propose a new way to smoothly handle configuration upgrades during package upgrades
 * DataPackages
 * https://www.debian-administration.org/articles/336 - Rolling your own Debian packages (part 1)
 * http://article.gmane.org/gmane.linux.debian.devel.announce/997 - Autobuilding non-free packages


== Wiki pages ==

All pages related to packaging in Debian:

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

Line 142: Line 142:
CategoryPackaging
----

CategoryPackaging | CategoryPortal

Translation(s): English - Italiano - Svenska - Русский

http://www.debian.org/logos/openlogo-nd-50.png http://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:
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.


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 interesting training sessions.

See also:

Wiki pages

All pages related to packaging in Debian:

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


CategoryPackaging | CategoryPortal