summaryrefslogtreecommitdiff
path: root/recipes-core
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2014-12-17 17:08:08 +0100
committerStefan Agner <stefan.agner@toradex.com>2014-12-18 10:45:56 +0100
commit6de3a08346754cf22ca55d3ec97f63a84a3e67bc (patch)
tree23fcb756a604096a003ac4f49d5edf2f78bf8dab /recipes-core
parentd8247d9b506318a3bdb3b136b7ee4898e2000b37 (diff)
systemd-machine-id-commit: add standalone recipe
Diffstat (limited to 'recipes-core')
-rw-r--r--recipes-core/systemd/systemd-machine-id-commit/0001-systemd-machine-id-commit-allow-standalone-build.patch25
-rw-r--r--recipes-core/systemd/systemd-machine-id-commit_218.bb118
2 files changed, 143 insertions, 0 deletions
diff --git a/recipes-core/systemd/systemd-machine-id-commit/0001-systemd-machine-id-commit-allow-standalone-build.patch b/recipes-core/systemd/systemd-machine-id-commit/0001-systemd-machine-id-commit-allow-standalone-build.patch
new file mode 100644
index 0000000..f0c1c6f
--- /dev/null
+++ b/recipes-core/systemd/systemd-machine-id-commit/0001-systemd-machine-id-commit-allow-standalone-build.patch
@@ -0,0 +1,25 @@
+From 9e49ff1c3b9e310ab69b3c487c09aebb8943bcac Mon Sep 17 00:00:00 2001
+From: Max Krummenacher <max.krummenacher@toradex.com>
+Date: Tue, 16 Dec 2014 11:12:44 +0100
+Subject: [PATCH] systemd_machine_id_commit: allow standalone build
+
+---
+ Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index ac7924e..514345d 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2247,6 +2247,8 @@ systemd_fsck_LDADD = \
+ libsystemd-shared.la
+
+ # ------------------------------------------------------------------------------
++generate_sources: $(BUILT_SOURCES)
++.PHONY : generate_sources
+ systemd_machine_id_commit_SOURCES = \
+ src/machine-id-commit/machine-id-commit.c \
+ src/core/machine-id-setup.c \
+--
+1.9.3
+
diff --git a/recipes-core/systemd/systemd-machine-id-commit_218.bb b/recipes-core/systemd/systemd-machine-id-commit_218.bb
new file mode 100644
index 0000000..8cffd40
--- /dev/null
+++ b/recipes-core/systemd/systemd-machine-id-commit_218.bb
@@ -0,0 +1,118 @@
+SUMMARY = "systemd-machine-id-commit utility"
+DESCRIPTION = "If the rootfs is readonly when the init process starts the file\
+ /etc/machine-id is created as a tempfs overlay resulting in different machine-id\
+ on every boot. The systemd-machine-id-commit utility can be used later on to\
+ transfer the tempory file to the real fs. This recipe builds this utility out\
+ of the v218 source tree where it is first available. The binary can be used\
+ with oe builds using an older systemd"
+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=4fbd65380cdd255951079008b364516c \
+ file://LICENSE.MIT;md5=544799d0b492f119fa04641d1b8868ed"
+
+PE = "1"
+
+DEPENDS = "kmod docbook-sgml-dtd-4.1-native intltool-native gperf-native acl readline dbus libcap libcgroup glib-2.0 qemu-native util-linux"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+
+SECTION = "base/shell"
+
+inherit gtk-doc pkgconfig autotools perlnative update-alternatives qemu systemd ptest gettext
+
+SRCREV = "820aced6f6067a6b7c57b7d36e44f64378870cbf"
+
+PV = "218+git${SRCPV}"
+
+SRC_URI = "git://anongit.freedesktop.org/systemd/systemd;branch=master;protocol=git"
+SRC_URI += "file://0001-systemd-machine-id-commit-allow-standalone-build.patch"
+
+S = "${WORKDIR}/git"
+
+LDFLAGS_append_libc-uclibc = " -lrt"
+
+GTKDOC_DOCDIR = "${S}/docs/"
+
+PACKAGECONFIG ??= "xz resolved networkd"
+PACKAGECONFIG[journal-upload] = "--enable-libcurl,--disable-libcurl,curl"
+# Sign the journal for anti-tampering
+PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt"
+# regardless of PACKAGECONFIG, libgcrypt is always required to expand
+# the AM_PATH_LIBGCRYPT autoconf macro
+DEPENDS += "libgcrypt"
+# Compress the journal
+PACKAGECONFIG[xz] = "--enable-xz,--disable-xz,xz"
+PACKAGECONFIG[cryptsetup] = "--enable-libcryptsetup,--disable-libcryptsetup,cryptsetup"
+
+CACHED_CONFIGUREVARS = "ac_cv_path_KILL=${base_bindir}/kill"
+
+# Helper variables to clarify locations. This mirrors the logic in systemd's
+# build system.
+rootprefix ?= "${base_prefix}"
+rootlibdir ?= "${base_libdir}"
+rootlibexecdir = "${rootprefix}/lib"
+
+# The gtk+ tools should get built as a separate recipe e.g. systemd-tools
+EXTRA_OECONF = " --with-rootprefix=${rootprefix} \
+ --with-rootlibdir=${rootlibdir} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam', '--disable-pam', d)} \
+ --disable-manpages \
+ --disable-coredump \
+ --disable-introspection \
+ --disable-kdbus \
+ --enable-split-usr \
+ --without-python \
+ --with-sysvrcnd-path=${sysconfdir} \
+ --with-firmware-path=/lib/firmware \
+ ac_cv_path_KILL=${base_bindir}/kill \
+ "
+# uclibc does not have NSS
+EXTRA_OECONF_append_libc-uclibc = " --disable-myhostname "
+
+do_configure_prepend() {
+ export CPP="${HOST_PREFIX}cpp ${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}"
+ export NM="${HOST_PREFIX}gcc-nm"
+ export AR="${HOST_PREFIX}gcc-ar"
+ export RANLIB="${HOST_PREFIX}gcc-ranlib"
+ export KMOD="${base_bindir}/kmod"
+ if [ -d ${S}/units.pre_sed ] ; then
+ cp -r ${S}/units.pre_sed ${S}/units
+ else
+ cp -r ${S}/units ${S}/units.pre_sed
+ fi
+ sed -i -e 's:=/root:=${ROOT_HOME}:g' ${S}/units/*.service*
+ sed -i '/ln --relative --help/d' ${S}/configure.ac
+ sed -i -e 's:\$(LN_S) --relative -f:lnr:g' ${S}/Makefile.am
+ sed -i -e 's:\$(LN_S) --relative:lnr:g' ${S}/Makefile.am
+}
+
+do_compile() {
+ oe_runmake src/shared/errno-from-name.h \
+ src/shared/errno-to-name.h src/shared/af-from-name.h \
+ src/shared/af-to-name.h src/shared/arphrd-from-name.h \
+ src/shared/arphrd-to-name.h src/shared/cap-from-name.h \
+ src/shared/cap-to-name.h src/resolve/dns_type-from-name.h \
+ src/resolve/dns_type-to-name.h src/test/test-hashmap-ordered.c
+ oe_runmake systemd-machine-id-commit
+}
+
+do_install() {
+ install -d ${D}/${base_bindir}
+ install -m 0755 ${B}/systemd-machine-id-commit ${D}/${base_bindir}/systemd-machine-id-commit
+}
+
+pkg_postinst_${PN} () {
+ # can't do this offline
+ if [ "x$D" != "x" ]; then
+ exit 1
+ fi
+ ${base_bindir}/systemd-machine-id-commit
+}
+
+# As this recipe builds udev, respect systemd being in DISTRO_FEATURES so
+# that we don't build both udev and systemd in world builds.
+python () {
+ if not bb.utils.contains ('DISTRO_FEATURES', 'systemd', True, False, d):
+ raise bb.parse.SkipPackage("'systemd' not in DISTRO_FEATURES")
+}