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 openvpn.list@topphemmelig.net Reply-to: openvpn-users@lists.sourceforge.net To: Gert Doering gert@greenie.muc.de, 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=ef86d1da9850e23a69f76b68d2a0ec39b319fe0d
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
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 openvpn.list@topphemmelig.net Reply-to: openvpn-users@lists.sourceforge.net To: Gert Doering gert@greenie.muc.de, 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=ef86d1da9850e23a69f76b68d2a0ec39b319fe0d
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
On November 1, 2014 9:33:49 AM EDT, Hans Witvliet suse@a-domani.nl wrote:
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
As I just said, you have to find out which package has those files, then in the specfile add a "BuildRequires:" line for it.
Greg
On Sat, 2014-11-01 at 10:08 -0400, Greg Freemyer wrote:
On November 1, 2014 9:33:49 AM EDT, Hans Witvliet suse@a-domani.nl wrote:
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
As I just said, you have to find out which package has those files, then in the specfile add a "BuildRequires:" line for it.
Thanks Greg,
"BuildRequires: systemd-devel" was indeed all that I needed
All builds run OK now.
Hans.
On Saturday 2014-11-01 14:31, 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 ?
To be provuded by the distro. You have to request them using BuildRequires: pkgconfug(libsystend) or pkgconfig(libsystemd-daemon), respectively.
buildservice@lists.opensuse.org