glug: [MDK] Creare un RPM da sorgenti

Angelo Naselli na_spa@libero.it
Sab 26 Feb 2005 14:25:56 CET


Alle 11:41, sabato 26 febbraio 2005, Stefano Arrighi ha scritto:
> 'giorno a tutti!
>
> Ho recentemente installato la versione 10.1 di Mandrake grazie alla
> quale sono riuscito ad utilizzare con successo il comando rpm --rebuild
> così come mi avevate consigliato di fare (ancora grazie!).
>
> Prendendo spunto dai vostri consigli ho provato anche a fare un passo in
> avanti "sfogliando"  l' rpmHOWTO di Mandrake e tentando di creare un rpm
> per un piccolo programma (extract-xiso:
> http://sourceforge.net/projects/extract-xiso ). Sfortunatamente ho
> riscontrato un po' di problemi :) :
>
> ---------------------------------------------------------------------------
>---------------------------------------------------------------
> [ste@localhost SOURCES]$ rpm -bi extract-xiso.spec
> .....
> .....
> .....
> RPM build errors:
>     Bad exit status from /home/ste/rpm/tmp/rpm-tmp.78918 (%prep)

Dovresti usare -ba per costruire tutto e -bi solo per l'ultima fase 
(istallazione)
Comunque  /home/ste/rpm/tmp/rpm-tmp.78918 (%prep)
ti dice che è fallito nella fase %prep e nel file dovresti trovare perché.
il file spec mettilo in SPECS non in SOURCES dove invece stanno 
i sorgenti e le patch (in formato compresso), inoltre in BUILD trovi
i sorgenti scompattati pronti ad essere compilati. Se fallisse in compilazione
puoi andare nella sottodirectory di BUILD opportuna e provare i passi a
 mano....
Temo comunque tu abbia sbagliato il nome del file da scompattare o
la directory dove compilare.

> Ho scaricato il file  extract-xiso_src_v2.4b2.tar.bz in
> /home/ste/rpm/SOURCES/ e tramite bzme l'ho trasformato in un bz2. L'ho
> poi _rinominato_ (per comodità) extract-xiso-v2.4b2.tar.bz2.


> %define version v2.4b2
> %define release 1mdk
> %define tmppath /home/ste/rpm/tmp
>
>
>
> Name: %{name}
> Summary: blablabla
> Version: %{version}
> Release: %{release}
> Source: http://bla.bla.bla/%{name}-%{version}.tar.bz2
> URL: http://sourceforge.net/projects/extract-xiso
> Group: Archiving/Backup
> BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
> License: Modified BSL
>
> %description
> blalbalba
>
> %prep
> rm -rf $RPM_BUILD_ROOT
> %setup -a 0

%setup -q -n %{name}-%{version}
dovrebbe crearti la directory name-version sotto build

Seis sicuro che sia opportuno mettere v2.4b2 il "v" nella versione?
potresti avere problemi di upgrade in caso venisse tolta (finché i codici
ascii dei numeri sono inferiori....)

%define version 2.4
## Distribution Specific Release Tag
%{?!mkrel: %define mkrel(c:) %{-c:0.%{-c*}.}%{!?_with_unstable:%(perl -e 
'$_="%{1}";m/(.\*)(\\d+)$/;$rel=${2}-1;re;print "$1$rel";').%{?subrel:
%subrel}%{!?subrel:1}.%{?distversion:%distversion}%{?!distversion:%(echo 
$[%{mdkversion}/10])}}%{?_with_unstable:%{1}}%{?distsuffix:
%distsuffix}%{?!distsuffix:mdk}}
%define release 0.b2.%mkrel 1

Ed in 
%setup -q -n %{name}-v%{version}b2

La macro %mkrel è stata recentemente introdotta (per la versione mdk 10.2)
per garantire il backporting delle applicazioni e l'upgradability delle stesse
in release successive. Visto che la 10.1 non ce l'ha ti consiglio di metterla
(tutta su una riga) In modo che aggiunga il postfisso 101mdk alla versione.

Il pacchetto finale sarà 2.4-0.b2.1mdk senza mkrel ed 2.4-0.b2.0.1.101mdk
(2.4-0.b2 garantisce che il 2.4.0 sia maggiore della beta2).

> Vado poi con il comando rpm -bi mypackage.spec   (in modo da fermare il
> processo prima dell'installazione per poter vedere quali files
> aggiungere nella sezione %files, come da HOWTO) ed ottengo:
si ma dopo che l'hai compilato cioè provi con -ba fallisce perché non ha tolto
dei files, li aggiungi alla sezione %file e provi con il comando
rpm -bi --short-circuit mypackage.spec  
altrimenti ripete tutto da capo...

Ciao
   Angelo
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: non disponibile
Url:         http://lists.linux.it/pipermail/glug/attachments/20050226/b12852f7/attachment.pgp


Maggiori informazioni sulla lista glug