View previous topic :: View next topic |
Author |
Message |
hensan l33t
Joined: 26 Jun 2003 Posts: 868 Location: Sweden
|
Posted: Fri Feb 25, 2005 3:08 pm Post subject: |
|
|
I did some benchmarks with eix 0.2.1, and I must say I'm impressed.
eupdatedb: 3m23.800s
eix -u: 0m19.210s
emerge -s eix: 0m4.807s
esearch eix: 0m0.347s
eix eix: 0m0.039s
emerge -S indexing: 0m41.569s
esearch -S indexing: 0m0.242s
eix -S indexing: 0m0.074s |
|
Back to top |
|
|
tecknojunky Veteran
Joined: 19 Oct 2002 Posts: 1937 Location: Montréal
|
Posted: Sat Feb 26, 2005 1:44 am Post subject: |
|
|
Well, this time it seem to have went a little bit further. Code: | # eix -u
Reading Portage settings
Updating eix database in /var/cache/eix
Using portage cache: /usr/portage/metadata/cache/
Reading metadata cache
[app] [dev] [games] [gnome] [gnustep] [kde] [mail] [media] [net] [rox] [sci] [sec] [sys] [www] [x11] [xfce]
Reading portage overlays
[/usr/local/portage/]
Database updated successfully. 9090 packages.
Segmentation fault |
Code: | # eix -s eix
Search results: 1
* app-portage/eix
Available versions: ~0.1.2 ~0.1.3 ~0.1.4 ~0.2.0_alpha ~0.2.0_beta [1] ~0.2.0 ~0.2.0 [1] ~0.2.0-r1 ~0.2.1 [1]
Installed: 0.2.1
Homepage: http://sourceforge.net/projects/eix
Description: Small utility for searching ebuilds with indexing for fast results
Portage overlays:
[1] /usr/local/portage/ |
At least I can now search it _________________ (7 of 9) Installing star-trek/species-8.4.7.2::talax. |
|
Back to top |
|
|
appro Tux's lil' helper
Joined: 21 Jul 2003 Posts: 144 Location: Germany/Rosenheim
|
Posted: Sat Feb 26, 2005 9:17 am Post subject: |
|
|
hensan wrote: | I did some benchmarks with eix 0.2.1, and I must say I'm impressed.
eupdatedb: 3m23.800s
eix -u: 0m19.210s
|
Try eupdatedb --nofilesize
hensan wrote: |
emerge -S indexing: 0m41.569s
esearch -S indexing: 0m0.242s
eix -S indexing: 0m0.074s
|
eix -sS indexing is the counterpart to esearch -S indexing _________________ If a packet hits a pocket on a socket on a port, and the bus is interrupted and the interrupt's not caught, then the socket packet pocket has an error to report. |
|
Back to top |
|
|
hensan l33t
Joined: 26 Jun 2003 Posts: 868 Location: Sweden
|
Posted: Sat Feb 26, 2005 11:14 am Post subject: |
|
|
appro wrote: | hensan wrote: | I did some benchmarks with eix 0.2.1, and I must say I'm impressed.
eupdatedb: 3m23.800s
eix -u: 0m19.210s
|
Try eupdatedb --nofilesize |
My eupdatedb (esearch 0.7) doesn't have a --nofilesize option.
appro wrote: | hensan wrote: |
emerge -S indexing: 0m41.569s
esearch -S indexing: 0m0.242s
eix -S indexing: 0m0.074s
|
eix -sS indexing is the counterpart to esearch -S indexing |
Check. -sS added about 0.01 seconds to the search. Still fast enough for me |
|
Back to top |
|
|
bju n00b
Joined: 09 Oct 2004 Posts: 17 Location: Germany
|
Posted: Sun Feb 27, 2005 12:02 am Post subject: Metadata cache location |
|
|
Hi,
first thanks for this great tool
I ran into a problem with the metadata cache. I'm doing "emerge sync" with the following entry in /etc/make.conf:
SYNC="rsync://rsync16.de.gentoo.org/gentoo-merged"
This host mirrors the gentoo portage tree and inserts VDR specific ebuilds. Today I've searched using eix for some packages containing vdr in the name and missed some packages. The cause for this is the way my sync host inserts his packages. He inserts the ebuilds but not extends the metadata cache.
For testing I've changed eix to use /var/cache/edb/dep/usr/portage and not /usr/portage/metadata/cache and all the missing packages are found.
Now I've two questions:
1. Is it correct to use the above directory?
2. Why we have two very similary caching systems? Is /usr/portage/metadata obsolete?
Greetings,
Bernd |
|
Back to top |
|
|
appro Tux's lil' helper
Joined: 21 Jul 2003 Posts: 144 Location: Germany/Rosenheim
|
Posted: Sun Feb 27, 2005 2:29 pm Post subject: |
|
|
Hi bju,
I think that
1. it's correct to use /var/cache/edb/dep/ (it's even better because /usr/portage/metadata/cache apparently contains obsolete versions) ..
2. /usr/portage/metadata/cache is the server-cache for the official portage-tree and /var/cache/edb/dep is the cache for your local portage-tree and the overlays
It would be nice if you could supply a patch with your changes and/or stop by in #eix on irc.freenode.net :) _________________ If a packet hits a pocket on a socket on a port, and the bus is interrupted and the interrupt's not caught, then the socket packet pocket has an error to report. |
|
Back to top |
|
|
bju n00b
Joined: 09 Oct 2004 Posts: 17 Location: Germany
|
Posted: Sun Feb 27, 2005 3:28 pm Post subject: |
|
|
Hi,
Before playing with /var/cache/edp/dep this directory was containing not only usr/portage subdir but also usr/local/portage. After renaming /var/cache/edp/dep and running "emerge --metadata" only the usr/portage subdir exists in the new created dep directory.
Now my new questions:
- Why the portage overlay no longer exists in /var/cache/edp/dep? I don't know what I've done before? Is this caused by a change in portage code?
- If the portage overlays would exists in the cache, would it possible for eix to retrieve the package infos also from there and not by scanning the overlay directories? I've not completly understand the eix code ...
- A bit offtopic: Is the old metadata/cache needed for portage or is this only for compatibility with older portage versions? If so, it would be nice not to rsync the unneeded cache files ...
Greetings,
Bernd
Now my patch:
Code: |
--- eix-0.2.1-old/src/portagesettings.cc 2005-02-24 22:24:03.000000000 +0100
+++ eix-0.2.1/src/portagesettings.cc 2005-02-27 16:10:33.205861785 +0100
@@ -118,7 +118,7 @@
/* dont need to do this because "/usr/" is the same as "/usr//"
* else if( portdir[portdir.size() - 1] != '/' ) */
portdir.append("/");
- metacache_path = portdir+"metadata/cache/";
+ metacache_path = "/var/cache/edb/dep"+portdir;
// get portdir_overlays
string pdoverlays = vr["PORTDIR_OVERLAY"];
|
|
|
Back to top |
|
|
appro Tux's lil' helper
Joined: 21 Jul 2003 Posts: 144 Location: Germany/Rosenheim
|
Posted: Thu Mar 03, 2005 9:41 pm Post subject: |
|
|
tecknojunky,
could you please install gdb, compile eix with -g -ggdb3, run gdb --args eix -u, type run .. wait for the segfault and type bt?
Would be very helpful :) _________________ If a packet hits a pocket on a socket on a port, and the bus is interrupted and the interrupt's not caught, then the socket packet pocket has an error to report. |
|
Back to top |
|
|
tecknojunky Veteran
Joined: 19 Oct 2002 Posts: 1937 Location: Montréal
|
Posted: Thu Mar 03, 2005 10:40 pm Post subject: |
|
|
appro wrote: | tecknojunky,
could you please install gdb, compile eix with -g -ggdb3, run gdb --args eix -u, type run .. wait for the segfault and type bt?
Would be very helpful |
Code: | # USE=debug emerge eix
.
.
.
>>> app-portage/eix-0.2.1 merged.
>>> clean: No packages selected for removal.
>>> Auto-cleaning packages ...
>>> No outdated packages were found on your system.
* GNU info directory index is up-to-date.
* IMPORTANT: 1 config files in /etc need updating.
* Type emerge --help config to learn how to update config files.
# gdb --args eix -u
GNU gdb 6.0
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(no debugging symbols found)...Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) run
Starting program: /usr/bin/eix -u
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
warning: shared library handler failed to enable breakpoint
Reading Portage settings
Updating eix database in /var/cache/eix
Using portage cache: /usr/portage/metadata/cache/
Reading metadata cache
[app] [dev] [games] [gnome] [gnustep] [kde] [mail] [media] [net] [rox] [sci] [sec] [sys] [www] [x11] [xfce]
Reading portage overlays
[/usr/local/portage/]
Program received signal SIGSEGV, Segmentation fault.
0x441b0834 in ?? ()
(gdb) bt
#0 0x441b0834 in ?? ()
#1 0x446f417c in ?? ()
(gdb) | What else dayawanna know? _________________ (7 of 9) Installing star-trek/species-8.4.7.2::talax. |
|
Back to top |
|
|
appro Tux's lil' helper
Joined: 21 Jul 2003 Posts: 144 Location: Germany/Rosenheim
|
Posted: Thu Mar 03, 2005 11:11 pm Post subject: |
|
|
Not USE="debug" :)
CFLAGS="-g -ggdb3" CXXFLAGS="$CFLAGS" emerge eix _________________ If a packet hits a pocket on a socket on a port, and the bus is interrupted and the interrupt's not caught, then the socket packet pocket has an error to report. |
|
Back to top |
|
|
tecknojunky Veteran
Joined: 19 Oct 2002 Posts: 1937 Location: Montréal
|
Posted: Thu Mar 03, 2005 11:40 pm Post subject: |
|
|
appro wrote: | Not USE="debug"
CFLAGS="-g -ggdb3" CXXFLAGS="$CFLAGS" emerge eix | Somehow I thought so that my shortcut would'nt be good. That's why I inlcuded it in the trace
Compiled in the way you showed me, eix does not seem to run: Code: | # gdb --args eix -u
GNU gdb 6.0
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(no debugging symbols found)...Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) run
Starting program: /usr/bin/eix -u
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
warning: shared library handler failed to enable breakpoint
Reading Portage settings
Program received signal SIGSEGV, Segmentation fault.
0x446bc4b1 in ?? ()
(gdb) bt
#0 0x446bc4b1 in ?? ()
#1 0x080d475c in ?? ()
#2 0x446f1a34 in ?? ()
#3 0xbfffe968 in ?? ()
#4 0x446c0262 in ?? ()
#5 0x080d475c in ?? ()
#6 0x080c21d4 in ?? ()
(gdb)
|
_________________ (7 of 9) Installing star-trek/species-8.4.7.2::talax. |
|
Back to top |
|
|
appro Tux's lil' helper
Joined: 21 Jul 2003 Posts: 144 Location: Germany/Rosenheim
|
Posted: Fri Mar 04, 2005 12:04 am Post subject: |
|
|
Does eix segfault if you exclude your overlay in /etc/make.conf?
Code: | # PORTDIR_OVERLAY="something" |
_________________ If a packet hits a pocket on a socket on a port, and the bus is interrupted and the interrupt's not caught, then the socket packet pocket has an error to report. |
|
Back to top |
|
|
tecknojunky Veteran
Joined: 19 Oct 2002 Posts: 1937 Location: Montréal
|
Posted: Fri Mar 04, 2005 1:38 pm Post subject: |
|
|
Code: | # eix -u
Reading Portage settings
Segmentation fault
# cat /etc/make.conf | grep OVERLAY=
#PORTDIR_OVERLAY=/usr/local/portage | Right now, since I emerge it with CFLAGS=gdbstuffs, it segfaults as soon as started. But it is more than probable, I think, that (if compiled normally) it would not segfault if the overlay is not scanned.
I'm sorry, I don't have the time right now to include debug statments in your code, otherwise I'd do so and find where it is borking. But one thing we could do that would probably help you the most is that I could tar up my overlay folder and send it to you (it's quite massive*). You could then try first hand eix on it and identifies the bug (or bugs).
* in terms of number, not necessarally size _________________ (7 of 9) Installing star-trek/species-8.4.7.2::talax. |
|
Back to top |
|
|
bju n00b
Joined: 09 Oct 2004 Posts: 17 Location: Germany
|
Posted: Fri Mar 04, 2005 6:34 pm Post subject: New patch |
|
|
Hi,
this new patch contains two modifications:
- Use of /var/cache/edb/dep and no more /usr/portage/metadata/cache (see above in this thread)
- Check for package release number changed. This was required because of a new package gentoo-dev-sources-2.6.11-r0 throwing an exception.
Have fun,
Bernd
And now the patch:
Code: | --- eix-0.2.1-old/src/portagesettings.cc 2005-02-24 22:24:03.000000000 +0100
+++ eix-0.2.1/src/portagesettings.cc 2005-03-04 19:18:55.000000000 +0100
@@ -41,6 +41,9 @@
#define PROFILE_PATH_DIRECTORY "/etc/"
#define PROFILE_ARCH_IN "make.defaults"
+/* Path to portage cache */
+#define PORTAGE_CACHE_PATH "/var/cache/edb/dep"
+
/* Buffer size for the readlink-call */
#define READLINK_BUFFER 128
@@ -118,7 +121,7 @@
/* dont need to do this because "/usr/" is the same as "/usr//"
* else if( portdir[portdir.size() - 1] != '/' ) */
portdir.append("/");
- metacache_path = portdir+"metadata/cache/";
+ metacache_path = PORTAGE_CACHE_PATH + portdir;
// get portdir_overlays
string pdoverlays = vr["PORTDIR_OVERLAY"];
--- eix-0.2.1-old/src/version.cc 2005-02-24 16:07:57.000000000 +0100
+++ eix-0.2.1/src/version.cc 2005-03-04 19:12:30.000000000 +0100
@@ -91,7 +91,7 @@
*(gr) = (char)0;
gr+=2;
gentoorelease=strtol(gr,NULL,10);
- if( gentoorelease == 0 ) {
+ if( gentoorelease < 0 ) {
throw(ExBasic("Invalid gentoo release number in \"%s\"", full.c_str()));
}
} |
|
|
Back to top |
|
|
xororand Tux's lil' helper
Joined: 22 Jul 2004 Posts: 119
|
Posted: Sat Mar 05, 2005 4:01 am Post subject: |
|
|
tecknojunky wrote: | I'm sorry, I don't have the time right now to include debug statments in your code, otherwise I'd do so and find where it is borking. But one thing we could do that would probably help you the most is that I could tar up my overlay folder and send it to you (it's quite massive*). You could then try first hand eix on it and identifies the bug (or bugs).
* in terms of number, not necessarally size |
If you find the time to tar-bz2 it, you can send it to my mail account: xororand (at) unfoog (dot) de. In case it's larger than a few megabytes I can provide a temporary ftp storage. |
|
Back to top |
|
|
xororand Tux's lil' helper
Joined: 22 Jul 2004 Posts: 119
|
Posted: Sat Mar 05, 2005 4:07 am Post subject: Re: New patch |
|
|
bju wrote: | Hi,
this new patch contains two modifications:
- Use of /var/cache/edb/dep and no more /usr/portage/metadata/cache (see above in this thread)
- Check for package release number changed. This was required because of a new package gentoo-dev-sources-2.6.11-r0 throwing an exception.
Have fun,
Bernd
And now the patch: (...)
|
Thanks for your work, though the second patch has to be changed as strtol only returns a value <0 for negative gentoo-releases which don't exist. 0 is return either for a "0" gentoo release or invalid ones. Anyway, thanks for your hint - I'll change the check to respect **tailptr which gives a more accurate success report, see man strtol |
|
Back to top |
|
|
ryker Guru
Joined: 28 May 2003 Posts: 412 Location: Portage, IN
|
Posted: Thu Mar 10, 2005 2:02 am Post subject: |
|
|
I'm having a problem with eix all of a sudden. When I run 'eix -u' it shows the following error message: Code: | Reading Portage settings
varsreader.cc:310 Can't open file /etc/../usr/portage/profiles/default-linux/x86/2005.0/make.defaults: No such file or directory
|
I have tried to emerge eix and portage again, and no change. _________________ Athlon 64 3200+, 80G WD sata hd + 200G IDE, 1G Geil DDR400, MSI K8T Neo
IntelCore2Duo 2.0Ghz MSI laptop,100G SATA hd, 2G RAM |
|
Back to top |
|
|
transient l33t
Joined: 13 Jan 2005 Posts: 759
|
Posted: Thu Mar 10, 2005 2:11 am Post subject: |
|
|
Ive noticed this too.
It doesnt seem to like looking recursivly through the parent directories of cascading profiles for make.defaults and so on.
If my c++ skillz were better/existant, Id look at the code and see where this is, but unfortunately, theyre not that great yet. |
|
Back to top |
|
|
appro Tux's lil' helper
Joined: 21 Jul 2003 Posts: 144 Location: Germany/Rosenheim
|
|
Back to top |
|
|
transient l33t
Joined: 13 Jan 2005 Posts: 759
|
Posted: Thu Mar 10, 2005 2:57 am Post subject: |
|
|
Awesome, thanks |
|
Back to top |
|
|
ryker Guru
Joined: 28 May 2003 Posts: 412 Location: Portage, IN
|
Posted: Thu Mar 10, 2005 2:07 pm Post subject: |
|
|
Thanks appro. _________________ Athlon 64 3200+, 80G WD sata hd + 200G IDE, 1G Geil DDR400, MSI K8T Neo
IntelCore2Duo 2.0Ghz MSI laptop,100G SATA hd, 2G RAM |
|
Back to top |
|
|
Tucker n00b
Joined: 01 Oct 2003 Posts: 28 Location: Cottbus (Germany)
|
Posted: Thu Mar 10, 2005 2:54 pm Post subject: |
|
|
Cool! Worked for me, too.
Thanks a lot! |
|
Back to top |
|
|
bju n00b
Joined: 09 Oct 2004 Posts: 17 Location: Germany
|
Posted: Fri Mar 11, 2005 12:25 am Post subject: Wanted feature: List of new and updated packages |
|
|
Hi,
it would be nice to have one more option(s) to "eix -u" for showing all new and updated packages like eubdatedb does. This way I already have found some nice programs.
I've done some source digging but I've not found an easy AND efficient way to achive this ...
Greetings,
Bernd _________________ The advertisement is the most truthful part of a newspaper.
-- Thomas Jefferson |
|
Back to top |
|
|
Cintra Advocate
Joined: 03 Apr 2004 Posts: 2111 Location: Norway
|
Posted: Fri Mar 11, 2005 8:33 am Post subject: |
|
|
I updated development-sources to 2.6.11.2 this morning, everything looks OK, nvidia and a couple of other apps emerged ok, but I get the following... (I did an emerge sync before running eix -u)
Quote: | app-portage/eix
Installed versions:
Slot 0: 0.2.2_alpha
|
Code: | # eix -u
Reading Portage settings
Updating eix database in /var/cache/eix
Using portage cache: /var/cache/edb/dep/mnt/hdb9/portage/
Reading metadata cache: 100%
Reading portage overlays
[/usr/local/portage/]
Applying masks
Database updated successfully. It contains 4 packages.
|
Code: | p4pe linux-2.6.11.2 # eix eix
You missed :)
|
/var/cache/eix would appear not to be updating.. its size is 913b vs 1.9MB on my other system!
should it be owned by portage? the 1.9MB one is owned by root...
mvh
Edit I went back to 0.2.1 and all was well again. _________________ "I am not bound to please thee with my answers" W.S. |
|
Back to top |
|
|
Beholders_Eye Tux's lil' helper
Joined: 17 Nov 2003 Posts: 116 Location: Brazil
|
Posted: Fri Mar 11, 2005 6:21 pm Post subject: eix 0.2.2_alpha won't compile |
|
|
Updating my eix to 0.2.2_alpha, I got some compile errors, due to some "cross initialization" of "int count" . Well, I patched it:
Code: |
258,259c258
< int count = portage_db.dbSave();
< printf("Database updated successfully. It contains %i packages.\n", count);
---
> printf("Database updated successfully. It contains %i packages.\n", portage_db.dbSave());
|
The right one is the new one heheh. |
|
Back to top |
|
|
|