Skip to contentSkip to conversation

package/systemd: unify journal remote options

PATCH New Michael Nosthoff 2 participants 4 messages Oct 14, 2020

lore
Share & tools
lore
#0 lore raw

cover package/systemd: unify journal remote options

this patch is the result of the discussion at [0] and fixes #12301.

I moved the libqrencode dependency in the first patch for two reasons:
- it untangles the if-else construct for the remote part
- in systemd 247 homectl will also be using libqrencode for recovery-keys [1]

In the second patch I deprecated the systemd-journal-gatewayd options as it is now part of the systemd-journal-remote option. Also since the patch mentioned in the discussion you already needed to set the latter to get gatewayd built.

[0] http://lists.busybox.net/pipermail/buildroot/2020-October/294477.html
[1] https://github.com/systemd/systemd/blob/master/src/home/homectl-recovery-key.c#L3

Michael Nosthoff (2):
package/systemd: link libqrencode independent of remote package/systemd: group all journal-remote tools

 Config.in.legacy           |  7 +++++++
 package/systemd/Config.in  | 28 ++++++++++++----------------
 package/systemd/systemd.mk | 22 +++++++++-------------
 3 files changed, 28 insertions(+), 29 deletions(-)
Signature · 1 line
2.25.1
#1 lore raw

PATCH 1/2 package/systemd: link libqrencode independent of remote

systemds libqrencode support is independent from journal-gatewayd. In v247 it will additionally be used in homectl for recovery key generation.

---
 package/systemd/systemd.mk | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)
package/systemd/systemd.mk +8 -7
index 30e28adf95..b684f538a8 100644
@@ -243,14 +243,8 @@ endif
 ifeq ($(BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY),y)
 SYSTEMD_DEPENDENCIES += libmicrohttpd
 SYSTEMD_CONF_OPTS += -Dmicrohttpd=true
-ifeq ($(BR2_PACKAGE_LIBQRENCODE),y)
-SYSTEMD_CONF_OPTS += -Dqrencode=true
-SYSTEMD_DEPENDENCIES += libqrencode
 else
-SYSTEMD_CONF_OPTS += -Dqrencode=false
-endif
-else
-SYSTEMD_CONF_OPTS += -Dmicrohttpd=false -Dqrencode=false
+SYSTEMD_CONF_OPTS += -Dmicrohttpd=false
 endif
 
 ifeq ($(BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE),y)
@@ -260,6 +254,13 @@ else
 SYSTEMD_CONF_OPTS += -Dremote=false
 endif
 
+ifeq ($(BR2_PACKAGE_LIBQRENCODE),y)
+SYSTEMD_DEPENDENCIES += libqrencode
+SYSTEMD_CONF_OPTS += -Dqrencode=true
+else
+SYSTEMD_CONF_OPTS += -Dqrencode=false
+endif
+
 ifeq ($(BR2_PACKAGE_LIBSELINUX),y)
 SYSTEMD_DEPENDENCIES += libselinux
 SYSTEMD_CONF_OPTS += -Dselinux=true
Signature · 1 line
2.25.1
#2 lore raw

PATCH 1/2 package/systemd: link libqrencode independent of remote

Quoted 8 lines · On Wed, 14 Oct 2020 17:12:49 +0200 Michael Nosthoff via buildroot…

systemds libqrencode support is independent from journal-gatewayd. In v247 it will additionally be used in homectl for recovery key generation.

---
 package/systemd/systemd.mk | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#3 lore raw

PATCH 2/2 package/systemd: group all journal-remote tools

In reply to Michael Nosthoff

The -Dremote=true flag enables three tools. systemd-journal-gatewayd, systemd-journal-remote and systemd-journal-upload.

It is not possible with simple means to install them seperately. So use the systemd-journal-remote option do enable or disable them all together.

Drop systemd-journal-gatewayd option and add it to legacy.

Fixes #12301
---
 Config.in.legacy           |  7 +++++++
 package/systemd/Config.in  | 28 ++++++++++++----------------
 package/systemd/systemd.mk | 13 ++++---------
 3 files changed, 23 insertions(+), 25 deletions(-)
Config.in.legacy +7 -0
index 95c2fb33b3..f6c3c626e8 100644
@@ -146,6 +146,13 @@ endif
 
 comment "Legacy options removed in 2020.11"
 
+config BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY
+	bool "systemd-journal-gatewayd now in systemd-journal-remote"
+	select BR2_PACKAGE_LIBMICROHTTPD
+	help
+	  all system journal remote programs are now
+	  grouped in systemd-journal-remote
+
 config BR2_TARGET_UBOOT_BOOT_SCRIPT
 	bool "u-boot script generation was moved"
 	select BR2_LEGACY
package/systemd/Config.in +12 -16
index 7956370b83..ec34478e3d 100644
@@ -141,29 +141,25 @@ config BR2_PACKAGE_SYSTEMD_BOOT_EFI_ARCH
 	default "x64"   if BR2_x86_64
 	depends on BR2_PACKAGE_SYSTEMD_BOOT
 
-config BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY
-	bool "HTTP server for journal events"
+config BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE
+	bool "enable journal remote tools"
+	select BR2_PACKAGE_LIBCURL
 	select BR2_PACKAGE_LIBMICROHTTPD
 	help
-	  systemd-journal-gatewayd serves journal events over the
-	  network. Clients must connect using HTTP. The server
-	  listens on port 19531 by default.
+	  journal remote functionality adds three tools:
 
-	  http://www.freedesktop.org/software/systemd/man/systemd-journal-gatewayd.service.html
+	  systemd-journal-gatewayd serves journal events over the
+	  network.
 
-config BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE
-	bool "enable systemd-journal-remote"
-	depends on BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY
-	select BR2_PACKAGE_LIBCURL
-	help
 	  systemd-journal-remote is a command to receive serialized
-	  journal events and store them to journal files. Input
-	  streams are in the Journal Export Format[1], i.e. like the
-	  output from journalctl --output=export. For transport over
-	  the network, this serialized stream is usually carried over
-	  an HTTPS connection.
+	  journal events and store them to journal files.
+
+	  systemd-journal-upload will upload journal entries to the
+	  URL specified with --url=.
 
+	  https://www.freedesktop.org/software/systemd/man/systemd-journal-gatewayd.service.html
 	  https://www.freedesktop.org/software/systemd/man/systemd-journal-remote.service.html
+	  https://www.freedesktop.org/software/systemd/man/systemd-journal-upload.html
 
 config BR2_PACKAGE_SYSTEMD_BACKLIGHT
 	bool "enable backlight support"
package/systemd/systemd.mk +4 -9
index b684f538a8..6f04283bdc 100644
@@ -240,18 +240,13 @@ else
 SYSTEMD_CONF_OPTS += -Danalyze=false
 endif
 
-ifeq ($(BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY),y)
-SYSTEMD_DEPENDENCIES += libmicrohttpd
-SYSTEMD_CONF_OPTS += -Dmicrohttpd=true
-else
-SYSTEMD_CONF_OPTS += -Dmicrohttpd=false
-endif
-
 ifeq ($(BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE),y)
-SYSTEMD_CONF_OPTS += -Dremote=true
+# remote also depends on libcurl, this is already added above.
+SYSTEMD_DEPENDENCIES += libmicrohttpd
+SYSTEMD_CONF_OPTS += -Dremote=true -Dmicrohttpd=true
 SYSTEMD_REMOTE_USER = systemd-journal-remote -1 systemd-journal-remote -1 * - - - systemd Journal Remote
 else
-SYSTEMD_CONF_OPTS += -Dremote=false
+SYSTEMD_CONF_OPTS += -Dremote=false -Dmicrohttpd=false
 endif
 
 ifeq ($(BR2_PACKAGE_LIBQRENCODE),y)
Signature · 1 line
2.25.1