From b378a551a1a739c5e1f55677c32f57b36f1bb1df Mon Sep 17 00:00:00 2001 From: BlackNoxis Date: Tue, 12 May 2015 22:50:09 +0300 Subject: [systemd] added new ebuilds for specific things in systemd --- ...k-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch | 116 +++++++++++++++++++++ ...icitly-include-endian.h-wherever-we-want-.patch | 53 ++++++++++ ...e-MD-from-block-device-ownership-event-lo.patch | 54 ++++++++++ sys-apps/systemd/files/216-lz4-build.patch | 19 ++++ .../systemd/files/216-tmpfiles-setup-dev.patch | 21 ++++ sys-apps/systemd/files/blacklist-146 | 48 +++++++++ 6 files changed, 311 insertions(+) create mode 100644 sys-apps/systemd/files/215-0001-always-check-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch create mode 100644 sys-apps/systemd/files/215-0002-endian-explicitly-include-endian.h-wherever-we-want-.patch create mode 100644 sys-apps/systemd/files/215-0003-udev-exclude-MD-from-block-device-ownership-event-lo.patch create mode 100644 sys-apps/systemd/files/216-lz4-build.patch create mode 100644 sys-apps/systemd/files/216-tmpfiles-setup-dev.patch create mode 100644 sys-apps/systemd/files/blacklist-146 (limited to 'sys-apps/systemd/files') diff --git a/sys-apps/systemd/files/215-0001-always-check-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch b/sys-apps/systemd/files/215-0001-always-check-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch new file mode 100644 index 00000000..b29c10de --- /dev/null +++ b/sys-apps/systemd/files/215-0001-always-check-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch @@ -0,0 +1,116 @@ +From 28f6bb18cdea297164763db94e2366ca4857c9c7 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 11 Jul 2014 15:56:16 +0200 +Subject: [PATCH 1/2] always check for __BYTE_ORDER == __BIG_ENDIAN when + checking for endianess + +Let's always stick to glibc's way to determine byte order, and not mix +autoconf-specific checks with gcc checks. +--- + src/shared/architecture.h | 12 ++++++------ + src/shared/gpt.h | 4 ++-- + src/shared/time-dst.c | 6 +++--- + 3 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/src/shared/architecture.h b/src/shared/architecture.h +index 4821d5d..58e97e5 100644 +--- a/src/shared/architecture.h ++++ b/src/shared/architecture.h +@@ -80,7 +80,7 @@ Architecture uname_architecture(void); + # define native_architecture() ARCHITECTURE_X86 + # define LIB_ARCH_TUPLE "i386-linux-gnu" + #elif defined(__powerpc64__) +-# if defined(WORDS_BIGENDIAN) ++# if __BYTE_ORDER == __BIG_ENDIAN + # define native_architecture() ARCHITECTURE_PPC64 + # define LIB_ARCH_TUPLE "ppc64-linux-gnu" + # else +@@ -88,7 +88,7 @@ Architecture uname_architecture(void); + # error "Missing LIB_ARCH_TUPLE for PPC64LE" + # endif + #elif defined(__powerpc__) +-# if defined(WORDS_BIGENDIAN) ++# if __BYTE_ORDER == __BIG_ENDIAN + # define native_architecture() ARCHITECTURE_PPC + # define LIB_ARCH_TUPLE "powerpc-linux-gnu" + # else +@@ -117,7 +117,7 @@ Architecture uname_architecture(void); + # define native_architecture() ARCHITECTURE_SPARC + # define LIB_ARCH_TUPLE "sparc-linux-gnu" + #elif defined(__mips64__) +-# if defined(WORDS_BIGENDIAN) ++# if __BYTE_ORDER == __BIG_ENDIAN + # define native_architecture() ARCHITECTURE_MIPS64 + # error "Missing LIB_ARCH_TUPLE for MIPS64" + # else +@@ -125,7 +125,7 @@ Architecture uname_architecture(void); + # error "Missing LIB_ARCH_TUPLE for MIPS64_LE" + # endif + #elif defined(__mips__) +-# if defined(WORDS_BIGENDIAN) ++# if __BYTE_ORDER == __BIG_ENDIAN + # define native_architecture() ARCHITECTURE_MIPS + # define LIB_ARCH_TUPLE "mips-linux-gnu" + # else +@@ -136,7 +136,7 @@ Architecture uname_architecture(void); + # define native_architecture() ARCHITECTURE_ALPHA + # define LIB_ARCH_TUPLE "alpha-linux-gnu" + #elif defined(__aarch64__) +-# if defined(WORDS_BIGENDIAN) ++# if __BYTE_ORDER == __BIG_ENDIAN + # define native_architecture() ARCHITECTURE_ARM64_BE + # define LIB_ARCH_TUPLE "aarch64_be-linux-gnu" + # else +@@ -144,7 +144,7 @@ Architecture uname_architecture(void); + # define LIB_ARCH_TUPLE "aarch64-linux-gnu" + # endif + #elif defined(__arm__) +-# if defined(WORDS_BIGENDIAN) ++# if __BYTE_ORDER == __BIG_ENDIAN + # define native_architecture() ARCHITECTURE_ARM_BE + # if defined(__ARM_EABI__) + # if defined(__ARM_PCS_VFP) +diff --git a/src/shared/gpt.h b/src/shared/gpt.h +index 64090e0..278940b 100644 +--- a/src/shared/gpt.h ++++ b/src/shared/gpt.h +@@ -42,10 +42,10 @@ + # define GPT_ROOT_NATIVE GPT_ROOT_X86 + #endif + +-#if defined(__aarch64__) && !defined(WORDS_BIGENDIAN) ++#if defined(__aarch64__) && (__BYTE_ORDER != __BIG_ENDIAN) + # define GPT_ROOT_NATIVE GPT_ROOT_ARM_64 + # define GPT_ROOT_SECONDARY GPT_ROOT_ARM +-#elif defined(__arm__) && !defined(WORDS_BIGENDIAN) ++#elif defined(__arm__) && (__BYTE_ORDER != __BIG_ENDIAN) + # define GPT_ROOT_NATIVE GPT_ROOT_ARM + #endif + +diff --git a/src/shared/time-dst.c b/src/shared/time-dst.c +index ceca2fa..6195b11 100644 +--- a/src/shared/time-dst.c ++++ b/src/shared/time-dst.c +@@ -207,8 +207,8 @@ read_again: + if (type_idxs[i] >= num_types) + return -EINVAL; + +- if (BYTE_ORDER == BIG_ENDIAN ? sizeof(time_t) == 8 && trans_width == 4 +- : sizeof(time_t) == 4 || trans_width == 4) { ++ if (__BYTE_ORDER == __BIG_ENDIAN ? sizeof(time_t) == 8 && trans_width == 4 ++ : sizeof(time_t) == 4 || trans_width == 4) { + /* Decode the transition times, stored as 4-byte integers in + network (big-endian) byte order. We work from the end of + the array so as not to clobber the next element to be +@@ -216,7 +216,7 @@ read_again: + i = num_transitions; + while (i-- > 0) + transitions[i] = decode((char *)transitions + i * 4); +- } else if (BYTE_ORDER != BIG_ENDIAN && sizeof(time_t) == 8) { ++ } else if (__BYTE_ORDER != __BIG_ENDIAN && sizeof(time_t) == 8) { + /* Decode the transition times, stored as 8-byte integers in + network (big-endian) byte order. */ + for (i = 0; i < num_transitions; ++i) +-- +1.8.5.5 + diff --git a/sys-apps/systemd/files/215-0002-endian-explicitly-include-endian.h-wherever-we-want-.patch b/sys-apps/systemd/files/215-0002-endian-explicitly-include-endian.h-wherever-we-want-.patch new file mode 100644 index 00000000..71acac1b --- /dev/null +++ b/sys-apps/systemd/files/215-0002-endian-explicitly-include-endian.h-wherever-we-want-.patch @@ -0,0 +1,53 @@ +From 2281422746c00d2803911f2b4699eee6bc87ee04 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 11 Jul 2014 16:13:13 +0200 +Subject: [PATCH 2/2] endian: explicitly include endian.h wherever we want to + use __BYTE_ORDER + +--- + src/libsystemd/sd-bus/bus-protocol.h | 1 + + src/shared/architecture.h | 2 ++ + src/shared/gpt.h | 2 ++ + 3 files changed, 5 insertions(+) + +diff --git a/src/libsystemd/sd-bus/bus-protocol.h b/src/libsystemd/sd-bus/bus-protocol.h +index 5046d17..4f46468 100644 +--- a/src/libsystemd/sd-bus/bus-protocol.h ++++ b/src/libsystemd/sd-bus/bus-protocol.h +@@ -21,6 +21,7 @@ + along with systemd; If not, see . + ***/ + ++#include + + /* Endianness */ + +diff --git a/src/shared/architecture.h b/src/shared/architecture.h +index 58e97e5..38780d1 100644 +--- a/src/shared/architecture.h ++++ b/src/shared/architecture.h +@@ -21,6 +21,8 @@ + along with systemd; If not, see . + ***/ + ++#include ++ + #include "util.h" + + /* A cleaned up architecture definition. We don't want to get lost in +diff --git a/src/shared/gpt.h b/src/shared/gpt.h +index 278940b..ef3444f 100644 +--- a/src/shared/gpt.h ++++ b/src/shared/gpt.h +@@ -19,6 +19,8 @@ + along with systemd; If not, see . + ***/ + ++#include ++ + #include "sd-id128.h" + + /* We only support root disk discovery for x86, x86-64 and ARM for +-- +1.8.5.5 + diff --git a/sys-apps/systemd/files/215-0003-udev-exclude-MD-from-block-device-ownership-event-lo.patch b/sys-apps/systemd/files/215-0003-udev-exclude-MD-from-block-device-ownership-event-lo.patch new file mode 100644 index 00000000..c730242c --- /dev/null +++ b/sys-apps/systemd/files/215-0003-udev-exclude-MD-from-block-device-ownership-event-lo.patch @@ -0,0 +1,54 @@ +From 9d17a215fb30cb3e49db516a39c9bec2159004a7 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Thu, 24 Jul 2014 23:37:35 +0200 +Subject: [PATCH 3/3] udev: exclude MD from block device ownership event + locking + +MD instantiates devices at open(). This is incomptible with the +locking logic, as the "change" event emitted when stopping a +device will bring it back. +--- + src/udev/udevd.c | 23 +++++++---------------- + 1 file changed, 7 insertions(+), 16 deletions(-) + +diff --git a/src/udev/udevd.c b/src/udev/udevd.c +index a45d324..db935d6 100644 +--- a/src/udev/udevd.c ++++ b/src/udev/udevd.c +@@ -285,26 +285,17 @@ static void worker_new(struct event *event) + udev_event->exec_delay = exec_delay; + + /* +- * Take a "read lock" on the device node; this establishes ++ * Take a shared lock on the device node; this establishes + * a concept of device "ownership" to serialize device +- * access. External processes holding a "write lock" will ++ * access. External processes holding an exclusive lock will + * cause udev to skip the event handling; in the case udev +- * acquired the lock, the external process will block until ++ * acquired the lock, the external process can block until + * udev has finished its event handling. + */ +- +- /* +- * since we make check - device seems unused - we try +- * ioctl to deactivate - and device is found to be opened +- * sure, you try to take a write lock +- * if you get it udev is out +- * if you can't get it, udev is busy +- * we cannot deactivate openned device (as it is in-use) +- * maybe we should just exclude dm from that thing entirely +- * IMHO this sounds like a good plan for this moment +- */ +- if (streq_ptr("block", udev_device_get_subsystem(dev)) && +- !startswith(udev_device_get_sysname(dev), "dm-")) { ++ if (!streq_ptr(udev_device_get_action(dev), "remove") && ++ streq_ptr("block", udev_device_get_subsystem(dev)) && ++ !startswith(udev_device_get_sysname(dev), "dm-") && ++ !startswith(udev_device_get_sysname(dev), "md")) { + struct udev_device *d = dev; + + if (streq_ptr("partition", udev_device_get_devtype(d))) +-- +1.8.5.5 + diff --git a/sys-apps/systemd/files/216-lz4-build.patch b/sys-apps/systemd/files/216-lz4-build.patch new file mode 100644 index 00000000..65fe45cb --- /dev/null +++ b/sys-apps/systemd/files/216-lz4-build.patch @@ -0,0 +1,19 @@ +commit 10893a5cfa7d792ba171282c2ec46b85ed6aae0c +Author: Gustavo Sverzut Barbieri +Date: Thu Sep 25 18:08:02 2014 -0300 + + journal: build fix when LZ4 is enabled but XZ is not + +diff --git a/src/journal/journal-file.h b/src/journal/journal-file.h +index da2ef3b..6b4bf0d 100644 +--- a/src/journal/journal-file.h ++++ b/src/journal/journal-file.h +@@ -78,7 +78,7 @@ typedef struct JournalFile { + + Hashmap *chain_cache; + +-#ifdef HAVE_XZ ++#if defined(HAVE_XZ) || defined(HAVE_LZ4) + void *compress_buffer; + size_t compress_buffer_size; + #endif diff --git a/sys-apps/systemd/files/216-tmpfiles-setup-dev.patch b/sys-apps/systemd/files/216-tmpfiles-setup-dev.patch new file mode 100644 index 00000000..1fa4a3e7 --- /dev/null +++ b/sys-apps/systemd/files/216-tmpfiles-setup-dev.patch @@ -0,0 +1,21 @@ +From 8c94052ee543c3598a3c7b0c46688150aa2c6168 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Mon, 27 Oct 2014 17:15:42 +0100 +Subject: units: tmpfiles-setup-dev - allow unsafe file creation to happen in + /dev at boot + +This will allow us to mark static device nodes with '!' to indicate that they should only be created at early boot. + +diff --git a/units/systemd-tmpfiles-setup-dev.service.in b/units/systemd-tmpfiles-setup-dev.service.in +index f3833fd..0123a03 100644 +--- a/units/systemd-tmpfiles-setup-dev.service.in ++++ b/units/systemd-tmpfiles-setup-dev.service.in +@@ -17,4 +17,4 @@ ConditionCapability=CAP_SYS_MODULE + [Service] + Type=oneshot + RemainAfterExit=yes +-ExecStart=@rootbindir@/systemd-tmpfiles --prefix=/dev --create ++ExecStart=@rootbindir@/systemd-tmpfiles --prefix=/dev --create --boot +-- +cgit v0.10.2 + diff --git a/sys-apps/systemd/files/blacklist-146 b/sys-apps/systemd/files/blacklist-146 new file mode 100644 index 00000000..3e063a35 --- /dev/null +++ b/sys-apps/systemd/files/blacklist-146 @@ -0,0 +1,48 @@ +# This file lists modules which will not be loaded by udev, +# not at coldplugging and not on hotplug events. + +# Add your own entries to this file +# in the format "blacklist " + +# Some examples: +# evbug is a debug tool and should be loaded explicitly +blacklist evbug + +# Autoloading eth1394 most of the time re-orders your network +# interfaces, and with buggy kernel 2.6.21, udev persistent-net +# is not able to rename these devices, so you get eth?_rename devices +# plus an exceeded 30sec boot timeout +blacklist eth1394 + +# You probably want this to not get the console beep loud on every tab :) +#blacklist pcspkr + +# these drivers are very simple, the HID drivers are usually preferred +#blacklist usbmouse +#blacklist usbkbd + +# Sometimes loading a framebuffer driver at boot gets the console black +#install pci:v*d*sv*sd*bc03sc*i* /bin/true + +# hplip and cups 1.4+ use raw USB devices, so it requires usblp not be loaded +blacklist usblp + +## make broadcom-sta happy +## <2012-12-08. +#blacklist ssb +#blacklist bcma +#blacklist brcmsmac +#blacklist b43 + +# make b43 happy (ditch broadcom-sta) +# 2012-12-08. Testing needed. +blacklist wl + +# keep nvidia-drivers working, sorry nouveau +blacklist nouveau + +# Known to cause kernel OOPS at boot +blacklist ite_cir + +# Prevents kernel message: Driver 'pcspkr' is already registered, aborting... +blacklist snd-pcsp -- cgit v1.2.3