Created attachment 371328 [details] build log Long story short, in systemd-209 the libsystemd-* libraries were removed and replaced with single libsystemd. We install compatibility libsystemd-*.pc pkg-config files, so apps using pkg-config are not affected (yet :)). Since this package tries to link libsystemd-daemon directly, it fails terribly with >=systemd-209. The possibilities are: 1. use pkg-config to query libsystemd-daemon -- compatible with all versions but at some point we will be removing compat pkg-config files, 2. use pkg-config to query libsystemd, fallback to querying libsystemd-daemon -- future- and backwards-compatible, 3. just use libsystemd, and dep on >=systemd-210 in the ebuild (we didn't add -209). Preferably, always use pkg-config :). If you need any help, please let us know.
*** Bug 505986 has been marked as a duplicate of this bug. ***
Hi, i think i do not get what the actual "solution" is - do i understand correctly, that as long as this bug is not fixed in one way ore the other of what Michal suggests, i have to either mask the new systemd version or not use php (with systemd-useflag - whatever that implies). Is that correct? Thanks
You could use the patch in the duplicate bug #505986. This should use the possibility number three.
Created attachment 375824 [details, diff] php-5.5.11-systemd.patch
Created attachment 375862 [details, diff] php-5.5.11 systemd fpm patch There is no need to patch the ./configure file , especially in this particular case, 'cause portage does autoreconf and all the changes would be lost. So the right patch should be done on the ./sapi/fpm/config.m4 file. I upload the correct patch...
true, patching configure isn't required, but it also doesn't hurt. but nice to see that my "do what you want with it - at least better than nothing patch" at least resulted in an upload just a few hours later with a "correct" patch in a 2 months bug... :}
:) @Marcel, I apologize if you felt somewhat insulted by my upload... I didn't want it to sound this way... Anyway... The patch is just a temporary workaround... it is not the correct way to fix php with fpm and systemd (from portage point of view :) ) And yes it doesn't hurt to patch ./configure too... but it just makes the patch a kinda bloated... so if it ends in portage some day, it's best to be as short and targeted as possible :) BTW I think @Michał Górny stated the possibilities for a fix quite well... If I have to choose it would be #2... but yet I am not a developer here nor a proxy maintainer of the package... so let's really hope someone from the PHP team here will fix this before the bug hits the third month ...
IMHO there are some duplicates: https://bugs.gentoo.org/show_bug.cgi?id=505986 https://bugs.gentoo.org/show_bug.cgi?id=507320 Could someone mark them as duplicate of this?
*** Bug 507320 has been marked as a duplicate of this bug. ***
Now, php-5.5.12 fails with the same issue. Is there any patch for php-5.5.12?
It is always the same workaround / patch.
(In reply to Markus Rathgeb from comment #11) > It is always the same workaround / patch. I did: root@lynx2:/usr/local/portage/dev-lang/php(6)# cp files/php-5.5.11_w_systemd-212.patch files/php-5.5.12_w_systemd-212.patch root@lynx2:/usr/local/portage/dev-lang/php(7)# cp /usr/portage/dev-lang/php/php-5.5.12.ebuild php-5.5.12.ebuild_orig root@lynx2:/usr/local/portage/dev-lang/php(8)# cp php-5.5.12.ebuild_orig php-5.5.12.ebuild root@lynx2:/usr/local/portage/dev-lang/php(19)# diff -u3 php-5.5.11.ebuild_orig php-5.5.11.ebuild > php-5.5.11.ebuild.patch root@lynx2:/usr/local/portage/dev-lang/php(21)# sed "s/5.5.11/5.5.12/g" php-5.5.11.ebuild.patch > php-5.5.12.ebuild.patch root@lynx2:/usr/local/portage/dev-lang/php(22)# patch < php-5.5.12.ebuild.patch patching file php-5.5.12.ebuild root@lynx2:/usr/local/portage/dev-lang/php(24)# sed -i "s/5.5.11/5.5.12/g" files/php-5.5.12_w_systemd-212.patch root@lynx2:/usr/local/portage/dev-lang/php(28)# ll total 456 -rw-r--r-- 1 root root 24476 Apr 24 12:40 ChangeLog -rw-r--r-- 1 root root 108488 Apr 24 12:40 ChangeLog-2012 drwxr-xr-x 2 root root 4096 May 10 11:12 files/ -rw-r--r-- 1 root root 15577 Apr 24 12:40 Manifest -rw-r--r-- 1 root root 1547 Apr 24 12:40 metadata.xml -rw-r--r-- 1 root root 21921 Apr 24 12:40 php-5.3.28.ebuild -rw-r--r-- 1 root root 22250 Apr 24 12:40 php-5.3.28-r3.ebuild -rw-r--r-- 1 root root 22305 Apr 24 12:40 php-5.4.26.ebuild -rw-r--r-- 1 root root 22319 Apr 24 12:40 php-5.4.27.ebuild -rw-r--r-- 1 root root 22154 Apr 24 12:40 php-5.5.10.ebuild -rw-r--r-- 1 root root 22216 Apr 24 12:40 php-5.5.11.ebuild -rw-r--r-- 1 root root 22168 Apr 24 12:40 php-5.5.11.ebuild_orig -rw-r--r-- 1 root root 301 May 10 11:10 php-5.5.11.ebuild.patch -rw-r--r-- 1 root root 22216 May 10 11:11 php-5.5.12.ebuild -rw-r--r-- 1 root root 22168 May 10 11:17 php-5.5.12.ebuild_orig -rw-r--r-- 1 root root 301 May 10 11:11 php-5.5.12.ebuild.patch -rw-r--r-- 1 root root 476 May 10 11:04 php-5.5.patch -rw-r--r-- 1 root root 21868 Apr 24 12:40 php-5.6.0_alpha1.ebuild -rw-r--r-- 1 root root 22176 Apr 24 12:40 php-5.6.0_alpha1-r1.ebuild -rw-r--r-- 1 root root 22176 Apr 24 12:40 php-5.6.0_beta1.ebuild root@lynx2:/usr/local/portage/dev-lang/php(29)# ebuild php-5.5.12.ebuild digest >>> Creating Manifest for /usr/local/portage/dev-lang/php root@lynx2:/usr/local/portage/dev-lang/php(30)# emerge -uvND world The last command was successful.
And now there is the same issue with php-5.5.13.
I did: root@caiman:/usr/local/portage/dev-lang/php(17)# cp files/php-5.5.12_w_systemd-212.patch files/php-5.5.13_w_systemd-212.patch root@caiman:/usr/local/portage/dev-lang/php(18)# cp /usr/portage/dev-lang/php/php-5.5.13.ebuild . root@caiman:/usr/local/portage/dev-lang/php(19)# cp php-5.5.13.ebuild php-5.5.13.ebuild_orig root@caimaroot@caiman:/usr/local/portage/dev-lang/php(17)# cp files/php-5.5.12_w_systemd-212.patch files/php-5.5.13_w_systemd-212.patch root@caiman:/usr/local/portage/dev-lang/php(20)# diff -u3 php-5.5.12.ebuild_orig php-5.5.12.ebuild > php-5.5.12.ebuild.patch root@caiman:/usr/local/portage/dev-lang/php(21)# sed "s/5.5.12/5.5.13/g" php-5.5.12.ebuild.patch > php-5.5.13.ebuild.patch root@caiman:/usr/local/portage/dev-lang/php(22)# patch < php-5.5.13.ebuild.patch patching file php-5.5.13.ebuild root@caiman:/usr/local/portage/dev-lang/php(23)# sed -i "s/5.5.12/5.5.13/g" files/php-5.5.13_w_systemd-212.patch root@caiman:/usr/local/portage/dev-lang/php(24)# ebuild php-5.5.13.ebuild digest >>> Creating Manifest for /usr/local/portage/dev-lang/php and root@caiman:/usr/local/portage/dev-lang/php(26)# emerge -uvDN --exclude yacas world which at least emerge successfully emerged php-5.5.13. Is there an easier way?
Place the .patch file at /etc/portage/patches/dev-lang/php/gentoo-bug-505986.patch (file name is arbitrary but must end with .patch). And remember to remove this file when the ebuild gets fixed.
This patch only sort of does suggestion 3, right? I have no plans on fixing this outside of upstream, but that should not be a problem as they have added all the patches I have sent that way before. I doubt that they will accept a patch without fallback though.
Since you're going to wait for upstream, can you fix php's DEPENDS to block on newer systemd versions then? I prefer not making one off exceptions.
(In reply to Nolan Eakins from comment #17) > Since you're going to wait for upstream, can you fix php's DEPENDS to block > on newer systemd versions then? I prefer not making one off exceptions. Please don't. The problem is quite simple to work around with a symlink for the missing lib, and we do that in systemd-212-r5. For systemd-213+, you'll just me making this workaround harder to apply.
(In reply to Ole Markus With from comment #16) > This patch only sort of does suggestion 3, right? Attachment 375862 [details, diff] implements mgorny's third suggestion, yes.
Created attachment 378288 [details, diff] php-fpm-systemd-pkg-config.patch Patch; should be suitable for upstream. First uses pkg-config to check for systemd.pc and then falls back to current method, so should be fully backward and forward compatible.
Note that we can't use pkg-config --libs, --includes etc. as systemd.pc doesn't include any of the standard information.
(In reply to Ed Catmur from comment #21) > Note that we can't use pkg-config --libs, --includes etc. as systemd.pc > doesn't include any of the standard information. That's because you are using the wrong package name. % pkg-config --libs libsystemd -lsystemd
*** Bug 512440 has been marked as a duplicate of this bug. ***
The optimal solution here is mgorny's suggestion #2. If someone would suggest that to upstream, or implement a proper patch, that would be wonderful.
Created attachment 378348 [details, diff] php-fpm-systemd-pkg-config.patch Well, huh. This uses libsystemd.pc. Still falls back to the current method - no way I'm going to write a patch that risks losing backwards compatibility.
(In reply to Ed Catmur from comment #25) That looks nicer, thanks!
Is a bug opened upstream about this?
And now we have the same issue php-5.5.14.
tha patch was accepted by upstream :D If anyone could help in bug 502530 that would be nice as it's the only remaining broken app :)
Hi, the issue still exists for 5.5.15
5.5.16 and newer fixed it on upstream side
Looks like this issues still exists with dev-lang/php-5.4.38.
Created attachment 401736 [details, diff] Fix dev-lang/php:5.4 and new systemd support Since dev-lang/php:5.4 never got the fix from this bug, the only suitable choice for people who need php-5.4 and systemd is to use the attached patch. Just place it in the file "/etc/portage/dev-lang/php:5.4/Fix-dev-lang-php-5.4-systemd-support.patch". This way it gets applied for php-5.4 only.
(In reply to Radoslav Kirilov from comment #33) > Just place it in the file > "/etc/portage/dev-lang/php:5.4/Fix-dev-lang-php-5.4-systemd-support.patch". > This way it gets applied for php-5.4 only. This actually should be: /etc/portage/patches/dev-lang/php:5.4/Fix-dev-lang-php-5.4-systemd-support.patch