Repository 32bit  Forum
Repository 64bit  Wiki

[RISOLTO] Domanda su pacchettizzazione librerie

Postate qui se avete consigli per migliorare i pacchetti disponibili in questo sito o se avete problemi con installazione, funzionamento o altro.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il nome del pacchetto.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

[RISOLTO] Domanda su pacchettizzazione librerie

Messaggioda Savius » sab set 11, 2010 17:12

Buonasera a tutti,
so già che quel che starò per chiedervi vi sembrerà una cosa di una niubbaggine incredibile, ma tempo fa volevo pacchettizzare un libreria e non sapevo come fare. Mi spiego meglio: nel caso in cui non volessi usare uno SlackBuild e volessi seguire questo sistema wiki building package come dovrei operare? Per creare il pacchetto di un'applicazione, mi basta compilare l'applicazione con i prefissi giusti, e creare il pacchetto con makepkg. Nel caso delle librerie invece, non si compila niente (o almeno così dovrebbe essere) dunque come si danno le direttive giuste, al pacchetto che verrà creato, che permettano di copiare i file nelle giuste directory del sistema?

Non so se mi sono spiegato bene, nel caso cercherò di farlo meglio in seguito. :D
Ultima modifica di Savius il dom set 12, 2010 14:51, modificato 1 volta in totale.
Avatar utente
Savius
Linux 2.6
Linux 2.6
 
Messaggi: 553
Iscritto il: gio ago 14, 2008 12:45
Località: Napoli
Slackware: Slackware64 14.0
Kernel: 3.2.29-smp
Desktop: KDE 4.8.5

Re: Domanda su pacchettizzazione librerie

Messaggioda hashbang » sab set 11, 2010 19:03

in realtà lo SlackBuild non è altro che uno script in cui vengono scritti i passaggi da fare per creare il pacchetto al posto tuo. Se vuoi crearlo "a mano" basta seguire le stesse operazioni senza scriverlo su un foglio di script. Diversamente da Gentoo e Archlinux l'uso dello SlackBuild non è una tappa fondamentale per il pacchetto. :) Spero di esserti stato d'aiuto
Adoro il pragmatismo della lingua giapponese, è l'unica in cui per dire ad una ragazza che la ami le dici "suki". (cit.)
Avatar utente
hashbang
Packager
Packager
 
Messaggi: 1842
Iscritto il: ven giu 04, 2010 9:27
Località: Lecce
Nome Cognome: Luca De Pandis
Distribuzione: Windows 8.1 Pro

Re: Domanda su pacchettizzazione librerie

Messaggioda Savius » dom set 12, 2010 11:45

Grazie per la risposta atomix600,
però forse non mi son spiegato bene. Questo lo so, quel che volevo sapere è inerente alla procedura elencata nel link che ho postato, in pratica quella fa riferimento alla creazione di un pacchetto di un'applicativo. Nel caso di una libreria basterebbe soltanto estrarre il tar.gz o tar.bz2 in una directory e dare il makepkg oppure bisognerebbe dare delle direttive specifiche? In questo caso, come darle tenendo però sempre in considerazione l'eventualità di seguire le procedure elencate in quel link? :D

Scusa/te se nel precedente post non sono stato molto chiaro, spero di esserlo stato ora. ^^''
Avatar utente
Savius
Linux 2.6
Linux 2.6
 
Messaggi: 553
Iscritto il: gio ago 14, 2008 12:45
Località: Napoli
Slackware: Slackware64 14.0
Kernel: 3.2.29-smp
Desktop: KDE 4.8.5

Re: Domanda su pacchettizzazione librerie

Messaggioda hashbang » dom set 12, 2010 12:11

Savius ha scritto:Grazie per la risposta atomix600,
però forse non mi son spiegato bene. Questo lo so, quel che volevo sapere è inerente alla procedura elencata nel link che ho postato, in pratica quella fa riferimento alla creazione di un pacchetto di un'applicativo. Nel caso di una libreria basterebbe soltanto estrarre il tar.gz o tar.bz2 in una directory e dare il makepkg oppure bisognerebbe dare delle direttive specifiche? In questo caso, come darle tenendo però sempre in considerazione l'eventualità di seguire le procedure elencate in quel link? :D

Scusa/te se nel precedente post non sono stato molto chiaro, spero di esserlo stato ora. ^^''
Dipende, ogni pacchetto può avere delle particolarità ci sono quelli in cui prendi il tarball e dai il makepkg (le librerie precompilate) e quelle dove dopo l'estrazione bisogna compilarle con determinati parametri. Questo vale sia per i programmi che per le librerie. In linea di massima quel wiki è utile però renditi conto che se guardi i nostri slackbuild sia prima della compilazione che prima della pacchettizzazione settiamo permessi specifici.

Pre-compilazione
Codice: Seleziona tutto
chown -R root:root .
chmod -R u+w,go+r-w,a-s .


Pre-pacchettizzazione
Codice: Seleziona tutto
chown -R root:root $PKG
Ti do un consiglio quando vuoi pacchettizzare una libreria, controlla prima se c'è sul repo così ti dai uno sguardo allo SlackBuild. In questo modo puoi capire meglio le procedure di pacchettizzazione usate per quel pacchetto e poi è molto istruttivo.
Adoro il pragmatismo della lingua giapponese, è l'unica in cui per dire ad una ragazza che la ami le dici "suki". (cit.)
Avatar utente
hashbang
Packager
Packager
 
Messaggi: 1842
Iscritto il: ven giu 04, 2010 9:27
Località: Lecce
Nome Cognome: Luca De Pandis
Distribuzione: Windows 8.1 Pro

Re: Domanda su pacchettizzazione librerie

Messaggioda Savius » dom set 12, 2010 12:28

atomix600 ha scritto:Dipende, ogni pacchetto può avere delle particolarità ci sono quelli in cui prendi il tarball e dai il makepkg (le librerie precompilate) e quelle dove dopo l'estrazione bisogna compilarle con determinati parametri. Questo vale sia per i programmi che per le librerie. In linea di massima quel wiki è utile però renditi conto che se guardi i nostri slackbuild sia prima della compilazione che prima della pacchettizzazione settiamo permessi specifici.

Pre-compilazione
Codice: Seleziona tutto
chown -R root:root .
chmod -R u+w,go+r-w,a-s .


Pre-pacchettizzazione
Codice: Seleziona tutto
chown -R root:root $PKG
Ti do un consiglio quando vuoi pacchettizzare una libreria, controlla prima se c'è sul repo così ti dai uno sguardo allo SlackBuild. In questo modo puoi capire meglio le procedure di pacchettizzazione usate per quel pacchetto e poi è molto istruttivo.


Ti ringrazio molto atomix600, ho capito quel che dici, infatti questo pensiero mi venne proprio quando cercai di creare il pacchetto di un'applicazione che non era presente nei nostri repository neanche nelle versioni precendenti di Slackware. A quel punto io compilai l'applicativo con il classico "./configure && make" ma necessitava di una libreria che non era presente nel repository di Slacky.eu. A quel punto mi fermai nell'impresa, perché non avendo neanche lo SlackBuild, non sapevo se potevo seguire tranquillamente la procedura elencata su quel wiki o se bisognava fare altro. Nella libreria non c'era alcun "configure" ma solo file .c e .h e non sapevo se avrei dovuto compilarli io con un "gcc -c nome_file.c" oppure se dare un semplice makepkg. ^^''
Avatar utente
Savius
Linux 2.6
Linux 2.6
 
Messaggi: 553
Iscritto il: gio ago 14, 2008 12:45
Località: Napoli
Slackware: Slackware64 14.0
Kernel: 3.2.29-smp
Desktop: KDE 4.8.5

Re: Domanda su pacchettizzazione librerie

Messaggioda 414N » dom set 12, 2010 12:39

Savius ha scritto:Nel caso delle librerie invece, non si compila niente (o almeno così dovrebbe essere)

Savius ha scritto:Nella libreria non c'era alcun "configure" ma solo file .c e .h e non sapevo se avrei dovuto compilarli io con un "gcc -c nome_file.c" oppure se dare un semplice makepkg. ^^''

A casa mia le librerie C non sono librerie se non sono compilate (rimangono sorgenti). In un qualche modo devi compilare quel file .c e poi farci il pacchetto.
Per curiosità, di che librerie si tratterebbe? Magari qualcuno ne ha già creato lo SlackBuild...
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2884
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: Domanda su pacchettizzazione librerie

Messaggioda Savius » dom set 12, 2010 12:52

Ciao 414N, mi sa che non mi son spiegato bene... Se uso Slackware penso fosse chiaro che l'ABC dell'informatica e della programmazione in generale io la conoscessi già... Quel che volevo intendere è che nel file compresso contenente i file della libreria, erano presenti sia degli header file (*.h) sia dei file sorgenti (*.c), essendo una libreria e non un applicativo, non esisteva il "configure" dunque, detto ciò, non sapevo se dovevo compilare quei file sorgenti o se dovevo solo capire in che directory andavano inseriti.

Ora non ricordo di che applicativo volevo realizzare il pacchetto, è facile che fosse tipo Inkscape il quale, successivamente, fu inserito nel Repository e non ci badai più a questa questone.
Avatar utente
Savius
Linux 2.6
Linux 2.6
 
Messaggi: 553
Iscritto il: gio ago 14, 2008 12:45
Località: Napoli
Slackware: Slackware64 14.0
Kernel: 3.2.29-smp
Desktop: KDE 4.8.5

Re: Domanda su pacchettizzazione librerie

Messaggioda 414N » dom set 12, 2010 13:29

Savius ha scritto:Ciao 414N, mi sa che non mi son spiegato bene... Se uso Slackware penso fosse chiaro che l'ABC dell'informatica e della programmazione in generale io la conoscessi già... Quel che volevo intendere è che nel file compresso contenente i file della libreria, erano presenti sia degli header file (*.h) sia dei file sorgenti (*.c), essendo una libreria e non un applicativo, non esisteva il "configure" dunque, detto ciò, non sapevo se dovevo compilare quei file sorgenti o se dovevo solo capire in che directory andavano inseriti.

Non voglio essere polemico od offensivo, Savius, ma è evidente che alcune cose non ti sono chiare. Cercherò di spiegarmi al meglio:
  • La mancanza del configure in un tarball di sorgenti non implica che il suo contenuto non debba essere compilato in un qualche modo. Magari c'era solo un Makefile (e te la saresti cavata con qualche modifica allo stesso ed un make) o utilizzava un build system diverso dagli GNU autotools (tipo cmake, scons ...).
  • Sostieni che il tarball contesse i file della libreria sotto forma di header e sorgenti C. Come ben saprai, il C è un linguaggio che ha bisogno di essere compilato per poter essere eseguito, quindi non vedo come avrebbe potuto funzionare il fantomatico pacchetto che avresti voluto creare copiando i sorgenti in /usr/lib. Se vai a vedere in /usr/lib (o /usr/lib64 se sei su una Slack64), tutti i file di libreria lì presenti hanno suffisso .so e sono dei binari compilati in formato ELF e linkati dinamicamente.
  • Il discorso sarebbe diverso se nel tarball fossero stati presenti file di libreria già compilati (*.so) e fosse stato inserito del codice di esempio per accedervi dai proprio programmi (i file .h e .c). In questo caso, i binari andavano dove dovevano andare (/usr/lib), mentre i sorgenti di esempio si sarebbe potuti mettere in /usr/doc/nome-programma-versione/. Questo, se non ricordo male, accade con i driver Catalyst di ATI, la quale rilascia del codice di esempio per accedere alle API dei propri driver.
Per concludere, ricordati che l'uso di Slackware non rende automaticamente l'utente più esperto in programmazione. Scommetto che ci sono molti utenti Slackware che non sanno neanche scrivere un "hello world" in C, senza per questo essere newbye della distribuzione o meno capaci di altri.
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2884
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: Domanda su pacchettizzazione librerie

Messaggioda Savius » dom set 12, 2010 14:05

Eheheheheheh ho omesso che sono diplomato come Perito Informatico nonché laureando in Informatica... :D Per questo dicevo che l'ABC lo conosco, però ammetto che hai ragione tu sulla questione "Slackware", di lei conosco un bel po' di cose ma non essendomi mai cimentato in uno studio approfondito di ogni aspetto di Linux in generale, ho questa carenza su queste cose citate in questo topic. Avevo in effetti notato l'estensione *.so delle librerie ma, non conoscendo come agisce il makepkg, pensavo comunque fosse inclusa nello stesso applicativo l'azione di compilare e generare i *.so all'interno del pacchetto finale *.txz altrimenti non avrei neanche chiesto qui come creare un pacchetto su una libreria. Mi sarebbe bastato estrarre i file del tarball nella directory "/usr/lib" per avere le librerie belle e pronte e avrei risolto il problema.

Spero adesso di esser stato più chiaro, ammetto che posso esprimermi un po' coi piedi a volte, ma se mi si chiede di esser più chiaro io lo faccio senza problemi e con più attenzione.
Avatar utente
Savius
Linux 2.6
Linux 2.6
 
Messaggi: 553
Iscritto il: gio ago 14, 2008 12:45
Località: Napoli
Slackware: Slackware64 14.0
Kernel: 3.2.29-smp
Desktop: KDE 4.8.5

Re: Domanda su pacchettizzazione librerie

Messaggioda 414N » dom set 12, 2010 14:15

Savius ha scritto:Eheheheheheh ho omesso che sono diplomato come Perito Informatico nonché laureando in Informatica... :D Per questo dicevo che l'ABC lo conosco, però ammetto che hai ragione tu sulla questione "Slackware", di lei conosco un bel po' di cose ma non essendomi mai cimentato in uno studio approfondito di ogni aspetto di Linux in generale, ho questa carenza su queste cose citate in questo topic. Avevo in effetti notato l'estensione *.so delle librerie ma, non conoscendo come agisce il makepkg, pensavo comunque fosse inclusa nello stesso applicativo l'azione di compilare e generare i *.so all'interno del pacchetto finale *.txz altrimenti non avrei neanche chiesto qui come creare un pacchetto su una libreria. Mi sarebbe bastato estrarre i file del tarball nella directory "/usr/lib" per avere le librerie belle e pronte e avrei risolto il problema.

Spero adesso di esser stato più chiaro, ammetto che posso esprimermi un po' coi piedi a volte, ma se mi si chiede di esser più chiaro io lo faccio senza problemi e con più attenzione.

makepkg prende solo il contenuto di una directory e crea il pacchetto. L'unica cosa che può fare in più è la rimozione dei link simbolici e la creazione di un doinst.sh che li ricrei all'atto dell'installazione.
Da come avevi scritto, però, sembrava che il dubbio non fosse su ciò che combina makepkg ;)
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2884
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: Domanda su pacchettizzazione librerie

Messaggioda Savius » dom set 12, 2010 14:51

Sì infatti rileggendomi hai ragionissimo! Ahahahahahahah! :lol: Ti chiedo scusa! :P Grazie per l'info, credo proprio che possa ora aggiungere un bel "Risolto" al thread. :D
Avatar utente
Savius
Linux 2.6
Linux 2.6
 
Messaggi: 553
Iscritto il: gio ago 14, 2008 12:45
Località: Napoli
Slackware: Slackware64 14.0
Kernel: 3.2.29-smp
Desktop: KDE 4.8.5

Re: [RISOLTO] Domanda su pacchettizzazione librerie

Messaggioda hashbang » dom set 12, 2010 15:06

Savius ha scritto:A quel punto io compilai l'applicativo con il classico "./configure && make" ma necessitava di una libreria che non era presente nel repository di Slacky.eu. A quel punto mi fermai nell'impresa, perché non avendo neanche lo SlackBuild, non sapevo se potevo seguire tranquillamente la procedura elencata su quel wiki o se bisognava fare altro.

giusto per una info aggiuntiva. Savius se le la libreria non è presente puoi andare su slackbuilds.org e vedere se è stato fatto uno Slackbuild in modo da poter usufruire subito del pacchetto (ogni tanto, quando non ho molto tempo per pacchettizzarmi il tutto, lo faccio pure io che sono packager) oppure (ancora meglio se lo fai ogni volta che non la trovi nel sul repo della 13.0 ne su quello della 13.1) puoi postare una richiesta per il pacchetto nella sezione Packages. Questo ci aiuta molto e contribuisce a rendere il repository ancora più vasto e ricco di pacchetti. ;)
Adoro il pragmatismo della lingua giapponese, è l'unica in cui per dire ad una ragazza che la ami le dici "suki". (cit.)
Avatar utente
hashbang
Packager
Packager
 
Messaggi: 1842
Iscritto il: ven giu 04, 2010 9:27
Località: Lecce
Nome Cognome: Luca De Pandis
Distribuzione: Windows 8.1 Pro

Re: [RISOLTO] Domanda su pacchettizzazione librerie

Messaggioda Savius » dom set 12, 2010 15:29

Grazie mille per le dritte atomix600. ^^
Non sapevo potessi farlo, probabilmente mi sbaglierò ma mi pare di aver letto che non sarebbero state considerate richieste di creazione pacchetti qui sul forum. Ma forse era relativo solo a quei pacchetti che, "di solito", vengono creati e che quindi non bisognava dar fretta ai pacchettizzatori per la creazione di determinati pacchetti già previsti nella pacchettizzazione. Scusa la spiegazione un po' contorta, comunque grazie mille per l'informazione. Nel caso allora sarò ben lieto di segnalare la creazione di eventuali pacchetti, per ora mi sto limitando a segnalare il rilascio di alcune versioni nuove di determinati pacchetti nel "pkgreport". :D
Avatar utente
Savius
Linux 2.6
Linux 2.6
 
Messaggi: 553
Iscritto il: gio ago 14, 2008 12:45
Località: Napoli
Slackware: Slackware64 14.0
Kernel: 3.2.29-smp
Desktop: KDE 4.8.5


Torna a Packages

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

cron