Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 344415 - eselect php gives none found.
Summary: eselect php gives none found.
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: PHP Bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-06 18:21 UTC by Daniel Maxime
Modified: 2010-11-13 15:03 UTC (History)
0 users

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 Daniel Maxime 2010-11-06 18:21:27 UTC
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
Comment 1 Ole Markus With (RETIRED) gentoo-dev 2010-11-13 08:36:02 UTC
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
Comment 2 Daniel Maxime 2010-11-13 12:52:41 UTC
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...
Comment 3 Ole Markus With (RETIRED) gentoo-dev 2010-11-13 13:40:30 UTC
(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
Comment 4 Daniel Maxime 2010-11-13 14:10:36 UTC
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.
Comment 5 Ole Markus With (RETIRED) gentoo-dev 2010-11-13 14:32:50 UTC
(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.
Comment 6 Daniel Maxime 2010-11-13 15:03:08 UTC
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