View previous topic :: View next topic |
Author |
Message |
FonderiaDigitale Veteran
Joined: 06 Nov 2003 Posts: 1710 Location: Rome, Italy
|
Posted: Mon Jun 21, 2004 12:55 am Post subject: [TOOL][PORTAGE] ebuildcopy |
|
|
Versione 0.1.1
Salve, era un po' che non partorivo ma ogni tanto ci vuole, altrimenti mi arrugginisco
Questo script risponde a un'esigenza che mi capita spesso di avere, ovvero quella di forgiare una versione variata di un pacchetto che sta in portage.
Perche'? Esempi:
- E' uscita una versione nuova di XYZ che ha delle fix/feature che mi servono, ma nel portage il pacchetto non viene aggiornato da [n] tempo;
- Ho la necessita' di installare un pacchetto con delle opzioni non incluse nell'ebuild di portage o con delle patch particolari.
In questi casi non si deve mai mettere le mani nel tree di portage per due motivi importanti:
- il tree verrebbe sovrascritto (in caso di file con nomi uguali, ovviamente) ad ogni sync
- e' sempre meglio e sicuramente piu pulito tenere i file personalizzati nell'overlay anche per evitare di mandare alle ortiche il vostro db
Quindi l'uso principale di questo script e' prendere un ebuild di un pacchetto, copiarlo nella overlay, modificare la versione, aprire un editor per fare le modifiche all'ebuild, chiudere e fare il digest del nuovo pacchetto.
Fa anche dei controlli (basilari) sull'input e sui file.
spero vi sia utile.
Auguri e figli masculi.
Code: |
#!/bin/sh
versione="0.1"
source /etc/make.conf
function die
{
echo "$1"
exit 0
}
function help
{
echo "Ebuildcopy $versione by Giovanni Ferri <fonderiadigitale@gechi.it"
echo "License: GPL-2"
echo "Usage: ebuildcopy [=]package-version new_version_number"
echo "It will copy the old ebuild in your portage overlay (${PORTDIR_OVERLAY})"
echo "with the new version number and optionally, let you edit it."
exit 1
}
function ask
{
echo -n "Do you want to edit it right now?"
read a
case "$a" in
"y"|"yes")
[ -z "$EDITOR" ] && EDITOR=/bin/nano
$EDITOR ${NEWEBUILD}
;;
"n"|"no") continue
;;
*)
echo "Wrong answer."
ask
;;
esac
}
[ -z "$1" ] && help
[ -z "$2" ] && help
oldpkg=${1/=/}
ver=${oldpkg##*[a-Z]*-}
item=${oldpkg%%-$ver}
[ "$item" == "$ver" ] && help
[ -z "${PORTDIR}" ] && PORTDIR=/usr/portage
[ -z "${DISTDIR}" ] && DISTDIR=/usr/portage/distfiles
t=`expr "${PORTAGE_TMPDIR}" : "${PORTDIR}"`
[ "$t" > 0 ] && PURGETMP="-type d -name ${PORTAGE_TMPDIR} -prune"
if [ -z "${PORTDIR_OVERLAY}" ]
then
die "You need to set your overlay directory!"
else
MATCHLIST="`find ${PORTDIR} -type d -name ${PORTDIR_OVERLAY} -prune -type d -name ${DISTDIR} -prune $PURGETMP -o -iname $item -type d -maxdepth 2 -print`"
[ -z "$MATCHLIST" ] && die "No matches."
echo -e "\n\nFound package portage directory."
PACKAGE=`basename $MATCHLIST`
e=`dirname $MATCHLIST`
CATEGORY=`basename $e`
NEWDIR="${PORTDIR_OVERLAY}/$CATEGORY/$PACKAGE"
mkdir -p $NEWDIR/files
EBUILD=$MATCHLIST/$item-$ver.ebuild
NEWEBUILD=$NEWDIR/$item-$2.ebuild
[ -f ${EBUILD} ] || die "No ebuild found for the package specified. Sorry."
cp ${EBUILD} ${NEWEBUILD}
find $MATCHLIST/files -name *digest* -prune -o -type f -exec cp {} $NEWDIR/files \;
echo -e "Found package version. Ebuild copied and renamed.\n\n`ls -l --color ${NEWEBUILD}`"
fi
ask
echo -e "\nCreating digest for $PACKAGE version $2...\n"
ebuild ${NEWEBUILD} digest
echo "Done copying ebuild :)"
|
esempio di output:
Code: | # ebuildcopy apache-2.0.49-r1 2.0.49-r5
Found package portage directory.
Found package version. Ebuild copied and renamed.
-rw-r--r-- 1 root root 12686 21 giu 02:14 /usr/portage/overlay/net-www/apache/apache-2.0.49-r5.ebuild
Do you want to edit it right now?
Wrong answer.
Do you want to edit it right now?y
Creating digest for apache version 2.0.49-r5...
>>> Generating digest file...
<<< httpd-2.0.49.tar.gz
>>> Generating manifest file...
<<< apache-2.0.49-r5.ebuild
<<< files/digest-apache-1.3.29-r2
<<< files/digest-apache-1.3.31
<<< files/digest-apache-2.0.49-r1
<<< files/digest-apache-1.3.31-r1
<<< files/digest-apache-1.3.31-r2
<<< files/digest-apache-2.0.49-r3
<<< files/digest-apache-2.0.49-r5
# |
_________________ Come disse un amico, i sistemisti sono un po' come gli artigiani per l'informatica
Last edited by FonderiaDigitale on Wed Jun 23, 2004 2:37 am; edited 1 time in total |
|
Back to top |
|
|
codadilupo Advocate
Joined: 05 Aug 2003 Posts: 3135
|
Posted: Mon Jun 21, 2004 8:39 am Post subject: |
|
|
propongo l'ebuild award
Coda |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 31354 Location: here
|
Posted: Mon Jun 21, 2004 8:52 am Post subject: |
|
|
Ancora un po' di script e possiamo fare un pachhetoo gechitoolkit _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
X-Drum Advocate
Joined: 24 Aug 2003 Posts: 2517 Location: ('Modica','Trieste','Ferrara') Italy
|
Posted: Mon Jun 21, 2004 9:09 am Post subject: |
|
|
concordo, very cool _________________ "...There are two sort of lies, lies and benchmarks..." |
|
Back to top |
|
|
assente Guru
Joined: 12 Apr 2004 Posts: 570 Location: Torino, italia, New Europe
|
Posted: Mon Jun 21, 2004 12:18 pm Post subject: |
|
|
Carino; è veramente un peccato che questi script siano solo per questo forum.
Quand'è che verrà aggiunto in emerge la possibiltà di gestire dipendenze inverse tipo depcleaner? _________________ Blog
E8400, 4850, P5q |
|
Back to top |
|
|
zUgLiO l33t
Joined: 12 Aug 2003 Posts: 754 Location: Ferrara (Italy)
|
Posted: Mon Jun 21, 2004 1:30 pm Post subject: |
|
|
fedeliallalinea wrote: | Ancora un po' di script e possiamo fare un pachhetoo gechitoolkit |
mica male come idea.. _________________
voglio poi dire che il tempo mi avrà fatto abituare,
ma io non trovo nemmeno brutta la stiva buia di questa nave
|
|
Back to top |
|
|
federico Advocate
Joined: 18 Feb 2003 Posts: 3272 Location: Italy, Milano
|
Posted: Mon Jun 21, 2004 2:44 pm Post subject: |
|
|
Io potrei lavorare a qualche script se me ne venissero in mente, penso fonderia pure..
Propongo che se qualcuno ha delle idee veramente buone su cosa sarebbe utile avere, che si faccia avanti _________________ Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk |
|
Back to top |
|
|
FonderiaDigitale Veteran
Joined: 06 Nov 2003 Posts: 1710 Location: Rome, Italy
|
Posted: Tue Jun 22, 2004 7:59 pm Post subject: |
|
|
tutte le critiche sono ben accette, cosi come i suggerimenti e le wishlist...
Ovviamente ci tengo a ribadire che tutto cio che viene creato da noi, va TESTATO. questo script in particolare e' stato testato solo sul mio pc (piu che altro per motivi di mancanza di tempo) e quindi qualunque anima pia voglia stressarlo, e' benvenuto
Per quanto riguarda l'internazionalizzazione, penso sia prematuro parlarne adesso: quando tutti i vari programmi saranno in uno stadio di sviluppo pseudo-stabile, si puo' pensare a tradurli; per adesso no. _________________ Come disse un amico, i sistemisti sono un po' come gli artigiani per l'informatica
|
|
Back to top |
|
|
X-Drum Advocate
Joined: 24 Aug 2003 Posts: 2517 Location: ('Modica','Trieste','Ferrara') Italy
|
Posted: Wed Jun 23, 2004 8:36 pm Post subject: |
|
|
ho avuto modo di provarlo adesso!
generato l'ebuild per il nuvo skype che nn è ancora in portage a quanto pare....
ottimo! _________________ "...There are two sort of lies, lies and benchmarks..." |
|
Back to top |
|
|
FonderiaDigitale Veteran
Joined: 06 Nov 2003 Posts: 1710 Location: Rome, Italy
|
Posted: Thu Jun 24, 2004 9:19 pm Post subject: |
|
|
attenzione xche alcuni ebuild sono scritti senza rispettare le convenzioni dei dev e non funzionano bene copiandoli e rinominandoli. editatelo e vedete. _________________ Come disse un amico, i sistemisti sono un po' come gli artigiani per l'informatica
|
|
Back to top |
|
|
n3m0 l33t
Joined: 08 Feb 2004 Posts: 798 Location: Richville, Naples, Italy, Europe
|
Posted: Thu Jun 24, 2004 9:34 pm Post subject: |
|
|
federico wrote: | Io potrei lavorare a qualche script se me ne venissero in mente, penso fonderia pure..
|
Pure io
Pero' anche io sono a corto di idee (anche perche' sobbarcato dagli esami come sempre mal disposti del mio CDL). _________________ Lenergia è la civiltà. Lasciarla in mano ai piromani/petrolieri è criminale. Perché aspettare che finisca il petrolio?
Letà della pietra non è mica finita per mancanza di pietre. - B.G.
Site/Blog: http://www.neminis.org |
|
Back to top |
|
|
silian87 Advocate
Joined: 06 Oct 2003 Posts: 2318 Location: Treviso, Italy
|
Posted: Tue Aug 03, 2004 5:14 pm Post subject: |
|
|
Non mi va proprio!!!!! Ho provato con lo script copiato a mano o emergendo il gekit, ma sempre lo stesso errore...
Code: | ebuildcopy pcb-20040530 20040530a
Ebuildcopy 0.1 by Giovanni Ferri <fonderiadigitale@gechi.it
License: GPL-2
Usage: ebuildcopy [=]package-version new_version_number
It will copy the old ebuild in your portage overlay (/usr/local/portage)
with the new version number and optionally, let you edit it.
FireTux bin # ebuildcopy apache-2.0.49-r1 2.0.49-r5
Ebuildcopy 0.1 by Giovanni Ferri <fonderiadigitale@gechi.it
License: GPL-2
Usage: ebuildcopy [=]package-version new_version_number
It will copy the old ebuild in your portage overlay (/usr/local/portage)
with the new version number and optionally, let you edit it.
|
_________________ Musica che ascolto: http://www.last.fm/user/silian87/
Silian87 FAQs: http://marentax.homelinux.org/~silian87/silian87-faq.txt
GTalk: silian87@gmail.com |
|
Back to top |
|
|
FonderiaDigitale Veteran
Joined: 06 Nov 2003 Posts: 1710 Location: Rome, Italy
|
Posted: Tue Aug 03, 2004 9:15 pm Post subject: |
|
|
arg. lo metto nel TODO.
in soldoni, quel formato di versione (YYYYMMDD) non e' gestito come dovrebbe. appena posso cambio e uploado _________________ Come disse un amico, i sistemisti sono un po' come gli artigiani per l'informatica
|
|
Back to top |
|
|
silian87 Advocate
Joined: 06 Oct 2003 Posts: 2318 Location: Treviso, Italy
|
Posted: Tue Aug 03, 2004 9:48 pm Post subject: |
|
|
SI però se noti bene...
Code: | FireTux bin # ebuildcopy apache-2.0.49-r1 2.0.49-r5
Ebuildcopy 0.1 by Giovanni Ferri <fonderiadigitale@gechi.it
License: GPL-2
Usage: ebuildcopy [=]package-version new_version_number
It will copy the old ebuild in your portage overlay (/usr/local/portage)
with the new version number and optionally, let you edit it. |
Non mi va nenche l'esempio di apache... _________________ Musica che ascolto: http://www.last.fm/user/silian87/
Silian87 FAQs: http://marentax.homelinux.org/~silian87/silian87-faq.txt
GTalk: silian87@gmail.com |
|
Back to top |
|
|
FonderiaDigitale Veteran
Joined: 06 Nov 2003 Posts: 1710 Location: Rome, Italy
|
Posted: Wed Aug 04, 2004 1:19 am Post subject: |
|
|
va bene, HO CAPITO! _________________ Come disse un amico, i sistemisti sono un po' come gli artigiani per l'informatica
|
|
Back to top |
|
|
silian87 Advocate
Joined: 06 Oct 2003 Posts: 2318 Location: Treviso, Italy
|
|
Back to top |
|
|
|