Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 332575 - revdep-rebuild didn't catch problems with php shared libs
Summary: revdep-rebuild didn't catch problems with php shared libs
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: High normal
Assignee: PHP Bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-13 09:19 UTC by Paul Osmialowski
Modified: 2010-09-19 17:11 UTC (History)
3 users (show)

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 Paul Osmialowski 2010-08-13 09:19:23 UTC
Running php after successfull revdep-rebuild:
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php5/lib/extensions/no-debug-non-zts-20060613/mcve.so' - /usr/lib64/php5/lib/extensions/no-debug-non-zts-20060613/mcve.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php5/lib/extensions/no-debug-non-zts-20060613/suhosin.so' - /usr/lib64/php5/lib/extensions/no-debug-non-zts-20060613/suhosin.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php5/lib/extensions/no-debug-non-zts-20060613/uuid.so' - /usr/lib64/php5/lib/extensions/no-debug-non-zts-20060613/uuid.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php5/lib/extensions/no-debug-non-zts-20060613/yaz.so' - /usr/lib64/php5/lib/extensions/no-debug-non-zts-20060613/yaz.so: cannot open shared object file: No such file or directory in Unknown on line 0

Running php after emerge suhosin:
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php5/lib/extensions/no-debug-non-zts-20060613/mcve.so' - /usr/lib64/php5/lib/extensions/no-debug-non-zts-20060613/mcve.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php5/lib/extensions/no-debug-non-zts-20060613/uuid.so' - /usr/lib64/php5/lib/extensions/no-debug-non-zts-20060613/uuid.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php5/lib/extensions/no-debug-non-zts-20060613/yaz.so' - /usr/lib64/php5/lib/extensions/no-debug-non-zts-20060613/yaz.so: cannot open shared object file: No such file or directory in Unknown on line 0


Reproducible: Always

Steps to Reproduce:
1. emerge --syns
2. emerge -uND world
3. revdep-rebuild
4. php

Actual Results:  
php drops warinings regarding shared libs

Expected Results:  
no warnings

revdep-rebuild should find problems like this
Comment 1 Gef 2010-08-13 15:27:31 UTC
Well, no.
You should rebuild all your php extensions after certain php updates, ie those updates that changes ABI version (please someone, correct me if the terminology is wrong). Maybe you can provide the php versions you are upgrading from and to ?

The error you see is an internal php error who fails to locate the extension because it can not find it in the expected location. Revdep-rebuild (and FEATURES="preserve-libs") are here to prevent link level problems. This is quite different.
Comment 2 Paul Osmialowski 2010-08-14 17:32:13 UTC
So how can I deal with problems like this, or similar recently added simgear/flightgear bug? Few years ago I couldn't play most of SDL games because some small audio-related library had to be rebuilt and revdep-rebuild did not realised that. Long investigation solved this problem. Gentoo user has to be a good detective in the first place.
Updated version is dev-lang/php-5.2.14, I don't know how to query for previous version .after. update was completed.
Comment 3 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2010-09-07 07:23:18 UTC
If you're using portage-2.2, you could add a set like below to /etc/portage/sets.conf:

[php5-rebuild]
class = portage.sets.dbapi.OwnerSet
files = %(EROOT)usr/lib64/php5/lib/extensions

and afterwards:
# emerge -1 @php5-rebuild

This will probably remerge php too, though.
Comment 4 Ole Markus With (RETIRED) gentoo-dev 2010-09-14 17:23:27 UTC
Hopefully we will be able to implement minor version slotting before the next minor version release of PHP. Then each extension will only be compiled for the slots of PHP that you chose, so if you install a new PHP slot, you will have to enable the extension for that slot and then reinstall that package.
Comment 5 William Waisse 2010-09-16 23:46:38 UTC
same problem here ( for suhosin extension here ) after updates and successful revdep-rebuild
Comment 6 Matti Bickel (RETIRED) gentoo-dev 2010-09-19 17:11:25 UTC
Gef is right here - revdep-rebuild works by looking into apps/libs linked shared objects. PHP is not linked to it's extensions, as you can enable/disable them at startup time via php.ini. So revdep-rebuild can't and probably will never be able to do what you want. This is why we tell you to (manually) remerge all your installed extensions right after you installed or upgraded dev-lang/php via einfo.

Ole is right in that we try to make this easier and at least provide you a list of things you need to remerge. This is work in progress and will hopefully surface this month (or the next, if real life strikes).

closing as WONTFIX, as nobody can really do anything about it right now. Sorry for that, we're working on it!