Page 1 of 2

[TOOL] Qmerge(cercasi nome) - alias emerge -UDav world

Posted: Wed Jun 23, 2004 5:12 pm
by xchris
Edit 25/2/05: NON + SUPPORTATO!

----------
Dopo molto tempo vi presento questo scriptozzo bash nato molto tempo fa e rimasto inattivo per molto.
Fatto inizialmente da solo nella versione + semplice e' stato rivisitato da "cerri" e poi finito semi-definitivamente da me.

Ho preferito sistemare i bug principali e renderlo disponibile subito.

Spero che a qualcuno stia simpatico. :)


A cosa serve?

serve a semplificare (forse) l'upgrade ordinario di ogni giorno.
puo' essere visto come un

Code: Select all

emerge -UDav world
permette di selezionare attraverso dialog gli ebuild da aggiornare e di settarne interattivamente le use flags.

Il settaggio delle use flags e' possibile in 2 modalita:
simple -- settaggio use comune agli ebuild selezionati
advanced -- settaggio use per ogni singolo ebuild

il settaggio attraverso advanced ha la precedenza!

consente di visualizzare una minima descrizione delle useflags (alla ufed per intenderci)


Puo' essere lanciato anche da user ma richiede che sia nel path o che lo si lanci dalla sua dir. (devo sistemare sta cosa)

Puo' effettuare prima di tutto un sync o esync
Se lanciato con ./Qmerge mostra le opzioni.

Code: Select all

Usage: Qmerge [options]

Options:
  -s , --sync     for run with emerge sync
  -es, --esync    for run with esync
  -ns, --not-sync for run without syncronization

[modifica di fedeliallalinea]


Il file sta qui:
http://xchris.altervista.org/GECHI/
[modificato per problema link diretti]


e qui un paio di vecchi screenshots: (con baco incluso,ora rimosso)
http://xchris.altervista.org/GECHI/simple_qmerge.jpg
http://xchris.altervista.org/GECHI/adv_qmerge.jpg

Non e' privo di bug. (chi potrebbe mai vantarsi del contrario?)
ben accette le critiche,i bug,gli insulti. (ahem non esagerate :) )

ciao

Posted: Wed Jun 23, 2004 5:23 pm
by fedeliallalinea
Propongo questa modifica per chi usa esync ma vorrei sapere se ho agiunto nel posto giusto

Code: Select all

if [ ! -z $1 ]

then
	case $1
	in
	-s|--sync)
	root_check $1
	emerge sync || exit
	sleep 2
	;;
	-es|--esync)
	root_check $1
	esync || exit
	sleep 2
	;;
	*)
	echo -e "\nUsage: Qmerge [options]\n"
	echo -e "Options:"
	echo -e "  -s , --sync   for run with emerge sync"
	echo -e "  -es, --esync  for run with esync\n"
	exit
	;;
	esac	
	
fi

Posted: Wed Jun 23, 2004 5:25 pm
by fedeliallalinea
Per scaricare il file bisogna copiare l'url e incollarelo in una nuova finestra (o tab)

Posted: Wed Jun 23, 2004 5:36 pm
by xchris
fedeliallalinea wrote:Propongo questa modifica per chi usa esync ma vorrei sapere se ho agiunto nel posto giusto
certo :)
ciau

Posted: Wed Jun 23, 2004 5:48 pm
by fedeliallalinea
Altra modifica. Aggiunta funzione usage

Code: Select all

function usage
{
 echo -e "\nUsage: Qmerge [options]\n"
 echo -e "Options:"
 echo -e "  -s , --sync     for run with emerge sync"
 echo -e "  -es, --esync    for run with esync"
 echo -e "  -ns, --not-sync for run without syncronization\n"
 exit 1
} 
e quindi

Code: Select all

if [ ! -z $1 ]

then
	case $1
	in
	-s|--sync)
	root_check $1
	emerge sync || exit
	sleep 2
	;;
	-es|--esync)
	root_check $1
	esync || exit
	sleep 2
	;;
	-ns|--not-sync)
	root_check $1
	sleep 2
	;;
	*)
	usage
	;;
	esac	
else
        usage
	
fi
Ho messo l'opzione --not-sync esplicita cosi' resta piu' chiaro per l'utilizzatore perche' se lo fa partire senza argomenti non sa che deve dare l'opzione -s o -es per sincronizzare.

Posted: Wed Jun 23, 2004 5:53 pm
by xchris
ok perfect.

che te ne pare del settaggio delle USE?
a me pare che sia la parte effettivamente + comoda.

Quando ti sembra ok la parte che stai modificando mandamela che la uppiamo e aggiorno il primo post. (con i credits.. si intende)

ciau

Posted: Wed Jun 23, 2004 5:57 pm
by fedeliallalinea
xchris wrote:che te ne pare del settaggio delle USE?
Si mi pare molto comoda per uno che inizia e non e come dici tu e' molto comoda.
xchris wrote:(con i credits.. si intende)
Non e' un problema anche se non li metti l'importante e' che funzioni a dovere :D

Posted: Wed Jun 23, 2004 6:10 pm
by xchris
ai tempi era nato per i problemi legati a emerge -UD world con pacchetti masked (che dipendevano da altri masked)

trovavo scomodo l'unmaskare...poi le use flags sono arrivate per maggior comodita'.

Ho aggiornato il link.Ora non ci sono problemi per il download.

ciao

Posted: Wed Jun 23, 2004 6:15 pm
by Cagnulein
davvero molto interessante..me lo scarico subito 8)

Posted: Wed Jun 23, 2004 7:00 pm
by FonderiaDigitale
interessante. solo una critica: se vogliamo davvero fare sto gechitoolkit, non sarebbe meglio rinominarlo in qualcosa di piu chiaro in relazione alla funzione che svolge? tipo useselect..

Posted: Wed Jun 23, 2004 7:02 pm
by fedeliallalinea
xchris wrote:Quando ti sembra ok la parte che stai modificando mandamela
Te l'ho spedita via mail.

Posted: Wed Jun 23, 2004 7:03 pm
by FonderiaDigitale
bug 1: check sull'esistenza delle dipendenze.

Code: Select all

root@Goliath:/usr/src []# ./Qmerge
 
We're playing!
Please hold on while Qmerge initialize...
./Qmerge: line 275: dialog: command not found
fix: aggiungi in cima allo script

Code: Select all

if [ ! -f `which dialog` ]
then
 echo "Dialog not found. emerge it please.
 exit
fi

Posted: Wed Jun 23, 2004 7:03 pm
by fedeliallalinea
E se si aggiunge una nuova use si potrebbe integrare con lo scriptino mio che controlla pacchetti gia' installati che userebbero quella nuova use http://forums.gentoo.org/viewtopic.php?t=187724

Posted: Wed Jun 23, 2004 7:04 pm
by xchris
non ti nascondo che mi spiacerebbe cambiargli nome..
ma per questo scopo sarei anche d'accordo.

useselect pero' nn mi sembra indicato. (sembra + un ufed2)

Qmerge effettivamente mergia... (non setta solo le USE)
era nato come QuickMerge.

ciauz

Posted: Wed Jun 23, 2004 7:05 pm
by FonderiaDigitale
mmm... vedi tu, e' solo un suggerimento. il senso e' che altrimenti si finisce per fare come con gentoolkit, ovvero 400 piccoli tool dal nome criptico che non si sa cosa fanno :)

Posted: Wed Jun 23, 2004 7:08 pm
by xchris
FonderiaDigitale wrote:bug 1: check sull'esistenza delle dipendenze.
esiste gia' una sezione di controllo.
chiaramente manca su dialog!
10x
ciao

Posted: Wed Jun 23, 2004 7:19 pm
by xchris
a dire il vero il controllo su dialog c'e'!

uhm.... vedo che lo hai lanciato da root..

which dialog?

ciao

Posted: Wed Jun 23, 2004 7:23 pm
by mrfree
emerge -UDav world
Ma non è fortemente sconsigliato l'uso dell'opzione -U ??? 8O

Premetto che non ho ancora esaminato Qemerge, forse quello che dici è solo per rendere l'idea; in caso contrario credo sarebbe utile adattare lo script in maniera tale da rendere pseudo-automatica o comunque più semplice/intuitivo l'aggiornamento del file

Code: Select all

/etc/portage/package.keywords
Riguardo l'opzione -U ci sono una marea di post nei vari forum (inglesi), non ricordo se ne abbiamo già parlato anche qui... :?

Posted: Wed Jun 23, 2004 7:31 pm
by FonderiaDigitale
non ho capito 'cosa non hai capito'...
-f controlla se e' un file, 'which dialog' passa il path preciso , loopando in cerca del file all'interno della variabile di ambiente ${PATH}..

Posted: Wed Jun 23, 2004 7:35 pm
by xchris
hihihi no!

lo script lo capisco. :)

e ora ho capito l'errore idiota in qmerge.
(controlla l'esistenza dei file indispensabili e avvisa con una dialog... furbo eh?)
aggiorno!

10x
ciao

Posted: Wed Jun 23, 2004 7:42 pm
by FonderiaDigitale
scusate se mi enfatizzo, ma volevo farvi presente un esempio, recente (5 minuti fa), di come il frutto dei nostri sforzi cominci a fruttare.
Vi propongo un esempio di utilizzo concreto:

Code: Select all

# ./Qmerge
Qmerge has encountered an error.
Take a look at /tmp/qmerge.dupworld file
]# cat /tmp/qmerge.dupworld
 
These are the packages that I would merge, in order:
 
Calculating world dependencies
!!! all ebuilds that could satisfy "sys-kernel/linux-headers" have been masked.
!!! possible candidates are:
- sys-kernel/linux-headers-2.0.40 (masked by: package.mask, -* keyword)
- sys-kernel/linux-headers-2.2.26 (masked by: package.mask, -* keyword)
- sys-kernel/linux-headers-2.4.21-r1 (masked by: package.mask)
- sys-kernel/linux-headers-2.4.21 (masked by: package.mask)
- sys-kernel/linux-headers-2.4.22 (masked by: package.mask)
- sys-kernel/linux-headers-2.4.23 (masked by: package.mask, -* keyword)
- sys-kernel/linux-headers-2.4.25 (masked by: package.mask, -* keyword)
- sys-kernel/linux-headers-2.4.26 (masked by: package.mask, -* keyword)
- sys-kernel/linux-headers-2.6.1 (masked by: package.mask, -* keyword)
- sys-kernel/linux-headers-2.6.3-r1 (masked by: package.mask, -* keyword)
- sys-kernel/linux-headers-2.6.4 (masked by: package.mask, -* keyword)
- sys-kernel/linux-headers-2.6.5 (masked by: -* keyword)
- sys-kernel/linux-headers-2.6.6 (masked by: -* keyword)
- sys-kernel/linux-headers-2.6.7 (masked by: -* keyword)
- sys-kernel/linux-headers-2.6.6-r1 (masked by: -* keyword)
!!!    (dependency required by "sys-apps/baselayout-1.9.4-r2" [ebuild])
 
!!! Problem with ebuild gnome-base/gconf-2.7.1
!!! Possibly a DEPEND/*DEPEND problem.
 
!!! Depgraph creation failed.
# ebuildcopy linux-headers-2.6.7 2.6.7-r1
 
Found package portage directory.
Found package version. Ebuild copied and renamed.
 
-rw-r--r--  1 root root 4174 23 giu 21:32 /usr/portage/overlay/sys-kernel/linux-headers/linux-headers-2.6.7-r1.ebuild
 
Do you want to edit it right now?y
modificato KEYWORDS="~x86" all'interno dell'ebuild

Code: Select all

Creating digest for linux-headers version 2.6.7-r1...
 
>>> Generating digest file...
<<< linux-2.6.7.tar.bz2
>>> Generating manifest file...
<<< linux-headers-2.6.7-r1.ebuild
<<< files/bigendian-byteorder-fix.patch
<<< files/generate-asm-sparc
<<< files/linux-headers-2.6.0-appCompat.patch
<<< files/linux-headers-2.6.0-fb.patch
<<< files/linux-headers-2.6.0-strict-ansi-fix.patch
<<< files/linux-headers-2.6.0-sysctl_h-compat.patch
<<< files/linux-headers-2.6.3-appCompat.patch
<<< files/linux-headers-2.6.3-strict-ansi-fix.patch
<<< files/linux-headers-2.6.4-appCompat.patch
<<< files/linux-headers-2.6.4-unistd-nptl-fix.patch
<<< files/linux-headers-strict-ansi-fix.patch
<<< files/linux-headers-2.6.6-appCompat.patch
<<< files/linux-headers-2.6.7-appCompat.patch
<<< files/linux-headers-2.6.6-tcp_info-DRS-backport.patch
<<< files/digest-linux-headers-2.6.7-r1
>>> Computed message digests.
 
Done copying ebuild :)
# emerge linux-headers
Calculating dependencies ...done!
>>> emerge (1 of 1) sys-kernel/linux-headers-2.6.7-r1 to /
>>> md5 src_uri ;-) linux-2.6.7.tar.bz2
>>> Unpacking source...
>>> Unpacking linux-2.6.7.tar.bz2 to /usr/portage/tmp/portage/linux-headers-2.6.7-r1/work
[...]
 * Caching service dependencies...
>>> Auto-cleaning packages ...
 
>>> No outdated packages were found on your system.
 
 
 * GNU info directory index is up-to-date.

# ./Qmerge
Dopodiche ho fatto le mie modifiche :)

Posted: Wed Jun 23, 2004 7:49 pm
by xchris
bhe :) ottimo!
secondo me lavorandoci su un po' il geKit potra' avere successo :)

ho uploadato la versione con le modifiche di fedeliallalinea e la correzione per il bug #1 segnalato da fonderia. (e di uno nuovo fresco fresco)

ultima --> ver 0.4a

appena ho raccolto un po' di bugs riscrivo l'head del file con i dovuti credits.

ciao

Posted: Wed Jun 23, 2004 7:52 pm
by xchris
mrfree wrote: forse quello che dici è solo per rendere l'idea
infatti!

lui fa un Dupv!

gli ebuild che sono da downgradare li elenca si,ma uncheckkati!

e' poi l'utente che decide cosa fare..

ciao

Posted: Wed Jun 23, 2004 10:11 pm
by mrfree
lui fa un Dupv!
Bene, questo mi conforta :wink:
Penso proprio che lo proverò...

Posted: Thu Jun 24, 2004 10:27 am
by xchris
riporta poi le impressioni.
sono utili per migliorarlo.

piccola nota (che fara' storcere il naso ai shellari)

sotto X e possibile operare anche con il mouse. (grazie a dialog)


ciao