This morning's sync wanted to downgrade eselect-python to 20090606. This ended up with /usr/bin/python pointing to /usr/bin/python-wrappers. This resulted in emerge breaking. quick fix (and I am not sure this is correct) rm /usr/bin/python ln -s /usr/bin/python2 /usr/bin/python to get a working python interpreter. Since this bug breaks emerge, I have listed it as a blocker. Hope that is OK. EBo --
You manually broke your configuration.
no... I did an "emerge --sync" and then "emerge -uDp --newuse world" app-admin/eselect-python was downgraded from 20090814 to 20090606. part way through the "emerge -uDp --newuse world" everything stopped working. I went to check out why, and found the problem with the broken link. At that point I could not do ANYTHING which used python until I thwacked the link. I could not emerge anything until I did this. What I'm planning to do now is to re-emerge python to fix it proper, but please note that what broke it in the first place was the downgrade of eselect-python, and NOT my hacking the link after it was broken. I wanted to alert you to the problem so it could be fixed before other people ran into the same problem.
Which package depends on older version of app-admin/eselect-python?
If you can still reproduce this bug, please post the output of: emerge --info emerge -uDNptv --with-bdeps=y world
I see I mistook the version number. It was 20090804 not 20090814, but I reproduced the problem with 20090814 also. I have some program which required a new version of eselect-python, and would not compile without an experimental version of eselect-python. So I added the following line to my package.keywords: =app-admin/eselect-python-20090804 ~x86 eselect-python-20090804 was removed from portage which caused emerge to downgrade to 20090606. It is the downgrade process which removed python-wrapper, and since ls -l /usr/bin/python gives python-wrapper, python becomes broken. Steps to Reproduce: 1) temporary build app-admin/eselect-python-200908** by adding it to package.keywords. 2) emerge eselect-python 3) comment out line in package.keywords (which will trigger a downgrade) 4) emerge eselect-python. In the middle of installing eselect-python it removes python-wrapper, which breaks python entirely and the emerge fails. No emerging can be done from this point on until the file is hand patched (including re-emerging python itself!). I mentioned the the hand patch before, but a better fix could be to provide postrm's to eselect-python-200908* which replaces/rebuilds the link proper. Rebuilding python I find that the proper link is "/usr/bin/python -> python2.5" Impact Factor: This was brought about by subtleties of my configuration, and should only effect a few people who are using non-stable versions of eselect-python. As such I think it should be downgraded from blocker but I think it should still remain critical since it breaks the system. There is the additional issue that if anyone downgrading from any new system to an older one will have the same problem. EBo -- ==================== obligatory emerge --info ============================= Portage 2.1.6.13 (default/linux/x86/2008.0/desktop, gcc-4.3.4, glibc-2.9_p20081201-r2, 2.6.30-gentoo-r4 i686) ================================================================= System uname: Linux-2.6.30-gentoo-r4-i686-Intel-R-_Pentium-R-_Dual_CPU_T2330_@_1.60GHz-with-glibc2.0 Timestamp of tree: Sat, 15 Aug 2009 11:15:01 +0000 ccache version 2.4 [enabled] app-shells/bash: 3.2_p39 dev-java/java-config: 2.1.8-r1 dev-lang/python: 2.4.6, 2.5.4-r3 dev-python/pycrypto: 2.0.1-r8 dev-util/ccache: 2.4-r7 dev-util/cmake: 2.6.4-r2 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.6-r2 sys-devel/autoconf: 2.13, 2.63-r1 sys-devel/automake: 1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2 sys-devel/binutils: 2.18-r3 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6a virtual/os-headers: 2.6.27-r2 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=i686 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/lib/hsqldb /var/spool/torque" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /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 /etc/udev/rules.d" CXXFLAGS="-O2 -march=i686 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="ccache distlocks fixpackages metadata-transfer nostrip parallel-fetch protect-owned sandbox sfperms splitdebug strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo " LDFLAGS="-Wl,-O1" LINGUAS="en" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage/layman/science /usr/local/portage/layman/pd-overlay /usr/local/portage/layman/sunrise /home/ebo/gtd/projects/computer/local_portage/ref/local-portage" SYNC=" rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="3dnow X a52 aac acl acpi alsa arts audiofile bash-completion berkdb blas blender-game bluetooth branding bzip2 cairo cdr cern cli clisp cmucl cracklib crypt css cups curl cvs dbus divx dri dts dvd dvdr dvdread eds emacs emboss encode esd evo fam ffmpeg fftw firefox fits flac fortran ft2232 ftdi ftp gcl gd gdbm geant4 geos gif gimp git gmedia gnome gpg gpm graphviz gstreamer gtk hal haskell hddtemp hdf5 iconv ieee1394 iodbc ipod ipv6 ipw3945 isdnlog jack java java6 javascript jpeg jpeg2k kde lapack laptop latex ldap libnotify lm_sensors lzf lzo mad mikmod mp3 mp4 mpeg mpi mudflap mysql ncurses netcdf nls nptl nptlonly nsplugin odbc ogdi ogg openal opengl openmp osc pam parport pcre pdf perl php png portaudio postgres ppds pppd python qt3 qt3support qt4 quicktime readline realmedia reflection romio sasl sbcl scanner sdl session snmp spell spl sql ssl startup-notification subversion svg sysfs tcl tcpd theora threads tiff tk truetype unicode usb vorbis wavpack webdav-neon win32codecs wmf wmp x264 x86 xcb xine xinerama xml xorg xpm xprint xrootd xulrunner xv xvid zlib" ALSA_CARDS="hda-intel" 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 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" ELIBC="glibc" FOO2ZJS_DEVICES="hpp1006" INPUT_DEVICES="keyboard mouse synaptics evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" USERLAND="GNU" VIDEO_CARDS="i810 v4l vesa" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
(In reply to comment #5) > So I added the following line to my package.keywords: > > =app-admin/eselect-python-20090804 ~x86 So comment #1 was correct. You should have added this line: app-admin/eselect-python > re-emerging python itself! Manual running of `eselect python set ...` would be sufficient.
Well, if your users ever have to downgrade their eselect-python and it just breaks, gods help them. Of course if they loaded eselect-python intentionally and know exactly how to recover from the took screwing up the system then they are ok. But I will vehemently disagree with your comments for the following reason -- it violates the principle of least surprise. At least add a postrm to warn the users that the /usr/bin/python no longer points to anything valid. At least then I would have known how to fix the problem without resorting to this bug report and re-emerging python. If I am not mistaken, gentoo documentation recommends running stable ebuilds, and only running experimental versions when necessary. Turning all versions of eselect-python before they are stable is, as far as I know about gentoo's policies, not the thing to do.