Rpmbuild avec modifications (ajout de patch) : Différence entre versions

De TechWik
Aller à : navigation, rechercher
m
m
Ligne 1 : Ligne 1 :
 
Voir https://wiki.centos.org/HowTos/RebuildSRPM .
 
Voir https://wiki.centos.org/HowTos/RebuildSRPM .
  
# installer le rpm source, puis extraire les sources:
+
==installer le rpm source==
 +
puis extraire les sources:
 
   $ rpm -i mypackage.src.rpm
 
   $ rpm -i mypackage.src.rpm
 
   $ cd ~/rpmbuild/SPECS/  
 
   $ cd ~/rpmbuild/SPECS/  
 
   rpmbuild -bp mypackage.spec  
 
   rpmbuild -bp mypackage.spec  
# trouver le fichier à modifier dans l'arborescence extraite dans ~/rpmbuild/BUILD/
+
==trouver le fichier à modifier==
 +
Dans l'arborescence extraite sous ~/rpmbuild/BUILD/ :
 
   $ cd ~/rpmbuild/BUILD/
 
   $ cd ~/rpmbuild/BUILD/
 
   $ find . -name "fichier-origine"
 
   $ find . -name "fichier-origine"
# copier le fichier origine avant de le modifier
+
==copier le fichier origine avant de le modifier==
 
   $ cp repertoire-package/fichier-origine repertoire-package/fichier.nompatch
 
   $ cp repertoire-package/fichier-origine repertoire-package/fichier.nompatch
# modifier le fichier repertoire-package/fichier.nompatch
+
==modifier le fichier repertoire-package/fichier.nompatch==
# créer le fichier de patch avec diff:
+
==créer le fichier de patch avec diff:==
 
   $ diff -Npru repertoire-package/fichier-origine repertoire-package/fichier.nompatch > ~/rpmbuild/SOURCES/nompatch.patch  
 
   $ diff -Npru repertoire-package/fichier-origine repertoire-package/fichier.nompatch > ~/rpmbuild/SOURCES/nompatch.patch  
# éditer mypackage.spec et ajouter la définition du nouveau patch : voir dans le fichier pour un patch existant, il y a 2 entrées, par ex:
+
editer le fichier .patch pour adapter les 3 premières lignes qui seront nécessaires à patch (cf man patch et options passées dans le fichier spec ci-dessous). A noter: patch va chercher le nom du fichier dans la 3eme ligne.
 +
 
 +
==éditer mypackage.spec et ajouter la définition du nouveau patch ==
 +
Voir dans le fichier pour un patch existant, il y a 2 entrées, par ex:
 
   $ cd ~/rpmbuild/SPECS/
 
   $ cd ~/rpmbuild/SPECS/
 
   $ vi mypackage.spec
 
   $ vi mypackage.spec
Ligne 22 : Ligne 27 :
 
   ...
 
   ...
  
# fabriquer le package modifié:
+
==fabriquer le package modifié==
 
   $ rpmbuild -ba mypackage.spec
 
   $ rpmbuild -ba mypackage.spec
  
 
[[Category:Redhat]]
 
[[Category:Redhat]]
 
[[Category:RPM]]
 
[[Category:RPM]]

Version du 17 juillet 2018 à 15:42

Voir https://wiki.centos.org/HowTos/RebuildSRPM .

installer le rpm source

puis extraire les sources:

 $ rpm -i mypackage.src.rpm
 $ cd ~/rpmbuild/SPECS/ 
 rpmbuild -bp mypackage.spec 

trouver le fichier à modifier

Dans l'arborescence extraite sous ~/rpmbuild/BUILD/ :

 $ cd ~/rpmbuild/BUILD/
 $ find . -name "fichier-origine"

copier le fichier origine avant de le modifier

 $ cp repertoire-package/fichier-origine repertoire-package/fichier.nompatch

modifier le fichier repertoire-package/fichier.nompatch

créer le fichier de patch avec diff:

 $ diff -Npru repertoire-package/fichier-origine repertoire-package/fichier.nompatch > ~/rpmbuild/SOURCES/nompatch.patch 

editer le fichier .patch pour adapter les 3 premières lignes qui seront nécessaires à patch (cf man patch et options passées dans le fichier spec ci-dessous). A noter: patch va chercher le nom du fichier dans la 3eme ligne.

éditer mypackage.spec et ajouter la définition du nouveau patch

Voir dans le fichier pour un patch existant, il y a 2 entrées, par ex:

 $ cd ~/rpmbuild/SPECS/
 $ vi mypackage.spec
 ... 
 Patch153: log2syslog.patch
 ...
 %patch153 -p1 -b .log2syslog
 ...

fabriquer le package modifié

 $ rpmbuild -ba mypackage.spec