* [Buildroot] [PATCH] package/gpsd: do not interact with systemd on install
@ 2017-05-13 8:27 Yann E. MORIN
2017-05-13 12:58 ` Thomas Petazzoni
2017-05-15 12:07 ` Peter Korsgaard
0 siblings, 2 replies; 3+ messages in thread
From: Yann E. MORIN @ 2017-05-13 8:27 UTC (permalink / raw)
To: buildroot
When building on a systemd-based host for a systemd-based target, gpsd's
buildsystem will try to tell systemd to reload the its configuration and
recreate the entire dependency tree of services.
Of course, this can not work when run as a user:
>>> gpsd 3.16 Installing to target
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
Authentication is required to reload the systemd state.
Authenticating as: root
Password:
In fact, this does not even mean anything in cross-compilation.
Fortunately, upstream has already fixed their sin, so we backport it
(tweaked to apply onto 3.16).
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
Note: this was never observed in any of the autobuilders, even those
running on a systemd-based distro, because in this case stdin is
redirected and systemctl simply fails, but the construct is just to
ignore the failure, so the build proceeds; the issue only occurs when
there is an actual terminal to provide user input... :-/
---
...eract-with-systemctl-when-cross-compiling.patch | 41 ++++++++++++++++++++++
1 file changed, 41 insertions(+)
create mode 100644 package/gpsd/0001-do-not-interact-with-systemctl-when-cross-compiling.patch
diff --git a/package/gpsd/0001-do-not-interact-with-systemctl-when-cross-compiling.patch b/package/gpsd/0001-do-not-interact-with-systemctl-when-cross-compiling.patch
new file mode 100644
index 0000000000..9e91a02ef3
--- /dev/null
+++ b/package/gpsd/0001-do-not-interact-with-systemctl-when-cross-compiling.patch
@@ -0,0 +1,41 @@
+From 777cb3737ae85b13642fff48eabb601c4d40f527 Mon Sep 17 00:00:00 2001
+From: James Knight <james.d.knight@live.com>
+Date: Tue, 16 Feb 2016 23:51:08 -0500
+Subject: [PATCH] do not interact with systemctl when cross-compiling
+
+The installation process for GPSd on a systemd environment will attempt
+to reload systemd's manager configuration (systemctl daemon-reload).
+This is to allow the system to take advantage of the newly installed
+GPSd services. When cross-compiling, the installation process should not
+attempt to interact with the build environment's systemd instance (if
+any). The following change checks if the build is not cross compiling
+(via 'not env["sysroot"]') before attempting to do a systemd reload.
+
+Signed-off-by: James Knight <james.d.knight@live.com>
+[yann.morin.1998 at free.fr: tweak to apply on 3.16]
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+---
+ SConstruct | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/SConstruct b/SConstruct
+index c3bfd0d1..97c1b3a9 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1909,10 +1909,12 @@ udev_install = Utility('udev-install', 'install', [
+ ] + hotplug_wrapper_install)
+
+ if env['systemd']:
++ env.Requires(udev_install, systemd_install)
++
++if env['systemd'] and not env["sysroot"]:
+ systemctl_daemon_reload = Utility('systemctl-daemon-reload', '', [ 'systemctl daemon-reload || true'])
+ env.AlwaysBuild(systemctl_daemon_reload)
+ env.Precious(systemctl_daemon_reload)
+- env.Requires(udev_install, systemd_install)
+ env.Requires(systemctl_daemon_reload, systemd_install)
+ env.Requires(udev_install, systemctl_daemon_reload)
+
+--
+2.11.0
+
--
2.11.0
^ permalink raw reply related [flat|nested] 3+ messages in thread* [Buildroot] [PATCH] package/gpsd: do not interact with systemd on install
2017-05-13 8:27 [Buildroot] [PATCH] package/gpsd: do not interact with systemd on install Yann E. MORIN
@ 2017-05-13 12:58 ` Thomas Petazzoni
2017-05-15 12:07 ` Peter Korsgaard
1 sibling, 0 replies; 3+ messages in thread
From: Thomas Petazzoni @ 2017-05-13 12:58 UTC (permalink / raw)
To: buildroot
Hello,
On Sat, 13 May 2017 10:27:36 +0200, Yann E. MORIN wrote:
> When building on a systemd-based host for a systemd-based target, gpsd's
> buildsystem will try to tell systemd to reload the its configuration and
> recreate the entire dependency tree of services.
>
> Of course, this can not work when run as a user:
> >>> gpsd 3.16 Installing to target
> ==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
> Authentication is required to reload the systemd state.
> Authenticating as: root
> Password:
>
> In fact, this does not even mean anything in cross-compilation.
>
> Fortunately, upstream has already fixed their sin, so we backport it
> (tweaked to apply onto 3.16).
>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
>
> ---
> Note: this was never observed in any of the autobuilders, even those
> running on a systemd-based distro, because in this case stdin is
> redirected and systemctl simply fails, but the construct is just to
> ignore the failure, so the build proceeds; the issue only occurs when
> there is an actual terminal to provide user input... :-/
> ---
> ...eract-with-systemctl-when-cross-compiling.patch | 41 ++++++++++++++++++++++
> 1 file changed, 41 insertions(+)
> create mode 100644 package/gpsd/0001-do-not-interact-with-systemctl-when-cross-compiling.patch
Applied to master, thanks.
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH] package/gpsd: do not interact with systemd on install
2017-05-13 8:27 [Buildroot] [PATCH] package/gpsd: do not interact with systemd on install Yann E. MORIN
2017-05-13 12:58 ` Thomas Petazzoni
@ 2017-05-15 12:07 ` Peter Korsgaard
1 sibling, 0 replies; 3+ messages in thread
From: Peter Korsgaard @ 2017-05-15 12:07 UTC (permalink / raw)
To: buildroot
>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:
> When building on a systemd-based host for a systemd-based target, gpsd's
> buildsystem will try to tell systemd to reload the its configuration and
> recreate the entire dependency tree of services.
> Of course, this can not work when run as a user:
>>>> gpsd 3.16 Installing to target
> ==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
> Authentication is required to reload the systemd state.
> Authenticating as: root
> Password:
> In fact, this does not even mean anything in cross-compilation.
> Fortunately, upstream has already fixed their sin, so we backport it
> (tweaked to apply onto 3.16).
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
> ---
> Note: this was never observed in any of the autobuilders, even those
> running on a systemd-based distro, because in this case stdin is
> redirected and systemctl simply fails, but the construct is just to
> ignore the failure, so the build proceeds; the issue only occurs when
> there is an actual terminal to provide user input... :-/
Committed to 2017.02.x, thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-05-15 12:07 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-13 8:27 [Buildroot] [PATCH] package/gpsd: do not interact with systemd on install Yann E. MORIN
2017-05-13 12:58 ` Thomas Petazzoni
2017-05-15 12:07 ` Peter Korsgaard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox