Since minor version SLOTting of php went stable, media-libs/ming-0.4.3-r1 was stabilized to provide support for this new feature. However, this version pulls in php:5.3 despite having set USE="-php". I think that USE="-php" should imply that all PHP_TARGETS are unset. [ebuild R ] media-libs/ming-0.4.3-r1 USE="perl python (-php)" PHP_TARGETS="php5-3 -php5-2" 0 kB Reproducible: Always Portage 2.1.9.25 (default/linux/amd64/10.0, gcc-4.4.4, glibc-2.11.2-r3, 2.6.34-gentoo-r12-stable x86_64) ================================================================= System uname: Linux-2.6.34-gentoo-r12-stable-x86_64-Intel-R-_Core-TM-2_Duo_CPU_T8100_@_2.10GHz-with-gentoo-2.0.1 Timestamp of tree: Sat, 08 Jan 2011 07:45:01 +0000 app-shells/bash: 4.1_p7 dev-java/java-config: 2.1.11-r1 dev-lang/python: 2.6.6-r1, 3.1.2-r4 dev-util/cmake: 2.8.1-r2 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.6.8 sys-apps/sandbox: 2.4 sys-devel/autoconf: 2.13, 2.65-r1 sys-devel/automake: 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 4.4.4-r2 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.10 sys-devel/make: 3.81-r2 virtual/os-headers: 2.6.30-r1 (sys-kernel/linux-headers) ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="* -@EULA PUEL cadsoft skype-eula AdobeFlash-10.1" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe -march=core2 -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=3072 -mtune=generic" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/bin/mygenkernel /usr/sbin/run-crons /usr/share/cairo-dock/plug-ins/wifi/wifi /usr/share/openvpn/easy-rsa /var/lib/hsqldb" 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 /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-O2 -pipe -march=core2 -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=3072 -mtune=generic" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--ask --buildpkg" FEATURES="assume-digests binpkg-logs collision-protect distlocks fixlafiles fixpackages multilib-strict news parallel-fetch protect-owned sandbox sfperms strict test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox" GENTOO_MIRRORS="ftp://ftp.tu-clausthal.de/pub/linux/gentoo/ ftp://de-mirror.org/distro/gentoo/ ftp://mirror.netcologne.de/gentoo/ ftp://ftp.uni-erlangen.de/pub/mirrors/gentoo ftp://ftp.join.uni-muenster.de/pub/linux/distributions/gentoo" LANG="en_US.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,relro -Wl,-z,now" LINGUAS="en de" MAKEOPTS="-j5" PKGDIR="/var/lib/portage/binpkg" PORTAGE_COMPRESS="" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_EXTRA_OPTS="--timeout=500" 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="/var/lib/layman/DuPol /var/lib/layman/sping /var/lib/layman/science /var/lib/layman/sunrise /var/lib/layman/alon-barlev /usr/local/portage/g-ctan /usr/local/portage/modified /usr/local/portage/own" SYNC="rsync://rsync.de.gentoo.org/gentoo-portage" USE="X X509 Xaw3d a52 aac aalib accessibility acl acpi alsa amd64 amr amrnb amrr amrwb apm async audacious audiofile bash-completion battery berkdb bindist bl bluetooth branding bzip2 cairo cardbus cdaudio cdda cdinstall cjk cli consolekit cracklib crypt css ctype cups curl cxx dbus devil dga directfb dri dts dv dvd dvdr eds encode evo exchange exif fam fame fbcon fbcondecor fbsplash ffmpeg flac fontforge foomaticdb fortran ftp gd gdbm gif gimp git glade glitz gmp gphoto2 gs gsm gstreamer gtk gtkhtml guile hal hddtemp hdf5 iconv icq icu idn ieee1394 imagemagick imap imlib iproute2 jack java javascript jpeg jpeg2k kerberos keyscrub kino kpathsea lame lapack laptop latex lcms libcaca libnotify libsamplerate libsexy libv4l2 libwww live lm_sensors logrotate loop-aes lzma lzo mad memlimit mikmod mime mjpeg mmx mmxext mng modules mono motif mp2 mp3 mp4 mpeg mplayer mudflap multilib musepack ncurses nls nntp nowin nptl nptlonly nsplugin ntp nuv nvidia ods ogg opengl openmp opensslcrypt pam pch pcmcia pcre pda pdf perl plotutils png posix ppds pppd print python qt3support quicktime readline rtsp ruby rubytests samba sasl schroedinger sdl server session simplexml slang sndfile soap sockets sou speex spell sse sse2 sse3 sse4.1 ssl ssse3 startup-notification stream subversion svg swat sysfs syslog system-sqlite tcpd tga theora threads tiff tordns truetype unicode usb userlocales v4l v4l2 vcd vdpau vim-syntax vim-with-x vorbis wcwidth wifi winbind wma wmf wxwindows x264 xanim xcomposite xfce xinetd xls xml xmp xorg xpm xsl xterm-color xulrunner xv xvid xvmc zlib" ALSA_CARDS="hda-intel mpu401" 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" CAMERAS="fuji 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 ubx" INPUT_DEVICES="evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en de" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia dummy" 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, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS_FLAGS
Assigning to robbat2 because he bumped inherited eclass to php-ext-source-r2.
You probably need to deal with this as i.e. setting/unsetting LINGUAS for a single package - try php_targets_php5_3 (or something alike) in useflags for this package (just look at 'emerge -pv' output).
(In reply to comment #2) > You probably need to deal with this as i.e. setting/unsetting LINGUAS for a > single package - try php_targets_php5_3 (or something alike) in useflags > for this package (just look at 'emerge -pv' output). > no way. It was the first thing I've tried: # USE="-php_targets_php-5-3 -php_targets_php-5-2" emerge -1uav dev-libs/ming but then it tells me that I need to change the USE on the package. The problem, imho, lies in the fact that the lines for target in ${USE_PHP}; do 67 IUSE="${IUSE} php_targets_${target}" 68 target=${target/+} 69 SELFDEPEND="${SELFDEPEND} =${CATEGORY}/${PF}[php_targets_${target}]" 70 slot=${target/php} 71 slot=${slot/-/.} 72 PHPDEPEND="${PHPDEPEND} 73 php_targets_${target}? ( dev-lang/php:${slot} )" 74 done 75 in php-ext-source-r2.eclass are executed unconditionally from USE flag settings.
(In reply to comment #2) > You probably need to deal with this as i.e. setting/unsetting LINGUAS for a > single package - try php_targets_php5_3 (or something alike) in useflags > for this package (just look at 'emerge -pv' output). No way. I don't start to disable all 'php_targets_php*' which will come available after each update. If this is not due to a faulty use of the eclass, then the eclass itself is broken because I don't want php at all, so with USE="-php", it should just work. I don't want to worry about setting all the PHP_TARGET stuff in my make.conf. I expect that if the variable is not set and an ebuild pulls in different php dependencies, none is chosen.
I too am experiencing this problem on my ~x86 laptop. The ebuild for media-libs/ming-0.4.3-r1 is horribly broken. This morning I emerge -uvND @world and php and all of its dependencies got pulled into the cue. I'm running default/linux/x86/10.0/desktop/kde profile. I tried adding USE="-php" to my make.conf, but has no affect and php still gets pulled in. PHP is only needed on servers and should never be a required dependency in a desktop profile. I've been running Gentoo for over 8 years and never before had to USE="-php" in make.conf. Even so, since it was still being drawn in to emerge update, I tried to add 'media-libs/ming -php_targets_php5-3 -php-targets_php5-2' to /etc/portage/package.use then portage complains: emerge: there are no ebuilds built with USE flags to satisfy "=media-libs/ming-0.4.3-r1[php_targets_php5-2]". !!! One of the following packages is required to complete your request: - media-libs/ming-0.4.3-r1 (Change USE: +php_targets_php5-2) (dependency required by "media-libs/ming-0.4.3-r1" [ebuild]) (dependency required by "media-gfx/pstoedit-3.50-r1" [installed]) (dependency required by "app-office/karbon-2.2.2" [installed]) (dependency required by "app-office/koffice-meta-2.2.2" [installed]) (dependency required by "@selected") (dependency required by "@world" [argument]) The only solution to allow portage to update my system without dragging in php is to mask ming-0.4.3-r1 How many users will mindlessly update their desktops today and unknowingly pull in all of these unneeded deps? This needs to be fixed ASAP!
Hmm, seems like the new PHP eclases do offer no way for optional PHP dependencies. This affects only three packages in the tree: dev-libs/ossp-uuid media-libs/ming sci-geosciences/mapserver I've fixed ming now, I extended the eclass to support including a conditional into the structure, via new variable PHP_EXT_OPTIONAL_USE. The other two packages need fixing for supporting the new eclass in the same manner.
I just re-synced portage..... updated @world..... ming ebuild installs fine..... no longer drags in php and dependencies. THANKS
(In reply to comment #6) > Hmm, seems like the new PHP eclases do offer no way for optional PHP > dependencies. > > I've fixed ming now, I extended the eclass to support including a conditional > into the structure, via new variable PHP_EXT_OPTIONAL_USE. No, this is not a proper fix. It broke USE flag logic. With USE="-php", dev-lang/php is not pulled in anymore. That's correct but PHP_TARGET is still set to highest available version: [ebuild R ] media-libs/ming-0.4.3-r1 USE="perl python (-php)" PHP_TARGETS="php5-3 -php5-2" If now another ebuild would DEPEND on it like DEPEND="media-libs/ming[php_targets_php5-3]", the package manager would assume the dependency to be okay but it is not. What needs to be done is this: if use php; then do_the_fancy_stuff_of_assigning_PHP_TARGETS else unset_all_PHP_TARGETS fi depend_on_php_according_to_PHP_TARGETS
I had a look at the eclass but this does not seem to be trivial. PHP_TARGETS is set in /usr/portage/profiles/base/make.defaults so if I don't care abou php and don't set it explicitly to PHP_TARGETS="", it will defaut to the target set in make.defaults. I think that requiring to set PHP_TARGETS="" is the same as using "nofoo" USE-flags which should be avoided.
Forgot to mention that php USE flag is masked for ming.
Wouldn't you check for media-libs/ming[php, php_targets_php5-3]? I agree it's not as straightforward as it could be, but it works.
(In reply to comment #8) > (In reply to comment #6) > > Hmm, seems like the new PHP eclases do offer no way for optional PHP > > dependencies. > > > > I've fixed ming now, I extended the eclass to support including a conditional > > into the structure, via new variable PHP_EXT_OPTIONAL_USE. > No, this is not a proper fix. It broke USE flag logic. With USE="-php", > dev-lang/php is not pulled in anymore. That's correct but PHP_TARGET is still > set to highest available version: > [ebuild R ] media-libs/ming-0.4.3-r1 USE="perl python (-php)" > PHP_TARGETS="php5-3 -php5-2" What you are seeing there is YOUR personal PHP_TARGETS setting. PHP_TARGETS should always be displayed there, because it's your personal system. Here's mine: [ebuild R ] media-libs/ming-0.4.3-r1 USE="perl python (-php)" PHP_TARGETS="php5-2 php5-3" 0 kB > If now another ebuild would DEPEND on it like > DEPEND="media-libs/ming[php_targets_php5-3]", the package manager would assume > the dependency to be okay but it is not. Only if it explicitly needs the 5.3 build. The correct depend would be: DEPEND="|| ( <=media-libs/ming-0.4.3[php] >=media-libs/ming-0.4.3-r1[php_targets_php5-3?] >=media-libs/ming-0.4.3-r1[php_targets_php5-2?] )" Assuming the ebuild just needs ming built for the same version of PHP in question. The first instance covers ming for non-slotted PHP. The last two handle it for either of the possible builds. > What needs to be done is this: > if use php; then > do_the_fancy_stuff_of_assigning_PHP_TARGETS > else > unset_all_PHP_TARGETS > fi PHP_TARGETS is the _USER_ selection of what targets to build for. The ebuilds NEVER change the value of PHP_TARGETS. Ming has an implied USE_PHP="php5-2 php5-3" because it builds for both of them (barring the autotools phpize issue that is why it's in package.use.mask).