creare pacchetti con Pbuilder

Coordinamento delle attività e informazioni sui progetti del gruppo: creazione, modifica e gestione dei pacchetti di Ubuntu e relative problematiche.

Moderatore: Gruppo Sviluppo

Scrivi risposta
Avatar utente
Dando_Sando
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 296
Iscrizione: mercoledì 6 settembre 2006, 20:00
Località: Umbria
Contatti:

creare pacchetti con Pbuilder

Messaggio da Dando_Sando »

Salve a tutti.
Volevo iniziare a capire come si pacchettizza, ed ho quindi cominciato a leggere alcune guide al riguardo tipo:
http://help.ubuntu-it.org/7.04/ubuntu/packagingguide/it/basic-debhelper.html
http://wiki.ubuntu-it.org/Programmazione/Pbuilder
http://www.debian.org/doc/maint-guide/

e a fare qualche prova (molto deludente  :'()

Ho provato a pacchettizzare wicd con la seguente serie di comandi:

Codice: Seleziona tutto

$ dh_make -e dando.sando@gmail.com -s -f ../wicd-1.5.1.tar.gz 
e già ottengo il primo campanello di allarme:

Codice: Seleziona tutto

Currently there is no top level Makefile. This may require additional tuning.
You already have a debian/ subdirectory in the source tree.
dh_make will not try to overwrite anything.
proseguo con:

Codice: Seleziona tutto

$ debuild -S -k0xD2ED606B

$ sudo pbuilder build --basetgz /var/cache/pbuilder/hardy.tgz --distribution hardy ../*.dsc 
e qui arriva il disastro:

Codice: Seleziona tutto

# Add here commands to compile the package.
/usr/bin/make
make[1]: Entering directory `/tmp/buildd/wicd-1.5.1'
make[1]: *** No targets specified and no makefile found.  Stop.
make[1]: Leaving directory `/tmp/buildd/wicd-1.5.1'
make: *** [build-stamp] Error 2
dpkg-buildpackage: failure: debian/rules build gave error exit status 2
pbuilder: Failed autobuilding of package
 -> Aborting with an error
 -> unmounting dev/pts filesystem
 -> unmounting proc filesystem
 -> cleaning the build env 
    -> removing directory /var/cache/pbuilder/build//12887 and its subdirectories
Scusate per la banalità del quesito ma non riesco a capire....
Alex M0rF3uS
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2362
Iscrizione: venerdì 13 luglio 2007, 18:43
Contatti:

Re: creare pacchetti con Pbuilder

Messaggio da Alex M0rF3uS »

personalmente non uso pbuilder ma da quello che mi dici sembra che tu non debba utilizzare dh_make in quanto...
You already have a debian/ subdirectory in the source tree.
quindi devi solo provare a compilare /pacchettizzare.

Se non devi utilizzare pbuilder per motivi particolari io proverei con

Codice: Seleziona tutto

fakeroot debian/rules binary
Avatar utente
monolite
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 272
Iscrizione: martedì 6 maggio 2008, 14:22
Contatti:

Re: creare pacchetti con Pbuilder

Messaggio da monolite »

uso dh_make con molta soddisfazione ed in effetti ormai settimanalmente rilascio pacchetti aggiornati di amule cvs sul mio blog:)
Dh_make è la cosà migliore che ci sia a mio modo di vedere:)

nel sorgente una volta scompattato all'interno mi assicuro che non ci siano cartelle chiamate debian che altrimenti rimuovo.
Mi assicuro che il file scompattato e la cartella abbiano un nome come questo ad es amule-2.21, quindi dopo il nome del programmae il trattino deve seguire la versione.
quindi lancio in sequenza e al massimo modifico il file control creato come da comando e via:)

./configure
make
dh_make -s -e xxxx@xxxxxx.xx -n -c gpl (al posto delle x il nome della propria mail)
debuild binary
Alex M0rF3uS
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2362
Iscrizione: venerdì 13 luglio 2007, 18:43
Contatti:

Re: creare pacchetti con Pbuilder

Messaggio da Alex M0rF3uS »

niente di più sbagliato.
se c'è già una cartella debian devi utilizzare quella perchè significa che il programmatore ha previsto un set di pacchetti con relative dipendenze ecc...
infatti se pacchettizzi amule con la sua cartella debian vedrai come ti produce più di un pacchetto ed è cosi che deve essere fatto...

p.s. non ho detto che non si deve utilizzare dh_make, ma che in questo caso dh_make è inutile utilizzarlo perchè c'è già una cartella debian, dh_make infatti fa solo quello, ti crea la cartella debian necessaria per pacchettizzare, ma tu mica pacchettizzi con dh_make lo fai con debuild binary, dpkg-buildpackage, pbuilder, ecc ecc ecc
Ultima modifica di Alex M0rF3uS il domenica 24 agosto 2008, 19:40, modificato 1 volta in totale.
Avatar utente
monolite
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 272
Iscrizione: martedì 6 maggio 2008, 14:22
Contatti:

Re: creare pacchetti con Pbuilder

Messaggio da monolite »

lo so che produce più di un pacchetto...ma a me non interessa avere un pacchetto per cento cinquanta cose :) le icone ciccio, il salame ecc...sbaglio o mi sembra che nei repo ci siano solo du pacchetti di amule...:) uno se lo crea come si vuole...i pacchetti che faccio vanno benissimo pesano 2,30 mega e nessuno si è mai lamentato:)
cedi un po' tu...bisogna essere elastici e plasmare le cose come gli servono:)

p.s dimenticavo è per quello che uso dh_make per ricrearmi la cartella debian...non voglio pacchettizzare come hanno detto loro
Alex M0rF3uS
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2362
Iscrizione: venerdì 13 luglio 2007, 18:43
Contatti:

Re: creare pacchetti con Pbuilder

Messaggio da Alex M0rF3uS »

perchè nei repo hai amule base e basta, con i sorgenti puoi pacchettizzare anche i tool per il webserver, il demone, la linea di comando ecc ecc...per pacchetti che poi devono essere pubblici è più giusto mantenere le linee guida del progetto.
Poi cmq ognuno fa come crede, io nel mio repo pacchettizzo i sorgenti con la cartella debian originale proprio perchè deve essere l'utente a scegliere cosa vuole non io per lui.
Avatar utente
monolite
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 272
Iscrizione: martedì 6 maggio 2008, 14:22
Contatti:

Re: creare pacchetti con Pbuilder

Messaggio da monolite »

Giustamente ognuno fa ciò che vuole:)...io preferisco così e se a qualcuno piace mi fa piacere:)se non piace mi va bene lo stesso...
Ognuno compie le proprie scelte in base a ciò che personalmente gli occorre:)
Per amule preferisco avere il programma con quasi tutto incorporato, se poi chi ha scaricato il mio pacchetto lo trova pesante e preferisce altro gli basta un aptitude purge amule e finisce il problema:) nessuno impone niente. Son altri ad imporre se ci pensi bene....almeno noi abbiamo due vie, la mia e la tua:)quella giusta non c'è in linea di massima...ma avere più scelte e meglio di una.
Meglio la carne che l'osso:)....preferisco avere sostanza che lo scarto di un qualcuno che mi ha imposto di mangiare quello...
Avatar utente
Dando_Sando
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 296
Iscrizione: mercoledì 6 settembre 2006, 20:00
Località: Umbria
Contatti:

Re: creare pacchetti con Pbuilder

Messaggio da Dando_Sando »

M0rF3uS ha scritto:p.s. non ho detto che non si deve utilizzare dh_make, ma che in questo caso dh_make è inutile utilizzarlo perchè c'è già una cartella debian, dh_make infatti fa solo quello, ti crea la cartella debian necessaria per pacchettizzare, ma tu mica pacchettizzi con dh_make lo fai con debuild binary, dpkg-buildpackage, pbuilder, ecc ecc ecc
La cartella debian è stata creata con dh_make, prima non c'era.

Non sono assolutamente un esperto, (infatti eccomi a chiedere aiuto), ma non potrebbe essere che devo modificare il file ./debian/rules ?

Infatti ho provato a pacchettizzare altri software sempre con lo stesso risultato...
Alex M0rF3uS
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2362
Iscrizione: venerdì 13 luglio 2007, 18:43
Contatti:

Re: creare pacchetti con Pbuilder

Messaggio da Alex M0rF3uS »

penso che il problema sia nei sorgenti, pbuilder fallisce perchè non trova il makefile e quindi non può compilare, l'hai dato il configure prima? ci deve essere un readme dentro i sorgenti dagli un occhio per alcuni archivi devi utilizzare autogen/autoconf/automake
Avatar utente
melchiorre
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 902
Iscrizione: martedì 28 marzo 2006, 0:43
Contatti:

Re: creare pacchetti con Pbuilder

Messaggio da melchiorre »

Allora, in generale i passaggi per compilare con pbuilder sono 3:

1) dh_make con cui crei la cartella debian in cui ci sono tutti i file necessari per la compilazione sotto i sistemi debian, tra cui changelog che indicia il SO su cui si compila e i cambiamenti di versione, il file control che indica fra le altre cose le dipendenze necessarie e il file rules che contiene le regole per la compilazione.

2) debuild, crea i pacchetti necessari per la compilazione vera e propria, tra cui il file .changes e il file .dsc.
Se non hai già creato il pacchetto sorgente .orig basta dare il comando debuild -S -sa, se lo hai già creato dai debuild -S- sd

3)pbuilder, crea il pacchetto deb, di solito con il comando sudo pbuilder build ./nomedilfile.dsc. Prima di usare pbuilder deve essere preparato come da wiki, basta prepararlo una volta dicendogli fra le altre cose il SO di riferimento.
Se le dipendenze o il file rules nella cartella debian sono "sbagliati", ovviamente pbuilder non creerà il pacchetto, ti darà l'errore e tu dovrai sistemare gli errori.

Se vuoi un consiglio usa i file rules e control già pronti in ubuntu usandoli per le nuove versione. Ad esempio se vuoi compilare la nuova versione di nted, fai apt-get source nted, lui ti scaricherà i sorgenti tra cui la cartella debian, e usa i vari file come modello per creare il tuo pacchetto aggiornato.
Ultima modifica di melchiorre il lunedì 25 agosto 2008, 14:50, modificato 1 volta in totale.
Alex M0rF3uS
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2362
Iscrizione: venerdì 13 luglio 2007, 18:43
Contatti:

Re: creare pacchetti con Pbuilder

Messaggio da Alex M0rF3uS »

melchiorre ha scritto: Se vuoi un consiglio usa i file rules e control già pronti in ubuntu usandoli per le nuove versione. Ad esempio se vuoi compilare la nuova versione di nted, fai apt-get source nted, lui ti scaricherà i sorgenti tra cui la cartella debian, e usa i vari file come modello per creare il tuo pacchetto aggiornato.
questa è un ottima idea...quoto (tra l'altro è quello che ho detto prima io ossia di utilizzare la cartella debian pre-esistente, se disponibile ovviamente)
Avatar utente
monolite
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 272
Iscrizione: martedì 6 maggio 2008, 14:22
Contatti:

Re: creare pacchetti con Pbuilder

Messaggio da monolite »

se il programma è già compreso nei repo ed è installato, lo so è una stupidata, può essere utile come linea guida per editare bene il file control, averne quindi uno già fatto e consultabile. Per vederelo ad esempio per amsn basta dare un aptitude show amsn:)
E' stupido ma può servire se non si conoscono alcune dipendenze o si vuole avere un'idea di come scrivere il file:)
Alex M0rF3uS
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2362
Iscrizione: venerdì 13 luglio 2007, 18:43
Contatti:

Re: creare pacchetti con Pbuilder

Messaggio da Alex M0rF3uS »

non sempre, magari il pacchetti nei repo è troppo poco aggiornato e vi è l'esigenza di un pacchetto più "fresco" ;)
Avatar utente
telperion
Rampante Reduce
Rampante Reduce
Messaggi: 5407
Iscrizione: lunedì 10 luglio 2006, 18:20

Re: creare pacchetti con Pbuilder

Messaggio da telperion »

monolite ha scritto: se il programma è già compreso nei repo ed è installato, lo so è una stupidata, può essere utile come linea guida per editare bene il file control, averne quindi uno già fatto e consultabile. Per vederelo ad esempio per amsn basta dare un aptitude show amsn:)
E' stupido ma può servire se non si conoscono alcune dipendenze o si vuole avere un'idea di come scrivere il file:)
dh_make mette già automaticamente le dipendenze (almeno per i programmi standard configure make)
per essere precisi se come fai tu metti amule in un solo pacchetto (cosa perfettamente lecita, anzi io ODIO i 300  pacchettini del menga) dovresti aggiungere in control conflict tutti i pacchetti che sostituisce, in modo che sia necessario rimuoverli prima dell'installazione e sia impossibile installarli dopo.
Avatar utente
monolite
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 272
Iscrizione: martedì 6 maggio 2008, 14:22
Contatti:

Re: creare pacchetti con Pbuilder

Messaggio da monolite »

@ telperion:) ottimo suggerimento...cmq. alcune cose già le avevo fatte ad esempio per amule...ovviamente non sono un eccelso "pacchettizatore" però fin'ora non ho creato danni con i pochi *.deb che ho fatto che è già un buon risultato:), i pacchetti si tirano dietro le dipendenze ed è una buona cosa a mio avviso. Precisando poi a quale versione ogni pacchetto è destinato l'utente non avrà possibilità, se non volutamente cercata, di crear danni:)cmq. risolvibili:)
Scrivi risposta

Ritorna a “Gruppo Sviluppo”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 1 ospite