Skip to contentSkip to conversation

Initial systemd integration

PATCH In review Ross Burton 9 participants 37 messages Jan 19, 2013 – Jan 23, 2013

lore
Share & tools
lore
#0 lore raw

cover Initial systemd integration

Hi,

This series has the goal of enabling core-image-minimal to boot using systemd. As such it touches no real services, just the infrastructural tweaks to make the init manager a distribution choice, systemd itself, and a few low-level changes.

95% of the credit obviously must go to the contributors of meta-systemd:

Andreas Müller <[email protected]> Denis 'GNUtoo' Carikli <[email protected]> Holger Hans Peter Freyther <[email protected]> Khem Raj <[email protected]>
Koen Kooi <[email protected]> Martin Jansa <[email protected]>

And thanks to Radu Moisan <[email protected]> for the work pulling together a series for merging into oe-core.

Confirmed that this series using sysvinit results in a zero-delta in core-image-minimal.

Cheers,
Ross

The following changes since commit 349e5bea53b02cabf836b8943541a002ce9ba682:

guilt: add git 1.8.x support (2013-01-18 13:28:10 +0000)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib ross/systemd-minimal

for you to fetch changes up to 2a93db0fd8302290ac0f2c6c83ea640ad273c3e2:

libpam: register PAM session with logind (2013-01-19 22:35:52 +0000)

----------------------------------------------------------------
Koen Kooi (1):
libpam: register PAM session with logind

Martin Donnelly (1):
base-files: add fstab for systemd based systems

Radu Moisan (5):
default-distrovars: Add DISTRO_FEATURES_INITMAN to DISTRO_FEATURES
default-providers: Automatically set PREFERRED_PROVIDER_udev
systemd: add systemd recipes
default-providers: Add systemd option to PREFERRED_PROVIDER_udev update-rc.d: disable update-rc.d.bbclass when systemd enabled

Ross Burton (3):
dbus: respect systemd distro feature
packagegroup-core-boot: install systemd-compat-units on systemd images
packagegroup-core-boot: only install initscripts if we're using sysvinit

 meta/classes/update-rc.d.bbclass                   |   90 +-----
 meta/classes/update-rc.d_real.bbclass              |   89 ++++++
 meta/conf/distro/include/default-distrovars.inc    |    3 +-
 meta/conf/distro/include/default-providers.inc     |    1 +
 .../base-files/base-files/fstab.systemd            |    9 +
 meta/recipes-core/base-files/base-files_3.0.14.bb  |    7 +-
 meta/recipes-core/dbus/dbus.inc                    |   27 +-
 .../packagegroups/packagegroup-core-boot.bb        |    7 +-
 meta/recipes-core/systemd/systemd-compat-units.bb  |   58 ++++
 .../systemd/systemd-compat-units/machineid.service |   16 +
 .../systemd-compat-units/run-postinsts.service     |   17 +
 meta/recipes-core/systemd/systemd-serialgetty.bb   |   45 +++
 .../systemd-serialgetty/[email protected]      |   32 ++
 .../systemd/systemd-systemctl-native.bb            |   15 +
 .../systemd/systemd-systemctl/systemctl            |  126 ++++++++
 .../systemd/systemd/00-create-volatile.conf        |   10 +
 ...emd-analyze-use-argparse-instead-of-getop.patch |  103 ++++++
 ...-analyze-use-GDBus-instead-of-dbus-python.patch |   91 ++++++
 meta/recipes-core/systemd/systemd/modprobe.rules   |   17 +
 .../systemd/systemd/optional_secure_getenv.patch   |   19 ++
 .../systemd-pam-configure-check-uclibc.patch       |   26 ++
 .../systemd/systemd/systemd-pam-fix-execvpe.patch  |   26 ++
 .../systemd/systemd-pam-fix-fallocate.patch        |   82 +++++
 .../systemd/systemd-pam-fix-getty-unit.patch       |   35 ++
 .../systemd/systemd/systemd-pam-fix-mkostemp.patch |  166 ++++++++++
 .../systemd/systemd/systemd-pam-fix-msformat.patch |  335 ++++++++++++++++++++
 .../recipes-core/systemd/systemd/touchscreen.rules |   18 ++
 .../systemd/systemd/use-rootlibdir.patch           |  107 +++++++
 meta/recipes-core/systemd/systemd/var-run.conf     |    4 +
 meta/recipes-core/systemd/systemd_196.bb           |  249 +++++++++++++++
 .../pam/libpam/pam.d/common-session                |    4 +-
 31 files changed, 1726 insertions(+), 108 deletions(-)
 create mode 100644 meta/classes/update-rc.d_real.bbclass
 create mode 100644 meta/recipes-core/base-files/base-files/fstab.systemd
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units.bb
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units/machineid.service
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units/run-postinsts.service
 create mode 100644 meta/recipes-core/systemd/systemd-serialgetty.bb
 create mode 100644 meta/recipes-core/systemd/systemd-serialgetty/[email protected]
 create mode 100644 meta/recipes-core/systemd/systemd-systemctl-native.bb
 create mode 100755 meta/recipes-core/systemd/systemd-systemctl/systemctl
 create mode 100644 meta/recipes-core/systemd/systemd/00-create-volatile.conf
 create mode 100644 meta/recipes-core/systemd/systemd/0001-Revert-systemd-analyze-use-argparse-instead-of-getop.patch
 create mode 100644 meta/recipes-core/systemd/systemd/0002-Revert-analyze-use-GDBus-instead-of-dbus-python.patch
 create mode 100644 meta/recipes-core/systemd/systemd/modprobe.rules
 create mode 100644 meta/recipes-core/systemd/systemd/optional_secure_getenv.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-configure-check-uclibc.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-execvpe.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-fallocate.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-getty-unit.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-msformat.patch
 create mode 100644 meta/recipes-core/systemd/systemd/touchscreen.rules
 create mode 100644 meta/recipes-core/systemd/systemd/use-rootlibdir.patch
 create mode 100644 meta/recipes-core/systemd/systemd/var-run.conf
 create mode 100644 meta/recipes-core/systemd/systemd_196.bb

Koen Kooi (1):
libpam: register PAM session with logind

Martin Donnelly (1):
base-files: add fstab for systemd based systems

Radu Moisan (5):
default-distrovars: Add DISTRO_FEATURES_INITMAN to DISTRO_FEATURES
default-providers: Automatically set PREFERRED_PROVIDER_udev
systemd: add systemd recipes
default-providers: Add systemd option to PREFERRED_PROVIDER_udev update-rc.d: disable update-rc.d.bbclass when systemd enabled

Ross Burton (3):
dbus: respect systemd distro feature
packagegroup-core-boot: install systemd-compat-units on systemd
images
packagegroup-core-boot: only install initscripts if we're using
sysvinit

 meta/classes/update-rc.d.bbclass                   |   90 +-----
 meta/classes/update-rc.d_real.bbclass              |   89 ++++++
 meta/conf/distro/include/default-distrovars.inc    |    3 +-
 meta/conf/distro/include/default-providers.inc     |    1 +
 .../base-files/base-files/fstab.systemd            |    9 +
 meta/recipes-core/base-files/base-files_3.0.14.bb  |    7 +-
 meta/recipes-core/dbus/dbus.inc                    |   27 +-
 .../packagegroups/packagegroup-core-boot.bb        |    7 +-
 meta/recipes-core/systemd/systemd-compat-units.bb  |   58 ++++
 .../systemd/systemd-compat-units/machineid.service |   16 +
 .../systemd-compat-units/run-postinsts.service     |   17 +
 meta/recipes-core/systemd/systemd-serialgetty.bb   |   45 +++
 .../systemd-serialgetty/[email protected]      |   32 ++
 .../systemd/systemd-systemctl-native.bb            |   15 +
 .../systemd/systemd-systemctl/systemctl            |  126 ++++++++
 .../systemd/systemd/00-create-volatile.conf        |   10 +
 ...emd-analyze-use-argparse-instead-of-getop.patch |  103 ++++++
 ...-analyze-use-GDBus-instead-of-dbus-python.patch |   91 ++++++
 meta/recipes-core/systemd/systemd/modprobe.rules   |   17 +
 .../systemd/systemd/optional_secure_getenv.patch   |   19 ++
 .../systemd-pam-configure-check-uclibc.patch       |   26 ++
 .../systemd/systemd/systemd-pam-fix-execvpe.patch  |   26 ++
 .../systemd/systemd-pam-fix-fallocate.patch        |   82 +++++
 .../systemd/systemd-pam-fix-getty-unit.patch       |   35 ++
 .../systemd/systemd/systemd-pam-fix-mkostemp.patch |  166 ++++++++++
 .../systemd/systemd/systemd-pam-fix-msformat.patch |  335 ++++++++++++++++++++
 .../recipes-core/systemd/systemd/touchscreen.rules |   18 ++
 .../systemd/systemd/use-rootlibdir.patch           |  107 +++++++
 meta/recipes-core/systemd/systemd/var-run.conf     |    4 +
 meta/recipes-core/systemd/systemd_196.bb           |  249 +++++++++++++++
 .../pam/libpam/pam.d/common-session                |    4 +-
 31 files changed, 1726 insertions(+), 108 deletions(-)
 create mode 100644 meta/classes/update-rc.d_real.bbclass
 create mode 100644 meta/recipes-core/base-files/base-files/fstab.systemd
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units.bb
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units/machineid.service
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units/run-postinsts.service
 create mode 100644 meta/recipes-core/systemd/systemd-serialgetty.bb
 create mode 100644 meta/recipes-core/systemd/systemd-serialgetty/[email protected]
 create mode 100644 meta/recipes-core/systemd/systemd-systemctl-native.bb
 create mode 100755 meta/recipes-core/systemd/systemd-systemctl/systemctl
 create mode 100644 meta/recipes-core/systemd/systemd/00-create-volatile.conf
 create mode 100644 meta/recipes-core/systemd/systemd/0001-Revert-systemd-analyze-use-argparse-instead-of-getop.patch
 create mode 100644 meta/recipes-core/systemd/systemd/0002-Revert-analyze-use-GDBus-instead-of-dbus-python.patch
 create mode 100644 meta/recipes-core/systemd/systemd/modprobe.rules
 create mode 100644 meta/recipes-core/systemd/systemd/optional_secure_getenv.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-configure-check-uclibc.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-execvpe.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-fallocate.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-getty-unit.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-msformat.patch
 create mode 100644 meta/recipes-core/systemd/systemd/touchscreen.rules
 create mode 100644 meta/recipes-core/systemd/systemd/use-rootlibdir.patch
 create mode 100644 meta/recipes-core/systemd/systemd/var-run.conf
 create mode 100644 meta/recipes-core/systemd/systemd_196.bb
Signature · 1 line
1.7.10.4
#1 lore raw

PATCH 1/10 default-distrovars: Add DISTRO_FEATURES_INITMAN to DISTRO_FEATURES

From: Radu Moisan <[email protected]>

This is a more generic way to set the init manager since we plan to support other init managers as well.
I will use this variable as a switch to turn on/off any init scheme that we might support in the future. By default we use sysvinit.

---
 meta/conf/distro/include/default-distrovars.inc           |    3 ++-
 meta/recipes-core/packagegroups/packagegroup-core-boot.bb |    2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)
meta/conf/distro/include/default-distrovars.inc +2 -1
index 9002fd6..f073547 100644
@@ -19,7 +19,8 @@ DISTRO_FEATURES_LIBC_DEFAULT ?= "ipv4 ipv6 libc-backtrace libc-big-macros libc-b
 					libc-posix-wchar-io"
 DISTRO_FEATURES_LIBC ?= "${DISTRO_FEATURES_LIBC_DEFAULT}"
 DISTRO_FEATURES_LIBC_class-nativesdk = "${DISTRO_FEATURES_LIBC_DEFAULT}"
-DISTRO_FEATURES ?= "alsa argp bluetooth ext2 irda largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g x11 ${DISTRO_FEATURES_LIBC}"
+DISTRO_FEATURES_INITMAN ?= "sysvinit"
+DISTRO_FEATURES ?= "alsa argp bluetooth ext2 irda largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g x11 ${DISTRO_FEATURES_LIBC} ${DISTRO_FEATURES_INITMAN}"
 
 IMAGE_FEATURES ?= ""
 
meta/recipes-core/packagegroups/packagegroup-core-boot.bb +1 -1
index 16ad4e3..94e9e32 100644
@@ -26,7 +26,7 @@ RCONFLICTS_${PN} = "task-core-boot"
 # Distro can override the following VIRTUAL-RUNTIME providers:
 VIRTUAL-RUNTIME_dev_manager ?= "udev"
 VIRTUAL-RUNTIME_login_manager ?= "tinylogin"
-VIRTUAL-RUNTIME_init_manager ?= "sysvinit"
+VIRTUAL-RUNTIME_init_manager ?= "${DISTRO_FEATURES_INITMAN}"
 VIRTUAL-RUNTIME_initscripts ?= "initscripts"
 VIRTUAL-RUNTIME_keymaps ?= "keymaps"
 
Signature · 1 line
1.7.10.4
#5 lore raw

PATCH 2/10 default-providers: Automatically set PREFERRED_PROVIDER_udev

In reply to Ross Burton

From: Radu Moisan <[email protected]>

This is a more generic way to set preferred provider for udev. We expect to have multiple choices once we integrate other init managers, and this way we can automatically set it considering distro settings.

---
 meta/conf/distro/include/default-providers.inc |    1 +
 1 file changed, 1 insertion(+)
meta/conf/distro/include/default-providers.inc +1 -0
index 8ed703c..89b6465 100644
@@ -37,3 +37,4 @@ PREFERRED_PROVIDER_nativesdk-opkg ?= "nativesdk-opkg"
 PREFERRED_PROVIDER_console-tools ?= "kbd"
 PREFERRED_PROVIDER_gzip-native ?= "pigz-native"
 PREFERRED_PROVIDER_make ?= "make"
+PREFERRED_PROVIDER_udev ?= "${@base_contains('DISTRO_FEATURES','sysvinit','udev','',d)}"
Signature · 1 line
1.7.10.4
#8 lore raw

PATCH 3/10 dbus: respect systemd distro feature

In reply to Ross Burton

Only configure for systemd if we are using systemd, and remove the dbus-systemd package by putting the service files into PN itself.

---
 meta/recipes-core/dbus/dbus.inc |   27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)
meta/recipes-core/dbus/dbus.inc +14 -13
index bcc5b6b..88218b7 100644
@@ -33,7 +33,7 @@ CONFFILES_${PN} = "${sysconfdir}/dbus-1/system.conf ${sysconfdir}/dbus-1/session
 
 DEBIANNAME_${PN} = "dbus-1"
 
-PACKAGES =+ "${PN}-lib ${PN}-systemd"
+PACKAGES =+ "${PN}-lib"
 
 OLDPKGNAME = "dbus-x11"
 OLDPKGNAME_class-nativesdk = ""
@@ -42,8 +42,6 @@ OLDPKGNAME_class-nativesdk = ""
 RPROVIDES_${PN} = "${OLDPKGNAME}"
 RREPLACES_${PN} += "${OLDPKGNAME}"
 
-FILES_${PN}-systemd = "${systemd_unitdir}/system/"
-
 FILES_${PN} = "${bindir}/dbus-daemon* \
                ${bindir}/dbus-uuidgen \
                ${bindir}/dbus-cleanup-sockets \
@@ -54,7 +52,8 @@ FILES_${PN} = "${bindir}/dbus-daemon* \
                ${sysconfdir} \
                ${localstatedir} \
                ${datadir}/dbus-1/services \
-               ${datadir}/dbus-1/system-services"
+               ${datadir}/dbus-1/system-services \
+               ${systemd_unitdir}/system/"
 FILES_${PN}-lib = "${libdir}/lib*.so.*"
 RRECOMMENDS_${PN}-lib = "${PN}"
 FILES_${PN}-dev += "${libdir}/dbus-1.0/include ${bindir}/dbus-glib-tool"
@@ -67,6 +66,9 @@ pkg_postinst_dbus() {
 
 EXTRA_OECONF_X = "${@base_contains('DISTRO_FEATURES', 'x11', '--with-x', '--without-x', d)}"
 EXTRA_OECONF_X_class-native = "--without-x --disable-x11-autolaunch"
+# TODO: would like to --enable-systemd but that's a circular build-dependency
+# between systemd <->dbus
+EXTRA_OECONF_SYSTEMD = "${@base_contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '', d)}"
 
 EXTRA_OECONF = "--disable-tests \
                 --disable-checks \
@@ -74,15 +76,18 @@ EXTRA_OECONF = "--disable-tests \
                 --disable-doxygen-docs \
                 --disable-libaudit \
                 --with-xml=expat \
-                --with-systemdsystemunitdir=${systemd_unitdir}/system/ \
+                --disable-systemd \
+                ${EXTRA_OECONF_SYSTEMD} \
                 ${EXTRA_OECONF_X}"
 
 do_install() {
 	autotools_do_install
 
-	install -d ${D}${sysconfdir}/init.d
-	sed 's:@bindir@:${bindir}:' < ${WORKDIR}/dbus-1.init >${WORKDIR}/dbus-1.init.sh
-	install -m 0755 ${WORKDIR}/dbus-1.init.sh ${D}${sysconfdir}/init.d/dbus-1
+	if ${@base_contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+		install -d ${D}${sysconfdir}/init.d
+		sed 's:@bindir@:${bindir}:' < ${WORKDIR}/dbus-1.init >${WORKDIR}/dbus-1.init.sh
+		install -m 0755 ${WORKDIR}/dbus-1.init.sh ${D}${sysconfdir}/init.d/dbus-1
+	fi
 
 	install -d ${D}${sysconfdir}/default/volatiles
 	echo "d messagebus messagebus 0755 ${localstatedir}/run/dbus none" \
@@ -101,10 +106,6 @@ do_install() {
 
 	# Remove empty testexec directory as we don't build tests
 	rm -rf ${D}${libdir}/dbus-1.0/test
-
-	# disable dbus-1 sysv script on systemd installs
-	# nearly all distros call the initscript plain 'dbus', but OE-core is different
-	ln -sf /dev/null ${D}/${systemd_unitdir}/system/dbus-1.service
 }
 
 do_install_class-native() {
@@ -114,7 +115,7 @@ do_install_class-native() {
 	install -d ${STAGING_DATADIR_NATIVE}/dbus/
 	# N.B. is below install actually required?
 	install -m 0644 bus/session.conf ${STAGING_DATADIR_NATIVE}/dbus/session.conf
-	
+
 	# dbus-glib-native and dbus-glib need this xml file
 	./bus/dbus-daemon --introspect > ${STAGING_DATADIR_NATIVE}/dbus/dbus-bus-introspect.xml
 }
Signature · 1 line
1.7.10.4
#12 lore raw

PATCH 5/10 default-providers: Add systemd option to PREFERRED_PROVIDER_udev

In reply to Ross Burton

From: Radu Moisan <[email protected]>

---
 meta/conf/distro/include/default-providers.inc |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/conf/distro/include/default-providers.inc +1 -1
index 89b6465..12a581d 100644
@@ -37,4 +37,4 @@ PREFERRED_PROVIDER_nativesdk-opkg ?= "nativesdk-opkg"
 PREFERRED_PROVIDER_console-tools ?= "kbd"
 PREFERRED_PROVIDER_gzip-native ?= "pigz-native"
 PREFERRED_PROVIDER_make ?= "make"
-PREFERRED_PROVIDER_udev ?= "${@base_contains('DISTRO_FEATURES','sysvinit','udev','',d)}"
+PREFERRED_PROVIDER_udev ?= "${@base_contains('DISTRO_FEATURES','sysvinit','udev','',d)}${@base_contains('DISTRO_FEATURES','systemd','systemd','',d)}"
Signature · 1 line
1.7.10.4
#13 lore raw

PATCH 6/10 packagegroup-core-boot: install systemd-compat-units on systemd images

In reply to Ross Burton

systemd-compat-units is needed to run postinsts for example.

---
 meta/recipes-core/packagegroups/packagegroup-core-boot.bb |    1 +
 1 file changed, 1 insertion(+)
meta/recipes-core/packagegroups/packagegroup-core-boot.bb +1 -0
index 94e9e32..fbc50c7 100644
@@ -41,6 +41,7 @@ RDEPENDS_${PN} = "\
     netbase \
     ${VIRTUAL-RUNTIME_login_manager} \
     ${VIRTUAL-RUNTIME_init_manager} \
+    ${@base_contains('DISTRO_FEATURES', 'systemd', 'systemd-compat-units', '',d)} \
     ${VIRTUAL-RUNTIME_dev_manager} \
     ${VIRTUAL-RUNTIME_update-alternatives} \
     ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}"
Signature · 1 line
1.7.10.4
#14 lore raw

PATCH 7/10 update-rc.d: disable update-rc.d.bbclass when systemd enabled

In reply to Ross Burton

From: Radu Moisan <[email protected]>

update-rc.d is not necessary when systemd is enabled, systemctl is the replacement

---
 meta/classes/update-rc.d.bbclass      |   90 +--------------------------------
 meta/classes/update-rc.d_real.bbclass |   89 ++++++++++++++++++++++++++++++++
 2 files changed, 90 insertions(+), 89 deletions(-)
 create mode 100644 meta/classes/update-rc.d_real.bbclass
meta/classes/update-rc.d.bbclass +1 -89
index 83816d6..34f9838 100644
@@ -1,89 +1 @@
-UPDATERCPN ?= "${PN}"
-
-DEPENDS_append = " update-rc.d-native"
-UPDATERCD = "update-rc.d"
-UPDATERCD_virtclass-cross = ""
-UPDATERCD_class-native = ""
-UPDATERCD_class-nativesdk = ""
-
-RDEPENDS_${UPDATERCPN}_append = " ${UPDATERCD}"
-
-INITSCRIPT_PARAMS ?= "defaults"
-
-INIT_D_DIR = "${sysconfdir}/init.d"
-
-updatercd_postinst() {
-if test "x$D" != "x"; then
-	OPT="-r $D"
-else
-	OPT="-s"
-fi
-update-rc.d $OPT ${INITSCRIPT_NAME} ${INITSCRIPT_PARAMS}
-}
-
-updatercd_prerm() {
-if test "x$D" = "x"; then
-	${INIT_D_DIR}/${INITSCRIPT_NAME} stop
-fi
-}
-
-updatercd_postrm() {
-if [ "$D" != "" ]; then
-	update-rc.d -f -r $D ${INITSCRIPT_NAME} remove
-else
-	update-rc.d ${INITSCRIPT_NAME} remove
-fi
-}
-
-
-def update_rc_after_parse(d):
-    if d.getVar('INITSCRIPT_PACKAGES') == None:
-        if d.getVar('INITSCRIPT_NAME') == None:
-            raise bb.build.FuncFailed, "%s inherits update-rc.d but doesn't set INITSCRIPT_NAME" % d.getVar('FILE')
-        if d.getVar('INITSCRIPT_PARAMS') == None:
-            raise bb.build.FuncFailed, "%s inherits update-rc.d but doesn't set INITSCRIPT_PARAMS" % d.getVar('FILE')
-
-python __anonymous() {
-    update_rc_after_parse(d)
-}
-
-python populate_packages_prepend () {
-    def update_rcd_package(pkg):
-        bb.debug(1, 'adding update-rc.d calls to postinst/postrm for %s' % pkg)
-        localdata = bb.data.createCopy(d)
-        overrides = localdata.getVar("OVERRIDES", True)
-        localdata.setVar("OVERRIDES", "%s:%s" % (pkg, overrides))
-        bb.data.update_data(localdata)
-
-        """
-        update_rc.d postinst is appended here because pkg_postinst may require to
-        execute on the target. Not doing so may cause update_rc.d postinst invoked
-        twice to cause unwanted warnings.
-        """ 
-        postinst = localdata.getVar('pkg_postinst', True)
-        if not postinst:
-            postinst = '#!/bin/sh\n'
-        postinst += localdata.getVar('updatercd_postinst', True)
-        d.setVar('pkg_postinst_%s' % pkg, postinst)
-
-        prerm = localdata.getVar('pkg_prerm', True)
-        if not prerm:
-            prerm = '#!/bin/sh\n'
-        prerm += localdata.getVar('updatercd_prerm', True)
-        d.setVar('pkg_prerm_%s' % pkg, prerm)
-
-        postrm = localdata.getVar('pkg_postrm', True)
-        if not postrm:
-                postrm = '#!/bin/sh\n'
-        postrm += localdata.getVar('updatercd_postrm', True)
-        d.setVar('pkg_postrm_%s' % pkg, postrm)
-
-    pkgs = d.getVar('INITSCRIPT_PACKAGES', True)
-    if pkgs == None:
-        pkgs = d.getVar('UPDATERCPN', True)
-        packages = (d.getVar('PACKAGES', True) or "").split()
-        if not pkgs in packages and packages != []:
-            pkgs = packages[0]
-    for pkg in pkgs.split():
-        update_rcd_package(pkg)
-}
+inherit ${@base_contains('DISTRO_FEATURES','sysvinit','update-rc.d_real','',d)}
meta/classes/update-rc.d_real.bbclass new file +89 -0

89 lines not on this page · raw message

Signature · 1 line
1.7.10.4
#15 lore raw

PATCH 8/10 base-files: add fstab for systemd based systems

In reply to Ross Burton

From: Martin Donnelly <[email protected]>

The default fstab has entries which are not necessary in systemd based systems so add a simpler default in this case.

---
 meta/recipes-core/base-files/base-files/fstab.systemd |    9 +++++++++
 meta/recipes-core/base-files/base-files_3.0.14.bb     |    7 ++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-core/base-files/base-files/fstab.systemd
meta/recipes-core/base-files/base-files/fstab.systemd new file +9 -0
new file mode 100644
index 0000000..cb48a0d
@@ -0,0 +1,9 @@
+# stock fstab - you probably want to override this with a machine specific one
+
+rootfs               /                    auto       defaults              1  1
+tmpfs                /var/volatile        tmpfs      defaults              0  0
+tmpfs                /media/ram           tmpfs      defaults              0  0
+
+# uncomment this if your device has a SD/MMC/Transflash slot
+#/dev/mmcblk0p1       /media/card          auto       defaults,sync,noauto  0  0
+
meta/recipes-core/base-files/base-files_3.0.14.bb +6 -1
index 8ef7195..a90e995 100644
@@ -18,6 +18,7 @@ SRC_URI = "file://rotation \
            file://profile \
            file://shells \
            file://fstab \
+           file://fstab.systemd \
            file://filesystems \
            file://issue.net \
            file://issue \
@@ -91,7 +92,11 @@ do_install () {
  		install -m 0644 ${WORKDIR}/rotation ${D}${sysconfdir}/rotation
 	fi
 
-	install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}/fstab
+	if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+		install -m 0644 ${WORKDIR}/fstab.systemd ${D}${sysconfdir}/fstab
+	else
+		install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}/fstab
+	fi
 	install -m 0644 ${WORKDIR}/filesystems ${D}${sysconfdir}/filesystems
 	install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd
 	sed -i "s#ROOTHOME#${ROOT_HOME}#" ${WORKDIR}/profile
Signature · 1 line
1.7.10.4
#9 lore raw

PATCH 4/10 systemd: add systemd recipes

In reply to Ross Burton

From: Radu Moisan <[email protected]>

Add systemd recipes and associated support recipes.

Mostly based on meta-oe/meta-systemd, so almost all credit should go to:

Andreas Müller <[email protected]> Denis 'GNUtoo' Carikli <[email protected]> Holger Hans Peter Freyther <[email protected]> Khem Raj <[email protected]>
Koen Kooi <[email protected]> Martin Jansa <[email protected]>

---
 meta/recipes-core/systemd/systemd-compat-units.bb  |   58 ++++
 .../systemd/systemd-compat-units/machineid.service |   16 +
 .../systemd-compat-units/run-postinsts.service     |   17 +
 meta/recipes-core/systemd/systemd-serialgetty.bb   |   45 +++
 .../systemd-serialgetty/[email protected]      |   32 ++
 .../systemd/systemd-systemctl-native.bb            |   15 +
 .../systemd/systemd-systemctl/systemctl            |  126 ++++++++
 .../systemd/systemd/00-create-volatile.conf        |   10 +
 ...emd-analyze-use-argparse-instead-of-getop.patch |  103 ++++++
 ...-analyze-use-GDBus-instead-of-dbus-python.patch |   91 ++++++
 meta/recipes-core/systemd/systemd/modprobe.rules   |   17 +
 .../systemd/systemd/optional_secure_getenv.patch   |   19 ++
 .../systemd-pam-configure-check-uclibc.patch       |   26 ++
 .../systemd/systemd/systemd-pam-fix-execvpe.patch  |   26 ++
 .../systemd/systemd-pam-fix-fallocate.patch        |   82 +++++
 .../systemd/systemd-pam-fix-getty-unit.patch       |   35 ++
 .../systemd/systemd/systemd-pam-fix-mkostemp.patch |  166 ++++++++++
 .../systemd/systemd/systemd-pam-fix-msformat.patch |  335 ++++++++++++++++++++
 .../recipes-core/systemd/systemd/touchscreen.rules |   18 ++
 .../systemd/systemd/use-rootlibdir.patch           |  107 +++++++
 meta/recipes-core/systemd/systemd/var-run.conf     |    4 +
 meta/recipes-core/systemd/systemd_196.bb           |  249 +++++++++++++++
 22 files changed, 1597 insertions(+)
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units.bb
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units/machineid.service
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units/run-postinsts.service
 create mode 100644 meta/recipes-core/systemd/systemd-serialgetty.bb
 create mode 100644 meta/recipes-core/systemd/systemd-serialgetty/[email protected]
 create mode 100644 meta/recipes-core/systemd/systemd-systemctl-native.bb
 create mode 100755 meta/recipes-core/systemd/systemd-systemctl/systemctl
 create mode 100644 meta/recipes-core/systemd/systemd/00-create-volatile.conf
 create mode 100644 meta/recipes-core/systemd/systemd/0001-Revert-systemd-analyze-use-argparse-instead-of-getop.patch
 create mode 100644 meta/recipes-core/systemd/systemd/0002-Revert-analyze-use-GDBus-instead-of-dbus-python.patch
 create mode 100644 meta/recipes-core/systemd/systemd/modprobe.rules
 create mode 100644 meta/recipes-core/systemd/systemd/optional_secure_getenv.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-configure-check-uclibc.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-execvpe.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-fallocate.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-getty-unit.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-msformat.patch
 create mode 100644 meta/recipes-core/systemd/systemd/touchscreen.rules
 create mode 100644 meta/recipes-core/systemd/systemd/use-rootlibdir.patch
 create mode 100644 meta/recipes-core/systemd/systemd/var-run.conf
 create mode 100644 meta/recipes-core/systemd/systemd_196.bb
meta/recipes-core/systemd/systemd-compat-units.bb new file +58 -0
new file mode 100644
index 0000000..a7bfee3
@@ -0,0 +1,58 @@
+DESCRIPTION = "Units to make systemd work better with existing sysvinit scripts"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
+
+PR = "r18"
+
+inherit allarch
+
+SRC_URI = "file://*.service"
+
+do_install() {
+	install -d ${D}${systemd_unitdir}/system/basic.target.wants
+	install -d ${D}${systemd_unitdir}/system/sysinit.target.wants/
+	install -m 0644 ${WORKDIR}/run-postinsts.service ${D}${systemd_unitdir}/system
+	ln -sf ../run-postinsts.service ${D}${systemd_unitdir}/system/basic.target.wants/
+	ln -sf ../run-postinsts.service ${D}${systemd_unitdir}/system/sysinit.target.wants/
+
+	install -m 0644 ${WORKDIR}/machineid.service ${D}${systemd_unitdir}/system
+	ln -sf ../machineid.service ${D}${systemd_unitdir}/system/sysinit.target.wants/
+	ln -sf ../machineid.service ${D}${systemd_unitdir}/system/basic.target.wants/
+
+	# hack to make old style sysvinit postinsts succeed
+	install -d ${D}${bindir}
+	echo "echo 1" > ${D}${bindir}/runlevel
+	chmod 0755 ${D}${bindir}/runlevel
+}
+
+SYSTEMD_DISABLED_SYSV_SERVICES = " \
+  busybox-udhcpc \
+  dnsmasq \
+  hwclock \
+  networking \
+  syslog.busybox \
+"
+
+pkg_postinst_${PN} () {
+	cd $D${sysconfdir}/init.d
+
+	echo "Disabling the following sysv scripts: "
+
+	OPTS=""
+
+	if [ -n "$D" ]; then
+		OPTS="--root=$D"
+	fi
+
+	for i in ${SYSTEMD_DISABLED_SYSV_SERVICES} ; do
+		if [ \( -e $i -o $i.sh \) -a ! -e $D${sysconfdir}/systemd/system/$i.service ] ; then
+			echo -n "$i: " ; systemctl ${OPTS} mask $i.service
+		fi
+	done ; echo
+}
+
+FILES_${PN} = "${systemd_unitdir}/system ${bindir}"
+RDPEPENDS_${PN} = "systemd"
+
+
meta/recipes-core/systemd/systemd-compat-units/machineid.service new file +16 -0
new file mode 100644
index 0000000..cab8f76
@@ -0,0 +1,16 @@
+[Unit]
+Description=Machine ID first boot configure
+DefaultDependencies=no
+ConditionPathExists=|!/etc/machine-id
+After=remount-rootfs.service
+Before=sysinit.target
+
+[Service]
+ExecStart=/bin/systemd-machine-id-setup
+RemainAfterExit=No
+Type=oneshot
+StandardOutput=syslog
+
+[Install]
+WantedBy=basic.target
+WantedBy=sysinit.target
meta/recipes-core/systemd/systemd-compat-units/run-postinsts.service new file +17 -0
new file mode 100644
index 0000000..da6fe76
@@ -0,0 +1,17 @@
+[Unit]
+Description=Run pending postinsts
+DefaultDependencies=no
+ConditionPathExists=|/etc/rcS.d/S98run-postinsts
+After=remount-rootfs.service tmp.mount
+Before=sysinit.target
+
+[Service]
+ExecStart=/etc/rcS.d/S98run-postinsts
+RemainAfterExit=No
+Type=oneshot
+StandardOutput=syslog
+TimeoutSec=0
+
+[Install]
+WantedBy=basic.target
+WantedBy=sysinit.target
meta/recipes-core/systemd/systemd-serialgetty.bb new file +45 -0

45 lines not on this page · raw message

meta/recipes-core/systemd/systemd-serialgetty/[email protected] new file +32 -0
new file mode 100644
index 0000000..8eeaab6
@@ -0,0 +1,32 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+
+[Unit]
+Description=Serial Getty on %I
+BindTo=dev-%i.device
+After=dev-%i.device systemd-user-sessions.service
+
+# If additional gettys are spawned during boot then we should make
+# sure that this is synchronized before getty.target, even though
+# getty.target didn't actually pull it in.
+Before=getty.target
+
+[Service]
+Environment=TERM=vt100
+ExecStart=-/sbin/agetty -s %I @BAUDRATE@
+Restart=always
+RestartSec=0
+UtmpIdentifier=%I
+TTYPath=/dev/%I
+TTYReset=yes
+TTYVHangup=yes
+KillMode=process
+IgnoreSIGPIPE=no
+
+# Some login implementations ignore SIGTERM, so we send SIGHUP
+# instead, to ensure that login terminates cleanly.
+KillSignal=SIGHUP
meta/recipes-core/systemd/systemd-systemctl-native.bb new file +15 -0
new file mode 100644
index 0000000..5940584
@@ -0,0 +1,15 @@
+DESCRIPTION = "Wrapper to enable of systemd services"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
+
+PR = "r6"
+
+inherit native
+
+SRC_URI = "file://systemctl"
+
+do_install() {
+	install -d ${D}${bindir}
+	install -m 0755 ${WORKDIR}/systemctl ${D}${bindir}
+}
meta/recipes-core/systemd/systemd-systemctl/systemctl new file +126 -0

126 lines not on this page · raw message

meta/recipes-core/systemd/systemd/00-create-volatile.conf new file +10 -0
new file mode 100644
index 0000000..d160a9b
@@ -0,0 +1,10 @@
+#This goes hand-in-hand with the base-files of OE-Core. The file must
+# be sorted before 'systemd.conf' becuase this attempts to create a file
+# inside /var/log.
+
+
+d		/var/volatile/cache	-	-	-	-
+d		/var/volatile/log		-	-	-	-
+d		/var/volatile/lock		-	-	-	-
+d		/var/volatile/run		-	-	-	-
+d		/var/volatile/tmp		-	-	-	-
meta/recipes-core/systemd/systemd/0001-Revert-systemd-analyze-use-argparse-instead-of-getop.patch new file +103 -0

103 lines not on this page · raw message

meta/recipes-core/systemd/systemd/0002-Revert-analyze-use-GDBus-instead-of-dbus-python.patch new file +91 -0

91 lines not on this page · raw message

meta/recipes-core/systemd/systemd/modprobe.rules new file +17 -0
new file mode 100644
index 0000000..d4a096b
@@ -0,0 +1,17 @@
+# There are a number of modifiers that are allowed to be used in some
+# of the different fields. They provide the following subsitutions:
+#
+# %n the "kernel number" of the device.
+#    For example, 'sda3' has a "kernel number" of '3'
+# %e the smallest number for that name which does not matches an existing node
+# %k the kernel name for the device
+# %M the kernel major number for the device
+# %m the kernel minor number for the device
+# %b the bus id for the device
+# %c the string returned by the PROGRAM
+# %s{filename} the content of a sysfs attribute
+# %% the '%' char itself
+#
+
+# Try and modprobe for drivers for new hardware
+ACTION=="add", DEVPATH=="/devices/*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe $env{MODALIAS}"
meta/recipes-core/systemd/systemd/optional_secure_getenv.patch new file +19 -0
new file mode 100644
index 0000000..35f1467
@@ -0,0 +1,19 @@
+on uclibc secure_getenv is not available
+therefore default to using getenv instead
+
+Singed-off-by: Khem Raj <[email protected]>
+
+Upstream-Status: Pending
+Index: git/src/shared/missing.h
+===================================================================
+--- git.orig/src/shared/missing.h	2012-09-22 18:46:44.141282145 -0700
++++ git/src/shared/missing.h	2012-09-22 18:48:44.081276570 -0700
+@@ -233,6 +233,8 @@
+ #ifndef HAVE_SECURE_GETENV
+ #  ifdef HAVE___SECURE_GETENV
+ #    define secure_getenv __secure_getenv
++#  elif defined __UCLIBC__
++#    define secure_getenv getenv
+ #  else
+ #    error neither secure_getenv nor __secure_getenv are available
+ #  endif
meta/recipes-core/systemd/systemd/systemd-pam-configure-check-uclibc.patch new file +26 -0
new file mode 100644
index 0000000..1bfc3bd
@@ -0,0 +1,26 @@
+--- systemd-185.orig/configure.ac	2012-06-04 14:15:16.000000000 -0400
++++ systemd-pam-185/configure.ac	2012-06-21 22:57:10.000000000 -0400
+@@ -63,6 +63,23 @@
+ 
+ AC_PATH_PROG([M4], [m4])
+ 
++# check for few functions not implemented in uClibc
++
++AC_CHECK_FUNCS_ONCE(mkostemp execvpe posix_fallocate)
++
++# check for %ms format support - assume always no if cross compiling
++
++AC_MSG_CHECKING([whether %ms format is supported by *scanf])
++
++AC_RUN_IFELSE(
++	[AC_LANG_PROGRAM([[ include <stdio.h> ]],
++			[[ char *buf1, *buf2, *buf3, str="1 2.3 abcde" ;
++			   int rc = sscanf(str, "%ms %ms %ms", &buf1, &buf2, &buf3) ;
++			   return (rc==3)?0:1;]])],
++	[AC_DEFINE([HAVE_MSFORMAT], [1], [Define if %ms format is supported by *scanf.])],
++	[AC_MSG_RESULT([no])],
++	[AC_MSG_RESULT([no])])
++
+ # gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line
+ m4_ifdef([GTK_DOC_CHECK], [
+ GTK_DOC_CHECK([1.18],[--flavour no-tmpl])
meta/recipes-core/systemd/systemd/systemd-pam-fix-execvpe.patch new file +26 -0
new file mode 100644
index 0000000..449c27f
@@ -0,0 +1,26 @@
+Index: git/src/nspawn/nspawn.c
+===================================================================
+--- git.orig/src/nspawn/nspawn.c	2012-09-22 17:57:05.000000000 -0700
++++ git/src/nspawn/nspawn.c	2012-09-22 18:01:41.541405768 -0700
+@@ -63,6 +63,8 @@
+         LINK_GUEST
+ } LinkJournal;
+ 
++#include "config.h"
++
+ static char *arg_directory = NULL;
+ static char *arg_user = NULL;
+ static char **arg_controllers = NULL;
+@@ -1373,7 +1375,12 @@
+                                 a[0] = (char*) "/sbin/init";
+                                 execve(a[0], a, (char**) envp);
+                         } else if (argc > optind)
++#ifdef HAVE_EXECVPE
+                                 execvpe(argv[optind], argv + optind, (char**) envp);
++#else
++                                environ = (char **)envp;
++                                execvp(argv[optind], argv + optind);
++#endif /* HAVE_EXECVPE */			
+                         else {
+                                 chdir(home ? home : "/root");
+                                 execle("/bin/bash", "-bash", NULL, (char**) envp);
meta/recipes-core/systemd/systemd/systemd-pam-fix-fallocate.patch new file +82 -0

82 lines not on this page · raw message

meta/recipes-core/systemd/systemd/systemd-pam-fix-getty-unit.patch new file +35 -0
new file mode 100644
index 0000000..3e5ea71
@@ -0,0 +1,35 @@
+Prefer getty to agetty in console setup systemd units
+
+Signed-off-by: Maxime Ripard <[email protected]>
+---
+ units/[email protected]        |    2 +-
+ units/[email protected] |    2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+Index: systemd-37/units/[email protected]
+===================================================================
+--- systemd-37.orig/units/[email protected]
++++ systemd-37/units/[email protected]
+@@ -41,7 +41,7 @@
+ 
+ [Service]
+ Environment=TERM=linux
+ # the VT is cleared by TTYVTDisallocate
+-ExecStart=-/sbin/agetty --noclear %I 38400
++ExecStart=-/sbin/getty -L %I 115200 linux
+ Type=idle
+ Restart=always
+ RestartSec=0
+Index: systemd-37/units/[email protected]
+===================================================================
+--- systemd-37.orig/units/[email protected]
++++ systemd-37/units/[email protected]
+@@ -37,7 +37,7 @@
+ 
+ [Service]
+ Environment=TERM=vt102
+-ExecStart=-/sbin/agetty -s %I 115200,38400,9600
++ExecStart=-/sbin/getty -L %I 115200 vt100
+ Type=idle
+ Restart=always
+ RestartSec=0
meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch new file +166 -0

166 lines not on this page · raw message

meta/recipes-core/systemd/systemd/systemd-pam-fix-msformat.patch new file +335 -0

335 lines not on this page · raw message

meta/recipes-core/systemd/systemd/touchscreen.rules new file +18 -0
new file mode 100644
index 0000000..d83fd16
@@ -0,0 +1,18 @@
+# There are a number of modifiers that are allowed to be used in some
+# of the different fields. They provide the following subsitutions:
+#
+# %n the "kernel number" of the device.
+#    For example, 'sda3' has a "kernel number" of '3'
+# %e the smallest number for that name which does not matches an existing node
+# %k the kernel name for the device
+# %M the kernel major number for the device
+# %m the kernel minor number for the device
+# %b the bus id for the device
+# %c the string returned by the PROGRAM
+# %s{filename} the content of a sysfs attribute
+# %% the '%' char itself
+#
+
+# Create a symlink to any touchscreen input device
+SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0"
+SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="ads7846", SYMLINK+="input/touchscreen0"
meta/recipes-core/systemd/systemd/use-rootlibdir.patch new file +107 -0

107 lines not on this page · raw message

meta/recipes-core/systemd/systemd/var-run.conf new file +4 -0
new file mode 100644
index 0000000..c2c18e2
@@ -0,0 +1,4 @@
+# empty /var/run
+R	/var/run/*	-	-	-	-	-
+# systemd-update-utmp-runlevel.service fails to start without this
+f /var/run/utmp 0644 root root - -
meta/recipes-core/systemd/systemd_196.bb new file +249 -0

249 lines not on this page · raw message

Signature · 1 line
1.7.10.4
#16 lore raw

PATCH 9/10 packagegroup-core-boot: only install initscripts if we're using sysvinit

In reply to Ross Burton
---
 meta/recipes-core/packagegroups/packagegroup-core-boot.bb |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/recipes-core/packagegroups/packagegroup-core-boot.bb +2 -2
index fbc50c7..edb9e74 100644
@@ -27,7 +27,7 @@ RCONFLICTS_${PN} = "task-core-boot"
 VIRTUAL-RUNTIME_dev_manager ?= "udev"
 VIRTUAL-RUNTIME_login_manager ?= "tinylogin"
 VIRTUAL-RUNTIME_init_manager ?= "${DISTRO_FEATURES_INITMAN}"
-VIRTUAL-RUNTIME_initscripts ?= "initscripts"
+VIRTUAL-RUNTIME_initscripts ?= "${@base_contains('DISTRO_FEATURES', 'sysvinit', 'initscripts', '',d)}"
 VIRTUAL-RUNTIME_keymaps ?= "keymaps"
 
 RDEPENDS_${PN} = "\
@@ -35,12 +35,12 @@ RDEPENDS_${PN} = "\
     base-passwd \
     busybox \
     ${@base_contains("MACHINE_FEATURES", "rtc", "busybox-hwclock", "", d)} \
-    ${VIRTUAL-RUNTIME_initscripts} \
     ${@base_contains("MACHINE_FEATURES", "keyboard", "${VIRTUAL-RUNTIME_keymaps}", "", d)} \
     modutils-initscripts \
     netbase \
     ${VIRTUAL-RUNTIME_login_manager} \
     ${VIRTUAL-RUNTIME_init_manager} \
+    ${VIRTUAL-RUNTIME_initscripts} \
     ${@base_contains('DISTRO_FEATURES', 'systemd', 'systemd-compat-units', '',d)} \
     ${VIRTUAL-RUNTIME_dev_manager} \
     ${VIRTUAL-RUNTIME_update-alternatives} \
Signature · 1 line
1.7.10.4
#17 lore raw

PATCH 10/10 libpam: register PAM session with logind

In reply to Ross Burton

From: Koen Kooi <[email protected]>

This make screen/tmux/etc work as intended.

---
 meta/recipes-extended/pam/libpam/pam.d/common-session |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
meta/recipes-extended/pam/libpam/pam.d/common-session +3 -1
index a594dd9..7fd61fe 100644
@@ -16,4 +16,6 @@ session	requisite			pam_deny.so
 # since the modules above will each just jump around
 session	required			pam_permit.so
 # and here are more per-package modules (the "Additional" block)
-session	required	pam_unix.so 
+session	required	pam_unix.so
+# Register with logind to make screen/tmux/etc work
+session	optional	pam_systemd.so
Signature · 1 line
1.7.10.4
#18 lore raw
In reply to Ross Burton
Quoted 15 lines · Ross Burton

Hi,

This series has the goal of enabling core-image-minimal to boot using systemd. As such it touches no real services, just the infrastructural tweaks to make the init manager a distribution choice, systemd itself, and a few low-level changes.

95% of the credit obviously must go to the contributors of meta-systemd:

Andreas Müller <[email protected]> Denis 'GNUtoo' Carikli <[email protected]> Holger Hans Peter Freyther <[email protected]> Khem Raj <[email protected]>
Koen Kooi <[email protected]> Martin Jansa <[email protected]>

Quoted 6 lines

And thanks to Radu Moisan <[email protected]> for the work pulling together a series for merging into oe-core.

Confirmed that this series using sysvinit results in a zero-delta in core-image-minimal.

This change introduced a new warning about un-packaged files:

Quoted 5 lines

WARNING: QA Issue: connman: Files/directories were installed but not shipped
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/connman.service

Sau!

Quoted 168 lines

Cheers,
Ross

The following changes since commit 349e5bea53b02cabf836b8943541a002ce9ba682:

   guilt: add git 1.8.x support (2013-01-18 13:28:10 +0000)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib ross/systemd-minimal

for you to fetch changes up to 2a93db0fd8302290ac0f2c6c83ea640ad273c3e2:

libpam: register PAM session with logind (2013-01-19 22:35:52 +0000)

----------------------------------------------------------------
Koen Kooi (1):
libpam: register PAM session with logind

Martin Donnelly (1):
base-files: add fstab for systemd based systems

Radu Moisan (5):
default-distrovars: Add DISTRO_FEATURES_INITMAN to DISTRO_FEATURES
default-providers: Automatically set PREFERRED_PROVIDER_udev
systemd: add systemd recipes
default-providers: Add systemd option to PREFERRED_PROVIDER_udev update-rc.d: disable update-rc.d.bbclass when systemd enabled

Ross Burton (3):
dbus: respect systemd distro feature
packagegroup-core-boot: install systemd-compat-units on systemd images
packagegroup-core-boot: only install initscripts if we're using sysvinit

  meta/classes/update-rc.d.bbclass                   |   90 +-----
  meta/classes/update-rc.d_real.bbclass              |   89 ++++++
  meta/conf/distro/include/default-distrovars.inc    |    3 +-
  meta/conf/distro/include/default-providers.inc     |    1 +
  .../base-files/base-files/fstab.systemd            |    9 +
  meta/recipes-core/base-files/base-files_3.0.14.bb  |    7 +-
  meta/recipes-core/dbus/dbus.inc                    |   27 +-
  .../packagegroups/packagegroup-core-boot.bb        |    7 +-
  meta/recipes-core/systemd/systemd-compat-units.bb  |   58 ++++
  .../systemd/systemd-compat-units/machineid.service |   16 +
  .../systemd-compat-units/run-postinsts.service     |   17 +
  meta/recipes-core/systemd/systemd-serialgetty.bb   |   45 +++
  .../systemd-serialgetty/[email protected]      |   32 ++
  .../systemd/systemd-systemctl-native.bb            |   15 +
  .../systemd/systemd-systemctl/systemctl            |  126 ++++++++
  .../systemd/systemd/00-create-volatile.conf        |   10 +
  ...emd-analyze-use-argparse-instead-of-getop.patch |  103 ++++++
  ...-analyze-use-GDBus-instead-of-dbus-python.patch |   91 ++++++
  meta/recipes-core/systemd/systemd/modprobe.rules   |   17 +
  .../systemd/systemd/optional_secure_getenv.patch   |   19 ++
  .../systemd-pam-configure-check-uclibc.patch       |   26 ++
  .../systemd/systemd/systemd-pam-fix-execvpe.patch  |   26 ++
  .../systemd/systemd-pam-fix-fallocate.patch        |   82 +++++
  .../systemd/systemd-pam-fix-getty-unit.patch       |   35 ++
  .../systemd/systemd/systemd-pam-fix-mkostemp.patch |  166 ++++++++++
  .../systemd/systemd/systemd-pam-fix-msformat.patch |  335 ++++++++++++++++++++
  .../recipes-core/systemd/systemd/touchscreen.rules |   18 ++
  .../systemd/systemd/use-rootlibdir.patch           |  107 +++++++
  meta/recipes-core/systemd/systemd/var-run.conf     |    4 +
  meta/recipes-core/systemd/systemd_196.bb           |  249 +++++++++++++++
  .../pam/libpam/pam.d/common-session                |    4 +-
  31 files changed, 1726 insertions(+), 108 deletions(-)

create mode 100644 meta/classes/update-rc.d_real.bbclass
create mode 100644 meta/recipes-core/base-files/base-files/fstab.systemd
create mode 100644 meta/recipes-core/systemd/systemd-compat-units.bb
create mode 100644 meta/recipes-core/systemd/systemd-compat-units/machineid.service
create mode 100644 meta/recipes-core/systemd/systemd-compat-units/run-postinsts.service
create mode 100644 meta/recipes-core/systemd/systemd-serialgetty.bb
create mode 100644 meta/recipes-core/systemd/systemd-serialgetty/[email protected]
create mode 100644 meta/recipes-core/systemd/systemd-systemctl-native.bb
create mode 100755 meta/recipes-core/systemd/systemd-systemctl/systemctl
create mode 100644 meta/recipes-core/systemd/systemd/00-create-volatile.conf
create mode 100644 meta/recipes-core/systemd/systemd/0001-Revert-systemd-analyze-use-argparse-instead-of-getop.patch create mode 100644 meta/recipes-core/systemd/systemd/0002-Revert-analyze-use-GDBus-instead-of-dbus-python.patch create mode 100644 meta/recipes-core/systemd/systemd/modprobe.rules
create mode 100644 meta/recipes-core/systemd/systemd/optional_secure_getenv.patch
create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-configure-check-uclibc.patch create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-execvpe.patch
create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-fallocate.patch
create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-getty-unit.patch
create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch
create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-msformat.patch
create mode 100644 meta/recipes-core/systemd/systemd/touchscreen.rules
create mode 100644 meta/recipes-core/systemd/systemd/use-rootlibdir.patch
create mode 100644 meta/recipes-core/systemd/systemd/var-run.conf
create mode 100644 meta/recipes-core/systemd/systemd_196.bb

Koen Kooi (1):
libpam: register PAM session with logind

Martin Donnelly (1):
base-files: add fstab for systemd based systems

Radu Moisan (5):
default-distrovars: Add DISTRO_FEATURES_INITMAN to DISTRO_FEATURES
default-providers: Automatically set PREFERRED_PROVIDER_udev
systemd: add systemd recipes
default-providers: Add systemd option to PREFERRED_PROVIDER_udev update-rc.d: disable update-rc.d.bbclass when systemd enabled

Ross Burton (3):
dbus: respect systemd distro feature
packagegroup-core-boot: install systemd-compat-units on systemd
images
packagegroup-core-boot: only install initscripts if we're using
sysvinit

  meta/classes/update-rc.d.bbclass                   |   90 +-----
  meta/classes/update-rc.d_real.bbclass              |   89 ++++++
  meta/conf/distro/include/default-distrovars.inc    |    3 +-
  meta/conf/distro/include/default-providers.inc     |    1 +
  .../base-files/base-files/fstab.systemd            |    9 +
  meta/recipes-core/base-files/base-files_3.0.14.bb  |    7 +-
  meta/recipes-core/dbus/dbus.inc                    |   27 +-
  .../packagegroups/packagegroup-core-boot.bb        |    7 +-
  meta/recipes-core/systemd/systemd-compat-units.bb  |   58 ++++
  .../systemd/systemd-compat-units/machineid.service |   16 +
  .../systemd-compat-units/run-postinsts.service     |   17 +
  meta/recipes-core/systemd/systemd-serialgetty.bb   |   45 +++
  .../systemd-serialgetty/[email protected]      |   32 ++
  .../systemd/systemd-systemctl-native.bb            |   15 +
  .../systemd/systemd-systemctl/systemctl            |  126 ++++++++
  .../systemd/systemd/00-create-volatile.conf        |   10 +
  ...emd-analyze-use-argparse-instead-of-getop.patch |  103 ++++++
  ...-analyze-use-GDBus-instead-of-dbus-python.patch |   91 ++++++
  meta/recipes-core/systemd/systemd/modprobe.rules   |   17 +
  .../systemd/systemd/optional_secure_getenv.patch   |   19 ++
  .../systemd-pam-configure-check-uclibc.patch       |   26 ++
  .../systemd/systemd/systemd-pam-fix-execvpe.patch  |   26 ++
  .../systemd/systemd-pam-fix-fallocate.patch        |   82 +++++
  .../systemd/systemd-pam-fix-getty-unit.patch       |   35 ++
  .../systemd/systemd/systemd-pam-fix-mkostemp.patch |  166 ++++++++++
  .../systemd/systemd/systemd-pam-fix-msformat.patch |  335 ++++++++++++++++++++
  .../recipes-core/systemd/systemd/touchscreen.rules |   18 ++
  .../systemd/systemd/use-rootlibdir.patch           |  107 +++++++
  meta/recipes-core/systemd/systemd/var-run.conf     |    4 +
  meta/recipes-core/systemd/systemd_196.bb           |  249 +++++++++++++++
  .../pam/libpam/pam.d/common-session                |    4 +-
  31 files changed, 1726 insertions(+), 108 deletions(-)

create mode 100644 meta/classes/update-rc.d_real.bbclass
create mode 100644 meta/recipes-core/base-files/base-files/fstab.systemd
create mode 100644 meta/recipes-core/systemd/systemd-compat-units.bb
create mode 100644 meta/recipes-core/systemd/systemd-compat-units/machineid.service
create mode 100644 meta/recipes-core/systemd/systemd-compat-units/run-postinsts.service
create mode 100644 meta/recipes-core/systemd/systemd-serialgetty.bb
create mode 100644 meta/recipes-core/systemd/systemd-serialgetty/[email protected]
create mode 100644 meta/recipes-core/systemd/systemd-systemctl-native.bb
create mode 100755 meta/recipes-core/systemd/systemd-systemctl/systemctl
create mode 100644 meta/recipes-core/systemd/systemd/00-create-volatile.conf
create mode 100644 meta/recipes-core/systemd/systemd/0001-Revert-systemd-analyze-use-argparse-instead-of-getop.patch create mode 100644 meta/recipes-core/systemd/systemd/0002-Revert-analyze-use-GDBus-instead-of-dbus-python.patch create mode 100644 meta/recipes-core/systemd/systemd/modprobe.rules
create mode 100644 meta/recipes-core/systemd/systemd/optional_secure_getenv.patch
create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-configure-check-uclibc.patch create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-execvpe.patch
create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-fallocate.patch
create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-getty-unit.patch
create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch
create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-msformat.patch
create mode 100644 meta/recipes-core/systemd/systemd/touchscreen.rules
create mode 100644 meta/recipes-core/systemd/systemd/use-rootlibdir.patch
create mode 100644 meta/recipes-core/systemd/systemd/var-run.conf
create mode 100644 meta/recipes-core/systemd/systemd_196.bb

#19 lore raw
Quoted 8 lines · Saul Wold

This change introduced a new warning about un-packaged files:

Quoted 6 lines

WARNING: QA Issue: connman: Files/directories were installed but not shipped
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/connman.service

That will be connman detecting the systemd pkgconfig files in the sysroot and enabling the integration automatically. To avoid either
a) enabling systemd integration in every service that does this or b) disabling systemd in every service that does this, can we ignore these warnings knowing that they'll be resolved when the rest of the integration lands?

Ross

#10 lore raw

Re: [PATCH 04/10] systemd: add systemd recipes

In reply to Ross Burton
Quoted 13 lines · Ross Burton

From: Radu Moisan <[email protected]>

Add systemd recipes and associated support recipes.

Mostly based on meta-oe/meta-systemd, so almost all credit should go to:

Andreas Müller <[email protected]> Denis 'GNUtoo' Carikli <[email protected]> Holger Hans Peter Freyther <[email protected]> Khem Raj <[email protected]>
Koen Kooi <[email protected]> Martin Jansa <[email protected]>

Quoted 3 lines

---

Looking at diff between oe-core systemd recipe and meta-systemd, can you explain why python support got disabled.

And why are there diffs like:

-               /libstemd-udevd \
+               /lib/udev/udevd \
+               /lib/systemd/systemd-udevd \

(the later is meta-systemd).

Is there some plan to send patches for meta-systemd to remove bits merged to oe-core? Right now a lot of stuff is not parsing due to removed dbus-systemd package.

Cheers,

Quoted 1,783 lines
 meta/recipes-core/systemd/systemd-compat-units.bb  |   58 ++++
 .../systemd/systemd-compat-units/machineid.service |   16 +
 .../systemd-compat-units/run-postinsts.service     |   17 +
 meta/recipes-core/systemd/systemd-serialgetty.bb   |   45 +++
 .../systemd-serialgetty/[email protected]      |   32 ++
 .../systemd/systemd-systemctl-native.bb            |   15 +
 .../systemd/systemd-systemctl/systemctl            |  126 ++++++++
 .../systemd/systemd/00-create-volatile.conf        |   10 +
 ...emd-analyze-use-argparse-instead-of-getop.patch |  103 ++++++
 ...-analyze-use-GDBus-instead-of-dbus-python.patch |   91 ++++++
 meta/recipes-core/systemd/systemd/modprobe.rules   |   17 +
 .../systemd/systemd/optional_secure_getenv.patch   |   19 ++
 .../systemd-pam-configure-check-uclibc.patch       |   26 ++
 .../systemd/systemd/systemd-pam-fix-execvpe.patch  |   26 ++
 .../systemd/systemd-pam-fix-fallocate.patch        |   82 +++++
 .../systemd/systemd-pam-fix-getty-unit.patch       |   35 ++
 .../systemd/systemd/systemd-pam-fix-mkostemp.patch |  166 ++++++++++
 .../systemd/systemd/systemd-pam-fix-msformat.patch |  335 ++++++++++++++++++++
 .../recipes-core/systemd/systemd/touchscreen.rules |   18 ++
 .../systemd/systemd/use-rootlibdir.patch           |  107 +++++++
 meta/recipes-core/systemd/systemd/var-run.conf     |    4 +
 meta/recipes-core/systemd/systemd_196.bb           |  249 +++++++++++++++
 22 files changed, 1597 insertions(+)
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units.bb
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units/machineid.service
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units/run-postinsts.service
 create mode 100644 meta/recipes-core/systemd/systemd-serialgetty.bb
 create mode 100644 meta/recipes-core/systemd/systemd-serialgetty/[email protected]
 create mode 100644 meta/recipes-core/systemd/systemd-systemctl-native.bb
 create mode 100755 meta/recipes-core/systemd/systemd-systemctl/systemctl
 create mode 100644 meta/recipes-core/systemd/systemd/00-create-volatile.conf
 create mode 100644 meta/recipes-core/systemd/systemd/0001-Revert-systemd-analyze-use-argparse-instead-of-getop.patch
 create mode 100644 meta/recipes-core/systemd/systemd/0002-Revert-analyze-use-GDBus-instead-of-dbus-python.patch
 create mode 100644 meta/recipes-core/systemd/systemd/modprobe.rules
 create mode 100644 meta/recipes-core/systemd/systemd/optional_secure_getenv.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-configure-check-uclibc.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-execvpe.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-fallocate.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-getty-unit.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-msformat.patch
 create mode 100644 meta/recipes-core/systemd/systemd/touchscreen.rules
 create mode 100644 meta/recipes-core/systemd/systemd/use-rootlibdir.patch
 create mode 100644 meta/recipes-core/systemd/systemd/var-run.conf
 create mode 100644 meta/recipes-core/systemd/systemd_196.bb
meta/recipes-core/systemd/systemd-compat-units.bb new file +58 -0
new file mode 100644
index 0000000..a7bfee3
@@ -0,0 +1,58 @@
+DESCRIPTION = "Units to make systemd work better with existing sysvinit scripts"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
+
+PR = "r18"
+
+inherit allarch
+
+SRC_URI = "file://*.service"
+
+do_install() {
+	install -d ${D}${systemd_unitdir}/system/basic.target.wants
+	install -d ${D}${systemd_unitdir}/system/sysinit.target.wants/
+	install -m 0644 ${WORKDIR}/run-postinsts.service ${D}${systemd_unitdir}/system
+	ln -sf ../run-postinsts.service ${D}${systemd_unitdir}/system/basic.target.wants/
+	ln -sf ../run-postinsts.service ${D}${systemd_unitdir}/system/sysinit.target.wants/
+
+	install -m 0644 ${WORKDIR}/machineid.service ${D}${systemd_unitdir}/system
+	ln -sf ../machineid.service ${D}${systemd_unitdir}/system/sysinit.target.wants/
+	ln -sf ../machineid.service ${D}${systemd_unitdir}/system/basic.target.wants/
+
+	# hack to make old style sysvinit postinsts succeed
+	install -d ${D}${bindir}
+	echo "echo 1" > ${D}${bindir}/runlevel
+	chmod 0755 ${D}${bindir}/runlevel
+}
+
+SYSTEMD_DISABLED_SYSV_SERVICES = " \
+  busybox-udhcpc \
+  dnsmasq \
+  hwclock \
+  networking \
+  syslog.busybox \
+"
+
+pkg_postinst_${PN} () {
+	cd $D${sysconfdir}/init.d
+
+	echo "Disabling the following sysv scripts: "
+
+	OPTS=""
+
+	if [ -n "$D" ]; then
+		OPTS="--root=$D"
+	fi
+
+	for i in ${SYSTEMD_DISABLED_SYSV_SERVICES} ; do
+		if [ \( -e $i -o $i.sh \) -a ! -e $D${sysconfdir}/systemd/system/$i.service ] ; then
+			echo -n "$i: " ; systemctl ${OPTS} mask $i.service
+		fi
+	done ; echo
+}
+
+FILES_${PN} = "${systemd_unitdir}/system ${bindir}"
+RDPEPENDS_${PN} = "systemd"
+
+
meta/recipes-core/systemd/systemd-compat-units/machineid.service new file +16 -0
new file mode 100644
index 0000000..cab8f76
@@ -0,0 +1,16 @@
+[Unit]
+Description=Machine ID first boot configure
+DefaultDependencies=no
+ConditionPathExists=|!/etc/machine-id
+After=remount-rootfs.service
+Before=sysinit.target
+
+[Service]
+ExecStart=/bin/systemd-machine-id-setup
+RemainAfterExit=No
+Type=oneshot
+StandardOutput=syslog
+
+[Install]
+WantedBy=basic.target
+WantedBy=sysinit.target
meta/recipes-core/systemd/systemd-compat-units/run-postinsts.service new file +17 -0
new file mode 100644
index 0000000..da6fe76
@@ -0,0 +1,17 @@
+[Unit]
+Description=Run pending postinsts
+DefaultDependencies=no
+ConditionPathExists=|/etc/rcS.d/S98run-postinsts
+After=remount-rootfs.service tmp.mount
+Before=sysinit.target
+
+[Service]
+ExecStart=/etc/rcS.d/S98run-postinsts
+RemainAfterExit=No
+Type=oneshot
+StandardOutput=syslog
+TimeoutSec=0
+
+[Install]
+WantedBy=basic.target
+WantedBy=sysinit.target
meta/recipes-core/systemd/systemd-serialgetty.bb new file +45 -0
new file mode 100644
index 0000000..7e7368b
@@ -0,0 +1,45 @@
+DESCRIPTION = "Systemd serial config"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
+
+PR = "r3"
+
+SERIAL_CONSOLE ?= "115200 ttyS0"
+
+SRC_URI = "file://[email protected]"
+
+def get_serial_console_value(d, index):
+    c = d.getVar('SERIAL_CONSOLE', True)
+
+    if len(c):
+        return c.split()[index]
+
+    return ""
+
+def get_baudrate(d):
+    return get_serial_console_value(d, 0)
+
+def get_console(d):
+    return get_serial_console_value(d, 1)
+
+do_install() {
+	if [ ! ${@get_baudrate(d)} = "" ]; then
+		sed -i -e s/\@BAUDRATE\@/${@get_baudrate(d)}/g ${WORKDIR}/[email protected]
+		install -d ${D}${systemd_unitdir}/system/
+		install -d ${D}${sysconfdir}/systemd/system/getty.target.wants/
+		install ${WORKDIR}/[email protected] ${D}${systemd_unitdir}/system/
+
+		# enable the service
+		ln -sf ${systemd_unitdir}/system/[email protected] \
+			${D}${sysconfdir}/systemd/system/getty.target.wants/serial-getty@${@get_console(d)}.service
+	fi
+}
+
+PACKAGES = "${PN} ${PN}-dbg ${PN}-dev ${PN}-doc"
+
+RRECOMMENDS_${PN} = ""
+RDEPENDS_${PN} = "systemd"
+
+# This is a machine specific file
+FILES_${PN} = "${systemd_unitdir}/system/[email protected] ${sysconfdir}"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
meta/recipes-core/systemd/systemd-serialgetty/[email protected] new file +32 -0
new file mode 100644
index 0000000..8eeaab6
@@ -0,0 +1,32 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+
+[Unit]
+Description=Serial Getty on %I
+BindTo=dev-%i.device
+After=dev-%i.device systemd-user-sessions.service
+
+# If additional gettys are spawned during boot then we should make
+# sure that this is synchronized before getty.target, even though
+# getty.target didn't actually pull it in.
+Before=getty.target
+
+[Service]
+Environment=TERM=vt100
+ExecStart=-/sbin/agetty -s %I @BAUDRATE@
+Restart=always
+RestartSec=0
+UtmpIdentifier=%I
+TTYPath=/dev/%I
+TTYReset=yes
+TTYVHangup=yes
+KillMode=process
+IgnoreSIGPIPE=no
+
+# Some login implementations ignore SIGTERM, so we send SIGHUP
+# instead, to ensure that login terminates cleanly.
+KillSignal=SIGHUP
meta/recipes-core/systemd/systemd-systemctl-native.bb new file +15 -0
new file mode 100644
index 0000000..5940584
@@ -0,0 +1,15 @@
+DESCRIPTION = "Wrapper to enable of systemd services"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
+
+PR = "r6"
+
+inherit native
+
+SRC_URI = "file://systemctl"
+
+do_install() {
+	install -d ${D}${bindir}
+	install -m 0755 ${WORKDIR}/systemctl ${D}${bindir}
+}
meta/recipes-core/systemd/systemd-systemctl/systemctl new file +126 -0
new file mode 100755
index 0000000..d71c7ed
@@ -0,0 +1,126 @@
+#!/bin/sh
+echo "Started $0 $*"
+
+ROOT=
+
+# parse command line params
+action=
+while [ $# != 0 ]; do
+	opt="$1"
+
+	case "$opt" in
+		enable)
+			shift
+
+			action="$opt"
+			services="$1"
+			cmd_args="1"
+			shift
+			;;
+		disable)
+			shift
+
+			action="$opt"
+			services="$1"
+			cmd_args="1"
+			shift
+			;;
+		mask)
+			shift
+
+			action="$opt"
+			services="$1"
+			cmd_args="1"
+			shift
+			;;
+		--root=*)
+			ROOT=${opt##--root=}
+			cmd_args="0"
+			shift
+			;;
+		*)
+			if [ "$cmd_args" = "1" ]; then
+				services="$services $opt" 
+				shift
+			else
+				echo "'$opt' is an unkown option; exiting with error"
+				exit 1
+			fi
+			;;
+	esac
+done
+
+for service in $services; do
+	if [ "$action" = "mask" ]; then
+		if [ ! -d $ROOT/etc/systemd/system/ ]; then
+			mkdir -p $ROOT/etc/systemd/system/
+		fi
+		cmd="ln -s /dev/null $ROOT/etc/systemd/system/$service"
+		echo "$cmd"
+		$cmd
+		exit 0
+	fi
+
+	echo "Try to find location of $service..."
+	# find service file
+	for p in $ROOT/etc/systemd/system \
+		 $ROOT/lib/systemd/system \
+		 $ROOT/usr/lib/systemd/system; do
+		if [ -e $p/$service ]; then
+			service_file=$p/$service
+			service_file=${service_file##$ROOT}
+		fi
+	done
+	if [ -z "$service_file" ]; then
+		echo "'$service' couldn't be found; exiting with error"
+		exit 1
+	fi
+	echo "Found $service in $service_file"
+
+	# create the required symbolic links
+	wanted_by=$(grep WantedBy $ROOT/$service_file \
+		        | sed 's,WantedBy=,,g' \
+		        | tr ',' '\n' \
+		        | grep '\(\.target$\)\|\(\.service$\)')
+
+	for r in $wanted_by; do
+		echo "WantedBy=$r found in $service"
+		if [ "$action" = "enable" ]; then
+			mkdir -p $ROOT/etc/systemd/system/$r.wants
+			ln -s $service_file $ROOT/etc/systemd/system/$r.wants
+			echo "Enabled $service for $wanted_by."
+		else
+			rm -f $ROOT/etc/systemd/system/$r.wants/$service
+			rmdir --ignore-fail-on-non-empty -p $ROOT/etc/systemd/system/$r.wants
+			echo "Disabled $service for $wanted_by."
+		fi
+	done
+
+	# create the required symbolic 'Alias' links
+	alias=$(grep Alias $ROOT/$service_file \
+		        | sed 's,Alias=,,g' \
+		        | tr ',' '\n' \
+		        | grep '\.service$')
+
+	for r in $alias; do
+		if [ "$action" = "enable" ]; then
+			mkdir -p $ROOT/etc/systemd/system
+			ln -s $service_file $ROOT/etc/systemd/system/$r
+			echo "Enabled $service for $alias."
+		else
+			rm -f $ROOT/etc/systemd/system/$r
+			echo "Disabled $service for $alias."
+		fi
+	done
+
+	# call us for the other required scripts
+	also=$(grep Also $ROOT/$service_file \
+		   | sed 's,Also=,,g' \
+		   | tr ',' '\n')
+	for a in $also; do
+		echo "Also=$a found in $service"
+		if [ "$action" = "enable" ]; then
+			$0 --root=$ROOT enable $a
+		fi
+	done
+done
meta/recipes-core/systemd/systemd/00-create-volatile.conf new file +10 -0
new file mode 100644
index 0000000..d160a9b
@@ -0,0 +1,10 @@
+#This goes hand-in-hand with the base-files of OE-Core. The file must
+# be sorted before 'systemd.conf' becuase this attempts to create a file
+# inside /var/log.
+
+
+d		/var/volatile/cache	-	-	-	-
+d		/var/volatile/log		-	-	-	-
+d		/var/volatile/lock		-	-	-	-
+d		/var/volatile/run		-	-	-	-
+d		/var/volatile/tmp		-	-	-	-
meta/recipes-core/systemd/systemd/0001-Revert-systemd-analyze-use-argparse-instead-of-getop.patch new file +103 -0
new file mode 100644
index 0000000..7de2705
@@ -0,0 +1,103 @@
+From 2003e63f48cee2f497de7b90b66284f98c1c9919 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <[email protected]>
+Date: Mon, 10 Dec 2012 12:24:32 +0100
+Subject: [PATCH 1/2] Revert "systemd-analyze: use argparse instead of getopt"
+
+This reverts commit 0c0271841ab45595f71528c50bcf1904d4b841d5.
+
+Argparse is broken in current OE python
+---
+ src/analyze/systemd-analyze |   60 ++++++++++++++++++++++++++++---------------
+ 1 files changed, 39 insertions(+), 21 deletions(-)
+
+diff --git a/src/analyze/systemd-analyze b/src/analyze/systemd-analyze
+index 88699d6..87a83dd 100755
+--- a/src/analyze/systemd-analyze
++++ b/src/analyze/systemd-analyze
+@@ -1,7 +1,6 @@
+ #!/usr/bin/python
+ 
+-import sys, os
+-import argparse
++import getopt, sys, os
+ from gi.repository import Gio
+ try:
+         import cairo
+@@ -76,6 +75,20 @@ def draw_text(context, x, y, text, size = 12, r = 0, g = 0, b = 0, vcenter = 0.5
+ 
+         context.restore()
+ 
++def usage():
++        sys.stdout.write("""systemd-analyze [--user] time
++systemd-analyze [--user] blame
++systemd-analyze [--user] plot
++
++Process systemd profiling information
++
++  -h --help         Show this help
++""")
++
++def help():
++        usage()
++        sys.exit()
++
+ def time():
+ 
+         initrd_time, start_time, finish_time = acquire_start_time()
+@@ -266,29 +279,34 @@ def plot():
+ 
+         surface.finish()
+ 
+-parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter,
+-                                 description='Process systemd profiling information',
+-                                 epilog='''\
+-time - print time spent in the kernel before reaching userspace
+-blame - print list of running units ordered by time to init
+-plot - output SVG graphic showing service initialization
+-''')
+-
+-parser.add_argument('action', choices=('time', 'blame', 'plot'),
+-                    default='time', nargs='?',
+-                    help='action to perform (default: time)')
+-parser.add_argument('--user', action='store_true',
+-                    help='use the session bus')
++def unknown_verb():
++        sys.stderr.write("Unknown verb '%s'.\n" % args[0])
++        usage()
++        sys.exit(1)
+ 
+-args = parser.parse_args()
++bus = Gio.BusType.SYSTEM
+ 
+-if args.user:
+-        bus = Gio.BusType.SESSION
+-else:
+-        bus = Gio.BusType.SYSTEM
++try:
++        opts, args = getopt.gnu_getopt(sys.argv[1:], "h", ["help", "user"])
++except getopt.GetoptError as err:
++        sys.stdout.write(str(err) + "\n")
++        usage()
++        sys.exit(2)
++for o, a in opts:
++        if o in ("-h", "--help"):
++                help()
++        elif o == '--user':
++                bus = Gio.BusType.SESSION
++        else:
++                assert False, "unhandled option"
+ 
+ verb = {'time' : time,
+ 	'blame': blame,
+ 	'plot' : plot,
++	'help' : help,
+ 	}
+-verb.get(args.action)()
++
++if len(args) == 0:
++        time()
++else:
++        verb.get(args[0], unknown_verb)()
+-- 
+1.7.7.6
+
meta/recipes-core/systemd/systemd/0002-Revert-analyze-use-GDBus-instead-of-dbus-python.patch new file +91 -0
new file mode 100644
index 0000000..e5e8d7d
@@ -0,0 +1,91 @@
+From 8079db861b8ffdce69fa10a9ab9ef4740045187f Mon Sep 17 00:00:00 2001
+From: Koen Kooi <[email protected]>
+Date: Mon, 10 Dec 2012 12:25:00 +0100
+Subject: [PATCH 2/2] Revert "analyze: use GDBus instead of dbus-python"
+
+This reverts commit 4940c64240541e91411620b7dc0963e012aa6b91.
+
+Python-gobject is too old in current OE
+---
+ src/analyze/systemd-analyze |   31 ++++++++++++++-----------------
+ 1 files changed, 14 insertions(+), 17 deletions(-)
+
+diff --git a/src/analyze/systemd-analyze b/src/analyze/systemd-analyze
+index 87a83dd..636fd74 100755
+--- a/src/analyze/systemd-analyze
++++ b/src/analyze/systemd-analyze
+@@ -1,15 +1,14 @@
+ #!/usr/bin/python
+ 
+-import getopt, sys, os
+-from gi.repository import Gio
++import getopt, dbus, sys, os
+ try:
+         import cairo
+ except ImportError:
+         cairo = None
+ 
+ def acquire_time_data():
+-        manager = Gio.DBusProxy.new_for_bus_sync(bus, Gio.DBusProxyFlags.NONE,
+-                None, 'org.freedesktop.systemd1', '/org/freedesktop/systemd1', 'org.freedesktop.systemd1.Manager', None)
++
++        manager = dbus.Interface(bus.get_object('org.freedesktop.systemd1', '/org/freedesktop/systemd1'), 'org.freedesktop.systemd1.Manager')
+         units = manager.ListUnits()
+ 
+         l = []
+@@ -18,25 +17,23 @@ def acquire_time_data():
+                 if i[5] != "":
+                         continue
+ 
+-                properties = Gio.DBusProxy.new_for_bus_sync(bus, Gio.DBusProxyFlags.NONE,
+-                        None, 'org.freedesktop.systemd1', i[6], 'org.freedesktop.DBus.Properties', None)
++                properties = dbus.Interface(bus.get_object('org.freedesktop.systemd1', i[6]), 'org.freedesktop.DBus.Properties')
+ 
+-                ixt = properties.Get('(ss)', 'org.freedesktop.systemd1.Unit', 'InactiveExitTimestampMonotonic')
+-                aet = properties.Get('(ss)', 'org.freedesktop.systemd1.Unit', 'ActiveEnterTimestampMonotonic')
+-                axt = properties.Get('(ss)', 'org.freedesktop.systemd1.Unit', 'ActiveExitTimestampMonotonic')
+-                iet = properties.Get('(ss)', 'org.freedesktop.systemd1.Unit', 'InactiveEnterTimestampMonotonic')
++                ixt = int(properties.Get('org.freedesktop.systemd1.Unit', 'InactiveExitTimestampMonotonic'))
++                aet = int(properties.Get('org.freedesktop.systemd1.Unit', 'ActiveEnterTimestampMonotonic'))
++                axt = int(properties.Get('org.freedesktop.systemd1.Unit', 'ActiveExitTimestampMonotonic'))
++                iet = int(properties.Get('org.freedesktop.systemd1.Unit', 'InactiveEnterTimestampMonotonic'))
+ 
+                 l.append((str(i[0]), ixt, aet, axt, iet))
+ 
+         return l
+ 
+ def acquire_start_time():
+-        properties = Gio.DBusProxy.new_for_bus_sync(bus, Gio.DBusProxyFlags.NONE,
+-                None, 'org.freedesktop.systemd1', '/org/freedesktop/systemd1', 'org.freedesktop.DBus.Properties', None)
++        properties = dbus.Interface(bus.get_object('org.freedesktop.systemd1', '/org/freedesktop/systemd1'), 'org.freedesktop.DBus.Properties')
+ 
+-        initrd_time = properties.Get('(ss)', 'org.freedesktop.systemd1.Manager', 'InitRDTimestampMonotonic')
+-        userspace_time = properties.Get('(ss)', 'org.freedesktop.systemd1.Manager', 'UserspaceTimestampMonotonic')
+-        finish_time = properties.Get('(ss)', 'org.freedesktop.systemd1.Manager', 'FinishTimestampMonotonic')
++        initrd_time = int(properties.Get('org.freedesktop.systemd1.Manager', 'InitRDTimestampMonotonic'))
++        userspace_time = int(properties.Get('org.freedesktop.systemd1.Manager', 'UserspaceTimestampMonotonic'))
++        finish_time = int(properties.Get('org.freedesktop.systemd1.Manager', 'FinishTimestampMonotonic'))
+ 
+         if finish_time == 0:
+                 sys.stderr.write("Bootup is not yet finished. Please try again later.\n")
+@@ -284,7 +281,7 @@ def unknown_verb():
+         usage()
+         sys.exit(1)
+ 
+-bus = Gio.BusType.SYSTEM
++bus = dbus.SystemBus()
+ 
+ try:
+         opts, args = getopt.gnu_getopt(sys.argv[1:], "h", ["help", "user"])
+@@ -296,7 +293,7 @@ for o, a in opts:
+         if o in ("-h", "--help"):
+                 help()
+         elif o == '--user':
+-                bus = Gio.BusType.SESSION
++                bus = dbus.SessionBus()
+         else:
+                 assert False, "unhandled option"
+ 
+-- 
+1.7.7.6
+
meta/recipes-core/systemd/systemd/modprobe.rules new file +17 -0
new file mode 100644
index 0000000..d4a096b
@@ -0,0 +1,17 @@
+# There are a number of modifiers that are allowed to be used in some
+# of the different fields. They provide the following subsitutions:
+#
+# %n the "kernel number" of the device.
+#    For example, 'sda3' has a "kernel number" of '3'
+# %e the smallest number for that name which does not matches an existing node
+# %k the kernel name for the device
+# %M the kernel major number for the device
+# %m the kernel minor number for the device
+# %b the bus id for the device
+# %c the string returned by the PROGRAM
+# %s{filename} the content of a sysfs attribute
+# %% the '%' char itself
+#
+
+# Try and modprobe for drivers for new hardware
+ACTION=="add", DEVPATH=="/devices/*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe $env{MODALIAS}"
meta/recipes-core/systemd/systemd/optional_secure_getenv.patch new file +19 -0
new file mode 100644
index 0000000..35f1467
@@ -0,0 +1,19 @@
+on uclibc secure_getenv is not available
+therefore default to using getenv instead
+
+Singed-off-by: Khem Raj <[email protected]>
+
+Upstream-Status: Pending
+Index: git/src/shared/missing.h
+===================================================================
+--- git.orig/src/shared/missing.h	2012-09-22 18:46:44.141282145 -0700
++++ git/src/shared/missing.h	2012-09-22 18:48:44.081276570 -0700
+@@ -233,6 +233,8 @@
+ #ifndef HAVE_SECURE_GETENV
+ #  ifdef HAVE___SECURE_GETENV
+ #    define secure_getenv __secure_getenv
++#  elif defined __UCLIBC__
++#    define secure_getenv getenv
+ #  else
+ #    error neither secure_getenv nor __secure_getenv are available
+ #  endif
meta/recipes-core/systemd/systemd/systemd-pam-configure-check-uclibc.patch new file +26 -0
new file mode 100644
index 0000000..1bfc3bd
@@ -0,0 +1,26 @@
+--- systemd-185.orig/configure.ac	2012-06-04 14:15:16.000000000 -0400
++++ systemd-pam-185/configure.ac	2012-06-21 22:57:10.000000000 -0400
+@@ -63,6 +63,23 @@
+ 
+ AC_PATH_PROG([M4], [m4])
+ 
++# check for few functions not implemented in uClibc
++
++AC_CHECK_FUNCS_ONCE(mkostemp execvpe posix_fallocate)
++
++# check for %ms format support - assume always no if cross compiling
++
++AC_MSG_CHECKING([whether %ms format is supported by *scanf])
++
++AC_RUN_IFELSE(
++	[AC_LANG_PROGRAM([[ include <stdio.h> ]],
++			[[ char *buf1, *buf2, *buf3, str="1 2.3 abcde" ;
++			   int rc = sscanf(str, "%ms %ms %ms", &buf1, &buf2, &buf3) ;
++			   return (rc==3)?0:1;]])],
++	[AC_DEFINE([HAVE_MSFORMAT], [1], [Define if %ms format is supported by *scanf.])],
++	[AC_MSG_RESULT([no])],
++	[AC_MSG_RESULT([no])])
++
+ # gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line
+ m4_ifdef([GTK_DOC_CHECK], [
+ GTK_DOC_CHECK([1.18],[--flavour no-tmpl])
meta/recipes-core/systemd/systemd/systemd-pam-fix-execvpe.patch new file +26 -0
new file mode 100644
index 0000000..449c27f
@@ -0,0 +1,26 @@
+Index: git/src/nspawn/nspawn.c
+===================================================================
+--- git.orig/src/nspawn/nspawn.c	2012-09-22 17:57:05.000000000 -0700
++++ git/src/nspawn/nspawn.c	2012-09-22 18:01:41.541405768 -0700
+@@ -63,6 +63,8 @@
+         LINK_GUEST
+ } LinkJournal;
+ 
++#include "config.h"
++
+ static char *arg_directory = NULL;
+ static char *arg_user = NULL;
+ static char **arg_controllers = NULL;
+@@ -1373,7 +1375,12 @@
+                                 a[0] = (char*) "/sbin/init";
+                                 execve(a[0], a, (char**) envp);
+                         } else if (argc > optind)
++#ifdef HAVE_EXECVPE
+                                 execvpe(argv[optind], argv + optind, (char**) envp);
++#else
++                                environ = (char **)envp;
++                                execvp(argv[optind], argv + optind);
++#endif /* HAVE_EXECVPE */			
+                         else {
+                                 chdir(home ? home : "/root");
+                                 execle("/bin/bash", "-bash", NULL, (char**) envp);
meta/recipes-core/systemd/systemd/systemd-pam-fix-fallocate.patch new file +82 -0
new file mode 100644
index 0000000..089ba64
@@ -0,0 +1,82 @@
+Index: git/src/journal/journal-file.c
+===================================================================
+--- git.orig/src/journal/journal-file.c	2012-09-02 09:49:15.126089594 -0700
++++ git/src/journal/journal-file.c	2012-09-02 09:49:17.118089670 -0700
+@@ -34,6 +34,8 @@
+ #include "compress.h"
+ #include "fsprg.h"
+ 
++#include "config.h"
++
+ #define DEFAULT_DATA_HASH_TABLE_SIZE (2047ULL*sizeof(HashItem))
+ #define DEFAULT_FIELD_HASH_TABLE_SIZE (333ULL*sizeof(HashItem))
+ 
+@@ -262,7 +264,7 @@
+ 
+ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) {
+         uint64_t old_size, new_size;
+-        int r;
++        int r = 0;
+ 
+         assert(f);
+ 
+@@ -307,10 +309,25 @@
+         /* Note that the glibc fallocate() fallback is very
+            inefficient, hence we try to minimize the allocation area
+            as we can. */
++#ifdef HAVE_POSIX_ALLOCATE
+         r = posix_fallocate(f->fd, old_size, new_size - old_size);
+         if (r != 0)
+                 return -r;
+ 
++#else
++	/* Use good old method to write zeros into the journal file
++	   perhaps very inefficient yet working. */
++	if(new_size > old_size) {
++		char *buf = alloca(new_size - old_size);
++		off_t oldpos = lseek(f->fd, 0, SEEK_CUR);
++		bzero(buf, new_size - old_size);
++		lseek(f->fd, old_size, SEEK_SET);
++		r = write(f->fd, buf, new_size - old_size);
++		lseek(f->fd, oldpos, SEEK_SET);
++	}
++	if (r < 0)
++		return -errno;
++#endif /* HAVE_POSIX_FALLOCATE */
+         if (fstat(f->fd, &f->last_stat) < 0)
+                 return -errno;
+ 
+Index: git/src/journal/journald-kmsg.c
+===================================================================
+--- git.orig/src/journal/journald-kmsg.c	2012-09-02 09:49:15.130089595 -0700
++++ git/src/journal/journald-kmsg.c	2012-09-02 12:26:17.326447895 -0700
+@@ -404,6 +404,7 @@
+ 
+ int server_open_kernel_seqnum(Server *s) {
+         int fd;
++	int r = 0;
+         uint64_t *p;
+ 
+         assert(s);
+@@ -417,8 +418,19 @@
+                 log_error("Failed to open /run/systemd/journal/kernel-seqnum, ignoring: %m");
+                 return 0;
+         }
+-
+-        if (posix_fallocate(fd, 0, sizeof(uint64_t)) < 0) {
++#ifdef HAVE_POSIX_ALLOCATE
++        r = posix_fallocate(fd, 0, sizeof(uint64_t));
++#else
++	/* Use good old method to write zeros into the journal file
++	   perhaps very inefficient yet working. */
++	char *buf = alloca(sizeof(uint64_t));
++	off_t oldpos = lseek(fd, 0, SEEK_CUR);
++	bzero(buf, sizeof(uint64_t));
++	lseek(fd, 0, SEEK_SET);
++	r = write(fd, buf, sizeof(uint64_t));
++	lseek(fd, oldpos, SEEK_SET);
++#endif /* HAVE_POSIX_FALLOCATE */
++	if (r < 0) {
+                 log_error("Failed to allocate sequential number file, ignoring: %m");
+                 close_nointr_nofail(fd);
+                 return 0;
meta/recipes-core/systemd/systemd/systemd-pam-fix-getty-unit.patch new file +35 -0
new file mode 100644
index 0000000..3e5ea71
@@ -0,0 +1,35 @@
+Prefer getty to agetty in console setup systemd units
+
+Signed-off-by: Maxime Ripard <[email protected]>
+---
+ units/[email protected]        |    2 +-
+ units/[email protected] |    2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+Index: systemd-37/units/[email protected]
+===================================================================
+--- systemd-37.orig/units/[email protected]
++++ systemd-37/units/[email protected]
+@@ -41,7 +41,7 @@
+ 
+ [Service]
+ Environment=TERM=linux
+ # the VT is cleared by TTYVTDisallocate
+-ExecStart=-/sbin/agetty --noclear %I 38400
++ExecStart=-/sbin/getty -L %I 115200 linux
+ Type=idle
+ Restart=always
+ RestartSec=0
+Index: systemd-37/units/[email protected]
+===================================================================
+--- systemd-37.orig/units/[email protected]
++++ systemd-37/units/[email protected]
+@@ -37,7 +37,7 @@
+ 
+ [Service]
+ Environment=TERM=vt102
+-ExecStart=-/sbin/agetty -s %I 115200,38400,9600
++ExecStart=-/sbin/getty -L %I 115200 vt100
+ Type=idle
+ Restart=always
+ RestartSec=0
meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch new file +166 -0
new file mode 100644
index 0000000..8de9a3a
@@ -0,0 +1,166 @@
+Index: git/src/journal/journal-send.c
+===================================================================
+--- git.orig/src/journal/journal-send.c	2012-09-02 00:10:08.748768268 -0700
++++ git/src/journal/journal-send.c	2012-09-02 00:10:10.508768335 -0700
+@@ -34,6 +34,8 @@
+ 
+ #define SNDBUF_SIZE (8*1024*1024)
+ 
++#include "config.h"
++
+ /* We open a single fd, and we'll share it with the current process,
+  * all its threads, and all its subprocesses. This means we need to
+  * initialize it atomically, and need to operate on it atomically
+@@ -293,7 +295,12 @@
+          * file and just pass a file descriptor of it to the other
+          * side */
+ 
++#ifdef HAVE_MKOSTEMP
+         buffer_fd = mkostemp(path, O_CLOEXEC|O_RDWR);
++#else
++	buffer_fd = mkstemp(path);
++	if (buffer_fd >= 0) fcntl(buffer_fd, F_SETFD, FD_CLOEXEC);
++#endif	/* HAVE_MKOSTEMP */
+         if (buffer_fd < 0) {
+                 r = -errno;
+                 goto finish;
+Index: git/src/core/manager.c
+===================================================================
+--- git.orig/src/core/manager.c	2012-09-02 00:10:08.732768266 -0700
++++ git/src/core/manager.c	2012-09-02 00:10:10.512768334 -0700
+@@ -67,6 +67,8 @@
+ #include "cgroup-util.h"
+ #include "path-util.h"
+ 
++#include "config.h"
++
+ /* As soon as 16 units are in our GC queue, make sure to run a gc sweep */
+ #define GC_QUEUE_ENTRIES_MAX 16
+ 
+@@ -1701,7 +1703,12 @@
+                 return -ENOMEM;
+ 
+         saved_umask = umask(0077);
++#ifdef HAVE_MKOSTEMP
+         fd = mkostemp(path, O_RDWR|O_CLOEXEC);
++#else
++	fd = mkstemp(path);
++	if (fd >= 0) fcntl(fd, F_SETFD, FD_CLOEXEC);
++#endif	/* HAVE_MKOSTEMP */
+         umask(saved_umask);
+ 
+         if (fd < 0) {
+Index: git/src/shared/util.c
+===================================================================
+--- git.orig/src/shared/util.c	2012-09-02 00:10:08.784768269 -0700
++++ git/src/shared/util.c	2012-09-02 00:10:10.512768334 -0700
+@@ -68,6 +68,8 @@
+ #include "exit-status.h"
+ #include "hashmap.h"
+ 
++#include "config.h"
++
+ int saved_argc = 0;
+ char **saved_argv = NULL;
+ 
+@@ -4519,7 +4521,12 @@
+         t[k] = '.';
+         stpcpy(stpcpy(t+k+1, fn), "XXXXXX");
+ 
++#ifdef HAVE_MKOSTEMP
+         fd = mkostemp(t, O_WRONLY|O_CLOEXEC);
++#else
++	fd = mkstemp(t);
++	if (fd >= 0) fcntl(fd, F_SETFD, FD_CLOEXEC);
++#endif	/* HAVE_MKOSTEMP */
+         if (fd < 0) {
+                 free(t);
+                 return -errno;
+Index: git/src/shared/ask-password-api.c
+===================================================================
+--- git.orig/src/shared/ask-password-api.c	2012-09-02 00:10:08.772768268 -0700
++++ git/src/shared/ask-password-api.c	2012-09-02 00:10:10.512768334 -0700
+@@ -37,6 +37,8 @@
+ 
+ #include "ask-password-api.h"
+ 
++#include "config.h"
++
+ static void backspace_chars(int ttyfd, size_t p) {
+ 
+         if (ttyfd < 0)
+@@ -326,7 +328,12 @@
+         mkdir_p_label("/run/systemd/ask-password", 0755);
+ 
+         u = umask(0022);
++#ifdef HAVE_MKOSTEMP
+         fd = mkostemp(temp, O_CLOEXEC|O_CREAT|O_WRONLY);
++#else
++	fd = mkstemp(temp);
++	if (fd >= 0) fcntl(fd, F_SETFD, FD_CLOEXEC);
++#endif	/* HAVE_MKOSTEMP */
+         umask(u);
+ 
+         if (fd < 0) {
+Index: git/src/journal/journalctl.c
+===================================================================
+--- git.orig/src/journal/journalctl.c	2012-09-02 00:10:08.752768267 -0700
++++ git/src/journal/journalctl.c	2012-09-02 00:18:41.928787779 -0700
+@@ -540,7 +540,13 @@
+         n /= arg_interval;
+ 
+         close_nointr_nofail(fd);
++#ifdef HAVE_MKOSTEMP
+         fd = mkostemp(k, O_WRONLY|O_CLOEXEC|O_NOCTTY);
++#else
++	fd = mkstemp(k);
++	if (fd >= 0) fcntl(fd, F_SETFD, FD_CLOEXEC);
++#endif /* HAVE_MKOSTEMP */
++
+         if (fd < 0) {
+                 log_error("Failed to open %s: %m", k);
+                 r = -errno;
+Index: git/src/journal/journal-verify.c
+===================================================================
+--- git.orig/src/journal/journal-verify.c	2012-09-02 00:10:08.752768267 -0700
++++ git/src/journal/journal-verify.c	2012-09-02 00:24:10.268800268 -0700
+@@ -693,8 +693,12 @@
+ #endif
+         } else if (f->seal)
+                 return -ENOKEY;
+-
++#ifdef HAVE_MKOSTEMP
+         data_fd = mkostemp(data_path, O_CLOEXEC);
++#else
++	data_fd = mkstemp(data_path);
++	if (data_fd >= 0) fcntl(data_fd, F_SETFD, FD_CLOEXEC);
++#endif	/* HAVE_MKOSTEMP */
+         if (data_fd < 0) {
+                 log_error("Failed to create data file: %m");
+                 r = -errno;
+@@ -702,7 +706,12 @@
+         }
+         unlink(data_path);
+ 
++#ifdef HAVE_MKOSTEMP
+         entry_fd = mkostemp(entry_path, O_CLOEXEC);
++#else
++	entry_fd = mkstemp(entry_path);
++	if (entry_fd >= 0) fcntl(entry_fd, F_SETFD, FD_CLOEXEC);
++#endif	/* HAVE_MKOSTEMP */
+         if (entry_fd < 0) {
+                 log_error("Failed to create entry file: %m");
+                 r = -errno;
+@@ -710,7 +719,12 @@
+         }
+         unlink(entry_path);
+ 
++#ifdef HAVE_MKOSTEMP
+         entry_array_fd = mkostemp(entry_array_path, O_CLOEXEC);
++#else
++	entry_array_fd = mkstemp(entry_array_path);
++	if (entry_array_fd >= 0) fcntl(entry_array_fd, F_SETFD, FD_CLOEXEC);
++#endif  /* HAVE_MKOSTEMP */
+         if (entry_array_fd < 0) {
+                 log_error("Failed to create entry array file: %m");
+                 r = -errno;
meta/recipes-core/systemd/systemd/systemd-pam-fix-msformat.patch new file +335 -0
new file mode 100644
index 0000000..ee63329
@@ -0,0 +1,335 @@
+--- systemd-pam-185/src/fsck/fsck.c.orig	2012-06-22 23:22:22.000000000 -0400
++++ systemd-pam-185/src/fsck/fsck.c	2012-06-22 21:15:56.000000000 -0400
+@@ -36,6 +36,8 @@
+ #include "bus-errors.h"
+ #include "virt.h"
+ 
++#include "config.h"
++
+ static bool arg_skip = false;
+ static bool arg_force = false;
+ static bool arg_show_progress = false;
+@@ -193,9 +195,16 @@
+                 char *device;
+                 double p;
+                 usec_t t;
+-
++#ifdef HAVE_MSFORMAT
+                 if (fscanf(f, "%i %lu %lu %ms", &pass, &cur, &max, &device) != 4)
+-                        break;
++#else
++		device = malloc(257);
++		if (fscanf(f, "%i %lu %lu %256s", &pass, &cur, &max, device) != 4) {
++			free(device);
++		}
++
++#endif /* HAVE_MSFORMAT */
++			break;
+ 
+                 /* Only show one progress counter at max */
+                 if (!locked) {
+--- systemd-pam-185/src/core/swap.c.orig	2012-06-22 23:22:55.000000000 -0400
++++ systemd-pam-185/src/core/swap.c	2012-06-22 21:17:10.000000000 -0400
+@@ -40,6 +40,8 @@
+ #include "def.h"
+ #include "path-util.h"
+ 
++#include "config.h"
++
+ static const UnitActiveState state_translation_table[_SWAP_STATE_MAX] = {
+         [SWAP_DEAD] = UNIT_INACTIVE,
+         [SWAP_ACTIVATING] = UNIT_ACTIVATING,
+@@ -1038,7 +1040,7 @@
+         for (i = 1;; i++) {
+                 char *dev = NULL, *d;
+                 int prio = 0, k;
+-
++#ifdef HAVE_MSFORMAT
+                 if ((k = fscanf(m->proc_swaps,
+                                 "%ms "  /* device/file */
+                                 "%*s "  /* type of swap */
+@@ -1046,10 +1048,18 @@
+                                 "%*s "  /* used */
+                                 "%i\n", /* priority */
+                                 &dev, &prio)) != 2) {
+-
++#else
++		dev = malloc(257);
++                if ((k = fscanf(m->proc_swaps,
++                                "%256s "   /* device/file */
++                                "%*s "  /* type of swap */
++                                "%*s "  /* swap size */
++                                "%*s "  /* used */
++                                "%i\n", /* priority */
++                                dev, &prio)) != 2) {
++#endif /* HAVE_MSFORMAT */
+                         if (k == EOF)
+                                 break;
+-
+                         log_warning("Failed to parse /proc/swaps:%u.", i);
+                         free(dev);
+                         continue;
+--- systemd-pam-185/src/core/mount-setup.c.orig	2012-06-22 23:23:41.000000000 -0400
++++ systemd-pam-185/src/core/mount-setup.c	2012-06-22 21:19:44.000000000 -0400
+@@ -28,6 +28,7 @@
+ #include <assert.h>
+ #include <unistd.h>
+ #include <ftw.h>
++#include <linux/fs.h>
+
+ #include "mount-setup.h"
+ #include "dev-setup.h"
+@@ -41,6 +41,8 @@
+ #include "path-util.h"
+ #include "missing.h"
+ 
++#include "config.h"
++
+ #ifndef TTY_GID
+ #define TTY_GID 5
+ #endif
+@@ -200,9 +202,12 @@
+         for (;;) {
+                 char *controller;
+                 int enabled = 0;
+-
++#ifdef HAVE_MSFORMAT
+                 if (fscanf(f, "%ms %*i %*i %i", &controller, &enabled) != 2) {
+-
++#else
++		controller = malloc(257);
++                if (fscanf(f, "%256s %*i %*i %i", controller, &enabled) != 2) {
++#endif /* HAVE_MSFORMAT */
+                         if (feof(f))
+                                 break;
+ 
+--- systemd-pam-185/src/core/mount.c.orig	2012-06-22 23:24:17.000000000 -0400
++++ systemd-pam-185/src/core/mount.c	2012-06-22 22:51:21.000000000 -0400
+@@ -41,6 +41,8 @@
+ #include "exit-status.h"
+ #include "def.h"
+ 
++#include "config.h"
++
+ static const UnitActiveState state_translation_table[_MOUNT_STATE_MAX] = {
+         [MOUNT_DEAD] = UNIT_INACTIVE,
+         [MOUNT_MOUNTING] = UNIT_ACTIVATING,
+@@ -1514,7 +1516,7 @@
+                 int k;
+ 
+                 device = path = options = options2 = fstype = d = p = o = NULL;
+-
++#ifdef HAVE_MSFORMAT
+                 if ((k = fscanf(m->proc_self_mountinfo,
+                                 "%*s "       /* (1) mount id */
+                                 "%*s "       /* (2) parent id */
+@@ -1533,7 +1535,31 @@
+                                 &fstype,
+                                 &device,
+                                 &options2)) != 5) {
+-
++#else
++		path = malloc(257);
++		options = malloc(257);
++		fstype = malloc(257);
++		device = malloc(257);
++		options2 = malloc(257);
++                if ((k = fscanf(m->proc_self_mountinfo,
++                                "%*s "       /* (1) mount id */
++                                "%*s "       /* (2) parent id */
++                                "%*s "       /* (3) major:minor */
++                                "%*s "       /* (4) root */
++                                "%256s "     /* (5) mount point */
++                                "%256s"      /* (6) mount options */
++                                "%*[^-]"     /* (7) optional fields */
++                                "- "         /* (8) separator */
++                                "%256s "     /* (9) file system type */
++                                "%256s"      /* (10) mount source */
++                                "%256s"      /* (11) mount options 2 */
++                                "%*[^\n]",   /* some rubbish at the end */
++                                path,
++                                options,
++                                fstype,
++                                device,
++                                options2)) != 5) {
++#endif /* HAVE_MSFORMAT */
+                         if (k == EOF)
+                                 break;
+ 
+--- systemd-pam-185/src/core/umount.c.orig	2012-06-22 23:24:37.000000000 -0400
++++ systemd-pam-185/src/core/umount.c	2012-06-22 22:56:15.000000000 -0400
+@@ -35,6 +35,8 @@
+ #include "path-util.h"
+ #include "util.h"
+ 
++#include "config.h"
++
+ typedef struct MountPoint {
+         char *path;
+         dev_t devnum;
+@@ -74,7 +76,7 @@
+                 MountPoint *m;
+ 
+                 path = p = NULL;
+-
++#ifdef HAVE_MSFORMAT
+                 if ((k = fscanf(proc_self_mountinfo,
+                                 "%*s "       /* (1) mount id */
+                                 "%*s "       /* (2) parent id */
+@@ -89,6 +91,23 @@
+                                 "%*s"        /* (11) mount options 2 */
+                                 "%*[^\n]",   /* some rubbish at the end */
+                                 &path)) != 1) {
++#else
++		path = malloc(257);
++                if ((k = fscanf(proc_self_mountinfo,
++                                "%*s "       /* (1) mount id */
++                                "%*s "       /* (2) parent id */
++                                "%*s "       /* (3) major:minor */
++                                "%*s "       /* (4) root */
++                                "%256s "     /* (5) mount point */
++                                "%*s"        /* (6) mount options */
++                                "%*[^-]"     /* (7) optional fields */
++                                "- "         /* (8) separator */
++                                "%*s "       /* (9) file system type */
++                                "%*s"        /* (10) mount source */
++                                "%*s"        /* (11) mount options 2 */
++                                "%*[^\n]",   /* some rubbish at the end */
++                                path)) != 1) {
++#endif /* HAVE_MSFORMAT */
+                         if (k == EOF)
+                                 break;
+ 
+@@ -150,7 +169,7 @@
+                 MountPoint *swap;
+                 char *dev = NULL, *d;
+                 int k;
+-
++#ifdef HAVE_MSFORMAT
+                 if ((k = fscanf(proc_swaps,
+                                 "%ms " /* device/file */
+                                 "%*s " /* type of swap */
+@@ -158,7 +177,16 @@
+                                 "%*s " /* used */
+                                 "%*s\n", /* priority */
+                                 &dev)) != 1) {
+-
++#else
++		dev = malloc(257);
++                if ((k = fscanf(proc_swaps,
++                                "%256s " /* device/file */
++                                "%*s " /* type of swap */
++                                "%*s " /* swap size */
++                                "%*s " /* used */
++                                "%*s\n", /* priority */
++                                dev)) != 1) {
++#endif /* HAVE_MSFORMAT */
+                         if (k == EOF)
+                                 break;
+ 
+--- systemd-pam-185/src/shared/socket-util.c.orig	2012-06-22 23:25:00.000000000 -0400
++++ systemd-pam-185/src/shared/socket-util.c	2012-06-22 22:59:27.000000000 -0400
+@@ -39,6 +39,8 @@
+ #include "socket-util.h"
+ #include "missing.h"
+ 
++#include "config.h"
++
+ int socket_address_parse(SocketAddress *a, const char *s) {
+         int r;
+         char *e, *n;
+@@ -201,8 +203,16 @@
+         a->type = SOCK_RAW;
+ 
+         errno = 0;
+-        if (sscanf(s, "%ms %u", &sfamily, &group) < 1)
++#ifdef HAVE_MSFORMAT
++	if (sscanf(s, "%ms %u", &sfamily, &group) < 1)
++                return errno ? -errno : -EINVAL;
++#else
++	sfamily = malloc(257);
++	if (sscanf(s, "%256s %u", sfamily, &group) < 1) {
++		free(sfamily);
+                 return errno ? -errno : -EINVAL;
++	}
++#endif /* HAVE_MSFORMAT */
+ 
+         if ((family = netlink_family_from_string(sfamily)) < 0)
+                 if (safe_atoi(sfamily, &family) < 0) {
+--- systemd-pam-185/src/tmpfiles/tmpfiles.c.orig	2012-06-22 23:25:21.000000000 -0400
++++ systemd-pam-185/src/tmpfiles/tmpfiles.c	2012-06-22 23:13:49.000000000 -0400
+@@ -48,6 +48,8 @@
+ #include "set.h"
+ #include "conf-files.h"
+ 
++#include "config.h"
++
+ /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates
+  * them in the file system. This is intended to be used to create
+  * properly owned directories beneath /tmp, /var/tmp, /run, which are
+@@ -970,7 +972,7 @@
+         i = new0(Item, 1);
+         if (!i)
+                 return log_oom();
+-
++#ifdef HAVE_MSFORMAT
+         if (sscanf(buffer,
+                    "%c "
+                    "%ms "
+@@ -986,6 +988,28 @@
+                    &group,
+                    &age,
+                    &n) < 2) {
++#else
++	i->path = malloc(257);
++	mode = malloc(257);
++	user = malloc(257);
++	group = malloc(257);
++	age = malloc(257);
++        if (sscanf(buffer,
++                   "%c "
++                   "%256s "
++                   "%256s "
++                   "%256s "
++                   "%256s "
++                   "%256s "
++                   "%n",
++                   &type,
++                   i->path,
++                   mode,
++                   user,
++                   group,
++                   age,
++                   &n) < 2) {
++#endif /* HAVE_MSFORMAT */
+                 log_error("[%s:%u] Syntax error.", fname, line);
+                 r = -EIO;
+                 goto finish;
+--- systemd-pam-185/src/cryptsetup/cryptsetup-generator.c.orig	2012-06-22 23:25:47.000000000 -0400
++++ systemd-pam-185/src/cryptsetup/cryptsetup-generator.c	2012-06-22 23:16:35.000000000 -0400
+@@ -30,6 +30,8 @@
+ #include "virt.h"
+ #include "strv.h"
+ 
++#include "config.h"
++
+ static const char *arg_dest = "/tmp";
+ static bool arg_enabled = true;
+ static bool arg_read_crypttab = true;
+@@ -421,8 +423,15 @@
+                 l = strstrip(line);
+                 if (*l == '#' || *l == 0)
+                         continue;
+-
++#ifdef HAVE_MSFORMAT
+                 k = sscanf(l, "%ms %ms %ms %ms", &name, &device, &password, &options);
++#else
++		name = malloc(257);
++		device = malloc(257);
++		password = malloc(257);
++		options = malloc(257);
++                k = sscanf(l, "%256s %256s %256s %256s", name, device, password, options);
++#endif /* HAVE_MSFORMAT */
+                 if (k < 2 || k > 4) {
+                         log_error("Failed to parse /etc/crypttab:%u, ignoring.", n);
+                         r = EXIT_FAILURE;
meta/recipes-core/systemd/systemd/touchscreen.rules new file +18 -0
new file mode 100644
index 0000000..d83fd16
@@ -0,0 +1,18 @@
+# There are a number of modifiers that are allowed to be used in some
+# of the different fields. They provide the following subsitutions:
+#
+# %n the "kernel number" of the device.
+#    For example, 'sda3' has a "kernel number" of '3'
+# %e the smallest number for that name which does not matches an existing node
+# %k the kernel name for the device
+# %M the kernel major number for the device
+# %m the kernel minor number for the device
+# %b the bus id for the device
+# %c the string returned by the PROGRAM
+# %s{filename} the content of a sysfs attribute
+# %% the '%' char itself
+#
+
+# Create a symlink to any touchscreen input device
+SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0"
+SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="ads7846", SYMLINK+="input/touchscreen0"
meta/recipes-core/systemd/systemd/use-rootlibdir.patch new file +107 -0
new file mode 100644
index 0000000..4c471b6
@@ -0,0 +1,107 @@
+Upstream-Status: Undecided
+
+This patch removes some of hardcoded references to /lib
+and /usr/lib since on some architectures it should be
+/lib64 and /usr/lib64 atleast in OE
+
+I am not sure about the intention of hardcoded values
+thats why status is undecided
+
+Signed-off-by: Khem Raj <[email protected]>
+
+Index: git/Makefile.am
+===================================================================
+--- git.orig/Makefile.am	2012-09-22 11:07:58.811981199 -0700
++++ git/Makefile.am	2012-09-22 11:09:11.267983956 -0700
+@@ -64,25 +64,25 @@
+ 
+ # Our own, non-special dirs
+ pkgsysconfdir=$(sysconfdir)/systemd
+-userunitdir=$(prefix)/lib/systemd/user
+-userpresetdir=$(prefix)/lib/systemd/user-preset
+-tmpfilesdir=$(prefix)/lib/tmpfiles.d
+-sysctldir=$(prefix)/lib/sysctl.d
+-usergeneratordir=$(prefix)/lib/systemd/user-generators
++userunitdir=$(prefix)/$(rootlibdir)/systemd/user
++userpresetdir=$(prefix)/$(rootlibdir)/systemd/user-preset
++tmpfilesdir=$(prefix)/$(rootlibdir)/tmpfiles.d
++sysctldir=$(prefix)/$(rootlibdir)/sysctl.d
++usergeneratordir=$(prefix)/$(rootlibdir)/systemd/user-generators
+ pkgincludedir=$(includedir)/systemd
+ systemgeneratordir=$(rootlibexecdir)/system-generators
+ systemshutdowndir=$(rootlibexecdir)/system-shutdown
+ systemsleepdir=$(rootlibexecdir)/system-sleep
+-systemunitdir=$(rootprefix)/lib/systemd/system
+-systempresetdir=$(rootprefix)/lib/systemd/system-preset
+-udevlibexecdir=$(rootprefix)/lib/udev
++systemunitdir=$(rootprefix)/$(rootlibdir)/systemd/system
++systempresetdir=$(rootprefix)/$(rootlibdir)/systemd/system-preset
++udevlibexecdir=$(rootprefix)/$(rootlibdir)/udev
+ udevhomedir = $(udevlibexecdir)
+ udevrulesdir = $(udevlibexecdir)/rules.d
+ 
+ # And these are the special ones for /
+ rootprefix=@rootprefix@
+ rootbindir=$(rootprefix)/bin
+-rootlibexecdir=$(rootprefix)/lib/systemd
++rootlibexecdir=$(rootprefix)/$(rootlibdir)/systemd
+ 
+ CLEANFILES = $(BUILT_SOURCES)
+ EXTRA_DIST =
+@@ -132,7 +132,7 @@
+ 	-DSYSTEMD_STDIO_BRIDGE_BINARY_PATH=\"$(bindir)/systemd-stdio-bridge\" \
+ 	-DROOTPREFIX=\"$(rootprefix)\" \
+ 	-DRUNTIME_DIR=\"/run\" \
+-	-DRANDOM_SEED=\"$(localstatedir)/lib/random-seed\" \
++	-DRANDOM_SEED=\"$(localstatedir)/$(rootlibdir)/random-seed\" \
+ 	-DSYSTEMD_CRYPTSETUP_PATH=\"$(rootlibexecdir)/systemd-cryptsetup\" \
+ 	-DSYSTEM_GENERATOR_PATH=\"$(systemgeneratordir)\" \
+ 	-DUSER_GENERATOR_PATH=\"$(usergeneratordir)\" \
+@@ -2692,7 +2692,7 @@
+ 
+ binfmt-install-data-hook:
+ 	$(MKDIR_P) -m 0755 \
+-		$(DESTDIR)$(prefix)/lib/binfmt.d \
++		$(DESTDIR)$(prefix)/$(rootlibdir)/binfmt.d \
+ 		$(DESTDIR)$(sysconfdir)/binfmt.d \
+ 		$(DESTDIR)$(systemunitdir)/sysinit.target.wants
+ 	( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \
+@@ -3107,7 +3107,7 @@
+ 
+ timedated-install-data-hook:
+ 	$(MKDIR_P) -m 0755 \
+-		$(DESTDIR)$(prefix)/lib/systemd/ntp-units.d \
++		$(DESTDIR)$(prefix)/$(rootlibdir)/systemd/ntp-units.d \
+ 		$(DESTDIR)$(sysconfdir)/systemd/ntp-units.d
+ 	( cd $(DESTDIR)$(systemunitdir) && \
+ 		rm -f dbus-org.freedesktop.timedate1.service  && \
+@@ -3337,7 +3337,7 @@
+ logind-install-data-hook:
+ 	$(MKDIR_P) -m 0755 \
+ 		$(DESTDIR)$(systemunitdir)/multi-user.target.wants \
+-		$(DESTDIR)$(localstatedir)/lib/systemd
++		$(DESTDIR)$(localstatedir)/$(rootlibdir)/systemd
+ 	( cd $(DESTDIR)$(systemunitdir) && \
+ 		rm -f dbus-org.freedesktop.login1.service && \
+ 		$(LN_S) systemd-logind.service dbus-org.freedesktop.login1.service)
+@@ -3494,7 +3494,7 @@
+ 		-e 's,@PACKAGE_VERSION\@,$(PACKAGE_VERSION),g' \
+ 		-e 's,@PACKAGE_NAME\@,$(PACKAGE_NAME),g' \
+ 		-e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' \
+-		-e 's,@RANDOM_SEED\@,$(localstatedir)/lib/random-seed,g' \
++		-e 's,@RANDOM_SEED\@,$(localstatedir)/$(rootlibdir)/random-seed,g' \
+ 		-e 's,@prefix\@,$(prefix),g' \
+ 		-e 's,@exec_prefix\@,$(exec_prefix),g' \
+ 		-e 's,@libdir\@,$(libdir),g' \
+@@ -3619,9 +3619,9 @@
+ 	$(MKDIR_P) -m 0755 \
+ 		$(DESTDIR)$(tmpfilesdir) \
+ 		$(DESTDIR)$(sysconfdir)/tmpfiles.d \
+-		$(DESTDIR)$(prefix)/lib/modules-load.d \
++		$(DESTDIR)$(prefix)/$(rootlibdir)/modules-load.d \
+ 		$(DESTDIR)$(sysconfdir)/modules-load.d \
+-		$(DESTDIR)$(prefix)/lib/sysctl.d \
++		$(DESTDIR)$(prefix)/$(rootlibdir)/sysctl.d \
+ 		$(DESTDIR)$(sysconfdir)/sysctl.d \
+ 		$(DESTDIR)$(systemshutdowndir) \
+ 		$(DESTDIR)$(systemsleepdir) \
meta/recipes-core/systemd/systemd/var-run.conf new file +4 -0
new file mode 100644
index 0000000..c2c18e2
@@ -0,0 +1,4 @@
+# empty /var/run
+R	/var/run/*	-	-	-	-	-
+# systemd-update-utmp-runlevel.service fails to start without this
+f /var/run/utmp 0644 root root - -
meta/recipes-core/systemd/systemd_196.bb new file +249 -0
new file mode 100644
index 0000000..1861437
@@ -0,0 +1,249 @@
+DESCRIPTION = "Systemd a init replacement"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/systemd"
+
+LICENSE = "GPLv2 & LGPLv2.1 & MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
+                    file://LICENSE.LGPL2.1;md5=fb919cc88dbe06ec0b0bd50e001ccf1f \
+                    file://LICENSE.MIT;md5=544799d0b492f119fa04641d1b8868ed"
+
+PROVIDES = "udev"
+
+DEPENDS = "xz kmod gtk-doc-stub-native docbook-sgml-dtd-4.1-native intltool-native gperf-native acl readline dbus libcap libcgroup tcp-wrappers usbutils glib-2.0 libgcrypt"
+DEPENDS += "${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+
+SERIAL_CONSOLE ?= "115200 /dev/ttyS0"
+
+SECTION = "base/shell"
+
+inherit useradd pkgconfig autotools perlnative
+
+SRC_URI = "http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz \
+           file://0001-Revert-systemd-analyze-use-argparse-instead-of-getop.patch \
+           file://0002-Revert-analyze-use-GDBus-instead-of-dbus-python.patch \
+           file://touchscreen.rules \
+           file://modprobe.rules \
+           file://var-run.conf \
+           ${UCLIBCPATCHES} \
+           file://00-create-volatile.conf \
+          "
+SRC_URI[md5sum] = "05ebd7f108e420e2b4e4810ea4b3c810"
+SRC_URI[sha256sum] = "6bd4a658a5dd8198235b17ad1b1f0cc56d9e6f00d646ddcffdfc6f058b55e4bf"
+
+UCLIBCPATCHES = ""
+UCLIBCPATCHES_libc-uclibc = "file://systemd-pam-configure-check-uclibc.patch \
+                             file://systemd-pam-fix-execvpe.patch \
+                             file://systemd-pam-fix-fallocate.patch \
+                             file://systemd-pam-fix-getty-unit.patch \
+                             file://systemd-pam-fix-mkostemp.patch \
+                             file://systemd-pam-fix-msformat.patch \
+                             file://optional_secure_getenv.patch \
+                            "
+LDFLAGS_libc-uclibc_append = " -lrt"
+
+# This will disappear with systemd 197
+SYSTEMDDISTRO ?= "debian"
+
+CACHED_CONFIGUREVARS = "ac_cv_file__usr_share_pci_ids=no \
+                        ac_cv_file__usr_share_hwdata_pci_ids=no \
+                        ac_cv_file__usr_share_misc_pci_ids=yes"
+
+# The gtk+ tools should get built as a separate recipe e.g. systemd-tools
+EXTRA_OECONF = " --with-distro=${SYSTEMDDISTRO} \
+                 --with-rootprefix=${base_prefix} \
+                 --with-rootlibdir=${base_libdir} \
+                 --sbindir=${base_sbindir} \
+                 --libexecdir=${base_libdir} \
+                 ${@base_contains('DISTRO_FEATURES', 'pam', '--enable-pam', '--disable-pam', d)} \
+                 --enable-xz \
+                 --disable-manpages \
+                 --disable-coredump \
+                 --disable-introspection \
+                 --with-pci-ids-path=/usr/share/misc \
+                 --disable-gtk-doc-html \
+                 --disable-tcpwrap \
+                 --enable-split-usr \
+                 --disable-microhttpd \
+                 --without-python \
+               "
+
+# There's no docbook-xsl-native, so for the xsltproc check to false
+do_configure_prepend() {
+	export CPP="${HOST_PREFIX}cpp ${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}"
+	sed -i /xsltproc/d configure.ac
+
+	# we only have /home/root, not /root
+	sed -i -e 's:=/root:=/home/root:g' units/*.service*
+
+	gtkdocize --docdir ${S}/docs/
+}
+
+do_install() {
+	autotools_do_install
+	install -d ${D}/${base_sbindir}
+	# provided by a seperate recipe
+	rm ${D}${systemd_unitdir}/system/serial-getty* -f
+
+	# provide support for initramfs
+	ln -s ${systemd_unitdir}/systemd ${D}/init
+	ln -s ${systemd_unitdir}/systemd-udevd ${D}/${base_sbindir}/udevd
+
+	# create dir for journal
+	install -d ${D}${localstatedir}/log/journal
+
+	# 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 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
+
+	install -m 0644 ${WORKDIR}/var-run.conf ${D}${sysconfdir}/tmpfiles.d/
+
+	install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
+}
+
+python populate_packages_prepend (){
+    systemdlibdir = d.getVar("base_libdir", True)
+    do_split_packages(d, systemdlibdir, '^lib(.*)\.so\.*', 'lib%s', 'Systemd %s library', extra_depends='', allow_links=True)
+}
+PACKAGES_DYNAMIC += "^lib(udev|gudev|systemd).*"
+
+PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze"
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM_${PN} = "-r lock"
+
+FILES_${PN}-analyze = "${bindir}/systemd-analyze"
+RDEPENDS_${PN}-analyze = "python-dbus python-argparse python-textutils"
+RRECOMMENDS_${PN}-analyze = "python-pycairo"
+
+FILES_${PN}-initramfs = "/init"
+RDEPENDS_${PN}-initramfs = "${PN}"
+
+FILES_${PN}-gui = "${bindir}/systemadm"
+
+FILES_${PN}-vconsole-setup = "${systemd_unitdir}/systemd-vconsole-setup \
+                              ${systemd_unitdir}/system/systemd-vconsole-setup.service \
+                              ${systemd_unitdir}/system/sysinit.target.wants/systemd-vconsole-setup.service"
+
+RRECOMMENDS_${PN}-vconsole-setup = "kbd kbd-consolefonts"
+
+CONFFILES_${PN} = "${sysconfdir}/systemd/journald.conf \
+                ${sysconfdir}/systemd/logind.conf \
+                ${sysconfdir}/systemd/system.conf \
+                ${sysconfdir}/systemd/user.conf"
+
+FILES_${PN} = " ${base_bindir}/* \
+                ${datadir}/dbus-1/services \
+                ${datadir}/dbus-1/system-services \
+                ${datadir}/polkit-1 \
+                ${datadir}/${PN} \
+                ${sysconfdir}/bash_completion.d/ \
+                ${sysconfdir}/binfmt.d/ \
+                ${sysconfdir}/dbus-1/ \
+                ${sysconfdir}/machine-id \
+                ${sysconfdir}/modules-load.d/ \
+                ${sysconfdir}/sysctl.d/ \
+                ${sysconfdir}/systemd/ \
+                ${sysconfdir}/tmpfiles.d/ \
+                ${sysconfdir}/xdg/ \
+                ${sysconfdir}/init.d/README \
+                ${systemd_unitdir}/* \
+                ${systemd_unitdir}/system/* \
+                /lib/udev/rules.d/99-systemd.rules \
+                ${base_libdir}/security/*.so \
+                /cgroup \
+                ${bindir}/systemd* \
+                ${bindir}/localectl \
+                ${bindir}/hostnamectl \
+                ${bindir}/timedatectl \
+                ${exec_prefix}/lib/tmpfiles.d/*.conf \
+                ${exec_prefix}/lib/systemd \
+                ${exec_prefix}/lib/binfmt.d \
+                ${exec_prefix}/lib/modules-load.d \
+                ${exec_prefix}/lib/sysctl.d \
+                ${localstatedir} \
+                ${libexecdir} \
+                /lib/udev/rules.d/70-uaccess.rules \
+                /lib/udev/rules.d/71-seat.rules \
+                /lib/udev/rules.d/73-seat-late.rules \
+                /lib/udev/rules.d/99-systemd.rules \
+               "
+
+FILES_${PN}-dbg += "${systemd_unitdir}/.debug ${systemd_unitdir}/*/.debug ${base_libdir}/security/.debug/"
+FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd"
+
+RDEPENDS_${PN} += "dbus udev-systemd"
+
+# kbd -> loadkeys,setfont
+# systemd calls 'modprobe -sab --', which busybox doesn't support due to lack
+# of blacklist support, so use proper modprobe from module-init-tools
+# And pull in the kernel modules mentioned in INSTALL
+# swapon -p is also not supported by busybox
+# busybox mount is broken
+RRECOMMENDS_${PN} += "systemd-serialgetty \
+                      util-linux-agetty \
+                      util-linux-swaponoff \
+                      util-linux-fsck e2fsprogs-e2fsck \
+                      module-init-tools \
+                      util-linux-mount util-linux-umount \
+                      kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 \
+"
+
+PACKAGES =+ "udev-dbg udev udev-consolekit udev-utils udev-systemd"
+
+FILES_udev-dbg += "/lib/udev/.debug"
+
+RDEPENDS_udev += "udev-utils"
+RPROVIDES_udev = "hotplug"
+
+FILES_udev += "${base_sbindir}/udevd \
+               /libstemd-udevd \
+               /lib/udev/accelerometer \
+               /lib/udev/ata_id \
+               /lib/udev/cdrom_id \
+               /lib/udev/collect \
+               /lib/udev/findkeyboards \
+               /lib/udev/keyboard-force-release.sh \
+               /lib/udev/keymap \
+               /lib/udev/mtd_probe \
+               /lib/udev/scsi_id \
+               /lib/udev/v4l_id \
+               /lib/udev/keymaps \
+               /lib/udev/rules.d/4*.rules \
+               /lib/udev/rules.d/5*.rules \
+               /lib/udev/rules.d/6*.rules \
+               /lib/udev/rules.d/70-power-switch.rules \
+               /lib/udev/rules.d/75*.rules \
+               /lib/udev/rules.d/78*.rules \
+               /lib/udev/rules.d/8*.rules \
+               /lib/udev/rules.d/95*.rules \
+               ${base_libdir}/udev/hwdb.d \
+               ${sysconfdir}/udev \
+              "
+
+FILES_udev-consolekit += "/lib/ConsoleKit"
+RDEPENDS_udev-consolekit += "${@base_contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d)}"
+
+FILES_udev-utils = "${bindir}/udevadm"
+
+FILES_udev-systemd = "${systemd_unitdir}/system/*udev* ${systemd_unitdir}/system/*.wants/*udev*"
+RDEPENDS_udev-systemd = "udev"
+
+# TODO:
+# u-a for runlevel and telinit
+
+pkg_postinst_systemd () {
+update-alternatives --install ${base_sbindir}/init init ${systemd_unitdir}/systemd 300
+update-alternatives --install ${base_sbindir}/halt halt ${base_bindir}/systemctl 300
+update-alternatives --install ${base_sbindir}/reboot reboot ${base_bindir}/systemctl 300
+update-alternatives --install ${base_sbindir}/shutdown shutdown ${base_bindir}/systemctl 300
+update-alternatives --install ${base_sbindir}/poweroff poweroff ${base_bindir}/systemctl 300
+}
+
+pkg_prerm_systemd () {
+update-alternatives --remove init ${systemd_unitdir}/systemd
+update-alternatives --remove halt ${base_bindir}/systemctl
+update-alternatives --remove reboot ${base_bindir}/systemctl
+update-alternatives --remove shutdown ${base_bindir}/systemctl
+update-alternatives --remove poweroff ${base_bindir}/systemctl
+}
Signature · 7 lines
1.7.10.4


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#6 lore raw

Re: [PATCH 02/10] default-providers: Automatically set PREFERRED_PROVIDER_udev

In reply to Ross Burton
Quoted 18 lines · Ross Burton

From: Radu Moisan <[email protected]>

This is a more generic way to set preferred provider for udev. We expect to have multiple choices once we integrate other init managers, and this way we can automatically set it considering distro settings.

---
 meta/conf/distro/include/default-providers.inc |    1 +
 1 file changed, 1 insertion(+)
meta/conf/distro/include/default-providers.inc +0 -0
index 8ed703c..89b6465 100644

meta/conf/distro/include/default-providers.inc PREFERRED_PROVIDER_nativesdk-opkg ?= "nativesdk-opkg" · line 40

Quoted 4 lines
meta/conf/distro/include/default-providers.inc +1 -0
@@ -37,3 +37,4 @@ PREFERRED_PROVIDER_nativesdk-opkg ?= "nativesdk-opkg"
 PREFERRED_PROVIDER_console-tools ?= "kbd"
 PREFERRED_PROVIDER_gzip-native ?= "pigz-native"
 PREFERRED_PROVIDER_make ?= "make"
+PREFERRED_PROVIDER_udev ?= "${@base_contains('DISTRO_FEATURES','sysvinit','udev','',d)}"

'systemd' missing in 4th param? or another "${@base_contains('DISTRO_FEATURES','systemd','systemd','',d)}" ?

Quoted 8 lines
Signature · 7 lines
1.7.10.4


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#7 lore raw

Re: [PATCH 02/10] default-providers: Automatically set PREFERRED_PROVIDER_udev

Quoted 14 lines · Martin Jansa
Quoted 13 lines · Ross Burton

From: Radu Moisan <[email protected]>

This is a more generic way to set preferred provider for udev. We expect to have multiple choices once we integrate other init managers, and this way we can automatically set it considering distro settings.

---
 meta/conf/distro/include/default-providers.inc |    1 +
 1 file changed, 1 insertion(+)
Quoted 13 lines

meta/conf/distro/include/default-providers.inc PREFERRED_PROVIDER_nativesdk-opkg ?= "nativesdk-opkg" · line 40

Quoted 9 lines
meta/conf/distro/include/default-providers.inc +1 -0
index 8ed703c..89b6465 100644
@@ -37,3 +37,4 @@ PREFERRED_PROVIDER_nativesdk-opkg ?= "nativesdk-opkg"
 PREFERRED_PROVIDER_console-tools ?= "kbd"
 PREFERRED_PROVIDER_gzip-native ?= "pigz-native"
 PREFERRED_PROVIDER_make ?= "make"
+PREFERRED_PROVIDER_udev ?= "${@base_contains('DISTRO_FEATURES','sysvinit','udev','',d)}"

'systemd' missing in 4th param? or another "${@base_contains('DISTRO_FEATURES','systemd','systemd','',d)}" ?

Ah ignore this, it's added in 05/10.

Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#29 lore raw
In reply to Ross Burton

Hello.

I am merely a user of the free OpenEmbedded, and I was quite happy to see that OpenEmbedded was heading towards providing multiple init managers (be it sysvinit, systemd, openrc, upstart or what not). However, from this series of patches it seems to me that systemd usage is added to the openembedded-core meta layer, instead of a separate meta-systemd layer.

As a result, I have to ask - why would the openembedded-core meta layer provide a default init manager, instead of separating this choice in other meta layers, like it was within meta-openembedded?

I find the following organization more orthogonal:

* meta - same as before
* meta-sysvinit - adds sysvinit recipes for meta packages
* meta-systemd - same for systemd-based systems

This would enable users (and yourself) to select whichever they want. Also it would clean up base recipes from the core meta layer.

However, with oe-core/meta providing a default embedded policy, higher layers need to remove sysvinit or systemd stuff from base recipes, which is against bitbake's additive language design (only append/prepend functions, no -= operator) and against separating concerns.

Cipi

Quoted 189 lines · Ross Burton

Hi,

This series has the goal of enabling core-image-minimal to boot using systemd. As such it touches no real services, just the infrastructural tweaks to make the init manager a distribution choice, systemd itself, and a few low-level changes.

95% of the credit obviously must go to the contributors of meta-systemd:

Andreas Müller <[email protected]> Denis 'GNUtoo' Carikli <[email protected]> Holger Hans Peter Freyther <[email protected]> Khem Raj <[email protected]>
Koen Kooi <[email protected]> Martin Jansa <[email protected]>

And thanks to Radu Moisan <[email protected]> for the work pulling together a series for merging into oe-core.

Confirmed that this series using sysvinit results in a zero-delta in core-image-minimal.

Cheers,
Ross

The following changes since commit 349e5bea53b02cabf836b8943541a002ce9ba682:

guilt: add git 1.8.x support (2013-01-18 13:28:10 +0000)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib ross/systemd-minimal

for you to fetch changes up to 2a93db0fd8302290ac0f2c6c83ea640ad273c3e2:

libpam: register PAM session with logind (2013-01-19 22:35:52 +0000)

----------------------------------------------------------------
Koen Kooi (1):
libpam: register PAM session with logind

Martin Donnelly (1):
base-files: add fstab for systemd based systems

Radu Moisan (5):
default-distrovars: Add DISTRO_FEATURES_INITMAN to DISTRO_FEATURES
default-providers: Automatically set PREFERRED_PROVIDER_udev
systemd: add systemd recipes
default-providers: Add systemd option to PREFERRED_PROVIDER_udev update-rc.d: disable update-rc.d.bbclass when systemd enabled

Ross Burton (3):
dbus: respect systemd distro feature
packagegroup-core-boot: install systemd-compat-units on systemd images
packagegroup-core-boot: only install initscripts if we're using sysvinit

 meta/classes/update-rc.d.bbclass                   |   90 +-----
 meta/classes/update-rc.d_real.bbclass              |   89 ++++++
 meta/conf/distro/include/default-distrovars.inc    |    3 +-
 meta/conf/distro/include/default-providers.inc     |    1 +
 .../base-files/base-files/fstab.systemd            |    9 +
 meta/recipes-core/base-files/base-files_3.0.14.bb  |    7 +-
 meta/recipes-core/dbus/dbus.inc                    |   27 +-
 .../packagegroups/packagegroup-core-boot.bb        |    7 +-
 meta/recipes-core/systemd/systemd-compat-units.bb  |   58 ++++
 .../systemd/systemd-compat-units/machineid.service |   16 +
 .../systemd-compat-units/run-postinsts.service     |   17 +
 meta/recipes-core/systemd/systemd-serialgetty.bb   |   45 +++
 .../systemd-serialgetty/[email protected]      |   32 ++
 .../systemd/systemd-systemctl-native.bb            |   15 +
 .../systemd/systemd-systemctl/systemctl            |  126 ++++++++
 .../systemd/systemd/00-create-volatile.conf        |   10 +
 ...emd-analyze-use-argparse-instead-of-getop.patch |  103 ++++++
 ...-analyze-use-GDBus-instead-of-dbus-python.patch |   91 ++++++
 meta/recipes-core/systemd/systemd/modprobe.rules   |   17 +
 .../systemd/systemd/optional_secure_getenv.patch   |   19 ++
 .../systemd-pam-configure-check-uclibc.patch       |   26 ++
 .../systemd/systemd/systemd-pam-fix-execvpe.patch  |   26 ++
 .../systemd/systemd-pam-fix-fallocate.patch        |   82 +++++
 .../systemd/systemd-pam-fix-getty-unit.patch       |   35 ++
 .../systemd/systemd/systemd-pam-fix-mkostemp.patch |  166 ++++++++++
 .../systemd/systemd/systemd-pam-fix-msformat.patch |  335 ++++++++++++++++++++
 .../recipes-core/systemd/systemd/touchscreen.rules |   18 ++
 .../systemd/systemd/use-rootlibdir.patch           |  107 +++++++
 meta/recipes-core/systemd/systemd/var-run.conf     |    4 +
 meta/recipes-core/systemd/systemd_196.bb           |  249 +++++++++++++++
 .../pam/libpam/pam.d/common-session                |    4 +-
 31 files changed, 1726 insertions(+), 108 deletions(-)
 create mode 100644 meta/classes/update-rc.d_real.bbclass
 create mode 100644 meta/recipes-core/base-files/base-files/fstab.systemd
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units.bb
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units/machineid.service
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units/run-postinsts.service
 create mode 100644 meta/recipes-core/systemd/systemd-serialgetty.bb
 create mode 100644 meta/recipes-core/systemd/systemd-serialgetty/[email protected]
 create mode 100644 meta/recipes-core/systemd/systemd-systemctl-native.bb
 create mode 100755 meta/recipes-core/systemd/systemd-systemctl/systemctl
 create mode 100644 meta/recipes-core/systemd/systemd/00-create-volatile.conf
 create mode 100644 meta/recipes-core/systemd/systemd/0001-Revert-systemd-analyze-use-argparse-instead-of-getop.patch
 create mode 100644 meta/recipes-core/systemd/systemd/0002-Revert-analyze-use-GDBus-instead-of-dbus-python.patch
 create mode 100644 meta/recipes-core/systemd/systemd/modprobe.rules
 create mode 100644 meta/recipes-core/systemd/systemd/optional_secure_getenv.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-configure-check-uclibc.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-execvpe.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-fallocate.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-getty-unit.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-msformat.patch
 create mode 100644 meta/recipes-core/systemd/systemd/touchscreen.rules
 create mode 100644 meta/recipes-core/systemd/systemd/use-rootlibdir.patch
 create mode 100644 meta/recipes-core/systemd/systemd/var-run.conf
 create mode 100644 meta/recipes-core/systemd/systemd_196.bb

Koen Kooi (1):
libpam: register PAM session with logind

Martin Donnelly (1):
base-files: add fstab for systemd based systems

Radu Moisan (5):
default-distrovars: Add DISTRO_FEATURES_INITMAN to DISTRO_FEATURES
default-providers: Automatically set PREFERRED_PROVIDER_udev
systemd: add systemd recipes
default-providers: Add systemd option to PREFERRED_PROVIDER_udev update-rc.d: disable update-rc.d.bbclass when systemd enabled

Ross Burton (3):
dbus: respect systemd distro feature
packagegroup-core-boot: install systemd-compat-units on systemd
images
packagegroup-core-boot: only install initscripts if we're using
sysvinit

 meta/classes/update-rc.d.bbclass                   |   90 +-----
 meta/classes/update-rc.d_real.bbclass              |   89 ++++++
 meta/conf/distro/include/default-distrovars.inc    |    3 +-
 meta/conf/distro/include/default-providers.inc     |    1 +
 .../base-files/base-files/fstab.systemd            |    9 +
 meta/recipes-core/base-files/base-files_3.0.14.bb  |    7 +-
 meta/recipes-core/dbus/dbus.inc                    |   27 +-
 .../packagegroups/packagegroup-core-boot.bb        |    7 +-
 meta/recipes-core/systemd/systemd-compat-units.bb  |   58 ++++
 .../systemd/systemd-compat-units/machineid.service |   16 +
 .../systemd-compat-units/run-postinsts.service     |   17 +
 meta/recipes-core/systemd/systemd-serialgetty.bb   |   45 +++
 .../systemd-serialgetty/[email protected]      |   32 ++
 .../systemd/systemd-systemctl-native.bb            |   15 +
 .../systemd/systemd-systemctl/systemctl            |  126 ++++++++
 .../systemd/systemd/00-create-volatile.conf        |   10 +
 ...emd-analyze-use-argparse-instead-of-getop.patch |  103 ++++++
 ...-analyze-use-GDBus-instead-of-dbus-python.patch |   91 ++++++
 meta/recipes-core/systemd/systemd/modprobe.rules   |   17 +
 .../systemd/systemd/optional_secure_getenv.patch   |   19 ++
 .../systemd-pam-configure-check-uclibc.patch       |   26 ++
 .../systemd/systemd/systemd-pam-fix-execvpe.patch  |   26 ++
 .../systemd/systemd-pam-fix-fallocate.patch        |   82 +++++
 .../systemd/systemd-pam-fix-getty-unit.patch       |   35 ++
 .../systemd/systemd/systemd-pam-fix-mkostemp.patch |  166 ++++++++++
 .../systemd/systemd/systemd-pam-fix-msformat.patch |  335 ++++++++++++++++++++
 .../recipes-core/systemd/systemd/touchscreen.rules |   18 ++
 .../systemd/systemd/use-rootlibdir.patch           |  107 +++++++
 meta/recipes-core/systemd/systemd/var-run.conf     |    4 +
 meta/recipes-core/systemd/systemd_196.bb           |  249 +++++++++++++++
 .../pam/libpam/pam.d/common-session                |    4 +-
 31 files changed, 1726 insertions(+), 108 deletions(-)
 create mode 100644 meta/classes/update-rc.d_real.bbclass
 create mode 100644 meta/recipes-core/base-files/base-files/fstab.systemd
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units.bb
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units/machineid.service
 create mode 100644 meta/recipes-core/systemd/systemd-compat-units/run-postinsts.service
 create mode 100644 meta/recipes-core/systemd/systemd-serialgetty.bb
 create mode 100644 meta/recipes-core/systemd/systemd-serialgetty/[email protected]
 create mode 100644 meta/recipes-core/systemd/systemd-systemctl-native.bb
 create mode 100755 meta/recipes-core/systemd/systemd-systemctl/systemctl
 create mode 100644 meta/recipes-core/systemd/systemd/00-create-volatile.conf
 create mode 100644 meta/recipes-core/systemd/systemd/0001-Revert-systemd-analyze-use-argparse-instead-of-getop.patch
 create mode 100644 meta/recipes-core/systemd/systemd/0002-Revert-analyze-use-GDBus-instead-of-dbus-python.patch
 create mode 100644 meta/recipes-core/systemd/systemd/modprobe.rules
 create mode 100644 meta/recipes-core/systemd/systemd/optional_secure_getenv.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-configure-check-uclibc.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-execvpe.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-fallocate.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-getty-unit.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch
 create mode 100644 meta/recipes-core/systemd/systemd/systemd-pam-fix-msformat.patch
 create mode 100644 meta/recipes-core/systemd/systemd/touchscreen.rules
 create mode 100644 meta/recipes-core/systemd/systemd/use-rootlibdir.patch
 create mode 100644 meta/recipes-core/systemd/systemd/var-run.conf
 create mode 100644 meta/recipes-core/systemd/systemd_196.bb
#22 lore raw
In reply to Saul Wold
Quoted 37 lines · Saul Wold
Quoted 18 lines · Ross Burton

Hi,

This series has the goal of enabling core-image-minimal to boot using systemd.
As such it touches no real services, just the infrastructural tweaks to make the
init manager a distribution choice, systemd itself, and a few low-level changes.

95% of the credit obviously must go to the contributors of meta-systemd:

Andreas Müller <[email protected]> Denis 'GNUtoo' Carikli <[email protected]> Holger Hans Peter Freyther <[email protected]> Khem Raj <[email protected]>
Koen Kooi <[email protected]> Martin Jansa <[email protected]>

Quoted 7 lines

And thanks to Radu Moisan <[email protected]> for the work pulling together
a series for merging into oe-core.

Confirmed that this series using sysvinit results in a zero-delta in core-image-minimal.

This change introduced a new warning about un-packaged files:

Quoted 6 lines

WARNING: QA Issue: connman: Files/directories were installed but not shipped
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/connman.service

Quoted 119 lines

Sau!

Quoted 116 lines

Cheers,
Ross

The following changes since commit
349e5bea53b02cabf836b8943541a002ce9ba682:

   guilt: add git 1.8.x support (2013-01-18 13:28:10 +0000)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib ross/systemd-minimal

for you to fetch changes up to 2a93db0fd8302290ac0f2c6c83ea640ad273c3e2:

libpam: register PAM session with logind (2013-01-19 22:35:52 +0000)

----------------------------------------------------------------
Koen Kooi (1):
libpam: register PAM session with logind

Martin Donnelly (1):
base-files: add fstab for systemd based systems

Radu Moisan (5):
default-distrovars: Add DISTRO_FEATURES_INITMAN to DISTRO_FEATURES
default-providers: Automatically set PREFERRED_PROVIDER_udev
systemd: add systemd recipes
default-providers: Add systemd option to PREFERRED_PROVIDER_udev update-rc.d: disable update-rc.d.bbclass when systemd enabled

Ross Burton (3):
dbus: respect systemd distro feature
packagegroup-core-boot: install systemd-compat-units on systemd
images
packagegroup-core-boot: only install initscripts if we're using
sysvinit

  meta/classes/update-rc.d.bbclass                   |   90 +-----
  meta/classes/update-rc.d_real.bbclass              |   89 ++++++
  meta/conf/distro/include/default-distrovars.inc    |    3 +-
  meta/conf/distro/include/default-providers.inc     |    1 +
  .../base-files/base-files/fstab.systemd            |    9 +
  meta/recipes-core/base-files/base-files_3.0.14.bb  |    7 +-
  meta/recipes-core/dbus/dbus.inc                    |   27 +-
  .../packagegroups/packagegroup-core-boot.bb        |    7 +-
  meta/recipes-core/systemd/systemd-compat-units.bb  |   58 ++++
  .../systemd/systemd-compat-units/machineid.service |   16 +
  .../systemd-compat-units/run-postinsts.service     |   17 +
  meta/recipes-core/systemd/systemd-serialgetty.bb   |   45 +++
  .../systemd-serialgetty/[email protected]      |   32 ++
  .../systemd/systemd-systemctl-native.bb            |   15 +
  .../systemd/systemd-systemctl/systemctl            |  126 ++++++++
  .../systemd/systemd/00-create-volatile.conf        |   10 +
  ...emd-analyze-use-argparse-instead-of-getop.patch |  103 ++++++
  ...-analyze-use-GDBus-instead-of-dbus-python.patch |   91 ++++++
  meta/recipes-core/systemd/systemd/modprobe.rules   |   17 +
  .../systemd/systemd/optional_secure_getenv.patch   |   19 ++
  .../systemd-pam-configure-check-uclibc.patch       |   26 ++
  .../systemd/systemd/systemd-pam-fix-execvpe.patch  |   26 ++
  .../systemd/systemd-pam-fix-fallocate.patch        |   82 +++++
  .../systemd/systemd-pam-fix-getty-unit.patch       |   35 ++
  .../systemd/systemd/systemd-pam-fix-mkostemp.patch |  166 ++++++++++
  .../systemd/systemd/systemd-pam-fix-msformat.patch |  335
++++++++++++++++++++
  .../recipes-core/systemd/systemd/touchscreen.rules |   18 ++
  .../systemd/systemd/use-rootlibdir.patch           |  107 +++++++
  meta/recipes-core/systemd/systemd/var-run.conf     |    4 +
  meta/recipes-core/systemd/systemd_196.bb           |  249
+++++++++++++++
  .../pam/libpam/pam.d/common-session                |    4 +-
  31 files changed, 1726 insertions(+), 108 deletions(-)

create mode 100644 meta/classes/update-rc.d_real.bbclass
create mode 100644
meta/recipes-core/base-files/base-files/fstab.systemd
create mode 100644 meta/recipes-core/systemd/systemd-compat-units.bb
create mode 100644
meta/recipes-core/systemd/systemd-compat-units/machineid.service
create mode 100644
meta/recipes-core/systemd/systemd-compat-units/run-postinsts.service
create mode 100644 meta/recipes-core/systemd/systemd-serialgetty.bb
create mode 100644
meta/recipes-core/systemd/systemd-serialgetty/[email protected]
create mode 100644
meta/recipes-core/systemd/systemd-systemctl-native.bb
create mode 100755
meta/recipes-core/systemd/systemd-systemctl/systemctl
create mode 100644
meta/recipes-core/systemd/systemd/00-create-volatile.conf
create mode 100644
meta/recipes-core/systemd/systemd/0001-Revert-systemd-analyze-use-argparse-instead-of-getop.patch

create mode 100644
meta/recipes-core/systemd/systemd/0002-Revert-analyze-use-GDBus-instead-of-dbus-python.patch

create mode 100644 meta/recipes-core/systemd/systemd/modprobe.rules create mode 100644
meta/recipes-core/systemd/systemd/optional_secure_getenv.patch
create mode 100644
meta/recipes-core/systemd/systemd/systemd-pam-configure-check-uclibc.patch

create mode 100644
meta/recipes-core/systemd/systemd/systemd-pam-fix-execvpe.patch
create mode 100644
meta/recipes-core/systemd/systemd/systemd-pam-fix-fallocate.patch
create mode 100644
meta/recipes-core/systemd/systemd/systemd-pam-fix-getty-unit.patch
create mode 100644
meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch
create mode 100644
meta/recipes-core/systemd/systemd/systemd-pam-fix-msformat.patch
create mode 100644 meta/recipes-core/systemd/systemd/touchscreen.rules create mode 100644
meta/recipes-core/systemd/systemd/use-rootlibdir.patch
create mode 100644 meta/recipes-core/systemd/systemd/var-run.conf create mode 100644 meta/recipes-core/systemd/systemd_196.bb

Another thing I just noticed is that many of these patches are missing either Signed-off-by or Upstream-Status Tags!

Thanks
Sau!

Quoted 104 lines
Quoted 83 lines

Koen Kooi (1):
libpam: register PAM session with logind

Martin Donnelly (1):
base-files: add fstab for systemd based systems

Radu Moisan (5):
default-distrovars: Add DISTRO_FEATURES_INITMAN to DISTRO_FEATURES
default-providers: Automatically set PREFERRED_PROVIDER_udev
systemd: add systemd recipes
default-providers: Add systemd option to PREFERRED_PROVIDER_udev update-rc.d: disable update-rc.d.bbclass when systemd enabled

Ross Burton (3):
dbus: respect systemd distro feature
packagegroup-core-boot: install systemd-compat-units on systemd
images
packagegroup-core-boot: only install initscripts if we're using
sysvinit

  meta/classes/update-rc.d.bbclass                   |   90 +-----
  meta/classes/update-rc.d_real.bbclass              |   89 ++++++
  meta/conf/distro/include/default-distrovars.inc    |    3 +-
  meta/conf/distro/include/default-providers.inc     |    1 +
  .../base-files/base-files/fstab.systemd            |    9 +
  meta/recipes-core/base-files/base-files_3.0.14.bb  |    7 +-
  meta/recipes-core/dbus/dbus.inc                    |   27 +-
  .../packagegroups/packagegroup-core-boot.bb        |    7 +-
  meta/recipes-core/systemd/systemd-compat-units.bb  |   58 ++++
  .../systemd/systemd-compat-units/machineid.service |   16 +
  .../systemd-compat-units/run-postinsts.service     |   17 +
  meta/recipes-core/systemd/systemd-serialgetty.bb   |   45 +++
  .../systemd-serialgetty/[email protected]      |   32 ++
  .../systemd/systemd-systemctl-native.bb            |   15 +
  .../systemd/systemd-systemctl/systemctl            |  126 ++++++++
  .../systemd/systemd/00-create-volatile.conf        |   10 +
  ...emd-analyze-use-argparse-instead-of-getop.patch |  103 ++++++
  ...-analyze-use-GDBus-instead-of-dbus-python.patch |   91 ++++++
  meta/recipes-core/systemd/systemd/modprobe.rules   |   17 +
  .../systemd/systemd/optional_secure_getenv.patch   |   19 ++
  .../systemd-pam-configure-check-uclibc.patch       |   26 ++
  .../systemd/systemd/systemd-pam-fix-execvpe.patch  |   26 ++
  .../systemd/systemd-pam-fix-fallocate.patch        |   82 +++++
  .../systemd/systemd-pam-fix-getty-unit.patch       |   35 ++
  .../systemd/systemd/systemd-pam-fix-mkostemp.patch |  166 ++++++++++
  .../systemd/systemd/systemd-pam-fix-msformat.patch |  335
++++++++++++++++++++
  .../recipes-core/systemd/systemd/touchscreen.rules |   18 ++
  .../systemd/systemd/use-rootlibdir.patch           |  107 +++++++
  meta/recipes-core/systemd/systemd/var-run.conf     |    4 +
  meta/recipes-core/systemd/systemd_196.bb           |  249
+++++++++++++++
  .../pam/libpam/pam.d/common-session                |    4 +-
  31 files changed, 1726 insertions(+), 108 deletions(-)

create mode 100644 meta/classes/update-rc.d_real.bbclass
create mode 100644
meta/recipes-core/base-files/base-files/fstab.systemd
create mode 100644 meta/recipes-core/systemd/systemd-compat-units.bb
create mode 100644
meta/recipes-core/systemd/systemd-compat-units/machineid.service
create mode 100644
meta/recipes-core/systemd/systemd-compat-units/run-postinsts.service
create mode 100644 meta/recipes-core/systemd/systemd-serialgetty.bb
create mode 100644
meta/recipes-core/systemd/systemd-serialgetty/[email protected]
create mode 100644
meta/recipes-core/systemd/systemd-systemctl-native.bb
create mode 100755
meta/recipes-core/systemd/systemd-systemctl/systemctl
create mode 100644
meta/recipes-core/systemd/systemd/00-create-volatile.conf
create mode 100644
meta/recipes-core/systemd/systemd/0001-Revert-systemd-analyze-use-argparse-instead-of-getop.patch

create mode 100644
meta/recipes-core/systemd/systemd/0002-Revert-analyze-use-GDBus-instead-of-dbus-python.patch

create mode 100644 meta/recipes-core/systemd/systemd/modprobe.rules create mode 100644
meta/recipes-core/systemd/systemd/optional_secure_getenv.patch
create mode 100644
meta/recipes-core/systemd/systemd/systemd-pam-configure-check-uclibc.patch

Quoted 16 lines

create mode 100644
meta/recipes-core/systemd/systemd/systemd-pam-fix-execvpe.patch
create mode 100644
meta/recipes-core/systemd/systemd/systemd-pam-fix-fallocate.patch
create mode 100644
meta/recipes-core/systemd/systemd/systemd-pam-fix-getty-unit.patch
create mode 100644
meta/recipes-core/systemd/systemd/systemd-pam-fix-mkostemp.patch
create mode 100644
meta/recipes-core/systemd/systemd/systemd-pam-fix-msformat.patch
create mode 100644 meta/recipes-core/systemd/systemd/touchscreen.rules create mode 100644
meta/recipes-core/systemd/systemd/use-rootlibdir.patch
create mode 100644 meta/recipes-core/systemd/systemd/var-run.conf create mode 100644 meta/recipes-core/systemd/systemd_196.bb

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

#23 lore raw

The autobuilder hit this last night:

ERROR: Multiple .bb files are due to be built which each provide udev (/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/meta/recipes-core/udev/udev_182.bb /srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/meta/recipes-core/systemd/systemd_196.bb).

Which I realised would happen not long after hitting send. I'll sort this too.

Ross

#24 lore raw

Hi Ross,

Quoted 8 lines · Ross

The autobuilder hit this last night:

ERROR: Multiple .bb files are due to be built which each provide udev (/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/meta/recipes-core/udev/udev_182.bb /srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/meta/recipes-core/systemd/systemd_196.bb).

Which I realised would happen not long after hitting send. I'll sort this too.

we had the same problem in meta-oe's denzil branch.

The workaround is here :
http://patches.openembedded.org/patch/41669/
http://patches.openembedded.org/patch/41667/
http://patches.openembedded.org/patch/41671/

What should work in OE-Core when using systemd is :
PREFERRED_PROVIDER_udev = "systemd"

Eric

#25 lore raw
Quoted 15 lines · Eric Bénard

Hi Ross,

Quoted 8 lines · Ross

The autobuilder hit this last night:

ERROR: Multiple .bb files are due to be built which each provide udev (/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/meta/recipes-core/udev/udev_182.bb /srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/meta/recipes-core/systemd/systemd_196.bb).

Which I realised would happen not long after hitting send. I'll sort this too.

we had the same problem in meta-oe's denzil branch.

Quoted 7 lines

The workaround is here :
http://patches.openembedded.org/patch/41669/
http://patches.openembedded.org/patch/41667/
http://patches.openembedded.org/patch/41671/

What should work in OE-Core when using systemd is :
PREFERRED_PROVIDER_udev = "systemd"

This is addressed in [PATCH 2/10] & [PATCH 5/10], it should not require specifically setting the PREFERRED_PROVIDER_udev

Radu

#20 lore raw
In reply to Burton, Ross
Quoted 10 lines · Ross
Quoted 8 lines · Saul Wold

This change introduced a new warning about un-packaged files:

Quoted 6 lines

WARNING: QA Issue: connman: Files/directories were installed but not shipped
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/connman.service

Quoted 6 lines

That will be connman detecting the systemd pkgconfig files in the sysroot and enabling the integration automatically. To avoid either
a) enabling systemd integration in every service that does this or b) disabling systemd in every service that does this, can we ignore these warnings knowing that they'll be resolved when the rest of the integration lands?

Why weren't changes from meta-systemd/oe-core/recipes-connectivity/connman/connman_1.10.bbappend merged to oe-core?

Cheers,

Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#21 lore raw
Quoted 3 lines · Martin Jansa

Why weren't changes from meta-systemd/oe-core/recipes-connectivity/connman/connman_1.10.bbappend merged to oe-core?

Because I'm 90% sure connman isn't the only package that does runtime detection of systemd. As I said in the original mail, the goal of this series was to merge the core support, not all of the services. Mainly, I want to understand systemd.bbclass before submitting it.

Ross

#26 lore raw
In reply to Eric Bénard
Quoted 15 lines · Eric Bénard

Hi Ross,

Quoted 8 lines · Ross

The autobuilder hit this last night:

ERROR: Multiple .bb files are due to be built which each provide udev (/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/meta/recipes-core/udev/udev_182.bb /srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/meta/recipes-core/systemd/systemd_196.bb).

Which I realised would happen not long after hitting send. I'll sort this too.

we had the same problem in meta-oe's denzil branch.

Quoted 7 lines

The workaround is here :
http://patches.openembedded.org/patch/41669/
http://patches.openembedded.org/patch/41667/
http://patches.openembedded.org/patch/41671/

What should work in OE-Core when using systemd is :
PREFERRED_PROVIDER_udev = "systemd"

This isn't enough to prevent warnings for "bitbake world". We need to detect which is enabled and then SkipPackage in the one that isn't needed, or at least exclude it from the world build.

Cheers,

Richard

#11 lore raw

Re: [PATCH 04/10] systemd: add systemd recipes

In reply to Martin Jansa
Quoted 2 lines · Martin Jansa

Looking at diff between oe-core systemd recipe and meta-systemd, can you explain why python support got disabled.

I'll delegate that to Radu who did the bulk of the systemd recipe integration... if it's actually useful we can bring it back.

Quoted 5 lines

And why are there diffs like:

(quoted diff) +2 -1
-               /libstemd-udevd \
+               /lib/udev/udevd \
+               /lib/systemd/systemd-udevd \

(the later is meta-systemd).

Clearly a typo from backspacing a little too much... Patch sent to fix this. Note that I removed the compat symlink as the initramfs handles the systemd udev now.

Quoted 3 lines

Is there some plan to send patches for meta-systemd to remove bits merged to oe-core? Right now a lot of stuff is not parsing due to removed dbus-systemd package.

I see you've already sent a patch for this - anything else massively breaking?

Ross

#27 lore raw
In reply to Richard Purdie
Quoted 3 lines · Richard Purdie

This isn't enough to prevent warnings for "bitbake world". We need to detect which is enabled and then SkipPackage in the one that isn't needed, or at least exclude it from the world build.

Patches sent so udev and systemd skip if the other is going to be built.

Ross

#28 lore raw
In reply to Saul Wold
Quoted 2 lines · Saul Wold

Another thing I just noticed is that many of these patches are missing either Signed-off-by or Upstream-Status Tags!

Yes. I meant to wipe out the uclibc patches for now to reduce the attribution-chasing, but forgot. I'll work on that next.

Ross

#30 lore raw
In reply to Ciprian Ciubotariu
Quoted 4 lines · Ciprian Ciubotariu

However, with oe-core/meta providing a default embedded policy, higher layers need to remove sysvinit or systemd stuff from base recipes, which is against bitbake's additive language design (only append/prepend functions, no -= operator) and against separating concerns.

If you don't do a systemd build, you won't get any of the systemd files. Ditto, sysvinit (well, that's the goal - as it was an assumption until now that needs work still).

An oe-core without *any* init system will be very cumbersome - every service will need a bbappend to actually work, with the subsequent maintenance costs.

Ross

#31 lore raw
Quoted 6 lines · Ross
Quoted 4 lines · Ciprian Ciubotariu

However, with oe-core/meta providing a default embedded policy, higher layers need to remove sysvinit or systemd stuff from base recipes, which is against bitbake's additive language design (only append/prepend functions, no -= operator) and against separating concerns.

Quoted 8 lines

If you don't do a systemd build, you won't get any of the systemd files. Ditto, sysvinit (well, that's the goal - as it was an assumption until now that needs work still).

An oe-core without *any* init system will be very cumbersome - every service will need a bbappend to actually work, with the subsequent maintenance costs.

Ouch, I thought that this was one of the goals of the select your init system, ie don't use either sysvinit or systemd. Poky-Tiny has a single file rc.local script to do the initialization of the system.

Sau!

Quoted 8 lines

Ross

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

#32 lore raw
Quoted 3 lines · Saul Wold

Ouch, I thought that this was one of the goals of the select your init system, ie don't use either sysvinit or systemd. Poky-Tiny has a single file rc.local script to do the initialization of the system.

And presumably a poky-tiny image doesn't pull in any actual services, as they'd have been installing /etc/init.d/* files and invoking update-rc.d.

Well, as of yesterday, that is. Now that update-rc.d is a no-op without sysvinit, at least the postinsts don't happen.

Ross

#35 lore raw
In reply to Ross Burton
Quoted 15 lines · Ross Burton

Hi,

This series has the goal of enabling core-image-minimal to boot using systemd. As such it touches no real services, just the infrastructural tweaks to make the init manager a distribution choice, systemd itself, and a few low-level changes.

95% of the credit obviously must go to the contributors of meta-systemd:

Andreas Müller <[email protected]> Denis 'GNUtoo' Carikli <[email protected]> Holger Hans Peter Freyther <[email protected]> Khem Raj <[email protected]>
Koen Kooi <[email protected]> Martin Jansa <[email protected]>

Quoted 10 lines

And thanks to Radu Moisan <[email protected]> for the work pulling together a series for merging into oe-core.

Confirmed that this series using sysvinit results in a zero-delta in core-image-minimal.

Cheers,
Ross

Maybe we need to add something like below to meta-yocto/conf/local.conf.sample ?

# set default init manager: sysvinit or systemd
DISTRO_FEATURES_INITMAN ?= "sysvinit"

This may help make it clearer how to choose an init manager in conf/local.conf file.

Cheers,
Chen Qi

#36 lore raw
Quoted 27 lines · ChenQi
Quoted 15 lines · Ross Burton

Hi,

This series has the goal of enabling core-image-minimal to boot using systemd. As such it touches no real services, just the infrastructural tweaks to make the init manager a distribution choice, systemd itself, and a few low-level changes.

95% of the credit obviously must go to the contributors of meta-systemd:

Andreas Müller <[email protected]> Denis 'GNUtoo' Carikli <[email protected]> Holger Hans Peter Freyther <[email protected]> Khem Raj <[email protected]>
Koen Kooi <[email protected]> Martin Jansa <[email protected]>

Quoted 10 lines

And thanks to Radu Moisan <[email protected]> for the work pulling together a series for merging into oe-core.

Confirmed that this series using sysvinit results in a zero-delta in core-image-minimal.

Cheers,
Ross

Quoted 6 lines

Maybe we need to add something like below to meta-yocto/conf/local.conf.sample ?

# set default init manager: sysvinit or systemd
DISTRO_FEATURES_INITMAN ?= "sysvinit"

This may help make it clearer how to choose an init manager in conf/local.conf file.

Sounds good to me.

Radu

#33 lore raw
In reply to Burton, Ross
Quoted 11 lines · Ross
Quoted 5 lines · Ciprian Ciubotariu

However, with oe-core/meta providing a default embedded policy, higher layers need to remove sysvinit or systemd stuff from base recipes, which is
against bitbake's additive language design (only append/prepend functions, no -= operator) and against separating concerns.

If you don't do a systemd build, you won't get any of the systemd files. Ditto, sysvinit (well, that's the goal - as it was an assumption until now that needs work still).

Does that mean that I can disable the default init manager somehow, and provide my own?

Quoted 4 lines

An oe-core without *any* init system will be very cumbersome - every service will need a bbappend to actually work, with the subsequent maintenance costs.

I fail to see the overhead of maintaining a feature in one file, and the init- manager part of the same feature in another file. The actual complexity is the same as when adding an use-flag like configuration variable in a single-file recipe; perhaps one avoids hitting "Open..." on the editor.

However, if I understand correctly, one can disable the default OE policy for an init manager, though not by choice of different layers, but via having systemd or not in DISTRO_FEATURES.

Does this means that

- having DISTRO_FEATURES += "systemd" we get a system with systemd;
- DISTRO_FEATURES += "sysvinit" makes a system with sysvinit, and
- leaving DISTRO_FEATURES blank leaves us with a system with no init manager, to which we can add our own?

I guess the most important aspect I am trying to communicate is: please do not provide any by default.

Cipi

Quoted 1 line

Ross

#34 lore raw
Quoted 8 lines · Ciprian Ciubotariu
Quoted 7 lines · Ross
Quoted 5 lines · Ciprian Ciubotariu

However, with oe-core/meta providing a default embedded policy, higher layers need to remove sysvinit or systemd stuff from base recipes, which is
against bitbake's additive language design (only append/prepend functions, no -= operator) and against separating concerns.

Quoted 7 lines
Quoted 4 lines

If you don't do a systemd build, you won't get any of the systemd files. Ditto, sysvinit (well, that's the goal - as it was an assumption until now that needs work still).

Does that mean that I can disable the default init manager somehow, and provide my own?

Its always been possible to provide your own init manager. The initramfs filesystems do this, as does poky-tiny, you simply provide your own init system dependencies and pull them in instead of sysvinit or systemd.

On more complex images, init systems are a little more complex than that though.

Quoted 14 lines
Quoted 4 lines

An oe-core without *any* init system will be very cumbersome - every service will need a bbappend to actually work, with the subsequent maintenance costs.

I fail to see the overhead of maintaining a feature in one file, and the init- manager part of the same feature in another file. The actual complexity is the same as when adding an use-flag like configuration variable in a single-file recipe; perhaps one avoids hitting "Open..." on the editor.

However, if I understand correctly, one can disable the default OE policy for an init manager, though not by choice of different layers, but via having systemd or not in DISTRO_FEATURES.

Quoted 6 lines

Does this means that

- having DISTRO_FEATURES += "systemd" we get a system with systemd;
- DISTRO_FEATURES += "sysvinit" makes a system with sysvinit, and
- leaving DISTRO_FEATURES blank leaves us with a system with no init manager, to which we can add our own?

Those flags control the way some recipes build. Those recipes have source code which does different things depending on whether sysvinit or systemd is configured. This is not our code, its upstream. You can control the way any package builds using the usual overrides mechanism. The system is about as configurable and customisable as you can get.

Quoted 2 lines

I guess the most important aspect I am trying to communicate is: please do not provide any by default.

By default users expect the system to boot and to work. They don't expect to have to add in layers just to get the system to initialise. We need to support a sensible core offering of init features. We support minimal configurations like tiny and the initramfs scripts, we now also support a choice between systemd and clasic sysvinit. This doesn't mean you have to use them, you're free to override and configure the system as you wish, as you have always been able to do.

The request for no default simply does not make any sense. The fact we have a default doesn't stop you adding your own (as the meta-systemd layer has demonstrated).

Cheers,

Richard

#2 lore raw

PATCH 1/1 bitbake.conf: unbreak all builds with custom DISTRO_FEATURES

In reply to Ross Burton

Commit 9e7c64ca9afbf27edd0d35a1830ce55ee6d778ab broke all builds where custom DISTRO_FEATURES were used.

Resulting images ended in non-bootable state due to lack of initscripts (unless someone had sysvinit or systemd in D_E already).

https://bugs.launchpad.net/linaro-oe/+bug/1102910
https://bugs.launchpad.net/linaro-oe/+bug/1099405/comments/12

---
 meta/conf/bitbake.conf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/conf/bitbake.conf +1 -1
index 2dc50ca..607fb70 100644
@@ -738,7 +738,7 @@ MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
 IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}"
 
-DISTRO_FEATURES_BACKFILL = "pulseaudio"
+DISTRO_FEATURES_BACKFILL = "pulseaudio ${DISTRO_FEATURES_INITMAN}"
 DISTRO_FEATURES_append = "${@oe.utils.features_backfill("DISTRO_FEATURES",d)}"
 
 MACHINE_FEATURES_BACKFILL = "rtc"
Signature · 1 line
1.8.0
#3 lore raw

Re: [PATCH] bitbake.conf: unbreak all builds with custom DISTRO_FEATURES

Quoted 10 lines · Marcin Juszkiewicz

Commit 9e7c64ca9afbf27edd0d35a1830ce55ee6d778ab broke all builds where custom DISTRO_FEATURES were used.

Resulting images ended in non-bootable state due to lack of initscripts (unless someone had sysvinit or systemd in D_E already).

https://bugs.launchpad.net/linaro-oe/+bug/1102910
https://bugs.launchpad.net/linaro-oe/+bug/1099405/comments/12

Wow, it's like you're reading my mind. When I next realise what the problem is and what the solution is, I'll await eagerly your fix.

Ross

#4 lore raw

Re: [PATCH] bitbake.conf: unbreak all builds with custom DISTRO_FEATURES

W dniu 23.01.2013 12:43, Burton, Ross pisze:

Quoted 11 lines
Quoted 9 lines · Marcin Juszkiewicz

Commit 9e7c64ca9afbf27edd0d35a1830ce55ee6d778ab broke all builds where custom DISTRO_FEATURES were used.

Resulting images ended in non-bootable state due to lack of initscripts (unless someone had sysvinit or systemd in D_E already).

https://bugs.launchpad.net/linaro-oe/+bug/1102910
https://bugs.launchpad.net/linaro-oe/+bug/1099405/comments/12

Quoted 6 lines
Quoted 1 line

Wow, it's like you're reading my mind. When I next realise what the problem is and what the solution is, I'll await eagerly your fix.

Without help from Paul Eggleton and Martin Jansa I would not get to this fix.