View previous topic :: View next topic |
Author |
Message |
truc Advocate
Joined: 25 Jul 2005 Posts: 3199
|
Posted: Wed Apr 26, 2006 11:14 pm Post subject: [CONTRIB] esearch et overlay(s)[résolu] |
|
|
Bonjour, vous l'attendiez tous, voila (je crois bien) le premier post CONTRIB, bref, vous me direz si j'ai eu tord ou pas..
première contrib
Je m'explique, app-portage/esearch a un problème: j'ai un overlay dans lequel, j'ai media-sound/mpd/mpd-9999.ebuild
voila ce que j'ai
eix --exact mpd: | * media-sound/mpd
Available versions: 0.11.5 0.11.5-r2 9999[1]
Installed: 9999
Homepage: http://www.musicpd.org
Description: Music Player Daemon (mpd)
[1] /usr/local/overlays/portage
|
Si je fais (ma fonction préférée qui me fais avoir esearch en eix en même temps, car eix n'a pas cette fonction)
esearch -e mpd: | <--cut-->
[ I] media-sound/mpd (9999): A development version of Music Player Daemon (mpd)
Portage [5] mpd-0.11.5
Portage [6] mpd-0.11.5-r2
Overlay [7] mpd-9999
<--cut-->
Show Ebuild:
|
*le -e signifie --ebuild en théorie cf mon deuxième post
donc si je selectionne 7, ça m'ouvre bien l'ebuild /usr/local/overlays/portage/media-sound/mpd/mpd-9999
Par contre, maintenant ce qui est fun c'est que si j'ai un ebuild dans l'overlay qui est à la même version, et bien ça ne fonctionne pas.. pour le voir voici ce qu'on peut faire Code: | echo dsfqfnqm >/usr/local/overlays/portage/media-sound/mpd/mpd-0.11.5-r2.ebuild |
( je sais un touch aurai suffit)
Maintenant, je le vois bien apparaitre:
esearch -e mpd: | <--cut-->
[ I] media-sound/mpd (9999): A development version of Music Player Daemon (mpd)
Portage [5] mpd-0.11.5
Portage [6] mpd-0.11.5-r2
Overlay [7] mpd-0.11.5-r2
Overlay [8] mpd-9999
<--cut-->
Show Ebuild:
|
Mais.. si je rentre 7 ça m'ouvre l'ebuild mpd-0.11.5-r2 de l'arbre officiel ( /usr/portage/media-sound/mpd//mpd-0.11.5-r2.ebuild )
Donc l'objet de ce post serait d'essayer de fixer ça, puis de poster le tout sur bugzilla, si on n'y arrive.
Deuxième contrib
J'ai également remqrqué que si on a plusieurs overlays, esearch ne les voient plus, je n'en ai plus qu'un actuellement mais, ça se vérifie très simplement, rajoutant un overlay, avec ce même media-sound/mpd/mpd-0.11.5-r2.ebuild que tout à l'heure. Et on peut voir que esearch ne va carrément pas chercher dedans ( notre ./esearch.py --ebuild mpd ne renvoi que les ebuilds officiels)
bon tout ça doit surment pouvoir se regler entre les lignes 32->40 et après la ligne 306, mais déjà, j'ai une question intermediaire, il y a à la ligne :
Code: |
from os import listdir, getenv, system
from os.path import isdir
from portage import settings, pkgcmp, pkgsplit
| ça vient d'où ça? les os, os.path et portage? from de ces choses mais elles sont où d'ailleurs?!
Last edited by truc on Mon May 08, 2006 2:29 pm; edited 3 times in total |
|
Back to top |
|
|
truc Advocate
Joined: 25 Jul 2005 Posts: 3199
|
Posted: Wed Apr 26, 2006 11:15 pm Post subject: |
|
|
Bon et comme je viens de remarquer, en fait esearch --ebuild mpd ne fonctionne pas comme il le devrait(me renvoyer la liste des ebuild dispo etC..) , (ça me renvoie un bête esearch mpd à la place, pourtant dans esearch --help et man esearch c'est bien écrit comme ça, bon j'm'y connais pas encore trop en python, mais en jetant un oeil dans le esearch.py, j'ai finalement pondu ce sublissime patch, j'y connais encore trop rien au patch , c'est pourquoi, ça me fait plaisir d'en soumettre un, même si je ne change qu'une lettre..
Bon pour faire joujou, j'ai copier esearch-0.7.1.tar.bz2 des distfiles vers $HOME/tmp, maintenant à vous de voir.. comme esearch est déjà installé j'ai déjà la database de construite etc..
bon, untar de l'ensemble, puis on copie ça dans le dossier esearch-0.7.1
esearch-ebuild.patch: | --- esearch.py 2005-02-17 11:40:35.000000000 +0100
+++ esearch.py.new 2006-04-27 00:41:42.807456336 +0200
@@ -128,7 +128,7 @@
from output import blue
from common import version
outputm = VERBOSE
- elif arg in ("-e", "--ebuilds"):
+ elif arg in ("-e", "--ebuild"):
from os import listdir, getenv, system
from os.path import isdir
from portage import settings, pkgcmp, pkgsplit |
puis on se place dedans ce dossier, et Code: | patch esearch.py esearch-ebuild.patch | ( je sais que patch peut avoir des options dus style -p1 etc.. mais pour l'instant tout ça est très vague pour moi.. donc si vous vous sentez d'attaque pour eclaircir tout ça.. sinon c'est pas grave ça viendra..)
Et enfin ensuite on peut vérifier que notre version d'esearch fonction normalement désormais:
Code: | ./esearch.py --ebuild mpd | me renvoi bien ce que je demande (une liste d'ebuild)
Last edited by truc on Sat Apr 29, 2006 4:05 pm; edited 1 time in total |
|
Back to top |
|
|
truc Advocate
Joined: 25 Jul 2005 Posts: 3199
|
Posted: Sat Apr 29, 2006 12:16 pm Post subject: Re: [CONTRIB] esearch et overlay(s) |
|
|
truc wrote: | bon tout ça doit surment pouvoir se regler entre les lignes 32->40 et après la ligne 306, mais déjà, j'ai une question intermediaire, il y a à la ligne :
Code: |
from os import listdir, getenv, system
from os.path import isdir
from portage import settings, pkgcmp, pkgsplit
| ça vient d'où ça? les os, os.path et portage? from de ces choses mais elles sont où d'ailleurs?! |
Je ne connais toujours pas trop python, mais avec le temps je me suis dit que c'était surement des fichiers (sources?) qui viennent avec portage en partie, ce qui expliquerai ces lignes (au début):
Code: | sys.path.insert(0, "/usr/lib/portage/pym")
sys.path.insert(0, "/usr/lib/esearch") |
Voila, je me dis que portage, os.path etc. doivent se trouver quelque part par là.
--> tiens, une recherche de /usr/lib/portage/pym (sur le net) m'informe qu'un certain fichier /usr/lib/portage/pym/portage.py existe, je nedois pas être loin.. malheureusement, je ne suis pas chez moi, donc si quelqu'un à un lien ou quoique ce soit, pour que je puisse avoir accès à ces fichiers, ça serait cool:)
-->tout ça me fait penser que, c'est pas la première que j'y pense, ça pourrait être sympa d'avoir toute l'arborescence "system" d'une installation gentoo, quand par exemple (c'est arrivé à preque tout le monde je suis sûr.. ) on efface un ou plusieurs fichiers de conf essentiels. Toute l'installation/arborescence serait en read-only biensur, mais ça serait cool, ça existe déjà peut-être?. Bref, merci
EDIT: j'ai trouvé ça mais c'est très léger... |
|
Back to top |
|
|
truc Advocate
Joined: 25 Jul 2005 Posts: 3199
|
Posted: Thu May 04, 2006 8:37 pm Post subject: |
|
|
iopiop, me revoila
Bon, c'est (à moitié) un monologue mais bon. c'est pas grave..
On oublie le premier patch, celui qui vient fera tout d'un coup (vu la modif du premier, c'est pas trop grave...
Bon, donc, je ne m'y connais toujours pas en python, j'ai juste bidouillé enregardant un peu comment ça semblait marcher.. Donc, toute remarque, si remarques il y a (on peut rever non?), sera la bienvenue..
Alors, ce patch ne résoud pour l'instant, qu'une partie du problème, cf après
Donc, voici, ce que ce patch fait:
--> enlève le s qui foutait en l'air la recherche d'ebuild avec l'options --ebuild
--> une boucle, pour tous les overlays, et leur donne un numéro:
Code: | if overlay:
repo_num=1
for repo in overlay.split():
searchEbuilds("%s/%s/" % ( repo, pkg[1]), False, searchdef,repo_num)
repo_num=repo_num+1 |
--> comme peut-être vous l'avez remarqué(ça m'étonnerai vu l'interet que suscite ce poste...), modification de la fonction searchEbuilds qui maintenant, affichera le numéro de l'overlay dans lequel le paquet aura été trouvé
--> Enfin, si overlay(s) il y a, esearch se chargera de les afficher (numéro et chemin)
diff -Naru esearch.py esearch.py.new: | --- esearch.py 2005-02-17 11:40:35.000000000 +0100
+++ esearch.py.new 2006-05-04 22:17:18.020736128 +0200
@@ -64,16 +64,16 @@
if fatal:
sys.exit(1)
-def searchEbuilds(path, portdir = True, searchdef = ""):
+def searchEbuilds(path, portdir = True, searchdef = "", repo_num = ""):
global ebuilds, output, defebuild
pv = ""
pkgs = []
nr = len(ebuilds) + 1
if portdir:
- rep = darkgreen("Portage")
+ rep = darkgreen("Portage ")
else:
- rep = red("Overlay")
+ rep = red("Overlay ("+str(repo_num)+")")
if isdir(path):
list = listdir(path)
@@ -128,7 +128,7 @@
from output import blue
from common import version
outputm = VERBOSE
- elif arg in ("-e", "--ebuilds"):
+ elif arg in ("-e", "--ebuild"):
from os import listdir, getenv, system
from os.path import isdir
from portage import settings, pkgcmp, pkgsplit
@@ -309,12 +309,19 @@
else:
searchdef = ""
- searchEbuilds("%s/%s/" % (portdir, pkg[1]), True, searchdef)
+ searchEbuilds("%s/%s/" % (portdir, pkg[1]), True, searchdef, "")
if overlay:
- searchEbuilds("%s/%s/" % (overlay, pkg[1]), False, searchdef)
+ repo_num=1
+ for repo in overlay.split():
+ searchEbuilds("%s/%s/" % ( repo, pkg[1]), False, searchdef,repo_num)
+ repo_num=repo_num+1
+
+
+
+ output.append("\n")
- output.append("\n")
+ output.append("\n")
count += 1
regexlist[i][2] = "".join(output)
@@ -334,6 +341,13 @@
if outputm == NORMAL:
print ""
+if overlay:
+ repo_num=1
+ for repo in overlay.split():
+ print red("("+str(repo_num)+") : "+repo)
+ repo_num=repo_num+1
+
+
if outputm == EBUILDS and count != 0:
if count > 1:
defebuild = (0, 0)
@@ -342,9 +356,9 @@
nr = 1
else:
if defebuild[0] != 0:
- print bold("Show Ebuild"), " (" + darkgreen(defebuild[0]) + "): ",
+ print bold("\nShow Ebuild"), " (" + darkgreen(defebuild[0]) + "): ",
else:
- print bold("Show Ebuild: "),
+ print bold("\nShow Ebuild: "),
try:
nr = sys.stdin.readline()
except KeyboardInterrupt:
|
esearch va maintenant chercher dans les overlays, si il y en a plusieurs, mais.. il deux paquets existe dans une même version, dans le tree officiel, ou dans (au moins..) deux overlays, on a toujours un problème:
esearch -e sur ce paquet, en selectionnatn cette version, esearch semble nous ouvrir le premier ebuild trouvé.
Si je m'exprime mal, voici, ce qu'on peut faire pour le voir mieu..:
touch /usr/local/overlays/test/media-sound/mpd/mpd-9999.ebuild
maintenant, ./esearch.py.new -e mpd nous renvoi: Code: | <--cut-->
[ I] media-sound/mpd (9999): A development version of Music Player Daemon (mpd)
Portage [5] mpd-0.11.5
Portage [6] mpd-0.11.5-r2
Overlay (1) [7] mpd-9999
Overlay (2) [8] mpd-0.11.5-r2
Overlay (2) [9] mpd-9999
<--cut-->
(1) : /usr/local/overlays/portage
(2) : /usr/local/overlays/test
Show Ebuild: |
(remarquez que je n'ai pas de mpd-9999 dans l'arbre officiel)
Si je mets 2, esearch m'ouvre /usr/local/overlays/portage/media-sound/mpd//mpd-9999.ebuild soit le premier trouvé car mon overlay "1" se trouve "avant" dans make.conf par rapport à l'overlay "2" (testé en inversant l'ordre dans PORTDIR_OVERLAY et c'est confirmé)
Voila, j'en suis là..
Bonne soirée
Last edited by truc on Thu May 04, 2006 10:16 pm; edited 1 time in total |
|
Back to top |
|
|
boozo Advocate
Joined: 01 Jul 2004 Posts: 3193
|
|
Back to top |
|
|
truc Advocate
Joined: 25 Jul 2005 Posts: 3199
|
Posted: Thu May 04, 2006 10:15 pm Post subject: |
|
|
t'inquiètes:), c'était surtout de l'auto dérision, je sais bien, que ça prends du temps, moi même j'ai regardé au début le code d'esearch, j'y captais rien, puis finalement, en y repenssant par moment, et y revenant, c'est viendu;)
Bref, donc, je déprime pas, je comprends vos (absences) de réaction(s).. il s'est passé la même chose pour le post de TGL dans tips and tricks , sur gerer ses overlays , il a du s'écouler un mois(arpès veirf pile un mois..) avant que j'essaies son script!
Bref, sinon, c'est pas un ebuild, mais juste un patch, je peut tout de suite modifier l'ebuild, pour incorporer ce patch, mais je ne savais pas si c'était là manière à suivre, pour un truc qui n'est encore qu'à l'état d'essai.
pour l'instant, pour ne rien faire de mal, (j'me doute que toi, boozo, sache déjà maitriser l'art des patch etc.. mais pour les autres, je le précise au cas où, donc dans votre repertoire esearch-0.7.1, (après avoir décompressé l'archive), il vous suffit de copier le patch, et de faire un :
Code: | patch -p0 < nom_du_patch |
et -p0 si j'ai tout bien compris, ça ne devrait pas être util ici, mais le patch est la diff de fichier esearch.py et esearch.py.new, et donc, leur chemin, n'étant pas précisés dans le patch, je peut le prendre en entier (p0, je n'enlève rien..) bref c'est à peu près ça je crois. )
EDIT 06/05/2006
allé, hop une mini révision:
esearch-overlays.patch: | diff -Naru esearch-0.7.1/esearch.py esearch-0.7.1-tmp/esearch.py
--- esearch-0.7.1/esearch.py 2005-02-17 11:40:35.000000000 +0100
+++ esearch-0.7.1-tmp/esearch.py 2006-05-06 15:59:24.583468808 +0200
@@ -64,16 +64,16 @@
if fatal:
sys.exit(1)
-def searchEbuilds(path, portdir = True, searchdef = ""):
+def searchEbuilds(path, portdir = True, searchdef = "", repo_num = ""):
global ebuilds, output, defebuild
pv = ""
pkgs = []
nr = len(ebuilds) + 1
if portdir:
- rep = darkgreen("Portage")
+ rep = darkgreen("Portage ")
else:
- rep = red("Overlay")
+ rep = red("Overlay ("+str(repo_num)+")")
if isdir(path):
list = listdir(path)
@@ -128,7 +128,7 @@
from output import blue
from common import version
outputm = VERBOSE
- elif arg in ("-e", "--ebuilds"):
+ elif arg in ("-e", "--ebuild"):
from os import listdir, getenv, system
from os.path import isdir
from portage import settings, pkgcmp, pkgsplit
@@ -309,12 +309,16 @@
else:
searchdef = ""
- searchEbuilds("%s/%s/" % (portdir, pkg[1]), True, searchdef)
+ searchEbuilds("%s/%s/" % (portdir, pkg[1]), True, searchdef, "")
if overlay:
- searchEbuilds("%s/%s/" % (overlay, pkg[1]), False, searchdef)
+ repo_num=1
+ for repo in overlay.split():
+ searchEbuilds("%s/%s/" % ( repo, pkg[1]), False, searchdef,repo_num)
+ repo_num += 1
+
- output.append("\n")
+ output.append("\n")
count += 1
regexlist[i][2] = "".join(output)
@@ -334,6 +338,15 @@
if outputm == NORMAL:
print ""
+
+if outputm == EBUILDS:
+ if overlay:
+ repo_num=1
+ for repo in overlay.split():
+ print red("("+str(repo_num)+") : "), bold(repo)
+ repo_num += 1
+
+
if outputm == EBUILDS and count != 0:
if count > 1:
defebuild = (0, 0)
@@ -342,9 +355,9 @@
nr = 1
else:
if defebuild[0] != 0:
- print bold("Show Ebuild"), " (" + darkgreen(defebuild[0]) + "): ",
+ print bold("\nShow Ebuild"), " (" + darkgreen(defebuild[0]) + "): ",
else:
- print bold("Show Ebuild: "),
+ print bold("\nShow Ebuild: "),
try:
nr = sys.stdin.readline()
except KeyboardInterrupt:
|
Et donc, c'est juste un petit nettoyage, c'est normalement plus propre, dans esearch--0.7.1:
pour patcher wrote: | patch -p1 < chemin/vers/esearch-overlays.patch |
c'est -p1 car j'ai juste changer la manière de faire la diff
sinon je me demande, si il faut faire un patch en considérant les patch déjà écrit ou s'ils ils faut patcher sur la version nature? (de toute façons patch saura gérer en général, mais bon.. Donc je pense, vous donner des nouvelles diff en prenant en compte les patch déjà existant de esearch dans portage.. voilii-voilou..
|
|
Back to top |
|
|
truc Advocate
Joined: 25 Jul 2005 Posts: 3199
|
Posted: Sun May 07, 2006 11:38 am Post subject: |
|
|
c'ets bon je l'ai finallement eu! j'ai donc poster sur bugs.gentoo.org
BUGS 132548: esearch fix for multiple overlay, and few other 'bugs'
Et pour ceux qui ne vont jamais fait un tour là bas, je me permets de les reposter ici:)
132548-multiple-overlay.patch: | diff -Naru esearch-0.7.1/esearch.py esearch-0.7.1-tmp/esearch.py
--- esearch-0.7.1/esearch.py 2006-05-07 12:27:59.481566744 +0200
+++ esearch-0.7.1-tmp/esearch.py 2006-05-07 12:37:17.006810024 +0200
@@ -64,16 +64,16 @@
if fatal:
sys.exit(1)
-def searchEbuilds(path, portdir = True, searchdef = ""):
+def searchEbuilds(path, portdir = True, searchdef = "", repo_num = ""):
global ebuilds, output, defebuild
pv = ""
pkgs = []
nr = len(ebuilds) + 1
if portdir:
- rep = darkgreen("Portage")
+ rep = darkgreen("Portage ")
else:
- rep = red("Overlay")
+ rep = red("Overlay "+str(repo_num)+" ")
if isdir(path):
list = listdir(path)
@@ -82,7 +82,7 @@
if file[-7:] == ".ebuild":
pv = file[:-7]
pkgs.append(pkgsplit(pv))
- pkgs[-1].append(path + "/" + file)
+ pkgs[-1].append(path + file)
if searchdef != "" and pv == searchdef:
defebuild = (searchdef, pkgs[-1][3])
pkgs.sort(pkgcmp)
@@ -91,9 +91,9 @@
if pkg[2] != "r0":
rev = "-" + pkg[2]
output.append(" " + rep + " [" + bold(str(nr)) + "] " + pkg[0] + "-" + pkg[1] + rev + "\n")
- ebuilds.append(pkg[3])
+ ebuilds.append(pkg[len(pkg)-1])
nr += 1
-
+
NORMAL = 1
COMPACT = 2
VERBOSE = 3
@@ -128,7 +128,7 @@
from output import blue
from common import version
outputm = VERBOSE
- elif arg in ("-e", "--ebuilds"):
+ elif arg in ("-e", "--ebuild"):
from os import listdir, getenv, system
from os.path import isdir
from portage import settings, pkgcmp, pkgsplit
@@ -313,12 +313,14 @@
else:
searchdef = ""
- searchEbuilds("%s/%s/" % (portdir, pkg[1]), True, searchdef)
+ searchEbuilds("%s/%s/" % (portdir, pkg[1]), True, searchdef, "")
if overlay:
- searchEbuilds("%s/%s/" % (overlay, pkg[1]), False, searchdef)
+ repo_num=1
+ for repo in overlay.split():
+ searchEbuilds("%s/%s/" % ( repo, pkg[1]), False, searchdef,repo_num)
+ repo_num += 1
output.append("\n")
-
count += 1
regexlist[i][2] = "".join(output)
@@ -338,34 +340,42 @@
if outputm == NORMAL:
print ""
-if outputm == EBUILDS and count != 0:
- if count > 1:
- defebuild = (0, 0)
- if len(ebuilds) == 1:
- nr = 1
- else:
- if defebuild[0] != 0:
- print bold("Show Ebuild"), " (" + darkgreen(defebuild[0]) + "): ",
+if outputm == EBUILDS:
+ if overlay:
+ repo_num=1
+ for repo in overlay.split():
+ print red("Overlay "+str(repo_num)+" : "+repo)
+ repo_num += 1
+
+ if count != 0:
+ if count > 1:
+ defebuild = (0, 0)
+
+ if len(ebuilds) == 1:
+ nr = 1
else:
- print bold("Show Ebuild: "),
+ if defebuild[0] != 0:
+ print bold("\nShow Ebuild"), " (" + darkgreen(defebuild[0]) + "): ",
+ else:
+ print bold("\nShow Ebuild: "),
+ try:
+ nr = sys.stdin.readline()
+ except KeyboardInterrupt:
+ sys.exit(1)
try:
- nr = sys.stdin.readline()
- except KeyboardInterrupt:
- sys.exit(1)
- try:
- editor = getenv("EDITOR")
- if editor:
- system(editor + " " + ebuilds[int(nr) - 1])
- else:
- print ""
- error("Please set EDITOR", False)
- except IndexError:
- print ""
- error("No such ebuild", False)
- except ValueError:
- if defebuild[0] != 0:
- system(editor + " " + defebuild[1])
- else:
+ editor = getenv("EDITOR")
+ if editor:
+ system(editor + " " + ebuilds[int(nr) - 1])
+ else:
+ print ""
+ error("Please set EDITOR", False)
+ except IndexError:
print ""
- error("Please enter a valid number", False)
+ error("No such ebuild", False)
+ except ValueError:
+ if defebuild[0] != 0:
+ system(editor + " " + defebuild[1])
+ else:
+ print ""
+ error("Please enter a valid number", False)
|
Et, le nouvel ebuild associé:
esearch-0.7.1-r3.ebuild: | # Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-portage/esearch/esearch-0.7.1-r2.ebuild,v 1.1 2006/04/24 00:06:32 antarus Exp $
inherit eutils
DESCRIPTION="Replacement for 'emerge --search' with search-index"
HOMEPAGE="http://david-peter.de/esearch.html"
SRC_URI="http://david-peter.de/downloads/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc-macos ~ppc64 ~s390 ~sh ~sparc ~x86"
IUSE=""
RDEPEND=">=dev-lang/python-2.2
>=sys-apps/portage-2.0.50"
pkg_setup() {
if ! built_with_use dev-lang/python readline ; then
eerror "Python has to be build with 'readline' support!"
eerror "To do so: USE=\"readline\" emerge python"
eerror "Or, add \"readline\" to your USE string in"
eerror "/etc/make.conf"
die "Works only with python readline support"
fi
}
src_compile() {
epatch ${FILESDIR}/97462-esearch-metadata.patch || die "Failed to patch sources!"
epatch ${FILESDIR}/97969-ignore-missing-ebuilds.patch || die "Failed to patch sources!"
epatch ${FILESDIR}/132548-multiple-overlay.patch || die "Failed to patch sources!"
}
src_install() {
dodir /usr/bin/ /usr/sbin/
exeinto /usr/lib/esearch
doexe eupdatedb.py esearch.py esync.py common.py || die "doexe failed"
dosym /usr/lib/esearch/esearch.py /usr/bin/esearch
dosym /usr/lib/esearch/eupdatedb.py /usr/sbin/eupdatedb
dosym /usr/lib/esearch/esync.py /usr/sbin/esync
doman en/{esearch,eupdatedb,esync}.1
dodoc ChangeLog "${FILESDIR}/eupdatedb.cron"
if use linguas_it ; then
insinto /usr/share/man/it/man1
doins it/{esearch,eupdatedb,esync}.1
fi
}
|
Voili-voulou, c'est cool:), j'ai finalement fais les diff sur les sources patchées avec les patch déjà existant, ça sera plus propre je pense..
Je suis toujours preneur de remarques/commentaires.. (je sais je n'ai pas modifié l'entête de l'ebuild.. mais mis à part la version je ne savais pas quoichanger dans cette entête...
Et pour finir, voila ce que donne la simple recherche d'ebuild de tout à l'heure avec des ebuilds créés pour l'occasion (jour de fête inside...)
esearch -e mpd: | [ N] mail-filter/spampd (2.30): spampd is a program used within an e-mail delivery system to scan messages for possible Unsolicited Commercial E-mail content.
Portage [1] spampd-2.11-r1
Portage [2] spampd-2.30
[ N] media-libs/libmpd (0.12.0): A library handling connection to a MPD server.
Portage [3] libmpd-0.01
Portage [4] libmpd-0.12.0
[ I] media-sound/mpd (9999): A development version of Music Player Daemon (mpd)
Portage [5] mpd-0.11.5
Portage [6] mpd-0.11.5-r2
Overlay 1 [7] mpd-0.11.5-r2
Overlay 1 [8] mpd-9999
Overlay 2 [9] mpd-0.11.5-r2
Overlay 2 [10] mpd-9999
[ N] media-sound/mpd-svn (20060321): A development version of Music Player Daemon (mpd)
Portage [11] mpd-svn-20051220
Portage [12] mpd-svn-20060321
[ N] media-sound/mpdscribble (0.2.7): An MPD client that submits information to audioscrobbler.
Portage [13] mpdscribble-0.2.6
Portage [14] mpdscribble-0.2.7
[ N] media-sound/pympd (0.06.1): a Rhythmbox-like PyGTK+ client for Music Player Daemon
Portage [15] pympd-0.06
Portage [16] pympd-0.06.1
[ N] media-sound/qmpdclient (1.0.3): An easy to use MPD client written in Qt 4.1
Portage [17] qmpdclient-1.0.3
[ N] net-misc/pimpd (0.8): RFC1413-compliant identd server supporting masqueraded connections
Portage [18] pimpd-0.8
[ N] sec-policy/selinux-snmpd (20051023): SELinux policy for snmp daemons
Portage [19] selinux-snmpd-20050605
Portage [20] selinux-snmpd-20051023
[ N] sys-auth/icmpdn (0.4): ICMP Domain Name utilities & NSS backend
Portage [21] icmpdn-0.4
Overlay 1 : /usr/local/overlays/portage
Overlay 2 : /usr/local/overlays/test
Show Ebuild:
|
et si je choisi 6,7,8,9 ou 10, j'ai bien l'ebuild que je voulais voir qui s'ouvre:), comme je le disait dans le rapport de bug, y'avais également un "/" en trop que j'ai enlevé, je sais qu'il y a un programme qui converti les "//" en "/" dans les chemins, mais je ne me souviens pas duquel, vous savez?
Sinon, bah ce fut fort agréable.. merci |
|
Back to top |
|
|
truc Advocate
Joined: 25 Jul 2005 Posts: 3199
|
Posted: Thu May 18, 2006 9:20 pm Post subject: |
|
|
allez, hop, une petite révision, car les utilisateurs (moi ) se sont plaint d'avoir l'overlay qui s'affiche même lorsque ça n'est pas nécessaire..:
132548-multiple-overlay.patch: | diff -Naru esearch-0.7.1/esearch.py esearch-0.7.1-tmp/esearch.py
--- esearch-0.7.1/esearch.py 2006-05-16 19:12:07.795314560 +0200
+++ esearch-0.7.1-tmp/esearch.py 2006-05-18 23:08:28.363580608 +0200
@@ -64,16 +64,16 @@
if fatal:
sys.exit(1)
-def searchEbuilds(path, portdir = True, searchdef = ""):
- global ebuilds, output, defebuild
+def searchEbuilds(path, portdir = True, searchdef = "", repo_num = ""):
+ global ebuilds, output, defebuild, found_in_overlay
pv = ""
pkgs = []
nr = len(ebuilds) + 1
if portdir:
- rep = darkgreen("Portage")
+ rep = darkgreen("Portage ")
else:
- rep = red("Overlay")
+ rep = red("Overlay "+str(repo_num)+" ")
if isdir(path):
list = listdir(path)
@@ -82,18 +82,20 @@
if file[-7:] == ".ebuild":
pv = file[:-7]
pkgs.append(pkgsplit(pv))
- pkgs[-1].append(path + "/" + file)
+ pkgs[-1].append(path + file)
if searchdef != "" and pv == searchdef:
defebuild = (searchdef, pkgs[-1][3])
+ if not portdir:
+ found_in_overlay = True
pkgs.sort(pkgcmp)
for pkg in pkgs:
rev = ""
if pkg[2] != "r0":
rev = "-" + pkg[2]
output.append(" " + rep + " [" + bold(str(nr)) + "] " + pkg[0] + "-" + pkg[1] + rev + "\n")
- ebuilds.append(pkg[3])
+ ebuilds.append(pkg[len(pkg)-1])
nr += 1
-
+
NORMAL = 1
COMPACT = 2
VERBOSE = 3
@@ -105,6 +107,7 @@
fullname = False
pattern = False
instonly = False
+found_in_overlay = False
try:
opts = getopt(sys.argv[1:], "hSFIcveo:d:n", ["help", "searchdesc", "fullname", "instonly", "compact", "verbose", "ebuild", "own=", "directory=", "nocolor"])
@@ -128,7 +131,7 @@
from output import blue
from common import version
outputm = VERBOSE
- elif arg in ("-e", "--ebuilds"):
+ elif arg in ("-e", "--ebuild"):
from os import listdir, getenv, system
from os.path import isdir
from portage import settings, pkgcmp, pkgsplit
@@ -313,12 +316,14 @@
else:
searchdef = ""
- searchEbuilds("%s/%s/" % (portdir, pkg[1]), True, searchdef)
+ searchEbuilds("%s/%s/" % (portdir, pkg[1]), True, searchdef, "")
if overlay:
- searchEbuilds("%s/%s/" % (overlay, pkg[1]), False, searchdef)
+ repo_num=1
+ for repo in overlay.split():
+ searchEbuilds("%s/%s/" % ( repo, pkg[1]), False, searchdef,repo_num)
+ repo_num += 1
output.append("\n")
-
count += 1
regexlist[i][2] = "".join(output)
@@ -338,34 +343,42 @@
if outputm == NORMAL:
print ""
-if outputm == EBUILDS and count != 0:
- if count > 1:
- defebuild = (0, 0)
- if len(ebuilds) == 1:
- nr = 1
- else:
- if defebuild[0] != 0:
- print bold("Show Ebuild"), " (" + darkgreen(defebuild[0]) + "): ",
+if outputm == EBUILDS:
+ if overlay and found_in_overlay:
+ repo_num=1
+ for repo in overlay.split():
+ print red("Overlay "+str(repo_num)+" : "+repo)
+ repo_num += 1
+
+ if count != 0:
+ if count > 1:
+ defebuild = (0, 0)
+
+ if len(ebuilds) == 1:
+ nr = 1
else:
- print bold("Show Ebuild: "),
+ if defebuild[0] != 0:
+ print bold("\nShow Ebuild"), " (" + darkgreen(defebuild[0]) + "): ",
+ else:
+ print bold("\nShow Ebuild: "),
+ try:
+ nr = sys.stdin.readline()
+ except KeyboardInterrupt:
+ sys.exit(1)
try:
- nr = sys.stdin.readline()
- except KeyboardInterrupt:
- sys.exit(1)
- try:
- editor = getenv("EDITOR")
- if editor:
- system(editor + " " + ebuilds[int(nr) - 1])
- else:
- print ""
- error("Please set EDITOR", False)
- except IndexError:
- print ""
- error("No such ebuild", False)
- except ValueError:
- if defebuild[0] != 0:
- system(editor + " " + defebuild[1])
- else:
+ editor = getenv("EDITOR")
+ if editor:
+ system(editor + " " + ebuilds[int(nr) - 1])
+ else:
+ print ""
+ error("Please set EDITOR", False)
+ except IndexError:
print ""
- error("Please enter a valid number", False)
+ error("No such ebuild", False)
+ except ValueError:
+ if defebuild[0] != 0:
+ system(editor + " " + defebuild[1])
+ else:
+ print ""
+ error("Please enter a valid number", False)
|
bref, ça n'interesse vraissemblablement que moi... je n'ai pas non plus de réponse sur bugzilla... loul le looser.. |
|
Back to top |
|
|
Mickael Advocate
Joined: 05 Sep 2005 Posts: 2387 Location: ~Belfort! - France - EU
|
Posted: Thu May 18, 2006 9:35 pm Post subject: |
|
|
Salut truc,
Quote: | bref, ça n'interesse vraissemblablement que moi... je n'ai pas non plus de réponse sur bugzilla... loul le looser.. |
laisse nous un peu de temps pour digérer et tester mais soit persuadé que ton boulot ne sert pas à rien.
En tous cas merci.
Cordialement MickTux. _________________ À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo |
|
Back to top |
|
|
truc Advocate
Joined: 25 Jul 2005 Posts: 3199
|
Posted: Sun Jun 11, 2006 9:30 pm Post subject: |
|
|
Finalement, voila ce patch integré, il ne l'était pas jusqu'alors à cause d'un patch, concernant un autre bug non reproductible pour le moment d'ailleurs, qui foutait un peu le bordel
https://bugs.gentoo.org/show_bug.cgi?id=132548 |
|
Back to top |
|
|
PabOu Veteran
Joined: 11 Feb 2004 Posts: 1088 Location: Hélécine - Belgium
|
Posted: Thu Jul 06, 2006 5:07 pm Post subject: |
|
|
Euh.. et bien, ca doit être un oubli des autres, mais moi je te dis "Bravo et merci pour ta contrib". ;) _________________ Mangez du poulet ! |
|
Back to top |
|
|
truc Advocate
Joined: 25 Jul 2005 Posts: 3199
|
Posted: Fri Jul 07, 2006 12:30 pm Post subject: |
|
|
merci, c'est marrant que tu déterres ce topic! c'est en faisant une recherche que tu l'as retrouvé?
Bref, sinon, pour ce que ça interesse, il y a encore quelque chose à modifier pour esearch: il ne prend pas en compte les fichiers (ou repértoire maintenant même) de /etc/portage(je pense tout spécialement à /etc/portage/package.use.
Donc affaire à suivre... je suppose qui faudra importer les fonctions kivontbien de portage, pour pouvoir le faire simplement, mais je ne me suis pas encore profondément penché sur le sujet.
Donc si il vous en venai l'envie, vous êtes les bienvenus |
|
Back to top |
|
|
PabOu Veteran
Joined: 11 Feb 2004 Posts: 1088 Location: Hélécine - Belgium
|
Posted: Fri Jul 07, 2006 12:38 pm Post subject: |
|
|
truc wrote: | merci, c'est marrant que tu déterres ce topic! c'est en faisant une recherche que tu l'as retrouvé? |
Non !
C'est un message que je n'avais pas encore lu.. Alors je l'ai lu et j'y ai répondu. _________________ Mangez du poulet ! |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|