Skip to contentSkip to conversation

Fix a number of non-machine pkg hash change issues

PATCH In review Mark Hatle 6 participants 18 messages Oct 17, 2018 – Oct 25, 2018

lore
Share & tools
lore

Mark Hatle

author
#0 lore raw

cover Fix a number of non-machine pkg hash change issues

While working on a system with multiple BSPs, but a single distro configuration, I struggled with an issue of PR numbers increasing quickly and different behavior from boot to boot.

The systemd one, it looks like there are two alternative solutions. I choose the one that was similar to a connman fix. Add a machine specific configuration recipe. The alternative would have been to adjust the test cases to pass the argument for the longer timeout via the kernel command line. I was worried that this could end up being a requirement for more then just test cases.

Note in this patch, I also moved the 'machine-id' file to the config stuff, with the note it appeared to me this made the most sense as someone may end up defining some specific semantics to that file in some configurations.

The remaining changes made sense in my configuration, but I'm not entirely sure they are the right solution. The other alternative I toyed with was to declare the package to be machine specific -only- for QEMU BSPs. But I'm not sure this really would have solved my PR number/hash problem.

Mark Hatle (4):
systemd: Remove items that made this machine (qemu) specific
mesa: Remove machine specific append
weston: Remove machine specific append
gstreamer: Remove machine specific append

 meta/recipes-core/systemd/systemd-conf.bb     | 51 +++++++++++++++++++
 ...ange-the-default-device-timeout-to-2.patch | 35 -------------
 meta/recipes-core/systemd/systemd_239.bb      | 28 ++++------
 meta/recipes-graphics/mesa/mesa.inc           |  4 +-
 meta/recipes-graphics/wayland/weston_5.0.0.bb |  4 +-
 .../gstreamer/gstreamer1.0_1.14.2.bb          |  2 -
 6 files changed, 64 insertions(+), 60 deletions(-)
 create mode 100644 meta/recipes-core/systemd/systemd-conf.bb
 delete mode 100644 meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch
Signature · 1 line
2.18.0
author
#1 lore raw

PATCH 1/4 systemd: Remove items that made this machine (qemu) specific

Create a new systemd-conf recipe to contain the specific system/machine configuration items. This new package is now machine specific.

Without doing this trying to create a single system with multiple BSPs, one of which was qemu based, would result in the systemd -and- everything that dependend upon systemd to have their hash changed. The hash changing means lots of rebuilds, but worse if it's a package based system each different machine ends with a new PR value and a newly generated package.

---
 meta/recipes-core/systemd/systemd-conf.bb     | 51 +++++++++++++++++++
 ...ange-the-default-device-timeout-to-2.patch | 35 -------------
 meta/recipes-core/systemd/systemd_239.bb      | 28 ++++------
 3 files changed, 60 insertions(+), 54 deletions(-)
 create mode 100644 meta/recipes-core/systemd/systemd-conf.bb
 delete mode 100644 meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch
meta/recipes-core/systemd/systemd-conf.bb new file +51 -0
new file mode 100644
index 0000000000..d39742b3a8
@@ -0,0 +1,51 @@
+require systemd.inc
+
+SUMMARY = "Systemd system configuration"
+DESCRIPTION = "Systemd may require slightly different configuration for \
+different machines.  For example, qemu machines require a longer \
+DefaultTimeoutStartSec setting."
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+CONFFILES_${PN} = "${sysconfdir}/machine-id \
+${sysconfdir}/systemd/coredump.conf \
+${sysconfdir}/systemd/journald.conf \
+${sysconfdir}/systemd/logind.conf \
+${sysconfdir}/systemd/system.conf \
+${sysconfdir}/systemd/user.conf"
+
+FILES_${PN} = "${sysconfdir}/machine-id ${sysconfdir}/systemd"
+
+do_compile[noexec] = '1'
+
+do_install() {
+	install -d ${D}/${sysconfdir}/systemd
+
+	# Create machine-id
+	# 20:12 < mezcalero> koen: you have three options: a) run systemd-machine-id-setup at install time, b) have / read-only and an empty file there (for stateless) and c) boot with / writable
+	touch ${D}${sysconfdir}/machine-id
+
+	install -m 0644 ${S}/src/coredump/coredump.conf ${D}${sysconfdir}/systemd/coredump.conf
+
+	install -m 0644 ${S}/src/journal/journald.conf ${D}${sysconfdir}/systemd/journald.conf
+	# Enable journal to forward message to syslog daemon
+	sed -i -e 's/.*ForwardToSyslog.*/ForwardToSyslog=yes/' ${D}${sysconfdir}/systemd/journald.conf
+	# Set the maximium size of runtime journal to 64M as default
+	sed -i -e 's/.*RuntimeMaxUse.*/RuntimeMaxUse=64M/' ${D}${sysconfdir}/systemd/journald.conf
+
+	install -m 0644 ${S}/src/login/logind.conf.in ${D}${sysconfdir}/systemd/logind.conf
+	# Set KILL_USER_PROCESSES to yes
+	sed -i -e 's/@KILL_USER_PROCESSES@/yes/' ${D}${sysconfdir}/systemd/logind.conf
+
+	install -m 0644 ${S}/src/core/system.conf.in ${D}${sysconfdir}/systemd/system.conf
+	# Set MEMORY_ACCOUNTING_DEFAULT to yes
+	sed -i -e 's/@MEMORY_ACCOUNTING_DEFAULT@/yes/' ${D}${sysconfdir}/systemd/system.conf
+
+	install -m 0644 ${S}/src/core/user.conf ${D}${sysconfdir}/systemd/user.conf
+}
+
+# Based on change from YP bug 8141, OE commit 5196d7bacaef1076c361adaa2867be31759c1b52
+do_install_append_qemuall() {
+	# Change DefaultTimeoutStartSec from 90s to 240s
+        echo "DefaultTimeoutStartSec = 240s"
+}
meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch deleted +0 -35
deleted file mode 100644
index fd7bf3fcf6..0000000000
@@ -1,35 +0,0 @@
-From 2925c0c3b6ce4056622b86c1c61ee14add430790 Mon Sep 17 00:00:00 2001
-From: Chen Qi <[email protected]>
-Date: Thu, 28 Jun 2018 10:56:29 +0800
-Subject: [PATCH] core/device.c: Change the default device timeout to 240 sec.
- MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8
- Content-Transfer-Encoding: 8bit
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Inappropriate [Specific case QEMU/AB]
-
-Signed-off-by: Aníbal Limón <[email protected]>
-Signed-off-by: Khem Raj <[email protected]>
-Signed-off-by: Chen Qi <[email protected]>
----
- src/core/device.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/core/device.c b/src/core/device.c
-index a2d00a0fb..f26e55ebb 100644
---- a/src/core/device.c
-+++ b/src/core/device.c
-@@ -95,7 +95,7 @@ static void device_init(Unit *u) {
-          * indefinitely for plugged in devices, something which cannot
-          * happen for the other units since their operations time out
-          * anyway. */
--        u->job_running_timeout = u->manager->default_timeout_start_usec;
-+        u->job_running_timeout = (240 * USEC_PER_SEC);
- 
-         u->ignore_on_isolate = true;
- 
--- 
-2.11.0
-
meta/recipes-core/systemd/systemd_239.bb +9 -19
index 7ed932141d..bc16407e09 100644
@@ -31,7 +31,6 @@ SRC_URI += "file://touchscreen.rules \
            file://0022-build-sys-Detect-whether-struct-statx-is-defined-in-.patch \
            file://0023-resolvconf-fixes-for-the-compatibility-interface.patch \
            "
-SRC_URI_append_qemuall = " file://0001-core-device.c-Change-the-default-device-timeout-to-2.patch"
 
 # patches made for musl are only applied on TCLIBC is musl
 SRC_URI += "${SRC_URI_MUSL}"
@@ -218,10 +217,6 @@ do_install() {
 	[ ! -e ${D}/init ] && ln -s ${rootlibexecdir}/systemd/systemd ${D}/init
 	[ ! -e ${D}/${base_sbindir}/udevd ] && ln -s ${rootlibexecdir}/systemd/systemd-udevd ${D}/${base_sbindir}/udevd
 
-	# Create machine-id
-	# 20:12 < mezcalero> koen: you have three options: a) run systemd-machine-id-setup at install time, b) have / read-only and an empty file there (for stateless) and c) boot with / writable
-	touch ${D}${sysconfdir}/machine-id
-
 	install -d ${D}${sysconfdir}/udev/rules.d/
 	install -d ${D}${sysconfdir}/tmpfiles.d
 	install -m 0644 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
@@ -256,11 +251,6 @@ do_install() {
 		ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/rescue.target.wants/systemd-update-utmp-runlevel.service
 	fi
 
-	# Enable journal to forward message to syslog daemon
-	sed -i -e 's/.*ForwardToSyslog.*/ForwardToSyslog=yes/' ${D}${sysconfdir}/systemd/journald.conf
-	# Set the maximium size of runtime journal to 64M as default
-	sed -i -e 's/.*RuntimeMaxUse.*/RuntimeMaxUse=64M/' ${D}${sysconfdir}/systemd/journald.conf
-
 	# this file is needed to exist if networkd is disabled but timesyncd is still in use since timesyncd checks it
 	# for existence else it fails
 	if [ -s ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf ]; then
@@ -284,6 +274,14 @@ do_install() {
 			chown polkitd:root ${D}${datadir}/polkit-1/rules.d
 		fi
 	fi
+
+	# conf files are handled by systemd-conf
+	rm -f ${D}${sysconfdir}/machine-id
+	rm -f ${D}${sysconfdir}/systemd/coredump.conf
+	rm -f ${D}${sysconfdir}/systemd/journald.conf
+	rm -f ${D}${sysconfdir}/systemd/logind.conf
+	rm -f ${D}${sysconfdir}/systemd/system.conf
+	rm -f ${D}${sysconfdir}/systemd/user.conf
 }
 
 
@@ -433,13 +431,6 @@ FILES_${PN}-extra-utils = "\
                         ${rootlibexecdir}/systemd/systemd-cgroups-agent \
 "
 
-CONFFILES_${PN} = "${sysconfdir}/machine-id \
-                ${sysconfdir}/systemd/coredump.conf \
-                ${sysconfdir}/systemd/journald.conf \
-                ${sysconfdir}/systemd/logind.conf \
-                ${sysconfdir}/systemd/system.conf \
-                ${sysconfdir}/systemd/user.conf"
-
 FILES_${PN} = " ${base_bindir}/* \
                 ${base_sbindir}/shutdown \
                 ${base_sbindir}/halt \
@@ -455,7 +446,6 @@ FILES_${PN} = " ${base_bindir}/* \
                 ${datadir}/${BPN} \
                 ${datadir}/factory \
                 ${sysconfdir}/dbus-1/ \
-                ${sysconfdir}/machine-id \
                 ${sysconfdir}/modules-load.d/ \
                 ${sysconfdir}/pam.d/ \
                 ${sysconfdir}/sysctl.d/ \
@@ -504,7 +494,7 @@ FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ $
 
 RDEPENDS_${PN} += "kmod dbus util-linux-mount udev (= ${EXTENDPKGV}) util-linux-agetty util-linux-fsck"
 RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', '', 'systemd-serialgetty', d)}"
-RDEPENDS_${PN} += "volatile-binds update-rc.d"
+RDEPENDS_${PN} += "volatile-binds update-rc.d systemd-conf"
 
 RRECOMMENDS_${PN} += "systemd-extra-utils \
                       systemd-compat-units udev-hwdb \
Signature · 1 line
2.18.0
#2 lore raw

Re: [PATCH 1/4] systemd: Remove items that made this machine (qemu) specific

Quoted 65 lines · Mark Hatle

Create a new systemd-conf recipe to contain the specific system/machine configuration items. This new package is now machine specific.

Without doing this trying to create a single system with multiple BSPs, one of which was qemu based, would result in the systemd -and- everything that dependend upon systemd to have their hash changed. The hash changing means lots of rebuilds, but worse if it's a package based system each different machine ends with a new PR value and a newly generated package.

---
  meta/recipes-core/systemd/systemd-conf.bb     | 51 +++++++++++++++++++
  ...ange-the-default-device-timeout-to-2.patch | 35 -------------
  meta/recipes-core/systemd/systemd_239.bb      | 28 ++++------
  3 files changed, 60 insertions(+), 54 deletions(-)

create mode 100644 meta/recipes-core/systemd/systemd-conf.bb
delete mode 100644 meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch

meta/recipes-core/systemd/systemd-conf.bb new file +41 -0
new file mode 100644
index 0000000000..d39742b3a8
@@ -0,0 +1,51 @@
+require systemd.inc
+
+SUMMARY = "Systemd system configuration"
+DESCRIPTION = "Systemd may require slightly different configuration for \
+different machines.  For example, qemu machines require a longer \
+DefaultTimeoutStartSec setting."
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+CONFFILES_${PN} = "${sysconfdir}/machine-id \
+${sysconfdir}/systemd/coredump.conf \
+${sysconfdir}/systemd/journald.conf \
+${sysconfdir}/systemd/logind.conf \
+${sysconfdir}/systemd/system.conf \
+${sysconfdir}/systemd/user.conf"
+
+FILES_${PN} = "${sysconfdir}/machine-id ${sysconfdir}/systemd"
+
+do_compile[noexec] = '1'
+
+do_install() {
+	install -d ${D}/${sysconfdir}/systemd
+
+	# Create machine-id
+	# 20:12 < mezcalero> koen: you have three options: a) run systemd-machine-id-setup at install time, b) have / read-only and an empty file there (for stateless) and c) boot with / writable
+	touch ${D}${sysconfdir}/machine-id
+
+	install -m 0644 ${S}/src/coredump/coredump.conf ${D}${sysconfdir}/systemd/coredump.conf
+
+	install -m 0644 ${S}/src/journal/journald.conf ${D}${sysconfdir}/systemd/journald.conf
+	# Enable journal to forward message to syslog daemon
+	sed -i -e 's/.*ForwardToSyslog.*/ForwardToSyslog=yes/' ${D}${sysconfdir}/systemd/journald.conf
+	# Set the maximium size of runtime journal to 64M as default
+	sed -i -e 's/.*RuntimeMaxUse.*/RuntimeMaxUse=64M/' ${D}${sysconfdir}/systemd/journald.conf
+
+	install -m 0644 ${S}/src/login/logind.conf.in ${D}${sysconfdir}/systemd/logind.conf
+	# Set KILL_USER_PROCESSES to yes
+	sed -i -e 's/@KILL_USER_PROCESSES@/yes/' ${D}${sysconfdir}/systemd/logind.conf
+
+	install -m 0644 ${S}/src/core/system.conf.in ${D}${sysconfdir}/systemd/system.conf
+	# Set MEMORY_ACCOUNTING_DEFAULT to yes

meta/recipes-core/systemd/systemd-conf.bb line 51

Quoted 10 lines
meta/recipes-core/systemd/systemd-conf.bb new file +10 -0
+	sed -i -e 's/@MEMORY_ACCOUNTING_DEFAULT@/yes/' ${D}${sysconfdir}/systemd/system.conf
+
+	install -m 0644 ${S}/src/core/user.conf ${D}${sysconfdir}/systemd/user.conf
+}
+
+# Based on change from YP bug 8141, OE commit 5196d7bacaef1076c361adaa2867be31759c1b52
+do_install_append_qemuall() {
+	# Change DefaultTimeoutStartSec from 90s to 240s
+        echo "DefaultTimeoutStartSec = 240s"
+}

Seems to miss something like ">> ${D}${sysconfdir}/systemd/system.conf" ?

Best Regards,
Chen Qi

Quoted 122 lines
meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch deleted +0 -35
deleted file mode 100644
index fd7bf3fcf6..0000000000
@@ -1,35 +0,0 @@
-From 2925c0c3b6ce4056622b86c1c61ee14add430790 Mon Sep 17 00:00:00 2001
-From: Chen Qi <[email protected]>
-Date: Thu, 28 Jun 2018 10:56:29 +0800
-Subject: [PATCH] core/device.c: Change the default device timeout to 240 sec.
- MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8
- Content-Transfer-Encoding: 8bit
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Inappropriate [Specific case QEMU/AB]
-
-Signed-off-by: Aníbal Limón <[email protected]>
-Signed-off-by: Khem Raj <[email protected]>
-Signed-off-by: Chen Qi <[email protected]>
----
- src/core/device.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/core/device.c b/src/core/device.c
-index a2d00a0fb..f26e55ebb 100644
---- a/src/core/device.c
-+++ b/src/core/device.c
-@@ -95,7 +95,7 @@ static void device_init(Unit *u) {
-          * indefinitely for plugged in devices, something which cannot
-          * happen for the other units since their operations time out
-          * anyway. */
--        u->job_running_timeout = u->manager->default_timeout_start_usec;
-+        u->job_running_timeout = (240 * USEC_PER_SEC);
-
-         u->ignore_on_isolate = true;
-
---
-2.11.0
-
meta/recipes-core/systemd/systemd_239.bb +9 -19
index 7ed932141d..bc16407e09 100644
@@ -31,7 +31,6 @@ SRC_URI += "file://touchscreen.rules \
             file://0022-build-sys-Detect-whether-struct-statx-is-defined-in-.patch \
             file://0023-resolvconf-fixes-for-the-compatibility-interface.patch \
             "
-SRC_URI_append_qemuall = " file://0001-core-device.c-Change-the-default-device-timeout-to-2.patch"
 
  # patches made for musl are only applied on TCLIBC is musl
  SRC_URI += "${SRC_URI_MUSL}"
@@ -218,10 +217,6 @@ do_install() {
  	[ ! -e ${D}/init ] && ln -s ${rootlibexecdir}/systemd/systemd ${D}/init
  	[ ! -e ${D}/${base_sbindir}/udevd ] && ln -s ${rootlibexecdir}/systemd/systemd-udevd ${D}/${base_sbindir}/udevd
 
-	# Create machine-id
-	# 20:12 < mezcalero> koen: you have three options: a) run systemd-machine-id-setup at install time, b) have / read-only and an empty file there (for stateless) and c) boot with / writable
-	touch ${D}${sysconfdir}/machine-id
-
  	install -d ${D}${sysconfdir}/udev/rules.d/
  	install -d ${D}${sysconfdir}/tmpfiles.d
  	install -m 0644 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
@@ -256,11 +251,6 @@ do_install() {
  		ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/rescue.target.wants/systemd-update-utmp-runlevel.service
  	fi
 
-	# Enable journal to forward message to syslog daemon
-	sed -i -e 's/.*ForwardToSyslog.*/ForwardToSyslog=yes/' ${D}${sysconfdir}/systemd/journald.conf
-	# Set the maximium size of runtime journal to 64M as default
-	sed -i -e 's/.*RuntimeMaxUse.*/RuntimeMaxUse=64M/' ${D}${sysconfdir}/systemd/journald.conf
-
  	# this file is needed to exist if networkd is disabled but timesyncd is still in use since timesyncd checks it
  	# for existence else it fails
  	if [ -s ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf ]; then
@@ -284,6 +274,14 @@ do_install() {
  			chown polkitd:root ${D}${datadir}/polkit-1/rules.d
  		fi
  	fi
+
+	# conf files are handled by systemd-conf
+	rm -f ${D}${sysconfdir}/machine-id
+	rm -f ${D}${sysconfdir}/systemd/coredump.conf
+	rm -f ${D}${sysconfdir}/systemd/journald.conf
+	rm -f ${D}${sysconfdir}/systemd/logind.conf
+	rm -f ${D}${sysconfdir}/systemd/system.conf
+	rm -f ${D}${sysconfdir}/systemd/user.conf
  }
 
 
@@ -433,13 +431,6 @@ FILES_${PN}-extra-utils = "\
                          ${rootlibexecdir}/systemd/systemd-cgroups-agent \
  "
 
-CONFFILES_${PN} = "${sysconfdir}/machine-id \
-                ${sysconfdir}/systemd/coredump.conf \
-                ${sysconfdir}/systemd/journald.conf \
-                ${sysconfdir}/systemd/logind.conf \
-                ${sysconfdir}/systemd/system.conf \
-                ${sysconfdir}/systemd/user.conf"
-
  FILES_${PN} = " ${base_bindir}/* \
                  ${base_sbindir}/shutdown \
                  ${base_sbindir}/halt \
@@ -455,7 +446,6 @@ FILES_${PN} = " ${base_bindir}/* \
                  ${datadir}/${BPN} \
                  ${datadir}/factory \
                  ${sysconfdir}/dbus-1/ \
-                ${sysconfdir}/machine-id \
                  ${sysconfdir}/modules-load.d/ \
                  ${sysconfdir}/pam.d/ \
                  ${sysconfdir}/sysctl.d/ \
@@ -504,7 +494,7 @@ FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ $
 
  RDEPENDS_${PN} += "kmod dbus util-linux-mount udev (= ${EXTENDPKGV}) util-linux-agetty util-linux-fsck"
  RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', '', 'systemd-serialgetty', d)}"
-RDEPENDS_${PN} += "volatile-binds update-rc.d"
+RDEPENDS_${PN} += "volatile-binds update-rc.d systemd-conf"
 
  RRECOMMENDS_${PN} += "systemd-extra-utils \
                        systemd-compat-units udev-hwdb \
author
#3 lore raw

Re: [PATCH 1/4] systemd: Remove items that made this machine (qemu) specific

Quoted 70 lines · ChenQi
Quoted 69 lines · Mark Hatle

Create a new systemd-conf recipe to contain the specific system/machine configuration items. This new package is now machine specific.

Without doing this trying to create a single system with multiple BSPs, one of which was qemu based, would result in the systemd -and- everything that dependend upon systemd to have their hash changed. The hash changing means lots of rebuilds, but worse if it's a package based system each different machine ends with a new PR value and a newly generated package.

---
  meta/recipes-core/systemd/systemd-conf.bb     | 51 +++++++++++++++++++
  ...ange-the-default-device-timeout-to-2.patch | 35 -------------
  meta/recipes-core/systemd/systemd_239.bb      | 28 ++++------
  3 files changed, 60 insertions(+), 54 deletions(-)

create mode 100644 meta/recipes-core/systemd/systemd-conf.bb
delete mode 100644 meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch

meta/recipes-core/systemd/systemd-conf.bb new file +45 -0
new file mode 100644
index 0000000000..d39742b3a8
@@ -0,0 +1,51 @@
+require systemd.inc
+
+SUMMARY = "Systemd system configuration"
+DESCRIPTION = "Systemd may require slightly different configuration for \
+different machines.  For example, qemu machines require a longer \
+DefaultTimeoutStartSec setting."
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+CONFFILES_${PN} = "${sysconfdir}/machine-id \
+${sysconfdir}/systemd/coredump.conf \
+${sysconfdir}/systemd/journald.conf \
+${sysconfdir}/systemd/logind.conf \
+${sysconfdir}/systemd/system.conf \
+${sysconfdir}/systemd/user.conf"
+
+FILES_${PN} = "${sysconfdir}/machine-id ${sysconfdir}/systemd"
+
+do_compile[noexec] = '1'
+
+do_install() {
+	install -d ${D}/${sysconfdir}/systemd
+
+	# Create machine-id
+	# 20:12 < mezcalero> koen: you have three options: a) run systemd-machine-id-setup at install time, b) have / read-only and an empty file there (for stateless) and c) boot with / writable
+	touch ${D}${sysconfdir}/machine-id
+
+	install -m 0644 ${S}/src/coredump/coredump.conf ${D}${sysconfdir}/systemd/coredump.conf
+
+	install -m 0644 ${S}/src/journal/journald.conf ${D}${sysconfdir}/systemd/journald.conf
+	# Enable journal to forward message to syslog daemon
+	sed -i -e 's/.*ForwardToSyslog.*/ForwardToSyslog=yes/' ${D}${sysconfdir}/systemd/journald.conf
+	# Set the maximium size of runtime journal to 64M as default
+	sed -i -e 's/.*RuntimeMaxUse.*/RuntimeMaxUse=64M/' ${D}${sysconfdir}/systemd/journald.conf
+
+	install -m 0644 ${S}/src/login/logind.conf.in ${D}${sysconfdir}/systemd/logind.conf
+	# Set KILL_USER_PROCESSES to yes
+	sed -i -e 's/@KILL_USER_PROCESSES@/yes/' ${D}${sysconfdir}/systemd/logind.conf
+
+	install -m 0644 ${S}/src/core/system.conf.in ${D}${sysconfdir}/systemd/system.conf
+	# Set MEMORY_ACCOUNTING_DEFAULT to yes
+	sed -i -e 's/@MEMORY_ACCOUNTING_DEFAULT@/yes/' ${D}${sysconfdir}/systemd/system.conf
+
+	install -m 0644 ${S}/src/core/user.conf ${D}${sysconfdir}/systemd/user.conf
+}
Quoted 8 lines

meta/recipes-core/systemd/systemd-conf.bb line 51

Quoted 6 lines
meta/recipes-core/systemd/systemd-conf.bb new file +6 -0
+
+# Based on change from YP bug 8141, OE commit 5196d7bacaef1076c361adaa2867be31759c1b52
+do_install_append_qemuall() {
+	# Change DefaultTimeoutStartSec from 90s to 240s
+        echo "DefaultTimeoutStartSec = 240s"
+}

Seems to miss something like ">> ${D}${sysconfdir}/systemd/system.conf" ?

I will update the commit. Good catch.

--Mark

Quoted 127 lines

Best Regards,
Chen Qi

Quoted 122 lines
meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch deleted +0 -35
deleted file mode 100644
index fd7bf3fcf6..0000000000
@@ -1,35 +0,0 @@
-From 2925c0c3b6ce4056622b86c1c61ee14add430790 Mon Sep 17 00:00:00 2001
-From: Chen Qi <[email protected]>
-Date: Thu, 28 Jun 2018 10:56:29 +0800
-Subject: [PATCH] core/device.c: Change the default device timeout to 240 sec.
- MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8
- Content-Transfer-Encoding: 8bit
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Inappropriate [Specific case QEMU/AB]
-
-Signed-off-by: Aníbal Limón <[email protected]>
-Signed-off-by: Khem Raj <[email protected]>
-Signed-off-by: Chen Qi <[email protected]>
----
- src/core/device.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/core/device.c b/src/core/device.c
-index a2d00a0fb..f26e55ebb 100644
---- a/src/core/device.c
-+++ b/src/core/device.c
-@@ -95,7 +95,7 @@ static void device_init(Unit *u) {
-          * indefinitely for plugged in devices, something which cannot
-          * happen for the other units since their operations time out
-          * anyway. */
--        u->job_running_timeout = u->manager->default_timeout_start_usec;
-+        u->job_running_timeout = (240 * USEC_PER_SEC);
-
-         u->ignore_on_isolate = true;
-
---
-2.11.0
-
meta/recipes-core/systemd/systemd_239.bb +9 -19
index 7ed932141d..bc16407e09 100644
@@ -31,7 +31,6 @@ SRC_URI += "file://touchscreen.rules \
             file://0022-build-sys-Detect-whether-struct-statx-is-defined-in-.patch \
             file://0023-resolvconf-fixes-for-the-compatibility-interface.patch \
             "
-SRC_URI_append_qemuall = " file://0001-core-device.c-Change-the-default-device-timeout-to-2.patch"
 
  # patches made for musl are only applied on TCLIBC is musl
  SRC_URI += "${SRC_URI_MUSL}"
@@ -218,10 +217,6 @@ do_install() {
  	[ ! -e ${D}/init ] && ln -s ${rootlibexecdir}/systemd/systemd ${D}/init
  	[ ! -e ${D}/${base_sbindir}/udevd ] && ln -s ${rootlibexecdir}/systemd/systemd-udevd ${D}/${base_sbindir}/udevd
 
-	# Create machine-id
-	# 20:12 < mezcalero> koen: you have three options: a) run systemd-machine-id-setup at install time, b) have / read-only and an empty file there (for stateless) and c) boot with / writable
-	touch ${D}${sysconfdir}/machine-id
-
  	install -d ${D}${sysconfdir}/udev/rules.d/
  	install -d ${D}${sysconfdir}/tmpfiles.d
  	install -m 0644 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
@@ -256,11 +251,6 @@ do_install() {
  		ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/rescue.target.wants/systemd-update-utmp-runlevel.service
  	fi
 
-	# Enable journal to forward message to syslog daemon
-	sed -i -e 's/.*ForwardToSyslog.*/ForwardToSyslog=yes/' ${D}${sysconfdir}/systemd/journald.conf
-	# Set the maximium size of runtime journal to 64M as default
-	sed -i -e 's/.*RuntimeMaxUse.*/RuntimeMaxUse=64M/' ${D}${sysconfdir}/systemd/journald.conf
-
  	# this file is needed to exist if networkd is disabled but timesyncd is still in use since timesyncd checks it
  	# for existence else it fails
  	if [ -s ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf ]; then
@@ -284,6 +274,14 @@ do_install() {
  			chown polkitd:root ${D}${datadir}/polkit-1/rules.d
  		fi
  	fi
+
+	# conf files are handled by systemd-conf
+	rm -f ${D}${sysconfdir}/machine-id
+	rm -f ${D}${sysconfdir}/systemd/coredump.conf
+	rm -f ${D}${sysconfdir}/systemd/journald.conf
+	rm -f ${D}${sysconfdir}/systemd/logind.conf
+	rm -f ${D}${sysconfdir}/systemd/system.conf
+	rm -f ${D}${sysconfdir}/systemd/user.conf
  }
 
 
@@ -433,13 +431,6 @@ FILES_${PN}-extra-utils = "\
                          ${rootlibexecdir}/systemd/systemd-cgroups-agent \
  "
 
-CONFFILES_${PN} = "${sysconfdir}/machine-id \
-                ${sysconfdir}/systemd/coredump.conf \
-                ${sysconfdir}/systemd/journald.conf \
-                ${sysconfdir}/systemd/logind.conf \
-                ${sysconfdir}/systemd/system.conf \
-                ${sysconfdir}/systemd/user.conf"
-
  FILES_${PN} = " ${base_bindir}/* \
                  ${base_sbindir}/shutdown \
                  ${base_sbindir}/halt \
@@ -455,7 +446,6 @@ FILES_${PN} = " ${base_bindir}/* \
                  ${datadir}/${BPN} \
                  ${datadir}/factory \
                  ${sysconfdir}/dbus-1/ \
-                ${sysconfdir}/machine-id \
                  ${sysconfdir}/modules-load.d/ \
                  ${sysconfdir}/pam.d/ \
                  ${sysconfdir}/sysctl.d/ \
@@ -504,7 +494,7 @@ FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ $
 
  RDEPENDS_${PN} += "kmod dbus util-linux-mount udev (= ${EXTENDPKGV}) util-linux-agetty util-linux-fsck"
  RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', '', 'systemd-serialgetty', d)}"
-RDEPENDS_${PN} += "volatile-binds update-rc.d"
+RDEPENDS_${PN} += "volatile-binds update-rc.d systemd-conf"
 
  RRECOMMENDS_${PN} += "systemd-extra-utils \
                        systemd-compat-units udev-hwdb \
#4 lore raw

Re: [PATCH 1/4] systemd: Remove items that made this machine (qemu) specific

In reply to Mark Hatle
Quoted 9 lines · Mark Hatle

Create a new systemd-conf recipe to contain the specific system/machine configuration items. This new package is now machine specific.

Without doing this trying to create a single system with multiple BSPs, one of which was qemu based, would result in the systemd -and- everything that dependend upon systemd to have their hash changed. The hash changing means lots of rebuilds, but worse if it's a package based system each different machine ends with a new PR value and a newly generated package.

Quoted 9 lines
---
 meta/recipes-core/systemd/systemd-conf.bb     | 51 +++++++++++++++++++
 ...ange-the-default-device-timeout-to-2.patch | 35 -------------
 meta/recipes-core/systemd/systemd_239.bb      | 28 ++++------
 3 files changed, 60 insertions(+), 54 deletions(-)
 create mode 100644 meta/recipes-core/systemd/systemd-conf.bb
 delete mode 100644 meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch

With this patch, when systemd is enabled, it causes checksum issues:

$ oe-selftest -r sstatetests.SStateTests.test_sstate_sametune_samesigs

Its fixed by:

meta/conf/layer.conf +1 -0
index 6221a057ce6..504f7fa07ad 100644
@@ -74,6 +74,7 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
   gnome-icon-theme->librsvg \
   font-alias->font-util \
   systemd-boot->systemd-bootconf \
+  systemd->systemd-conf \
   weston-init->weston \
   weston-init->kbd \
 "

Cheers,

Richard

#5 lore raw

Re: [PATCH 1/4] systemd: Remove items that made this machine (qemu) specific

In reply to Mark Hatle
Quoted 23 lines · Mark Hatle

Create a new systemd-conf recipe to contain the specific system/machine
configuration items. This new package is now machine specific.

Without doing this trying to create a single system with multiple BSPs,
one of which was qemu based, would result in the systemd -and- everything that
dependend upon systemd to have their hash changed. The hash changing means
lots of rebuilds, but worse if it's a package based system each different
machine ends with a new PR value and a newly generated package.

---
 meta/recipes-core/systemd/systemd-conf.bb     | 51
+++++++++++++++++++
 ...ange-the-default-device-timeout-to-2.patch | 35 -------------
 meta/recipes-core/systemd/systemd_239.bb      | 28 ++++------
 3 files changed, 60 insertions(+), 54 deletions(-)
 create mode 100644 meta/recipes-core/systemd/systemd-conf.bb
 delete mode 100644 meta/recipes-core/systemd/systemd/0001-core-
Quoted 1 line

device.c-Change-the-default-device-timeout-to-2.patch

Something in -next is causing:

https://autobuilder.yoctoproject.org/typhoon/#/builders/35/builds/92/steps/7/logs/step7c

which is a systemd boot timeout.

Note that I fixed up the selftest issue with the patch, I also added a maintainers entry for systemd-conf to avoid another problem so please use the patch in -next for any further revisions. We're going to need more investigation to merge this though...

Cheers,

Richard

author
#6 lore raw

Re: [PATCH 1/4] systemd: Remove items that made this machine (qemu) specific

Quoted 28 lines · Richard Purdie
Quoted 23 lines · Mark Hatle

Create a new systemd-conf recipe to contain the specific system/machine
configuration items. This new package is now machine specific.

Without doing this trying to create a single system with multiple BSPs,
one of which was qemu based, would result in the systemd -and- everything that
dependend upon systemd to have their hash changed. The hash changing means
lots of rebuilds, but worse if it's a package based system each different
machine ends with a new PR value and a newly generated package.

---
 meta/recipes-core/systemd/systemd-conf.bb     | 51
+++++++++++++++++++
 ...ange-the-default-device-timeout-to-2.patch | 35 -------------
 meta/recipes-core/systemd/systemd_239.bb      | 28 ++++------
 3 files changed, 60 insertions(+), 54 deletions(-)
 create mode 100644 meta/recipes-core/systemd/systemd-conf.bb
 delete mode 100644 meta/recipes-core/systemd/systemd/0001-core-
Quoted 1 line

device.c-Change-the-default-device-timeout-to-2.patch

Something in -next is causing:

Quoted 8 lines

https://autobuilder.yoctoproject.org/typhoon/#/builders/35/builds/92/steps/7/logs/step7c

which is a systemd boot timeout.

Note that I fixed up the selftest issue with the patch, I also added a maintainers entry for systemd-conf to avoid another problem so please use the patch in -next for any further revisions. We're going to need more investigation to merge this though...

I'll work on this hopefully this week, and try to figure out why it's failing. I suspect the issue is the original purpose of the workaround. I suspect the timeout is staying at the default.

In my limited testing, I didn't experience this -- but I'm not exactly sure what the test configuration I should be using is to verify it.

--Mark

Quoted 6 lines

Cheers,

Richard

author
#7 lore raw

PATCH 2/4 mesa: Remove machine specific append

In reply to Mark Hatle

If you try to build a system with multiple BSPs, one of which is qemux86 or qemux86-64, the overall system configuration will change and all of the graphics packages will end up being rebuilt each time.

For a package based system, the PR values will also be incremented each time. The end result will be an ever growing set of PR values as well as being unable to tell which configured version of the graphics components are really being deployed.

The solution was to always include the virgl gallium driver when an x86 based target is used. This may end up wasting some space, but solves the hash issue.

---
 meta/recipes-graphics/mesa/mesa.inc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/recipes-graphics/mesa/mesa.inc +2 -2
index 0dfdfbd5b4..0cc0a82de4 100644
@@ -91,8 +91,8 @@ GALLIUMDRIVERS_LLVM33_ENABLED = "${@oe.utils.version_less_or_equal('MESA_LLVM_RE
 GALLIUMDRIVERS_LLVM = "r300,svga,nouveau${@',${GALLIUMDRIVERS_LLVM33}' if ${GALLIUMDRIVERS_LLVM33_ENABLED} else ''}"
 GALLIUMDRIVERS_append_x86 = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',${GALLIUMDRIVERS_LLVM}', '', d)}"
 GALLIUMDRIVERS_append_x86-64 = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',${GALLIUMDRIVERS_LLVM}', '', d)}"
-GALLIUMDRIVERS_append_qemux86 = ",virgl"
-GALLIUMDRIVERS_append_qemux86-64 = ",virgl"
+GALLIUMDRIVERS_append_x86 = ",virgl"
+GALLIUMDRIVERS_append_x86-64 = ",virgl"
 # keep --with-gallium-drivers separate, because when only one of gallium versions is enabled, other 2 were adding --without-gallium-drivers
 PACKAGECONFIG[gallium]      = "--enable-texture-float --with-gallium-drivers=${GALLIUMDRIVERS}, --without-gallium-drivers"
 MESA_LLVM_RELEASE ?= "6.0"
Signature · 1 line
2.18.0
author
#8 lore raw

PATCH 3/4 weston: Remove machine specific append

In reply to Mark Hatle

If you try to build a system with multiple BSPs, one of which is qemux86 or qemux86-64, the overall system configuration will change and all of the graphics packages will end up being rebuilt each time.

For a package based system, the PR values will also be incremented each time. The end result will be an ever growing set of PR values as well as being unable to tell which configured version of the graphics components are really being deployed.

The solution here was to always include the fbdev backend when an x86 BSP is enabled.

---
 meta/recipes-graphics/wayland/weston_5.0.0.bb | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/recipes-graphics/wayland/weston_5.0.0.bb +2 -2
index 299408b201..64256db198 100644
@@ -29,10 +29,10 @@ WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}"
 EXTRA_OECONF = "--enable-setuid-install \
                 --disable-rdp-compositor \
                 "
-EXTRA_OECONF_append_qemux86 = "\
+EXTRA_OECONF_append_x86 = "\
 		WESTON_NATIVE_BACKEND=fbdev-backend.so \
 		"
-EXTRA_OECONF_append_qemux86-64 = "\
+EXTRA_OECONF_append_x86-64 = "\
 		WESTON_NATIVE_BACKEND=fbdev-backend.so \
 		"
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev wayland egl', '', d)} \
Signature · 1 line
2.18.0
#9 lore raw

Re: [PATCH 3/4] weston: Remove machine specific append

meta/recipes-graphics/wayland/weston_5.0.0.bb WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}" · line 34

Quoted 4 lines · Mark Hatle
meta/recipes-graphics/wayland/weston_5.0.0.bb +1 -1
-EXTRA_OECONF_append_qemux86 = "\
+EXTRA_OECONF_append_x86 = "\
                WESTON_NATIVE_BACKEND=fbdev-backend.so \
                "

This forces all x86 Westons that are not running inside X11 to use fbdev instead of drm.

Two questions:
1) does qemu still need fbdev or does virtio/drm work now? (iirc, we still have a crippled qemu here)
2) Can this be overridden in a config file instead

Ross

author
#10 lore raw

Re: [PATCH 3/4] weston: Remove machine specific append

Quoted 9 lines · Ross

meta/recipes-graphics/wayland/weston_5.0.0.bb WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}" · line 34

Quoted 4 lines · Mark Hatle
meta/recipes-graphics/wayland/weston_5.0.0.bb +1 -1
-EXTRA_OECONF_append_qemux86 = "\
+EXTRA_OECONF_append_x86 = "\
                WESTON_NATIVE_BACKEND=fbdev-backend.so \
                "

This forces all x86 Westons that are not running inside X11 to use fbdev instead of drm.

Quoted 4 lines

Two questions:
1) does qemu still need fbdev or does virtio/drm work now? (iirc, we still have a crippled qemu here)
2) Can this be overridden in a config file instead

I did not understand how to do this. The alternative I see then is to make this a machine_arch package.. since the configuration can change?

(I'm not very familiar with this part of the system.)

--Mark

Quoted 2 lines

Ross

#11 lore raw

Re: [PATCH 3/4] weston: Remove machine specific append

Quoted 9 lines · Mark Hatle
Quoted 4 lines

Two questions:
1) does qemu still need fbdev or does virtio/drm work now? (iirc, we still have a crippled qemu here)
2) Can this be overridden in a config file instead

I did not understand how to do this. The alternative I see then is to make this a machine_arch package.. since the configuration can change?

(I'm not very familiar with this part of the system.)

Looks like Weston supports this in the config file:

[core]
backend = fbdev-backend.so

Should be easy enough to ship a weston.ini for qemu machines.

Ross

author
#12 lore raw

Re: [PATCH 3/4] weston: Remove machine specific append

Quoted 11 lines · Ross
Quoted 9 lines · Mark Hatle
Quoted 4 lines

Two questions:
1) does qemu still need fbdev or does virtio/drm work now? (iirc, we still have a crippled qemu here)
2) Can this be overridden in a config file instead

I did not understand how to do this. The alternative I see then is to make this a machine_arch package.. since the configuration can change?

(I'm not very familiar with this part of the system.)

Quoted 9 lines

Looks like Weston supports this in the config file:

[core]
backend = fbdev-backend.so

Should be easy enough to ship a weston.ini for qemu machines.

Ross

I've been fighting this, and (assumign the above is correct), I can't figure out how to get weston to actually load the ini file. I suspect the problem is simply I don't know what path to put the config file in.... but since it runs on boot, I don't have any way to intercept it and strace or similar to see if it's actually trying to load things.

I'll continue working on them, but if anyone can help tell me where the ini file belongs or how to debug this -- that would help a lot.

(I've tried putting the file directly in the sysconf [/etc] directory, as well as /etc/xdg which was mentioned by the man page.)

--Mark

#13 lore raw

Re: [PATCH 3/4] weston: Remove machine specific append

In reply to Burton, Ross

As far as I know virglrenderer works rather well now, and we should take it into use. WebOS already has support for it.
https://lwn.net/Articles/767970/

Alex

Quoted 22 lines · Ross

meta/recipes-graphics/wayland/weston_5.0.0.bb WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}" · line 34

Quoted 6 lines · Mark Hatle
meta/recipes-graphics/wayland/weston_5.0.0.bb +1 -1
-EXTRA_OECONF_append_qemux86 = "\
+EXTRA_OECONF_append_x86 = "\
               WESTON_NATIVE_BACKEND=fbdev-backend.so \
               "

This forces all x86 Westons that are not running inside X11 to use fbdev instead of drm.

Two questions:
1) does qemu still need fbdev or does virtio/drm work now? (iirc, we still have a crippled qemu here)
2) Can this be overridden in a config file instead

Ross

Signature · 4 lines
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
#14 lore raw

Re: [PATCH 3/4] weston: Remove machine specific append

https://bugzilla.yoctoproject.org/show_bug.cgi?id=12938

Quoted 40 lines · Alexander Kanavin

As far as I know virglrenderer works rather well now, and we should take it into use. WebOS already has support for it.
https://lwn.net/Articles/767970/

Alex

On 18 Oct 2018, at 12.24, Burton, Ross <[email protected]> wrote:

On Wed, 17 Oct 2018 at 17:44, Mark Hatle <[email protected]> wrote:

meta/recipes-graphics/wayland/weston_5.0.0.bb +1 -1
-EXTRA_OECONF_append_qemux86 = "\
 
+EXTRA_OECONF_append_x86 = "\
 
               WESTON_NATIVE_BACKEND=fbdev-backend.so \
 
               "

This forces all x86 Westons that are not running inside X11 to use fbdev instead of drm.

Two questions:
1) does qemu still need fbdev or does virtio/drm work now? (iirc, we still have a crippled qemu here)
2) Can this be overridden in a config file instead

Ross
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

author
#16 lore raw

PATCH 4/4 gstreamer: Remove machine specific append

In reply to Mark Hatle

If you try to build a system with multiple BSPs, one of which is qemux86 or qemux86-64, the gstreamer package will change. This will trigger anything using gstream to also be rebuilt.

For a package based system, the PR values will also be incremented each time. The end result will be an ever growing set of PR values as well as being unable to tell which configured version of the multimedia components are really being deployed.

The solution here was to remove the rrecommend for consistency.

---
 meta/recipes-multimedia/gstreamer/gstreamer1.0_1.14.2.bb | 2 --
 1 file changed, 2 deletions(-)
meta/recipes-multimedia/gstreamer/gstreamer1.0_1.14.2.bb +0 -2
index 7f291f6630..3a6e53de04 100644
@@ -55,8 +55,6 @@ FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
 FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la ${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include"
 FILES_${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*"
 
-RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
-RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
 RDEPENDS_${PN}-ptest += "make"
 
 delete_pkg_m4_file() {
Signature · 1 line
2.18.0
#17 lore raw

Re: [PATCH 4/4] gstreamer: Remove machine specific append

Quoted 21 lines · Mark Hatle

If you try to build a system with multiple BSPs, one of which is qemux86 or qemux86-64, the gstreamer package will change. This will trigger anything using gstream to also be rebuilt.

For a package based system, the PR values will also be incremented each time. The end result will be an ever growing set of PR values as well as being unable to tell which configured version of the multimedia components are really being deployed.

The solution here was to remove the rrecommend for consistency.

---
 meta/recipes-multimedia/gstreamer/gstreamer1.0_1.14.2.bb | 2 --
 1 file changed, 2 deletions(-)
meta/recipes-multimedia/gstreamer/gstreamer1.0_1.14.2.bb +0 -0
index 7f291f6630..3a6e53de04 100644

meta/recipes-multimedia/gstreamer/gstreamer1.0_1.14.2.bb FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" · line 58

Quoted 6 lines
meta/recipes-multimedia/gstreamer/gstreamer1.0_1.14.2.bb +0 -2
@@ -55,8 +55,6 @@ FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
 FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la ${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include"
 FILES_${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*"
 
-RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
-RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
 RDEPENDS_${PN}-ptest += "make"

We can't just delete these, they need moving to the machine conf files instead. Since we need to build M4 soon and this is a problem, I've put a patch into master-next which does this for testing.

Cheers,

Richard