Systemd: drop overlayed recipe

it is a maintanence burden

* packages requiring libgudev are broken for months
* in case of issues it caused - at least me - several hours to understand
  what's going on

Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
This commit is contained in:
Andreas Müller
2015-02-12 09:01:33 +01:00
committed by Koen Kooi
parent 9d9f55a8cb
commit 1589a6846d
20 changed files with 0 additions and 1239 deletions

View File

@@ -1,7 +0,0 @@
#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/log - - - -
d /var/volatile/tmp - - - -

View File

@@ -1,138 +0,0 @@
Upstream-Status: Inappropriate [OE specific]
Subject: add support for executing scripts under /etc/rcS.d/
To be compatible, all services translated from scripts under /etc/rcS.d would
run before services translated from scripts under /etc/rcN.d.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
src/sysv-generator/sysv-generator.c | 50 ++++++++++++++++++++++++++++---------
1 file changed, 38 insertions(+), 12 deletions(-)
diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c
index 9a869ba..10c55c0 100644
--- a/src/sysv-generator/sysv-generator.c
+++ b/src/sysv-generator/sysv-generator.c
@@ -43,7 +43,8 @@
typedef enum RunlevelType {
RUNLEVEL_UP,
- RUNLEVEL_DOWN
+ RUNLEVEL_DOWN,
+ RUNLEVEL_SYSINIT
} RunlevelType;
static const struct {
@@ -58,6 +59,9 @@ static const struct {
{ "rc4.d", SPECIAL_RUNLEVEL4_TARGET, RUNLEVEL_UP },
{ "rc5.d", SPECIAL_RUNLEVEL5_TARGET, RUNLEVEL_UP },
+ /* Debian style rcS.d, also adopted by OE */
+ { "rcS.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT},
+
/* Standard SysV runlevels for shutdown */
{ "rc0.d", SPECIAL_POWEROFF_TARGET, RUNLEVEL_DOWN },
{ "rc6.d", SPECIAL_REBOOT_TARGET, RUNLEVEL_DOWN }
@@ -66,7 +70,7 @@ static const struct {
directories in this order, and we want to make sure that
sysv_start_priority is known when we first load the
unit. And that value we only know from S links. Hence
- UP must be read before DOWN */
+ UP/SYSINIT must be read before DOWN */
};
typedef struct SysvStub {
@@ -82,6 +86,8 @@ typedef struct SysvStub {
char **conflicts;
bool has_lsb;
bool reload;
+ bool default_dependencies;
+ bool from_rcsd;
} SysvStub;
const char *arg_dest = "/tmp";
@@ -156,6 +162,9 @@ static int generate_unit_file(SysvStub *s) {
"Description=%s\n",
s->path, s->description);
+ if (!s->default_dependencies)
+ fprintf(f, "DefaultDependencies=no\n");
+
if (!isempty(before))
fprintf(f, "Before=%s\n", before);
if (!isempty(after))
@@ -661,18 +670,30 @@ static int fix_order(SysvStub *s, Hashmap *all_services) {
if (s->has_lsb && other->has_lsb)
continue;
- if (other->sysv_start_priority < s->sysv_start_priority) {
- r = strv_extend(&s->after, other->name);
+ /* All scripts under /etc/rcS.d should execute before scripts under
+ * /etc/rcN.d */
+ if (!other->from_rcsd && s->from_rcsd) {
+ r = strv_extend(&s->before, other->name);
if (r < 0)
return log_oom();
- }
- else if (other->sysv_start_priority > s->sysv_start_priority) {
- r = strv_extend(&s->before, other->name);
+ } else if (other->from_rcsd && !s->from_rcsd) {
+ r = strv_extend(&s->after, other->name);
if (r < 0)
return log_oom();
- }
- else
- continue;
+ } else {
+ if (other->sysv_start_priority < s->sysv_start_priority) {
+ r = strv_extend(&s->after, other->name);
+ if (r < 0)
+ return log_oom();
+ }
+ else if (other->sysv_start_priority > s->sysv_start_priority) {
+ r = strv_extend(&s->before, other->name);
+ if (r < 0)
+ return log_oom();
+ }
+ else
+ continue;
+ }
/* FIXME: Maybe we should compare the name here lexicographically? */
}
@@ -725,6 +746,8 @@ static int enumerate_sysv(LookupPaths lp, Hashmap *all_services) {
return log_oom();
service->sysv_start_priority = -1;
+ service->default_dependencies = true;
+ service->from_rcsd = false;
service->name = name;
service->path = fpath;
@@ -810,9 +833,11 @@ static int set_dependencies_from_rcnd(LookupPaths lp, Hashmap *all_services) {
if (de->d_name[0] == 'S') {
- if (rcnd_table[i].type == RUNLEVEL_UP) {
+ if (rcnd_table[i].type == RUNLEVEL_UP || rcnd_table[i].type == RUNLEVEL_SYSINIT) {
service->sysv_start_priority =
MAX(a*10 + b, service->sysv_start_priority);
+ service->default_dependencies = (rcnd_table[i].type == RUNLEVEL_SYSINIT)?false:true;
+ service->from_rcsd = (rcnd_table[i].type == RUNLEVEL_SYSINIT)?true:false;
}
r = set_ensure_allocated(&runlevel_services[i],
@@ -825,7 +850,8 @@ static int set_dependencies_from_rcnd(LookupPaths lp, Hashmap *all_services) {
goto finish;
} else if (de->d_name[0] == 'K' &&
- (rcnd_table[i].type == RUNLEVEL_DOWN)) {
+ (rcnd_table[i].type == RUNLEVEL_DOWN ||
+ rcnd_table[i].type == RUNLEVEL_SYSINIT)) {
r = set_ensure_allocated(&shutdown_services,
trivial_hash_func, trivial_compare_func);
--
1.9.1

View File

@@ -1,31 +0,0 @@
From a8c1816f2be50d8bf371f911ca093e09638fa404 Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Thu, 24 Jul 2014 07:28:27 +0200
Subject: [PATCH] configure: disable LTO
Some compilers (e.g. linux gcc 4.9) can't handle it, so disable it.
Upstream-Status: Pending
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
---
configure.ac | 4 ----
1 file changed, 4 deletions(-)
diff --git a/configure.ac b/configure.ac
index 43b6eef..68006b5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -199,10 +199,6 @@ CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
-fstack-protector-strong \
-fPIE \
--param=ssp-buffer-size=4])
-AS_CASE([$CFLAGS], [*-O[[12345\ ]]*],
- [CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
- -flto -ffat-lto-objects])],
- [AC_MSG_RESULT([skipping -flto, optimization not enabled])])
AC_SUBST([OUR_CFLAGS], "$with_cflags $sanitizer_cflags")
AS_CASE([$CFLAGS], [*-O[[12345\ ]]*],
--
1.9.0

View File

@@ -1,24 +0,0 @@
From 58d4aabedd415a735efeb8c2608ee73618c07f78 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Mon, 22 Sep 2014 22:14:39 -0400
Subject: [PATCH 1/3] logind: add support for Triton2 Power Button
https://bugs.freedesktop.org/show_bug.cgi?id=84201
---
src/login/70-power-switch.rules | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/login/70-power-switch.rules b/src/login/70-power-switch.rules
index 36fb827..a6997f7 100644
--- a/src/login/70-power-switch.rules
+++ b/src/login/70-power-switch.rules
@@ -9,5 +9,6 @@ ACTION=="remove", GOTO="power_switch_end"
SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="acpi", TAG+="power-switch"
SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch"
+SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="twl4030_pwrbutton", TAG+="power-switch"
LABEL="power_switch_end"
--
1.9.0

View File

@@ -1,29 +0,0 @@
Upstream-Status: Backport
Subject: missing.h: add fake __NR_memfd_create for MIPS
We don't have the correct __NR_memfd_create syscall number yet, so set it to
0xffffffff for now to prevent compile time errors.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
src/shared/missing.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/shared/missing.h b/src/shared/missing.h
index 3ff1a21..3051cb5 100644
--- a/src/shared/missing.h
+++ b/src/shared/missing.h
@@ -167,6 +167,9 @@ static inline int pivot_root(const char *new_root, const char *put_old) {
# define __NR_fanotify_mark 5296
# endif
# endif
+# ifndef __NR_memfd_create
+# define __NR_memfd_create 0xffffffff /* FIXME */
+# endif
#else
# ifndef __NR_fanotify_init
# define __NR_fanotify_init 338
--
1.9.1

View File

@@ -1,71 +0,0 @@
From 0c22189a9ecdff5bb38f9ea362caeea9e3902414 Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Sat, 27 Sep 2014 09:48:29 +0200
Subject: [PATCH 2/3] logind: add support for TPS65217 Power Button
This PMIC is found on TI AM335x based boards like the beaglebone and
beaglebone black.
root@beaglebone-white:~# udevadm info -a /dev/input/event0
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device
'/devices/ocp.3/44e0b000.i2c/i2c-0/0-0024/input/input0/event0':
KERNEL=="event0"
SUBSYSTEM=="input"
DRIVER==""
looking at parent device
'/devices/ocp.3/44e0b000.i2c/i2c-0/0-0024/input/input0':
KERNELS=="input0"
SUBSYSTEMS=="input"
DRIVERS==""
ATTRS{name}=="tps65217_pwr_but"
ATTRS{phys}==""
ATTRS{uniq}==""
ATTRS{properties}=="0"
looking at parent device '/devices/ocp.3/44e0b000.i2c/i2c-0/0-0024':
KERNELS=="0-0024"
SUBSYSTEMS=="i2c"
DRIVERS=="tps65217"
ATTRS{name}=="tps65217"
looking at parent device '/devices/ocp.3/44e0b000.i2c/i2c-0':
KERNELS=="i2c-0"
SUBSYSTEMS=="i2c"
DRIVERS==""
ATTRS{name}=="OMAP I2C adapter"
looking at parent device '/devices/ocp.3/44e0b000.i2c':
KERNELS=="44e0b000.i2c"
SUBSYSTEMS=="platform"
DRIVERS=="omap_i2c"
looking at parent device '/devices/ocp.3':
KERNELS=="ocp.3"
SUBSYSTEMS=="platform"
DRIVERS==""
---
src/login/70-power-switch.rules | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/login/70-power-switch.rules b/src/login/70-power-switch.rules
index a6997f7..695d246 100644
--- a/src/login/70-power-switch.rules
+++ b/src/login/70-power-switch.rules
@@ -10,5 +10,6 @@ ACTION=="remove", GOTO="power_switch_end"
SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="acpi", TAG+="power-switch"
SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch"
SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="twl4030_pwrbutton", TAG+="power-switch"
+SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="tps65217_pwr_but", TAG+="power-switch"
LABEL="power_switch_end"
--
1.9.0

View File

@@ -1,57 +0,0 @@
From c7f5cc647cd31c25e3beb66bf060160e084edd05 Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Sat, 27 Sep 2014 09:50:57 +0200
Subject: [PATCH 3/3] logind: add support for gpio-keys Power Button
This might be too broad since it will listen on *all* gpio-keys based
input devices for a power button press, but such is life.
root@arietta-g25:~# udevadm info -a /dev/input/event0
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/devices/keys/input/input0/event0':
KERNEL=="event0"
SUBSYSTEM=="input"
DRIVER==""
looking at parent device '/devices/keys/input/input0':
KERNELS=="input0"
SUBSYSTEMS=="input"
DRIVERS==""
ATTRS{name}=="keys"
ATTRS{phys}=="gpio-keys/input0"
ATTRS{uniq}==""
ATTRS{properties}=="0"
looking at parent device '/devices/keys':
KERNELS=="keys"
SUBSYSTEMS=="platform"
DRIVERS=="gpio-keys"
ATTRS{keys}=="116"
ATTRS{switches}==""
ATTRS{driver_override}=="(null)"
ATTRS{disabled_keys}==""
ATTRS{disabled_switches}==""
---
src/login/70-power-switch.rules | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/login/70-power-switch.rules b/src/login/70-power-switch.rules
index 695d246..7bbe096 100644
--- a/src/login/70-power-switch.rules
+++ b/src/login/70-power-switch.rules
@@ -11,5 +11,6 @@ SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="acpi", TAG+="power-switch"
SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch"
SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="twl4030_pwrbutton", TAG+="power-switch"
SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="tps65217_pwr_but", TAG+="power-switch"
+SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="keys", TAG+="power-switch"
LABEL="power_switch_end"
--
1.9.0

View File

@@ -1,56 +0,0 @@
Don't install dependency links at install time for the binfmt services, use
[Install] blocks so that they get created when the service is enabled like a
traditional service.
The [Install] blocks were rejected upstream as they don't have a way to "enable"
it on install without static symlinks which can't be disabled, only masked. We
however can do that in a postinst.
Upstream-Status: Denied
Signed-off-by: Ross Burton <ross.burton@intel.com>
diff --git a/Makefile.am b/Makefile.am
index 7933de6..78acb6f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3133,10 +3133,6 @@ INSTALL_DIRS += \
$(prefix)/lib/binfmt.d \
$(sysconfdir)/binfmt.d
-SYSINIT_TARGET_WANTS += \
- systemd-binfmt.service \
- proc-sys-fs-binfmt_misc.automount
-
endif
EXTRA_DIST += \
diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount
index 6be3893..709adef 100644
--- a/units/proc-sys-fs-binfmt_misc.automount
+++ b/units/proc-sys-fs-binfmt_misc.automount
@@ -16,3 +16,6 @@ ConditionPathIsReadWrite=/proc/sys/
[Automount]
Where=/proc/sys/fs/binfmt_misc
+
+[Install]
+WantedBy=sysinit.target
diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in
index 02dfe77..86d3481 100644
--- a/units/systemd-binfmt.service.in
+++ b/units/systemd-binfmt.service.in
@@ -11,6 +11,7 @@ Documentation=man:systemd-binfmt.service(8) man:binfmt.d(5)
Documentation=https://www.kernel.org/doc/Documentation/binfmt_misc.txt
DefaultDependencies=no
Conflicts=shutdown.target
+Wants=proc-sys-fs-binfmt_misc.automount
After=systemd-readahead-collect.service systemd-readahead-replay.service proc-sys-fs-binfmt_misc.automount
Before=sysinit.target shutdown.target
ConditionPathIsReadWrite=/proc/sys/
@@ -24,3 +25,6 @@ ConditionDirectoryNotEmpty=|/run/binfmt.d
Type=oneshot
RemainAfterExit=yes
ExecStart=@rootlibexecdir@/systemd-binfmt
+
+[Install]
+WantedBy=sysinit.target

View File

@@ -1,104 +0,0 @@
#!/bin/sh
### BEGIN INIT INFO
# Provides: udev
# Required-Start: mountvirtfs
# Required-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: Start udevd, populate /dev and load drivers.
### END INIT INFO
. /etc/init.d/functions
export TZ=/etc/localtime
[ -d /sys/class ] || exit 1
[ -r /proc/mounts ] || exit 1
[ -x @UDEVD@ ] || exit 1
[ -f /etc/default/udev-cache ] && . /etc/default/udev-cache
[ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf
readfile () {
filename=$1
READDATA=""
if [ -r $filename ]; then
while read line; do
READDATA="$READDATA$line"
done < $filename
fi
}
case "$1" in
start)
export ACTION=add
# propagate /dev from /sys
echo "Starting udev"
# mount the devtmpfs on /dev, if not already done
LANG=C awk '$2 == "/dev" && ($3 == "devtmpfs") { exit 1 }' /proc/mounts && {
mount -n -o mode=0755 -t devtmpfs none "/dev"
}
[ -e /dev/pts ] || mkdir -m 0755 /dev/pts
[ -e /dev/shm ] || mkdir -m 1777 /dev/shm
mount -a -t tmpfs 2>/dev/null
# cache handling
if [ "$DEVCACHE" != "" ]; then
readfile /proc/version
VERSION="$READDATA"
readfile /proc/cmdline
CMDLINE="$READDATA"
readfile /proc/devices
DEVICES="$READDATA"
readfile /proc/atags
ATAGS="$READDATA"
if [ -e $DEVCACHE ]; then
readfile /etc/udev/cache.data
if [ "$READDATA" = "$VERSION$CMDLINE$DEVICES$ATAGS" ]; then
(cd /; tar xf $DEVCACHE > /dev/null 2>&1)
not_first_boot=1
[ "$VERBOSE" != "no" ] && echo "udev: using cache file $DEVCACHE"
[ -e /dev/shm/udev.cache ] && rm -f /dev/shm/udev.cache
else
echo "$VERSION$CMDLINE$DEVICES$ATAGS" > /dev/shm/udev.cache
fi
else
echo "$VERSION$CMDLINE$DEVICES$ATAGS" > /dev/shm/udev.cache
fi
fi
# make_extra_nodes
killproc systemd-udevd > "/dev/null" 2>&1
# trigger the sorted events
echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
@UDEVD@ -d
udevadm control --env=STARTUP=1
if [ "$not_first_boot" != "" ];then
udevadm trigger --action=add --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon --subsystem-nomatch=pci_bus --subsystem-nomatch=graphics --subsystem-nomatch=backlight --subsystem-nomatch=video4linux --subsystem-nomatch=platform
(udevadm settle --timeout=3; udevadm control --env=STARTUP=)&
else
udevadm trigger --action=add
udevadm settle
fi
;;
stop)
echo "Stopping udevd"
start-stop-daemon --stop --name systemd-udevd --quiet
;;
restart)
$0 stop
sleep 1
$0 start
;;
status)
status systemd-udevd
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
esac
exit 0

View File

@@ -1,19 +0,0 @@
on uclibc secure_getenv is not available
therefore default to using getenv instead
Upstream-Status: Denied [no desire for uclibc support]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
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

View File

@@ -1,5 +0,0 @@
#!/bin/sh
tar -C test -xJf test/sys.tar.xz
make test/rules-test.sh.log
make test/udev-test.pl.log

View File

@@ -1,32 +0,0 @@
Upstream-Status: Denied [no desire for uclibc support]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Index: git/configure.ac
===================================================================
--- git.orig/configure.ac 2014-03-15 17:53:51.756340454 -0700
+++ git/configure.ac 2014-03-15 18:07:34.888355897 -0700
@@ -78,6 +78,24 @@
M4_DEFINES=
+# 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_LINK_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])])
+
# 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])],

View File

@@ -1,29 +0,0 @@
Upstream-Status: Denied [no desire for uclibc support]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Index: systemd-209/src/nspawn/nspawn.c
===================================================================
--- systemd-209.orig/src/nspawn/nspawn.c 2014-02-19 15:03:09.000000000 -0800
+++ systemd-209/src/nspawn/nspawn.c 2014-02-19 23:20:38.720628627 -0800
@@ -91,6 +91,8 @@
LINK_GUEST
} LinkJournal;
+#include "config.h"
+
static char *arg_directory = NULL;
static char *arg_user = NULL;
static sd_id128_t arg_uuid = {};
@@ -2045,7 +2047,12 @@
a[0] = (char*) "/sbin/init";
execve(a[0], a, env_use);
} else if (argc > optind)
+#ifdef HAVE_EXECVPE
execvpe(argv[optind], argv + optind, env_use);
+#else
+ environ = env_use;
+ execvp(argv[optind], argv + optind);
+#endif /* HAVE_EXECVPE */
else {
chdir(home ? home : "/root");
execle("/bin/bash", "-bash", NULL, env_use);

View File

@@ -1,92 +0,0 @@
Upstream-Status: Denied [no desire for uclibc support]
This patch is uclibc specific, thus not suitable for upstream.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
src/journal/journal-file.c | 16 +++++++++++++++-
src/journal/journald-kmsg.c | 16 ++++++++++++++--
2 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
index f2f1f35..092f87b 100644
--- a/src/journal/journal-file.c
+++ b/src/journal/journal-file.c
@@ -38,6 +38,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))
@@ -314,7 +316,7 @@ static int journal_file_verify_header(JournalFile *f) {
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);
@@ -362,9 +364,21 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size)
/* Note that the glibc fallocate() fallback is very
inefficient, hence we try to minimize the allocation area
as we can. */
+#ifdef HAVE_POSIX_FALLOCATE
r = posix_fallocate(f->fd, old_size, new_size - old_size);
if (r != 0)
return -r;
+#else
+ /* Write something every 512 bytes to make sure the block is allocated */
+ uint64_t len = new_size - old_size;
+ uint64_t offset = old_size;
+ for (offset += (len-1) % 512; len > 0; offset += 512) {
+ len -= 512;
+ if (pwrite(f->fd, "", 1, offset) != 1)
+ return -errno;
+ }
+
+#endif /* HAVE_POSIX_FALLOCATE */
if (fstat(f->fd, &f->last_stat) < 0)
return -errno;
diff --git a/src/journal/journald-kmsg.c b/src/journal/journald-kmsg.c
index 12992e7..dc4fa93 100644
--- a/src/journal/journald-kmsg.c
+++ b/src/journal/journald-kmsg.c
@@ -437,6 +437,7 @@ fail:
int server_open_kernel_seqnum(Server *s) {
_cleanup_close_ int fd;
uint64_t *p;
+ int r = 0;
assert(s);
@@ -449,8 +450,19 @@ int server_open_kernel_seqnum(Server *s) {
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_FALLOCATE
+ 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");
return 0;
}
--
1.7.9.5

View File

@@ -1,35 +0,0 @@
Prefer getty to agetty in console setup systemd units
Upstream-Status: Inappropriate [configuration specific]
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
units/getty@.service.m4 | 2 +-
units/serial-getty@.service.m4 | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
Index: git/units/getty@.service.m4
===================================================================
--- git.orig/units/getty@.service.m4 2014-03-15 08:16:17.000000000 -0700
+++ git/units/getty@.service.m4 2014-03-15 08:21:11.007695825 -0700
@@ -27,7 +27,7 @@
[Service]
# the VT is cleared by TTYVTDisallocate
-ExecStart=-/sbin/agetty --noclear %I $TERM
+ExecStart=-/sbin/getty -L %I $TERM
Type=idle
Restart=always
RestartSec=0
Index: git/units/serial-getty@.service.m4
===================================================================
--- git.orig/units/serial-getty@.service.m4 2014-03-15 08:16:17.000000000 -0700
+++ git/units/serial-getty@.service.m4 2014-03-15 08:22:31.291697331 -0700
@@ -22,7 +22,7 @@
IgnoreOnIsolate=yes
[Service]
-ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM
+ExecStart=-/sbin/getty -L 115200 %I $TERM
Type=idle
Restart=always
RestartSec=0

View File

@@ -1,30 +0,0 @@
Upstream-Status: Denied [no desire for uclibc support]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Index: git/src/shared/util.c
===================================================================
--- git.orig/src/shared/util.c 2014-03-15 15:14:21.368160908 -0700
+++ git/src/shared/util.c 2014-03-15 15:44:21.988194688 -0700
@@ -85,6 +85,8 @@
#include "def.h"
#include "missing.h"
+#include "config.h"
+
int saved_argc = 0;
char **saved_argv = NULL;
@@ -6222,7 +6224,13 @@
u = umask(077);
+#ifdef HAVE_MKOSTEMP
fd = mkostemp(pattern, flags);
+#else
+ fd = mkstemp(pattern);
+ if (fd >= 0) fcntl(fd, F_SETFD, flags);
+#endif /* HAVE_MKOSTEMP */
+
if (fd < 0)
return -errno;

View File

@@ -1,18 +0,0 @@
# 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"

View File

@@ -1,37 +0,0 @@
bypass unimplemented _SC_PHYS_PAGES system configuration API in uclibc
Upstream-Status: Inappropriate [uclibc-specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Index: git/src/shared/util.c
===================================================================
--- git.orig/src/shared/util.c 2014-03-15 18:09:34.796358146 -0700
+++ git/src/shared/util.c 2014-03-15 20:16:33.836501084 -0700
@@ -6332,11 +6332,24 @@
/* We return this as uint64_t in case we are running as 32bit
* process on a 64bit kernel with huge amounts of memory */
-
+#ifdef __UCLIBC__
+ char line[128];
+ FILE *f = fopen("/proc/meminfo", "r");
+ if (f == NULL)
+ return 0;
+ while (!feof(f) && fgets(line, sizeof(line)-1, f)) {
+ if (sscanf(line, "MemTotal: %l kB", &mem) == 1) {
+ mem *= 1024;
+ break;
+ }
+ }
+ fclose(f);
+ return (uint64_t) mem;
+#else
mem = sysconf(_SC_PHYS_PAGES);
assert(mem > 0);
-
return (uint64_t) mem * (uint64_t) page_size();
+#endif
}
char* mount_test_option(const char *haystack, const char *needle) {

View File

@@ -1,19 +0,0 @@
Dont include sys/sysinfo.h on uclibc it conflicts with linux/sysinfo.h
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Inappropriate [uclibc specific]
Index: systemd-209/src/readahead/readahead-common.c
===================================================================
--- systemd-209.orig/src/readahead/readahead-common.c 2014-02-12 18:42:33.810685053 -0800
+++ systemd-209/src/readahead/readahead-common.c 2014-02-19 23:49:31.856661142 -0800
@@ -22,7 +22,9 @@
#include <errno.h>
#include <stdlib.h>
#include <string.h>
+#ifndef __UCLIBC__
#include <sys/sysinfo.h>
+#endif
#include <sys/inotify.h>
#include <fcntl.h>
#include <sys/mman.h>

View File

@@ -1,406 +0,0 @@
SUMMARY = "System and service manager for Linux, replacing SysVinit"
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"
PROVIDES = "udev"
PE = "1"
DEPENDS = "kmod docbook-sgml-dtd-4.1-native intltool-native gperf-native acl readline dbus libcap libcgroup glib-2.0 qemu-native"
DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
SECTION = "base/shell"
inherit gtk-doc useradd pkgconfig autotools perlnative update-rc.d update-alternatives qemu systemd ptest gettext
SRCREV = "5d0ae62c665262c4c55536457e84e278c252cc0b"
PV = "216+git${SRCPV}"
SRC_URI = "git://anongit.freedesktop.org/systemd/systemd;branch=master;protocol=git \
file://binfmt-install.patch \
file://systemd-pam-configure-check-uclibc.patch \
file://systemd-pam-fix-execvpe.patch \
file://systemd-pam-fix-fallocate.patch \
file://systemd-pam-fix-mkostemp.patch \
file://optional_secure_getenv.patch \
file://uclibc-sysinfo_h.patch \
file://uclibc-get-physmem.patch \
file://0001-add-support-for-executing-scripts-under-etc-rcS.d.patch \
file://0001-missing.h-add-fake-__NR_memfd_create-for-MIPS.patch \
file://0001-configure-disable-LTO.patch \
file://0001-logind-add-support-for-Triton2-Power-Button.patch \
file://0002-logind-add-support-for-TPS65217-Power-Button.patch \
file://0003-logind-add-support-for-gpio-keys-Power-Button.patch \
file://touchscreen.rules \
file://00-create-volatile.conf \
file://init \
file://run-ptest \
"
S = "${WORKDIR}/git"
SRC_URI_append_libc-uclibc = "\
file://systemd-pam-fix-getty-unit.patch \
"
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"
PACKAGECONFIG[microhttpd] = "--enable-microhttpd,--disable-microhttpd,libmicrohttpd"
PACKAGECONFIG[elfutils] = "--enable-elfutils,--disable-elfutils,elfutils"
PACKAGECONFIG[resolved] = "--enable-resolved,--disable-resolved"
PACKAGECONFIG[networkd] = "--enable-networkd,--disable-networkd"
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_install() {
autotools_do_install
install -d ${D}/${base_sbindir}
# Provided by a separate recipe
rm ${D}${systemd_unitdir}/system/serial-getty* -f
# Provide support for initramfs
[ ! -e ${D}/init ] && ln -s ${rootlibexecdir}/systemd/systemd ${D}/init
[ ! -e ${D}/${base_sbindir}/udevd ] && ln -s ${rootlibexecdir}/systemd/systemd-udevd ${D}/${base_sbindir}/udevd
# Create machine-id
# 20:12 < mezcalero> koen: you have three options: a) run systemd-machine-id-setup at install time, b) have / read-only and an empty file there (for stateless) and c) boot with / writable
touch ${D}${sysconfdir}/machine-id
install -m 0644 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
install -d ${D}${sysconfdir}/init.d
install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/systemd-udevd
sed -i s%@UDEVD@%${rootlibexecdir}/systemd/systemd-udevd% ${D}${sysconfdir}/init.d/systemd-udevd
fi
# Move libgudev back to ${rootlibdir} to keep backward compatibility
[ ${rootlibdir} != ${libdir} ] && mv -t ${D}${rootlibdir} ${D}${libdir}/libgudev*
# Delete journal README, as log can be symlinked inside volatile.
rm -f ${D}/${localstatedir}/log/README
# Create symlinks for systemd-update-utmp-runlevel.service
install -d ${D}${systemd_unitdir}/system/graphical.target.wants
install -d ${D}${systemd_unitdir}/system/multi-user.target.wants
install -d ${D}${systemd_unitdir}/system/poweroff.target.wants
install -d ${D}${systemd_unitdir}/system/reboot.target.wants
install -d ${D}${systemd_unitdir}/system/rescue.target.wants
ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/graphical.target.wants/systemd-update-utmp-runlevel.service
ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/multi-user.target.wants/systemd-update-utmp-runlevel.service
ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/poweroff.target.wants/systemd-update-utmp-runlevel.service
ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/reboot.target.wants/systemd-update-utmp-runlevel.service
ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/rescue.target.wants/systemd-update-utmp-runlevel.service
# Enable journal to forward message to syslog daemon
sed -i -e 's/.*ForwardToSyslog.*/ForwardToSyslog=yes/' ${D}${sysconfdir}/systemd/journald.conf
}
do_install_ptest () {
install -d ${D}${PTEST_PATH}/test
cp -rf ${S}/test/* ${D}${PTEST_PATH}/test
install -m 0755 ${B}/test-udev ${D}${PTEST_PATH}/
install -d ${D}${PTEST_PATH}/build-aux
cp ${S}/build-aux/test-driver ${D}${PTEST_PATH}/build-aux/
cp -rf ${B}/rules ${D}${PTEST_PATH}/
# This directory needs to be there for udev-test.pl to work.
install -d ${D}${libdir}/udev/rules.d
cp ${B}/Makefile ${D}${PTEST_PATH}/
cp ${S}/test/sys.tar.xz ${D}${PTEST_PATH}/test
sed -i 's/"tree"/"ls"/' ${D}${PTEST_PATH}/test/udev-test.pl
sed -i 's#${S}#${PTEST_PATH}#g' ${D}${PTEST_PATH}/Makefile
sed -i 's#${B}#${PTEST_PATH}#g' ${D}${PTEST_PATH}/Makefile
}
python populate_packages_prepend (){
systemdlibdir = d.getVar("rootlibdir", 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 ${PN}-kernel-install \
${PN}-rpm-macros ${PN}-binfmt ${PN}-pam ${PN}-zsh"
SYSTEMD_PACKAGES = "${PN}-binfmt"
SYSTEMD_SERVICE_${PN}-binfmt = "systemd-binfmt.service"
USERADD_PACKAGES = "${PN}"
USERADD_PARAM_${PN} += "--system systemd-journal-gateway"
GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"
FILES_${PN}-analyze = "${bindir}/systemd-analyze"
FILES_${PN}-initramfs = "/init"
RDEPENDS_${PN}-initramfs = "${PN}"
# The test cases need perl and bash to run correctly.
RDEPENDS_${PN}-ptest += "perl bash"
FILES_${PN}-ptest += "${libdir}/udev/rules.d"
FILES_${PN}-dbg += "${libdir}/systemd/ptest/.debug"
FILES_${PN}-gui = "${bindir}/systemadm"
FILES_${PN}-vconsole-setup = "${rootlibexecdir}/systemd/systemd-vconsole-setup \
${systemd_unitdir}/system/systemd-vconsole-setup.service \
${systemd_unitdir}/system/sysinit.target.wants/systemd-vconsole-setup.service"
FILES_${PN}-kernel-install = "${bindir}/kernel-install \
${sysconfdir}/kernel/ \
${exec_prefix}/lib/kernel \
"
FILES_${PN}-rpm-macros = "${exec_prefix}/lib/rpm \
"
FILES_${PN}-zsh = "${datadir}/zsh/site-functions"
FILES_${PN}-binfmt = "${sysconfdir}/binfmt.d/ \
${exec_prefix}/lib/binfmt.d \
${rootlibexecdir}/systemd/systemd-binfmt \
${systemd_unitdir}/system/proc-sys-fs-binfmt_misc.* \
${systemd_unitdir}/system/systemd-binfmt.service"
RRECOMMENDS_${PN}-binfmt = "kernel-module-binfmt-misc"
RRECOMMENDS_${PN}-vconsole-setup = "kbd kbd-consolefonts kbd-keymaps"
CONFFILES_${PN} = "${sysconfdir}/systemd/journald.conf \
${sysconfdir}/systemd/logind.conf \
${sysconfdir}/systemd/system.conf \
${sysconfdir}/systemd/user.conf \
${libdir}/sysusers.d/systemd.conf \
${libdir}/sysusers.d/basic.conf \
"
FILES_${PN} = " ${base_bindir}/* \
${datadir}/bash-completion \
${datadir}/dbus-1/services \
${datadir}/dbus-1/system-services \
${datadir}/polkit-1 \
${datadir}/${BPN} \
${datadir}/factory \
${sysconfdir}/bash_completion.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 \
${rootlibexecdir}/systemd/* \
${systemd_unitdir}/* \
${base_libdir}/security/*.so \
${libdir}/libnss_* \
/cgroup \
${bindir}/systemd* \
${bindir}/busctl \
${bindir}/localectl \
${bindir}/hostnamectl \
${bindir}/timedatectl \
${bindir}/bootctl \
${bindir}/kernel-install \
${exec_prefix}/lib/tmpfiles.d/*.conf \
${exec_prefix}/lib/systemd \
${exec_prefix}/lib/modules-load.d \
${exec_prefix}/lib/sysctl.d \
${exec_prefix}/lib/sysusers.d \
${localstatedir} \
/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 \
${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${sysconfdir}/pam.d', '', d)} \
"
FILES_${PN}-dbg += "${rootlibdir}/.debug ${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} += "kmod dbus util-linux-mount udev (= ${EXTENDPKGV})"
RDEPENDS_${PN} += "volatile-binds"
RRECOMMENDS_${PN} += "systemd-serialgetty systemd-compat-units udev-hwdb\
util-linux-agetty \
util-linux-fsck e2fsprogs-e2fsck \
kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 os-release \
"
PACKAGES =+ "udev-dbg udev udev-hwdb"
FILES_udev-dbg += "/lib/udev/.debug"
RPROVIDES_udev = "hotplug"
RDEPENDS_udev-hwdb += "udev"
FILES_udev += "${base_sbindir}/udevd \
${rootlibexecdir}/systemd/systemd-udevd \
${rootlibexecdir}/udev/accelerometer \
${rootlibexecdir}/udev/ata_id \
${rootlibexecdir}/udev/cdrom_id \
${rootlibexecdir}/udev/collect \
${rootlibexecdir}/udev/findkeyboards \
${rootlibexecdir}/udev/keyboard-force-release.sh \
${rootlibexecdir}/udev/keymap \
${rootlibexecdir}/udev/mtd_probe \
${rootlibexecdir}/udev/scsi_id \
${rootlibexecdir}/udev/v4l_id \
${rootlibexecdir}/udev/keymaps \
${rootlibexecdir}/udev/rules.d/4*.rules \
${rootlibexecdir}/udev/rules.d/5*.rules \
${rootlibexecdir}/udev/rules.d/6*.rules \
${rootlibexecdir}/udev/rules.d/70-power-switch.rules \
${rootlibexecdir}/udev/rules.d/75*.rules \
${rootlibexecdir}/udev/rules.d/78*.rules \
${rootlibexecdir}/udev/rules.d/8*.rules \
${rootlibexecdir}/udev/rules.d/95*.rules \
${sysconfdir}/udev \
${sysconfdir}/init.d/systemd-udevd \
${systemd_unitdir}/system/*udev* \
${systemd_unitdir}/system/*.wants/*udev* \
${base_bindir}/udevadm \
${datadir}/bash-completion/completions/udevadm \
"
FILES_udev-hwdb = "${rootlibexecdir}/udev/hwdb.d"
INITSCRIPT_PACKAGES = "udev"
INITSCRIPT_NAME_udev = "systemd-udevd"
INITSCRIPT_PARAMS_udev = "start 03 S ."
python __anonymous() {
if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1")
}
# TODO:
# u-a for runlevel and telinit
ALTERNATIVE_${PN} = "init halt reboot shutdown poweroff runlevel"
ALTERNATIVE_TARGET[init] = "${rootlibexecdir}/systemd/systemd"
ALTERNATIVE_LINK_NAME[init] = "${base_sbindir}/init"
ALTERNATIVE_PRIORITY[init] ?= "300"
ALTERNATIVE_TARGET[halt] = "${base_bindir}/systemctl"
ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt"
ALTERNATIVE_PRIORITY[halt] ?= "300"
ALTERNATIVE_TARGET[reboot] = "${base_bindir}/systemctl"
ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot"
ALTERNATIVE_PRIORITY[reboot] ?= "300"
ALTERNATIVE_TARGET[shutdown] = "${base_bindir}/systemctl"
ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown"
ALTERNATIVE_PRIORITY[shutdown] ?= "300"
ALTERNATIVE_TARGET[poweroff] = "${base_bindir}/systemctl"
ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff"
ALTERNATIVE_PRIORITY[poweroff] ?= "300"
ALTERNATIVE_TARGET[runlevel] = "${base_bindir}/systemctl"
ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel"
ALTERNATIVE_PRIORITY[runlevel] ?= "300"
pkg_postinst_udev-hwdb () {
if test -n "$D"; then
${@qemu_run_binary(d, '$D', '${base_bindir}/udevadm')} hwdb --update \
--root $D
else
udevadm hwdb --update
fi
}
pkg_prerm_udev-hwdb () {
if test -n "$D"; then
exit 1
fi
rm -f ${sysconfdir}/udev/hwdb.bin
}
# Do not activate libnss-resolve by default, that needs more thought
pkg_postinst_${PN} () {
sed -e '/^hosts:/s/\s*\<myhostname\>//' \
-e 's/\(^hosts:.*\)\(\<files\>\)\(.*\)\(\<dns\>\)\(.*\)/\1\2 myhostname \3\4\5/' \
-i $D${sysconfdir}/nsswitch.conf
sed -e '/^hosts:/s/\s*\<mymachine\>//' \
-e 's/\(^hosts:.*\)\(\<files\>\)\(.*\)\(\<dns\>\)\(.*\)/\1\2 mymachine \3\4\5/' \
-i $D${sysconfdir}/nsswitch.conf
}
pkg_prerm_${PN} () {
sed -e '/^hosts:/s/\s*\<myhostname\>//' \
-e '/^hosts:/s/\s*myhostname//' \
-i $D${sysconfdir}/nsswitch.conf
sed -e '/^hosts:/s/\s*\<mymachine\>//' \
-e '/^hosts:/s/\s*mymachine//' \
-i $D${sysconfdir}/nsswitch.conf
}
# 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")
}