SlackBuild: tecniche di costruzione

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.
Avatar utente
slucky
Iper Master
Iper Master
Messaggi: 2420
Iscritto il: mar 1 mag 2007, 15:30
Slackware: 15.0
Desktop: xfce4
Distribuzione: FreeBSD

Messaggio da slucky »

Già ma come faccio? io uso un kernel compilato ed installato da me l'ultimo 2.6.22.5
:oops:
dove li trovo gli headers per questo kernel???
comunque mi sembrava strano in effetti che si trattava di un pacchetto mancante ;)

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Messaggio da targzeta »

per gli headers puoi usare tranquillamente quelli della slackware 12. non cambiano poi tanto.

comunque, prima di spiegarti un altro metodo, ti ricordi del mio scriptino per creare i pacchetti dei moduli, immagine, e headers facendo make install dai sorgenti? Se sei ancora interessato posso fartelo avere, ma mi raccomando dovresti leggertelo ben bene perchè alcune variabili vanno personalizzate.

Tornando a noi, puoi installarti gli headers del kernel dove ti pare, usando "make headers_install" dai sorgenti del kernel, fai "make help" per maggiori info.

Spina

Avatar utente
slucky
Iper Master
Iper Master
Messaggi: 2420
Iscritto il: mar 1 mag 2007, 15:30
Slackware: 15.0
Desktop: xfce4
Distribuzione: FreeBSD

Messaggio da slucky »

Grazie Spina dell'aiuto e sì se puoi sarei interessato a quegli script, se me li mandi mi faresti un piacere e poi sarebbe un'altro ottimo argomento di studio :D
Per quanto riguarda l'ultima cosa che hai detto, cioè posso crearmi gli headers dal kernel che ho compilato ed installato ( che per la verità funge bene), ma qual'è la procedura pratica? entro nella dir dei sorgenti e poi do quel comando make headers_install?
dimmi un pò tu, ormai mi fai da master in materia :lol:

Ciao :D

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Messaggio da targzeta »

Per oggi ti saluto, poi ci sentiamo in PM.
Fai ad esempio:

Codice: Seleziona tutto

mkdir /tmp/kernel-headers/
Poi vai nella directory dei sorgenti e lanci:

Codice: Seleziona tutto

make  headers_install INSTALL_HDR_PATH=/tmp/kernel-headers/
e ti ritroverai gli headers del kernel che hai compilato nella directory:

Codice: Seleziona tutto

/tmp/kernel-headers/
poi puoi farci quello che ti pare, copiarli pari pari in /usr/, farci un pacchetto slackware, guardarli e basta ....

Spina

P.S. Non sono sicuro ma potresti anche risparmiarti la creazione della directory, forse il "make headers_install" la crea da sè.

Avatar utente
slucky
Iper Master
Iper Master
Messaggi: 2420
Iscritto il: mar 1 mag 2007, 15:30
Slackware: 15.0
Desktop: xfce4
Distribuzione: FreeBSD

Messaggio da slucky »

Okay Spina grazie ................provo e poi ti faccio sapere :D

Ciao stammi bene!!! ;)

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2098
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 6.18.0
Desktop: gnome and lxqt
Distribuzione: Ubuntu 24.04 & FC 41
Località: Darmstadt - Germania

Messaggio da albatros »

Di norma è preferibile mantenere gli header del kernel con cui hai compilato le glibc, anche se non è detto che debba per forza aver problemi non seguendo questa regola.
Cerca fra i vecchi post usando insieme kernel header linus (tutte le parole).
Naturalmente nessuno ti vieta di ricompilare anche le glibc con l'ultimo kernel... :)

Avatar utente
slucky
Iper Master
Iper Master
Messaggi: 2420
Iscritto il: mar 1 mag 2007, 15:30
Slackware: 15.0
Desktop: xfce4
Distribuzione: FreeBSD

Messaggio da slucky »

ciao albatros, nel frattempo facendo make help nei sorgenti del kernel mi ha dato ulteriori info, ed ho visto che in /usr/src/linux-2.6.22.5/usr/include/linux gli header del kernel sono presenti, tutti i file .h, così come quel file che mi dava l'errore è presente nel kernel nella dir:
/usr/src/linux-2.6.22.5/usr/include/linux/limits.h.............e allora? perchè mi da l'errore? lo devo linkare forse?
o si tratta di qualche pacchetto mancante? o forse nello slackbuild devo settare i parametri così:
./configure --prefix=/usr/src/linux-2.6.22.5/usr/include/linux...........non so, sono mie ipotesi.................

Ciao :D

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2098
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 6.18.0
Desktop: gnome and lxqt
Distribuzione: Ubuntu 24.04 & FC 41
Località: Darmstadt - Germania

Messaggio da albatros »

Ti sconsiglio il link simbolico.
Installa i kernel headers con cui sono state compilate le glibc che hai, ovvero, leggendo lo slackbuild delle glibc della 12.0:
KERNEL_HEADERS=2.6.21.5
le quali hanno retrocompatibilità fino al kernel:
--enable-kernel=2.6.16 \

Dovresti quindi installare i kernel headers 2.6.21.5, che contengono gli header mancanti, ad esempio vedo che sul mio pc:

Codice: Seleziona tutto

g@darkenergy:~$ grep limits.h /var/log/packages/kernel-headers-2.6.21.5-i386-2 
usr/include/linux/limits.h
usr/include/asm-i386/mach-default/irq_vectors_limits.h
usr/include/asm-i386/mach-generic/irq_vectors_limits.h
usr/include/asm-i386/mach-summit/irq_vectors_limits.h
Quando compili se viene incluso nei sorgenti un header con le parentesi <> questo viene cercato nelle directory di inclusione standard, fra le quali non dovrebbe figurare /usr/src/linux-2.6.22.5, a meno di non indicarlo esplicitamente, mentre /usr/include è ovviamente lo standard per eccellenza...
Vedo ad esempio che nel tuo caso:
includedir='${prefix}/include' e --prefix=/usr

P.S. Ciao! :D

Avatar utente
slucky
Iper Master
Iper Master
Messaggi: 2420
Iscritto il: mar 1 mag 2007, 15:30
Slackware: 15.0
Desktop: xfce4
Distribuzione: FreeBSD

Messaggio da slucky »

Allora, installando gli headers del kernel 2.6.21.5 ( quello di default della Slack), la procedura è andata a buon fine ed il pacchetto è stato creato :D
però durante la fase di installazione, non mi è uscito sul terminale i messaggi di info del pacchetto, e sebbene io abbia fatto lo slack-desc, forse perchè stavo upgradando la versione di gwenview-1.2.0? o ho fatto qualche errore di scrittura?
Poi per avere un quadro completo, prima ho anche provato,come suggerito da Spina a installare gli headers per il kernel corrente che è il 2.6.22.5, ma mi ha restituito questo errore:
root@darkstar:/usr/src/linux-2.6.22.5# make headers_install INSTALL_HDR_PATH=/tmp/kernel-headers/
CHK include/linux/version.h
HOSTCC scripts/basic/fixdep
In file included from /usr/include/bits/posix1_lim.h:153,
from /usr/include/limits.h:145,
from /usr/lib/gcc/i486-slackware-linux/4.1.2/include/limits.h:122,
from /usr/lib/gcc/i486-slackware-linux/4.1.2/include/syslimits.h:7,
from /usr/lib/gcc/i486-slackware-linux/4.1.2/include/limits.h:11,
from scripts/basic/fixdep.c:115:
/usr/include/bits/local_lim.h:36:26: error: linux/limits.h: No such file or directory
In file included from /usr/include/sys/socket.h:35,
from /usr/include/netinet/in.h:24,
from /usr/include/arpa/inet.h:23,
from scripts/basic/fixdep.c:117:
/usr/include/bits/socket.h:310:24: error: asm/socket.h: No such file or directory
scripts/basic/fixdep.c: In function 'use_config':
scripts/basic/fixdep.c:206: error: 'PATH_MAX' undeclared (first use in this function)
scripts/basic/fixdep.c:206: error: (Each undeclared identifier is reported only once
scripts/basic/fixdep.c:206: error: for each function it appears in.)
scripts/basic/fixdep.c:206: warning: unused variable 's'
scripts/basic/fixdep.c: In function 'parse_dep_file':
scripts/basic/fixdep.c:306: error: 'PATH_MAX' undeclared (first use in this function)
scripts/basic/fixdep.c:306: warning: unused variable 's'
make[1]: *** [scripts/basic/fixdep] Error 1
make: *** [scripts_basic] Error 2
Infine un'ultima cosa il pacchetto creato si chiama così: gwenview-1.4.1-i686-1_darkstar.tgz.............non si può eliminare il nick "darkstar" e lasciare solo con il finale -i686-1.tgz?
Penso comunque che questa discussione risulti utile a chiunque tra i slackweristi inesperti voglia avvicinarsi all'argomento ;) ed infine mi rendo conto che gohanz e gli altri pacchettizatori del forum fanno davvero un gran lavoro.................per nulla facile, e quindi rinnovo i miei complimenti a tutti loro =D>

Ciao a tutti :D

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Messaggio da targzeta »

slucky ha scritto:...
durante la fase di installazione, non mi è uscito sul terminale i messaggi di info del pacchetto, e sebbene io abbia fatto lo slack-desc,
Posta:
- slack-desc
- nome del pacchetto
slucky ha scritto:...
root@darkstar:/usr/src/linux-2.6.22.5# make headers_install
.....
make[1]: *** [scripts/basic/fixdep] Error 1
make: *** [scripts_basic] Error 2
eh già, per installare gli headers, bisogna avere gli headers installati :).
slucky ha scritto: ...non si può eliminare il nick "darkstar" e lasciare solo con il finale -i686-1.tgz?
Si, basta modificare:
BUILD=${BUILD:-1_`uname -n`}
con
BUILD=${BUILD:-1}
Spina

Avatar utente
slucky
Iper Master
Iper Master
Messaggi: 2420
Iscritto il: mar 1 mag 2007, 15:30
Slackware: 15.0
Desktop: xfce4
Distribuzione: FreeBSD

Messaggio da slucky »

Okay ciao Spina :)
grazie per le precisazioni, ho ricontrollato lo slack-desc ed in effetti avevo sbagliato a scriverlo
:? , riproverò a reinstallare il pacchetto se non esce il messaggio sul terminale te lo posto.
Per quanto riguarda l'installazione degli headers, se creo i nuovi headers per il kernel 2.6.22.5, poi dopo devo eliminare il pacchetto headers per il 2.6.21.5? o possono coesistere senza problemi sul sistema?


Ciao :D

Rispondi