Non mi si "forma" il pacchetto rpm in RPMS

Salve,
sto studiando per imparare a pacchettizzare per fedora, utilizzando il wiki "How to create a RPM package/it Fedora Project.
Per esercitarmi ho scaricato mpg123, perché non mi sembrava complicato e poi non lo trovavo nei repositories.
Ho eseguito passo passo le indicazioni:

[list=]
]scaricato gli strumenti/]
[/list]
[list=
]
]creato un nuovo utente/]
[/list]
[list=*]
]creato il file mpg123.spec/]
[/list]

Il file *.spec non l’ho compilato interamente io. Ho compilato solo le voci che mi sembravano le pià accessibili.

Poi ho lanciato il comando

$ rpmbuild -ba mpg123.spec

Ma invece di trovarmi il pacchetto mpg123.rpm nella directory RPMS, mi sono trovato il programmino configurato in BUILD.
Vorrei capire dove ho sbagliato, ma vorrei soprattutto sapere che tipo di informazioni vi servono oltre a queste, per potermi dare una mano.
Grazie
Ciao ciao
p.

p.s. Inoltre questo è il luogo giusto per porre questi quesiti?

Se non ha creato gli RPM binari avrà dato qualche messaggio di errore. Controlla cosa dice e se non capisci cosa fare postalo qua

Salve,
per essere sicuri di fare le cose giuste devo ridare il comando:

$ rpmbuild -ba mpg123.spec

Stasera lo ridò poi ti posto i messaggi, magari tramite pastebin
Grazie
p.

Sì, dalla directory in cui si trova il file SPEC.

Si, avevo capito dalla directory SPECS

Questo è il risultato finale:

....
Elaborazione file: mpg123-1.14.4-1.i686
errore: File non trovato da glob: /home/makerpm/rpmbuild/BUILDROOT/mpg123-1.14.4-1.i386/usr/lib/mpg123/output_*.la
errore: File non trovato da glob: /home/makerpm/rpmbuild/BUILDROOT/mpg123-1.14.4-1.i386/usr/lib/mpg123/output_*.so


Errori di compilazione RPM:
    File non trovato da glob: /home/makerpm/rpmbuild/BUILDROOT/mpg123-1.14.4-1.i386/usr/lib/mpg123/output_*.la
    File non trovato da glob: /home/makerpm/rpmbuild/BUILDROOT/mpg123-1.14.4-1.i386/usr/lib/mpg123/output_*.so
[[email protected] SPECS]$ 

Di più non riesco perché non mi appare tutta la videata da console.

Se può essere utile vi mando il file mpg123.spec .
Grazie

Magari …

Vi mando il collegamento con pastebin.

http://pastebin.com/yf4CqRKw

Grazie

L’ho provato e dovrebbe andare

Nella directory BUILDROOT sono presenti i file che chiede?
Da utente makerpm:

$ tree ~/rpmbuild/BUILDROOT/

In caso prova a modificare la sezione %files da così:

%{_libdir}/mpg123/output_*.la %{_libdir}/mpg123/output_*.so
a così:

%{_libdir}/mpg123/*

Ciao!

Salve,
ti posto il comando:

$ tree ~/rpmbuild/BUILDROOT/

http://pastebin.com/ndvVp0k3

Nel frattempo correggo come tu mi hai scritto.
Aspetto per lanciare il comando un tuo assenso.
Grazie

[quote=panoramix]Vi mando il collegamento con pastebin.

http://pastebin.com/yf4CqRKw

Grazie

L’ho provato e dovrebbe andare[/quote]

Mi sembra di vedere diversi errori già dalle prime righe:

[code]Summary: The fast console mpeg audio decoder/player.
Name: mpg123
Version: 1.14.4
Release: 1
URL: http://www.mpg123.org/
License: GPL
Group: Applications/Multimedia
Packager: Michael Ryzhykh [email protected]
Source: http://www.mpg123.org/download/mpg123-%{version}.tar.bz2
BuildRoot: %_tmppath/%name-%version
Prefix: /usr

That is specific to fedora 4 already.

#BuildPrereq: libtool-ltdl-devel

%description
This is a console based decoder/player for mono/stereo mpeg audio files,
probably more familiar as MP3 or MP2 files. It’s focus is speed.
It can play MPEG1.0/2.0/2.5 layer I, II, II (1, 2, 3;-) files
(VBR files are fine, too) and produce output on a number of different ways:
raw data to stdout and different sound systems depending on your platform.

%package devel
Summary: Files needed for development with mpg123
Group: Development/Libraries

%description devel
Libraries and header files for development with mpg123.

%prep
%setup -q -n %name-%version

[/code]

aldilà delle voci Release e License che sono da rivedere, dove sono le BuildRequires ? Sei sicuro di aver installato tutte le dipendenze necessarie ?
Solitamente io testo la compilazione e l’installazione del software da pacchettizzare prima manualmente, per vedere se va tutto ok, e dove installa i propri file …

PS
Sai che mpeg123 è già pacchettizzato per Fedora ?

Si lo so che è già pacchettizzata, però volevo fare una prova per imparare.
Tanto è vero che l’ho installato da sorgenti, visto che funzionava ho tentato la pacchettizzazione.
Mi sono trovato impelagato nel creare il file mpg123.spec, che ho bypassato mettendo i dati di cui ero sicuro.
Magari apro un altro post per capire come compilare il file *.spec

Altrimenti consigliami un programmino meno difficile da pacchettizzare, per iniziare.

Adesso però, fatte le modifiche che mi dicevi e ricompilandolo mi dava questo messaggio:

[[email protected] SPECS]# rpmbuild -ba mpg123.spec
errore: File /root/rpmbuild/SOURCES/mpg123-1.14.4.tar.bz2: File o directory non esistente
[[email protected] SPECS]# 

Non ho capito perché è andato a cercare il file sorgente in /root/ e non in /home/makerpm.
L’ho ricompilato e le ultime righe sono state:

cpio: /builddir/build/BUILD/gcc-4.7.2-20120921/obj-i686-redhat-linux/i686-redhat-linux/libgcc: Cannot stat: No such file or directory
1894 blocks
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-compress
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1
+ /usr/lib/rpm/redhat/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-java-repack-jars
Elaborazione file: mpg123-1.14.4-1.i686
errore: File non trovato da glob: /root/rpmbuild/BUILDROOT/mpg123-1.14.4-1.i386/usr/lib/mpg123/output_*.la
errore: File non trovato da glob: /root/rpmbuild/BUILDROOT/mpg123-1.14.4-1.i386/usr/lib/mpg123/output_*.so


Errori di compilazione RPM:
    File non trovato da glob: /root/rpmbuild/BUILDROOT/mpg123-1.14.4-1.i386/usr/lib/mpg123/output_*.la
    File non trovato da glob: /root/rpmbuild/BUILDROOT/mpg123-1.14.4-1.i386/usr/lib/mpg123/output_*.so
[[email protected] SPECS]# 

Questo lo butterò via e ne pacchettizzerò un altro.
Consigli?

Veramente non ti ho dato alcuna modifica :slight_smile:
Ti dicevo che tanto per iniziare mancavano le librerie di sviluppo per la compilazione.

Allora se fossi in te inizierei con lo studio di un file .spec completo e funzionante anche dello stesso mpeg123, leggendo man mano le wiki del fedoraproject per approfondire ogni singola voce.

Salve,
è quello che ho tentato di fare, ma non tutto mi è senbrato chiaro.
Adesso “butto via tutto” e rifaccio daccapo, tenendo sempre sott’occhio la guida “How to create an RPM package/it”, come al solito.
Se non è di disturbo o contro la netiquette, posterò le mie difficoltà nel “comprendere” alcune voci.

@trpost

Non intendevo riferirmi a te, ma a bebo_sudo che mi ha dato questo consiglio:

In caso prova a modificare la sezione %files da così:
%{_libdir}/mpg123/output_*.la
%{_libdir}/mpg123/output_*.so

a così:

%{_libdir}/mpg123/*

Ciao!

Erano dei consigli per vedere se veramente non esistevano quei file. Ho visto dal tuo output invece che usi root per compilare il pacchetto: MAI farlo, anche perché maneggi codice sorgente che non sai mai troppo bene da dove viene e cosa contiene.

Per vedere degli spec di mpg123 ho trovato con una semplice ricerca https://github.com/repoforge/rpms/blob/master/specs/mpg123/mpg123.spec. Non so quanto sia aggiornato e se è per fedora. Se vuoi avere lo spec più recente puoi fare così:

$ mkdir mpg123; cd mpg123 $ yumdownloader --source mpg123 $ rpm2cpio mpg123*.src.rpm | cpio -id
e ti troverai tutti i file del src.rpm, quindi anche lo spec, nella cartella mpg123.
Poi un buon inizio è imparare a confrontare lo spec con la guida, e poi trovare un sorgente non pacchettizzato e “giocarci”. Poi con calma vorrai pacchettizzare il mondo :wink:
Ciao!

Grazie,
ptobabilmente ho capito male la guida.
Ho pensato che si potesse pacchettizzare solo da /root.
Riproverò con i vostri consigli e ci sentiremo presto: o per raccontarvi i successi o per chiedervi consiglio sugli insuccessi.
Grazie
p.