Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 345533 - dev-lang/php-5.2.14 is not marked for the php:5.2 slot
Summary: dev-lang/php-5.2.14 is not marked for the php:5.2 slot
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-15 03:13 UTC by Mike Thompson
Modified: 2010-11-15 13:36 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 Mike Thompson 2010-11-15 03:13:51 UTC
This is a very tacky oversight.  The stable version of PHP 5.2 (which is, in turn, the stable version that most people want to use in production) is php-5.2.14.

The problem now is that the ebuild for php-5.2.14 has SLOT="${PHP_MV}" (PHP_MV was set to "$(get_major_version)", so SLOT="5").  Even this would not be an issue except that in 5.2.14 the php.ini file now moves the extension .so's to a new directory and an EWARN message advises to rebuild all the PECL extensions (it fails to mention Cups, which uses the same directory).

(Old directory: /usr/lib64/php5/lib/php/extensions/no-debug-zts-20060613; new directory /usr/lib64/php5/lib/extensions/no-debug-zts-20060613.  Yes, the new path is nicer, but the timing of the change is bad.)

Extensions like APC and GeoIP now have ebuilds modified so that the look for the php:5.2 slot, which the stable version of PHP 5.2 does not carry.  Emerges for APC and GeoIP fail for me, wanting to go to the keyworded version of PHP 5.2, php-5.2.14-r2.  (In the php-5.2.14-r2 ebuild, SLOT="$(get_version_component_range 1-2)".)

So, for now, since I want the stable version, I'll have to change the php.ini file to point to the old path and hope the extensions still work.

This is the main issue:  the php-5.2.14 ebuild needs fixing.


There is a larger issue here.  Back in July I made the case with Matti that there NOT be separate slots for PHP 5.2 and 5.3.  I said that it would needlessly add to the complexity of ebuilds and be a source of trouble.  Well, there's trouble.  I sure wish you'd now get rid of the slots and also the USE flags php_targets_php5-2 and php_targets_php5-3. You complicate not only the PHP ebuilds, but ebuilds that connect depend on PHP.

Reproducible: Always

Steps to Reproduce:
1. emerge =dev-lang/php-5.1.4
2. emerge dev-php5/pecl-apc

Actual Results:  
!!! The following update has been skipped due to unsatisfied dependencies:

dev-php5/pecl-apc:0

!!! All ebuilds that could satisfy "dev-lang/php:5.2" have been masked.
!!! One of the following masked packages is required to complete your request:
- dev-lang/php-5.2.14-r2 (masked by: ~amd64 keyword)

(dependency required by "dev-php5/pecl-apc-3.1.5-r2" [ebuild])


Expected Results:  
Successful merge, of course.
Comment 1 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2010-11-15 04:35:08 UTC
I feel like the real problem is that you are mixing ARCH and ~ARCH. Is that true? Please post your emerge --info.
Comment 2 Mike Thompson 2010-11-15 13:36:08 UTC
Sigh--oh my.  I really need to remember to review my packages.keywords before I do a big update.  I had gone to ~arch on dev-php5/pecl-apc for some reason when I first emerged it, but now I see I would not need that setting anyway.  I removed that line from packages.keywords, and that merge worked.

GeoIP is a different story.  Both versions are keyworded, so ~arch it is.  (I stick with stable packages unless I can't.)

The ebuild for the latest version of pecl-geoip, 1.0.7-r1, needs those funky USE flags and can work only with php slots php:5.2 or php:5.3, not php:5.  Fortunately, pecl-geoip-1.0.7 is the vanilla version.  Also happily, portage selects 1.0.7 automatically when it can't find an ebuild for php:5.2.

So, when I pay attention, I can get the merges to work.

Still, I think that having separate slots for php 5.2 and 5.3 is a bad idea.  It looks like the minor-version slots are only in keyworded ebuilds.  If that's the case, I wish there would be some warning about that on the PHP project page.