View previous topic :: View next topic |
Author |
Message |
Kernel78 Moderator
Joined: 24 Jun 2005 Posts: 3654
|
Posted: Tue Oct 24, 2006 8:33 am Post subject: [TOOL]Usare ebuild "missing keyword" |
|
|
L'altro giorno stavo imprecando di fronte alla noia di dovermi modificare gli ebuild di alcuni pacchetti stabili su x86 ma "missing keyword" su amd64. Mi toccava farmi un overlay con l'ebuild modificato ma non mi sembrava una soluzione elegante.
Spulciando qua e la ho scoperto ekeyword (contenuto nel pacchetto app-portage/gentoolkit-dev) che consente di aggiungere/togliere keyword ad uno specifico ebuild Code: | ekeyword ~amd64 /path/to/ebuild | cosa bellissima se non fosse per due piccolissimi inconveniente:
1) si deve rifare il digest di quell'ebuild (ebuild /path/to/ebuild digest)
2) la modifica dura solo fino al prossimo sync
Per ovviare a questo ho partorito un paio di linee di codice ... io lo chiamo overkey.sh Code: | #!/bin/bash
overk="/etc/portage/package.overkey"
keyw="~amd64"
for eb in $(cat $overk)
do
ekeyword $keyw $eb
ebuild $eb digest
done |
Come si può intuire facilmente va a lavorare su un file (che dobbiamo mantenere noi) dal nome package.overkey, per adesso il mio è così (ho iniziato ieri) /etc/portage/package.overkey wrote: | /usr/portage/media-video/dvbcut/dvbcut-0.5.3.ebuild |
Lo script va lanciato dopo ogni sync quindi io mi sono fatto un alias eix-sync="eix-sync;overkey.sh" in questo modo automaticamente dopo ogni sync mi vengono rimessi in ~amd64 gli ebuild che voglio.
Non ho idea se possa funzionare per tutti i pacchetti ma io l'ho provato per una mezza dozzina e non ho avuto problemi, ho preferito impostare una keyword di test per comodità mia ma si può ovviamente modificare (se si lascia quella test e si usa un sistema stabile bisogna cmq aggiornare anche package.keywords).
Cosa ve ne pare ? può essere utile, è un enorme cavola, esiste già qualcosa di ufficiale o fatto meglio che serva allo scopo ? varie ed eventuali ?
Come al solito grazie a tutti per il tempo dedicato a leggere il mio ennesimo post delirante _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
|
cloc3 Advocate
Joined: 13 Jan 2004 Posts: 4809 Location: http://www.gentoo-users.org/user/cloc3/
|
Posted: Tue Oct 24, 2006 8:43 am Post subject: Re: [TOOL]Usare ebuild "missing keyword" |
|
|
Kernel78 wrote: |
Come al solito grazie a tutti per il tempo dedicato a leggere il mio ennesimo post delirante |
invece il post mi sembra carino.
personalmente, ritengo che l'idea di mantenere un ennesimo overlay possa diventare un appesantimento, ma la strada indicata è corretta.
va detto però che, quando un ebuild possiede la keyword x86 e nessuna keyword amd64, si può risolvere banalmente dichiarando il pacchetto ~x86 (o x86) in /etc/portage . _________________ vu vu vu
gentù
mi piaci tu |
|
Back to top |
|
|
Kernel78 Moderator
Joined: 24 Jun 2005 Posts: 3654
|
Posted: Tue Oct 24, 2006 8:50 am Post subject: Re: [TOOL]Usare ebuild "missing keyword" |
|
|
cloc3 wrote: | va detto però che, quando un ebuild possiede la keyword x86 e nessuna keyword amd64, si può risolvere banalmente dichiarando il pacchetto ~x86 (o x86) in /etc/portage . |
Si, avevo provato anche quella strada ma per principio non mi piace avere x86 nel mio bellissimo amd64
Ricordo cmq a tutti quelli che usano amd64 (o altre architetture minori) e installano con successo pacchetti "missing keyword" di segnalarlo su bugs.gentoo.org in modo che i devel aggiungano ufficialmente la keyword al pacchetto e tutta la comunità ne possa beneficiare _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
|
GiRa l33t
Joined: 07 Apr 2005 Posts: 717
|
Posted: Tue Oct 24, 2006 9:24 am Post subject: |
|
|
Aggiungerei un controllo della necessità di applicare la keyword all'ebuild. Del tipo:
Code: | grep $ARCH_KWD $ACTUAL_EBUILD
if [ `echo $?` != 0 ]
then #azioni da fare visto che si può togliere $ACTUAL_EBUILD dalla lista
fi
|
|
|
Back to top |
|
|
Luca89 Advocate
Joined: 27 Apr 2005 Posts: 2107 Location: Agrigento (Italy)
|
Posted: Tue Oct 24, 2006 9:28 am Post subject: |
|
|
La versione 1.1 di forcekeymask permette di aggiungere automaticamente in package.keywords la prima keyword che trova nell'ebuild, per esempio l'ebuild dichiara:
Code: | KEYWORDS="x86 ~ppc" |
e tu sei su amd64, allora forcekeymask aggiunge in package.keywords:
Code: | categoria/pacchetto x86 |
Questo modo lo ritengo più pulito perché non va a modificare l'ebuild e rimane attivo dopo qualsiasi sync senza problemi. Oppure sempre forcekeymask, permette di spostare l'ebuild in overlay (lo aveva implementato codadilupo) che non mi piace molto come modalità.
Quote: | Si, avevo provato anche quella strada ma per principio non mi piace avere x86 nel mio bellissimo amd64 |
e perchè? non cambia assolutamente nulla se usi una keyword o l'altra nella compilazione del pacchetto. _________________ Running Fast! |
|
Back to top |
|
|
Kernel78 Moderator
Joined: 24 Jun 2005 Posts: 3654
|
Posted: Tue Oct 24, 2006 9:37 am Post subject: |
|
|
GiRa wrote: | Aggiungerei un controllo della necessità di applicare la keyword all'ebuild. Del tipo:
Code: | grep $ARCH_KWD $ACTUAL_EBUILD
if [ `echo $?` != 0 ]
then #azioni da fare visto che si può togliere $ACTUAL_EBUILD dalla lista
fi
|
|
Non servirebbe, se si prova a lanciare ekeyword <keyword> <ebuild> con una keyword già presente questa non viene considerata.
Grazie cmq per il commento _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
|
GiRa l33t
Joined: 07 Apr 2005 Posts: 717
|
Posted: Tue Oct 24, 2006 10:01 am Post subject: |
|
|
Prego, io son uno stabiloso e quindi ignorante in questo campo |
|
Back to top |
|
|
|