Construisez RPM en utilisant le répertoire source, pas tarball

13

Dans mon organisation, nous déployons tous nos logiciels sur nos machines de production à l'aide de RPM. Notre processus de construction (qui est automatisé) implique la vérification de la source à partir du contrôle de version, la tarification de ce répertoire source, puis l'exécution de rpmbuild à l'aide de l'archive tar source. rpmbuild utilise uniquement cette archive tar pour décompresser les sources pour y travailler. Il semble donc que l'ensemble de l'entreprise de tarage et de non tarage ne soit qu'une étape supplémentaire inutile dans le processus de construction. Existe-t-il un moyen de simplement spécifier le répertoire source dans le fichier de spécifications, en évitant ces étapes supplémentaires?

Eddie
la source

Réponses:

5

Oui, tu peux faire ça. N'énumérer aucun Sourceart. Dans la %prepsection, n'utilisez pas la %setupmacro (qui décompresse la source); vérifiez plutôt la source.

Notez que vous ne pourrez pas créer de SRPM si vous procédez ainsi.

Mark Wagner
la source
Cela suffit. J'ai juste besoin de modifier la procédure de construction pour vérifier les choses dans le répertoire rpm BUILD à la place. Merci!
Eddie
10

Cette question est un peu ancienne, mais au cas où d'autres personnes la trouveraient dans la recherche, il existe un moyen plus correct de le faire qui permet également la création d'un SRPM.

Dans la section de préparation, au lieu d'utiliser la macro d' installation , vous devez simplement taper vous-même ce que vous voulez qu'il fasse, à savoir copier le répertoire source de SOURCES vers BUILD, au lieu de décompresser une archive. J'ai constaté que vous devez également ajouter un CD dans votre répertoire source dans les sections de construction et d'installation.

Exemple d'extrait

%prep
# Don't use the setup macro anymore, replace it with typed-out commands
#%setup -q -n myapp-%{version}
cd %{_topdir}/BUILD
rm -rf myapp-%{version}
cp -rf %{_topdir}/SOURCES/myapp-%{version} .
cd myapp-%{version}
/usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .

%patch1 -p1 -b .cert-config
%patch2

%build
cd myapp-%{version}

%install
cd myapp-%{version}
tdimmig
la source
Devrait l' %{_topdir}/SOURCESêtre %{_sourcedir}? Et %{_topdir}/BUILDpourrait l'être %{buildroot}? (En passant, pour des situations similaires mais différentes où vous essayez d'ajouter des fichiers supplémentaires pour remplacer ceux extraits de %setup, les documents de Fedora recommandent d'utiliser %{SOURCE2}etc - fedoraproject.org/wiki/Packaging:RPM_Source_Dir )
IBBoard