All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/6] systemd improvements
@ 2014-07-03 16:57 Eric Le Bihan
  2014-07-03 16:57 ` [Buildroot] [PATCH 1/6] dbus: enable systemd support Eric Le Bihan
                   ` (6 more replies)
  0 siblings, 7 replies; 21+ messages in thread
From: Eric Le Bihan @ 2014-07-03 16:57 UTC (permalink / raw)
  To: buildroot

Hi!

This series contains the following improvements for systemd:

 - fix systemd support in dbus.
 - fix kmod path in service files.
 - bump version to 214.
 - new hook to fix /var, /run.
 - enable network time synchronization if selected.

It takes into account the various suggestions from ThomasP and Arnout and
supersedes the previous bump patch.

Best regards,
ELB

Eric Le Bihan (6):
  dbus: enable systemd support
  systemd: revert getty service installation
  systemd: fix path for kmod in service files
  systemd: bump to version 214
  systemd: add hook to fix /run, /var
  systemd: install timesync service if selected

 package/dbus/Config.in                             |    1 +
 package/dbus/dbus.mk                               |    9 +++-
 ...ystemd-03-fix-am-path-libgcrypt-no-found.patch} |    0
 package/systemd/systemd-03-fix-no-gtk-doc.patch    |   23 --------
 package/systemd/systemd.mk                         |   56 +++++++++++++-------
 5 files changed, 46 insertions(+), 43 deletions(-)
 rename package/systemd/{systemd-04-fix-am-path-libgcrypt-no-found.patch => systemd-03-fix-am-path-libgcrypt-no-found.patch} (100%)
 delete mode 100644 package/systemd/systemd-03-fix-no-gtk-doc.patch

--
1.7.10.4

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 1/6] dbus: enable systemd support
  2014-07-03 16:57 [Buildroot] [PATCH 0/6] systemd improvements Eric Le Bihan
@ 2014-07-03 16:57 ` Eric Le Bihan
  2014-07-07 16:31   ` Arnout Vandecappelle
  2014-07-03 16:57 ` [Buildroot] [PATCH 2/6] systemd: revert getty service installation Eric Le Bihan
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 21+ messages in thread
From: Eric Le Bihan @ 2014-07-03 16:57 UTC (permalink / raw)
  To: buildroot

Enable systemd support if systemd is selected as init system (require
systemd compatibility libraries).

Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
 package/dbus/Config.in |    1 +
 package/dbus/dbus.mk   |    9 +++++++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/package/dbus/Config.in b/package/dbus/Config.in
index 653f748..7d49ce5 100644
--- a/package/dbus/Config.in
+++ b/package/dbus/Config.in
@@ -4,6 +4,7 @@ config BR2_PACKAGE_DBUS
 	# uses fork()
 	depends on BR2_USE_MMU
 	select BR2_PACKAGE_EXPAT
+	select BR2_PACKAGE_SYSTEMD_COMPAT if BR2_INIT_SYSTEMD
 	help
 	  The D-Bus message bus system.
 
diff --git a/package/dbus/dbus.mk b/package/dbus/dbus.mk
index 0c8fcf3..de699fc 100644
--- a/package/dbus/dbus.mk
+++ b/package/dbus/dbus.mk
@@ -50,8 +50,13 @@ else
 DBUS_CONF_OPT += --without-x
 endif
 
-ifeq ($(BR2_PACKAGE_SYSTEMD),y)
-DBUS_CONF_OPT += --with-systemdsystemunitdir=/lib/systemd/system
+ifeq ($(BR2_INIT_SYSTEMD),y)
+DBUS_CONF_OPT += \
+	--enable-systemd \
+	--with-systemdsystemunitdir=/lib/systemd/system
+DBUS_DEPENDENCIES += systemd
+else
+DBUS_CONF_OPT += --disable-systemd
 endif
 
 # fix rebuild (dbus makefile errors out if /var/lib/dbus is a symlink)
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 2/6] systemd: revert getty service installation
  2014-07-03 16:57 [Buildroot] [PATCH 0/6] systemd improvements Eric Le Bihan
  2014-07-03 16:57 ` [Buildroot] [PATCH 1/6] dbus: enable systemd support Eric Le Bihan
@ 2014-07-03 16:57 ` Eric Le Bihan
  2014-07-06 20:28   ` Yann E. MORIN
  2014-07-03 16:57 ` [Buildroot] [PATCH 3/6] systemd: fix path for kmod in service files Eric Le Bihan
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 21+ messages in thread
From: Eric Le Bihan @ 2014-07-03 16:57 UTC (permalink / raw)
  To: buildroot

Revert getty fixup from post installation hook to service installation,
because service installation is performed before the installation of the
package itself. The fixup will fail trying to delete a file that has not
been installed yet.

Fixes http://autobuild.buildroot.net/results/5b03174318d8a6dc3112053ff141b70a90869c20/

Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
 package/systemd/systemd.mk |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
index 95e7214..97fa61a 100644
--- a/package/systemd/systemd.mk
+++ b/package/systemd/systemd.mk
@@ -138,6 +138,11 @@ define SYSTEMD_INSTALL_INIT_HOOK
 	ln -fs ../../../lib/systemd/system/multi-user.target $(TARGET_DIR)/etc/systemd/system/default.target
 endef
 
+define SYSTEMD_INSTALL_TTY_HOOK
+	rm -f $(TARGET_DIR)/etc/systemd/system/getty.target.wants/getty at tty1.service
+	ln -fs ../../../../lib/systemd/system/serial-getty at .service $(TARGET_DIR)/etc/systemd/system/getty.target.wants/serial-getty@$(BR2_TARGET_GENERIC_GETTY_PORT).service
+endef
+
 define SYSTEMD_INSTALL_MACHINEID_HOOK
 	touch $(TARGET_DIR)/etc/machine-id
 endef
@@ -149,6 +154,7 @@ endef
 
 SYSTEMD_POST_INSTALL_TARGET_HOOKS += \
 	SYSTEMD_INSTALL_INIT_HOOK \
+	SYSTEMD_INSTALL_TTY_HOOK \
 	SYSTEMD_INSTALL_MACHINEID_HOOK \
 	SYSTEMD_SANITIZE_PATH_IN_UNITS
 
@@ -158,13 +164,7 @@ define SYSTEMD_USERS
 	$(SYSTEMD_USER_TIMESYNC)
 endef
 
-define SYSTEMD_INSTALL_SERVICE_TTY
-	rm -f $(TARGET_DIR)/etc/systemd/system/getty.target.wants/getty at tty1.service
-	ln -fs ../../../../lib/systemd/system/serial-getty at .service $(TARGET_DIR)/etc/systemd/system/getty.target.wants/serial-getty@$(BR2_TARGET_GENERIC_GETTY_PORT).service
-endef
-
 define SYSTEMD_INSTALL_INIT_SYSTEMD
-	$(SYSTEMD_INSTALL_SERVICE_TTY)
 	$(SYSTEMD_INSTALL_SERVICE_NETWORK)
 endef
 
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 3/6] systemd: fix path for kmod in service files
  2014-07-03 16:57 [Buildroot] [PATCH 0/6] systemd improvements Eric Le Bihan
  2014-07-03 16:57 ` [Buildroot] [PATCH 1/6] dbus: enable systemd support Eric Le Bihan
  2014-07-03 16:57 ` [Buildroot] [PATCH 2/6] systemd: revert getty service installation Eric Le Bihan
@ 2014-07-03 16:57 ` Eric Le Bihan
  2014-07-03 16:57 ` [Buildroot] [PATCH 4/6] systemd: bump to version 214 Eric Le Bihan
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 21+ messages in thread
From: Eric Le Bihan @ 2014-07-03 16:57 UTC (permalink / raw)
  To: buildroot

The path for kmod used in kmod-static-nodes.service is the one found by
the ./configure script, which ends up being the path to the host kmod
program.

This patch forces the path to the target kmod program.

Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
 package/systemd/systemd.mk |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
index 97fa61a..756446b 100644
--- a/package/systemd/systemd.mk
+++ b/package/systemd/systemd.mk
@@ -50,6 +50,10 @@ SYSTEMD_CONF_OPT += \
 	--disable-dbus \
 	--without-python
 
+# Override path to kmod, used in kmod-static-nodes.service
+SYSTEMD_CONF_ENV = \
+	ac_cv_path_KMOD=/usr/bin/kmod
+
 ifeq ($(BR2_PACKAGE_SYSTEMD_COMPAT),y)
 SYSTEMD_CONF_OPT += --enable-compat-libs
 else
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 4/6] systemd: bump to version 214
  2014-07-03 16:57 [Buildroot] [PATCH 0/6] systemd improvements Eric Le Bihan
                   ` (2 preceding siblings ...)
  2014-07-03 16:57 ` [Buildroot] [PATCH 3/6] systemd: fix path for kmod in service files Eric Le Bihan
@ 2014-07-03 16:57 ` Eric Le Bihan
  2014-07-07 16:34   ` Arnout Vandecappelle
  2014-07-03 16:57 ` [Buildroot] [PATCH 5/6] systemd: add hook to fix /run, /var Eric Le Bihan
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 21+ messages in thread
From: Eric Le Bihan @ 2014-07-03 16:57 UTC (permalink / raw)
  To: buildroot

This patch bumps systemd to version 214.

Changes:

- add new users: systemd-bus-proxy, systemd-network and systemd-resolve.
- remove gtk-doc patch, as it is no longer needed.
- remove attr dependency.
- enable nss-myhostname.

Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
 ...ystemd-03-fix-am-path-libgcrypt-no-found.patch} |    0
 package/systemd/systemd-03-fix-no-gtk-doc.patch    |   23 --------------------
 package/systemd/systemd.mk                         |   23 +++++++++-----------
 3 files changed, 10 insertions(+), 36 deletions(-)
 rename package/systemd/{systemd-04-fix-am-path-libgcrypt-no-found.patch => systemd-03-fix-am-path-libgcrypt-no-found.patch} (100%)
 delete mode 100644 package/systemd/systemd-03-fix-no-gtk-doc.patch

diff --git a/package/systemd/systemd-04-fix-am-path-libgcrypt-no-found.patch b/package/systemd/systemd-03-fix-am-path-libgcrypt-no-found.patch
similarity index 100%
rename from package/systemd/systemd-04-fix-am-path-libgcrypt-no-found.patch
rename to package/systemd/systemd-03-fix-am-path-libgcrypt-no-found.patch
diff --git a/package/systemd/systemd-03-fix-no-gtk-doc.patch b/package/systemd/systemd-03-fix-no-gtk-doc.patch
deleted file mode 100644
index dc236a7..0000000
--- a/package/systemd/systemd-03-fix-no-gtk-doc.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Fix deactivation of gtk-doc
-
-The tarball contains the Makefile for building documentation with gtk-doc,
-Unfortunately the AM_CONDITIONAL variable is not the correct one, which
-results in an error when running autoreconf.
-
-This patch fixes this issue.
-
-Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
----
-Index: systemd-213/docs/gtk-doc.make
-===================================================================
---- systemd-213.orig/docs/gtk-doc.make	2014-02-14 09:27:47.000000000 +0100
-+++ systemd-213/docs/gtk-doc.make	2014-06-04 15:20:11.976845074 +0200
-@@ -267,7 +267,7 @@
- #
- # Require gtk-doc when making dist
- #
--if HAVE_GTK_DOC
-+if ENABLE_GTK_DOC
- dist-check-gtkdoc: docs
- else
- dist-check-gtkdoc:
diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
index 756446b..25bea0b 100644
--- a/package/systemd/systemd.mk
+++ b/package/systemd/systemd.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-SYSTEMD_VERSION = 213
+SYSTEMD_VERSION = 214
 SYSTEMD_SITE = http://www.freedesktop.org/software/systemd/
 SYSTEMD_SOURCE = systemd-$(SYSTEMD_VERSION).tar.xz
 SYSTEMD_LICENSE = LGPLv2.1+; GPLv2+ for udev; MIT-like license for few source files listed in README
@@ -44,7 +44,6 @@ SYSTEMD_CONF_OPT += \
 	--enable-split-usr \
 	--enable-introspection=no \
 	--disable-efi \
-	--disable-myhostname \
 	--disable-tcpwrap \
 	--disable-tests \
 	--disable-dbus \
@@ -67,13 +66,6 @@ else
 SYSTEMD_CONF_OPT += --disable-acl
 endif
 
-ifeq ($(BR2_PACKAGE_ATTR),y)
-SYSTEMD_CONF_OPT += --enable-attr
-SYSTEMD_DEPENDENCIES += attr
-else
-SYSTEMD_CONF_OPT += --disable-attr
-endif
-
 ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
 SYSTEMD_CONF_OPT += --enable-gudev
 SYSTEMD_DEPENDENCIES += libglib2
@@ -103,6 +95,10 @@ endif
 
 ifeq ($(BR2_PACKAGE_SYSTEMD_NETWORKD),y)
 SYSTEMD_CONF_OPT += --enable-networkd
+define SYSTEMD_INSTALL_RESOLVCONF_HOOK
+	ln -sf ../run/systemd/resolve/resolv.conf \
+		$(TARGET_DIR)/etc/resolv.conf
+endef
 else
 SYSTEMD_CONF_OPT += --disable-networkd
 define SYSTEMD_INSTALL_SERVICE_NETWORK
@@ -116,9 +112,6 @@ endif
 
 ifeq ($(BR2_PACKAGE_SYSTEMD_TIMESYNCD),y)
 SYSTEMD_CONF_OPT += --enable-timesyncd
-define SYSTEMD_USER_TIMESYNC
-	systemd-timesync -1 systemd-timesync -1 * - - - Network Time Synchronization
-endef
 else
 SYSTEMD_CONF_OPT += --disable-timesyncd
 endif
@@ -160,12 +153,16 @@ SYSTEMD_POST_INSTALL_TARGET_HOOKS += \
 	SYSTEMD_INSTALL_INIT_HOOK \
 	SYSTEMD_INSTALL_TTY_HOOK \
 	SYSTEMD_INSTALL_MACHINEID_HOOK \
+	SYSTEMD_INSTALL_RESOLVCONF_HOOK \
 	SYSTEMD_SANITIZE_PATH_IN_UNITS
 
 define SYSTEMD_USERS
 	systemd-journal -1 systemd-journal -1 * /var/log/journal - - Journal
 	systemd-journal-gateway -1 systemd-journal-gateway -1 * /var/log/journal - - Journal Gateway
-	$(SYSTEMD_USER_TIMESYNC)
+	systemd-resolve -1 systemd-resolve -1 * - - - Network Name Resolution Manager
+	systemd-bus-proxy -1 systemd-bus-proxy -1 * - - - Proxy D-Bus messages to/from a bus
+	systemd-timesync -1 systemd-timesync -1 * - - - Network Time Synchronization
+	systemd-network -1 systemd-network -1 * - - - Network Manager
 endef
 
 define SYSTEMD_INSTALL_INIT_SYSTEMD
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 5/6] systemd: add hook to fix /run, /var
  2014-07-03 16:57 [Buildroot] [PATCH 0/6] systemd improvements Eric Le Bihan
                   ` (3 preceding siblings ...)
  2014-07-03 16:57 ` [Buildroot] [PATCH 4/6] systemd: bump to version 214 Eric Le Bihan
@ 2014-07-03 16:57 ` Eric Le Bihan
  2014-07-07 16:43   ` Arnout Vandecappelle
  2014-07-03 16:57 ` [Buildroot] [PATCH 6/6] systemd: install timesync service if selected Eric Le Bihan
  2014-07-15 21:39 ` [Buildroot] [PATCH 0/6] systemd improvements Thomas Petazzoni
  6 siblings, 1 reply; 21+ messages in thread
From: Eric Le Bihan @ 2014-07-03 16:57 UTC (permalink / raw)
  To: buildroot

Add a post installation hook to fix target runtime data directories
/var/{lock,run,tmp} and /run. Theses directories will be populated by
systemd according to the configuration files from /usr/lib/tmpfiles.d.

Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
 package/systemd/systemd.mk |   13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
index 25bea0b..2da65e6 100644
--- a/package/systemd/systemd.mk
+++ b/package/systemd/systemd.mk
@@ -149,11 +149,24 @@ define SYSTEMD_SANITIZE_PATH_IN_UNITS
 		-exec $(SED) 's,$(HOST_DIR),,g' {} \;
 endef
 
+# /var/{lock,run,tmp} and /run will be populated at runtime by Systemd
+# according to the configuration files from /usr/lib/tmpfiles.d/.
+define SYSTEMD_FIX_RUNTIME_DIRS_HOOK
+	$(RM) -rf $(TARGET_DIR)/var/lock
+	$(RM) -rf $(TARGET_DIR)/var/run
+	$(RM) -rf $(TARGET_DIR)/var/tmp
+	ln -sf ../run $(TARGET_DIR)/var/run
+	ln -sf ../run $(TARGET_DIR)/var/lock
+	$(RM) -rf $(TARGET_DIR)/run
+	mkdir -p $(TARGET_DIR)/run
+endef
+
 SYSTEMD_POST_INSTALL_TARGET_HOOKS += \
 	SYSTEMD_INSTALL_INIT_HOOK \
 	SYSTEMD_INSTALL_TTY_HOOK \
 	SYSTEMD_INSTALL_MACHINEID_HOOK \
 	SYSTEMD_INSTALL_RESOLVCONF_HOOK \
+	SYSTEMD_FIX_RUNTIME_DIRS_HOOK \
 	SYSTEMD_SANITIZE_PATH_IN_UNITS
 
 define SYSTEMD_USERS
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 6/6] systemd: install timesync service if selected
  2014-07-03 16:57 [Buildroot] [PATCH 0/6] systemd improvements Eric Le Bihan
                   ` (4 preceding siblings ...)
  2014-07-03 16:57 ` [Buildroot] [PATCH 5/6] systemd: add hook to fix /run, /var Eric Le Bihan
@ 2014-07-03 16:57 ` Eric Le Bihan
  2014-07-07 16:46   ` Arnout Vandecappelle
  2014-07-15 21:39 ` [Buildroot] [PATCH 0/6] systemd improvements Thomas Petazzoni
  6 siblings, 1 reply; 21+ messages in thread
From: Eric Le Bihan @ 2014-07-03 16:57 UTC (permalink / raw)
  To: buildroot

If support for systemd-timesyncd is selected, install the associated
service.

Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
 package/systemd/systemd.mk |    6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
index 2da65e6..3454e43 100644
--- a/package/systemd/systemd.mk
+++ b/package/systemd/systemd.mk
@@ -112,6 +112,11 @@ endif
 
 ifeq ($(BR2_PACKAGE_SYSTEMD_TIMESYNCD),y)
 SYSTEMD_CONF_OPT += --enable-timesyncd
+define SYSTEMD_INSTALL_SERVICE_TIMESYNC
+	mkdir -p $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants
+	ln -sf ../../../../lib/systemd/system/systemd-timesyncd.service \
+		$(TARGET_DIR)/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service
+endef
 else
 SYSTEMD_CONF_OPT += --disable-timesyncd
 endif
@@ -180,6 +185,7 @@ endef
 
 define SYSTEMD_INSTALL_INIT_SYSTEMD
 	$(SYSTEMD_INSTALL_SERVICE_NETWORK)
+	$(SYSTEMD_INSTALL_SERVICE_TIMESYNC)
 endef
 
 $(eval $(autotools-package))
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 2/6] systemd: revert getty service installation
  2014-07-03 16:57 ` [Buildroot] [PATCH 2/6] systemd: revert getty service installation Eric Le Bihan
@ 2014-07-06 20:28   ` Yann E. MORIN
  2014-07-17 11:57     ` Eric Le Bihan
  0 siblings, 1 reply; 21+ messages in thread
From: Yann E. MORIN @ 2014-07-06 20:28 UTC (permalink / raw)
  To: buildroot

Eric, All,

On 2014-07-03 18:57 +0200, Eric Le Bihan spake thusly:
> Revert getty fixup from post installation hook to service installation,
> because service installation is performed before the installation of the
> package itself. The fixup will fail trying to delete a file that has not
> been installed yet.
> 
> Fixes http://autobuild.buildroot.net/results/5b03174318d8a6dc3112053ff141b70a90869c20/

Another, nore generic fix has just been committed:
    http://git.buildroot.org/buildroot/commit/?id=ea0f52fc3fca5e5ba3ea5cd46033df2f53e9b5a5

Would you care verify if this proposed patch is still valid now?

Regards,
Yann E. MORIN.

> Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
> ---
>  package/systemd/systemd.mk |   12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
> index 95e7214..97fa61a 100644
> --- a/package/systemd/systemd.mk
> +++ b/package/systemd/systemd.mk
> @@ -138,6 +138,11 @@ define SYSTEMD_INSTALL_INIT_HOOK
>  	ln -fs ../../../lib/systemd/system/multi-user.target $(TARGET_DIR)/etc/systemd/system/default.target
>  endef
>  
> +define SYSTEMD_INSTALL_TTY_HOOK
> +	rm -f $(TARGET_DIR)/etc/systemd/system/getty.target.wants/getty at tty1.service
> +	ln -fs ../../../../lib/systemd/system/serial-getty at .service $(TARGET_DIR)/etc/systemd/system/getty.target.wants/serial-getty@$(BR2_TARGET_GENERIC_GETTY_PORT).service
> +endef
> +
>  define SYSTEMD_INSTALL_MACHINEID_HOOK
>  	touch $(TARGET_DIR)/etc/machine-id
>  endef
> @@ -149,6 +154,7 @@ endef
>  
>  SYSTEMD_POST_INSTALL_TARGET_HOOKS += \
>  	SYSTEMD_INSTALL_INIT_HOOK \
> +	SYSTEMD_INSTALL_TTY_HOOK \
>  	SYSTEMD_INSTALL_MACHINEID_HOOK \
>  	SYSTEMD_SANITIZE_PATH_IN_UNITS
>  
> @@ -158,13 +164,7 @@ define SYSTEMD_USERS
>  	$(SYSTEMD_USER_TIMESYNC)
>  endef
>  
> -define SYSTEMD_INSTALL_SERVICE_TTY
> -	rm -f $(TARGET_DIR)/etc/systemd/system/getty.target.wants/getty at tty1.service
> -	ln -fs ../../../../lib/systemd/system/serial-getty at .service $(TARGET_DIR)/etc/systemd/system/getty.target.wants/serial-getty@$(BR2_TARGET_GENERIC_GETTY_PORT).service
> -endef
> -
>  define SYSTEMD_INSTALL_INIT_SYSTEMD
> -	$(SYSTEMD_INSTALL_SERVICE_TTY)
>  	$(SYSTEMD_INSTALL_SERVICE_NETWORK)
>  endef
>  
> -- 
> 1.7.10.4
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 1/6] dbus: enable systemd support
  2014-07-03 16:57 ` [Buildroot] [PATCH 1/6] dbus: enable systemd support Eric Le Bihan
@ 2014-07-07 16:31   ` Arnout Vandecappelle
  0 siblings, 0 replies; 21+ messages in thread
From: Arnout Vandecappelle @ 2014-07-07 16:31 UTC (permalink / raw)
  To: buildroot

On 03/07/14 18:57, Eric Le Bihan wrote:
> Enable systemd support if systemd is selected as init system (require
> systemd compatibility libraries).
> 
> Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
> ---
>  package/dbus/Config.in |    1 +
>  package/dbus/dbus.mk   |    9 +++++++--
>  2 files changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/package/dbus/Config.in b/package/dbus/Config.in
> index 653f748..7d49ce5 100644
> --- a/package/dbus/Config.in
> +++ b/package/dbus/Config.in
> @@ -4,6 +4,7 @@ config BR2_PACKAGE_DBUS
>  	# uses fork()
>  	depends on BR2_USE_MMU
>  	select BR2_PACKAGE_EXPAT
> +	select BR2_PACKAGE_SYSTEMD_COMPAT if BR2_INIT_SYSTEMD
>  	help
>  	  The D-Bus message bus system.
>  
> diff --git a/package/dbus/dbus.mk b/package/dbus/dbus.mk
> index 0c8fcf3..de699fc 100644
> --- a/package/dbus/dbus.mk
> +++ b/package/dbus/dbus.mk
> @@ -50,8 +50,13 @@ else
>  DBUS_CONF_OPT += --without-x
>  endif
>  
> -ifeq ($(BR2_PACKAGE_SYSTEMD),y)
> -DBUS_CONF_OPT += --with-systemdsystemunitdir=/lib/systemd/system
> +ifeq ($(BR2_INIT_SYSTEMD),y)
> +DBUS_CONF_OPT += \
> +	--enable-systemd \
> +	--with-systemdsystemunitdir=/lib/systemd/system

 Doesn't systemd.pc specify this correctly?


 Otherwise, looks good to me.

 Regards,
 Arnout

> +DBUS_DEPENDENCIES += systemd
> +else
> +DBUS_CONF_OPT += --disable-systemd
>  endif
>  
>  # fix rebuild (dbus makefile errors out if /var/lib/dbus is a symlink)
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 4/6] systemd: bump to version 214
  2014-07-03 16:57 ` [Buildroot] [PATCH 4/6] systemd: bump to version 214 Eric Le Bihan
@ 2014-07-07 16:34   ` Arnout Vandecappelle
  0 siblings, 0 replies; 21+ messages in thread
From: Arnout Vandecappelle @ 2014-07-07 16:34 UTC (permalink / raw)
  To: buildroot

On 03/07/14 18:57, Eric Le Bihan wrote:
> This patch bumps systemd to version 214.
> 
> Changes:
> 
> - add new users: systemd-bus-proxy, systemd-network and systemd-resolve.
> - remove gtk-doc patch, as it is no longer needed.
> - remove attr dependency.
> - enable nss-myhostname.
> 
> Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

 It would be good however if you could explain in the commit log why removing
attr and enabling myhostname is OK.


 Regards,
 Arnout

[snip]

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 5/6] systemd: add hook to fix /run, /var
  2014-07-03 16:57 ` [Buildroot] [PATCH 5/6] systemd: add hook to fix /run, /var Eric Le Bihan
@ 2014-07-07 16:43   ` Arnout Vandecappelle
  2014-07-08 13:05     ` Eric Le Bihan
  0 siblings, 1 reply; 21+ messages in thread
From: Arnout Vandecappelle @ 2014-07-07 16:43 UTC (permalink / raw)
  To: buildroot

On 03/07/14 18:57, Eric Le Bihan wrote:
> Add a post installation hook to fix target runtime data directories
> /var/{lock,run,tmp} and /run. Theses directories will be populated by
> systemd according to the configuration files from /usr/lib/tmpfiles.d.

 I don't understand why this is needed, or how this can work...

 Currently, /run, /var/run, /var/lock, and /var/tmp are all symlinks to /tmp
where a tmpfs is mounted. I would expect that this is OK for systemd.

 With this change, /run no longer links to /tmp, but it becomes a directory on
the rootfs. So unless systemd mounts a tmpfs on /run, this won't work at all.
And on my Debian sid system which uses systemd, I see that /run is mounted in
/init in the initramfs, so before systemd is started. We don't do that in
buildroot, so how can this work?


 Regards,
 Arnout


> 
> Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
> ---
>  package/systemd/systemd.mk |   13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
> index 25bea0b..2da65e6 100644
> --- a/package/systemd/systemd.mk
> +++ b/package/systemd/systemd.mk
> @@ -149,11 +149,24 @@ define SYSTEMD_SANITIZE_PATH_IN_UNITS
>  		-exec $(SED) 's,$(HOST_DIR),,g' {} \;
>  endef
>  
> +# /var/{lock,run,tmp} and /run will be populated at runtime by Systemd
> +# according to the configuration files from /usr/lib/tmpfiles.d/.
> +define SYSTEMD_FIX_RUNTIME_DIRS_HOOK
> +	$(RM) -rf $(TARGET_DIR)/var/lock
> +	$(RM) -rf $(TARGET_DIR)/var/run
> +	$(RM) -rf $(TARGET_DIR)/var/tmp
> +	ln -sf ../run $(TARGET_DIR)/var/run
> +	ln -sf ../run $(TARGET_DIR)/var/lock
> +	$(RM) -rf $(TARGET_DIR)/run
> +	mkdir -p $(TARGET_DIR)/run
> +endef
> +
>  SYSTEMD_POST_INSTALL_TARGET_HOOKS += \
>  	SYSTEMD_INSTALL_INIT_HOOK \
>  	SYSTEMD_INSTALL_TTY_HOOK \
>  	SYSTEMD_INSTALL_MACHINEID_HOOK \
>  	SYSTEMD_INSTALL_RESOLVCONF_HOOK \
> +	SYSTEMD_FIX_RUNTIME_DIRS_HOOK \
>  	SYSTEMD_SANITIZE_PATH_IN_UNITS
>  
>  define SYSTEMD_USERS
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 6/6] systemd: install timesync service if selected
  2014-07-03 16:57 ` [Buildroot] [PATCH 6/6] systemd: install timesync service if selected Eric Le Bihan
@ 2014-07-07 16:46   ` Arnout Vandecappelle
  2014-07-17 12:46     ` Eric Le Bihan
  0 siblings, 1 reply; 21+ messages in thread
From: Arnout Vandecappelle @ 2014-07-07 16:46 UTC (permalink / raw)
  To: buildroot

On 03/07/14 18:57, Eric Le Bihan wrote:
> If support for systemd-timesyncd is selected, install the associated
> service.
> 
> Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

> ---
>  package/systemd/systemd.mk |    6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
> index 2da65e6..3454e43 100644
> --- a/package/systemd/systemd.mk
> +++ b/package/systemd/systemd.mk
> @@ -112,6 +112,11 @@ endif
>  
>  ifeq ($(BR2_PACKAGE_SYSTEMD_TIMESYNCD),y)
>  SYSTEMD_CONF_OPT += --enable-timesyncd
> +define SYSTEMD_INSTALL_SERVICE_TIMESYNC
> +	mkdir -p $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants
> +	ln -sf ../../../../lib/systemd/system/systemd-timesyncd.service \
> +		$(TARGET_DIR)/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service
> +endef

 Not for this patch, but perhaps a cleaner way to do this would be to add

SYSTEMD_INSTALL_INIT_SYSTEMD += $(SYSTEMD_INSTALL_SERVICE_TIMESYNC)

instead having the list explicit below? Or wouldn't that work because there is
no separator between networkd and timesync?


 Regards,
 Arnout

>  else
>  SYSTEMD_CONF_OPT += --disable-timesyncd
>  endif
> @@ -180,6 +185,7 @@ endef
>  
>  define SYSTEMD_INSTALL_INIT_SYSTEMD
>  	$(SYSTEMD_INSTALL_SERVICE_NETWORK)
> +	$(SYSTEMD_INSTALL_SERVICE_TIMESYNC)
>  endef
>  
>  $(eval $(autotools-package))
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 5/6] systemd: add hook to fix /run, /var
  2014-07-07 16:43   ` Arnout Vandecappelle
@ 2014-07-08 13:05     ` Eric Le Bihan
  2014-07-08 21:55       ` Arnout Vandecappelle
  0 siblings, 1 reply; 21+ messages in thread
From: Eric Le Bihan @ 2014-07-08 13:05 UTC (permalink / raw)
  To: buildroot

Hi!
On Mon, Jul 07, 2014 at 06:43:52PM +0200, Arnout Vandecappelle wrote:
> On 03/07/14 18:57, Eric Le Bihan wrote:
> > Add a post installation hook to fix target runtime data directories
> > /var/{lock,run,tmp} and /run. Theses directories will be populated by
> > systemd according to the configuration files from /usr/lib/tmpfiles.d.
>
>  I don't understand why this is needed, or how this can work...
>
>  Currently, /run, /var/run, /var/lock, and /var/tmp are all symlinks to /tmp
> where a tmpfs is mounted. I would expect that this is OK for systemd.
>
>  With this change, /run no longer links to /tmp, but it becomes a directory on
> the rootfs. So unless systemd mounts a tmpfs on /run, this won't work at all.
> And on my Debian sid system which uses systemd, I see that /run is mounted in
> /init in the initramfs, so before systemd is started. We don't do that in
> buildroot, so how can this work?

When started, systemd will mount /run as tmpfs. Search for mount_table in
src/core/mount-setup.c in the source tree to see all the mount operations
performed.

Once running, systemd will start the service systemd-tmpfiles [1], which is in
charge of populating the volatile and temporary files and directories,
according to configuration files [2] located in /usr/lib/tmpfiles.d/.

The link from /run to /var/run is mentioned in var.conf:

  L /var/run - - - - ../run

/var/tmp is handled from tmp.conf:

  d /tmp 1777 root root 10d
  d /var/tmp 1777 root root 30d

/var/lock is handled from legacy.conf

  L /var/lock - - - - ../run/lock

And I've just noticed etc.conf will handle the creation of the symlink for
/etc/resolv.conf, so I can simplify my post installation hook :-)

  L /etc/resolv.conf - - - - ../run/systemd/resolve/resolv.conf

We can see that for /var/run and /var/tmp, the types 'd' and 'L' are used,
which means that if the directories/symlinks exist (created by the target
skeleton), systemd-tmpfiles will not touch them. /var/run not being a symlink
to /run made systemd-networkd not work properly on my system.

Best regards,
ELB

[1] http://www.freedesktop.org/software/systemd/man/systemd-tmpfiles.html
[2] http://www.freedesktop.org/software/systemd/man/tmpfiles.d.html

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 5/6] systemd: add hook to fix /run, /var
  2014-07-08 13:05     ` Eric Le Bihan
@ 2014-07-08 21:55       ` Arnout Vandecappelle
  2014-08-11 18:44         ` Mike Williams
  0 siblings, 1 reply; 21+ messages in thread
From: Arnout Vandecappelle @ 2014-07-08 21:55 UTC (permalink / raw)
  To: buildroot

On 08/07/14 15:05, Eric Le Bihan wrote:
> Hi!
> On Mon, Jul 07, 2014 at 06:43:52PM +0200, Arnout Vandecappelle wrote:
>> On 03/07/14 18:57, Eric Le Bihan wrote:
>>> Add a post installation hook to fix target runtime data directories
>>> /var/{lock,run,tmp} and /run. Theses directories will be populated by
>>> systemd according to the configuration files from /usr/lib/tmpfiles.d.
>>
>>  I don't understand why this is needed, or how this can work...
>>
>>  Currently, /run, /var/run, /var/lock, and /var/tmp are all symlinks to /tmp
>> where a tmpfs is mounted. I would expect that this is OK for systemd.
>>
>>  With this change, /run no longer links to /tmp, but it becomes a directory on
>> the rootfs. So unless systemd mounts a tmpfs on /run, this won't work at all.
>> And on my Debian sid system which uses systemd, I see that /run is mounted in
>> /init in the initramfs, so before systemd is started. We don't do that in
>> buildroot, so how can this work?
> 
> When started, systemd will mount /run as tmpfs. Search for mount_table in
> src/core/mount-setup.c in the source tree to see all the mount operations
> performed.

 It will not mount /run if it already is a mountpoint (after dereffing
symlinks). At least, that's what it looks like to me. So in our case, /run ->
/tmp and tmp being a tmpfs, it should be OK the way it is now.

 But indeed, making /run a real directory doesn't break anything, because
systemd will mount a tmpfs on it. However, do we really want two separate
tmpfses, one for /run and a different one for /tmp?


> Once running, systemd will start the service systemd-tmpfiles [1], which is in
> charge of populating the volatile and temporary files and directories,
> according to configuration files [2] located in /usr/lib/tmpfiles.d/.
> 
> The link from /run to /var/run is mentioned in var.conf:
> 
>   L /var/run - - - - ../run
> 
> /var/tmp is handled from tmp.conf:
> 
>   d /tmp 1777 root root 10d
>   d /var/tmp 1777 root root 30d
> 
> /var/lock is handled from legacy.conf
> 
>   L /var/lock - - - - ../run/lock
> 
> And I've just noticed etc.conf will handle the creation of the symlink for
> /etc/resolv.conf, so I can simplify my post installation hook :-)
> 
>   L /etc/resolv.conf - - - - ../run/systemd/resolve/resolv.conf

 Er, no: /etc may be readonly, so systemd-tmpfiles can't create the symlink.

> 
> We can see that for /var/run and /var/tmp, the types 'd' and 'L' are used,
> which means that if the directories/symlinks exist (created by the target
> skeleton), systemd-tmpfiles will not touch them. /var/run not being a symlink
> to /run made systemd-networkd not work properly on my system.

 OK, so the fact that /var/run is a symlink to /tmp and /run is also a symlink
to /tmp is not enough?


 Conclusions:

- This patch does seem to work after all.

- I personally don't like how it messes with the skeleton.

- I don't really like having two tmpfses (one for /tmp and a different one for
/run) either.

- Maybe it's better to make part of these changes in the default skeleton
instead. E.g., changing the symlink of /var/run to point to /run instead of /tmp
would be fine. Making /run a directory would not be OK, so if that is really
necessary for systemd, then a fixup like this is needed.



 Regards,
 Arnout


> 
> Best regards,
> ELB
> 
> [1] http://www.freedesktop.org/software/systemd/man/systemd-tmpfiles.html
> [2] http://www.freedesktop.org/software/systemd/man/tmpfiles.d.html
> 
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 0/6] systemd improvements
  2014-07-03 16:57 [Buildroot] [PATCH 0/6] systemd improvements Eric Le Bihan
                   ` (5 preceding siblings ...)
  2014-07-03 16:57 ` [Buildroot] [PATCH 6/6] systemd: install timesync service if selected Eric Le Bihan
@ 2014-07-15 21:39 ` Thomas Petazzoni
  6 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2014-07-15 21:39 UTC (permalink / raw)
  To: buildroot

Dear Eric Le Bihan,

On Thu,  3 Jul 2014 18:57:33 +0200, Eric Le Bihan wrote:

> Eric Le Bihan (6):
>   dbus: enable systemd support

This one applied.

>   systemd: revert getty service installation

This one waiting for your feedback on Yann's comment.

>   systemd: fix path for kmod in service files

This one applied.

>   systemd: bump to version 214

This one no longer applies, probably due to "systemd: revert getty
service installation" not being applied.

>   systemd: add hook to fix /run, /var

Still unresolved issues during the discussion with Arnout. I believe
the only good way moving forward is to improve the skeleton strategy.

>   systemd: install timesync service if selected

One remaining suggestion/question from Arnout.

Could you respin with the appropriate changes?

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 2/6] systemd: revert getty service installation
  2014-07-06 20:28   ` Yann E. MORIN
@ 2014-07-17 11:57     ` Eric Le Bihan
  2014-07-17 19:03       ` Thomas Petazzoni
  0 siblings, 1 reply; 21+ messages in thread
From: Eric Le Bihan @ 2014-07-17 11:57 UTC (permalink / raw)
  To: buildroot

Hi!
On Sun, Jul 06, 2014 at 10:28:18PM +0200, Yann E. MORIN wrote:
> Eric, All,
>
> On 2014-07-03 18:57 +0200, Eric Le Bihan spake thusly:
> > Revert getty fixup from post installation hook to service installation,
> > because service installation is performed before the installation of the
> > package itself. The fixup will fail trying to delete a file that has not
> > been installed yet.
> >
> > Fixes http://autobuild.buildroot.net/results/5b03174318d8a6dc3112053ff141b70a90869c20/
>
> Another, nore generic fix has just been committed:
>     http://git.buildroot.org/buildroot/commit/?id=ea0f52fc3fca5e5ba3ea5cd46033df2f53e9b5a5
>
> Would you care verify if this proposed patch is still valid now?

This generic fix solves my issue: I will remove this patch.

Best regards,
ELB

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 6/6] systemd: install timesync service if selected
  2014-07-07 16:46   ` Arnout Vandecappelle
@ 2014-07-17 12:46     ` Eric Le Bihan
  2014-07-21 13:20       ` Arnout Vandecappelle
  0 siblings, 1 reply; 21+ messages in thread
From: Eric Le Bihan @ 2014-07-17 12:46 UTC (permalink / raw)
  To: buildroot

On Mon, Jul 07, 2014 at 06:46:12PM +0200, Arnout Vandecappelle wrote:
> On 03/07/14 18:57, Eric Le Bihan wrote:
> > If support for systemd-timesyncd is selected, install the associated
> > service.
> >
> > Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
>
> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
>
> > ---
> >  package/systemd/systemd.mk |    6 ++++++
> >  1 file changed, 6 insertions(+)
> >
> > diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
> > index 2da65e6..3454e43 100644
> > --- a/package/systemd/systemd.mk
> > +++ b/package/systemd/systemd.mk
> > @@ -112,6 +112,11 @@ endif
> >
> >  ifeq ($(BR2_PACKAGE_SYSTEMD_TIMESYNCD),y)
> >  SYSTEMD_CONF_OPT += --enable-timesyncd
> > +define SYSTEMD_INSTALL_SERVICE_TIMESYNC
> > +	mkdir -p $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants
> > +	ln -sf ../../../../lib/systemd/system/systemd-timesyncd.service \
> > +		$(TARGET_DIR)/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service
> > +endef
>
>  Not for this patch, but perhaps a cleaner way to do this would be to add
>
> SYSTEMD_INSTALL_INIT_SYSTEMD += $(SYSTEMD_INSTALL_SERVICE_TIMESYNC)
>
> instead having the list explicit below? Or wouldn't that work because there is
> no separator between networkd and timesync?

Exactly! I tried the proposed solution and it does not work because of the
missing separator.

In order to have such a way of installing systemd unit files, we should do the
same as for the pre/post installation hooks.

The following change should be done in package/pkg-generic.mk:

   	$(if $(BR2_INIT_SYSTEMD),\
  -		$($(PKG)_INSTALL_INIT_SYSTEMD))
  +		$(foreach hook,$($(PKG)_INIT_SYSTEMD_HOOKS),$(call $(hook))$(sep)))

Then, we could use:

  SYSTEMD_INIT_SYSTEMD_HOOKS += SYSTEMD_INSTALL_SERVICE_TIMESYNC

This would require updating all the Makefiles of the packages installing
systemd unit files (and maybe do the same for SysV/Busybox to be coherent).

Best regards,
ELB

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 2/6] systemd: revert getty service installation
  2014-07-17 11:57     ` Eric Le Bihan
@ 2014-07-17 19:03       ` Thomas Petazzoni
  2014-07-18 13:10         ` Eric Le Bihan
  0 siblings, 1 reply; 21+ messages in thread
From: Thomas Petazzoni @ 2014-07-17 19:03 UTC (permalink / raw)
  To: buildroot

Dear Eric Le Bihan,

On Thu, 17 Jul 2014 13:57:58 +0200, Eric Le Bihan wrote:

> > Would you care verify if this proposed patch is still valid now?
> 
> This generic fix solves my issue: I will remove this patch.

Thanks. I've therefore marked http://patchwork.ozlabs.org/patch/366936/
as Rejected.

Could you take care of respining the other patches in your systemd
series, i.e:

  http://patchwork.ozlabs.org/patch/366938/ (good on the principle, but
  I think it doesn't apply properly on top of master, and there were
  minor comments from Arnout)

  http://patchwork.ozlabs.org/patch/366939/ (some real concerns on this
  patch, maybe it should be last in the series, or reworked by a
  complete revamp of the skeleton strategy)

  http://patchwork.ozlabs.org/patch/366940/ (looks good, with a
  suggestion from Arnout).

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 2/6] systemd: revert getty service installation
  2014-07-17 19:03       ` Thomas Petazzoni
@ 2014-07-18 13:10         ` Eric Le Bihan
  0 siblings, 0 replies; 21+ messages in thread
From: Eric Le Bihan @ 2014-07-18 13:10 UTC (permalink / raw)
  To: buildroot

Hi!
On Thu, Jul 17, 2014 at 09:03:30PM +0200, Thomas Petazzoni wrote:
> Dear Eric Le Bihan,
>
> On Thu, 17 Jul 2014 13:57:58 +0200, Eric Le Bihan wrote:
>
> > > Would you care verify if this proposed patch is still valid now?
> >
> > This generic fix solves my issue: I will remove this patch.
>
> Thanks. I've therefore marked http://patchwork.ozlabs.org/patch/366936/
> as Rejected.
>
> Could you take care of respining the other patches in your systemd
> series, i.e:
>
>   http://patchwork.ozlabs.org/patch/366938/ (good on the principle, but
>   I think it doesn't apply properly on top of master, and there were
>   minor comments from Arnout)

    A new version, with an updated commit log, is available:
    http://patchwork.ozlabs.org/patch/371527/.

>
>   http://patchwork.ozlabs.org/patch/366939/ (some real concerns on this
>   patch, maybe it should be last in the series, or reworked by a
>   complete revamp of the skeleton strategy)

    I dropped this patch, so I marked it as "rejected" in patchwork.
>
>   http://patchwork.ozlabs.org/patch/366940/ (looks good, with a
>   suggestion from Arnout).

    I resent it (without changes as the suggestion was not working) and marked
    the previous version as "superseeded":
    http://patchwork.ozlabs.org/patch/371528/.

Best regards,
ELB

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 6/6] systemd: install timesync service if selected
  2014-07-17 12:46     ` Eric Le Bihan
@ 2014-07-21 13:20       ` Arnout Vandecappelle
  0 siblings, 0 replies; 21+ messages in thread
From: Arnout Vandecappelle @ 2014-07-21 13:20 UTC (permalink / raw)
  To: buildroot

On 17/07/14 14:46, Eric Le Bihan wrote:
> On Mon, Jul 07, 2014 at 06:46:12PM +0200, Arnout Vandecappelle wrote:
>> On 03/07/14 18:57, Eric Le Bihan wrote:
>>> If support for systemd-timesyncd is selected, install the associated
>>> service.
>>>
>>> Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
>>
>> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
>>
>>> ---
>>>  package/systemd/systemd.mk |    6 ++++++
>>>  1 file changed, 6 insertions(+)
>>>
>>> diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
>>> index 2da65e6..3454e43 100644
>>> --- a/package/systemd/systemd.mk
>>> +++ b/package/systemd/systemd.mk
>>> @@ -112,6 +112,11 @@ endif
>>>
>>>  ifeq ($(BR2_PACKAGE_SYSTEMD_TIMESYNCD),y)
>>>  SYSTEMD_CONF_OPT += --enable-timesyncd
>>> +define SYSTEMD_INSTALL_SERVICE_TIMESYNC
>>> +	mkdir -p $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants
>>> +	ln -sf ../../../../lib/systemd/system/systemd-timesyncd.service \
>>> +		$(TARGET_DIR)/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service
>>> +endef
>>
>>  Not for this patch, but perhaps a cleaner way to do this would be to add
>>
>> SYSTEMD_INSTALL_INIT_SYSTEMD += $(SYSTEMD_INSTALL_SERVICE_TIMESYNC)
>>
>> instead having the list explicit below? Or wouldn't that work because there is
>> no separator between networkd and timesync?
> 
> Exactly! I tried the proposed solution and it does not work because of the
> missing separator.
> 
> In order to have such a way of installing systemd unit files, we should do the
> same as for the pre/post installation hooks.
> 
> The following change should be done in package/pkg-generic.mk:
> 
>    	$(if $(BR2_INIT_SYSTEMD),\
>   -		$($(PKG)_INSTALL_INIT_SYSTEMD))
>   +		$(foreach hook,$($(PKG)_INIT_SYSTEMD_HOOKS),$(call $(hook))$(sep)))
> 
> Then, we could use:
> 
>   SYSTEMD_INIT_SYSTEMD_HOOKS += SYSTEMD_INSTALL_SERVICE_TIMESYNC
> 
> This would require updating all the Makefiles of the packages installing
> systemd unit files (and maybe do the same for SysV/Busybox to be coherent).

 No, it's not worth it. There won't be more than one or two packages that need
to do more than one thing for the INSTALL_INIT things, so complicating all
packages in order for this to work is a bit too much.

 So your original patch (which you reposted) is fine.

 Regards,
 Arnout


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 5/6] systemd: add hook to fix /run, /var
  2014-07-08 21:55       ` Arnout Vandecappelle
@ 2014-08-11 18:44         ` Mike Williams
  0 siblings, 0 replies; 21+ messages in thread
From: Mike Williams @ 2014-08-11 18:44 UTC (permalink / raw)
  To: buildroot

All,

Using the latest buildroot from git with systemd 215, timesyncd fails
to start with status 226/NAMESPACE. It appears to be due to
PrivateTmp=yes in the service file, and /var/tmp being a symlink. See
other bug reports for details:
https://bugzilla.redhat.com/show_bug.cgi?id=835131

Manually applying the steps in this patch to the target tree fixes the
problem and allows timesyncd to start properly.

Thanks,
Mike


On Tue, Jul 8, 2014 at 5:55 PM, Arnout Vandecappelle <arnout@mind.be> wrote:
> On 08/07/14 15:05, Eric Le Bihan wrote:
>> Hi!
>> On Mon, Jul 07, 2014 at 06:43:52PM +0200, Arnout Vandecappelle wrote:
>>> On 03/07/14 18:57, Eric Le Bihan wrote:
>>>> Add a post installation hook to fix target runtime data directories
>>>> /var/{lock,run,tmp} and /run. Theses directories will be populated by
>>>> systemd according to the configuration files from /usr/lib/tmpfiles.d.
>>>
>>>  I don't understand why this is needed, or how this can work...
>>>
>>>  Currently, /run, /var/run, /var/lock, and /var/tmp are all symlinks to /tmp
>>> where a tmpfs is mounted. I would expect that this is OK for systemd.
>>>
>>>  With this change, /run no longer links to /tmp, but it becomes a directory on
>>> the rootfs. So unless systemd mounts a tmpfs on /run, this won't work at all.
>>> And on my Debian sid system which uses systemd, I see that /run is mounted in
>>> /init in the initramfs, so before systemd is started. We don't do that in
>>> buildroot, so how can this work?
>>
>> When started, systemd will mount /run as tmpfs. Search for mount_table in
>> src/core/mount-setup.c in the source tree to see all the mount operations
>> performed.
>
>  It will not mount /run if it already is a mountpoint (after dereffing
> symlinks). At least, that's what it looks like to me. So in our case, /run ->
> /tmp and tmp being a tmpfs, it should be OK the way it is now.
>
>  But indeed, making /run a real directory doesn't break anything, because
> systemd will mount a tmpfs on it. However, do we really want two separate
> tmpfses, one for /run and a different one for /tmp?
>
>
>> Once running, systemd will start the service systemd-tmpfiles [1], which is in
>> charge of populating the volatile and temporary files and directories,
>> according to configuration files [2] located in /usr/lib/tmpfiles.d/.
>>
>> The link from /run to /var/run is mentioned in var.conf:
>>
>>   L /var/run - - - - ../run
>>
>> /var/tmp is handled from tmp.conf:
>>
>>   d /tmp 1777 root root 10d
>>   d /var/tmp 1777 root root 30d
>>
>> /var/lock is handled from legacy.conf
>>
>>   L /var/lock - - - - ../run/lock
>>
>> And I've just noticed etc.conf will handle the creation of the symlink for
>> /etc/resolv.conf, so I can simplify my post installation hook :-)
>>
>>   L /etc/resolv.conf - - - - ../run/systemd/resolve/resolv.conf
>
>  Er, no: /etc may be readonly, so systemd-tmpfiles can't create the symlink.
>
>>
>> We can see that for /var/run and /var/tmp, the types 'd' and 'L' are used,
>> which means that if the directories/symlinks exist (created by the target
>> skeleton), systemd-tmpfiles will not touch them. /var/run not being a symlink
>> to /run made systemd-networkd not work properly on my system.
>
>  OK, so the fact that /var/run is a symlink to /tmp and /run is also a symlink
> to /tmp is not enough?
>
>
>  Conclusions:
>
> - This patch does seem to work after all.
>
> - I personally don't like how it messes with the skeleton.
>
> - I don't really like having two tmpfses (one for /tmp and a different one for
> /run) either.
>
> - Maybe it's better to make part of these changes in the default skeleton
> instead. E.g., changing the symlink of /var/run to point to /run instead of /tmp
> would be fine. Making /run a directory would not be OK, so if that is really
> necessary for systemd, then a fixup like this is needed.
>
>
>
>  Regards,
>  Arnout
>
>
>>
>> Best regards,
>> ELB
>>
>> [1] http://www.freedesktop.org/software/systemd/man/systemd-tmpfiles.html
>> [2] http://www.freedesktop.org/software/systemd/man/tmpfiles.d.html
>>
>>
>
>
> --
> Arnout Vandecappelle                          arnout at mind be
> Senior Embedded Software Architect            +32-16-286500
> Essensium/Mind                                http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
> GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2014-08-11 18:44 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-03 16:57 [Buildroot] [PATCH 0/6] systemd improvements Eric Le Bihan
2014-07-03 16:57 ` [Buildroot] [PATCH 1/6] dbus: enable systemd support Eric Le Bihan
2014-07-07 16:31   ` Arnout Vandecappelle
2014-07-03 16:57 ` [Buildroot] [PATCH 2/6] systemd: revert getty service installation Eric Le Bihan
2014-07-06 20:28   ` Yann E. MORIN
2014-07-17 11:57     ` Eric Le Bihan
2014-07-17 19:03       ` Thomas Petazzoni
2014-07-18 13:10         ` Eric Le Bihan
2014-07-03 16:57 ` [Buildroot] [PATCH 3/6] systemd: fix path for kmod in service files Eric Le Bihan
2014-07-03 16:57 ` [Buildroot] [PATCH 4/6] systemd: bump to version 214 Eric Le Bihan
2014-07-07 16:34   ` Arnout Vandecappelle
2014-07-03 16:57 ` [Buildroot] [PATCH 5/6] systemd: add hook to fix /run, /var Eric Le Bihan
2014-07-07 16:43   ` Arnout Vandecappelle
2014-07-08 13:05     ` Eric Le Bihan
2014-07-08 21:55       ` Arnout Vandecappelle
2014-08-11 18:44         ` Mike Williams
2014-07-03 16:57 ` [Buildroot] [PATCH 6/6] systemd: install timesync service if selected Eric Le Bihan
2014-07-07 16:46   ` Arnout Vandecappelle
2014-07-17 12:46     ` Eric Le Bihan
2014-07-21 13:20       ` Arnout Vandecappelle
2014-07-15 21:39 ` [Buildroot] [PATCH 0/6] systemd improvements Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.