Hardelot wrote:Cela te dérange de me mettre les Lignes de Commande adéquates ?
D'une part c'est un peu plus compliqué que quelques lignes de commandes et d'autre part je ne suis qu'un packageur du dimanche...
Tu trouveras une doc peut être pas très à jour (elle fait encore référence à yum et non à dnf) ici:
https://doc.fedora-fr.org/wiki/RPM_:_environnement_de_construction
L'idée:
Mise en place de l'environnement de création de rpm
Tu installes l'environnement de développement:
$ sudo dnf install rpmdevtools
Dans le répertoire de ton utilisateur tu crées ta structure de développement:
$ rpmdev-setuptree
A la suite de cette commande tu dois avoir dans ce répertoire cette stucture :
$ tree rpmbuild
rpmbuild
├── BUILD
├── RPMS
├── SOURCES
├── SPECS
└── SRPMS
5 directories, 0 files
La commande rpmdev-setuptree créera également le fichier caché .rpmmacros dans le répertoire où elle est passée. Il faut juste conserver ce fichier tel quel.
Récupération et Installation du src du rpm à créer
Ensuite tu te places dans le répertoire rpmbuild que tu viens de créer et tu récupères sur le site de rpmfusion le source de qarte
$ cd rpbbuild
$ wget https://download1.rpmfusion.org/free/fedora/development/rawhide/Everything/source/SRPMS/q/qarte-4.6.0-3.fc31.src.rpm
Une fois que tu as ce source tu l'installes dans l'environnement de développement sans être en root et sans sudo:
$ rpm -ivh qarte-4.6.0-3.fc31.src.rpm
attention : qarte-4.6.0-3.fc31.src.rpm: Entête V3 RSA/SHA1 Signature, clé ID 100bcd92: NOKEY
Mise à jour / installation...
1:qarte-4.6.0-3.fc31 attention : user mockbuild does not exist - using root
################################# [100%]
attention : user mockbuild does not exist - using root
Maintenant tu dois avoir peuplé certains répertoires
$ tree rpmbuild
rpmbuild
├── BUILD
├── qarte-4.6.0-3.fc31.src.rpm
├── RPMS
├── SOURCES
│ └── qarte-4.6.0.tar.gz
├── SPECS
│ └── qarte.spec
└── SRPMS
A ce stade il faut satisfaire toutes les dépendances qui sont demandées dans le fichier .spec avec la commande dnf builddep qui va t'installer ce qu'il te manque
$ sudo dnf builddep SPECS/qarte.spec
Construction du rpm
A partir de là tu peux construire ton rpm
$ rpmbuild -bb --clean SPECS/qarte.spec
A l'issue de cette commande, si le code retour (exit) est 0, tu as qarte-4.6.0-3.fc31.noarch.rpm dans RPMS/noarch
$ tree rpmbuild
rpmbuild
├── BUILD
├── BUILDROOT
├── qarte-4.6.0-3.fc31.src.rpm
├── RPMS
│ └── noarch
│ └── qarte-4.6.0-3.fc31.noarch.rpm
├── SOURCES
│ └── qarte-4.6.0.tar.gz
├── SPECS
│ └── qarte.spec
└── SRPMS
Tu dois être content, tu voulais qarte 4.7 et je viens de t'expliquer la marche à suivre pour construire qarte 4.6 !
Donc à ce stade tu récupères dans SOURCES le fichier .gz de qarte 4.7 à partir du site
http://oqapy.eu
$ cd rpmbuild/SOURCES
$ wget http://www.oqapy.eu/releases/qarte-4.7.0.tar.gz
Et tu vérifies
$ tree rpmbuild
rpmbuild
├── BUILD
├── BUILDROOT
├── qarte-4.6.0-3.fc31.src.rpm
├── RPMS
│ └── noarch
│ └── qarte-4.6.0-3.fc31.noarch.rpm
├── SOURCES
│ ├── qarte-4.6.0.tar.gz
│ └── qarte-4.7.0.tar.gz
├── SPECS
│ └── qarte.spec
└── SRPMS
Tu as bien les sources de 4.6 et 4.7.
Tu vas modifier le fichier spec avec un éditeur (vi, gedit, ... ) pour qu'il pointe sur 4.7
$ vi SPECS/qarte.spec
Tu remplaces
Version: 4.6.0
Release: 3%{?dist}
par
Version: 4.7.0
Release: 1%{?dist}
Et pour que tu saches qui a construit ce rpm tu ajoutes en tête de la partie changelog
%changelog
* Fri Nov 29 2019 Hardelot - 4.7.0-1
- Homemade
Tu n'as plus ensuite qu'à retourner à l'étape de la construction ci-dessus !
Je le répète, je ne suis qu'un packageur du dimanche.