On Sat, 2014-11-01 at 14:31 +0100, Hans Witvliet wrote:
Please have a look at the comment of one of the developpers of openvpn..
How can i provide: libsystemd.pc or libsystemd-daemon.pc files ?
Hans
-------- Forwarded Message --------
From: David Sommerseth
Reply-to: openvpn-users@lists.sourceforge.net To: Gert Doering , J.Witvliet@mindef.nl Cc: hwit@a-domani.nl, openvpn-users@lists.sourceforge.net Subject: Re: [Openvpn-users] RE 2.3.5 - systemd Date: Fri, 31 Oct 2014 21:51:22 +0100 On 30/10/14 19:28, Gert Doering wrote:
Hi,
On Thu, Oct 30, 2014 at 11:39:22AM +0100, J.Witvliet@mindef.nl wrote:
My first assumption was that on this particular build-node, system was not found, But that makes no sense, as 2.3.4 builds OK, with or without system on OS12.2, OS12.3, OS13.1, OS13.2, OSFactory, SLES11SP3 and SLES12
Have to dive a bit deeper, I guess.
2.3.4 doesn't link to systemd, just call the binary - 2.3.5 contains the additional check "is systemd running?" via libsystemd. So, on a system that does not actually have systemd installed, 2.3.4 would compile just fine, and possibly just not use the systemd ask-password at run-time, while 2.3.5 will not build.
If there *is* systemd on that node, it should compile, though...
David, this is yours to diagnose further and patch :-)
Yes, 2.3.4 and earlier did not carry any libsystemd or libsystemd-daemon if compiled with --enable-systemd. However, the check if the system was booted with systemd or not was not optimal earlier on either. That has improved now.
The dependency of libsystemd or libsystemd-daemon (depends on which version of systemd is installed) is caused by us now calling sd_booted() now instead of checking if the cgroups file tree with systemd traces is present or not. By calling sd_booted(), systemd provides us a sane way to do this check, even if they decide to change the check mechanism under the hood.
When OpenVPN is built for a system using systemd, it doesn't matter if it has this dependency or not, systemd will always be available. And if not, the OpenVPN package should pull in the needed systemd package when being installed. For RPM based distributions, the complete distro is built either with or without systemd, there is no "maybe systemd is here" scenario.
The problem in this particular case is solely that the RPM .spec file openSuSE uses is not updated with the dependency on the systemd-devel package (that's what it's called in Fedora at least). That package carries the needed pkg-config files telling how to include the needed systemd library when linking the openvpn binary. This [1] is what the Fedora packager did when building 2.3.5 for Fedora.
[1] http://pkgs.fedoraproject.org/cgit/openvpn.git/commit/?id=ef86d1da9850e23a69...
So, Hans, please ensure that the package providing the proper libsystemd.pc or libsystemd-daemon.pc files are installed. OpenVPN now needs a BuildRequirement for that particular package, as well as Requires on the systemd-libs package (which should carry libsystemd.so and/or libsystemd-daemon.so). If the systemd packages have similar names as Fedora, then you can look what's done in the Fedora .spec file.
-- kind regards,
David Sommerseth
-- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org