Differences between revisions 1 and 104 (spanning 103 versions)
Revision 1 as of 2006-07-22 22:52:27
Size: 33
Editor: EddyPetrisor
Comment: most popular search term should be occupied
Revision 104 as of 2021-06-15 12:21:01
Size: 8837
Editor: Praveen A
Comment: add link to debspwan clean build tool
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#REDIRECT HowToPackageForDebian #language en
~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: English - [[es/Packaging|Español]] - [[pt_BR/Packaging|Português (Brasil)]] - [[it/Packaging|Italiano]] - [[sv/Packaging|Svenska]] - [[ru/Packaging|Русский]]-~
<<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'''+~||
----

{{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.

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/maint-guide/index.en.html|the Debian New Maintainers' Guide]] -- tutorial for simple package<<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>>
}}}

<<TableOfContents()>>


----


== Introduction to Debian Packaging ==

To get a good grounding in Debian packaging:
  * first read the excellent [[IntroDebianPackaging|introduction to Debian Packaging]] to build a package from scratch,
  * you can also look at the [[BuildingTutorial|building tutorial]] to apply changes to an existing package.
  * if you are new to debian, then [[/Pre-Requisites|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:
 * [[https://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.
 * [[https://www.debian.org/doc/debian-policy/|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 [[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.

What not to do:
  * There are no shortcuts to learning good packaging practices. Avoid [[DebianPkg: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/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
 * [[RPM]] - repackaging RPM packages as .deb packages


=== Tools ===

 * [[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


=== Advanced Procedures ===

 * [[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
=== Useful Pages ===

 * [[PackagingFAQ]] - Packaging FAQ
 * [[Mentors]] - sponsors/mentors for packages in specific areas of Debian
 * [[Renaming_a_Package]] - Renaming a Package
 * [[PackageTransition]] - Package Transition
 * [[DpkgDiversions]]
 * BzrBuildpackage/DesignIdeas
 * [[PkgSplit]] - How to split a package into smaller packages
 * [[Repackage_srcrpm]] - creating a proper Debian source package while referencing the src.rpm package
 * [[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 Prospective 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 binary .deb packages from installation scripts (`make install`...)
 * [[SimpleBackportCreation]] - Backport a DebianUnstable package to DebianStable

== Training Sessions ==

=== From Debian Women ===

[[DebianWomen]] organise [[DebianWomen/Projects/Events/TrainingSessions|training sessions]].


== External links ==

 * 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]]


=== See also: ===

 * [[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)>>


----

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


CategoryPackaging | CategoryPortal