linux:create_debian_package

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
linux:create_debian_package [2024/03/01 19:15] – [Créer un paquet Debian] add link phswlinux:create_debian_package [2025/10/25 20:41] (Version actuelle) – [Créer un paquet Debian] add link phsw
Ligne 9: Ligne 9:
   * [[https://wiki.debian.org/sbuild]]   * [[https://wiki.debian.org/sbuild]]
   * [[https://wiki.debian.org/BuildingTutorial]]   * [[https://wiki.debian.org/BuildingTutorial]]
-  * https://github.com/Debian/ratt 
   * [[https://wiki.debian.org/Teams/ReleaseTeam/Transitions|Transitions]]   * [[https://wiki.debian.org/Teams/ReleaseTeam/Transitions|Transitions]]
-  * [[https://wiki.debian.org/ContinuousIntegration/autopkgtest|autopkgtest]] 
   * [[https://anarc.at/software/debian-development/]]   * [[https://anarc.at/software/debian-development/]]
   * [[https://blog.liw.fi/posts/2023/debian-reasons/|Why is Debian the way it is?]]   * [[https://blog.liw.fi/posts/2023/debian-reasons/|Why is Debian the way it is?]]
 +  * [[https://www.linuxembedded.fr/2024/04/introduction-au-paquetage-pour-debian|Introduction au 📦 paquetage pour Debian]]
 +  * [[https://optimizedbyotto.com/post/debian-maintainer-habits/|10 habits to help becoming a Debian maintainer]]
 +
 +  * [[https://diziet.dreamwidth.org/10559.html|Debian’s approach to Rust - Dependency handling]]
 +  * [[https://samueloph.dev/personal_website_files/slides/samueloph_slides_2024_07_fixing_cves_on_debian.pdf|Fixing CVEs on Debian: Everything you probably know already]]
 +  * [[https://samueloph.dev/personal_website_files/slides/samueloph_slides_2024_08_the_secret_sauce_of_debian.pdf|The secret sauce of Debian]]
 +  * [[https://wiki.debian.org/BuildProfileSpec]]
  
  
Ligne 20: Ligne 25:
   * ''devscripts''   * ''devscripts''
   * ''dh-make''   * ''dh-make''
- 
-  * Mainteneur Debian : ne peut uploader que ses paquets sans RFS 
-  * Développeur Debian : peut uploader n'importe quel paquet 
  
  
Ligne 86: Ligne 88:
  
 <code bash> <code bash>
-apt install sbuild+apt install sbuild piuparts
 </code> </code>
  
Ligne 134: Ligne 136:
 Créer le premier chroot: Créer le premier chroot:
 <code bash> <code bash>
-sudo sbuild-createchroot unstable /media/linux/chroots/unstable-sbuild http://127.0.0.1:3142/ftp.fr.debian.org/debian+sudo sbuild-createchroot --include=eatmydata,ccache unstable /media/linux/chroots/unstable-amd64-sbuild http://192.168.1.55:3142/ftp.fr.debian.org/debian
 </code> </code>
  
Ligne 147: Ligne 149:
 <code bash> <code bash>
 sbuild -d testing sbuild -d testing
 +</code>
 +
 +Créer un chroot pour backports :
 +<code bash>
 +sudo sbuild-createchroot --include=eatmydata,ccache --extra-repository="deb http://192.168.1.55:3142/ftp.fr.debian.org/debian bookworm-backports main" --chroot-prefix=bookworm-backports bookworm /media/linux/chroots/bookworm-backports-amd64-sbuild http://192.168.1.55:3142/ftp.fr.debian.org/debian
 +</code>
 +On peut ensuite l'utiliser avec :
 +<code bash>
 +sbuild -d bookworm-backports
 </code> </code>
  
Ligne 187: Ligne 198:
   * [[https://people.debian.org/~debalance/packaging-with-git.html]]   * [[https://people.debian.org/~debalance/packaging-with-git.html]]
   * https://honk.sigxcpu.org/projects/git-buildpackage/manual-html/index.html   * https://honk.sigxcpu.org/projects/git-buildpackage/manual-html/index.html
 +  * [[https://optimizedbyotto.com/post/debian-packaging-from-git/|Creating Debian packages from upstream Git]]
 +  * [[https://optimizedbyotto.com/post/debian-source-package-git/|Debian source packages in git explained]]
  
  
Ligne 373: Ligne 386:
   * https://wiki.debian.org/DebianDak   * https://wiki.debian.org/DebianDak
  
-Construire le paquet en le signant :+Construire le paquet en le signant (le paquet ne sera pas signé si la distribution ciblée est ''UNRELEASED'':
 <code bash> <code bash>
 debuild debuild
Ligne 424: Ligne 437:
   * https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/   * https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
   * https://wiki.debian.org/CopyrightReviewTools   * https://wiki.debian.org/CopyrightReviewTools
 +
 +Depuis la racine des sources d'un paquet, exécuter ''lrc'' (fourni par le paquet ''licenserecon'').
  
  
Ligne 449: Ligne 464:
 export FORCE_SOURCE_DATE = 1 export FORCE_SOURCE_DATE = 1
 </code> </code>
 +
 +
 +
 +
 +==== Liaison avec des bibliothèques statiques ====
 +
 +Si le paquet distribue un binaire qui inclut une bibliothèque statique provenant d'un autre paquet, il faut ajout un champ ''Built-Using'' au fichier ''debian/control'' :
 +<code>
 +Built-Using: ${built-using}
 +</code>
 +Dans le fichier ''debian/rules'', on peut utiliser les commandes suivantes pour attribuer une valeur à la variable :
 +<code make>
 +BUILT_USING := $(shell dpkg-query -f '$${source:Package} (= $${source:Version}), ' -W spirv-tools glslang-dev)
 +
 +override_dh_gencontrol:
 +        dh_gencontrol -- -V"built-using=$(BUILT_USING)"
 +</code>
 +
 +Voir par exemple les paquets ''sash'' ou ''espeakup'' qui utilisent cet attribut.
 +
 +
 +
 +==== autopkgtest ====
 +
 +  * [[https://wiki.debian.org/ContinuousIntegration/autopkgtest|autopkgtest]]
 +  * [[https://lts-team.pages.debian.net/wiki/TestSuites/autopkgtest.html]]
 +  * [[https://asd.learnlearn.in/autopkgtest-tips/]]
 +
 +<code bash>
 +# dans le dossier des sources du paquet :
 +sudo AUTOPKGTEST_APT_PROXY=http://192.168.1.55:3142 autopkgtest ../paquet.changes -- null
 +</code>
 +
 +Attention, ça semble installer le paquet sur le système.
 +
 +
 +
 +==== Recontruire toutes les dépendances inverses ====
 +
 +  * [[https://github.com/Debian/ratt]]
 +  * [[https://lists.debian.org/debian-devel/2017/02/msg00175.html]]
 +  * [[https://github.com/ezhukov/testvm]]
 +
 +''build-rdeps'' liste les dépendances inverses d'un paquet binaire, on peut donc lister toutes les dépendances inverses d'un paquet source avec :
 +<code bash>
 +build-rdeps --distribution unstable --only-main $(grep Package debian/control | cut -d ' ' -f 2)
 +</code>
 +
 +Ensuite pour reconstruire un paquet en incluant un paquet ''.deb'' construit localement :
 +<code bash>
 +sbuild --extra-package=/abolute/path/package_amd64.deb --extra-package=/absolute/path/package-dev_amd64.deb otherpackage
 +</code>
 +
 +
 +==== Cross-build ====
 +
 +  * [[https://subdivi.de/~helmut/mdct24-cross.pdf]]
 +  * [[https://wiki.debian.org/CrossCompiling]]
 +  * [[https://wiki.debian.org/CrossBuildPackagingGuidelines]]
 +  * https://wiki.debian.org/CategoryMultiarch
 +  * [[https://wiki.debian.org/umlaeute/Packaging4CrossCompiling]]
 +
 +
 +==== Devenir un DM ou DD ====
 +
 +  * Mainteneur Debian : ne peut uploader que ses paquets sans RFS
 +  * Développeur Debian : peut uploader n'importe quel paquet
 +
 +  * [[https://www.debian.org/doc/manuals/developers-reference/new-maintainer.fr.html|Référence des développeurs : Candidater pour devenir membre du projet]]
 +  * [[https://www.debian.org/devel/join/newmaint|Le coin des nouveaux membres Debian]]
 +  * [[https://wiki.debian.org/DebianMaintainer|DebianMaintainer]]
  • linux/create_debian_package.1709316929.txt.gz
  • Dernière modification : 2024/03/01 19:15
  • de phsw