Commit f82eeccf authored by arpinux's avatar arpinux

finish howto-packages.md

parent 8797f671
......@@ -4,6 +4,7 @@
- intégrer carton ?
- mise à jour des pdf ou intégration dans le howto...
- documentation handy-update-checker https://handylinux.org/wiki/doku.php/fr/update
- documentation liveUSBcreator https://handylinux.org/wiki/doku.php/fr/tools#liveusbcreator
- ...
- @faire juste avant le dernier build
......
page en cours d'édition.
ce tuto sera complété au fur et à mesure pour les futurs meinteneurs des dépôts HandyLinux.
HOW TO maintenir les paquets et le dépôt HandyLinux
====================================================
*note : cette documentation est adaptée aux dépôts handylinux et devra être adaptée pour une autre dérivée Debian.*
*note : cette documentation est spécifique aux dépôts handylinux et devra être adaptée pour une autre dérivée Debian.*
*cette méthode n'est que la mienne ne tient pas lieu de méthode absolue pour la maintenance des paquets Debian. (arpinux)*
pour une documentation exhaustive, vous pouvez consulter [le guide Complet Debian](https://www.debian.org/doc/manuals/maint-guide/dreq.fr.html)
......@@ -22,11 +19,11 @@ la présence des sources dans le dépôt implique un certain processus pour l'in
Les outils utilisés
-------------------
l'ajout et la mise à jour des paquets se fait grâce à **reprepro**
la construction des paquets se fait grâce à l'outil **debuild** du paquet **devscripts** (le paquet magique du mainteneur)
la construction des paquets se fait grâce à l'outil **debuild** du paquet **devscripts** (le paquet magique du mainteneur) et **debhelper**.
Environnement de dev
====================
bien sûr, chacun travaille comme il veut :) ceci n'est qu'une façon de travailler, pour filer une vue d'ensemble.
bien sûr, chacun travaille comme il veut :) ceci n'est qu'une façon de faire, pour filer une vue d'ensemble.
- un dossier pour tout faire : dev des paquets et dépôt. de cette manière, une sauvegarde régulière de ce dossier permettra la sauvegarde de votre travail ET du dépôt de le distro
- une sauvegarde automatique du dépôt en place et fonctionnel : afin de ne jamais planter le dépôt, il faut travailler sur le dépôt, puis le tester en local avec vbox ou un ordi test.
......@@ -80,7 +77,7 @@ enfin, déclarez votre clé dans le fichier de conf devsripts /etc/devscripts.co
DEBSIGN_KEYID=XXXXXXXX
*pour l'exemple, voici la construction détaillée du live-usb-creator de thuban et coyotus.*
*pour l'exemple, voici la construction détaillée du [live-usb-creator](https://handylinux.org/wiki/doku.php/fr/tools#liveusbcreator) de thuban et coyotus.*
mise en place de l'environnement de construction
------------------------------------------------
......@@ -105,7 +102,7 @@ retour terminal commenté :
Maintainer name : arnault perret ## le nom qui sera indiqué dans les fichers Debian
Email-Address : arpinux@member.fsf.org ## l'adresse mail du mainteneur
Date : Wed, 06 Jan 2016 22:15:56 +0100
Package Name : liveusbcreator ## nom pfficiel du paquet
Package Name : liveusbcreator ## nom officiel du paquet
Version : 0.1 ## version du paquet
License : blank
Type of Package : Single
......@@ -151,7 +148,7 @@ vous n'utiliserez pas tous ces fichiers, ils sont là à titre d'exemple : vous
quand vous aurez l'habitude, vous n'utiliserez plus la commande 'dh_make' car peu de fichiers sont indispensables pour construire un paquet.
on va en supprimer pas mal tout de suite. mais on va en ajouter aussi, histoire de mettre un peu de GUI dans cette apllication ;)
voici à quoi ressemble les sources avant l'édition des fichiers :
voici à quoi ressemblent les sources avant l'édition des fichiers :
├── liveusbcreator-0.1
│   ├── debian
......@@ -204,7 +201,7 @@ ce fichier sera modifié à chaque utilisation de la commande 'dch' que nous dé
Package: liveusbcreator
Architecture: all
Depends: ${misc:Depends}, zenity, dd, pv
Depends: ${misc:Depends}, zenity, coreutils, pv
Description: Outil de création de live USB
liveUSBcreator vous permet de transférer facilement
une image ISO sur un support amovible USB.
......@@ -377,7 +374,7 @@ enfin... le fichier qui fait...
rm ${DESTDIR}${ICONDIR}/liveUSBcreator.png
correspondance des commandes du Makefile :
`install -d -m 755 -o root -g root $(DESTDIR)$(BINDIR)` == `mkdir -p /usr/bin && chmod 755 /usr/bin && chown root:root /usr/bin`
`install -d -m 755 -o root -g root $(DESTDIR)$(BINDIR)` == `mkdir -p /usr/bin ; chmod 755 /usr/bin ; chown root:root /usr/bin`
note : vous pouvez aussi utiliser les commandes classiques (cp, chown, chmod, rm...)
#### premier test complet
......@@ -400,6 +397,7 @@ donc depuis le dossier de developpement (liveUSBcreator) :
retour terminal :
debuild
dpkg-buildpackage -rfakeroot -D -us -uc
dpkg-buildpackage: source package liveusbcreator
dpkg-buildpackage: source version 0.1-1
......@@ -550,7 +548,7 @@ vous pouvez modifier un paquet avant ou après intégration. dans le second cas,
#### patcher les sources
afin de conserver les sources propres et permettre une gestion fine des modifications, nous allons utiliser la commande `dpkg-source` depuis le dossier des sources :
`cd liveusbcreator-0.1 && dpkg-source --commit`
cette commande va lister les modifications comme le fait le protocle git lors d'un `git add --all && git commit -a`.
cette commande va lister les modifications comme le fait le protocole git lors d'un `git add --all ; git commit -a`.
vous devez 'nommer' le patch puis vous serez redirigé vers le fichier de description complet du patch.
retour terminal
......@@ -687,12 +685,38 @@ le choix du dépôt d'intégration s'effectue en argument de la commande reprepr
structure du dépôt Debian
-------------------------
tous les fichiers sont automatiquement mis à jour si nécessaire lors de l'utilisation de reprepro (merci Debian).
tous les fichiers sont automatiquement mis à jour si nécessaire lors de l'utilisation de reprepro (merci Debian). Pour mettre en place un dépôt, il faut un dossier 'debian/conf' avec un fichier 'distributions' qui liste les distros supportées et leurs spécificités :
**http://repo.handylinux.org/debian/conf/distributions** : fichier de configuration des dépôts HandyLinux
Origin: handylinux.org
Label: handylinux repository
Codename: stable
Architectures: i386 amd64 source
Components: main
Description: HandyLinux main repository
SignWith: BE441FCF
Origin: handylinux.org
Label: handylinux repository
Codename: compiz
Architectures: i386 amd64 source
Components: main
Description: HandyLinux compiz repository
SignWith: BE441FCF
Origin: handylinux.org
Label: handylinux repository
Codename: jessie
Architectures: i386 amd64 source
Components: main
Description: HandyLinux jessie repository
SignWith: BE441FCF
voici la structure de base : repo/. [accessible ici](http://repo.handylinux.org)
├── debian : dossier contenant les paquets, les sources et la configuration
│   ├── conf
│   │   └── distributions : fichier de configuration des dépôts. il contient la liste des dépôts et leurs infos respectives (détaillé en fin de tuto)
│   │   └── distributions : fichier de configuration des dépôts. il contient la liste des dépôts et leurs infos respectives
│   ├── db : dossier des "db" ... listing des infos, paquets, md5 etc... se met à jour automatiquemeent avec reprepro.
│   │   ├── checksums.db
│   │   ├── contents.cache.db
......@@ -741,10 +765,23 @@ voici la structure de base : repo/. [accessible ici](http://repo.handylinux.org)
utilsation de reprepro
----------------------
reprepro se charge de mettre à jour les fichiers ".db" contenant le listing des paquets et leurs versions,
reprepro se charge aussi de supprimer les paquets obsolètes.
reprepro se charge de mettre à jour tous les fichiers contenant le listing des paquets et leurs versions et de supprimer les paquets obsolètes. comme d'hab, cette méthode ne présente pas toutes les options de reprepro... un ptit `man reprepro` vous éclairera sur les nombreuses possibilités de cet outil.
il se lance depuis le dossier 'debian' du dépôt concerné.
détails de la commande pour intégrer notre nouvel outil dans les dépôts "jessie" d'HandyLinux :
reprepro --ignore=wrongdistribution include jessie ../../liveUSBcreator/liveusbcreator_0.1-2_amd64.changes
│ │ │ │
│ │ │ └──adresse (relative) du fichiers *.changes
│ │ └──distribution dans laquelle le paquet devra être intégré
│ └──argument d'intégration qui prend en charge tous les fichiers (.changes, .dsc, .)
└──cette option pour empêcher une erreur de reprepro.
le fichier de description du paquet indique 'unstable' au lieu de 'jessie' (car les paquets vont parfois dans 'stable' aussi.).
note : l'argument 'include' permet de prendre en charge la totalité des fichiers. il a cependant besoin de l'archive d'origine pour intégrer les fichiers.
dans notre exemple, comme nous voulions intégrer directement la version '0.1-2', le premier paquet, l'origine, n'a pas été intégrée dans le dépôt. je l'ai donc fait à la main (copie du .orig.tar.xz dans le dossier /debian/pool/main/l/liveusbcreator) afin qu'elle soit reconnue par 'include .changes'
**@finir**
pour n'intégrer que le paquet compilé, vous pouvez utiliser l'argument 'includedeb' (ce que j'ai fait pour les paquets compiz pré-compilés).
Mise en ligne du dépôt
======================
......@@ -757,45 +794,6 @@ comme le dépôt est en local, il suffit de synchroniser le dossier '/repo' sur
note: si la mise à jour n'est pas urgente, mater les logs du serveur pour connaître les meilleures heures d'upload ;)
Remarques et astuces
====================
**@finir**
------------------------------------------------------------------------
Exemples de fichiers
====================
**http://repo.handylinux.org/debian/conf/distributions** : fichier de configuration des dépôts HandyLinux
Origin: handylinux.org
Label: handylinux repository
Codename: stable
Architectures: i386 amd64 source
Components: main
Description: HandyLinux main repository
SignWith: yes (vous pouvez indiquer ici votre clé GPG xxxxxxxx)
Origin: handylinux.org
Label: handylinux repository
Codename: compiz
Architectures: i386 amd64 source
Components: main
Description: HandyLinux compiz repository
SignWith: yes
Origin: handylinux.org
Label: handylinux repository
Codename: jessie
Architectures: i386 amd64 source
Components: main
Description: HandyLinux jessie repository
SignWith: yes
**@finir**
------------------------------------------------------------------------
TODO :
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment