Page 3 of 3
Posted: Tue Nov 09, 2004 8:46 am
by Manuelixm
Ho rimosso e unmergiato i vecchi kernel che comunque erano della versione 2.6.x seguendo un post di fedeliallalinea. Appena finisce di compilare riprovo col gufo, non so se mi restituirà qualcosa, penso di no.
Posted: Tue Nov 09, 2004 8:47 am
by xchris
prova a postare:
Code: Select all
find /var/db/pkg/sys-kernel/ | grep ".ebuild"
ciao
EDIT:non avevo letto il tuo ultimo post
Posted: Tue Nov 09, 2004 9:26 am
by Manuelixm
Figurati, ho solo da imparare, comunque eccoti:
Code: Select all
$ find /var/db/pkg/sys-kernel/ | grep ".ebuild"
/var/db/pkg/sys-kernel/gentoo-dev-sources-2.6.9-r1/gentoo-dev-sources-2.6.9-r1.ebuild
/var/db/pkg/sys-kernel/gentoo-dev-sources-2.6.8-r10/gentoo-dev-sources-2.6.8-r10.ebuild
/var/db/pkg/sys-kernel/linux-headers-2.4.21-r1/linux-headers-2.4.21-r1.ebuild
Posted: Tue Nov 09, 2004 10:55 am
by xchris
sembra ok...
prova poi il gufo.
ho usato il nuovo gufo ed ecco le impressioni.
Non ho avuto problemi particolari...
ma ti lascio cmq le mie impressioni:
- dovrebbe leggere CFLAGS non solo da make.conf
(se vuoi tagliate la testa al toro prendi le info da emerge --info cosi' non devi preoccuparti dei cascade profile) o per lo meno dovrebbe intercettare l'errore.
- se lanciato con -g in visualizzazione non funziona. (mostra le versioni)
- io non lo lancio mai in automatico perche' preferisco avere + controllo e mergiare quello che dico io.Farebbe comodo --no-color.
Dovrebbe avvisare se la versione installata non e' + presente in portage.
(magari switchare sulla versione nuova)
Su sistemi vecchi in automatico non funziona bene per le versioni slotted in particolare. (se uso -g mi ricompila solo l'ultima...)
A parte queste critiche (del tutto personali e non condivisibili) reputo il gufo uno strumento essenziale! Grazie!
ciao
EDIT:ormai con gufo,revdep-rebuild,usetool,unclepine sono in grado di sistemare completamente un sistema e di snellirlo!! OTTIMO

Posted: Tue Nov 09, 2004 12:05 pm
by neon
Manuelixm wrote:Io lo stavo provando, ho riscontrato uno strano comportamento con i kernel, ossia mi scarica tutti i kernel anche i 2.4.x e me li compila.
Si è un bug che ho trovato tempo fa. Ho aggiunto l'opzione
-g proprio per questo prova con quella...
xchris wrote:questo perche' hai ancora dei kernel vecchi installati credo...
controlla Smile
ciao
Purtroppo è dovuto al fatto che se sono stati installati si trovano nel db anche dopo essere stati rimossi. Fare un ulteriore controllo sui pacchetti in db ma non installati renderebbe il programma moooolto lento. Per ora consiglio di provare -g
xchris wrote:- se lanciato con -g in visualizzazione non funziona. (mostra le versioni)
Azz, vero. Correggo subito, il fatto è che li compila senza versione ma li mostra con. Che sbadato
xchris wrote:Farebbe comodo --no-color
Detto fatto. Nella prossima versione ci sarà anche questo.
xchris wrote:Su sistemi vecchi in automatico non funziona bene per le versioni slotted in particolare. (se uso -g mi ricompila solo l'ultima...)
Non ho ancora inserito alcun controllo sugli slot e per ora non è in programma. Dopo aver corretto alcune cosette magari =)
xchris wrote:A parte queste critiche (del tutto personali e non condivisibili) reputo il gufo uno strumento essenziale! Grazie!
Grazie a te, il tuo è stato uno dei report più dettagliati che ho ricevuto. (insieme a quelli di fonderia)

è solo grazie a questi consigli che il gufo non è solo uno scriptino del mio sistema.
PS: Le statistiche di sf indicando che al momento siamo a 351 download, considerando che ieri il gufo ha fatto il compleanno

è quasi un download al giorno

Posted: Mon Dec 20, 2004 10:35 am
by mrfree
Sto provando gufo ma ho notato qualche problema (sto usando la 0.2.2)...
Code: Select all
./gufo.py --cflags="-malign-double"
Ritorna la lista dei pacchetti compilati con il flag -malign-double
Code: Select all
./gufo.py --cflags="-malign-double" --recompile
Invece non da segni di vita rimane a
Code: Select all
Please wait a moment, scanning database...
anche con
top sembra che non ci sia nessun processo in running legato a gufo
Non conosco python ma credo che il problema sia nella selectOutput()
Edit: utilizzando l'opzione
auto funziona!
Posted: Mon Dec 20, 2004 10:39 am
by fedeliallalinea
Non e' che la linea deve essere
Code: Select all
./gufo.py --cflags="-malign-double" --recompile
Posted: Mon Dec 20, 2004 10:55 am
by mrfree
Si, scusa ho sbagliato a scrivere nel post
Adesso l'ho corretto
Posted: Mon Dec 20, 2004 2:08 pm
by mrfree
Un'altra cosetta IMHO utile, potrebbe essere un'opzione che permette di skippare determinati pacchetti.
Ad esempio nel mio caso devo compilare prima le glibc poi eseguire il localedef opportuno e solo in seguito avviare l'emerge tramite gufo, ovviamente non ho intenzione di riemergere glibc altrimenti il localedef sarebbe vanificato
Insomma un
--no-pkg "glibc" mi farebbe comodo

Posted: Mon Dec 20, 2004 10:25 pm
by neon
mrfree wrote:Un'altra cosetta IMHO utile, potrebbe essere un'opzione che permette di skippare determinati pacchetti.
[...]
Insomma un
--no-pkg "glibc" mi farebbe comodo

E' in programma un file di config tipo gufo.mask in cui mettere i pacchetti (stile categoria/pacchetto-versione) ma ultimamente lo sviluppo è fermo.
Per quanto riguarda il problema, appena arrivo a casa controllo
edit: dimenticavo. Posta
e
Posted: Tue Dec 21, 2004 8:18 am
by mrfree
E' in programma un file di config tipo gufo.mask in cui mettere i pacchetti (stile categoria/pacchetto-versione)
Ottimo
Code: Select all
# python -V
Python 2.3.4
# dialog --version
Version: 1.0-20040731
Posted: Tue Dec 21, 2004 8:29 pm
by neon
mrfree wrote:Code: Select all
# dialog --version
Version: 1.0-20040731
E' lui... non so cosa abbiano cambiato ma con questa versione non funziona.
Nemmeno con la 0.9_beta20031207 funziona. A me funzionava perchè non avevo ancora aggiornato quella versione. L'unica soluzione è scaricare la
0.9_beta20030308-r1 metterla in PORTDIR_OVERLAY e dare:
Code: Select all
emerge =dialog-0.9_beta20030308-r1
Qualcuno ha informazioni in proposito??? Lo script chiama dialog e poi si blocca aspettando l'output...
Posted: Sun Jan 02, 2005 7:16 pm
by j4ck
Salve a tutti, come avevo già accennato a neon_it ho fatto una versione grafica del gufo
http://mio.discoremoto.virgilio.it/j4ck/gufoG.py .
Funziona come il gufo originale ha solo un paio di opzioni in più, --tkinter per avviare l' interfaccia grafica e -s o --saved per ricompilare i pacchetti salvati in un file.
Per sicurezza, ho commentato i comandi per l' emerge
Code: Select all
def emerge():
global selected, options
print selected
# out = ""
# for i in selected:
# if options["GENERIC"]:
# out += " " + pkgsplit(i["NAME"])[0]
# else:
# out += "=" + i["NAME"] + " "
# if out:
# os.system("emerge --oneshot " + out)
Ciao,
j4ck
P.S. Richiede che python sia compilato con la USE "tcltk".
Due opzioni in piu:
Posted: Sun Jan 23, 2005 12:11 pm
by codarin
Ciao a tutti,
ho aggiunto due opzioni a Gufo (senza GUI) relative a:
--fetchonly che personalmente mi è utile quando (disponendo solo temporanemante di banda larga) voglio fare solo il download di tutti i pacchetti occorrenti per la gufata e compilarli in un secondo momento
--pretend per sapere quanti pacchetti gufo mi vuole ricompilare... a me sono risultati utili... non sono un pythonaro... quindi li ho aggiunti alla meno peggio...
Code: Select all
#! /usr/bin/env python
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Gufo 0.2 Copyright 2003 Luca Marra <annoiato@aliceposta.it>
#
# Thanks to: Lorenz B. and Nicola F.
import os.path, re, sys, getopt, commands
from output import bold, green, darkgreen
from portage import pkgsplit
dir = "/var/db/pkg/"
options = {"CFLAGS":"", "COMPACT":False, "INVERT":False, "COMP":False, "AUTO":False, "GENERIC":False, "FETCHONLY":False, "PRETEND":False}
ebuilds = []
selected = []
def printUsage():
print "usage: ./gufo.py [options]"
print """
-h, --help this message
-C, --cflags=cflags cflags to search
-v, --invert-match invert the sense of matching
-r, --recompile recompiles selected packages
-a, --auto auto (impilies recompile)
-g, --generic compiles the generic package
(not the specific version)
-c, --compact compact output
--fetchonly fetches only packages
--pretend executes pretend to evaluate the number of packages to be compiled
"""
def getOpt():
global options
opts, args = getopt.getopt(sys.argv[1:], "harvcgC:", ["help", "auto", "recompile", "invert-match", "cflags=", "compact", "generic", "fetchonly", "pretend"])
for o, a in opts:
if o == "-h" or o == "--help":
printUsage()
sys.exit()
if o == "-r" or o == "--recompile":
options["COMP"] = True
if o == "-a" or o == "--auto":
options["COMP"] = True
options["AUTO"] = True
if o == "-v" or o == "--invert-match":
options["INVERT"] = True
if o == "-C" or o == "--cflags":
options["CFLAGS"] = a
if o == "-c" or o == "--compact":
options["COMPACT"] = True
if o == "-g" or o == "--generic":
options["GENERIC"] = True
if o == "-f" or o == "--fetchonly":
options["FETCHONLY"] = True
if o == "-p" or o == "--pretend":
options["PRETEND"] = True
if options["CFLAGS"] == "":
options["INVERT"] = True
options["CFLAGS"] = getMakeFlags()
return
def find(string, sub):
p = re.compile(sub)
result = p.findall(string)
return result
def grep(file, string):
global ebuilds, options
f = open(file)
cflags = f.read()
f.close
result = find(cflags, string)
name = file[12:-7]
cflags = cflags[:-1]
ebuild = {"NAME":name, "CFLAGS":cflags}
if result:
if options["INVERT"] == False:
ebuilds.append(ebuild)
else:
if options["INVERT"]:
ebuilds.append(ebuild)
def getFiles(arg, dirname, files):
for file in files:
if file == "CFLAGS":
grep(dirname + "/" + file, arg)
def getMakeFlags():
f = open("/etc/make.conf")
mconf = f.read()
f.close
result = re.compile("\nCFLAGS=.+").search(mconf)
result = result.group()[9:-1]
return result
def doSomething():
global ebuilds, selected, options
if options["COMP"]:
if options["AUTO"]:
selected = ebuilds
emerge()
else:
pack = selectOutput()
emerge()
else:
printOutput(ebuilds, options["COMPACT"])
def selectOutput():
global ebuilds, selected
out = ""
for i in ebuilds:
out += "\"" + i["NAME"] + "\" \"" + i["CFLAGS"] + "\" off "
cmd = "dialog --clear --separate-output --title \"Gufo Selector\" \
--checklist \"Select packages to recompile\" 0 0 0 " + out
pack = commands.getoutput(cmd)
if pack:
pack = pack.split("\n")
for i in pack:
ebuild = {"NAME":i}
selected.append(ebuild)
return 1
return 0
def printOutput(list, compact=False):
print
if compact:
for i in list:
print bold(i["NAME"] + ": ") + i["CFLAGS"]
else:
for i in list:
print green("*") + bold(" " + i["NAME"])
print darkgreen(" CFLAGS: ") + i["CFLAGS"]
print
def emerge():
global selected, options
out = ""
for i in selected:
if options["GENERIC"]:
out += " " + pkgsplit(i["NAME"])[0]
else:
out += "=" + i["NAME"] + " "
#Added fetchonly feature [ivan]
if options["FETCHONLY"]:
out += " -f "
#Added pretend feature [ivan]
if options["PRETEND"]:
out += " -p "
if out:
os.system("emerge " + out)
getOpt()
if options["CFLAGS"]:
print "Please wait a moment, scanning database..."
os.path.walk(dir, getFiles, options["CFLAGS"])
if ebuilds:
doSomething()
else:
print "Error: no packages found"
Ciao
Posted: Thu Mar 17, 2005 5:03 pm
by neon
http://forums.gentoo.org/viewtopic-p-19 ... ml#1990669
codarin wrote:Grazzie... bello sia equery che un cat sul pacchetto!
Grazie, ora ho più coraggio a ricompilare!
Tra le altre cose gufo (BY GEKIT) ho visto che mi fa il parsing anche dei GRP e quindi gufo stesso estrae le cflag con cui le cose sono state compilate!
Wow, figata... non lo sapevo mica (ahahahahahahahahahah)
Dite che puo' essere utile una opzione verbosa che mostra tutte le info con cui e' stato compilato un pacchetto? (basta guardare in /var/db/pkg)
Posted: Tue Aug 09, 2005 2:41 pm
by neon
Ecco una nuova versione di gufo. Le vecchie sono state nascoste (non rimosse) da sourceforge perche' hanno un fastidioso bug che blocca il gufo durante la schermata di selezione dei pacchetti.
Gufo-kiss presenta la lista di pacchetti e chiede se ricompilare o meno (super simple) niente di piu' niente di meno...
Al momento il gufo non e' ancora perfetto, ma sicuramente e' migliore rispetto alle vecchie versioni, il problema e' il seguente:
http://forums.gentoo.org/viewtopic-t-364677.html
In questa versione viene aggirato, quando sara' risolto uscira' la versione 0.3 di gufo che avra' tutte le vecchie opzioni (e si spera anche alcune nuove)
gufo-kiss e' giovine ed e' poco betatestato vi prego di segnalare qualunque problema

Posted: Wed Aug 10, 2005 7:50 pm
by fctk
l'ho provato per la prima volta, e devo dire che è veramente bello!

comunque, dopo averlo eseguito la prima volta (e aver compilato i pacchetti che diceva), ora mi trovo davanti a questa lista "immutabile":
Code: Select all
thorium gufo-kiss # gufo-kiss.py
Please wait: Scanning portage db
* x11-misc/gtodo-0.14
CFLAGS: -Os -march=athlon-xp -pipe
* sys-devel/patch-2.5.9-r1
CFLAGS: -Os -march=athlon-xp -pipe -DLINUX -D_XOPEN_SOURCE=500
* sys-devel/binutils-2.16.1
CFLAGS: -Os -march=athlon-xp -pipe
* net-libs/gecko-sdk-1.7.8
CFLAGS: -march=athlon-xp -pipe -Wno-return-type -w
re-emerge listed packages? (y/n) n
Ok, bye ;)
con ogni probabilità si tratta di pacchetti che filtrano alcune CFLAGS e quindi non potranno mai essere compilate con tutte le CFLAGS correnti, e cioè con:
Code: Select all
CFLAGS="-Os -march=athlon-xp -pipe -fomit-frame-pointer"
ad esempio... binutils non viene compilato con -fomit-frame-pointer, ma a parte quella tutte le altre cflags con cui è stato compilato corrispondono esattamente a quelle che ho settato in make... quindi secondo me gufo non dovrebbe chiederne la ricompilazione... chiedo troppo?

Posted: Thu Aug 11, 2005 5:28 pm
by neon
fctk wrote:con ogni probabilità si tratta di pacchetti che filtrano alcune CFLAGS e quindi non potranno mai essere compilate con tutte le CFLAGS correnti
Esatto.
fctk wrote:ad esempio... binutils non viene compilato con -fomit-frame-pointer, ma a parte quella tutte le altre cflags con cui è stato compilato corrispondono esattamente a quelle che ho settato in make... quindi secondo me gufo non dovrebbe chiederne la ricompilazione...
Il problema e' quello di cui parlo nell'altro post, al momento gufo filtra gcc e gli ebuilds che contengono le stringhe "replace-flags" e "filter-flags", il problema e' che alcuni ebuild (che io chiamo magici ma semplicemente non ho capito come funzionano) pur non contenendo queste funzioni filtrano le CFLAGS ad esempio
binutils-2.15.92.0.2-r10.ebuild:
Code: Select all
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/binutils/binutils-2.15.92.0.2-r10.ebuild,v 1.5 2005/05/31 22:04:27 vapier Exp $
PATCHVER="2.5"
UCLIBC_PATCHVER="1.1"
inherit toolchain-binutils
KEYWORDS="-* alpha amd64 -arm hppa ia64 m68k ~mips -ppc ~ppc64 sparc x86"
~
E' un pacchetto virtuale... che non contiene filtri... eppure filtra le CFLAGS.
fctk wrote:chiedo troppo?

No chiedi il giusto ma sinceramente conosco a stento il 5% del codice di portage ed al momento non ho idee brillanti...
qualche consiglio?
Posted: Sat Aug 13, 2005 8:19 pm
by fctk
neon wrote:fctk wrote:chiedo troppo?

No chiedi il giusto ma sinceramente conosco a stento il 5% del codice di portage ed al momento non ho idee brillanti...
qualche consiglio?
nessuno, purtroppo

sono troppo niubbo in questo campo...

Posted: Fri Feb 16, 2007 5:54 pm
by 102376
riprendo questo post senza aprirne uno nuovo.
io ho fatto un installazione da stage 3 e volevo ricompilare solo la parte dello stage 3. non c'è un modo per aggiornare solo i pacchetti che hanno le cflag diverse?????