Updated workflow
This commit is contained in:
parent
6e8293b2c2
commit
ade9ecee19
|
@ -68,7 +68,112 @@ EOF
|
||||||
|
|
||||||
## Création d’un paquet
|
## Création d’un paquet
|
||||||
|
|
||||||
### Génération de l'arborescence _debian/_
|
### Génération de l'arborescence _debian/_ – Méthode facile
|
||||||
|
|
||||||
|
Quand c’est possible, s’inspirer d’un paquet existant permet de
|
||||||
|
faciliter l’étape d’initialisation.
|
||||||
|
Il faut donc d’abord trouver un paquet du même genre que le nouveau
|
||||||
|
paquet.
|
||||||
|
Par exemple, pour créer un nouveau paquet
|
||||||
|
[`php-sqlsrv`](https://bugs.debian.org/900572), qui a ses sources dans
|
||||||
|
le [dépôt d’extensions PECL](https://pecl.php.net/), l’idée est de
|
||||||
|
s’inspirer d’un paquet (récemment mis à jour) de l’[équipe PHP
|
||||||
|
PECL](https://qa.debian.org/developer.php?email=team%2Bphp-pecl%40tracker.debian.org)
|
||||||
|
comme [`php-igbinary`](https://tracker.debian.org/php-igbinary).
|
||||||
|
|
||||||
|
Passons en revue les fichiers et points importants.
|
||||||
|
|
||||||
|
#### debian/changelog
|
||||||
|
|
||||||
|
Ne garder qu’une entrée (la première, tout en bas) suffit. Changer le
|
||||||
|
nom du paquet, et s’assurer que la version est inférieure à la version
|
||||||
|
amont cible (pour pouvoir télécharger la dernière version amont plus
|
||||||
|
tard dans le processus).
|
||||||
|
|
||||||
|
Adapter éventuellement l’entrée principale (après l’astérisque), mais
|
||||||
|
pas la peine de s’embêter avec la dernière ligne contenant l’auteur et
|
||||||
|
la date : elle sera mise à jour par
|
||||||
|
([gbp](https://packages.debian.org/unstable/git-buildpackage))
|
||||||
|
[dch](https://packages.debian.org/unstable/devscripts).
|
||||||
|
|
||||||
|
#### debian/compat
|
||||||
|
|
||||||
|
Fichier rendu obsolète par debhelper-compat, à supprimer.
|
||||||
|
|
||||||
|
#### debian/control
|
||||||
|
|
||||||
|
Pour les paquets PECL, ce fichier est mis à jour automatiquement à
|
||||||
|
partir de `debian/control.in`, il est donc inutile d’éditer ce fichier,
|
||||||
|
passons directement à `debian/control.in`.
|
||||||
|
|
||||||
|
Modifier le nom du paquet source (`Source`) et binaire (`Package`), les
|
||||||
|
champs `Maintainer` et `Uploaders`, les champs de dépôt (`Vcs-Git` et
|
||||||
|
`Vcs-Browser`), la page d’accueil amont (`Homepage`), et surtout la
|
||||||
|
description (`Description`), courte (synopsys) et longue (suivre les
|
||||||
|
[conseils de la référence du
|
||||||
|
développeur](https://www.debian.org/doc/manuals/developers-reference/best-pkging-practices#the-package-synopsis-or-short-description).
|
||||||
|
|
||||||
|
Pour les dépendances de construction `Build-Depends`, préférer
|
||||||
|
`debhelper-compat (= 13)` à `debhelper` (et fichier `debian/compat` pour
|
||||||
|
la version).
|
||||||
|
`dh-php (>= 4~)` et `php-all-dev` sont les dépendances nécessaires pour
|
||||||
|
ce type de paquets.
|
||||||
|
Adapter ensuite les dépendances spécifiques (`php-apcu-all-dev` est ici
|
||||||
|
nécessaire à `php-igbinary`, alors que `unixodbc-dev` est nécessaire à
|
||||||
|
`php-sqlsrv`).
|
||||||
|
|
||||||
|
#### debian/copyright
|
||||||
|
|
||||||
|
Adaptation nécessaire (mais généralement légère si le paquet pris en
|
||||||
|
point de départ est du même auteur que le nouveau paquet).
|
||||||
|
|
||||||
|
#### debian/gbp.conf
|
||||||
|
|
||||||
|
Fichier utile à l’utilisation de
|
||||||
|
[git-buildpackage](https://honk.sigxcpu.org/piki/projects/git-buildpackage/).
|
||||||
|
|
||||||
|
#### debian/`$paquet`.php, debian/`$extension`.ini
|
||||||
|
|
||||||
|
Ce sont des spécificités aux paquets PECL, peu d’adaptation est
|
||||||
|
nécessaire (attention tout de même au nom des fichiers).
|
||||||
|
|
||||||
|
#### debian/rules
|
||||||
|
|
||||||
|
Rien à adapter dans ce cas, en fonction du type de paquet, les équipes
|
||||||
|
en charge ont généralement des habitudes et outillages permettant de
|
||||||
|
réduire les modifications.
|
||||||
|
|
||||||
|
#### debian/source/format
|
||||||
|
|
||||||
|
Devrait toujours contenir `3.0 (quilt)`.
|
||||||
|
|
||||||
|
#### debian/watch
|
||||||
|
|
||||||
|
Adapter en fonction de la distribution des sources amont, c’est ce qui
|
||||||
|
permet d’[importer la dernière version](#nouvelle-version-amont).
|
||||||
|
|
||||||
|
### Nouvelle version amont
|
||||||
|
|
||||||
|
Il faut récupérer la nouvelle version amont (lors des mises à jour
|
||||||
|
amont, et lors de la création du nouveau paquet.
|
||||||
|
Si tout a été configuré correctement (cf. supra pour un nouveau paquet),
|
||||||
|
`gbp import-orig --uscan` (ou `uscan(1)` pour un simple téléchargement)
|
||||||
|
permet d’importer la dernière version amont.
|
||||||
|
|
||||||
|
Les correctifs spécifiques (dans `debian/patches`) peuvent nécessiter
|
||||||
|
une mise à jour s’ils existent (`gbp pq rebase` et `gbp pq export`
|
||||||
|
permettent d’utiliser le workflow Git usuel).
|
||||||
|
|
||||||
|
Il faut enfin mettre à jour le fichier `debian/changelog`, de préférence
|
||||||
|
avec `gbp dch --multimaint-merge -R --commit` qui mets à jour la
|
||||||
|
version, l’auteur, la date et propose des entrées à adapter.
|
||||||
|
|
||||||
|
### Construction du paquet
|
||||||
|
|
||||||
|
`gbp buildpackage` doit fonctionner avec `sbuild` si les étapes de
|
||||||
|
configuration précédentes ont été suivies.
|
||||||
|
|
||||||
|
### Génération de l'arborescence _debian/_ – Méthode traditionnelle
|
||||||
|
|
||||||
Cette étape consiste à créer une arborescence qui constituera le paquet Debian. On peut l'automatiser simplement avec la commande _dh_make_ :
|
Cette étape consiste à créer une arborescence qui constituera le paquet Debian. On peut l'automatiser simplement avec la commande _dh_make_ :
|
||||||
|
|
||||||
|
@ -88,7 +193,7 @@ En utilisant dh_make sans options, il essayera de deviner les informations dont
|
||||||
|
|
||||||
Le type de paquet vous sera demandé lors de l'exécution.
|
Le type de paquet vous sera demandé lors de l'exécution.
|
||||||
|
|
||||||
### Édition de certains fichiers importants
|
#### Édition de certains fichiers importants
|
||||||
|
|
||||||
_dh_make_ a créé de nombreux fichiers dans le répertoire _debian/_. Certains sont indispensables, d'autres moins.
|
_dh_make_ a créé de nombreux fichiers dans le répertoire _debian/_. Certains sont indispensables, d'autres moins.
|
||||||
Par exemple (si vous ne vous en servez pas) vous pouvez supprimer tous les *.ex, des templates servant d'exemple.
|
Par exemple (si vous ne vous en servez pas) vous pouvez supprimer tous les *.ex, des templates servant d'exemple.
|
||||||
|
@ -120,16 +225,6 @@ Si l'on simplement copier un script, on peut par exemple rajouter ceci à la fin
|
||||||
install -m 0755 -o root -g root nom-du-script $(CURDIR)/debian/futur-paquet
|
install -m 0755 -o root -g root nom-du-script $(CURDIR)/debian/futur-paquet
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
### Construction du paquet
|
|
||||||
|
|
||||||
Maintenant nous pouvons construire le paquet à l'aide de la commande :
|
|
||||||
|
|
||||||
~~~
|
|
||||||
$ debuild -us -uc
|
|
||||||
~~~
|
|
||||||
|
|
||||||
Si aucune erreur n'est apparue, votre paquet est prêt à être installé et/ou poussé sur un dépôt non officiel.
|
|
||||||
|
|
||||||
## Manipulation d'un paquet (binaire)
|
## Manipulation d'un paquet (binaire)
|
||||||
|
|
||||||
Pour certaines (mauvaises) raisons, on peut être amené à vouloir modifier un paquet binaire... notamment un maintainer script par exemple.
|
Pour certaines (mauvaises) raisons, on peut être amené à vouloir modifier un paquet binaire... notamment un maintainer script par exemple.
|
||||||
|
|
Loading…
Reference in a new issue