Skip to contentSkip to conversation

systemd: add option to enable kdbus support

PATCH New Ryan Barnett 4 participants 7 messages Apr 5, 2015 – Nov 30, 2015

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/2 systemd: add option to enable kdbus support

In the future when the kernel offically supports kdbus, this option should automatically enable the kernel kdbus config option(s).

---
 package/systemd/Config.in  | 5 +++++
 package/systemd/systemd.mk | 6 ++++++
 2 files changed, 11 insertions(+)
package/systemd/Config.in +5 -0
index d00ac9d..0543b76 100644
@@ -71,6 +71,11 @@ config BR2_PACKAGE_SYSTEMD_ALL_EXTRAS
 	  Enable extra features for Systemd: journal compression and
 	  signing.
 
+config BR2_PACKAGE_SYSTEMD_KDBUS
+	bool "enable kdbus support"
+	help
+	  Enable kdbus support for Systemd.
+
 config BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY
 	bool "HTTP server for journal events"
 	select BR2_PACKAGE_LIBMICROHTTPD
package/systemd/systemd.mk +6 -0
index 98bda02..81fe434 100644
@@ -77,6 +77,12 @@ else
 SYSTEMD_CONF_OPTS += --disable-seccomp
 endif
 
+ifeq ($(BR2_PACKAGE_SYSTEMD_KDBUS),y)
+SYSTEMD_CONF_OPTS += --enable-kdbus
+else
+SYSTEMD_CONF_OPTS += --disable-kdbus
+endif
+
 ifeq ($(BR2_PACKAGE_SYSTEMD_ALL_EXTRAS),y)
 SYSTEMD_DEPENDENCIES += \
 	xz 		\
Signature · 1 line
1.9.1
#1 lore raw

PATCH v2 2/2 miraclecast: new package

CC Baruch Siach <[email protected]>
CC Yann E. MORIN <[email protected]>

---
Changes v1 -> v2:
- Added a SYSTEMD_KDBUS option (suggested by Baruch)
- Fixed select and depends (suggested by Yann)
- Add dependancy on host-pkgconf (suggested by Yann)
- Installed dbus configuration file

To Do:
- Need to actually test the package on real hardware

---
 package/Config.in                  |  1 +
 package/miraclecast/Config.in      | 23 +++++++++++++++++++++++
 package/miraclecast/miraclecast.mk | 23 +++++++++++++++++++++++
 3 files changed, 47 insertions(+)
 create mode 100644 package/miraclecast/Config.in
 create mode 100644 package/miraclecast/miraclecast.mk
package/Config.in +1 -0
index de8e856..787137c 100644
@@ -20,6 +20,7 @@ menu "Audio and video applications"
 	source "package/lame/Config.in"
 	source "package/libvpx/Config.in"
 	source "package/madplay/Config.in"
+	source "package/miraclecast/Config.in"
 	source "package/mjpegtools/Config.in"
 	source "package/modplugtools/Config.in"
 	source "package/mpd/Config.in"
package/miraclecast/Config.in new file +23 -0
new file mode 100644
index 0000000..4c6a8aa
@@ -0,0 +1,23 @@
+config BR2_PACKAGE_MIRACLECAST
+	bool "miraclecast"
+	depends on BR2_PACKAGE_SYSTEMD
+	depends on BR2_TOOLCHAIN_USES_GLIBC
+	depends on BR2_USE_WCHAR # glib2
+	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
+	depends on BR2_USE_MMU # glib2
+	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_GSTREAMER1
+	select BR2_PACKAGE_READLINE
+	select BR2_PACKAGE_SYSTEMD_KDBUS
+	help
+	  The MiracleCast project provides software to connect external
+	  monitors to your system via Wifi. It is compatible to the
+	  Wifi-Display specification also known as Miracast. MiracleCast
+	  implements the Display-Source as well as Display-Sink side.
+
+	  https://github.com/albfan/miraclecast
+
+comment "miraclecast needs systemd and a glibc toolchain w/ threads and wchar"
+	depends on BR2_USE_MMU
+	depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_USE_WCHAR \
+		|| !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_SYSTEMD
package/miraclecast/miraclecast.mk new file +23 -0
new file mode 100644
index 0000000..b35a517
@@ -0,0 +1,23 @@
+################################################################################
+#
+# miraclecast
+#
+################################################################################
+
+MIRACLECAST_VERSION = 8b61f733da124ccbfd1b85e188581fad1c41c1e1
+MIRACLECAST_SITE = $(call github,albfan,miraclecast,$(MIRACLECAST_VERSION))
+MIRACLECAST_LICENSE = LGPLv2.1+ GPLv2 (gdhcp) GPLv2.1 (htable)
+MIRACLECAST_LICENSE_FILES = COPYING LICENSE_gdhcp LICENSE_htable LICENSE_lgpl
+MIRACLECAST_DEPENDENCIES = host-pkgconf systemd gstreamer1 \
+	readline libglib2
+# Straight out the repository, no ./configure
+MIRACLECAST_AUTORECONF = YES
+
+define MIRACLECAST_INSTALL_DBUS_POLICY
+	$(INSTALL) -m 0644 -D \
+		$(@D)/res/org.freedesktop.miracle.conf \
+		$(TARGET_DIR)/etc/dbus-1/system.d/org.freedesktop.miracle.conf
+endef
+MIRACLECAST_POST_INSTALL_TARGET_HOOKS += MIRACLECAST_INSTALL_DBUS_POLICY
+
+$(eval $(autotools-package))
Signature · 1 line
1.9.1
#2 lore raw

PATCH v2 2/2 miraclecast: new package

Dear Ryan Barnett,

Quoted 3 lines · Ryan Barnett
CC Baruch Siach <[email protected]>
CC Yann E. MORIN <[email protected]>

Guess what? A miracle happened for miraclecast: it was just merged in Buildroot's next branch!

I just did a few minor fixups:

[Thomas:
- add hash file
- fix license information: use comma as a separator in <pkg>_LICENSE, and htable is under LGPLv2.1+ and not GPLv2.1+ (which doesn't exist)]

Thanks, and sorry for the long wait. Feel free to send a follow-up patch bumping miraclecast if there's a more recent upstream version available.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#3 lore raw

PATCH v2 1/2 systemd: add option to enable kdbus support

In reply to Ryan Barnett

Hi Ryan,

Quoted 2 lines · Ryan Barnett

In the future when the kernel offically supports kdbus, this option should automatically enable the kernel kdbus config option(s).

So there is no need to fiddle with kernel version dependency for --enable-kdbus?

[...]

package/systemd/systemd.mk else · line 84

Quoted 5 lines
package/systemd/systemd.mk +5 -0
+ifeq ($(BR2_PACKAGE_SYSTEMD_KDBUS),y)
+SYSTEMD_CONF_OPTS += --enable-kdbus
+else
+SYSTEMD_CONF_OPTS += --disable-kdbus
+endif

Is there any reason not to enable kdbus when the kernel supports that? If not, I'd suggest to add --enable-kdbus unconditionally, and remove BR2_PACKAGE_SYSTEMD_KDBUS.

baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
#4 lore raw

PATCH v2 1/2 systemd: add option to enable kdbus support

Baruch,

Quoted 8 lines · Baruch Siach

Hi Ryan,

Quoted 2 lines · Ryan Barnett

In the future when the kernel offically supports kdbus, this option should automatically enable the kernel kdbus config option(s).

So there is no need to fiddle with kernel version dependency for --enable-kdbus?

To be honest, this is the first time I ever used systemd with buildroot and I really don't know how kdbus integrates with it. The real reason that the kdbus support is needed for miraclecast is for it to install headers that it depends on "systemd/sd-events.h". I've build the raspberry pi kernel and a vanilla 3.19 (QEMU x86) kernel with systemd with the --enable-kdbus and it compiled and installed the required headers I needed. So it appears that you can enable kdbus without the kernel side support. There also isn't anything (that I can find) in the systemd documentation saying that the kernel side kdbus support is required.

If anyone can help clarify this I would appreciate since I am by no means knowledge in this area.

Quoted 9 lines

package/systemd/systemd.mk else · line 84

Quoted 5 lines
package/systemd/systemd.mk +5 -0
+ifeq ($(BR2_PACKAGE_SYSTEMD_KDBUS),y)
+SYSTEMD_CONF_OPTS += --enable-kdbus
+else
+SYSTEMD_CONF_OPTS += --disable-kdbus
+endif

Is there any reason not to enable kdbus when the kernel supports that? If not, I'd suggest to add --enable-kdbus unconditionally, and remove BR2_PACKAGE_SYSTEMD_KDBUS.

In the future, I would agree with this. However, as I stated above, it appears that systemd can be compiled with kdbus support without having the kernel side feature enabled. With kdbus in systemd being able to enabled with the kernel kdbus support, I would be in favor of keeping this BR2_PACKAGE_SYSTEMD_KDBUS option.

Thanks,
-Ryan

#5 lore raw

PATCH v2 1/2 systemd: add option to enable kdbus support

All,

Quoted 9 lines
Quoted 3 lines

Is there any reason not to enable kdbus when the kernel supports that? If not, I'd suggest to add --enable-kdbus unconditionally, and remove BR2_PACKAGE_SYSTEMD_KDBUS.

In the future, I would agree with this. However, as I stated above, it appears that systemd can be compiled with kdbus support without having the kernel side feature enabled. With kdbus in systemd being able to enabled with the kernel kdbus support, I would be in favor of keeping this BR2_PACKAGE_SYSTEMD_KDBUS option.

I'm actually using this patch as is, and it works for me. I also do not have kdbus enabled in the kernel, and am only using this support to get additional libraries provided by systemd for

Thanks,
Mike

#6 lore raw

PATCH v2 1/2 systemd: add option to enable kdbus support

In reply to Ryan Barnett

Dear Ryan Barnett,

Quoted 8 lines · Ryan Barnett

In the future when the kernel offically supports kdbus, this option should automatically enable the kernel kdbus config option(s).

---
 package/systemd/Config.in  | 5 +++++
 package/systemd/systemd.mk | 6 ++++++
 2 files changed, 11 insertions(+)

Applied, thanks.

Thomas

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