erlug
[Top] [All Lists]

Re: [Erlug] rpm e specfile

To: erlug@xxxxxxxxxxxxxx
Subject: Re: [Erlug] rpm e specfile
From: Davide Bolcioni <db_erlug@xxxxxxxx>
Date: Sat, 18 Dec 2004 17:41:32 +0100
Filippo Biondi ha scritto:
Ciao ragassuoli/e

domandina..

Vorrei fare un pacchetto rpm da alcuni sorgenti che mi sono compilato
da solita procedura
./configure --prefix=...
make

Volendo che fosse chiara anche ad un cretino la lista dei file da
installare, ho dato un bel make install DESTDIR=/tmp/<nome_prg>

ed ora mi ritrovo in tale dir tutti i miei bei file.

Ora viene la parte dura...farmi uno specfile.
Io vorrei includere solo i binari da me compilati e quindi credo debba
inserire nello .spec solo %files e non anche %setup %build etc..

pero' tutti gli spec che ho visto li inseriscono.

Qual e' la differenza?? E' buono un pacchetto con il solo %files?

Non è così che funziona.

Per prima cosa, come giustamente hai fatto, devi mettere a punto la
compilazione di ciò che vuoi distribuire: configure, make e make
install con DESTDIR vanno benissimo.

Ciò fatto, nel costruire lo specfile occorre, tralasciando le
ovvietà:
- impostare Source ed eventualmente SourceN per indicare che cosa
  costituisce il pacchetto;
- eventualmente personalizzare le macro di %prep, %setup, %build e
  %install (ma è meglio se si riesce a farne a meno, viene uno .spec
  meno dipendente dalla distribuzione);
- se occorrono degli script, metterli nei vari %pre e %post (anche
  questo, meglio se si riesce a farne a meno);
- mettere a punto per benino la lista dei %files e soprattutto dei
  relativi attributi, %defattr, %attr e soprattutto %config.

Una volta fatto ciò, con rpmbuild si scatena la costruzione del
.src.rpm e del .i386.rpm o quel che è; dopo di si ha in mano
un .src.rpm da cui partire per realizzare .i386.rpm per varie
distribuzioni e un .i386.rpm da distribuire e che contiene
i soli binari. Se non si può distribuire il sorgente, basta non
distribuire il .src.rpm.

In altri termini, lo specfile descrive l'intero processo, non solo
la parte di distribuzione. Nota che ciò costituisce un miglioramento
rispetto, per esempio, alla pacchettizzazione POSIX con pkgadd e simili.
Nel caso in esame, tra l'altro, il processo pare già a punto e basta
fare per bene la parte dei %files.

Un consiglio: dopo aver realizzato il .src.rpm, un rebuild dello
stesso dovrebbe produrre un .i386.rpm identico al byte a quello del
primo giro. Se così non è, di solito c'è qualcosa che tocca nel
processo e conviene sbrogliarlo subito.

Davide Bolcioni
--
Paranoia is an afterthought.


<Prev in Thread] Current Thread [Next in Thread>