Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 434616 - app-portage/eix-0.26.4: eix-sync should call emerge --metadata for cache method sqlite
Summary: app-portage/eix-0.26.4: eix-sync should call emerge --metadata for cache meth...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Martin Väth
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-09-10 17:49 UTC by Ronny Perinke
Modified: 2012-09-19 19:55 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
example output (eix-diff-bug.txt,2.72 KB, text/plain)
2012-09-10 17:51 UTC, Ronny Perinke
Details
example of missing package version (missing package.log,2.83 KB, text/plain)
2012-09-14 21:55 UTC, Ronny Perinke
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ronny Perinke 2012-09-10 17:49:10 UTC
eix-diff used to display all changes on the portage tree since the last sync (or eix-update to be more precise). Presently, it shows only one package update and even more, it does not "know" the new versions! For example alsa-utils: alsa-utils-1.0.26 is in portage and will be pulled by 'emerge -u world' but eix says only 1.0.25-r3 is the highest available version (see the example output attachment).

I already delete all cache files of eix and did an eix-update before eix-sync (thought the cache might be invalid) but that did not help.

Reproducible: Always

Steps to Reproduce:
1. wait one day (or be sure that your local portage is not up to date)
2. do eix-sync 
3. compare output of eix-diff against "emerge -uvpDN world"
Actual Results:  
not all packages changes are shown by eix-diff

Expected Results:  
eix-diff should show all changes

sephiroth-pc ~ # emerge --info
Portage 2.1.11.13 (default/linux/amd64/10.0/no-multilib, gcc-4.5.4, glibc-2.15-r2, 3.5.3-gentoo-Sephis-C2D x86_64)
=================================================================
System uname: Linux-3.5.3-gentoo-Sephis-C2D-x86_64-Intel-R-_Core-TM-2_CPU_6400_@_2.13GHz-with-gentoo-2.1
Timestamp of tree: Mon, 10 Sep 2012 16:15:01 +0000
app-shells/bash:          4.2_p37
dev-java/java-config:     2.1.12
dev-lang/python:          2.7.3-r2, 3.2.3
dev-util/cmake:           2.8.8-r3
dev-util/pkgconfig:       0.27.1
sys-apps/baselayout:      2.1-r1
sys-apps/openrc:          0.10.5
sys-apps/sandbox:         2.6
sys-devel/autoconf:       2.13, 2.68
sys-devel/automake:       1.9.6-r3, 1.11.6
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            4.5.4
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r3
sys-kernel/linux-headers: 3.4-r2 (virtual/os-headers)
sys-libs/glibc:           2.15-r2
Repositories: gentoo local_overlay
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=native -fomit-frame-pointer -fno-ident -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.4/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -march=native -fomit-frame-pointer -fno-ident -pipe"
DISTDIR="/var/cache/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps y --quiet-build n"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles metadata-transfer news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="de_DE.UTF-8"
LC_ALL="de_DE.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="de"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="-4 --timeout=500"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/overlays"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="X aac acl acpi alsa amd64 audiofile bash-completion berkdb bluetooth branding bzip2 cairo caps cdda cdr cli consolekit cracklib crypt cups curl cxx dbus dri dts dvb dvd dvdr encode esd exif expat fam ffmpeg flac fortran gdbm gif glut gnutls gpm gtk howl iconv icq idn introspection ipv6 jpeg lcms libnotify libsexy lirc mad mmx mng modules mp3 mpeg mudflap ncurses nls nptl nvidia ogg openal opengl openmp openssl pam pcre pdf png pppd quicktime readline samba sdl session spell sse sse2 sse3 ssl ssse3 startup-notification svg tcpd theora threads tiff truetype udev unicode usb v4l v4l2 vaapi vcd vdpau vorbis vpx x264 xattr xine xinerama xml xml2 xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias proxy proxy_http" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="canon" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" GRUB_PLATFORMS="pc multiboot coreboot" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de" LIRC_DEVICES="devinput" PHP_TARGETS="php5-4" PYTHON_TARGETS="python3_2 python2_7" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="nvidia virtualbox" XFCE_PLUGINS="trash menu logout clock" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, USE_PYTHON
Comment 1 Ronny Perinke 2012-09-10 17:51:56 UTC
Created attachment 323440 [details]
example output

example output that shows the difference between eix-diff and 'emerge -uvpDN world' and that alsa-utils-1.0.26 is missing in eix
Comment 2 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2012-09-10 18:32:19 UTC
eix is just a cache, if the cache is outdated there will be outdated results shown.
Comment 3 Ronny Perinke 2012-09-10 18:44:35 UTC
But the cache should be up to date because eix-update was/is called automatically at the end of eix-sync (http://git.berlios.de/cgi-bin/gitweb.cgi?p=eix;a=blob;f=src/eix-sync.in;hb=HEAD#l498)
Comment 4 Martin Väth 2012-09-10 20:30:02 UTC
eix-sync (and eix-diff) only shows the packages which
changed _since the last eix-sync_.

So e.g. you probably have seen the alsa upgrade at some earlier eix-sync
but at that time ignored it. At the next eix-sync, it is not shown again,
no matter whether you updated alsa or not (unless there was yet
another alsa upgrade in the tree).

What you expected to see is perhaps the output of eix -uc
(which does not care what happened at an earlier eix-sync).

In case that you really suspect that eix-sync (i.e. eix-diff) does not
show all packages, verify it manually as follows: Call
  eix [name of the missing package]
and compare it with
  EIX_CACHEFILE=/var/cache/eix/previous.eix eix [name of the missing package]
If there really is a difference in the stability of an upgrade version
but the package is not shown by
  eix-diff
please post this occurrence (and just to be sure safe the files
/var/cache/eix/portage.eix and /var/cache/eix/previous.eix)
Comment 5 Hans 2012-09-13 16:51:05 UTC
I have an issue that looks incredibly similar to this one.

Starting roughly (don't remember exactly) six weeks ago, using "eix-sync" has not been performing a metadata cache update (like emerge --metadata) anymore.
Since I'm using the sqlite cache implementation, eix-update + eix-diff obviously cannot show me any updates.
Only after I manually perform "emerge --metadata; eix-update; eix-diff", those updates show up.
My FEATURES still include "metadata-transfer".

Is this related, and what can I do to help make this go back to the way it was?


Thanks for your attention.
Comment 6 Martin Väth 2012-09-13 18:13:59 UTC
(In reply to comment #5)
> Starting roughly (don't remember exactly) six weeks ago, using "eix-sync"
> has not been performing a metadata cache update (like emerge --metadata)
> anymore.

It is no longer default. You need eix-sync -M. Use
echo -M >>/etc/eix-sync.conf
to make it default.
Comment 7 Ronny Perinke 2012-09-14 21:55:43 UTC
Created attachment 323812 [details]
example of missing package version

(In reply to comment #4)
> eix-sync (and eix-diff) only shows the packages which
> changed _since the last eix-sync_.
> 
> So e.g. you probably have seen the alsa upgrade at some earlier eix-sync
> but at that time ignored it. At the next eix-sync, it is not shown again,
> no matter whether you updated alsa or not (unless there was yet
> another alsa upgrade in the tree).
> 
> What you expected to see is perhaps the output of eix -uc
> (which does not care what happened at an earlier eix-sync).
> 
> In case that you really suspect that eix-sync (i.e. eix-diff) does not
> show all packages, verify it manually as follows: Call
>   eix [name of the missing package]
> and compare it with
>   EIX_CACHEFILE=/var/cache/eix/previous.eix eix [name of the missing package]
> If there really is a difference in the stability of an upgrade version
> but the package is not shown by
>   eix-diff
> please post this occurrence (and just to be sure safe the files
> /var/cache/eix/portage.eix and /var/cache/eix/previous.eix)

here we go ...
sync before 9/10/2012, sync after 9/14/2012

sephiroth-pc eix # eix app-emulation/virtualbox-bin
[I] app-emulation/virtualbox-bin
     Available versions:  4.1.12^m (~)4.1.16^m 4.1.18^m (~)4.1.20^m (~)4.1.22^m {{+additions +chm debug headless python rdesktop-vrdp sdk vboxwebsrv}}
     Installed versions:  4.1.22^m(21:15:15 10.09.2012)(additions chm -debug -headless -python -rdesktop-vrdp -sdk -vboxwebsrv)
     Homepage:            http://www.virtualbox.org/
     Description:         Family of powerful x86 virtualization products for enterprise as well as home use

sephiroth-pc eix # EIX_CACHEFILE=/var/cache/eix/previous.eix eix app-emulation/virtualbox-bin
[I] app-emulation/virtualbox-bin
     Available versions:  4.1.12^m (~)4.1.16^m 4.1.18^m (~)4.1.20^m (~)4.1.22^m {{+additions +chm debug headless python rdesktop-vrdp sdk vboxwebsrv}}
     Installed versions:  4.1.22^m(21:15:15 10.09.2012)(additions chm -debug -headless -python -rdesktop-vrdp -sdk -vboxwebsrv)
     Homepage:            http://www.virtualbox.org/
     Description:         Family of powerful x86 virtualization products for enterprise as well as home use

sephiroth-pc eix # emerge -s @app-emulation/virtualbox-bin
Searching...    
[ Results for search key : app-emulation/virtualbox-bin ]
[ Applications found : 1 ]

*  app-emulation/virtualbox-bin
      Latest version available: 4.2.0
      Latest version installed: 4.1.22
      Size of files: 89,034 kB
      Homepage:      http://www.virtualbox.org/
      Description:   Family of powerful x86 virtualization products for enterprise as well as home use
      License:       GPL-2 PUEL

sephiroth-pc eix #
Comment 8 Ronny Perinke 2012-09-14 22:14:05 UTC
eix cache before sync -> http://ul.to/j7jzz6nh
eix cache after sync -> http://ul.to/rttwrp88

(size of allowed attachment is to low)
Comment 9 Martin Väth 2012-09-15 13:49:28 UTC
@Ronny Perinke:

For you holds the same as for Hans:

With PORTDIR_CACHE_METHOD=sqlite, you must force emerge --metadata before
updating the eix database, i.e. you have to put -M into /etc/eix-sync.conf
or otherwise your eix database is lagging one sync behind (or even more).

I think I will make this option the default if
PORTDIR_CACHE_METHOD=sqlite
is used.
Comment 10 Martin Väth 2012-09-15 14:49:06 UTC
(In reply to comment #9)
> I think I will make this option the default if
> PORTDIR_CACHE_METHOD=sqlite
> is used.

This is now the case in the just released eix-0.27.0
Comment 11 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2012-09-17 16:07:51 UTC
+*eix-0.27.0 (17 Sep 2012)
+
+  17 Sep 2012; Jeremy Olexa <darkside@gentoo.org> +eix-0.27.0.ebuild:
+  Version bump from upstream, fixes bug 434616 as well
Comment 12 Ronny Perinke 2012-09-19 19:55:12 UTC
(In reply to comment #9)
> @Ronny Perinke:
> 
> For you holds the same as for Hans:
> 
> With PORTDIR_CACHE_METHOD=sqlite, you must force emerge --metadata before
> updating the eix database, i.e. you have to put -M into /etc/eix-sync.conf
> or otherwise your eix database is lagging one sync behind (or even more).
> 
> I think I will make this option the default if
> PORTDIR_CACHE_METHOD=sqlite
> is used.

It's working again with the "-M" option. :)