First, I know, there is app-portage/eix, but, IMO, eix is missing the ability to edit/view ebuilds. When having several overlays, e.g.: PORTDIR_OVERLAY="/usr/local/overlays/portage /usr/local/overlays/test" (or more) esearch wasn't able to search in overlays --> fixed, it also now shows in which overlay it was found(see below, how it looks). When having two same version of a package, in PORTDIR and/or PORTDIR_OVERLAY (yes, this can happen..), there was a problem editing/viewing the ebuild: it always opened the first ebuild found in that version no matter which number we choose. e.g.: ( touch /usr/local/overlays/test/media-sound/mpd-0.11.5-r2.ebuild same with mpd-9999.ebuild) =====code===== esearch -e mpd: <--cut--> [ I] media-sound/mpd (9999): A development version of Music Player Daemon (mpd) Portage [1] mpd-0.11.5 Portage [2] mpd-0.11.5-r2 Overlay 1 [3] mpd-0.11.5-r2 Overlay 1 [4] mpd-9999 Overlay 2 [5] mpd-9999 <--cut--> Overlay 1 : /usr/local/overlays/test Overlay 2 : /usr/local/overlays/portage Show Ebuild: =====code===== no matter if I enter '2' or '3', it always opened /usr/portage/media-sound/mpd-0.11.5-r2.ebuild no matter if I enter '4' or '5', it always opened /usr/portage/media-sound/mpd-9999.ebuild ==> This is now also fixed in the patch The patch I wrote also remove a "/" that wasn't needed, since actually, instead of opening (e.g.) '/usr/portage/media-sound/mpd-0.11.5-r2.ebuild' it used to open '/usr/portage/media-sound//mpd-0.11.5-r2.ebuild' And finally there was a typo, preventing "esearch --ebuild pagkage_name" to work (as it should : "esearch -e package_name" )
Created attachment 86344 [details, diff] 132548-multiple-overlay.patch
Created attachment 86345 [details] esearch-0.7.1-r3.ebuild
> =====code===== > esearch -e mpd: > <--cut--> > [ I] media-sound/mpd (9999): A development version of Music Player Daemon > (mpd) > Portage [1] mpd-0.11.5 > Portage [2] mpd-0.11.5-r2 > Overlay 1 [3] mpd-0.11.5-r2 > Overlay 1 [4] mpd-9999 > Overlay 2 [5] mpd-9999 > <--cut--> > Overlay 1 : /usr/local/overlays/test > Overlay 2 : /usr/local/overlays/portage > > Show Ebuild: > =====code===== > > no matter if I enter '2' or '3', it always opened > /usr/portage/media-sound/mpd-0.11.5-r2.ebuild > no matter if I enter '4' or '5', it always opened > /usr/portage/media-sound/mpd-9999.ebuild > SORRY I made a type: no matter if I enter '4' or '5', it always opened /usr/local/overlays/portage/media-sound/mpd-9999.ebuild
Created attachment 87011 [details, diff] enhanced patch enhanced patch wich will make esearch display PORTDIR_OVERLAY only if needed
Created attachment 87013 [details, diff] 132548-multiple-overlay.patch put a real name to the patch
I will review this and hopefully grab it as -r4 this weekend.
(In reply to comment #6) > I will review this and hopefully grab it as -r4 this weekend. > I don't know if it's possible to reopen a bug.. but there is something wrong with the 105234-fix-2.1-cache.patch : esearch -e mpd Traceback (most recent call last): File "/usr/bin/esearch", line 316, in ? searchEbuilds("%s/%s/" % (portdir, pkg[1]), True, searchdef) File "/usr/bin/esearch", line 87, in searchEbuilds defebuild = (searchdef, pkgs[-1][3]) IndexError: list index out of range that's normal since pkgs is not the same as before, I thought replacing the line 87: defebuild = (searchdef, pkgs[-1][3]) with defebuild = (searchdef, pkgs[-1][1]) should be enough but it's not: ./esearch.py -e mpd Traceback (most recent call last): File "./esearch.py", line 316, in ? searchEbuilds("%s/%s/" % (portdir, pkg[1]), True, searchdef) File "./esearch.py", line 88, in searchEbuilds pkgs.sort(pkgcmp) TypeError: comparison function must return int and since I don't know what to do with this pkgs.sort(pkgcmp), I am stucked.. it would be great if you could help me on this.
added a comment on #105234 but I don't know how to reopen a bug. IMO the patch isn't ready yet.
This is in -r4, please test it, it works here.