Since php-5.3 upgrade, I removed php-toolkit (Block Problem) and installed eselect-php module (required). But, eselect don't find any php actions usable: fany ~ # eselect php list fpm (none found) fany ~ # eselect php list cli (none found) (same for apache2 and cgi) To set symlinks, I reinstall php-toolkit juste to set it, but emerge -DuNav world want to reinstall eselect-php... Note: after set up symlinks with php-toolkit, eselect show good links: fany ~ # eselect php show cli /usr/lib/php5.3 But I cannot change it. Same bug on amd64 and i686. Reproducible: Always Steps to Reproduce: 1. Update to php-5.3.3-r3, remove php-toolkit, install eselect-php 2. Set up symlinks with eselect 3. Show links availible Actual Results: (none found) Expected Results: php5.3 Portage 2.1.9.24 (default/linux/x86/10.0/desktop, gcc-4.4.5, glibc-2.12.1-r3, 2.6.34-maxux32 i686) ================================================================= System uname: Linux-2.6.34-maxux32-i686-Intel-R-_Xeon-TM-_CPU_2.80GHz-with-gentoo-2.0.1 Timestamp of tree: Tue, 02 Nov 2010 11:30:01 +0000 distcc 3.1 i686-pc-linux-gnu [enabled] ccache version 2.4 [enabled] app-shells/bash: 4.1_p9 dev-java/java-config: 2.1.11-r1 dev-lang/python: 2.6.6-r1, 3.1.2-r4 dev-util/ccache: 2.4-r8 dev-util/cmake: 2.8.1-r2 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.6.3 sys-apps/sandbox: 2.3-r1 sys-devel/autoconf: 2.13, 2.68 sys-devel/automake: 1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 4.4.5 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.10 sys-devel/make: 3.82 virtual/os-headers: 2.6.35 (sys-kernel/linux-headers) ACCEPT_KEYWORDS="x86 ~x86" ACCEPT_LICENSE="* -@EULA PUEL skype-eula AdobeFlash-10 AdobeFlash-10.1" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=i686 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo" CXXFLAGS="-O2 -march=i686 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests binpkg-logs ccache distcc distlocks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" GENTOO_MIRRORS="http://mirror.ovh.net/gentoo-distfiles/ " LANG="fr_BE.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="en" MAKEOPTS="-j 32" 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" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X a52 aac aalib acl acpi alsa apache2 bash-completion berkdb bluetooth branding bzip2 cairo caps cdr cgid cli consolekit cracklib crypt cxx dbus dmx dri dts dvd dvdr emboss encode exif extensions extras fam fat ffmpeg fftw firefox flac fortran gd gdbm gif glitz gnutls gpm gtk hddtemp iconv id3tag iostats ipv6 jack jpeg json kqemu lcms libaa libnotify libsexy lv2 mad mdadm midi mikmod mmx mng modules mp3 mp4 mpeg mudflap multitarget mysql ncurses nethack netjack nls nptl nptlonly ntfs nvidia ogg opengl openmp optimization pam pango pcre pdf perl png ppds pppd python qt3support qt4 readline samba sdl secure-delete session sndfile spell sqlite sse sse2 ssl startup-notification svg sysfs syslog system-sqlite tcpd theora threads tiff truetype unicode usb vorbis wavpack x264 x86 xcb xcomposite xft xinerama xml xorg xulrunner xv xvid xvmc zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 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" APACHE2_MPMS="worker" 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" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" NGINX_MODULES_HTTP="access auth_basic autoindex browser charset empty_gif fastcgi gzip limit_req limit_zone map memcached proxy referer rewrite scgi split_clients ssi upstream_ip_hash userid uwsgi" PHP_TARGETS="php5-2" RUBY_TARGETS="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, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Firstly, I cannot reproduce this. Installing php-5.3.3-r3 automatically sets up symlinks using the eselct module. > fany ~ # eselect php show cli > /usr/lib/php5.3 This output looks wrong. It should look like this: # eselect php show cli php5.3 (none found) is the message you receive when the eselect module cannot find any installed binaries. E.g it cannot find /usr/lib64/php5.3/bin/php
The output is made after php-select. Without it, no links are present. Strangely, the binaries exists: fany geek # ls /usr/lib/php5.3/bin/ php php-cgi php-config php-fpm phpize And on my laptop too: emy geek # ls /usr/lib64/php5.3/bin/ php php-cgi php-config phpize I don't understand why it doesn't work...
(In reply to comment #2) > The output is made after php-select. Without it, no links are present. > Strangely, the binaries exists: > > fany geek # ls /usr/lib/php5.3/bin/ > php php-cgi php-config php-fpm phpize > > And on my laptop too: > > emy geek # ls /usr/lib64/php5.3/bin/ > php php-cgi php-config phpize > > I don't understand why it doesn't work... > Hm ... guess we have to figure out exactly where it fails. First, the eselect module finds php dirs in your libdir. On x86, it works like this for dir in /usr/lib/php*; do t=$(basename $dir) dirs="${dirs} $t" done echo $dirs See if the output from that one contains "php5.3" Next, it looks through those dirs looking for binaries. It works like this: for target in $dirs; do [[ -f /usr/lib/$target/bin/php ]] && echo $target done The output from this snipped should also contain php5.3 IF you installed it with the cli USE flag. You can see the all code in /usr/share/eselect/modules/php.eselect
Well, all seems to works: fany geek # for dir in /usr/lib/php*; do > t=$(basename $dir) > dirs="${dirs} $t" > done fany geek # echo $dirs php5.3 fany geek # fany geek # for target in $dirs; do > [[ -f /usr/lib/$target/bin/php ]] && echo $target > done php5.3 I use php-cli every day. I already read the code of the eselect part, and it's why I post this bug... I don't find why it doesn't works.
(In reply to comment #4) > I already read the code of the eselect part, and it's why I post this bug... I > don't find why it doesn't works. > Hm. Can you try to put in some debug echo around in the eselect module? I have tried to reproduce this on three different machines now with variying mix of old/stable/unstable packages installed, but it works on all of them, both x86 and amd64.
Okay, well. On my laptop (amd64), it works since last emerge update. But, on my server (i686) there is a strange bug... I suppose made by a cross-dev error: fany eselect # source libs/core.bash fany eselect # source libs/tests.bash fany eselect # source libs/multilib.bash fany eselect # source modules/php.eselect # I commented inherit part fany eselect # get_libdir /usr/lib64 fany eselect # ls -a /usr/ . .. bin games i686-pc-linux-gnu include .keep lib libexec local man portage sbin share src tmp fany eselect # list_libdirs lib lib32 lib64 fany eselect # eselect found a lib64 dir... When I read /etc/ld.so.conf # ld.so.conf autogenerated by env-update; make all changes to # contents of /etc/env.d directory /usr/local/lib include ld.so.conf.d/*.conf //usr/lib/opengl/nvidia/lib /lib /usr/lib /lib64 /usr/lib64 /usr/local/lib64 /lib32 /usr/lib32 /usr/local/lib32 /usr/lib/gcc/i686-pc-linux-gnu/4.4.5 /usr/lib/qt4 /usr/lib32/qt4 /usr/games/lib /opt/cuda/lib64 /usr/lib/fltk-1.1 /usr/lib64/fltk /usr/lib32/libstdc++-v3/ I think that "crossdev" (or any things from it. I tried to crossdev x86_64 for distcc, there is a lot of ago) left lib64 on it... fany env.d # grep lib64 * 04multilib:LDPATH="/lib:/usr/lib:/usr/local/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib32:/usr/lib32:/usr/local/lib32" I removed 04multilib (mv to /tmp), env-update and now... it works. fany env.d # eselect php list cli [1] php5.3 * fany env.d # eselect php list apache2 [1] php5.3 Thanks Markus