Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| projets:ecole:paquets:packaging_cas_particuliers [Le 18/05/2007, 01:18] – reformulation - part4 (patch debhelper) _Enchained | projets:ecole:paquets:packaging_cas_particuliers [Le 11/09/2022, 13:17] (Version actuelle) – Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) moths-art | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | Article mis en forme par ptitdav69 suite à la séance de formation organisée par [[utilisateurs: | + | {{tag> |
| + | |||
| + | ---- | ||
| ====== Cas particuliers d' | ====== Cas particuliers d' | ||
| + | |||
| + | //Cette page est le compte-rendu de la session classroom organisée par [[: | ||
| + | |||
| Dans ce cours, nous verrons : | Dans ce cours, nous verrons : | ||
| * logiciels ne nécessitant pas de compilation | * logiciels ne nécessitant pas de compilation | ||
| Ligne 12: | Ligne 17: | ||
| Pour suivre ce cours, vous devez connaître les bases du packaging avec [[: | Pour suivre ce cours, vous devez connaître les bases du packaging avec [[: | ||
| - | {{: | + | <note help> |
| - | >**Petit rappel sur le fichier debian/ | + | **Petit rappel sur le fichier debian/ |
| - | >Le fichier // | + | Le fichier // |
| - | > | + | |
| - | >Le but de ce fichier est en fait d' | + | Le but de ce fichier est en fait d' |
| + | </ | ||
| ===== Empaqueter un paquet ne nécessitant pas de compilation ===== | ===== Empaqueter un paquet ne nécessitant pas de compilation ===== | ||
| Tout d' | Tout d' | ||
| - | wget http:// | + | wget http:// |
| tar xvf u-script.tar.gz | tar xvf u-script.tar.gz | ||
| Ligne 37: | Ligne 43: | ||
| * d' | * d' | ||
| - | {{: | + | <note help>A quoi sert un **wrapper** :\\ |
| - | >A quoi sert un **wrapper** : | + | Dans le cadre de ce cours, cela ne sert pas à grand chose mais pour beaucoup de script, le script doit être dans le même dossier que les données ce qui signifie l' |
| - | >Dans le cadre de ce cours, cela ne sert pas à grand chose mais pour beaucoup de script, le script doit être dans le même dossier que les données ce qui signifie l' | + | Dans ce cas, le script n'est pas directement accessible puisqu' |
| - | >Dans ce cas, le script n'est pas directement accessible puisqu' | + | </ |
| **Comment installer ces 2 fichiers ?**\\ | **Comment installer ces 2 fichiers ?**\\ | ||
| Ligne 77: | Ligne 83: | ||
| Le paquet est mis à jour :) | Le paquet est mis à jour :) | ||
| - | {{utilisateurs: | + | <note important> |
| - | >**ATTENTION**, | + | **ATTENTION**, |
| - | >Tout est à revérifier pour une nouvelle version d'un paquet : vérifier que la licence n'a pas changé, que des fichiers n'ont pas été ajoutés... | + | Tout est à revérifier pour une nouvelle version d'un paquet : vérifier que la licence n'a pas changé, que des fichiers n'ont pas été ajoutés... |
| + | </ | ||
| ==== Précisions sur le fichier '' | ==== Précisions sur le fichier '' | ||
| Ligne 86: | Ligne 93: | ||
| < | < | ||
| qui doit toujours être à cette valeur, et | qui doit toujours être à cette valeur, et | ||
| - | < | + | < |
| </ | </ | ||
| - | Le répertoire où se trouvent les sources est donc **http:// | + | Le répertoire où se trouvent les sources est donc **http:// |
| la fin de la ligne est une expression régulière qui laisse le choix pour la version. Les ' | la fin de la ligne est une expression régulière qui laisse le choix pour la version. Les ' | ||
| Ligne 96: | Ligne 103: | ||
| ===== Empaqueter un logiciel en Python ===== | ===== Empaqueter un logiciel en Python ===== | ||
| - | En fait, empaqueter du python c'est comme empaqueter n' | + | En fait, empaqueter du python c'est comme empaqueter n' |
| Pour suivre ce cours, récupérez l' | Pour suivre ce cours, récupérez l' | ||
| - | wget http:// | + | wget http:// |
| Il y a 4 versions du même paquet dans ce paquet source et nous allons commencer avec la version 1.\\ | Il y a 4 versions du même paquet dans ce paquet source et nous allons commencer avec la version 1.\\ | ||
| Ligne 127: | Ligne 134: | ||
| **Depends: ${python: | **Depends: ${python: | ||
| - | {{utilisateurs: | + | < |
| - | >**python: | + | **python: |
| + | </ | ||
| **${python: | **${python: | ||
| Ligne 152: | Ligne 160: | ||
| ===== Patcher des sources ===== | ===== Patcher des sources ===== | ||
| - | |||
| ==== Paquet utilisant Debhelper ==== | ==== Paquet utilisant Debhelper ==== | ||
| Ligne 171: | Ligne 178: | ||
| Ceci permet d' | Ceci permet d' | ||
| - | Bien sûr, le paquet **dpatch** doit être [[:tutoriel_comment_installer_un_paquet|installé]] sur votre système. | + | Bien sûr, le paquet **dpatch** doit être [[:tutoriel: |
| Pour la cible '' | Pour la cible '' | ||
| - | {{: | + | <note important>Si dans le **debian/ |
| - | >Si dans le **debian/ | + | |
| Maintenant que vous savez appliquer les patches, voyons comment en créer ! | Maintenant que vous savez appliquer les patches, voyons comment en créer ! | ||
| Ligne 188: | Ligne 194: | ||
| dpatch-edit-patch 01-makefile | dpatch-edit-patch 01-makefile | ||
| - | {{: | + | <note tip> |
| - | >Quand il y a plusieurs patchs, ils sont appliqués dans l' | + | Quand il y a plusieurs patchs, ils sont appliqués dans l' |
| - | >Commencer leur nom par un chiffre permet de savoir dans quel ordre ils seront appliqués. Lorsque l'on se retrouve avec 15-20 patches, c'est assez pratique. | + | Commencer leur nom par un chiffre permet de savoir dans quel ordre ils seront appliqués. Lorsque l'on se retrouve avec 15-20 patches, c'est assez pratique. |
| - | > | + | |
| - | >le nom du patch est arbitraire. Ici nous nommons le patch **01-makefile** car c'est le premier patch crée (à appliquer) et qu'il agit sur le Makefile... | + | le nom du patch est arbitraire. Ici nous nommons le patch **01-makefile** car c'est le premier patch crée (à appliquer) et qu'il agit sur le Makefile... |
| + | </ | ||
| Nous nous retrouvons dans un **nouveau shell**. | Nous nous retrouvons dans un **nouveau shell**. | ||
| Ligne 216: | Ligne 223: | ||
| debuild -us -uc | debuild -us -uc | ||
| - | Un Warning apparaîtra, | + | Un Warning apparaîtra, |
| < | < | ||
| W: python-helloworld: | W: python-helloworld: | ||
| Ligne 229: | Ligne 236: | ||
| **Python-central** a donc complètement géré les problèmes de version de python (Depends: python, python-central (>= 0.5.8)). | **Python-central** a donc complètement géré les problèmes de version de python (Depends: python, python-central (>= 0.5.8)). | ||
| - | ==== Avec la méthode | + | ==== Paquet utilisant |
| - | Nous allons passer directement à la version 4 du paquet pyhw (la v3 étant la même que la 2 mais version cdbs) | + | Nous allons passer directement à la version 4 de notre paquet |
| - | < | + | |
| - | cd pyhw/v4 && dpkg-source -x *.dsc | + | |
| - | </ | + | |
| - | Aller ensuite dans "debian/ | + | Dans **debian/ |
| - | Regardons maintenant le fichier | + | |
| - | <code> | + | Le fichier |
| + | <file> | ||
| include / | include / | ||
| - | </code> | + | </file> |
| - | Cette ligne permet d'inclure tout le système de patch et tout fichier avec extension .patch | + | qui sert à inclure tout le système de patch de CDBS qui traitera tous fichier avec extension .patch |
| + | |||
| + | Nous allons refaire le 2ème patch du paquet. Celui-ci corrigera le //Warning// que nous avons eu plus haut. | ||
| + | |||
| + | Supprimer donc le fichier **debian/ | ||
| + | cdbs-edit-patch 02-shebang | ||
| + | |||
| + | Ce //Warning// est assez courant avec tous les scripts et les modules python sont pas destinés à être exécutés et donc le shebang (# | ||
| + | |||
| + | Il faut donc supprimer la première ligne du fichier **src/ | ||
| + | |||
| + | Une fois la modification effectuée, tapez | ||
| + | exit 0 | ||
| + | pour quitter cdbs-edit-patch. | ||
| + | |||
| + | Votre patch est créé. | ||
| - | Nous allons refaire le 2ème patch, celui-ci corrigera le Warning que nous avons eu lors de la précédente compilation (pyhw version 2). | + | ===== Liens ===== |
| - | Pour cela, supprimer le fichier // | + | |
| - | < | + | |
| - | Ce warning est assez courant avec tous les scripts et les modules python sont pas destinés à être exécutés et donc le shebang (#!/usr/bin/env python) n'est pas à sa place. | + | * [[https://wiki.ubuntu.com/MOTU/ |
| - | Il faut donc supprimer la première ligne du fichier | + | * [[http://wiki.debian.org/DebianPython/NewPolicy|(en) Debian Python NewPolicy]] |
| - | Une fois que c'est fait, entrer '// | + | ---- |
| - | Lien pour les patchs | + | // |
