Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 497572 - eix-header searches eix database always in /var/cache/eix/portage.eix
Summary: eix-header searches eix database always in /var/cache/eix/portage.eix
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Tools (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Martin Väth
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-01-08 19:47 UTC by morpheus
Modified: 2014-01-09 09:26 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description morpheus 2014-01-08 19:47:11 UTC
You can put the eix database via EIX_CACHEFILE wherever you want. In my case the database resides in /var/portage/eix/portage.eix. Regardless where the eix database is, eix-header searches for it in /var/cache/eix/portage.eix.

Steps to reproduce:
1. Move eix database to an other location than /var/cache/eix/portage.eix
2. run eix-header -qc
3. eix-header -qc fails. See strace:

strace (relevant part): 
rt_sigaction(SIGSEGV, {0x50e680, [], SA_RESTORER, 0x7f401d54c9f0}, NULL, 8) = 0
open("/var/cache/eix/portage.eix", O_RDONLY) = -1 ENOENT (No such file or directory)
exit_group(1)                           = ?
+++ exited with 1 +++

Expected behavior:
eix-header should honor EIX_CACHEFILE variable. 

Impact:
eix-update is always called upon eix-sync before the sync starts causing the eix database to be written twice in the eix-sync process. 

emerge --info:

Portage 2.2.7 (default/linux/amd64/13.0/desktop/kde, gcc-4.7.3, glibc-2.17, 3.12.6-gentoo x86_64)
=================================================================
System uname: Linux-3.12.6-gentoo-x86_64-AMD_Phenom-tm-_II_X4_925_Processor-with-gentoo-2.2
KiB Mem:     8171452 total,   6419844 free
KiB Swap:    3145724 total,   3145724 free
Timestamp of tree: Wed, 08 Jan 2014 17:30:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
distcc 3.1 x86_64-pc-linux-gnu [disabled]
app-shells/bash:          4.2_p45
dev-java/java-config:     2.1.12-r1
dev-lang/python:          2.7.5-r3, 3.3.2-r2
dev-util/cmake:           2.8.11.2
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6, 1.12.6, 1.13.4
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.7.3-r1
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.9 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo x-portage
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"                                                                                                                                  
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"                                                                                       
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"                                                                                                                                                          
CXXFLAGS="-march=native -O2 -pipe"                                                                                                                           
DISTDIR="/var/portage/distfiles"                                                                                                                             
EMERGE_DEFAULT_OPTS="--with-bdeps=y --binpkg-respect-use=y --jobs=4"                                                                                         
FCFLAGS="-O2 -pipe"                                                                                                                                          
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"                                           
FFLAGS="-O2 -pipe"                                                                                                                                           
GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo ftp://mirror.switch.ch/mirror/gentoo/  http://distfiles.gentoo.org"                 
LANG="de_DE.UTF-8"                                                                                                                                           
LC_ALL="de_DE.UTF-8"                                                                                                                                         
LDFLAGS="-Wl,-O1 -Wl,--as-needed"                                                                                                                            
MAKEOPTS="-j6"                                                                                                                                               
PKGDIR="/var/portage/packages/"                                                                                                                              
PORTAGE_CONFIGROOT="/"                                                                                                                                       
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-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/portage"
USE="3dnow 3dnowext X a52 aac acpi alsa amd64 apm bash-completion branding bzip2 cairo cdda cdio cdr cli consolekit cracklib crypt cups cxx dbus declarative djvu dri dts dvd dvdr emboss encode exif fam ffmpeg firefox flac fortran gif gphoto2 gpm iconv imagemagick jpeg jpeg2k kde kipi lcms lzma mad mmx mmxext mng modules mp3 mp4 mpeg mudflap multilib mysql ncurses networkmanager nls nptl ntp ogg opengl openmp pam pango pcre pdf phonon plasma png policykit ppds qt3support qt4 readline sdl semantic-desktop session spell sqlite sse sse2 ssl startup-notification svg tcpd theora threads tiff truetype udev udisks unicode upower usb vaapi vdpau vorbis wxwidgets x264 xcb xcomposite xinerama xml xorg xscreensaver xv xvid xvmc zlib" ABI_X86="64" ALSA_CARDS="hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd 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" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="canon ptp2" 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 ublox ubx" GRUB_PLATFORMS="pc" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby19 ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia" 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, PORTAGE_RSYNC_EXTRA_OPTS, SYNC, USE_PYTHON
Comment 1 morpheus 2014-01-08 19:51:03 UTC
Sorry. Forgot the version of eix. I am running app-portage/eix-0.29.3.
Comment 2 Paul Varner (RETIRED) gentoo-dev 2014-01-08 21:00:43 UTC
I see the same behavior with eix-0.30.0.
Comment 3 Martin Väth 2014-01-08 22:38:22 UTC
It was an intentional design decision to keep eix-header quick and tiny and thus not to read the config-files.

As a consequence, for portable scripts, the option -f is mandatory with eix-header. (However, to allow simpler usage on the command line or with quick'n'dirty scripts, no error is reported if this option is not used, but a fallback is used which works in the "default" setting)

> Impact:
> eix-update is always called upon eix-sync before the sync starts
> causing the eix database to be written twice in the eix-sync process. [...]
> I am running app-portage/eix-0.29.3

See bug 485152: The eix-sync script of <eix-0.29.5 was buggy; it had the option -f missing (...the drawback of allowing quick'n'dirty scripts...)

(In reply to Paul Varner from comment #2)
> I see the same behavior with eix-0.30.0.

If you are speaking about eix-sync, please specify: this should be fixed.
Comment 4 Paul Varner (RETIRED) gentoo-dev 2014-01-09 03:25:49 UTC
(In reply to Martin Väth from comment #3)
> (In reply to Paul Varner from comment #2)
> > I see the same behavior with eix-0.30.0.
> 
> If you are speaking about eix-sync, please specify: this should be fixed.

I was specifically speaking about eix-header.  I saw that I had a later version installed than the original reporter and tested to see if the behavior still existed.  I did note that the help had the -f option, but wasn't sure if it was intentional or not for eix-header to ignore the option when I reassigned the bug from tools-portage.
Comment 5 Martin Väth 2014-01-09 09:26:16 UTC
Thanks. So I am closing as fixed; I am aware that the solution is not perfect, but the alternative would be to pay the overhead of config-file parsing.
I will add some comments to eix-0.30.1 to make clearer that -f is not optional for portable scipts.