When building rpm with the python use flag enabled it finds a temporary python instance (actually a shared link) in "/var/tmp/portage/app-arch/rpm-4.11.1/temp/python2.7/bin/python" which is then used in the resulting binaries and causes runtime issues later. Reproducible: Always Steps to Reproduce: 1. emerge rpm # emerge --info Portage 2.2.7 (default/linux/amd64/13.0/desktop/kde, gcc-4.8.2, glibc-2.17, 3.12.0-gentoo x86_64) ================================================================= System uname: Linux-3.12.0-gentoo-x86_64-Intel-R-_Core-TM-_i5-2540M_CPU_@_2.60GHz-with-gentoo-2.2 KiB Mem: 8057556 total, 663848 free KiB Swap: 16777212 total, 16620440 free Timestamp of tree: Tue, 19 Nov 2013 00:45:01 +0000 ld GNU ld (GNU Binutils) 2.23.2 app-shells/bash: 4.2_p45 dev-java/java-config: 2.2.0 dev-lang/python: 2.5.4-r5, 2.7.5-r4, 3.2.5-r3, 3.3.2-r2 dev-util/cmake: 2.8.12.1-r1 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, 1.14 sys-devel/binutils: 2.23.2 sys-devel/gcc: 4.6.3, 4.7.3-r1, 4.8.2 sys-devel/gcc-config: 1.8 sys-devel/libtool: 2.4.2 sys-devel/make: 3.82-r4 sys-kernel/linux-headers: 3.11 (virtual/os-headers) sys-libs/glibc: 2.17 Repositories: gentoo local ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA @FREE @EULA @BINARY-REDISTRIBUTABLE" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/polkit-1/actions /usr/share/themes/oxygen-gtk/gtk-2.0 /usr/share/themes/oxygen-gtk/gtk-3.0 /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-march=native -O2 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--autounmask=n --quiet-build=n" 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 splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_EXTRA_OPTS="--timeout=60 --delete-after" 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" SYNC="rsync://192.168.0.16/gentoo-portage" USE="X X509 a52 aac acl acpi aiglx aim alsa amarok amazon amd64 amr amrnb amrwb animgif async avantgo bash-completion berkdb bittorrent bl bluetooth branding buttons bzip2 cairo calendar cdb cdda cddb cdr cdrom cli colordiff connectionstatus consolekit cpudetection cracklib crypt cscope css cups cxx dbus declarative dga dhcpcd divx dnd doc dri dts dv dvb dvd dvdnav dvdr embedded emboss encode eolconv examples exif fam fat fbcon fbsplash ffmpeg firefox flac fontconfig fortran ftp g3dvl gd gdbm geos gif gimp glep gles2 glut gmedia gphoto2 gpm gtk hdri highlight htmlhandbook http iconv icu id3 ieee1394 imagemagick imap ipv6 irc jabber java javascript jpeg jpeg2k kde kerberos kipi lame laptop lastfm lcms ldap libnotify libwww live logitech-mouse lxc lzo lzw mad matrox mime mjpeg mmap mmx mmxext mng modules moznocompose moznoirc moznomail moznoroaming mp3 mp4 mpeg mpeg2 mplayer msn mtp mudflap multilib multitarget musicbrainz na_dd na_icons ncurses netmeeting networkmanager nfs nls nokia nptl nsplugin nspluginwrapper nss numpy ofx ogdi ogg openexr opengl openmp pam pango pcre pda pdf perl phonon plasma pmu png pnm policykit posix ppds pulseaudio python qemu qemu-ifup qt3support qt4 rdesktop rdesktop-vrdp readline realmedia rss rtc ruby samba scanner sdl sdl-image secure-delete semantic-desktop session sftp sharedmem shout slp smbclient smp sms sna snmp sockets sound spell spice sqlite sse sse2 sse3 ssl ssse3 startup-notification subversion svg sysfs syslog taglib tagwriting tcpd templates threads thumbnail tiff tivo translator truetype udev udisks unicode upower usb utils uudeview v4l v4l2 vaapi valgrind vboxwebsrv vcd vde vim-with-x virt-network visualization vnc vorbis webdav webkit wifi wma wmf wmp wxwidgets x264 xanim xattr xcb xcomposite xext xft xim xine xinerama xml xml2 xpm xscreensaver xv xvid xvmc yahoo yv12 zeroconf zip zlib zvbi" ABI_X86="64" 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" 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="ptp2 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" INPUT_DEVICES="evdev keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer nlpsolver scripting-beanshell scripting-javascript wiki-publisher" LINGUAS="en en_US" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" QEMU_SOFTMMU_TARGETS="i386 x86_64 arm" RUBY_TARGETS="ruby19 ruby18" SANE_BACKENDS="hp" USERLAND="GNU" VIDEO_CARDS="vesa intel" 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, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, USE_PYTHON
(In reply to Paul Moore from comment #0) > then used in the resulting binaries and causes runtime issues later. What issues?
(In reply to Jeroen Roovers from comment #1) > (In reply to Paul Moore from comment #0) > > then used in the resulting binaries and causes runtime issues later. > > What issues? If I run the following command using the Fedora Kernel RPM specfile: # rpm -q --specfile kernel.spec sh: /var/tmp/portage/app-arch/rpm-4.11.1/temp/python2.7/bin/python: No such file or directory {...following output trimmed...}
More simple reproducer: $ rpm --eval '%{__python}' /var/tmp/portage/app-arch/rpm-4.11.1/temp/python2.7/bin/python %__python macro is set incorrectly and this can be triggered with some spec files (basically any python spec following Fedora guidelines)
Note that as a workaround for now you can manually fix /usr/libexec/rpm/macros if required. While we could simply fix up the macro to be /usr/bin/python that might be incorrect from RPM perspective (which generally has separate macro for python 3.x). It would most likely only cause issues if people actually tried to build rpms for different distributions on Gentoo. There are probably more related issues if that would be the goal.
(In reply to Stanislav Ochotnicky from comment #4) > Note that as a workaround for now you can manually fix > /usr/libexec/rpm/macros if required. Thanks, while a more permanent fix is needed, manually fixing the macros file does solve my problem.
Any progress on resolving this? Manually fixing the macros file after each upgrade of the rpm package is getting tiring.
So I've committed rpm-4.11.2-r1 which contains a hardcoded /usr/bin/python2 instead of dynamic @__PYTHON@. I think it generally makes sense even for spec files coming from RPM distributions but I wouldn't bet on it :-) Closing, thanks for patience :-)