[fedora-fr-doc] SPEC et patch

Maxime Carron maxime.carron at fedoraproject.org
Lun 18 Déc 12:27:32 CET 2006


Bon la discution commence à etre enorme, et à partir dans tous les sens.

Moi aussi je lance ma branche!!


Donc comme promis trashy, le cafouillage sur le patch. (La revue des
experts est naturellement indispensable)



        * On fait une copie de sauvegarde du fichier à modifier (on lui
        ajoute un extension explicite et unique, par exemple .max_ext) ;
        	$ cp fichier fichier.max_ext
        * On modifie l'original (celui qui s'appelle 'fichier') comme on
        le désire ;
        * On génère un patch avec gendiff :
        	cd ~/rpmbuild/BUILD
        	gendiff dossier .max_ext
        > ../SOURCES/nom_du_soft-version-max_ext.patch
        * On indique dans le specfile qu'il faut ajouter le patch
        
        ...
        Patch0:		PyPar2-0.10-max_ext.patch  //On donne le nom du patch
        ...
        %prep
        %setup -q -n PyPar2-%{version}
        %patch0 -p1 -b .max_prefix  //On l'applique
        ...

L'interet de l'extension se revele lorsqu'un patch mais plusieurs
fichiers en jeu, et qu'il y a plusieurs problemes à patcher.
Voici un exemple pour clarifier la chose :
Soit 10 fichiers : f0, f1, .., f9
et deux problemes à patcher.

f1, et f4 sont modifiés pour resoudre le problème A, donc f1 et f4
seront copié sous les noms f1.fixA et f4.fixA, puis modifié comme il le
faut, selon la methode expliquée plus haut.

f2, f7, f8, et f9 doivent etre modifiés pour résoudre le probleme B.
Idem on a {f2, f7, f8,f9}.fixB

On applique deux fois gendiff, comme vu plus haut. On obtient deux
patchs. 1 par probleme, qui chacun modifie plusieurs fichiers.
Ainsi, malgré la complexité du problème on conserve un specfile propre
et simple.


Voilà de ce que j'ai compris du fonctionnement.
J'avais fait des tests pour m'entrainer (meme si ils ne servaient à
rien)


Quelques cas où le patch ne devrait, selon moi, pas etre utilisé :
ex : un Makefile un peu moche dit : prefix=/usr/local
alors que nous on préfèrerait : /usr

On pourrait faire un patch, mais on pourrait aussi indiqué dans le
specfile tout simplement :
make install DESTDIR=%{buildroot} prefix=%{_prefix}

Le patch, dans le cas d'une opération aussi simple que celle-ci vient
plus compliqué la tache du reviewer qu'autre chose.


Remi, chithles, christophe, à vos claviers.

Johan > j'espère que j'ai été à peu pres clair.

A+
-- 
Maxime Carron <maxime.carron at fedoraproject.org>
Fedora Ambassador
Fedora-fr Community Manager
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://mailing-list.fedora-fr.org/pipermail/fedora-fr-doc/attachments/20061218/0713715d/attachment.html>


Plus d'informations sur la liste de diffusion fedora-fr-doc