Compare commits

..

6 Commits

Author SHA256 Message Date
Ana Guerrero
35e7ce86d0 Accepting request 1228086 from Base:System
- Add 5005-Revert-boot-Make-initrd_prepare-semantically-equival.patch
  Revert commit d64193a2a652b15db9cb9ed10c6b77a17ca46cd2 until the regression it
  caused, reported at https://github.com/systemd/systemd/issues/35439, is fixed
  (see also bsc#1233752 for its downstream counterpart).

- Disable EFI support on architectures that are not EFI-compliant

- Import commit 290170c8550bf2de4b5085ecdf7f056769944444 (merge of v256.9)
  This merge includes the following fix:
    cf7b3cc182 pid1: make clear that $WATCHDOG_USEC is set for the shutdown binary, noone else (bsc#1232227)
  For a complete list of changes, visit:
  c7671762b3...290170c855

- Import commit aee28e4c20a053ea27f8be69f2ea981e43bcb0b6
  aee28e4c20 udev-builtin-path_id: SAS wide ports must have num_phys > 1 (bsc#1231610)
  280989cfa4 core: when switching root remove /run/systemd before executing the binary specified by init= (bsc#1227580)
- Drop 5003-core-when-switching-root-remove-run-systemd-before-e.patch, this
  patch has been integrated in branch 'SUSE/v256', see above.

OBS-URL: https://build.opensuse.org/request/show/1228086
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=433
2024-12-04 14:26:49 +00:00
Franck Bui
d44491fc0f previous added patch was for v257, update it to apply cleanly on v256
OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=1563
2024-12-03 15:35:18 +00:00
Franck Bui
941f6c37db - Add 5005-Revert-boot-Make-initrd_prepare-semantically-equival.patch
Revert commit d64193a2a652b15db9cb9ed10c6b77a17ca46cd2 until the regression it
  caused, reported at https://github.com/systemd/systemd/issues/35439, is fixed
  (see also bsc#1233752 for its downstream counterpart).

OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=1562
2024-12-03 15:05:11 +00:00
Franck Bui
6c624246d2 - Disable EFI support on architectures that are not EFI-compliant
OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=1561
2024-12-03 09:50:22 +00:00
Franck Bui
8c0fa7ea0e - Import commit 290170c8550bf2de4b5085ecdf7f056769944444 (merge of v256.9)
This merge includes the following fix:
    cf7b3cc182 pid1: make clear that $WATCHDOG_USEC is set for the shutdown binary, noone else (bsc#1232227)
  For a complete list of changes, visit:
  c7671762b3...290170c855

OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=1560
2024-12-03 09:30:13 +00:00
Franck Bui
9a23d4df41 - Import commit aee28e4c20a053ea27f8be69f2ea981e43bcb0b6
aee28e4c20 udev-builtin-path_id: SAS wide ports must have num_phys > 1 (bsc#1231610)
  280989cfa4 core: when switching root remove /run/systemd before executing the binary specified by init= (bsc#1227580)
- Drop 5003-core-when-switching-root-remove-run-systemd-before-e.patch, this
  patch has been integrated in branch 'SUSE/v256', see above.

OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=1559
2024-11-04 10:37:36 +00:00
116 changed files with 11767 additions and 15710 deletions

View File

@ -0,0 +1,80 @@
From 72d766c5a17fc31902b367e949c4d90193f823b9 Mon Sep 17 00:00:00 2001
From: Franck Bui <fbui@suse.com>
Date: Fri, 22 Mar 2024 12:07:34 +0100
Subject: [PATCH 1/1] Drop support for efivar SystemdOptions
Upstream deprecated it and plan to drop it in the future.
Let's get ahead and drop it now as this feature might be used to gain access to
encrypted SLEM systems with unattended disk unlock and with secure boot
disabled.
[fbui: fixes bsc#1220338]
---
src/basic/efivars.c | 27 ++++++--------------------
src/boot/bootctl-systemd-efi-options.c | 4 ++++
2 files changed, 10 insertions(+), 21 deletions(-)
diff --git a/src/basic/efivars.c b/src/basic/efivars.c
index 9011ae29a3..01ab7e5092 100644
--- a/src/basic/efivars.c
+++ b/src/basic/efivars.c
@@ -351,29 +351,14 @@ SecureBootMode efi_get_secure_boot_mode(void) {
}
static int read_efi_options_variable(char **ret) {
- int r;
- /* In SecureBoot mode this is probably not what you want. As your cmdline is cryptographically signed
- * like when using Type #2 EFI Unified Kernel Images (https://uapi-group.org/specifications/specs/boot_loader_specification)
- * The user's intention is then that the cmdline should not be modified. You want to make sure that
- * the system starts up as exactly specified in the signed artifact.
- *
- * (NB: For testing purposes, we still check the $SYSTEMD_EFI_OPTIONS env var before accessing this
- * cache, even when in SecureBoot mode.) */
- if (is_efi_secure_boot()) {
- /* Let's be helpful with the returned error and check if the variable exists at all. If it
- * does, let's return a recognizable error (EPERM), and if not ENODATA. */
-
- if (access(EFIVAR_PATH(EFI_SYSTEMD_VARIABLE(SystemdOptions)), F_OK) < 0)
- return errno == ENOENT ? -ENODATA : -errno;
-
- return -EPERM;
- }
+ /* For SUSE distros, support for SystemdOptions has already been dropped as it might be a security
+ * concern for systems with unattended disk unlock and with disabled secure boot. */
- r = efi_get_variable_string(EFI_SYSTEMD_VARIABLE(SystemdOptions), ret);
- if (r == -ENOENT)
- return -ENODATA;
- return r;
+ if (access(EFIVAR_PATH(EFI_SYSTEMD_VARIABLE(SystemdOptions)), F_OK) < 0)
+ return errno == ENOENT ? -ENODATA : -errno;
+
+ return log_warning_errno(SYNTHETIC_ERRNO(EPERM), "Boot options passed via SystemdOptions EFI variable is no more supported, ignoring: %m");
}
int cache_efi_options_variable(void) {
diff --git a/src/boot/bootctl-systemd-efi-options.c b/src/boot/bootctl-systemd-efi-options.c
index 7f8308fc3d..216b99546f 100644
--- a/src/boot/bootctl-systemd-efi-options.c
+++ b/src/boot/bootctl-systemd-efi-options.c
@@ -6,6 +6,7 @@
#include "efi-loader.h"
int verb_systemd_efi_options(int argc, char *argv[], void *userdata) {
+#if 0
int r;
/* This is obsolete and subject to removal */
@@ -40,4 +41,7 @@ int verb_systemd_efi_options(int argc, char *argv[], void *userdata) {
}
return 0;
+#else
+ return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "Support for the SystemdOptions EFI variable has been dropped.");
+#endif
}
--
2.35.3

View File

@ -1,180 +0,0 @@
---
rules/99-systemd.rules.in | 2 -
src/basic/terminal-util.c | 55 ++++++++++++++++++++++++++++++++++++++++++++--
src/basic/terminal-util.h | 1
src/core/manager.c | 24 +++++++++++++++-----
4 files changed, 74 insertions(+), 8 deletions(-)
Index: systemd-228/rules/99-systemd.rules.in
===================================================================
--- systemd-228.orig/rules/99-systemd.rules.in
+++ systemd-228/rules/99-systemd.rules.in
@@ -7,7 +7,7 @@
ACTION=="remove", GOTO="systemd_end"
-SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty[0-9]*", TAG+="systemd"
+SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty*", TAG+="systemd"
KERNEL=="vport*", TAG+="systemd"
SUBSYSTEM=="block", TAG+="systemd"
Index: systemd-228/src/basic/terminal-util.c
===================================================================
--- systemd-228.orig/src/basic/terminal-util.c
+++ systemd-228/src/basic/terminal-util.c
@@ -717,10 +717,47 @@ bool tty_is_vc_resolve(const char *tty)
return tty_is_vc(tty);
}
+bool ansi_console(int fd) {
+ static int cached_ansi_console = -1;
+
+ if (_likely_(cached_ansi_console >= 0))
+ return cached_ansi_console;
+
+ cached_ansi_console = isatty(fd) > 0;
+#if defined(__s390__) || defined(__s390x__)
+ if (cached_ansi_console) {
+ const char *e = getenv("TERM");
+ if (e != NULL && (streq(e, "dumb") || strneq(e, "ibm3", 4))) {
+ _cleanup_free_ char *mode = NULL;
+ int r = parse_env_file("/proc/cmdline", WHITESPACE,
+ "conmode", &mode, NULL);
+ if (r < 0 || mode == NULL || !streq(mode, "3270"))
+ cached_ansi_console = 0;
+ }
+ }
+#endif
+ return cached_ansi_console;
+}
+
const char *default_term_for_tty(const char *tty) {
assert(tty);
- return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt220";
+ if (tty_is_vc_resolve(tty))
+ return "TERM=linux";
+ if (startswith(tty, "/dev/"))
+ tty += 5;
+#if defined (__s390__) || defined (__s390x__)
+ if (streq(tty, "ttyS0")) {
+ _cleanup_free_ char *mode = NULL;
+ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode",
+ &mode, NULL);
+ if (r < 0 || mode == NULL || !streq(mode, "3270"))
+ return "TERM=dumb";
+ if (streq(mode, "3270"))
+ return "TERM=ibm327x";
+ }
+#endif
+ return "TERM=vt220";
}
int fd_columns(int fd) {
@@ -800,8 +837,22 @@ void columns_lines_cache_reset(int signu
bool on_tty(void) {
static int cached_on_tty = -1;
- if (_unlikely_(cached_on_tty < 0))
+ if (_unlikely_(cached_on_tty < 0)) {
cached_on_tty = isatty(STDOUT_FILENO) > 0;
+#if defined (__s390__) || defined (__s390x__)
+ if (cached_on_tty) {
+ const char *e = getenv("TERM");
+ if (!e)
+ return cached_on_tty;
+ if (streq(e, "dumb") || strneq(e, "ibm3", 4)) {
+ char *mode = NULL;
+ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL);
+ if (r < 0 || !mode || !streq(mode, "3270"))
+ cached_on_tty = 0;
+ }
+ }
+#endif
+ }
return cached_on_tty;
}
Index: systemd-228/src/basic/terminal-util.h
===================================================================
--- systemd-228.orig/src/basic/terminal-util.h
+++ systemd-228/src/basic/terminal-util.h
@@ -78,6 +78,7 @@ unsigned lines(void);
void columns_lines_cache_reset(int _unused_ signum);
bool on_tty(void);
+bool ansi_console(int fd);
static inline const char *ansi_underline(void) {
return on_tty() ? ANSI_UNDERLINE : "";
Index: systemd-228/src/core/manager.c
===================================================================
--- systemd-228.orig/src/core/manager.c
+++ systemd-228/src/core/manager.c
@@ -126,7 +126,7 @@ static void manager_watch_jobs_in_progre
#define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED)-1) + sizeof(ANSI_HIGHLIGHT_RED)-1 + 2*(sizeof(ANSI_NORMAL)-1))
-static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos) {
+static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos, bool ansi_console) {
char *p = buffer;
assert(buflen >= CYLON_BUFFER_EXTRA + width + 1);
@@ -135,12 +135,14 @@ static void draw_cylon(char buffer[], si
if (pos > 1) {
if (pos > 2)
p = mempset(p, ' ', pos-2);
- p = stpcpy(p, ANSI_RED);
+ if (ansi_console)
+ p = stpcpy(p, ANSI_RED);
*p++ = '*';
}
if (pos > 0 && pos <= width) {
- p = stpcpy(p, ANSI_HIGHLIGHT_RED);
+ if (ansi_console)
+ p = stpcpy(p, ANSI_HIGHLIGHT_RED);
*p++ = '*';
}
@@ -151,7 +153,8 @@ static void draw_cylon(char buffer[], si
*p++ = '*';
if (pos < width-1)
p = mempset(p, ' ', width-1-pos);
- strcpy(p, ANSI_NORMAL);
+ if (ansi_console)
+ strcpy(p, ANSI_NORMAL);
}
}
@@ -168,6 +171,7 @@ void manager_flip_auto_status(Manager *m
}
static void manager_print_jobs_in_progress(Manager *m) {
+ static int is_ansi_console = -1;
_cleanup_free_ char *job_of_n = NULL;
Iterator i;
Job *j;
@@ -193,10 +197,20 @@ static void manager_print_jobs_in_progre
assert(counter == print_nr + 1);
assert(j);
+ if (_unlikely_(is_ansi_console < 0)) {
+ int fd = open_terminal("/dev/console", O_RDONLY|O_NOCTTY|O_CLOEXEC);
+ if (fd < 0)
+ is_ansi_console = 0;
+ else {
+ is_ansi_console = (int)ansi_console(fd);
+ close(fd);
+ }
+ }
+
cylon_pos = m->jobs_in_progress_iteration % 14;
if (cylon_pos >= 8)
cylon_pos = 14 - cylon_pos;
- draw_cylon(cylon, sizeof(cylon), 6, cylon_pos);
+ draw_cylon(cylon, sizeof(cylon), 6, cylon_pos, (bool)is_ansi_console);
m->jobs_in_progress_iteration++;

View File

@ -1,84 +0,0 @@
---
src/core/shutdown.c | 4 ++++
src/systemctl/systemctl.c | 18 ++++++++++++------
2 files changed, 16 insertions(+), 6 deletions(-)
Index: systemd-227/src/core/shutdown.c
===================================================================
--- systemd-227.orig/src/core/shutdown.c
+++ systemd-227/src/core/shutdown.c
@@ -418,6 +418,10 @@ int main(int argc, char *argv[]) {
}
reboot(cmd);
+
+ if (cmd == (int)RB_POWER_OFF)
+ reboot(RB_HALT_SYSTEM);
+
if (errno == EPERM && in_container) {
/* If we are in a container, and we lacked
* CAP_SYS_BOOT just exit, this will kill our
Index: systemd-227/src/systemctl/systemctl.c
===================================================================
--- systemd-227.orig/src/systemctl/systemctl.c
+++ systemd-227/src/systemctl/systemctl.c
@@ -94,6 +94,7 @@ static bool arg_no_pager = false;
static bool arg_no_wtmp = false;
static bool arg_no_wall = false;
static bool arg_no_reload = false;
+static bool arg_no_sync = false;
static bool arg_show_types = false;
static bool arg_ignore_inhibitors = false;
static bool arg_dry = false;
@@ -6938,6 +6939,7 @@ static int halt_parse_argv(int argc, cha
{ "reboot", no_argument, NULL, ARG_REBOOT },
{ "force", no_argument, NULL, 'f' },
{ "wtmp-only", no_argument, NULL, 'w' },
+ { "no-sync", no_argument, NULL, 'n' },
{ "no-wtmp", no_argument, NULL, 'd' },
{ "no-wall", no_argument, NULL, ARG_NO_WALL },
{}
@@ -6990,10 +6992,13 @@ static int halt_parse_argv(int argc, cha
case 'i':
case 'h':
- case 'n':
/* Compatibility nops */
break;
+ case 'n':
+ arg_no_sync = true;
+ break;
+
case '?':
return -EINVAL;
@@ -7506,7 +7511,8 @@ static int halt_now(enum action a) {
/* The kernel will automaticall flush ATA disks and suchlike
* on reboot(), but the file systems need to be synce'd
* explicitly in advance. */
- (void) sync();
+ if (!arg_no_sync)
+ (void) sync();
/* Make sure C-A-D is handled by the kernel from this point
* on... */
@@ -7514,14 +7520,13 @@ static int halt_now(enum action a) {
switch (a) {
- case ACTION_HALT:
- log_info("Halting.");
- (void) reboot(RB_HALT_SYSTEM);
- return -errno;
-
case ACTION_POWEROFF:
log_info("Powering off.");
(void) reboot(RB_POWER_OFF);
+ /* fall-through */
+ case ACTION_HALT:
+ log_info("Halting.");
+ (void) reboot(RB_HALT_SYSTEM);
return -errno;
case ACTION_KEXEC:

View File

@ -1,315 +0,0 @@
Avoid possible race on NFS shares in which may that the network devices disappears
before the associated NFS share becomes unmounted (bug #861489).
To do this make sure that sys-subsystem-net-devices-<iface>.device used for the
NFS share is added as "After=" dependency to the <nfs-share-mount-point>.mount.
---
Makefile.am | 2
src/core/mount-iface.c | 173 +++++++++++++++++++++++++++++++++++++++++++++++++
src/core/mount-iface.h | 25 +++++++
src/core/mount.c | 35 +++++++++
4 files changed, 233 insertions(+), 2 deletions(-)
Index: systemd-228/Makefile.am
===================================================================
--- systemd-228.orig/Makefile.am
+++ systemd-228/Makefile.am
@@ -1223,6 +1223,8 @@ libcore_la_SOURCES = \
src/core/machine-id-setup.h \
src/core/mount-setup.c \
src/core/mount-setup.h \
+ src/core/mount-iface.c \
+ src/core/mount-iface.h \
src/core/kmod-setup.c \
src/core/kmod-setup.h \
src/core/loopback-setup.h \
Index: systemd-228/src/core/mount-iface.c
===================================================================
--- /dev/null
+++ systemd-228/src/core/mount-iface.c
@@ -0,0 +1,173 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Werner Fink
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+/*
+ * Find the name of the network interface to which a IP address belongs to.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <arpa/inet.h>
+#include <ifaddrs.h>
+#include <net/if.h>
+#include <assert.h>
+
+#include "log.h"
+#include "def.h"
+#include "mount-iface.h"
+
+static struct ifaddrs *ifa_list;
+
+_pure_ static unsigned int mask2prefix(const void* ipv6)
+{
+ unsigned int nippels = 0;
+ unsigned int i;
+
+ assert(ipv6);
+
+ for (i = 0; i < sizeof(struct in6_addr); i++) {
+ uint8_t byte = ((const uint8_t*)ipv6)[i];
+ if (byte == 0xFF) {
+ nippels += sizeof(uint8_t);
+ continue;
+ }
+ while (byte & 0x80) {
+ nippels++;
+ byte <<= 1;
+ }
+ break;
+ }
+
+ return nippels;
+}
+
+static void netmask(unsigned int prefix, const void* in6, void* out6)
+{
+ unsigned int nippels;
+ unsigned int i;
+
+ assert(in6);
+ assert(out6);
+
+ for (i = 0; i < sizeof(struct in6_addr); i++) {
+ nippels = (prefix < sizeof(uint8_t)) ? prefix : sizeof(uint8_t);
+ ((uint8_t*)out6)[i] = ((const uint8_t*)in6)[i] & (0xFF00>>nippels);
+ prefix -= nippels;
+ }
+}
+
+char *host2iface(const char *ip)
+{
+ const struct ifaddrs *ifa;
+ uint32_t ip4 = 0;
+ char *ret = NULL;
+ struct search {
+ union {
+ struct in_addr addr;
+ struct in6_addr addr6;
+ };
+ int family;
+ } host;
+ int r;
+
+ if (!ifa_list && (getifaddrs(&ifa_list) < 0)) {
+ log_oom();
+ goto err;
+ }
+
+ if (strchr(ip, ':')) {
+ r = inet_pton(AF_INET6, ip, &host.addr6);
+ host.family = AF_INET6;
+ } else {
+ r = inet_pton(AF_INET, ip, &host.addr);
+ host.family = AF_INET;
+ }
+
+ if (r < 0) {
+ log_error("Failed to convert IP address %s from text to binary: %m", ip);
+ goto err;
+ }
+
+ for (ifa = ifa_list; ifa != NULL; ifa = ifa->ifa_next) {
+
+ if (!ifa->ifa_addr)
+ continue;
+ if (ifa->ifa_flags & IFF_POINTOPOINT)
+ continue;
+ if (!ifa->ifa_addr)
+ continue;
+ if (!ifa->ifa_netmask)
+ continue;
+
+ if (ifa->ifa_addr->sa_family == AF_INET) {
+ uint32_t addr, dest, mask;
+
+ if (host.family != AF_INET)
+ continue;
+ if (!ifa->ifa_broadaddr)
+ continue;
+
+ if (!ip4)
+ ip4 = (uint32_t)ntohl(host.addr.s_addr);
+
+ addr = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_addr)->sin_addr.s_addr);
+ if ((addr & 0xFF000000) == 0x7F000000) /* IPV4 loopback */
+ continue;
+
+ mask = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_netmask)->sin_addr.s_addr);
+ dest = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_broadaddr)->sin_addr.s_addr);
+ if ((ip4 & mask) != (dest & mask))
+ continue;
+
+ ret = ifa->ifa_name;
+ break;
+ } else if (ifa->ifa_addr->sa_family == AF_INET6) {
+ struct in6_addr *addr, *mask, dest, ip6;
+ unsigned int prefix;
+
+ if (host.family != AF_INET6)
+ continue;
+
+ addr = &((struct sockaddr_in6*)ifa->ifa_addr)->sin6_addr;
+ mask = &((struct sockaddr_in6*)ifa->ifa_netmask)->sin6_addr;
+ prefix = mask2prefix(mask);
+
+ netmask(prefix, addr, &dest);
+ netmask(prefix, &host.addr6, &ip6);
+
+ if (memcmp(&dest, &ip6, sizeof(struct in6_addr)) != 0)
+ continue;
+
+ ret = ifa->ifa_name;
+ break;
+ }
+ }
+err:
+ return ret;
+}
+
+void freeroutes(void)
+{
+ if (ifa_list)
+ freeifaddrs(ifa_list);
+ ifa_list = NULL;
+}
Index: systemd-228/src/core/mount-iface.h
===================================================================
--- /dev/null
+++ systemd-228/src/core/mount-iface.h
@@ -0,0 +1,25 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+#pragma once
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Werner Fink
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+char *host2iface(const char *ip);
+void freeroutes(void);
Index: systemd-228/src/core/mount.c
===================================================================
--- systemd-228.orig/src/core/mount.c
+++ systemd-228/src/core/mount.c
@@ -36,6 +36,7 @@
#include "manager.h"
#include "mkdir.h"
#include "mount-setup.h"
+#include "mount-iface.h"
#include "mount-util.h"
#include "mount.h"
#include "parse-util.h"
@@ -1344,8 +1345,9 @@ static int mount_setup_unit(
_cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL;
bool load_extras = false;
MountParameters *p;
- bool delete, changed = false;
+ bool delete, changed = false, isnetwork;
Unit *u;
+ char *c;
int r;
assert(m);
@@ -1370,6 +1372,8 @@ static int mount_setup_unit(
if (r < 0)
return r;
+ isnetwork = fstype_is_network(fstype);
+
u = manager_get_unit(m, e);
if (!u) {
delete = true;
@@ -1397,7 +1401,7 @@ static int mount_setup_unit(
if (m->running_as == MANAGER_SYSTEM) {
const char* target;
- target = mount_needs_network(options, fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET;
+ target = isnetwork ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET;
r = unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true);
if (r < 0)
goto fail;
@@ -1483,6 +1487,32 @@ static int mount_setup_unit(
goto fail;
}
+ if (isnetwork && (c = strrchr(p->what, ':')) && *(c+1) == '/') {
+ _cleanup_free_ char *opt = strdup(p->options);
+ char *addr;
+
+ if (opt && (addr = strstr(opt, ",addr="))) {
+ char *colon, *iface;
+
+ addr += 6;
+ if ((colon = strchr(addr, ',')))
+ *colon = '\0';
+
+ iface = host2iface(addr);
+ if (iface) {
+ _cleanup_free_ char* target = NULL;
+ if (asprintf(&target, "sys-subsystem-net-devices-%s.device", iface) < 0)
+ log_oom();
+ else {
+ r = unit_add_dependency_by_name(u, UNIT_AFTER, target, NULL, true);
+ if (r < 0)
+ log_unit_error(u, "Failed to add dependency on %s, ignoring: %s",
+ target, strerror(-r));
+ }
+ }
+ }
+ }
+
if (changed)
unit_add_to_dbus_queue(u);
@@ -1549,6 +1579,7 @@ static int mount_load_proc_self_mountinf
if (r == 0 && k < 0)
r = k;
}
+ freeroutes(); /* Just in case of using the routing table with host2iface() */
return r;
}

View File

@ -1,21 +0,0 @@
---
src/login/logind-session.c | 6 ++++++
1 file changed, 6 insertions(+)
Index: systemd-221/src/login/logind-session.c
===================================================================
--- systemd-221.orig/src/login/logind-session.c
+++ systemd-221/src/login/logind-session.c
@@ -548,6 +548,12 @@ int session_start(Session *s) {
if (r < 0)
return r;
+ if (!s->user->slice) {
+ if (errno)
+ return -errno;
+ return -ESTALE;
+ }
+
/* Create cgroup */
r = session_start_scope(s);
if (r < 0)

View File

@ -1,101 +0,0 @@
---
src/login/logind-action.c | 5 +++++
src/login/logind-dbus.c | 31 +++++++++++++++++++++++--------
2 files changed, 28 insertions(+), 8 deletions(-)
Index: systemd-227/src/login/logind-action.c
===================================================================
--- systemd-227.orig/src/login/logind-action.c
+++ systemd-227/src/login/logind-action.c
@@ -85,6 +85,11 @@ int manager_handle_action(
/* If the key handling is inhibited, don't do anything */
if (inhibit_key > 0) {
+ if (inhibit_key == INHIBIT_HANDLE_POWER_KEY) {
+ int fd;
+ fd = open("/run/systemd/acpi-shutdown", O_CREAT|O_WRONLY|O_TRUNC, S_IRUSR);
+ close(fd);
+ }
if (manager_is_inhibited(m, inhibit_key, INHIBIT_BLOCK, NULL, true, false, 0, NULL)) {
log_debug("Refusing operation, %s is inhibited.", inhibit_what_to_string(inhibit_key));
return 0;
Index: systemd-227/src/login/logind-dbus.c
===================================================================
--- systemd-227.orig/src/login/logind-dbus.c
+++ systemd-227/src/login/logind-dbus.c
@@ -1646,12 +1646,13 @@ static int verify_shutdown_creds(
const char *action,
const char *action_multiple_sessions,
const char *action_ignore_inhibit,
- sd_bus_error *error) {
+ sd_bus_error *error, const char *sleep_verb) {
_cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL;
- bool multiple_sessions, blocked;
+ bool multiple_sessions, blocked, shutdown_through_acpi;
uid_t uid;
- int r;
+ int r, fd;
+ struct stat buf;
assert(m);
assert(message);
@@ -1673,7 +1674,19 @@ static int verify_shutdown_creds(
multiple_sessions = r > 0;
blocked = manager_is_inhibited(m, w, INHIBIT_BLOCK, NULL, false, true, uid, NULL);
- if (multiple_sessions && action_multiple_sessions) {
+ fd = open ("/run/systemd/acpi-shutdown", O_NOFOLLOW|O_PATH|O_CLOEXEC);
+ if (fd >= 0) {
+ shutdown_through_acpi = fstat(fd, &buf) == 0 &&
+ time(NULL) - buf.st_mtime <= 65 &&
+ sleep_verb == NULL;
+ close(fd);
+ unlink ("/run/systemd/acpi-shutdown");
+ }
+ else
+ shutdown_through_acpi = false;
+
+ if (multiple_sessions && action_multiple_sessions &&
+ !shutdown_through_acpi) {
r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_multiple_sessions, NULL, interactive, UID_INVALID, &m->polkit_registry, error);
if (r < 0)
return r;
@@ -1681,7 +1694,7 @@ static int verify_shutdown_creds(
return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */
}
- if (blocked && action_ignore_inhibit) {
+ if (blocked && action_ignore_inhibit && !shutdown_through_acpi) {
r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_ignore_inhibit, NULL, interactive, UID_INVALID, &m->polkit_registry, error);
if (r < 0)
return r;
@@ -1689,7 +1702,8 @@ static int verify_shutdown_creds(
return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */
}
- if (!multiple_sessions && !blocked && action) {
+ if (!multiple_sessions && !blocked && action &&
+ !shutdown_through_acpi) {
r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action, NULL, interactive, UID_INVALID, &m->polkit_registry, error);
if (r < 0)
return r;
@@ -1737,7 +1751,7 @@ static int method_do_shutdown_or_sleep(
}
r = verify_shutdown_creds(m, message, w, interactive, action, action_multiple_sessions,
- action_ignore_inhibit, error);
+ action_ignore_inhibit, error, sleep_verb);
if (r != 0)
return r;
@@ -1931,7 +1945,8 @@ static int method_schedule_shutdown(sd_b
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unsupported shutdown type");
r = verify_shutdown_creds(m, message, INHIBIT_SHUTDOWN, false,
- action, action_multiple_sessions, action_ignore_inhibit, error);
+ action, action_multiple_sessions,
+ action_ignore_inhibit, error, "UNUSED");
if (r != 0)
return r;

View File

@ -1,17 +0,0 @@
---
shell-completion/bash/systemctl.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: systemd-221/shell-completion/bash/systemctl.in
===================================================================
--- systemd-221.orig/shell-completion/bash/systemctl.in
+++ systemd-221/shell-completion/bash/systemctl.in
@@ -43,7 +43,7 @@ __filter_units_by_property () {
local units=("$@")
local props
IFS=$'\n' read -rd '' -a props < \
- <(__systemctl $mode show --property "$property" -- "${units[@]}")
+ <(__systemctl $mode show --property "$property" -- "${units[@]}" 2> /dev/null)
for ((i=0; $i < ${#units[*]}; i++)); do
if [[ "${props[i]}" = "$property=$value" ]]; then
echo " ${units[i]}"

View File

@ -1,37 +0,0 @@
From cb31827d62066a04b02111df3052949fda4b6888 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Mon, 23 Nov 2015 13:59:43 -0500
Subject: [PATCH] nss-mymachines: do not allow overlong machine names
https://github.com/systemd/systemd/issues/2002
---
src/nss-mymachines/nss-mymachines.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/nss-mymachines/nss-mymachines.c b/src/nss-mymachines/nss-mymachines.c
index 969fa96..c98a959 100644
--- a/src/nss-mymachines/nss-mymachines.c
+++ b/src/nss-mymachines/nss-mymachines.c
@@ -416,6 +416,9 @@ enum nss_status _nss_mymachines_getpwnam_r(
if (!e || e == p)
goto not_found;
+ if (e - p > HOST_NAME_MAX - 1) /* -1 for the last dash */
+ goto not_found;
+
r = parse_uid(e + 1, &uid);
if (r < 0)
goto not_found;
@@ -573,6 +576,9 @@ enum nss_status _nss_mymachines_getgrnam_r(
if (!e || e == p)
goto not_found;
+ if (e - p > HOST_NAME_MAX - 1) /* -1 for the last dash */
+ goto not_found;
+
r = parse_gid(e + 1, &gid);
if (r < 0)
goto not_found;
--
2.1.4

View File

@ -1,43 +0,0 @@
From: Werner Fink <werner@suse.de>
Date: Wed Feb 26 14:36:27 UTC 2014
Subject: Do not clobber XDG_RUNTIME_DIR if su command preserve environment
Make sure that even if a su command without option -l or with option -m
is used, the XDG_RUNTIME_DIR will not be clobbered by the new uid.
This belongs to BNC#852015 and also to BNC#855160
---
src/login/pam_systemd.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
Index: systemd-221/src/login/pam_systemd.c
===================================================================
--- systemd-221.orig/src/login/pam_systemd.c
+++ systemd-221/src/login/pam_systemd.c
@@ -445,6 +445,25 @@ _public_ PAM_EXTERN int pam_sm_open_sess
r = export_legacy_dbus_address(handle, pw->pw_uid, runtime_path);
if (r != PAM_SUCCESS)
return r;
+ } else if (getenv("XDG_RUNTIME_DIR")) {
+ _cleanup_free_ char *p = NULL;
+
+ /* Make sure that after running YaST2 or the xdg-su scripts
+ * the runtime directory is not clobbered. Even a normal su
+ * command without -l or with -m may clobber. */
+
+ if ((r = asprintf(&p, "/run/user/%lu", (unsigned long)pw->pw_uid)) < 0)
+ return PAM_BUF_ERR;
+
+ r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", p, 0);
+ if (r != PAM_SUCCESS) {
+ pam_syslog(handle, LOG_ERR, "Failed to set runtime dir.");
+ return r;
+ }
+
+ r = export_legacy_dbus_address(handle, pw->pw_uid, p);
+ if (r != PAM_SUCCESS)
+ return r;
}
if (!isempty(seat)) {

View File

@ -0,0 +1,26 @@
From e1562e145272efea60275ffe8e7edeb65224ab8d Mon Sep 17 00:00:00 2001
From: Thomas Blume <thomas.blume@suse.com>
Date: Tue, 25 Mar 2014 13:08:56 +0000
Subject: [PATCH] rc-local: fix ordering startup for /etc/init.d/boot.local
[tblume: fixes bnc#869142]
---
units/rc-local.service.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/units/rc-local.service.in b/units/rc-local.service.in
index 6fb0838cdb..768f720032 100644
--- a/units/rc-local.service.in
+++ b/units/rc-local.service.in
@@ -13,7 +13,7 @@
Description={{RC_LOCAL_PATH}} Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable={{RC_LOCAL_PATH}}
-After=network.target
+After=basic.target
[Service]
Type=forking
--
2.35.3

View File

@ -0,0 +1,57 @@
From 6eb24d1fcf8ea676bd0f0e32a9afda7431eafd77 Mon Sep 17 00:00:00 2001
From: Thomas Blume <Thomas.Blume@suse.com>
Date: Wed, 4 May 2016 17:40:04 +0200
Subject: [PATCH] sysv-generator: translate "Required-Start" into a "Wants"
dependency
'Required-Start:' used to be supported by insserv but this functionality was
dropped when insserv was rewritten into a compat perl wrapper (insserv-compat),
which happened when systemd was introduced in SUSE, I guess.
It's been decided to add back the support in systemd instead of insserv-compat,
see the comments in bsc#857204.
[tblume: Port of SLES12SP1 patch 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch]
[fbui: patch sysv-generator-test.py to take this SUSE's specifity into account]
[wfink: fixes bsc#857204]
---
src/sysv-generator/sysv-generator.c | 7 ++++++-
test/sysv-generator-test.py | 2 +-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c
index 4485e2e368..e0833a7179 100644
--- a/src/sysv-generator/sysv-generator.c
+++ b/src/sysv-generator/sysv-generator.c
@@ -412,8 +412,13 @@ static int handle_dependencies(SysvStub *s, unsigned line, const char *full_text
return log_oom();
r = strv_extend(&s->wants, m);
- } else
+ } else {
r = strv_extend(is_before ? &s->before : &s->after, m);
+
+ if (startswith_no_case(full_text, "Required-Start:"))
+ r = strv_extend(&s->wants, m);
+ }
+
if (r < 0)
return log_oom();
}
diff --git a/test/sysv-generator-test.py b/test/sysv-generator-test.py
index 24fafbaaa4..827d802a17 100755
--- a/test/sysv-generator-test.py
+++ b/test/sysv-generator-test.py
@@ -224,7 +224,7 @@ class SysvGeneratorTest(unittest.TestCase):
self.add_sysv('foo', {'Required-Start': '$named $portmap'})
s = self.run_generator()[1]['foo.service']
self.assertEqual(set(s.options('Unit')),
- set(['Documentation', 'SourcePath', 'Description', 'After']))
+ set(['Documentation', 'SourcePath', 'Description', 'After', 'Wants']))
self.assertEqual(s.get('Unit', 'After').split(), ['nss-lookup.target', 'rpcbind.target'])
def test_lsb_deps(self):
--
2.35.3

View File

@ -0,0 +1,59 @@
From 745ab2ac0f5424b0c04d9c38234bb9babcbd90ef Mon Sep 17 00:00:00 2001
From: Franck Bui <fbui@suse.com>
Date: Fri, 10 Jun 2016 15:19:57 +0200
Subject: [PATCH] pid1: handle console specificities/weirdness for s390 arch
The 3270 console on S/390 can do color but not the 3215 console.
Partial forward port of
0001-On_s390_con3270_disable_ANSI_colour_esc.patch from SLE12-SP1. A
bunch of the previous code has been dropped since some changes
imported from upsteam made them uneeded.
The remaining bits are probably hackish but at least they are now
minimal.
It was an attempt to address bnc#860937. And yes turning the console
color mode off by passing $TERM=dumb via the kernel command line would
have been much more easier and enough.
This is actually implemented by recent systemd. There's also another
command line option: systemd.log_color=off.
See also a short discussion which happened on @systemd-maintainers
whose $subject is "[PATCH] support conmode setting on command line".
[fbui: fixes bsc#860937]
---
src/basic/terminal-util.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/basic/terminal-util.c b/src/basic/terminal-util.c
index 3355b749cc..e96b053217 100644
--- a/src/basic/terminal-util.c
+++ b/src/basic/terminal-util.c
@@ -784,7 +784,20 @@ bool tty_is_vc_resolve(const char *tty) {
}
const char *default_term_for_tty(const char *tty) {
- return tty && tty_is_vc_resolve(tty) ? "linux" : "vt220";
+ if (tty && tty_is_vc_resolve(tty))
+ return "linux";
+
+#if defined (__s390__) || defined (__s390x__)
+ if (tty && tty_is_console(tty)) {
+ _cleanup_free_ char *mode = NULL;
+
+ /* Simply return "dumb" in case of OOM. */
+ (void) proc_cmdline_get_key("conmode", 0, &mode);
+ (void) proc_cmdline_value_missing("conmode", mode);
+ return streq_ptr(mode, "3270") ? "ibm327x" : "dumb";
+ }
+#endif
+ return "vt220";
}
int fd_columns(int fd) {
--
2.35.3

View File

@ -1,19 +0,0 @@
|
| Belongs to bnc#849071 that is do not install console-shell.service
| in any system target as this will cause automatic poweroff at boot.
|
---
units/console-shell.service.m4.in | 3 ---
1 file changed, 3 deletions(-)
Index: systemd-221/units/console-shell.service.m4.in
===================================================================
--- systemd-221.orig/units/console-shell.service.m4.in
+++ systemd-221/units/console-shell.service.m4.in
@@ -28,6 +28,3 @@ StandardError=inherit
KillMode=process
IgnoreSIGPIPE=no
SendSIGHUP=yes
-
-[Install]
-WantedBy=getty.target

View File

@ -1,75 +0,0 @@
From: werner@suse.de
Upstream: marked as openSUSE-specific fix originally, but may well
worth be to be sent upstream.
Original description:
(none)
Augmented description [jengelh@inai.de]:
Disable COW on journal files, as that is naturally leading to a lot
of unwanted fragmentation on btrfs.
No word on compression…
---
src/journal/journald-server.c | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
Index: systemd-227/src/journal/journald-server.c
===================================================================
--- systemd-227.orig/src/journal/journald-server.c
+++ systemd-227/src/journal/journald-server.c
@@ -24,6 +24,7 @@
#include <selinux/selinux.h>
#endif
#include <sys/ioctl.h>
+#include <linux/fs.h>
#include <sys/mman.h>
#include <sys/signalfd.h>
#include <sys/statvfs.h>
@@ -861,6 +862,39 @@ void server_driver_message(Server *s, sd
dispatch_message_real(s, iovec, n, ELEMENTSOF(iovec), &ucred, NULL, NULL, 0, NULL, LOG_INFO, 0);
}
+/*
+ * On journaling and/or compressing file systems, avoid doubling the efforts
+ * for the system, that is, set NOCOW and NOCOMP inode flags. Check for every
+ * single flag, as otherwise, some of the file systems may return EOPNOTSUPP on
+ * a single unkown flag (like Btrfs does).
+ *
+ * …but src/journal/journal-file.c already sets NOCOW too…⸘
+ */
+static void disable_cow(const char *dir, const Server *serv)
+{
+ unsigned long flags;
+ int fd = open(dir, O_DIRECTORY);
+
+ if (fd < 0)
+ return;
+ if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == 0) {
+ unsigned long old = flags;
+ if (!(flags & FS_NOATIME_FL) &&
+ ioctl(fd, FS_IOC_SETFLAGS, flags | FS_NOATIME_FL) == 0)
+ flags |= FS_NOATIME_FL;
+ if (!(flags & FS_NOCOW_FL) &&
+ ioctl(fd, FS_IOC_SETFLAGS, flags | FS_NOCOW_FL) == 0)
+ flags |= FS_NOCOW_FL;
+ if (!(flags & FS_NOCOMP_FL) && serv->compress) {
+ flags &= ~FS_COMPR_FL;
+ flags |= FS_NOCOMP_FL;
+ }
+ if (old != flags)
+ ioctl(fd, FS_IOC_SETFLAGS, flags);
+ }
+ close(fd);
+}
+
void server_dispatch_message(
Server *s,
struct iovec *iovec, unsigned n, unsigned m,
@@ -948,6 +982,7 @@ static int system_journal_open(Server *s
fn = strjoina("/var/log/journal/", SERVER_MACHINE_ID(s));
(void) mkdir(fn, 0755);
+ disable_cow(fn, s);
fn = strjoina(fn, "/system.journal");
r = journal_file_open_reliably(fn, O_RDWR|O_CREAT, 0640, s->compress, s->seal, &s->system_metrics, s->mmap, NULL, &s->system_journal);

View File

@ -1,272 +0,0 @@
---
shell-completion/bash/coredumpctl | 6 +++++-
shell-completion/bash/hostnamectl | 6 +++++-
shell-completion/bash/journalctl | 6 +++++-
shell-completion/bash/kernel-install | 13 ++++++++++++-
shell-completion/bash/localectl | 6 +++++-
shell-completion/bash/loginctl | 6 +++++-
shell-completion/bash/systemctl.in | 6 +++++-
shell-completion/bash/systemd-analyze | 6 +++++-
shell-completion/bash/systemd-run | 14 +++++++++++++-
shell-completion/bash/timedatectl | 6 +++++-
shell-completion/bash/udevadm | 6 +++++-
11 files changed, 70 insertions(+), 11 deletions(-)
Index: systemd-228/shell-completion/bash/coredumpctl
===================================================================
--- systemd-228.orig/shell-completion/bash/coredumpctl
+++ systemd-228/shell-completion/bash/coredumpctl
@@ -44,6 +44,10 @@ _coredumpctl() {
[DUMP]='dump gdb'
)
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
if __contains_word "$prev" '--output -o'; then
comps=$( compgen -A file -- "$cur" )
compopt -o filenames
@@ -82,4 +86,4 @@ _coredumpctl() {
return 0
}
-complete -F _coredumpctl coredumpctl
+complete -o default -o bashdefault -F _coredumpctl coredumpctl
Index: systemd-228/shell-completion/bash/hostnamectl
===================================================================
--- systemd-228.orig/shell-completion/bash/hostnamectl
+++ systemd-228/shell-completion/bash/hostnamectl
@@ -30,6 +30,10 @@ _hostnamectl() {
local OPTS='-h --help --version --transient --static --pretty
--no-ask-password -H --host --machine'
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
if [[ $cur = -* ]]; then
COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") )
return 0
@@ -61,4 +65,4 @@ _hostnamectl() {
return 0
}
-complete -F _hostnamectl hostnamectl
+complete -o default -o bashdefault -F _hostnamectl hostnamectl
Index: systemd-228/shell-completion/bash/journalctl
===================================================================
--- systemd-228.orig/shell-completion/bash/journalctl
+++ systemd-228/shell-completion/bash/journalctl
@@ -56,6 +56,10 @@ _journalctl() {
--root -M --machine'
)
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then
case $prev in
--boot|--this-boot|-b)
@@ -121,4 +125,4 @@ _journalctl() {
fi
}
-complete -F _journalctl journalctl
+complete -o default -o bashdefault -F _journalctl journalctl
Index: systemd-228/shell-completion/bash/kernel-install
===================================================================
--- systemd-228.orig/shell-completion/bash/kernel-install
+++ systemd-228/shell-completion/bash/kernel-install
@@ -18,11 +18,22 @@
# You should have received a copy of the GNU Lesser General Public License
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
+__contains_word () {
+ local w word=$1; shift
+ for w in "$@"; do
+ [[ $w = "$word" ]] && return
+ done
+}
+
_kernel_install() {
local comps
local MACHINE_ID
local cur=${COMP_WORDS[COMP_CWORD]}
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
case $COMP_CWORD in
1)
comps="add remove"
@@ -47,4 +58,4 @@ _kernel_install() {
return 0
}
-complete -F _kernel_install kernel-install
+complete -o default -o bashdefault -F _kernel_install kernel-install
Index: systemd-228/shell-completion/bash/localectl
===================================================================
--- systemd-228.orig/shell-completion/bash/localectl
+++ systemd-228/shell-completion/bash/localectl
@@ -36,6 +36,10 @@ _localectl() {
local OPTS='-h --help --version --no-convert --no-pager --no-ask-password
-H --host --machine'
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
if __contains_word "$prev" $OPTS; then
case $prev in
--host|-H)
@@ -89,4 +93,4 @@ _localectl() {
return 0
}
-complete -F _localectl localectl
+complete -o default -o bashdefault -F _localectl localectl
Index: systemd-228/shell-completion/bash/loginctl
===================================================================
--- systemd-228.orig/shell-completion/bash/loginctl
+++ systemd-228/shell-completion/bash/loginctl
@@ -38,6 +38,10 @@ _loginctl () {
[ARG]='--host -H --kill-who --property -p --signal -s --machine'
)
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
if __contains_word "$prev" ${OPTS[ARG]}; then
case $prev in
--signal|-s)
@@ -107,4 +111,4 @@ _loginctl () {
return 0
}
-complete -F _loginctl loginctl
+complete -o default -o bashdefault -F _loginctl loginctl
Index: systemd-228/shell-completion/bash/systemctl.in
===================================================================
--- systemd-228.orig/shell-completion/bash/systemctl.in
+++ systemd-228/shell-completion/bash/systemctl.in
@@ -104,6 +104,10 @@ _systemctl () {
--preset-mode -n --lines -o --output -M --machine'
)
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
if __contains_word "--user" ${COMP_WORDS[*]}; then
mode=--user
elif __contains_word "--global" ${COMP_WORDS[*]}; then
@@ -280,4 +284,4 @@ _systemctl () {
return 0
}
-complete -F _systemctl systemctl
+complete -o default -o bashdefault -F _systemctl systemctl
Index: systemd-228/shell-completion/bash/systemd-analyze
===================================================================
--- systemd-228.orig/shell-completion/bash/systemd-analyze
+++ systemd-228/shell-completion/bash/systemd-analyze
@@ -47,6 +47,10 @@ _systemd_analyze() {
[VERIFY]='verify'
)
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
_init_completion || return
for ((i=0; i < COMP_CWORD; i++)); do
@@ -114,4 +118,4 @@ _systemd_analyze() {
return 0
}
-complete -F _systemd_analyze systemd-analyze
+complete -o default -o bashdefault -F _systemd_analyze systemd-analyze
Index: systemd-228/shell-completion/bash/systemd-run
===================================================================
--- systemd-228.orig/shell-completion/bash/systemd-run
+++ systemd-228/shell-completion/bash/systemd-run
@@ -17,6 +17,13 @@
# You should have received a copy of the GNU Lesser General Public License
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
+__contains_word () {
+ local w word=$1; shift
+ for w in "$@"; do
+ [[ $w = "$word" ]] && return
+ done
+}
+
__systemctl() {
local mode=$1; shift 1
systemctl $mode --full --no-legend "$@"
@@ -40,6 +47,11 @@ _systemd_run() {
local mode=--system
local i
+
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
local opts_with_values=(
--unit --description --slice --service-type -H --host -M --machine -p --property --on-active
--on-boot --on-startup --on-unit-active --on-unit-inactive --on-calendar --timer-property
@@ -114,4 +126,4 @@ _systemd_run() {
return 0
}
-complete -F _systemd_run systemd-run
+complete -o default -o bashdefault -F _systemd_run systemd-run
Index: systemd-228/shell-completion/bash/timedatectl
===================================================================
--- systemd-228.orig/shell-completion/bash/timedatectl
+++ systemd-228/shell-completion/bash/timedatectl
@@ -30,6 +30,10 @@ _timedatectl() {
local OPTS='-h --help --version --adjust-system-clock --no-pager
--no-ask-password -H --host --machine'
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
if __contains_word "$prev" $OPTS; then
case $prev in
--host|-H)
@@ -73,4 +77,4 @@ _timedatectl() {
return 0
}
-complete -F _timedatectl timedatectl
+complete -o default -o bashdefault -F _timedatectl timedatectl
Index: systemd-228/shell-completion/bash/udevadm
===================================================================
--- systemd-228.orig/shell-completion/bash/udevadm
+++ systemd-228/shell-completion/bash/udevadm
@@ -36,6 +36,10 @@ _udevadm() {
local verbs=(info trigger settle control monitor hwdb test-builtin test)
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
for ((i=0; i < COMP_CWORD; i++)); do
if __contains_word "${COMP_WORDS[i]}" "${verbs[@]}" &&
! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then
@@ -94,4 +98,4 @@ _udevadm() {
return 0
}
-complete -F _udevadm udevadm
+complete -o default -o bashdefault -F _udevadm udevadm

View File

@ -1,24 +0,0 @@
From: Robert Milasan <rmilasan@suse.com>
Date: Wed, 27 Jun 2012 08:55:59 +0000
Subject: rules create by id scsi links for ATA devices
Re-enable creation of by-id scsi links for ATA devices. (bnc#769002)
---
rules/60-persistent-storage.rules | 4 ++++
1 file changed, 4 insertions(+)
Index: systemd-221/rules/60-persistent-storage.rules
===================================================================
--- systemd-221.orig/rules/60-persistent-storage.rules
+++ systemd-221/rules/60-persistent-storage.rules
@@ -36,6 +36,10 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk",
KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
+# scsi compat links for ATA devices
+KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}"
+KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n"
+
# FireWire
KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}"
KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n"

View File

@ -1,22 +0,0 @@
From: Robert Milasan <rmilasan@suse.com>
Date: Mon, 6 Aug 2012 13:35:34 +0000
Subject: udev netlink null rules
udevd race for netlink events (bnc#774646)
---
src/udev/udevd.c | 2 ++
1 file changed, 2 insertions(+)
Index: systemd-221/src/udev/udevd.c
===================================================================
--- systemd-221.orig/src/udev/udevd.c
+++ systemd-221/src/udev/udevd.c
@@ -917,6 +917,8 @@ static int on_uevent(sd_event_source *s,
dev = udev_monitor_receive_device(manager->monitor);
if (dev) {
udev_device_ensure_usec_initialized(dev, NULL);
+ if (manager->rules == NULL)
+ manager->rules = udev_rules_new(manager->udev, arg_resolve_names);
r = event_queue_insert(manager, dev);
if (r < 0)
udev_device_unref(dev);

View File

@ -1,24 +0,0 @@
From: Robert Milasan <rmilasan@suse.com>
Date: Tue, 12 Feb 2013 09:16:23 +0000
Subject: create default links for primary cd_dvd drive
cdrom_id: created links for the default cd/dvd drive (bnc#783054).
---
rules/60-cdrom_id.rules | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
Index: systemd-221/rules/60-cdrom_id.rules
===================================================================
--- systemd-221.orig/rules/60-cdrom_id.rules
+++ systemd-221/rules/60-cdrom_id.rules
@@ -20,6 +20,9 @@ IMPORT{program}="cdrom_id --lock-media $
# stale mounts after ejecting
ENV{DISK_MEDIA_CHANGE}=="?*", ENV{ID_CDROM_MEDIA}!="?*", ENV{SYSTEMD_READY}="0"
-KERNEL=="sr0", SYMLINK+="cdrom", OPTIONS+="link_priority=-100"
+KERNEL=="sr0", ENV{ID_CDROM}=="1", SYMLINK+="cdrom", OPTIONS+="link_priority=-100"
+KERNEL=="sr0", ENV{ID_CDROM_CD_RW}=="1", SYMLINK+="cdrw", OPTIONS+="link_priority=-100"
+KERNEL=="sr0", ENV{ID_CDROM_DVD}=="1", SYMLINK+="dvd", OPTIONS+="link_priority=-100"
+KERNEL=="sr0", ENV{ID_CDROM_DVD_RW}=="1", SYMLINK+="dvdrw", OPTIONS+="link_priority=-100"
LABEL="cdrom_end"

View File

@ -1,77 +0,0 @@
From: Robert Milasan <rmilasan@suse.com>
Cc: Werner Fink <werner@suse.de>
Subject: udev always rename network
Date: Thu, 28 Mar 2013 09:24:43 +0000
udev: ensure that the network interfaces are renamed even if they exist (bnc#809843).
Date: Tue, 4 Mar 2014 10:29:21 +0000
Port the patch of Robert to systemd v210 and test it out.
---
src/udev/udev-event.c | 41 +++++++++++++++++++++++++++++++++++++----
1 file changed, 37 insertions(+), 4 deletions(-)
Index: systemd-221/src/udev/udev-event.c
===================================================================
--- systemd-221.orig/src/udev/udev-event.c
+++ systemd-221/src/udev/udev-event.c
@@ -796,20 +796,53 @@ out:
static int rename_netif(struct udev_event *event) {
struct udev_device *dev = event->dev;
char name[IFNAMSIZ];
+ char interim[IFNAMSIZ], *ptr = &interim[0];
const char *oldname;
- int r;
+ int r, loop;
oldname = udev_device_get_sysname(dev);
strscpy(name, IFNAMSIZ, event->name);
r = rtnl_set_link_name(&event->rtnl, udev_device_get_ifindex(dev), name);
- if (r < 0)
+ if (r == 0) {
+ log_info("renamed network interface %s to %s\n", oldname, name);
+ return r;
+ } else if (r != -EEXIST) {
return log_error_errno(r, "Error changing net interface name '%s' to '%s': %m", oldname, name);
+ }
- log_debug("renamed network interface '%s' to '%s'", oldname, name);
+ /* free our own name, another process may wait for us */
+ strpcpyf(&ptr, IFNAMSIZ, "rename%u", udev_device_get_ifindex(dev));
- return 0;
+ r = rtnl_set_link_name(&event->rtnl, udev_device_get_ifindex(dev), interim);
+ if (r < 0) {
+ log_error("error changing net interface name %s to %s: %s",
+ oldname, interim, strerror(-r));
+ return r;
+ }
+
+ /* log temporary name */
+ log_info("renamed network interface %s to %s\n", oldname, interim);
+
+ loop = 90 * 20;
+ while (loop--) {
+ const struct timespec duration = { 0, 1000 * 1000 * 1000 / 20 };
+ nanosleep(&duration, NULL);
+
+ r = rtnl_set_link_name(&event->rtnl, udev_device_get_ifindex(dev), name);
+ if (r == 0) {
+ log_info("renamed network interface %s to %s\n", interim, name);
+ break;
+ }
+
+ if (r != -EEXIST) {
+ log_error("error changing net interface name %s to %s: %s",
+ interim, name, strerror(-r));
+ break;
+ }
+ }
+ return r;
}
void udev_event_execute_rules(struct udev_event *event,

View File

@ -1,37 +0,0 @@
---
Makefile.am | 4 ++++
rules/80-hotplug-cpu-mem.rules | 12 ++++++++++++
2 files changed, 16 insertions(+)
Index: systemd-221/Makefile.am
===================================================================
--- systemd-221.orig/Makefile.am
+++ systemd-221/Makefile.am
@@ -3841,6 +3841,10 @@ dist_udevrules_DATA += \
rules/73-seat-numlock.rules
# ------------------------------------------------------------------------------
+dist_udevrules_DATA += \
+ rules/80-hotplug-cpu-mem.rules
+
+# ------------------------------------------------------------------------------
mtd_probe_SOURCES = \
src/udev/mtd_probe/mtd_probe.c \
src/udev/mtd_probe/mtd_probe.h \
Index: systemd-221/rules/80-hotplug-cpu-mem.rules
===================================================================
--- /dev/null
+++ systemd-221/rules/80-hotplug-cpu-mem.rules
@@ -0,0 +1,12 @@
+# do not edit this file, it will be overwritten on update
+
+# Hotplug physical CPU
+SUBSYSTEM=="cpu", ACTION=="add", TEST=="online", ATTR{online}=="0", \
+ ATTR{online}="1"
+
+# Hotplug physical memory
+SUBSYSTEM=="memory", ACTION=="add", TEST=="state", ATTR{state}=="offline", \
+ ATTR{state}="online", TAG+="tmpfs"
+
+#
+TAG=="tmpfs", RUN+="/usr/lib/udev/remount-tmpfs"

View File

@ -1,24 +0,0 @@
From e26a5bb50b8aa741c5b2e57749d576c488e7ab32 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Thu, 10 Apr 2014 11:10:41 +0200
Subject: [PATCH 1/2] 64-btrfs.rules: skip btrfs check if devices are not ready
If any devices are marked with 'SYSTEMD_READY=0' then
we shouldn't run any btrfs check on them.
---
rules/64-btrfs.rules | 1 +
1 file changed, 1 insertion(+)
Index: systemd-221/rules/64-btrfs.rules
===================================================================
--- systemd-221.orig/rules/64-btrfs.rules
+++ systemd-221/rules/64-btrfs.rules
@@ -3,6 +3,7 @@
SUBSYSTEM!="block", GOTO="btrfs_end"
ACTION=="remove", GOTO="btrfs_end"
ENV{ID_FS_TYPE}!="btrfs", GOTO="btrfs_end"
+ENV{SYSTEMD_READY}=="0", GOTO="btrfs_end"
# let the kernel know about this btrfs filesystem, and check if it is complete
IMPORT{builtin}="btrfs ready $devnode"

View File

@ -1,40 +0,0 @@
From f9e1ee09fadbd4fb146d4f7bb45a6212773dff63 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Thu, 10 Apr 2014 11:14:20 +0200
Subject: [PATCH 2/2] Skip persistent device link creation on multipath device
paths
When a device is marked as a multipath device path by setting
DM_MULTIPATH_DEVICE_PATH="1" udev should not create any
persistent symlinks to that device.
Otherwise systemd will get confused about which device to use.
---
rules/60-persistent-storage.rules | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
Index: systemd-221/rules/60-persistent-storage.rules
===================================================================
--- systemd-221.orig/rules/60-persistent-storage.rules
+++ systemd-221/rules/60-persistent-storage.rules
@@ -33,8 +33,8 @@ KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!
# SCSI devices
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $devnode", ENV{ID_BUS}="scsi"
KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $devnode", ENV{ID_BUS}="cciss"
-KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
-KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
+KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{DM_MULTIPATH_DEVICE_PATH}!="1", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
+KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{DM_MULTIPATH_DEVICE_PATH}!="1", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
# scsi compat links for ATA devices
KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}"
@@ -66,6 +66,9 @@ KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!=
KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="", \
IMPORT{builtin}="blkid --noraid"
+# Skip blkid on multipath device paths
+ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="persistent_storage_end"
+
# probe filesystem metadata of disks
KERNEL!="sr*", IMPORT{builtin}="blkid"

View File

@ -1,29 +0,0 @@
From c9af1be90db5a29ac86605c67bc2bb4bc5780520 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Thu, 12 Jun 2014 12:25:03 +0200
Subject: [PATCH] 99-systemd.rules: Ignore devices with 'SYSTEMD_READY=0'
Whenever a rule sets 'SYSTEMD_READY=0' it tries to indicate
that systemd should ignore this device. So we should not
set the 'systemd' tag in these cases; otherwise systemd
will pick up the device.
References: bnc#881942
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
rules/99-systemd.rules.in | 1 +
1 file changed, 1 insertion(+)
Index: systemd-221/rules/99-systemd.rules.in
===================================================================
--- systemd-221.orig/rules/99-systemd.rules.in
+++ systemd-221/rules/99-systemd.rules.in
@@ -10,6 +10,7 @@ ACTION=="remove", GOTO="systemd_end"
SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty*", TAG+="systemd"
KERNEL=="vport*", TAG+="systemd"
+SUBSYSTEM=="block", ENV{SYSTEMD_READY}=="0", GOTO="systemd_end"
SUBSYSTEM=="block", TAG+="systemd"
SUBSYSTEM=="block", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0"

View File

@ -1,20 +0,0 @@
Exclude cd/dvd as well (bnc#882714)
---
src/udev/udevd.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: systemd-221/src/udev/udevd.c
===================================================================
--- systemd-221.orig/src/udev/udevd.c
+++ systemd-221/src/udev/udevd.c
@@ -1022,7 +1022,8 @@ static int synthesize_change(struct udev
if (streq_ptr("block", udev_device_get_subsystem(dev)) &&
streq_ptr("disk", udev_device_get_devtype(dev)) &&
- !startswith(udev_device_get_sysname(dev), "dm-")) {
+ !startswith(udev_device_get_sysname(dev), "dm-") &&
+ !startswith(udev_device_get_sysname(dev), "sr")) {
bool part_table_read = false;
bool has_partitions = false;
int fd;

View File

@ -1,45 +0,0 @@
From: Jeff Mahoney <jeffm@suse.com>
Subject: udev: use device mapper target name for btrfs device ready
References: bnc#888215
When udev gets a change event for a block device, it calls the builtin
btrfs helper to scan it for a btrfs file system. If the file system was
mounted using a device mapper node, mount(8) will have looked up the
device mapper table and used the /dev/mapper/<name> node for mount.
If something like partprobe runs, and then causes change events to be
handled, the btrfs ready event is handled using /dev/dm-N instead of
the device mapper named node. Btrfs caches the last name passed to
the scanning ioctl and uses that to report the device name for
things like /proc/mounts.
So, after running partprobe we go from:
/dev/mapper/test-test on /mnt type btrfs (rw,relatime,space_cache)
... to ...
/dev/dm-0 on /mnt type btrfs (rw,relatime,space_cache)
This doesn't apply only to LVM device, but multipath as well.
If the device is a DM device, udev will have already cached the table name
from sysfs and we can use that to pass /dev/mapper/<name> to the builtin
so that the correct name is used.
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---
rules/64-btrfs.rules | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: systemd-221/rules/64-btrfs.rules
===================================================================
--- systemd-221.orig/rules/64-btrfs.rules
+++ systemd-221/rules/64-btrfs.rules
@@ -6,7 +6,8 @@ ENV{ID_FS_TYPE}!="btrfs", GOTO="btrfs_en
ENV{SYSTEMD_READY}=="0", GOTO="btrfs_end"
# let the kernel know about this btrfs filesystem, and check if it is complete
-IMPORT{builtin}="btrfs ready $devnode"
+ENV{DM_NAME}=="", IMPORT{builtin}="btrfs ready $devnode"
+ENV{DM_NAME}=="?*", IMPORT{builtin}="btrfs ready /dev/mapper/$env{DM_NAME}"
# mark the device as not ready to be used by the system
ENV{ID_BTRFS_READY}=="0", ENV{SYSTEMD_READY}="0"

View File

@ -1,15 +0,0 @@
---
rules/50-udev-default.rules | 2 ++
1 file changed, 2 insertions(+)
Index: systemd-221/rules/50-udev-default.rules
===================================================================
--- systemd-221.orig/rules/50-udev-default.rules
+++ systemd-221/rules/50-udev-default.rules
@@ -74,4 +74,6 @@ KERNEL=="tun", MODE="0666", OPTIONS+="st
KERNEL=="fuse", MODE="0666", OPTIONS+="static_node=fuse"
+KERNEL=="genwqe*", MODE="0666"
+
LABEL="default_end"

View File

@ -1,175 +0,0 @@
From: Jeff Mahoney <jeffm@suse.com>
Subject: udev: add option to generate old 'buggy' serials
References: bnc#886852
Prior to udev 184, scsi_id would truncate the last character of the model
string when generating the ID_SERIAL value. If a system was installed
prior to that fix being available in udev, there may be configuration
information that refers to the truncated link.
This patch adds a --truncated-serial option and a udev rule will created
the old truncated links.
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---
rules/60-persistent-storage.rules | 4 ++++
src/udev/scsi_id/scsi_id.c | 15 ++++++++++++++-
src/udev/scsi_id/scsi_id.h | 1 +
src/udev/scsi_id/scsi_serial.c | 19 +++++++++++++------
4 files changed, 32 insertions(+), 7 deletions(-)
Index: systemd-221/rules/60-persistent-storage.rules
===================================================================
--- systemd-221.orig/rules/60-persistent-storage.rules
+++ systemd-221/rules/60-persistent-storage.rules
@@ -40,6 +40,10 @@ KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="par
KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}"
KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n"
+# scsi compat links for ATA devices (for compatibility with udev < 184)
+KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --truncated-serial --whitelisted --replace-whitespace -p0x80 -d$tempnode", RESULT=="?*", ENV{ID_SCSI_COMPAT_TRUNCATED}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT_TRUNCATED}"
+KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT_TRUNCATED}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT_TRUNCATED}-part%n"
+
# FireWire
KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}"
KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n"
Index: systemd-221/src/udev/scsi_id/scsi_id.c
===================================================================
--- systemd-221.orig/src/udev/scsi_id/scsi_id.c
+++ systemd-221/src/udev/scsi_id/scsi_id.c
@@ -43,6 +43,7 @@ static const struct option options[] = {
{ "replace-whitespace", no_argument, NULL, 'u' },
{ "sg-version", required_argument, NULL, 's' },
{ "verbose", no_argument, NULL, 'v' },
+ { "truncated-serial", no_argument, NULL, '9' },
{ "version", no_argument, NULL, 'V' }, /* don't advertise -V */
{ "export", no_argument, NULL, 'x' },
{ "help", no_argument, NULL, 'h' },
@@ -54,6 +55,7 @@ static bool dev_specified = false;
static char config_file[MAX_PATH_LEN] = "/etc/scsi_id.config";
static enum page_code default_page_code = PAGE_UNSPECIFIED;
static int sg_version = 4;
+static bool compat_truncated = false;
static bool reformat_serial = false;
static bool export = false;
static char vendor_str[64];
@@ -316,6 +318,7 @@ static void help(void) {
" -g --whitelisted Treat device as whitelisted\n"
" -u --replace-whitespace Replace all whitespace by underscores\n"
" -v --verbose Verbose logging\n"
+ " --truncated-serial truncated serial for compatibility with systems configured with by-id links created by udev < 184\n"
" -x --export Print values as environment keys\n"
, program_invocation_short_name);
@@ -387,6 +390,10 @@ static int set_options(struct udev *udev
log_open();
break;
+ case '9':
+ compat_truncated = true;
+ break;
+
case 'V':
printf("%s\n", VERSION);
exit(0);
@@ -528,6 +535,9 @@ static int scsi_id(struct udev *udev, ch
util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str));
util_replace_chars(serial_str, NULL);
printf("ID_SERIAL=%s\n", serial_str);
+ util_replace_whitespace(dev_scsi.serial_compat, serial_str, sizeof(serial_str));
+ util_replace_chars(serial_str, NULL);
+ printf("ID_SERIAL_COMPAT=%s\n", serial_str);
util_replace_whitespace(dev_scsi.serial_short, serial_str, sizeof(serial_str));
util_replace_chars(serial_str, NULL);
printf("ID_SERIAL_SHORT=%s\n", serial_str);
@@ -558,7 +568,10 @@ static int scsi_id(struct udev *udev, ch
if (reformat_serial) {
char serial_str[MAX_SERIAL_LEN];
- util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str));
+ if (compat_truncated)
+ util_replace_whitespace(dev_scsi.serial_compat, serial_str, sizeof(serial_str));
+ else
+ util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str));
util_replace_chars(serial_str, NULL);
printf("%s\n", serial_str);
goto out;
Index: systemd-221/src/udev/scsi_id/scsi_id.h
===================================================================
--- systemd-221.orig/src/udev/scsi_id/scsi_id.h
+++ systemd-221/src/udev/scsi_id/scsi_id.h
@@ -45,6 +45,7 @@ struct scsi_id_device {
char kernel[64];
char serial[MAX_SERIAL_LEN];
char serial_short[MAX_SERIAL_LEN];
+ char serial_compat[MAX_SERIAL_LEN];
int use_sg;
/* Always from page 0x80 e.g. 'B3G1P8500RWT' - may not be unique */
Index: systemd-221/src/udev/scsi_id/scsi_serial.c
===================================================================
--- systemd-221.orig/src/udev/scsi_id/scsi_serial.c
+++ systemd-221/src/udev/scsi_id/scsi_serial.c
@@ -97,7 +97,8 @@ static const char hex_str[]="0123456789a
static int do_scsi_page80_inquiry(struct udev *udev,
struct scsi_id_device *dev_scsi, int fd,
- char *serial, char *serial_short, int max_len);
+ char *serial, char *serial_short,
+ char *serial_compat, int max_len);
static int sg_err_category_new(struct udev *udev,
int scsi_status, int msg_status, int
@@ -620,7 +621,7 @@ static int do_scsi_page83_inquiry(struct
unsigned char page_83[SCSI_INQ_BUFF_LEN];
/* also pick up the page 80 serial number */
- do_scsi_page80_inquiry(udev, dev_scsi, fd, NULL, unit_serial_number, MAX_SERIAL_LEN);
+ do_scsi_page80_inquiry(udev, dev_scsi, fd, NULL, unit_serial_number, NULL, MAX_SERIAL_LEN);
memzero(page_83, SCSI_INQ_BUFF_LEN);
retval = scsi_inquiry(udev, dev_scsi, fd, 1, PAGE_83, page_83,
@@ -765,7 +766,8 @@ static int do_scsi_page83_prespc3_inquir
/* Get unit serial number VPD page */
static int do_scsi_page80_inquiry(struct udev *udev,
struct scsi_id_device *dev_scsi, int fd,
- char *serial, char *serial_short, int max_len)
+ char *serial, char *serial_short,
+ char *serial_compat, int max_len)
{
int retval;
int ser_ind;
@@ -799,9 +801,14 @@ static int do_scsi_page80_inquiry(struct
ser_ind = prepend_vendor_model(udev, dev_scsi, &serial[1]);
if (ser_ind < 0)
return 1;
+ if (serial_compat)
+ strcpy(serial_compat, serial);
ser_ind++; /* for the leading 'S' */
- for (i = 4; i < len + 4; i++, ser_ind++)
+ for (i = 4; i < len + 4; i++, ser_ind++) {
serial[ser_ind] = buf[i];
+ if (serial_compat)
+ serial_compat[ser_ind - 1] = buf[i];
+ }
}
if (serial_short != NULL) {
memcpy(serial_short, &buf[4], len);
@@ -877,7 +884,7 @@ int scsi_get_serial(struct udev *udev,
return 1;
if (page_code == PAGE_80) {
- if (do_scsi_page80_inquiry(udev, dev_scsi, fd, dev_scsi->serial, dev_scsi->serial_short, len)) {
+ if (do_scsi_page80_inquiry(udev, dev_scsi, fd, dev_scsi->serial, dev_scsi->serial_short, dev_scsi->serial_compat, len)) {
retval = 1;
goto completed;
} else {
@@ -951,7 +958,7 @@ int scsi_get_serial(struct udev *udev,
for (ind = 4; ind <= page0[3] + 3; ind++)
if (page0[ind] == PAGE_80)
if (!do_scsi_page80_inquiry(udev, dev_scsi, fd,
- dev_scsi->serial, dev_scsi->serial_short, len)) {
+ dev_scsi->serial, dev_scsi->serial_short, dev_scsi->serial_compat, len)) {
/*
* Success
*/

View File

@ -1,33 +0,0 @@
---
Makefile.am | 1 +
rules/60-ssd-scheduler.rules | 11 +++++++++++
2 files changed, 12 insertions(+)
Index: systemd-221/Makefile.am
===================================================================
--- systemd-221.orig/Makefile.am
+++ systemd-221/Makefile.am
@@ -3501,6 +3501,7 @@ dist_udevrules_DATA += \
rules/60-persistent-input.rules \
rules/60-persistent-alsa.rules \
rules/60-persistent-storage.rules \
+ rules/60-ssd-scheduler.rules \
rules/60-serial.rules \
rules/64-btrfs.rules \
rules/70-mouse.rules \
Index: systemd-221/rules/60-ssd-scheduler.rules
===================================================================
--- /dev/null
+++ systemd-221/rules/60-ssd-scheduler.rules
@@ -0,0 +1,11 @@
+# do not edit this file, it will be overwritten on update
+
+ACTION!="add", GOTO="ssd_scheduler_end"
+SUBSYSTEM!="block", GOTO="ssd_scheduler_end"
+
+IMPORT{cmdline}="elevator"
+ENV{elevator}=="*?", GOTO="ssd_scheduler_end"
+
+KERNEL=="sd*[!0-9]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"
+
+LABEL="ssd_scheduler_end"

View File

@ -1,108 +0,0 @@
---
Makefile.am | 19 +++++
src/udev/rootsymlink_generator/rootsymlink_generator.c | 57 +++++++++++++++++
units/systemd-udev-root-symlink.service | 10 ++
units/systemd-udev-root-symlink.service.in | 10 ++
4 files changed, 96 insertions(+)
--- systemd-222.orig/Makefile.am
+++ systemd-222/Makefile.am
@@ -3759,6 +3759,25 @@ EXTRA_DIST += \
test/mocks/fsck
# ------------------------------------------------------------------------------
+rootsymlink_generator_SOURCES = \
+ src/udev/rootsymlink_generator/rootsymlink_generator.c
+
+rootsymlink_generator_CFLAGS = \
+ $(AM_CFLAGS)
+
+udevlibexec_PROGRAMS += \
+ rootsymlink-generator
+
+nodist_systemunit_DATA += \
+ units/systemd-udev-root-symlink.service
+
+SYSINIT_TARGET_WANTS += \
+ systemd-udev-root-symlink.service
+
+EXTRA_DIST += \
+ units/systemd-udev-root-symlink.service.in
+
+# ------------------------------------------------------------------------------
ata_id_SOURCES = \
src/udev/ata_id/ata_id.c
--- /dev/null
+++ systemd-222/src/udev/rootsymlink_generator/rootsymlink_generator.c
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2014-2015 Robert Milasan <rmilasan@suse.com>
+ *
+ * This program 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#define BUFFER_SIZE 128
+
+#define _ROOTDEV_ "/"
+#define _PATH_ "/run/udev/rules.d"
+#define _FILE_ "10-root-symlink.rules"
+
+int main(void)
+{
+ char filename[BUFFER_SIZE], buf[BUFFER_SIZE];
+ struct stat statbuf;
+ int fd;
+
+ if (stat(_ROOTDEV_, &statbuf) < 0)
+ return 1;
+ if (major(statbuf.st_dev) <= 0)
+ return 0;
+ if (mkdir(_PATH_, 0755) < 0 && errno != EEXIST)
+ return errno;
+ snprintf(filename, BUFFER_SIZE, "%s/%s", _PATH_, _FILE_);
+ fd = open(filename, O_CREAT | O_WRONLY | O_TRUNC, 0644);
+ if (fd < 0)
+ return errno;
+ snprintf(buf, BUFFER_SIZE,
+ "ACTION==\"add|change\", SUBSYSTEM==\"block\", "
+ "ENV{MAJOR}==\"%d\", ENV{MINOR}==\"%d\", SYMLINK+=\"root\"\n",
+ major(statbuf.st_dev), minor(statbuf.st_dev));
+ if (write(fd, buf, strlen(buf)) < 0)
+ return errno;
+ if (close(fd) < 0)
+ return errno;
+ return 0;
+}
--- /dev/null
+++ systemd-222/units/systemd-udev-root-symlink.service.in
@@ -0,0 +1,10 @@
+[Unit]
+Description=Rule generator for /dev/root symlink
+Before=systemd-udevd.service
+DefaultDependencies=no
+ConditionPathIsReadWrite=/run/udev
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=@udevlibexecdir@/rootsymlink-generator

View File

@ -1,26 +0,0 @@
---
src/udev/udevd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: systemd-227/src/udev/udevd.c
===================================================================
--- systemd-227.orig/src/udev/udevd.c
+++ systemd-227/src/udev/udevd.c
@@ -568,7 +568,7 @@ static void event_run(Manager *manager,
if (hashmap_size(manager->workers) >= arg_children_max) {
if (arg_children_max > 1)
- log_debug("maximum number (%i) of children reached", hashmap_size(manager->workers));
+ log_error("maximum number (%i) of children reached", hashmap_size(manager->workers));
return;
}
@@ -1672,7 +1672,7 @@ int main(int argc, char *argv[]) {
arg_children_max = 8;
if (sched_getaffinity(0, sizeof(cpu_set), &cpu_set) == 0)
- arg_children_max += CPU_COUNT(&cpu_set) * 2;
+ arg_children_max += CPU_COUNT(&cpu_set) * 64;
log_debug("set children_max to %u", arg_children_max);
}

View File

@ -1,14 +0,0 @@
---
units/systemd-networkd.service.m4.in | 1 +
1 file changed, 1 insertion(+)
Index: systemd-221/units/systemd-networkd.service.m4.in
===================================================================
--- systemd-221.orig/units/systemd-networkd.service.m4.in
+++ systemd-221/units/systemd-networkd.service.m4.in
@@ -34,4 +34,5 @@ WatchdogSec=1min
[Install]
WantedBy=multi-user.target
+Alias=network.service
Also=systemd-networkd.socket

View File

@ -0,0 +1,37 @@
From d624ceb7f2e6e286cf876f2ff9bf90532166c7f9 Mon Sep 17 00:00:00 2001
From: Franck Bui <fbui@suse.com>
Date: Fri, 12 Jan 2024 10:54:57 +0100
Subject: [PATCH 5001/5002] Revert "udev: update devlink with the newer device
node even when priority is equivalent"
This reverts commit 277cb24ffb7a520f640eb36d11340f11bf0c7c4f.
---
src/udev/udev-node.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/udev/udev-node.c b/src/udev/udev-node.c
index e12c26ce5a..6ba38087dc 100644
--- a/src/udev/udev-node.c
+++ b/src/udev/udev-node.c
@@ -467,13 +467,13 @@ static int link_update(sd_device *dev, const char *slink, bool add) {
/* The devlink priority is downgraded. Another device may have a higher
* priority now. Let's find the device node with the highest priority. */
} else {
- if (current_prio > prio)
- /* The devlink with a higher priority already exists and is owned by
- * another device. Hence, it is not necessary to recreate it. */
+ if (current_prio >= prio)
+ /* The devlink with equal or higher priority already exists and is
+ * owned by another device. Hence, it is not necessary to recreate it. */
return 0;
- /* This device has the equal or a higher priority than the current. Let's
- * create the devlink to our device node. */
+ /* This device has a higher priority than the current. Let's create the
+ * devlink to our device node. */
return node_symlink(dev, NULL, slink);
}
--
2.35.3

View File

@ -0,0 +1,36 @@
From 1861e68a986c39cfec3c7fe8a348d331d93800d7 Mon Sep 17 00:00:00 2001
From: Franck Bui <fbui@suse.com>
Date: Fri, 12 Jan 2024 10:55:17 +0100
Subject: [PATCH 5002/5002] Revert "udev: revert workarounds for issues caused
by the devlink creation optimization"
This reverts commit b8fa62589271a0a7552c6eb02e6beac3ca759ba7.
---
rules.d/60-persistent-storage.rules.in | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/rules.d/60-persistent-storage.rules.in b/rules.d/60-persistent-storage.rules.in
index 6787430208..39a6555045 100644
--- a/rules.d/60-persistent-storage.rules.in
+++ b/rules.d/60-persistent-storage.rules.in
@@ -134,6 +134,17 @@ KERNEL!="sr*|mmcblk[0-9]boot[0-9]", IMPORT{builtin}="blkid"
LABEL="persistent_storage_blkid_probe_end"
{% endif %}
+# Decrease devlink priority for whole disk of ISO hybrid images, and make the
+# priority for partitions in the image relatively higher. This is for the case
+# that a disk and one of its partition have the same label or so.
+# See issue #28468.
+ENV{ID_FS_TYPE}=="iso9660", ENV{DEVTYPE}=="disk", OPTIONS+="link_priority=-10"
+
+# Decrease devlink priority for encrypted partitions, and make the priority for
+# decrypted DM devices relatively higher. This is for the case that an encrypted
+# partition and its decrypted DM device have the same label.
+ENV{ID_FS_USAGE}=="crypto", OPTIONS+="link_priority=-10"
+
# by-label/by-uuid links (filesystem metadata)
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
--
2.35.3

View File

@ -0,0 +1,53 @@
From: Michal Koutný <mkoutny@suse.com>
Date: Wed, 24 Jul 2024 14:20:17 +0200
Subject: Disable session freeze
Freezing of user.slice is not reliable and it breaks regular suspend/resume
operations for users [1].
Disable the partial (user.slice) freezing (rely on kernel freezing of every
task upon suspend) since the benefit of user.slice freezing does not outweight
the breakage caused by cgroup freezing implementation.
[1] https://github.com/systemd/systemd/issues/33083
---
src/home/homework.c | 7 ++++---
src/sleep/sleep.c | 8 +++++---
2 files changed, 9 insertions(+), 6 deletions(-)
--- a/src/sleep/sleep.c
+++ b/src/sleep/sleep.c
@@ -603,12 +603,14 @@ static int run(int argc, char *argv[]) {
r = getenv_bool("SYSTEMD_SLEEP_FREEZE_USER_SESSIONS");
if (r < 0 && r != -ENXIO)
log_warning_errno(r, "Cannot parse value of $SYSTEMD_SLEEP_FREEZE_USER_SESSIONS, ignoring.");
+ if (r == -ENXIO)
+ r = 0; /* Do not freeze by default unless requested */
if (r != 0)
(void) unit_freezer_new_freeze(SPECIAL_USER_SLICE, &user_slice_freezer);
else
- log_notice("User sessions remain unfrozen on explicit request ($SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=0).\n"
- "This is not recommended, and might result in unexpected behavior, particularly\n"
- "in suspend-then-hibernate operations or setups with encrypted home directories.");
+ log_notice("User sessions remain unfrozen (add $SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=1 to override),\n"
+ "relying on kernel to perform the freeze.\n"
+ "This is a temporary downstream workaround for https://github.com/systemd/systemd/issues/33083.");
switch (arg_operation) {
--- a/src/home/homework.c
+++ b/src/home/homework.c
@@ -1879,10 +1879,11 @@ static int user_session_freezer(uid_t ui
r = getenv_bool("SYSTEMD_HOME_LOCK_FREEZE_SESSION");
if (r < 0 && r != -ENXIO)
log_warning_errno(r, "Cannot parse value of $SYSTEMD_HOME_LOCK_FREEZE_SESSION, ignoring: %m");
- else if (r == 0) {
+ else if (r == 0 || r == -ENXIO) { /* Do not freeze by default unless requested */
if (freeze_now)
- log_notice("Session remains unfrozen on explicit request ($SYSTEMD_HOME_LOCK_FREEZE_SESSION=0).\n"
- "This is not recommended, and might result in unexpected behavior including data loss!");
+ log_notice("Session remains unfrozen (add $SYSTEMD_HOME_LOCK_FREEZE_SESSION=1 to override).\n"
+ "This is a temporary downstream workaround for https://github.com/systemd/systemd/issues/33083.\n"
+ "Home locking is thus experimental and might result in unexpected behavior including data loss!");
*ret = NULL;
return 0;

View File

@ -0,0 +1,156 @@
From 2679d38fd571efd4073b8ee472e967b0add4c4b8 Mon Sep 17 00:00:00 2001
From: Franck Bui <fbui@suse.com>
Date: Tue, 3 Dec 2024 16:32:42 +0100
Subject: [PATCH 1/1] Revert "boot: Make initrd_prepare() semantically
equivalent to combine_initrds()"
This reverts commit f8fa4222c9ac3e74e91c64e25e9532c99559cf99.
[fbui: adjust context]
---
src/boot/efi/boot.c | 69 +++++++++++----------------------------------
1 file changed, 16 insertions(+), 53 deletions(-)
diff --git a/src/boot/efi/boot.c b/src/boot/efi/boot.c
index 8d08fe01f7..f94b59db59 100644
--- a/src/boot/efi/boot.c
+++ b/src/boot/efi/boot.c
@@ -11,7 +11,6 @@
#include "initrd.h"
#include "linux.h"
#include "measure.h"
-#include "memory-util-fundamental.h"
#include "part-discovery.h"
#include "pe.h"
#include "proto/block-io.h"
@@ -2249,18 +2248,18 @@ static EFI_STATUS initrd_prepare(
EFI_FILE *root,
const BootEntry *entry,
char16_t **ret_options,
- Pages *ret_initrd_pages,
+ void **ret_initrd,
size_t *ret_initrd_size) {
assert(root);
assert(entry);
assert(ret_options);
- assert(ret_initrd_pages);
+ assert(ret_initrd);
assert(ret_initrd_size);
if (entry->type != LOADER_LINUX || !entry->initrd) {
*ret_options = NULL;
- *ret_initrd_pages = (Pages) {};
+ *ret_initrd = NULL;
*ret_initrd_size = 0;
return EFI_SUCCESS;
}
@@ -2274,6 +2273,7 @@ static EFI_STATUS initrd_prepare(
EFI_STATUS err;
size_t size = 0;
+ _cleanup_free_ uint8_t *initrd = NULL;
STRV_FOREACH(i, entry->initrd) {
_cleanup_free_ char16_t *o = options;
@@ -2292,67 +2292,30 @@ static EFI_STATUS initrd_prepare(
if (err != EFI_SUCCESS)
return err;
- if (!INC_SAFE(&size, ALIGN4(info->FileSize)))
- return EFI_OUT_OF_RESOURCES;
- }
-
-#if defined(__i386__) || defined(__x86_64__)
- _cleanup_pages_ Pages pages = xmalloc_pages(
- AllocateMaxAddress,
- EfiLoaderData,
- EFI_SIZE_TO_PAGES(size),
- UINT32_MAX /* Below 4G boundary. */);
-#else
- _cleanup_pages_ Pages pages = xmalloc_pages(
- AllocateAnyPages,
- EfiLoaderData,
- EFI_SIZE_TO_PAGES(size),
- 0 /* Ignored. */);
-#endif
-
- uint8_t *p = PHYSICAL_ADDRESS_TO_POINTER(pages.addr);
-
- STRV_FOREACH(i, entry->initrd) {
- _cleanup_(file_closep) EFI_FILE *handle = NULL;
- err = root->Open(root, &handle, *i, EFI_FILE_MODE_READ, 0);
- if (err != EFI_SUCCESS)
- return err;
-
- _cleanup_free_ EFI_FILE_INFO *info = NULL;
- err = get_file_info(handle, &info, NULL);
- if (err != EFI_SUCCESS)
- return err;
-
if (info->FileSize == 0) /* Automatically skip over empty files */
continue;
- size_t read_size = info->FileSize;
- err = chunked_read(handle, &read_size, p);
+ size_t new_size, read_size = info->FileSize;
+ if (!ADD_SAFE(&new_size, size, read_size))
+ return EFI_OUT_OF_RESOURCES;
+ initrd = xrealloc(initrd, size, new_size);
+
+ err = chunked_read(handle, &read_size, initrd + size);
if (err != EFI_SUCCESS)
return err;
/* Make sure the actual read size is what we expected. */
- assert(read_size == info->FileSize);
- p += read_size;
-
- size_t pad;
- pad = ALIGN4(read_size) - read_size;
- if (pad == 0)
- continue;
-
- memzero(p, pad);
- p += pad;
+ assert(size + read_size == new_size);
+ size = new_size;
}
- assert(PHYSICAL_ADDRESS_TO_POINTER(pages.addr + size) == p);
-
if (entry->options) {
_cleanup_free_ char16_t *o = options;
options = xasprintf("%ls %ls", o, entry->options);
}
*ret_options = TAKE_PTR(options);
- *ret_initrd_pages = TAKE_STRUCT(pages);
+ *ret_initrd = TAKE_PTR(initrd);
*ret_initrd_size = size;
return EFI_SUCCESS;
}
@@ -2382,9 +2345,9 @@ static EFI_STATUS image_start(
return log_error_status(err, "Error making file device path: %m");
size_t initrd_size = 0;
- _cleanup_pages_ Pages initrd_pages = {};
+ _cleanup_free_ void *initrd = NULL;
_cleanup_free_ char16_t *options_initrd = NULL;
- err = initrd_prepare(image_root, entry, &options_initrd, &initrd_pages, &initrd_size);
+ err = initrd_prepare(image_root, entry, &options_initrd, &initrd, &initrd_size);
if (err != EFI_SUCCESS)
return log_error_status(err, "Error preparing initrd: %m");
@@ -2402,7 +2365,7 @@ static EFI_STATUS image_start(
}
_cleanup_(cleanup_initrd) EFI_HANDLE initrd_handle = NULL;
- err = initrd_register(PHYSICAL_ADDRESS_TO_POINTER(initrd_pages.addr), initrd_size, &initrd_handle);
+ err = initrd_register(initrd, initrd_size, &initrd_handle);
if (err != EFI_SUCCESS)
return log_error_status(err, "Error registering initrd: %m");
--
2.43.0

View File

@ -1,21 +0,0 @@
---
src/login/pam_systemd.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
Index: systemd-228/src/login/pam_systemd.c
===================================================================
--- systemd-228.orig/src/login/pam_systemd.c
+++ systemd-228/src/login/pam_systemd.c
@@ -515,7 +515,11 @@ _public_ PAM_EXTERN int pam_sm_open_sess
r = pam_set_data(handle, "systemd.session-fd", FD_TO_PTR(session_fd), NULL);
if (r != PAM_SUCCESS) {
pam_syslog(handle, LOG_ERR, "Failed to install session fd.");
- safe_close(session_fd);
+ if (session_fd >= 0) {
+ PROTECT_ERRNO;
+ if (_unlikely_(!(close_nointr(session_fd) != -EBADF)))
+ pam_syslog(handle, LOG_ERR, "Unexpected error code on closing session fd: %m");
+ }
return r;
}
}

View File

@ -1,40 +0,0 @@
From: Frederic Crozat <fcrozat@suse.com>
Date: Wed, 7 Dec 2011 15:15:07 +0000
Subject: Fix /run/lock directories permissions to follow openSUSE policy
disable /var/lock/{subsys,lockdev} and change default permissions on
/var/lock (bnc#733523).
---
tmpfiles.d/legacy.conf | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
Index: systemd-221/tmpfiles.d/legacy.conf
===================================================================
--- systemd-221.orig/tmpfiles.d/legacy.conf
+++ systemd-221/tmpfiles.d/legacy.conf
@@ -10,13 +10,14 @@
# These files are considered legacy and are unnecessary on legacy-free
# systems.
-d /run/lock 0755 root root -
+# changed for openSUSE: only /run/lock should be available.
+d /run/lock 0775 root lock -
L /var/lock - - - - ../run/lock
# /run/lock/subsys is used for serializing SysV service execution, and
# hence without use on SysV-less systems.
-d /run/lock/subsys 0755 root root -
+#d /run/lock/subsys 0755 root root -
# /run/lock/lockdev is used to serialize access to tty devices via
# LCK..xxx style lock files, For more information see:
@@ -24,7 +25,7 @@ d /run/lock/subsys 0755 root root -
# On modern systems a BSD file lock is a better choice if
# serialization is needed on those devices.
-d /run/lock/lockdev 0775 root lock -
+#d /run/lock/lockdev 0775 root lock -
# /forcefsck, /fastboot and /forcequotacheck are deprecated in favor of the
# kernel command line options 'fsck.mode=force', 'fsck.mode=skip' and

3
_multibuild Normal file
View File

@ -0,0 +1,3 @@
<multibuild>
<package>mini</package>
</multibuild>

16
_service Normal file
View File

@ -0,0 +1,16 @@
<!-- See https://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService -->
<!-- for more details on the syntax -->
<services>
<service name="tar_scm" mode="disabled">
<param name="scm">git</param>
<param name="url">https://github.com/openSUSE/systemd.git</param>
<param name="filename">systemd</param>
<param name="versionformat">@PARENT_TAG@+suse.@TAG_OFFSET@.g%h</param>
<param name="revision">openSUSE-Factory</param>
</service>
<service name="recompress" mode="disabled">
<param name="file">*systemd-v243+suse.*.tar</param>
<param name="compression">xz</param>
</service>
</services>

View File

@ -1,17 +0,0 @@
# 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=/etc/init.d/after.local Compatibility
ConditionFileIsExecutable=/etc/init.d/after.local
After=getty.target
[Service]
Type=idle
ExecStart=/etc/init.d/after.local
TimeoutSec=0
RemainAfterExit=yes

View File

@ -1,47 +0,0 @@
From: Frederic Crozat <fcrozat@suse.com>
Date: Thu, 10 Jan 2013 15:43:25 +0000
Subject: allow multiple sulogin to be started
allows multiple sulogin instance (bnc#793182).
---
units/getty@.service.m4 | 1 +
units/rescue.target | 1 +
units/serial-getty@.service.m4 | 1 +
3 files changed, 3 insertions(+)
Index: systemd-221/units/getty@.service.m4
===================================================================
--- systemd-221.orig/units/getty@.service.m4
+++ systemd-221/units/getty@.service.m4
@@ -9,6 +9,7 @@
Description=Getty on %I
Documentation=man:agetty(8) man:systemd-getty-generator(8)
Documentation=http://0pointer.de/blog/projects/serial-console.html
+Conflicts=rescue.service
After=systemd-user-sessions.service plymouth-quit-wait.service
m4_ifdef(`HAVE_SYSV_COMPAT',
After=rc-local.service
Index: systemd-221/units/rescue.target
===================================================================
--- systemd-221.orig/units/rescue.target
+++ systemd-221/units/rescue.target
@@ -10,6 +10,7 @@ Description=Rescue Mode
Documentation=man:systemd.special(7)
Requires=sysinit.target rescue.service
After=sysinit.target rescue.service
+Conflicts=getty.target
AllowIsolate=yes
[Install]
Index: systemd-221/units/serial-getty@.service.m4
===================================================================
--- systemd-221.orig/units/serial-getty@.service.m4
+++ systemd-221/units/serial-getty@.service.m4
@@ -10,6 +10,7 @@ Description=Serial Getty on %I
Documentation=man:agetty(8) man:systemd-getty-generator(8)
Documentation=http://0pointer.de/blog/projects/serial-console.html
BindsTo=dev-%i.device
+Conflicts=rescue.service
After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service
m4_ifdef(`HAVE_SYSV_COMPAT',
After=rc-local.service

View File

@ -1,31 +0,0 @@
From: Ludwig Nussel <ludwig.nussel@suse.de>
Date: Mon, 8 Apr 2013 14:51:47 +0200
Subject: apply ACL for nvidia device nodes
set ACL on nvidia devices (bnc#808319).
---
src/login/logind-acl.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
Index: systemd-221/src/login/logind-acl.c
===================================================================
--- systemd-221.orig/src/login/logind-acl.c
+++ systemd-221/src/login/logind-acl.c
@@ -285,5 +285,17 @@ int devnode_acl_all(struct udev *udev,
r = k;
}
+ /* only apply ACL on nvidia* if /dev/nvidiactl exists */
+ if (devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid) >= 0) {
+ int j;
+ for (j = 0; j <= 256 ; j++) {
+ _cleanup_free_ char *devname = NULL;
+ if (asprintf(&devname, "/dev/nvidia%d", j) < 0)
+ break;
+ if (devnode_acl(devname, flush, del, old_uid, add, new_uid) < 0)
+ break;
+ }
+ }
+
return r;
}

View File

@ -1,23 +0,0 @@
From c79437b7967cf5a23faa881bc5da6b88b63a1ada Mon Sep 17 00:00:00 2001
From: Stefan Dirsch <sndirsch@suse.de>
Date: Tue, 3 Jun 2014 15:05:55 +0200
Subject: [PATCH] apply ACL for nvidia-uvm device node
set ACL on nvidia-uvm device (bnc#879767).
---
src/login/logind-acl.c | 2 ++
1 file changed, 2 insertions(+)
Index: systemd-221/src/login/logind-acl.c
===================================================================
--- systemd-221.orig/src/login/logind-acl.c
+++ systemd-221/src/login/logind-acl.c
@@ -295,6 +295,8 @@ int devnode_acl_all(struct udev *udev,
if (devnode_acl(devname, flush, del, old_uid, add, new_uid) < 0)
break;
}
+ /* required for additional CUDA support (nvidia-uvm module with appropriate device), bnc#879767 */
+ devnode_acl("/dev/nvidia-uvm", flush, del, old_uid, add, new_uid);
}
return r;

View File

@ -1,34 +0,0 @@
Nasty bug reported on boo#867663
---
src/basic/def.h | 2 +-
src/core/manager.c | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
Index: systemd-228/src/basic/def.h
===================================================================
--- systemd-228.orig/src/basic/def.h
+++ systemd-228/src/basic/def.h
@@ -40,7 +40,7 @@
#define SYSTEMD_CGROUP_CONTROLLER "name=systemd"
-#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT
+#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT,SIGTRAP,SIGSYS
#define SIGNALS_IGNORE SIGPIPE
#define REBOOT_PARAM_FILE "/run/systemd/reboot-param"
Index: systemd-228/src/core/manager.c
===================================================================
--- systemd-228.orig/src/core/manager.c
+++ systemd-228/src/core/manager.c
@@ -2003,7 +2003,8 @@ static int manager_dispatch_jobs_in_prog
assert(m);
assert(source);
- manager_print_jobs_in_progress(m);
+ if (m->n_running_jobs > 0)
+ manager_print_jobs_in_progress(m);
next = now(CLOCK_MONOTONIC) + JOBS_IN_PROGRESS_PERIOD_USEC;
r = sd_event_source_set_time(source, next);

View File

@ -1,29 +0,0 @@
Found this during debugging an other problem. The issue was that
after ``sudo -i'' and a ``cd /usr/lib/systemd/system/'' followed
later by a shutdown may fail with (journalctl -b -1):
systemd-exit.service: Failed at step CHDIR spawning: /usr/bin/kill
which then caused the subsequent fault that umounting the users
home directories done by automount are busy.
---
units/user/systemd-exit.service.in | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Index: systemd-221/units/user/systemd-exit.service.in
===================================================================
--- systemd-221.orig/units/user/systemd-exit.service.in
+++ systemd-221/units/user/systemd-exit.service.in
@@ -10,8 +10,9 @@ Description=Exit the Session
Documentation=man:systemd.special(7)
DefaultDependencies=no
Requires=shutdown.target
-After=shutdown.target
+After=shutdown.target multi-user.target
[Service]
Type=oneshot
-ExecStart=@KILL@ -s 58 $MANAGERPID
+WorkingDirectory=/
+ExecStart=@KILL@ -s SIGRTMIN+24 $MANAGERPID

View File

@ -1,8 +1,11 @@
#
# https://en.opensuse.org/openSUSE:Build_Service_baselibs.conf#Quickstart
#
systemd
supplements "packageand(systemd:pam-<targettype>)"
supplements "(systemd and pam-<targettype>)"
-/lib/systemd/system/
post "<prefix>%{_sbindir}/pam-config -a --systemd || :"
-/usr/lib/systemd
-/usr/lib/cryptsetup
libsystemd0
libudev1
nss-myhostname
nss-mymachines
systemd-devel

View File

@ -1,17 +0,0 @@
---
units/rc-local.service.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: systemd-221/units/rc-local.service.in
===================================================================
--- systemd-221.orig/units/rc-local.service.in
+++ systemd-221/units/rc-local.service.in
@@ -10,7 +10,7 @@
[Unit]
Description=@RC_LOCAL_SCRIPT_PATH_START@ Compatibility
ConditionFileIsExecutable=@RC_LOCAL_SCRIPT_PATH_START@
-After=network.target
+After=basic.target
[Service]
Type=forking

View File

@ -1,25 +0,0 @@
From: Frederic Crozat <fcrozat@suse.com>
Cc: Werner Fink <werner@suse.de>
Date: Wed, 24 Aug 2011 13:02:12 +0000
Subject: ensure ask-password-wall starts after getty@tty1
ensure passphrase is handled before starting getty on tty1.
---
units/systemd-ask-password-wall.service.in | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: systemd-221/units/systemd-ask-password-wall.service.in
===================================================================
--- systemd-221.orig/units/systemd-ask-password-wall.service.in
+++ systemd-221/units/systemd-ask-password-wall.service.in
@@ -8,7 +8,8 @@
[Unit]
Description=Forward Password Requests to Wall
Documentation=man:systemd-ask-password-console.service(8)
-After=systemd-user-sessions.service
+Wants=getty.target
+After=systemd-user-sessions.service getty.target
[Service]
ExecStartPre=-@SYSTEMCTL@ stop systemd-ask-password-console.path systemd-ask-password-console.service systemd-ask-password-plymouth.path systemd-ask-password-plymouth.service

View File

@ -1,31 +0,0 @@
From: Frederic Crozat <fcrozat@suse.com>
Date: Tue, 28 May 2013 15:17:35 +0200
Subject: ensure shortname is set as hostname (bnc#820213)
strip hostname so the domain part isn't set as part of the hostname
---
src/core/hostname-setup.c | 4 ++++
1 file changed, 4 insertions(+)
Index: systemd-221/src/core/hostname-setup.c
===================================================================
--- systemd-221.orig/src/core/hostname-setup.c
+++ systemd-221/src/core/hostname-setup.c
@@ -34,6 +34,7 @@ int hostname_setup(void) {
int r;
_cleanup_free_ char *b = NULL;
const char *hn;
+ char *domain;
bool enoent = false;
r = read_hostname_config("/etc/hostname", &b);
@@ -46,6 +47,9 @@ int hostname_setup(void) {
hn = NULL;
} else
hn = b;
+ /* strip any leftover of a domain name */
+ if ((domain = strchr(hn, '.')) != NULL)
+ *domain = '\0';
if (isempty(hn)) {
/* Don't override the hostname if it is already set

92
files.container Normal file
View File

@ -0,0 +1,92 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%dir %{_sysconfdir}/systemd/nspawn
%{_bindir}/systemd-nspawn
%if %{without bootstrap}
%{_datadir}/bash-completion/completions/systemd-nspawn
%endif
%{_datadir}/polkit-1/actions/io.systemd.mount-file-system.policy
%if %{without bootstrap}
%{_datadir}/zsh/site-functions/_systemd-nspawn
%{_mandir}/man1/systemd-nspawn.1.gz
%{_mandir}/man5/systemd.nspawn.5.gz
%{_mandir}/man8/libnss_mymachines.so.2.8.gz
%{_mandir}/man8/nss-mymachines.8.gz
%{_mandir}/man8/systemd-mountfsd.8.gz
%{_mandir}/man8/systemd-mountfsd.service.8.gz
%{_mandir}/man8/systemd-nsresourced.8.gz
%{_mandir}/man8/systemd-nsresourced.service.8.gz
%endif
%if %{with networkd}
%{_systemd_util_dir}/network/80-container-vb.link
%{_systemd_util_dir}/network/80-container-vb.network
%{_systemd_util_dir}/network/80-container-ve.link
%{_systemd_util_dir}/network/80-container-ve.network
%{_systemd_util_dir}/network/80-container-vz.link
%{_systemd_util_dir}/network/80-container-vz.network
%{_systemd_util_dir}/network/80-namespace-ns.link
%{_systemd_util_dir}/network/80-namespace-ns.network
%endif
%if %{without bootstrap}
%{_systemd_util_dir}/systemd-mountfsd
%{_systemd_util_dir}/systemd-mountwork
%{_systemd_util_dir}/systemd-nsresourced
%{_systemd_util_dir}/systemd-nsresourcework
%{_unitdir}/systemd-mountfsd.service
%{_unitdir}/systemd-mountfsd.socket
%{_unitdir}/systemd-nspawn@.service
%{_unitdir}/systemd-nsresourced.service
%{_unitdir}/systemd-nsresourced.socket
%endif
%if %{with machined}
%dir %{_unitdir}/machines.target.wants
%{_bindir}/machinectl
%{_datadir}/bash-completion/completions/machinectl
%{_datadir}/dbus-1/interfaces/org.freedesktop.machine1.Image.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.machine1.Machine.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.machine1.Manager.xml
%{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.machine1.conf
%{_datadir}/polkit-1/actions/org.freedesktop.machine1.policy
%{_datadir}/zsh/site-functions/_machinectl
%{_datadir}/zsh/site-functions/_sd_machines
%{_libdir}/libnss_mymachines.so.2
%{_mandir}/man1/machinectl.1.gz
%{_mandir}/man5/org.freedesktop.machine1.5.gz
%{_mandir}/man8/systemd-machined.8.gz
%{_mandir}/man8/systemd-machined.service.8.gz
%{_systemd_util_dir}/rpm/fixlet-container-post.sh
%{_systemd_util_dir}/systemd-machined
%{_tmpfilesdir}/systemd-nspawn.conf
%{_unitdir}/dbus-org.freedesktop.machine1.service
%{_unitdir}/machine.slice
%{_unitdir}/machines.target
%{_unitdir}/machines.target.wants/var-lib-machines.mount
%{_unitdir}/remote-fs.target.wants/var-lib-machines.mount
%{_unitdir}/systemd-machined.service
%{_unitdir}/var-lib-machines.mount
%endif
%if %{with importd}
%{_bindir}/importctl
%{_datadir}/bash-completion/completions/importctl
%{_datadir}/dbus-1/interfaces/org.freedesktop.import1.Manager.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.import1.Transfer.xml
%{_datadir}/dbus-1/system-services/org.freedesktop.import1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.import1.conf
%{_datadir}/polkit-1/actions/org.freedesktop.import1.policy
%{_mandir}/man1/importctl.1.gz
%{_mandir}/man5/org.freedesktop.import1.5.gz
%{_mandir}/man8/systemd-importd.8.gz
%{_mandir}/man8/systemd-importd.service.8.gz
%{_systemd_util_dir}/import-pubring.gpg
%{_systemd_util_dir}/systemd-export
%{_systemd_util_dir}/systemd-import
%{_systemd_util_dir}/systemd-import-fs
%{_systemd_util_dir}/systemd-importd
%{_systemd_util_dir}/systemd-pull
%{_unitdir}/dbus-org.freedesktop.import1.service
%{_unitdir}/systemd-importd.service
%endif

9
files.devel Normal file
View File

@ -0,0 +1,9 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%{_includedir}/libudev.h
%{_includedir}/systemd/
%{_libdir}/libsystemd.so
%{_libdir}/libudev.so
%{_libdir}/pkgconfig/libsystemd.pc
%{_libdir}/pkgconfig/libudev.pc

787
files.devel-doc Normal file
View File

@ -0,0 +1,787 @@
#
# Keep the list sorted (with `LC_ALL=C sort`).
#
%if %{without bootstrap}
%{_mandir}/man3/SD_ALERT.3.gz
%{_mandir}/man3/SD_BUS_ERROR_ACCESS_DENIED.3.gz
%{_mandir}/man3/SD_BUS_ERROR_ADDRESS_IN_USE.3.gz
%{_mandir}/man3/SD_BUS_ERROR_AUTH_FAILED.3.gz
%{_mandir}/man3/SD_BUS_ERROR_BAD_ADDRESS.3.gz
%{_mandir}/man3/SD_BUS_ERROR_DISCONNECTED.3.gz
%{_mandir}/man3/SD_BUS_ERROR_END.3.gz
%{_mandir}/man3/SD_BUS_ERROR_FAILED.3.gz
%{_mandir}/man3/SD_BUS_ERROR_FILE_EXISTS.3.gz
%{_mandir}/man3/SD_BUS_ERROR_FILE_NOT_FOUND.3.gz
%{_mandir}/man3/SD_BUS_ERROR_INCONSISTENT_MESSAGE.3.gz
%{_mandir}/man3/SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED.3.gz
%{_mandir}/man3/SD_BUS_ERROR_INVALID_ARGS.3.gz
%{_mandir}/man3/SD_BUS_ERROR_INVALID_FILE_CONTENT.3.gz
%{_mandir}/man3/SD_BUS_ERROR_INVALID_SIGNATURE.3.gz
%{_mandir}/man3/SD_BUS_ERROR_IO_ERROR.3.gz
%{_mandir}/man3/SD_BUS_ERROR_LIMITS_EXCEEDED.3.gz
%{_mandir}/man3/SD_BUS_ERROR_MAKE_CONST.3.gz
%{_mandir}/man3/SD_BUS_ERROR_MAP.3.gz
%{_mandir}/man3/SD_BUS_ERROR_MATCH_RULE_INVALID.3.gz
%{_mandir}/man3/SD_BUS_ERROR_MATCH_RULE_NOT_FOUND.3.gz
%{_mandir}/man3/SD_BUS_ERROR_NAME_HAS_NO_OWNER.3.gz
%{_mandir}/man3/SD_BUS_ERROR_NOT_SUPPORTED.3.gz
%{_mandir}/man3/SD_BUS_ERROR_NO_MEMORY.3.gz
%{_mandir}/man3/SD_BUS_ERROR_NO_NETWORK.3.gz
%{_mandir}/man3/SD_BUS_ERROR_NO_REPLY.3.gz
%{_mandir}/man3/SD_BUS_ERROR_NO_SERVER.3.gz
%{_mandir}/man3/SD_BUS_ERROR_NULL.3.gz
%{_mandir}/man3/SD_BUS_ERROR_OBJECT_PATH_IN_USE.3.gz
%{_mandir}/man3/SD_BUS_ERROR_PROPERTY_READ_ONLY.3.gz
%{_mandir}/man3/SD_BUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN.3.gz
%{_mandir}/man3/SD_BUS_ERROR_SERVICE_UNKNOWN.3.gz
%{_mandir}/man3/SD_BUS_ERROR_TIMED_OUT.3.gz
%{_mandir}/man3/SD_BUS_ERROR_TIMEOUT.3.gz
%{_mandir}/man3/SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN.3.gz
%{_mandir}/man3/SD_BUS_ERROR_UNKNOWN_INTERFACE.3.gz
%{_mandir}/man3/SD_BUS_ERROR_UNKNOWN_METHOD.3.gz
%{_mandir}/man3/SD_BUS_ERROR_UNKNOWN_OBJECT.3.gz
%{_mandir}/man3/SD_BUS_ERROR_UNKNOWN_PROPERTY.3.gz
%{_mandir}/man3/SD_BUS_MESSAGE_METHOD_CALL.3.gz
%{_mandir}/man3/SD_BUS_MESSAGE_METHOD_ERROR.3.gz
%{_mandir}/man3/SD_BUS_MESSAGE_METHOD_RETURN.3.gz
%{_mandir}/man3/SD_BUS_MESSAGE_SIGNAL.3.gz
%{_mandir}/man3/SD_BUS_METHOD.3.gz
%{_mandir}/man3/SD_BUS_METHOD_WITH_NAMES.3.gz
%{_mandir}/man3/SD_BUS_METHOD_WITH_NAMES_OFFSET.3.gz
%{_mandir}/man3/SD_BUS_METHOD_WITH_OFFSET.3.gz
%{_mandir}/man3/SD_BUS_PARAM.3.gz
%{_mandir}/man3/SD_BUS_PROPERTY.3.gz
%{_mandir}/man3/SD_BUS_SIGNAL.3.gz
%{_mandir}/man3/SD_BUS_SIGNAL_WITH_NAMES.3.gz
%{_mandir}/man3/SD_BUS_VTABLE_CAPABILITY.3.gz
%{_mandir}/man3/SD_BUS_VTABLE_END.3.gz
%{_mandir}/man3/SD_BUS_VTABLE_START.3.gz
%{_mandir}/man3/SD_BUS_WRITABLE_PROPERTY.3.gz
%{_mandir}/man3/SD_CRIT.3.gz
%{_mandir}/man3/SD_DEBUG.3.gz
%{_mandir}/man3/SD_EMERG.3.gz
%{_mandir}/man3/SD_ERR.3.gz
%{_mandir}/man3/SD_EVENT_ARMED.3.gz
%{_mandir}/man3/SD_EVENT_EXITING.3.gz
%{_mandir}/man3/SD_EVENT_FINISHED.3.gz
%{_mandir}/man3/SD_EVENT_INITIAL.3.gz
%{_mandir}/man3/SD_EVENT_OFF.3.gz
%{_mandir}/man3/SD_EVENT_ON.3.gz
%{_mandir}/man3/SD_EVENT_ONESHOT.3.gz
%{_mandir}/man3/SD_EVENT_PENDING.3.gz
%{_mandir}/man3/SD_EVENT_PREPARING.3.gz
%{_mandir}/man3/SD_EVENT_PRIORITY_IDLE.3.gz
%{_mandir}/man3/SD_EVENT_PRIORITY_IMPORTANT.3.gz
%{_mandir}/man3/SD_EVENT_PRIORITY_NORMAL.3.gz
%{_mandir}/man3/SD_EVENT_RUNNING.3.gz
%{_mandir}/man3/SD_EVENT_SIGNAL_PROCMASK.3.gz
%{_mandir}/man3/SD_HWDB_FOREACH_PROPERTY.3.gz
%{_mandir}/man3/SD_ID128_ALLF.3.gz
%{_mandir}/man3/SD_ID128_CONST_STR.3.gz
%{_mandir}/man3/SD_ID128_FORMAT_STR.3.gz
%{_mandir}/man3/SD_ID128_FORMAT_VAL.3.gz
%{_mandir}/man3/SD_ID128_MAKE.3.gz
%{_mandir}/man3/SD_ID128_MAKE_STR.3.gz
%{_mandir}/man3/SD_ID128_MAKE_UUID_STR.3.gz
%{_mandir}/man3/SD_ID128_NULL.3.gz
%{_mandir}/man3/SD_ID128_STRING_MAX.3.gz
%{_mandir}/man3/SD_ID128_TO_STRING.3.gz
%{_mandir}/man3/SD_ID128_TO_UUID_STRING.3.gz
%{_mandir}/man3/SD_ID128_UUID_FORMAT_STR.3.gz
%{_mandir}/man3/SD_ID128_UUID_STRING_MAX.3.gz
%{_mandir}/man3/SD_INFO.3.gz
%{_mandir}/man3/SD_JOURNAL_ALL_NAMESPACES.3.gz
%{_mandir}/man3/SD_JOURNAL_APPEND.3.gz
%{_mandir}/man3/SD_JOURNAL_CURRENT_USER.3.gz
%{_mandir}/man3/SD_JOURNAL_FOREACH.3.gz
%{_mandir}/man3/SD_JOURNAL_FOREACH_BACKWARDS.3.gz
%{_mandir}/man3/SD_JOURNAL_FOREACH_DATA.3.gz
%{_mandir}/man3/SD_JOURNAL_FOREACH_FIELD.3.gz
%{_mandir}/man3/SD_JOURNAL_FOREACH_UNIQUE.3.gz
%{_mandir}/man3/SD_JOURNAL_INCLUDE_DEFAULT_NAMESPACE.3.gz
%{_mandir}/man3/SD_JOURNAL_INVALIDATE.3.gz
%{_mandir}/man3/SD_JOURNAL_LOCAL_ONLY.3.gz
%{_mandir}/man3/SD_JOURNAL_NOP.3.gz
%{_mandir}/man3/SD_JOURNAL_OS_ROOT.3.gz
%{_mandir}/man3/SD_JOURNAL_RUNTIME_ONLY.3.gz
%{_mandir}/man3/SD_JOURNAL_SUPPRESS_LOCATION.3.gz
%{_mandir}/man3/SD_JOURNAL_SYSTEM.3.gz
%{_mandir}/man3/SD_JOURNAL_TAKE_DIRECTORY_FD.3.gz
%{_mandir}/man3/SD_LISTEN_FDS_START.3.gz
%{_mandir}/man3/SD_NOTICE.3.gz
%{_mandir}/man3/SD_WARNING.3.gz
%{_mandir}/man3/libsystemd.3.gz
%{_mandir}/man3/libudev.3.gz
%{_mandir}/man3/sd-bus-errors.3.gz
%{_mandir}/man3/sd-bus.3.gz
%{_mandir}/man3/sd-daemon.3.gz
%{_mandir}/man3/sd-device.3.gz
%{_mandir}/man3/sd-event.3.gz
%{_mandir}/man3/sd-hwdb.3.gz
%{_mandir}/man3/sd-id128.3.gz
%{_mandir}/man3/sd-journal.3.gz
%{_mandir}/man3/sd-login.3.gz
%{_mandir}/man3/sd_booted.3.gz
%{_mandir}/man3/sd_bus_add_fallback.3.gz
%{_mandir}/man3/sd_bus_add_fallback_vtable.3.gz
%{_mandir}/man3/sd_bus_add_filter.3.gz
%{_mandir}/man3/sd_bus_add_match.3.gz
%{_mandir}/man3/sd_bus_add_match_async.3.gz
%{_mandir}/man3/sd_bus_add_node_enumerator.3.gz
%{_mandir}/man3/sd_bus_add_object.3.gz
%{_mandir}/man3/sd_bus_add_object_manager.3.gz
%{_mandir}/man3/sd_bus_add_object_vtable.3.gz
%{_mandir}/man3/sd_bus_attach_event.3.gz
%{_mandir}/man3/sd_bus_call.3.gz
%{_mandir}/man3/sd_bus_call_async.3.gz
%{_mandir}/man3/sd_bus_call_method.3.gz
%{_mandir}/man3/sd_bus_call_method_async.3.gz
%{_mandir}/man3/sd_bus_call_method_asyncv.3.gz
%{_mandir}/man3/sd_bus_call_methodv.3.gz
%{_mandir}/man3/sd_bus_can_send.3.gz
%{_mandir}/man3/sd_bus_close.3.gz
%{_mandir}/man3/sd_bus_close_unref.3.gz
%{_mandir}/man3/sd_bus_close_unrefp.3.gz
%{_mandir}/man3/sd_bus_creds_get_audit_login_uid.3.gz
%{_mandir}/man3/sd_bus_creds_get_audit_session_id.3.gz
%{_mandir}/man3/sd_bus_creds_get_augmented_mask.3.gz
%{_mandir}/man3/sd_bus_creds_get_cgroup.3.gz
%{_mandir}/man3/sd_bus_creds_get_cmdline.3.gz
%{_mandir}/man3/sd_bus_creds_get_comm.3.gz
%{_mandir}/man3/sd_bus_creds_get_description.3.gz
%{_mandir}/man3/sd_bus_creds_get_egid.3.gz
%{_mandir}/man3/sd_bus_creds_get_euid.3.gz
%{_mandir}/man3/sd_bus_creds_get_exe.3.gz
%{_mandir}/man3/sd_bus_creds_get_fsgid.3.gz
%{_mandir}/man3/sd_bus_creds_get_fsuid.3.gz
%{_mandir}/man3/sd_bus_creds_get_gid.3.gz
%{_mandir}/man3/sd_bus_creds_get_mask.3.gz
%{_mandir}/man3/sd_bus_creds_get_owner_uid.3.gz
%{_mandir}/man3/sd_bus_creds_get_pid.3.gz
%{_mandir}/man3/sd_bus_creds_get_pidfd_dup.3.gz
%{_mandir}/man3/sd_bus_creds_get_ppid.3.gz
%{_mandir}/man3/sd_bus_creds_get_selinux_context.3.gz
%{_mandir}/man3/sd_bus_creds_get_session.3.gz
%{_mandir}/man3/sd_bus_creds_get_sgid.3.gz
%{_mandir}/man3/sd_bus_creds_get_slice.3.gz
%{_mandir}/man3/sd_bus_creds_get_suid.3.gz
%{_mandir}/man3/sd_bus_creds_get_supplementary_gids.3.gz
%{_mandir}/man3/sd_bus_creds_get_tid.3.gz
%{_mandir}/man3/sd_bus_creds_get_tid_comm.3.gz
%{_mandir}/man3/sd_bus_creds_get_tty.3.gz
%{_mandir}/man3/sd_bus_creds_get_uid.3.gz
%{_mandir}/man3/sd_bus_creds_get_unique_name.3.gz
%{_mandir}/man3/sd_bus_creds_get_unit.3.gz
%{_mandir}/man3/sd_bus_creds_get_user_slice.3.gz
%{_mandir}/man3/sd_bus_creds_get_user_unit.3.gz
%{_mandir}/man3/sd_bus_creds_get_well_known_names.3.gz
%{_mandir}/man3/sd_bus_creds_has_bounding_cap.3.gz
%{_mandir}/man3/sd_bus_creds_has_effective_cap.3.gz
%{_mandir}/man3/sd_bus_creds_has_inheritable_cap.3.gz
%{_mandir}/man3/sd_bus_creds_has_permitted_cap.3.gz
%{_mandir}/man3/sd_bus_creds_new_from_pid.3.gz
%{_mandir}/man3/sd_bus_creds_new_from_pidfd.3.gz
%{_mandir}/man3/sd_bus_creds_ref.3.gz
%{_mandir}/man3/sd_bus_creds_unref.3.gz
%{_mandir}/man3/sd_bus_creds_unrefp.3.gz
%{_mandir}/man3/sd_bus_default.3.gz
%{_mandir}/man3/sd_bus_default_flush_close.3.gz
%{_mandir}/man3/sd_bus_default_system.3.gz
%{_mandir}/man3/sd_bus_default_user.3.gz
%{_mandir}/man3/sd_bus_destroy_t.3.gz
%{_mandir}/man3/sd_bus_detach_event.3.gz
%{_mandir}/man3/sd_bus_emit_interfaces_added.3.gz
%{_mandir}/man3/sd_bus_emit_interfaces_added_strv.3.gz
%{_mandir}/man3/sd_bus_emit_interfaces_removed.3.gz
%{_mandir}/man3/sd_bus_emit_interfaces_removed_strv.3.gz
%{_mandir}/man3/sd_bus_emit_object_added.3.gz
%{_mandir}/man3/sd_bus_emit_object_removed.3.gz
%{_mandir}/man3/sd_bus_emit_properties_changed.3.gz
%{_mandir}/man3/sd_bus_emit_properties_changed_strv.3.gz
%{_mandir}/man3/sd_bus_emit_signal.3.gz
%{_mandir}/man3/sd_bus_emit_signal_to.3.gz
%{_mandir}/man3/sd_bus_emit_signal_tov.3.gz
%{_mandir}/man3/sd_bus_emit_signalv.3.gz
%{_mandir}/man3/sd_bus_enqueue_for_read.3.gz
%{_mandir}/man3/sd_bus_error.3.gz
%{_mandir}/man3/sd_bus_error_add_map.3.gz
%{_mandir}/man3/sd_bus_error_copy.3.gz
%{_mandir}/man3/sd_bus_error_free.3.gz
%{_mandir}/man3/sd_bus_error_get_errno.3.gz
%{_mandir}/man3/sd_bus_error_has_name.3.gz
%{_mandir}/man3/sd_bus_error_has_names.3.gz
%{_mandir}/man3/sd_bus_error_has_names_sentinel.3.gz
%{_mandir}/man3/sd_bus_error_is_set.3.gz
%{_mandir}/man3/sd_bus_error_map.3.gz
%{_mandir}/man3/sd_bus_error_move.3.gz
%{_mandir}/man3/sd_bus_error_set.3.gz
%{_mandir}/man3/sd_bus_error_set_const.3.gz
%{_mandir}/man3/sd_bus_error_set_errno.3.gz
%{_mandir}/man3/sd_bus_error_set_errnof.3.gz
%{_mandir}/man3/sd_bus_error_set_errnofv.3.gz
%{_mandir}/man3/sd_bus_error_setf.3.gz
%{_mandir}/man3/sd_bus_error_setfv.3.gz
%{_mandir}/man3/sd_bus_flush.3.gz
%{_mandir}/man3/sd_bus_flush_close_unref.3.gz
%{_mandir}/man3/sd_bus_flush_close_unrefp.3.gz
%{_mandir}/man3/sd_bus_get_address.3.gz
%{_mandir}/man3/sd_bus_get_allow_interactive_authorization.3.gz
%{_mandir}/man3/sd_bus_get_bus_id.3.gz
%{_mandir}/man3/sd_bus_get_close_on_exit.3.gz
%{_mandir}/man3/sd_bus_get_connected_signal.3.gz
%{_mandir}/man3/sd_bus_get_creds_mask.3.gz
%{_mandir}/man3/sd_bus_get_current_handler.3.gz
%{_mandir}/man3/sd_bus_get_current_message.3.gz
%{_mandir}/man3/sd_bus_get_current_slot.3.gz
%{_mandir}/man3/sd_bus_get_current_userdata.3.gz
%{_mandir}/man3/sd_bus_get_description.3.gz
%{_mandir}/man3/sd_bus_get_event.3.gz
%{_mandir}/man3/sd_bus_get_events.3.gz
%{_mandir}/man3/sd_bus_get_exit_on_disconnect.3.gz
%{_mandir}/man3/sd_bus_get_fd.3.gz
%{_mandir}/man3/sd_bus_get_method_call_timeout.3.gz
%{_mandir}/man3/sd_bus_get_n_queued_read.3.gz
%{_mandir}/man3/sd_bus_get_n_queued_write.3.gz
%{_mandir}/man3/sd_bus_get_name_creds.3.gz
%{_mandir}/man3/sd_bus_get_name_machine_id.3.gz
%{_mandir}/man3/sd_bus_get_owner_creds.3.gz
%{_mandir}/man3/sd_bus_get_property.3.gz
%{_mandir}/man3/sd_bus_get_property_string.3.gz
%{_mandir}/man3/sd_bus_get_property_strv.3.gz
%{_mandir}/man3/sd_bus_get_property_trivial.3.gz
%{_mandir}/man3/sd_bus_get_scope.3.gz
%{_mandir}/man3/sd_bus_get_sender.3.gz
%{_mandir}/man3/sd_bus_get_tid.3.gz
%{_mandir}/man3/sd_bus_get_timeout.3.gz
%{_mandir}/man3/sd_bus_get_unique_name.3.gz
%{_mandir}/man3/sd_bus_get_watch_bind.3.gz
%{_mandir}/man3/sd_bus_interface_name_is_valid.3.gz
%{_mandir}/man3/sd_bus_is_anonymous.3.gz
%{_mandir}/man3/sd_bus_is_bus_client.3.gz
%{_mandir}/man3/sd_bus_is_monitor.3.gz
%{_mandir}/man3/sd_bus_is_open.3.gz
%{_mandir}/man3/sd_bus_is_ready.3.gz
%{_mandir}/man3/sd_bus_is_server.3.gz
%{_mandir}/man3/sd_bus_is_trusted.3.gz
%{_mandir}/man3/sd_bus_list_names.3.gz
%{_mandir}/man3/sd_bus_match_signal.3.gz
%{_mandir}/man3/sd_bus_match_signal_async.3.gz
%{_mandir}/man3/sd_bus_member_name_is_valid.3.gz
%{_mandir}/man3/sd_bus_message_append.3.gz
%{_mandir}/man3/sd_bus_message_append_array.3.gz
%{_mandir}/man3/sd_bus_message_append_array_iovec.3.gz
%{_mandir}/man3/sd_bus_message_append_array_memfd.3.gz
%{_mandir}/man3/sd_bus_message_append_array_space.3.gz
%{_mandir}/man3/sd_bus_message_append_basic.3.gz
%{_mandir}/man3/sd_bus_message_append_string_iovec.3.gz
%{_mandir}/man3/sd_bus_message_append_string_memfd.3.gz
%{_mandir}/man3/sd_bus_message_append_string_space.3.gz
%{_mandir}/man3/sd_bus_message_append_strv.3.gz
%{_mandir}/man3/sd_bus_message_appendv.3.gz
%{_mandir}/man3/sd_bus_message_at_end.3.gz
%{_mandir}/man3/sd_bus_message_close_container.3.gz
%{_mandir}/man3/sd_bus_message_copy.3.gz
%{_mandir}/man3/sd_bus_message_dump.3.gz
%{_mandir}/man3/sd_bus_message_enter_container.3.gz
%{_mandir}/man3/sd_bus_message_exit_container.3.gz
%{_mandir}/man3/sd_bus_message_get_allow_interactive_authorization.3.gz
%{_mandir}/man3/sd_bus_message_get_auto_start.3.gz
%{_mandir}/man3/sd_bus_message_get_bus.3.gz
%{_mandir}/man3/sd_bus_message_get_cookie.3.gz
%{_mandir}/man3/sd_bus_message_get_creds.3.gz
%{_mandir}/man3/sd_bus_message_get_destination.3.gz
%{_mandir}/man3/sd_bus_message_get_errno.3.gz
%{_mandir}/man3/sd_bus_message_get_error.3.gz
%{_mandir}/man3/sd_bus_message_get_expect_reply.3.gz
%{_mandir}/man3/sd_bus_message_get_interface.3.gz
%{_mandir}/man3/sd_bus_message_get_member.3.gz
%{_mandir}/man3/sd_bus_message_get_monotonic_usec.3.gz
%{_mandir}/man3/sd_bus_message_get_path.3.gz
%{_mandir}/man3/sd_bus_message_get_realtime_usec.3.gz
%{_mandir}/man3/sd_bus_message_get_reply_cookie.3.gz
%{_mandir}/man3/sd_bus_message_get_sender.3.gz
%{_mandir}/man3/sd_bus_message_get_seqnum.3.gz
%{_mandir}/man3/sd_bus_message_get_signature.3.gz
%{_mandir}/man3/sd_bus_message_get_type.3.gz
%{_mandir}/man3/sd_bus_message_has_signature.3.gz
%{_mandir}/man3/sd_bus_message_is_empty.3.gz
%{_mandir}/man3/sd_bus_message_is_method_call.3.gz
%{_mandir}/man3/sd_bus_message_is_method_error.3.gz
%{_mandir}/man3/sd_bus_message_is_signal.3.gz
%{_mandir}/man3/sd_bus_message_new.3.gz
%{_mandir}/man3/sd_bus_message_new_method_call.3.gz
%{_mandir}/man3/sd_bus_message_new_method_errno.3.gz
%{_mandir}/man3/sd_bus_message_new_method_errnof.3.gz
%{_mandir}/man3/sd_bus_message_new_method_error.3.gz
%{_mandir}/man3/sd_bus_message_new_method_errorf.3.gz
%{_mandir}/man3/sd_bus_message_new_method_return.3.gz
%{_mandir}/man3/sd_bus_message_new_signal.3.gz
%{_mandir}/man3/sd_bus_message_new_signal_to.3.gz
%{_mandir}/man3/sd_bus_message_open_container.3.gz
%{_mandir}/man3/sd_bus_message_peek_type.3.gz
%{_mandir}/man3/sd_bus_message_read.3.gz
%{_mandir}/man3/sd_bus_message_read_array.3.gz
%{_mandir}/man3/sd_bus_message_read_basic.3.gz
%{_mandir}/man3/sd_bus_message_read_strv.3.gz
%{_mandir}/man3/sd_bus_message_read_strv_extend.3.gz
%{_mandir}/man3/sd_bus_message_readv.3.gz
%{_mandir}/man3/sd_bus_message_ref.3.gz
%{_mandir}/man3/sd_bus_message_rewind.3.gz
%{_mandir}/man3/sd_bus_message_seal.3.gz
%{_mandir}/man3/sd_bus_message_send.3.gz
%{_mandir}/man3/sd_bus_message_sensitive.3.gz
%{_mandir}/man3/sd_bus_message_set_allow_interactive_authorization.3.gz
%{_mandir}/man3/sd_bus_message_set_auto_start.3.gz
%{_mandir}/man3/sd_bus_message_set_destination.3.gz
%{_mandir}/man3/sd_bus_message_set_expect_reply.3.gz
%{_mandir}/man3/sd_bus_message_set_sender.3.gz
%{_mandir}/man3/sd_bus_message_skip.3.gz
%{_mandir}/man3/sd_bus_message_unref.3.gz
%{_mandir}/man3/sd_bus_message_unrefp.3.gz
%{_mandir}/man3/sd_bus_message_verify_type.3.gz
%{_mandir}/man3/sd_bus_negotiate_creds.3.gz
%{_mandir}/man3/sd_bus_negotiate_fds.3.gz
%{_mandir}/man3/sd_bus_negotiate_timestamp.3.gz
%{_mandir}/man3/sd_bus_new.3.gz
%{_mandir}/man3/sd_bus_object_path_is_valid.3.gz
%{_mandir}/man3/sd_bus_open.3.gz
%{_mandir}/man3/sd_bus_open_system.3.gz
%{_mandir}/man3/sd_bus_open_system_machine.3.gz
%{_mandir}/man3/sd_bus_open_system_remote.3.gz
%{_mandir}/man3/sd_bus_open_system_with_description.3.gz
%{_mandir}/man3/sd_bus_open_user.3.gz
%{_mandir}/man3/sd_bus_open_user_machine.3.gz
%{_mandir}/man3/sd_bus_open_user_with_description.3.gz
%{_mandir}/man3/sd_bus_open_with_description.3.gz
%{_mandir}/man3/sd_bus_path_decode.3.gz
%{_mandir}/man3/sd_bus_path_decode_many.3.gz
%{_mandir}/man3/sd_bus_path_encode.3.gz
%{_mandir}/man3/sd_bus_path_encode_many.3.gz
%{_mandir}/man3/sd_bus_process.3.gz
%{_mandir}/man3/sd_bus_query_sender_creds.3.gz
%{_mandir}/man3/sd_bus_query_sender_privilege.3.gz
%{_mandir}/man3/sd_bus_ref.3.gz
%{_mandir}/man3/sd_bus_release_name.3.gz
%{_mandir}/man3/sd_bus_release_name_async.3.gz
%{_mandir}/man3/sd_bus_reply_method_errno.3.gz
%{_mandir}/man3/sd_bus_reply_method_errnof.3.gz
%{_mandir}/man3/sd_bus_reply_method_errnofv.3.gz
%{_mandir}/man3/sd_bus_reply_method_error.3.gz
%{_mandir}/man3/sd_bus_reply_method_errorf.3.gz
%{_mandir}/man3/sd_bus_reply_method_errorfv.3.gz
%{_mandir}/man3/sd_bus_reply_method_return.3.gz
%{_mandir}/man3/sd_bus_reply_method_returnv.3.gz
%{_mandir}/man3/sd_bus_request_name.3.gz
%{_mandir}/man3/sd_bus_request_name_async.3.gz
%{_mandir}/man3/sd_bus_send.3.gz
%{_mandir}/man3/sd_bus_send_to.3.gz
%{_mandir}/man3/sd_bus_service_name_is_valid.3.gz
%{_mandir}/man3/sd_bus_set_address.3.gz
%{_mandir}/man3/sd_bus_set_allow_interactive_authorization.3.gz
%{_mandir}/man3/sd_bus_set_anonymous.3.gz
%{_mandir}/man3/sd_bus_set_bus_client.3.gz
%{_mandir}/man3/sd_bus_set_close_on_exit.3.gz
%{_mandir}/man3/sd_bus_set_connected_signal.3.gz
%{_mandir}/man3/sd_bus_set_description.3.gz
%{_mandir}/man3/sd_bus_set_exec.3.gz
%{_mandir}/man3/sd_bus_set_exit_on_disconnect.3.gz
%{_mandir}/man3/sd_bus_set_fd.3.gz
%{_mandir}/man3/sd_bus_set_method_call_timeout.3.gz
%{_mandir}/man3/sd_bus_set_monitor.3.gz
%{_mandir}/man3/sd_bus_set_property.3.gz
%{_mandir}/man3/sd_bus_set_propertyv.3.gz
%{_mandir}/man3/sd_bus_set_sender.3.gz
%{_mandir}/man3/sd_bus_set_server.3.gz
%{_mandir}/man3/sd_bus_set_trusted.3.gz
%{_mandir}/man3/sd_bus_set_watch_bind.3.gz
%{_mandir}/man3/sd_bus_slot_get_bus.3.gz
%{_mandir}/man3/sd_bus_slot_get_current_handler.3.gz
%{_mandir}/man3/sd_bus_slot_get_current_message.3.gz
%{_mandir}/man3/sd_bus_slot_get_current_userdata.3.gz
%{_mandir}/man3/sd_bus_slot_get_description.3.gz
%{_mandir}/man3/sd_bus_slot_get_destroy_callback.3.gz
%{_mandir}/man3/sd_bus_slot_get_floating.3.gz
%{_mandir}/man3/sd_bus_slot_get_userdata.3.gz
%{_mandir}/man3/sd_bus_slot_ref.3.gz
%{_mandir}/man3/sd_bus_slot_set_description.3.gz
%{_mandir}/man3/sd_bus_slot_set_destroy_callback.3.gz
%{_mandir}/man3/sd_bus_slot_set_floating.3.gz
%{_mandir}/man3/sd_bus_slot_set_userdata.3.gz
%{_mandir}/man3/sd_bus_slot_unref.3.gz
%{_mandir}/man3/sd_bus_slot_unrefp.3.gz
%{_mandir}/man3/sd_bus_start.3.gz
%{_mandir}/man3/sd_bus_track_add_name.3.gz
%{_mandir}/man3/sd_bus_track_add_sender.3.gz
%{_mandir}/man3/sd_bus_track_contains.3.gz
%{_mandir}/man3/sd_bus_track_count.3.gz
%{_mandir}/man3/sd_bus_track_count_name.3.gz
%{_mandir}/man3/sd_bus_track_count_sender.3.gz
%{_mandir}/man3/sd_bus_track_first.3.gz
%{_mandir}/man3/sd_bus_track_get_bus.3.gz
%{_mandir}/man3/sd_bus_track_get_destroy_callback.3.gz
%{_mandir}/man3/sd_bus_track_get_recursive.3.gz
%{_mandir}/man3/sd_bus_track_get_userdata.3.gz
%{_mandir}/man3/sd_bus_track_new.3.gz
%{_mandir}/man3/sd_bus_track_next.3.gz
%{_mandir}/man3/sd_bus_track_ref.3.gz
%{_mandir}/man3/sd_bus_track_remove_name.3.gz
%{_mandir}/man3/sd_bus_track_remove_sender.3.gz
%{_mandir}/man3/sd_bus_track_set_destroy_callback.3.gz
%{_mandir}/man3/sd_bus_track_set_recursive.3.gz
%{_mandir}/man3/sd_bus_track_set_userdata.3.gz
%{_mandir}/man3/sd_bus_track_unref.3.gz
%{_mandir}/man3/sd_bus_track_unrefp.3.gz
%{_mandir}/man3/sd_bus_unref.3.gz
%{_mandir}/man3/sd_bus_unrefp.3.gz
%{_mandir}/man3/sd_bus_wait.3.gz
%{_mandir}/man3/sd_device_get_devname.3.gz
%{_mandir}/man3/sd_device_get_devnum.3.gz
%{_mandir}/man3/sd_device_get_devpath.3.gz
%{_mandir}/man3/sd_device_get_devtype.3.gz
%{_mandir}/man3/sd_device_get_diskseq.3.gz
%{_mandir}/man3/sd_device_get_driver.3.gz
%{_mandir}/man3/sd_device_get_ifindex.3.gz
%{_mandir}/man3/sd_device_get_subsystem.3.gz
%{_mandir}/man3/sd_device_get_sysname.3.gz
%{_mandir}/man3/sd_device_get_sysnum.3.gz
%{_mandir}/man3/sd_device_get_syspath.3.gz
%{_mandir}/man3/sd_device_ref.3.gz
%{_mandir}/man3/sd_device_unref.3.gz
%{_mandir}/man3/sd_device_unrefp.3.gz
%{_mandir}/man3/sd_event.3.gz
%{_mandir}/man3/sd_event_add_child.3.gz
%{_mandir}/man3/sd_event_add_child_pidfd.3.gz
%{_mandir}/man3/sd_event_add_defer.3.gz
%{_mandir}/man3/sd_event_add_exit.3.gz
%{_mandir}/man3/sd_event_add_inotify.3.gz
%{_mandir}/man3/sd_event_add_inotify_fd.3.gz
%{_mandir}/man3/sd_event_add_io.3.gz
%{_mandir}/man3/sd_event_add_memory_pressure.3.gz
%{_mandir}/man3/sd_event_add_post.3.gz
%{_mandir}/man3/sd_event_add_signal.3.gz
%{_mandir}/man3/sd_event_add_time.3.gz
%{_mandir}/man3/sd_event_add_time_relative.3.gz
%{_mandir}/man3/sd_event_child_handler_t.3.gz
%{_mandir}/man3/sd_event_default.3.gz
%{_mandir}/man3/sd_event_destroy_t.3.gz
%{_mandir}/man3/sd_event_dispatch.3.gz
%{_mandir}/man3/sd_event_exit.3.gz
%{_mandir}/man3/sd_event_get_exit_code.3.gz
%{_mandir}/man3/sd_event_get_fd.3.gz
%{_mandir}/man3/sd_event_get_iteration.3.gz
%{_mandir}/man3/sd_event_get_state.3.gz
%{_mandir}/man3/sd_event_get_tid.3.gz
%{_mandir}/man3/sd_event_get_watchdog.3.gz
%{_mandir}/man3/sd_event_handler_t.3.gz
%{_mandir}/man3/sd_event_inotify_handler_t.3.gz
%{_mandir}/man3/sd_event_io_handler_t.3.gz
%{_mandir}/man3/sd_event_loop.3.gz
%{_mandir}/man3/sd_event_new.3.gz
%{_mandir}/man3/sd_event_now.3.gz
%{_mandir}/man3/sd_event_prepare.3.gz
%{_mandir}/man3/sd_event_ref.3.gz
%{_mandir}/man3/sd_event_run.3.gz
%{_mandir}/man3/sd_event_set_signal_exit.3.gz
%{_mandir}/man3/sd_event_set_watchdog.3.gz
%{_mandir}/man3/sd_event_signal_handler_t.3.gz
%{_mandir}/man3/sd_event_source.3.gz
%{_mandir}/man3/sd_event_source_disable_unref.3.gz
%{_mandir}/man3/sd_event_source_disable_unrefp.3.gz
%{_mandir}/man3/sd_event_source_get_child_pid.3.gz
%{_mandir}/man3/sd_event_source_get_child_pidfd.3.gz
%{_mandir}/man3/sd_event_source_get_child_pidfd_own.3.gz
%{_mandir}/man3/sd_event_source_get_child_process_own.3.gz
%{_mandir}/man3/sd_event_source_get_description.3.gz
%{_mandir}/man3/sd_event_source_get_destroy_callback.3.gz
%{_mandir}/man3/sd_event_source_get_enabled.3.gz
%{_mandir}/man3/sd_event_source_get_event.3.gz
%{_mandir}/man3/sd_event_source_get_exit_on_failure.3.gz
%{_mandir}/man3/sd_event_source_get_floating.3.gz
%{_mandir}/man3/sd_event_source_get_inotify_mask.3.gz
%{_mandir}/man3/sd_event_source_get_inotify_path.3.gz
%{_mandir}/man3/sd_event_source_get_io_events.3.gz
%{_mandir}/man3/sd_event_source_get_io_fd.3.gz
%{_mandir}/man3/sd_event_source_get_io_fd_own.3.gz
%{_mandir}/man3/sd_event_source_get_io_revents.3.gz
%{_mandir}/man3/sd_event_source_get_pending.3.gz
%{_mandir}/man3/sd_event_source_get_priority.3.gz
%{_mandir}/man3/sd_event_source_get_ratelimit.3.gz
%{_mandir}/man3/sd_event_source_get_signal.3.gz
%{_mandir}/man3/sd_event_source_get_time.3.gz
%{_mandir}/man3/sd_event_source_get_time_accuracy.3.gz
%{_mandir}/man3/sd_event_source_get_time_clock.3.gz
%{_mandir}/man3/sd_event_source_get_userdata.3.gz
%{_mandir}/man3/sd_event_source_is_ratelimited.3.gz
%{_mandir}/man3/sd_event_source_leave_ratelimit.3.gz
%{_mandir}/man3/sd_event_source_ref.3.gz
%{_mandir}/man3/sd_event_source_send_child_signal.3.gz
%{_mandir}/man3/sd_event_source_set_child_pidfd_own.3.gz
%{_mandir}/man3/sd_event_source_set_child_process_own.3.gz
%{_mandir}/man3/sd_event_source_set_description.3.gz
%{_mandir}/man3/sd_event_source_set_destroy_callback.3.gz
%{_mandir}/man3/sd_event_source_set_enabled.3.gz
%{_mandir}/man3/sd_event_source_set_exit_on_failure.3.gz
%{_mandir}/man3/sd_event_source_set_floating.3.gz
%{_mandir}/man3/sd_event_source_set_io_events.3.gz
%{_mandir}/man3/sd_event_source_set_io_fd.3.gz
%{_mandir}/man3/sd_event_source_set_io_fd_own.3.gz
%{_mandir}/man3/sd_event_source_set_memory_pressure_period.3.gz
%{_mandir}/man3/sd_event_source_set_memory_pressure_type.3.gz
%{_mandir}/man3/sd_event_source_set_prepare.3.gz
%{_mandir}/man3/sd_event_source_set_priority.3.gz
%{_mandir}/man3/sd_event_source_set_ratelimit.3.gz
%{_mandir}/man3/sd_event_source_set_ratelimit_expire_callback.3.gz
%{_mandir}/man3/sd_event_source_set_time.3.gz
%{_mandir}/man3/sd_event_source_set_time_accuracy.3.gz
%{_mandir}/man3/sd_event_source_set_time_relative.3.gz
%{_mandir}/man3/sd_event_source_set_userdata.3.gz
%{_mandir}/man3/sd_event_source_unref.3.gz
%{_mandir}/man3/sd_event_source_unrefp.3.gz
%{_mandir}/man3/sd_event_time_handler_t.3.gz
%{_mandir}/man3/sd_event_trim_memory.3.gz
%{_mandir}/man3/sd_event_unref.3.gz
%{_mandir}/man3/sd_event_unrefp.3.gz
%{_mandir}/man3/sd_event_wait.3.gz
%{_mandir}/man3/sd_get_machine_names.3.gz
%{_mandir}/man3/sd_get_seats.3.gz
%{_mandir}/man3/sd_get_sessions.3.gz
%{_mandir}/man3/sd_get_uids.3.gz
%{_mandir}/man3/sd_hwdb_enumerate.3.gz
%{_mandir}/man3/sd_hwdb_get.3.gz
%{_mandir}/man3/sd_hwdb_new.3.gz
%{_mandir}/man3/sd_hwdb_new_from_path.3.gz
%{_mandir}/man3/sd_hwdb_ref.3.gz
%{_mandir}/man3/sd_hwdb_seek.3.gz
%{_mandir}/man3/sd_hwdb_unref.3.gz
%{_mandir}/man3/sd_id128_equal.3.gz
%{_mandir}/man3/sd_id128_from_string.3.gz
%{_mandir}/man3/sd_id128_get_app_specific.3.gz
%{_mandir}/man3/sd_id128_get_boot.3.gz
%{_mandir}/man3/sd_id128_get_boot_app_specific.3.gz
%{_mandir}/man3/sd_id128_get_invocation.3.gz
%{_mandir}/man3/sd_id128_get_machine.3.gz
%{_mandir}/man3/sd_id128_get_machine_app_specific.3.gz
%{_mandir}/man3/sd_id128_in_set.3.gz
%{_mandir}/man3/sd_id128_in_set_sentinel.3.gz
%{_mandir}/man3/sd_id128_in_setv.3.gz
%{_mandir}/man3/sd_id128_is_allf.3.gz
%{_mandir}/man3/sd_id128_is_null.3.gz
%{_mandir}/man3/sd_id128_randomize.3.gz
%{_mandir}/man3/sd_id128_string_equal.3.gz
%{_mandir}/man3/sd_id128_t.3.gz
%{_mandir}/man3/sd_id128_to_string.3.gz
%{_mandir}/man3/sd_id128_to_uuid_string.3.gz
%{_mandir}/man3/sd_is_fifo.3.gz
%{_mandir}/man3/sd_is_mq.3.gz
%{_mandir}/man3/sd_is_socket.3.gz
%{_mandir}/man3/sd_is_socket_inet.3.gz
%{_mandir}/man3/sd_is_socket_sockaddr.3.gz
%{_mandir}/man3/sd_is_socket_unix.3.gz
%{_mandir}/man3/sd_is_special.3.gz
%{_mandir}/man3/sd_journal.3.gz
%{_mandir}/man3/sd_journal_add_conjunction.3.gz
%{_mandir}/man3/sd_journal_add_disjunction.3.gz
%{_mandir}/man3/sd_journal_add_match.3.gz
%{_mandir}/man3/sd_journal_close.3.gz
%{_mandir}/man3/sd_journal_enumerate_available_data.3.gz
%{_mandir}/man3/sd_journal_enumerate_available_unique.3.gz
%{_mandir}/man3/sd_journal_enumerate_data.3.gz
%{_mandir}/man3/sd_journal_enumerate_fields.3.gz
%{_mandir}/man3/sd_journal_enumerate_unique.3.gz
%{_mandir}/man3/sd_journal_flush_matches.3.gz
%{_mandir}/man3/sd_journal_get_catalog.3.gz
%{_mandir}/man3/sd_journal_get_catalog_for_message_id.3.gz
%{_mandir}/man3/sd_journal_get_cursor.3.gz
%{_mandir}/man3/sd_journal_get_cutoff_monotonic_usec.3.gz
%{_mandir}/man3/sd_journal_get_cutoff_realtime_usec.3.gz
%{_mandir}/man3/sd_journal_get_data.3.gz
%{_mandir}/man3/sd_journal_get_data_threshold.3.gz
%{_mandir}/man3/sd_journal_get_events.3.gz
%{_mandir}/man3/sd_journal_get_fd.3.gz
%{_mandir}/man3/sd_journal_get_monotonic_usec.3.gz
%{_mandir}/man3/sd_journal_get_realtime_usec.3.gz
%{_mandir}/man3/sd_journal_get_seqnum.3.gz
%{_mandir}/man3/sd_journal_get_timeout.3.gz
%{_mandir}/man3/sd_journal_get_usage.3.gz
%{_mandir}/man3/sd_journal_has_persistent_files.3.gz
%{_mandir}/man3/sd_journal_has_runtime_files.3.gz
%{_mandir}/man3/sd_journal_next.3.gz
%{_mandir}/man3/sd_journal_next_skip.3.gz
%{_mandir}/man3/sd_journal_open.3.gz
%{_mandir}/man3/sd_journal_open_directory.3.gz
%{_mandir}/man3/sd_journal_open_directory_fd.3.gz
%{_mandir}/man3/sd_journal_open_files.3.gz
%{_mandir}/man3/sd_journal_open_files_fd.3.gz
%{_mandir}/man3/sd_journal_open_namespace.3.gz
%{_mandir}/man3/sd_journal_perror.3.gz
%{_mandir}/man3/sd_journal_perror_with_location.3.gz
%{_mandir}/man3/sd_journal_previous.3.gz
%{_mandir}/man3/sd_journal_previous_skip.3.gz
%{_mandir}/man3/sd_journal_print.3.gz
%{_mandir}/man3/sd_journal_print_with_location.3.gz
%{_mandir}/man3/sd_journal_printv.3.gz
%{_mandir}/man3/sd_journal_printv_with_location.3.gz
%{_mandir}/man3/sd_journal_process.3.gz
%{_mandir}/man3/sd_journal_query_unique.3.gz
%{_mandir}/man3/sd_journal_reliable_fd.3.gz
%{_mandir}/man3/sd_journal_restart_data.3.gz
%{_mandir}/man3/sd_journal_restart_fields.3.gz
%{_mandir}/man3/sd_journal_restart_unique.3.gz
%{_mandir}/man3/sd_journal_seek_cursor.3.gz
%{_mandir}/man3/sd_journal_seek_head.3.gz
%{_mandir}/man3/sd_journal_seek_monotonic_usec.3.gz
%{_mandir}/man3/sd_journal_seek_realtime_usec.3.gz
%{_mandir}/man3/sd_journal_seek_tail.3.gz
%{_mandir}/man3/sd_journal_send.3.gz
%{_mandir}/man3/sd_journal_send_with_location.3.gz
%{_mandir}/man3/sd_journal_sendv.3.gz
%{_mandir}/man3/sd_journal_sendv_with_location.3.gz
%{_mandir}/man3/sd_journal_set_data_threshold.3.gz
%{_mandir}/man3/sd_journal_step_one.3.gz
%{_mandir}/man3/sd_journal_stream_fd.3.gz
%{_mandir}/man3/sd_journal_stream_fd_with_namespace.3.gz
%{_mandir}/man3/sd_journal_test_cursor.3.gz
%{_mandir}/man3/sd_journal_wait.3.gz
%{_mandir}/man3/sd_listen_fds.3.gz
%{_mandir}/man3/sd_listen_fds_with_names.3.gz
%{_mandir}/man3/sd_login_monitor.3.gz
%{_mandir}/man3/sd_login_monitor_flush.3.gz
%{_mandir}/man3/sd_login_monitor_get_events.3.gz
%{_mandir}/man3/sd_login_monitor_get_fd.3.gz
%{_mandir}/man3/sd_login_monitor_get_timeout.3.gz
%{_mandir}/man3/sd_login_monitor_new.3.gz
%{_mandir}/man3/sd_login_monitor_unref.3.gz
%{_mandir}/man3/sd_login_monitor_unrefp.3.gz
%{_mandir}/man3/sd_machine_get_class.3.gz
%{_mandir}/man3/sd_machine_get_ifindices.3.gz
%{_mandir}/man3/sd_notify.3.gz
%{_mandir}/man3/sd_notify_barrier.3.gz
%{_mandir}/man3/sd_notifyf.3.gz
%{_mandir}/man3/sd_path_lookup.3.gz
%{_mandir}/man3/sd_path_lookup_strv.3.gz
%{_mandir}/man3/sd_peer_get_cgroup.3.gz
%{_mandir}/man3/sd_peer_get_machine_name.3.gz
%{_mandir}/man3/sd_peer_get_owner_uid.3.gz
%{_mandir}/man3/sd_peer_get_session.3.gz
%{_mandir}/man3/sd_peer_get_slice.3.gz
%{_mandir}/man3/sd_peer_get_unit.3.gz
%{_mandir}/man3/sd_peer_get_user_slice.3.gz
%{_mandir}/man3/sd_peer_get_user_unit.3.gz
%{_mandir}/man3/sd_pid_get_cgroup.3.gz
%{_mandir}/man3/sd_pid_get_machine_name.3.gz
%{_mandir}/man3/sd_pid_get_owner_uid.3.gz
%{_mandir}/man3/sd_pid_get_session.3.gz
%{_mandir}/man3/sd_pid_get_slice.3.gz
%{_mandir}/man3/sd_pid_get_unit.3.gz
%{_mandir}/man3/sd_pid_get_user_slice.3.gz
%{_mandir}/man3/sd_pid_get_user_unit.3.gz
%{_mandir}/man3/sd_pid_notify.3.gz
%{_mandir}/man3/sd_pid_notify_barrier.3.gz
%{_mandir}/man3/sd_pid_notify_with_fds.3.gz
%{_mandir}/man3/sd_pid_notifyf.3.gz
%{_mandir}/man3/sd_pid_notifyf_with_fds.3.gz
%{_mandir}/man3/sd_pidfd_get_cgroup.3.gz
%{_mandir}/man3/sd_pidfd_get_machine_name.3.gz
%{_mandir}/man3/sd_pidfd_get_owner_uid.3.gz
%{_mandir}/man3/sd_pidfd_get_session.3.gz
%{_mandir}/man3/sd_pidfd_get_slice.3.gz
%{_mandir}/man3/sd_pidfd_get_unit.3.gz
%{_mandir}/man3/sd_pidfd_get_user_slice.3.gz
%{_mandir}/man3/sd_pidfd_get_user_unit.3.gz
%{_mandir}/man3/sd_seat_can_graphical.3.gz
%{_mandir}/man3/sd_seat_can_tty.3.gz
%{_mandir}/man3/sd_seat_get_active.3.gz
%{_mandir}/man3/sd_seat_get_sessions.3.gz
%{_mandir}/man3/sd_session_get_class.3.gz
%{_mandir}/man3/sd_session_get_desktop.3.gz
%{_mandir}/man3/sd_session_get_display.3.gz
%{_mandir}/man3/sd_session_get_leader.3.gz
%{_mandir}/man3/sd_session_get_remote_host.3.gz
%{_mandir}/man3/sd_session_get_remote_user.3.gz
%{_mandir}/man3/sd_session_get_seat.3.gz
%{_mandir}/man3/sd_session_get_service.3.gz
%{_mandir}/man3/sd_session_get_start_time.3.gz
%{_mandir}/man3/sd_session_get_state.3.gz
%{_mandir}/man3/sd_session_get_tty.3.gz
%{_mandir}/man3/sd_session_get_type.3.gz
%{_mandir}/man3/sd_session_get_uid.3.gz
%{_mandir}/man3/sd_session_get_username.3.gz
%{_mandir}/man3/sd_session_get_vt.3.gz
%{_mandir}/man3/sd_session_is_active.3.gz
%{_mandir}/man3/sd_session_is_remote.3.gz
%{_mandir}/man3/sd_uid_get_display.3.gz
%{_mandir}/man3/sd_uid_get_login_time.3.gz
%{_mandir}/man3/sd_uid_get_seats.3.gz
%{_mandir}/man3/sd_uid_get_sessions.3.gz
%{_mandir}/man3/sd_uid_get_state.3.gz
%{_mandir}/man3/sd_uid_is_on_seat.3.gz
%{_mandir}/man3/sd_watchdog_enabled.3.gz
%{_mandir}/man3/udev_device_get_action.3.gz
%{_mandir}/man3/udev_device_get_current_tags_list_entry.3.gz
%{_mandir}/man3/udev_device_get_devlinks_list_entry.3.gz
%{_mandir}/man3/udev_device_get_devnode.3.gz
%{_mandir}/man3/udev_device_get_devnum.3.gz
%{_mandir}/man3/udev_device_get_devpath.3.gz
%{_mandir}/man3/udev_device_get_devtype.3.gz
%{_mandir}/man3/udev_device_get_driver.3.gz
%{_mandir}/man3/udev_device_get_is_initialized.3.gz
%{_mandir}/man3/udev_device_get_parent.3.gz
%{_mandir}/man3/udev_device_get_parent_with_subsystem_devtype.3.gz
%{_mandir}/man3/udev_device_get_properties_list_entry.3.gz
%{_mandir}/man3/udev_device_get_property_value.3.gz
%{_mandir}/man3/udev_device_get_subsystem.3.gz
%{_mandir}/man3/udev_device_get_sysattr_list_entry.3.gz
%{_mandir}/man3/udev_device_get_sysattr_value.3.gz
%{_mandir}/man3/udev_device_get_sysname.3.gz
%{_mandir}/man3/udev_device_get_sysnum.3.gz
%{_mandir}/man3/udev_device_get_syspath.3.gz
%{_mandir}/man3/udev_device_get_tags_list_entry.3.gz
%{_mandir}/man3/udev_device_get_udev.3.gz
%{_mandir}/man3/udev_device_has_current_tag.3.gz
%{_mandir}/man3/udev_device_has_tag.3.gz
%{_mandir}/man3/udev_device_new_from_device_id.3.gz
%{_mandir}/man3/udev_device_new_from_devnum.3.gz
%{_mandir}/man3/udev_device_new_from_environment.3.gz
%{_mandir}/man3/udev_device_new_from_subsystem_sysname.3.gz
%{_mandir}/man3/udev_device_new_from_syspath.3.gz
%{_mandir}/man3/udev_device_ref.3.gz
%{_mandir}/man3/udev_device_set_sysattr_value.3.gz
%{_mandir}/man3/udev_device_unref.3.gz
%{_mandir}/man3/udev_enumerate_add_match_is_initialized.3.gz
%{_mandir}/man3/udev_enumerate_add_match_parent.3.gz
%{_mandir}/man3/udev_enumerate_add_match_property.3.gz
%{_mandir}/man3/udev_enumerate_add_match_subsystem.3.gz
%{_mandir}/man3/udev_enumerate_add_match_sysattr.3.gz
%{_mandir}/man3/udev_enumerate_add_match_sysname.3.gz
%{_mandir}/man3/udev_enumerate_add_match_tag.3.gz
%{_mandir}/man3/udev_enumerate_add_nomatch_subsystem.3.gz
%{_mandir}/man3/udev_enumerate_add_nomatch_sysattr.3.gz
%{_mandir}/man3/udev_enumerate_add_syspath.3.gz
%{_mandir}/man3/udev_enumerate_get_list_entry.3.gz
%{_mandir}/man3/udev_enumerate_get_udev.3.gz
%{_mandir}/man3/udev_enumerate_new.3.gz
%{_mandir}/man3/udev_enumerate_ref.3.gz
%{_mandir}/man3/udev_enumerate_scan_devices.3.gz
%{_mandir}/man3/udev_enumerate_scan_subsystems.3.gz
%{_mandir}/man3/udev_enumerate_unref.3.gz
%{_mandir}/man3/udev_list_entry.3.gz
%{_mandir}/man3/udev_list_entry_get_by_name.3.gz
%{_mandir}/man3/udev_list_entry_get_name.3.gz
%{_mandir}/man3/udev_list_entry_get_next.3.gz
%{_mandir}/man3/udev_list_entry_get_value.3.gz
%{_mandir}/man3/udev_monitor_enable_receiving.3.gz
%{_mandir}/man3/udev_monitor_filter_add_match_subsystem_devtype.3.gz
%{_mandir}/man3/udev_monitor_filter_add_match_tag.3.gz
%{_mandir}/man3/udev_monitor_filter_remove.3.gz
%{_mandir}/man3/udev_monitor_filter_update.3.gz
%{_mandir}/man3/udev_monitor_get_fd.3.gz
%{_mandir}/man3/udev_monitor_get_udev.3.gz
%{_mandir}/man3/udev_monitor_new_from_netlink.3.gz
%{_mandir}/man3/udev_monitor_receive_device.3.gz
%{_mandir}/man3/udev_monitor_ref.3.gz
%{_mandir}/man3/udev_monitor_set_receive_buffer_size.3.gz
%{_mandir}/man3/udev_monitor_unref.3.gz
%{_mandir}/man3/udev_new.3.gz
%{_mandir}/man3/udev_ref.3.gz
%{_mandir}/man3/udev_unref.3.gz
%endif

170
files.experimental Normal file
View File

@ -0,0 +1,170 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%dir %{_prefix}/lib/pcrlock.d
%dir %{_prefix}/lib/pcrlock.d/400-secureboot-separator.pcrlock.d
%dir %{_prefix}/lib/pcrlock.d/500-separator.pcrlock.d
%dir %{_prefix}/lib/pcrlock.d/700-action-efi-exit-boot-services.pcrlock.d
%dir %{_sysconfdir}/systemd/oomd.conf.d
%if %{with sd_boot}
%dir %{_unitdir}/initrd.target.wants
%endif
# Main config files have been replaced in favor of drop-ins.
%ghost %{_sysconfdir}/systemd/oomd.conf
%{_bindir}/oomctl
%{_bindir}/run0
%{_bindir}/systemd-vmspawn
%if %{with sd_boot}
%{_bindir}/ukify
%endif
%{_datadir}/bash-completion/completions/oomctl
%{_datadir}/bash-completion/completions/run0
%{_datadir}/bash-completion/completions/systemd-vmspawn
%{_datadir}/dbus-1/interfaces/org.freedesktop.oom1.Manager.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.portable1.Image.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.portable1.Manager.xml
%{_datadir}/dbus-1/system-services/org.freedesktop.oom1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.oom1.conf
%{_datadir}/zsh/site-functions/_oomctl
%{_datadir}/zsh/site-functions/_run0
%{_mandir}/man1/oomctl.1.gz
%{_mandir}/man1/run0.1.gz
%{_mandir}/man1/systemd-measure.1.gz
%{_mandir}/man1/systemd-vmspawn.1.gz
%if %{with sd_boot}
%{_mandir}/man1/ukify.1.gz
%endif
%{_mandir}/man5/oomd.conf.5.gz
%{_mandir}/man5/oomd.conf.d.5.gz
%{_mandir}/man5/org.freedesktop.oom1.5.gz
%{_mandir}/man5/systemd.pcrlock.5.gz
%{_mandir}/man5/systemd.pcrlock.d.5.gz
%{_mandir}/man5/sysupdate.d.5.gz
%{_mandir}/man8/systemd-bsod.8.gz
%{_mandir}/man8/systemd-bsod.service.8.gz
%{_mandir}/man8/systemd-oomd.8.gz
%{_mandir}/man8/systemd-oomd.service.8.gz
%if %{with sd_boot}
%{_mandir}/man8/systemd-pcrextend.8.gz
%{_mandir}/man8/systemd-pcrfs-root.service.8.gz
%{_mandir}/man8/systemd-pcrfs@.service.8.gz
%{_mandir}/man8/systemd-pcrlock-file-system.service.8.gz
%{_mandir}/man8/systemd-pcrlock-firmware-code.service.8.gz
%{_mandir}/man8/systemd-pcrlock-firmware-config.service.8.gz
%{_mandir}/man8/systemd-pcrlock-machine-id.service.8.gz
%{_mandir}/man8/systemd-pcrlock-make-policy.service.8.gz
%{_mandir}/man8/systemd-pcrlock-secureboot-authority.service.8.gz
%{_mandir}/man8/systemd-pcrlock-secureboot-policy.service.8.gz
%{_mandir}/man8/systemd-pcrlock.8.gz
%{_mandir}/man8/systemd-pcrmachine.service.8.gz
%{_mandir}/man8/systemd-pcrphase-initrd.service.8.gz
%{_mandir}/man8/systemd-pcrphase-sysinit.service.8.gz
%{_mandir}/man8/systemd-pcrphase.service.8.gz
%endif
%{_mandir}/man8/systemd-storagetm.8.gz
%{_mandir}/man8/systemd-storagetm.service.8.gz
%{_mandir}/man8/systemd-sysupdate-reboot.service.8.gz
%{_mandir}/man8/systemd-sysupdate-reboot.timer.8.gz
%{_mandir}/man8/systemd-sysupdate.8.gz
%{_mandir}/man8/systemd-sysupdate.service.8.gz
%{_mandir}/man8/systemd-sysupdate.timer.8.gz
%{_mandir}/man8/systemd-tpm2-generator.8.gz
%if %{with sd_boot}
%{_mandir}/man8/systemd-tpm2-setup-early.service.8.gz
%{_mandir}/man8/systemd-tpm2-setup.8.gz
%{_mandir}/man8/systemd-tpm2-setup.service.8.gz
%{_prefix}/lib/kernel/install.d/60-ukify.install
%endif
%{_pam_vendordir}/systemd-run0
%{_prefix}/lib/pcrlock.d/350-action-efi-application.pcrlock
%{_prefix}/lib/pcrlock.d/400-secureboot-separator.pcrlock.d/300-0x00000000.pcrlock
%{_prefix}/lib/pcrlock.d/400-secureboot-separator.pcrlock.d/600-0xffffffff.pcrlock
%{_prefix}/lib/pcrlock.d/500-separator.pcrlock.d/300-0x00000000.pcrlock
%{_prefix}/lib/pcrlock.d/500-separator.pcrlock.d/600-0xffffffff.pcrlock
%{_prefix}/lib/pcrlock.d/700-action-efi-exit-boot-services.pcrlock.d/300-present.pcrlock
%{_prefix}/lib/pcrlock.d/700-action-efi-exit-boot-services.pcrlock.d/600-absent.pcrlock
%{_prefix}/lib/pcrlock.d/750-enter-initrd.pcrlock
%{_prefix}/lib/pcrlock.d/800-leave-initrd.pcrlock
%{_prefix}/lib/pcrlock.d/850-sysinit.pcrlock
%{_prefix}/lib/pcrlock.d/900-ready.pcrlock
%{_prefix}/lib/pcrlock.d/950-shutdown.pcrlock
%{_prefix}/lib/pcrlock.d/990-final.pcrlock
%{_systemd_util_dir}/oomd.conf
%{_systemd_util_dir}/systemd-bsod
%{_systemd_util_dir}/systemd-measure
%{_systemd_util_dir}/systemd-oomd
%if %{with sd_boot}
%{_systemd_util_dir}/systemd-pcrextend
%endif
%{_systemd_util_dir}/systemd-pcrlock
%{_systemd_util_dir}/systemd-storagetm
%{_systemd_util_dir}/systemd-sysupdate
%if %{with sd_boot}
%{_systemd_util_dir}/systemd-tpm2-setup
%endif
%{_systemd_util_dir}/systemd-userwork
%if %{with sd_boot}
%{_systemd_util_dir}/ukify
%endif
%{_systemdgeneratordir}/systemd-tpm2-generator
%{_sysusersdir}/systemd-oom.conf
%{_unitdir}/initrd.target.wants/systemd-bsod.service
%if %{with sd_boot}
%{_unitdir}/initrd.target.wants/systemd-pcrphase-initrd.service
%{_unitdir}/sockets.target.wants/systemd-pcrextend.socket
%{_unitdir}/sockets.target.wants/systemd-pcrlock.socket
%endif
%{_unitdir}/storage-target-mode.target
%if %{with sd_boot}
%{_unitdir}/sysinit.target.wants/systemd-pcrmachine.service
%{_unitdir}/sysinit.target.wants/systemd-pcrphase-sysinit.service
%{_unitdir}/sysinit.target.wants/systemd-pcrphase.service
%{_unitdir}/sysinit.target.wants/systemd-tpm2-setup-early.service
%{_unitdir}/sysinit.target.wants/systemd-tpm2-setup.service
%endif
%{_unitdir}/systemd-bsod.service
%{_unitdir}/systemd-oomd.service
%{_unitdir}/systemd-oomd.socket
%if %{with sd_boot}
%{_unitdir}/systemd-pcrextend.socket
%{_unitdir}/systemd-pcrextend@.service
%{_unitdir}/systemd-pcrfs-root.service
%{_unitdir}/systemd-pcrfs@.service
%{_unitdir}/systemd-pcrlock-file-system.service
%{_unitdir}/systemd-pcrlock-firmware-code.service
%{_unitdir}/systemd-pcrlock-firmware-config.service
%{_unitdir}/systemd-pcrlock-machine-id.service
%{_unitdir}/systemd-pcrlock-make-policy.service
%{_unitdir}/systemd-pcrlock-secureboot-authority.service
%{_unitdir}/systemd-pcrlock-secureboot-policy.service
%{_unitdir}/systemd-pcrlock.socket
%{_unitdir}/systemd-pcrlock@.service
%{_unitdir}/systemd-pcrmachine.service
%{_unitdir}/systemd-pcrphase-initrd.service
%{_unitdir}/systemd-pcrphase-sysinit.service
%{_unitdir}/systemd-pcrphase.service
%endif
%{_unitdir}/systemd-storagetm.service
%{_unitdir}/systemd-sysupdate-reboot.service
%{_unitdir}/systemd-sysupdate-reboot.timer
%{_unitdir}/systemd-sysupdate.service
%{_unitdir}/systemd-sysupdate.timer
%if %{with sd_boot}
%{_unitdir}/systemd-tpm2-setup-early.service
%{_unitdir}/systemd-tpm2-setup.service
%endif
%{_unitdir}/systemd-vmspawn@.service
# ssh-generator: in the futur to be moved to the main package
%{_systemdgeneratordir}/systemd-ssh-generator
%if %{without bootstrap}
%{_mandir}/man8/systemd-ssh-generator.8.gz
%endif
# the ssh proxy will likely be promoted to systemd-container
%dir %{_distconfdir}/ssh
%dir %{_distconfdir}/ssh/ssh_config.d
%{_distconfdir}/ssh/ssh_config.d/20-systemd-ssh-proxy.conf
%{_systemd_util_dir}/systemd-ssh-proxy
%if %{without bootstrap}
%{_mandir}/man1/systemd-ssh-proxy.1.gz
%endif

29
files.homed Normal file
View File

@ -0,0 +1,29 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%dir %{_distconfdir}/ssh
%dir %{_distconfdir}/ssh/sshd_config.d
%{_bindir}/homectl
%{_bindir}/systemd-home-fallback-shell
%{_datadir}/bash-completion/completions/homectl
%{_datadir}/dbus-1/interfaces/org.freedesktop.home1.Home.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.home1.Manager.xml
%{_datadir}/dbus-1/system-services/org.freedesktop.home1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.home1.conf
%{_datadir}/polkit-1/actions/org.freedesktop.home1.policy
%{_distconfdir}/ssh/sshd_config.d/20-systemd-userdb.conf
%{_mandir}/man1/homectl.1.gz
%{_mandir}/man1/systemd-homed-firstboot.service.1.gz
%{_mandir}/man5/homed.conf.5.gz
%{_mandir}/man5/homed.conf.d.5.gz
%{_mandir}/man5/org.freedesktop.home1.5.gz
%{_mandir}/man8/pam_systemd_home.8.gz
%{_mandir}/man8/systemd-homed.8.gz
%{_mandir}/man8/systemd-homed.service.8.gz
%{_pam_moduledir}/pam_systemd_home.so
%{_systemd_util_dir}/homed.conf
%{_systemd_util_dir}/systemd-homed
%{_systemd_util_dir}/systemd-homework
%{_unitdir}/systemd-homed-activate.service
%{_unitdir}/systemd-homed-firstboot.service
%{_unitdir}/systemd-homed.service

34
files.journal-remote Normal file
View File

@ -0,0 +1,34 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%dir %{_sysconfdir}/systemd/journal-remote.conf.d
%dir %{_sysconfdir}/systemd/journal-upload.conf.d
%ghost %dir %{_localstatedir}/log/journal/remote
# Main config files have been replaced in favor of drop-ins.
%ghost %{_sysconfdir}/systemd/journal-remote.conf
%ghost %{_sysconfdir}/systemd/journal-upload.conf
%{_datadir}/systemd/gatewayd
%{_datadir}/systemd/gatewayd/browse.html
%{_mandir}/man5/journal-remote.conf.5.gz
%{_mandir}/man5/journal-remote.conf.d.5.gz
%{_mandir}/man5/journal-upload.conf.5.gz
%{_mandir}/man5/journal-upload.conf.d.5.gz
%{_mandir}/man8/systemd-journal-gatewayd.8.gz
%{_mandir}/man8/systemd-journal-gatewayd.service.8.gz
%{_mandir}/man8/systemd-journal-gatewayd.socket.8.gz
%{_mandir}/man8/systemd-journal-remote.8.gz
%{_mandir}/man8/systemd-journal-remote.service.8.gz
%{_mandir}/man8/systemd-journal-remote.socket.8.gz
%{_mandir}/man8/systemd-journal-upload.8.gz
%{_mandir}/man8/systemd-journal-upload.service.8.gz
%{_systemd_util_dir}/journal-remote.conf
%{_systemd_util_dir}/journal-upload.conf
%{_systemd_util_dir}/systemd-journal-gatewayd
%{_systemd_util_dir}/systemd-journal-remote
%{_systemd_util_dir}/systemd-journal-upload
%{_sysusersdir}/systemd-remote.conf
%{_unitdir}/systemd-journal-gatewayd.service
%{_unitdir}/systemd-journal-gatewayd.socket
%{_unitdir}/systemd-journal-remote.service
%{_unitdir}/systemd-journal-remote.socket
%{_unitdir}/systemd-journal-upload.service

19
files.lang Normal file
View File

@ -0,0 +1,19 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%lang(be) %{_journalcatalogdir}/systemd.be.catalog
%lang(be@latin) %{_journalcatalogdir}/systemd.be@latin.catalog
%lang(bg) %{_journalcatalogdir}/systemd.bg.catalog
%lang(da) %{_journalcatalogdir}/systemd.da.catalog
%lang(de) %{_journalcatalogdir}/systemd.de.catalog
%lang(fr) %{_journalcatalogdir}/systemd.fr.catalog
%lang(hr) %{_journalcatalogdir}/systemd.hr.catalog
%lang(hu) %{_journalcatalogdir}/systemd.hu.catalog
%lang(it) %{_journalcatalogdir}/systemd.it.catalog
%lang(ko) %{_journalcatalogdir}/systemd.ko.catalog
%lang(pl) %{_journalcatalogdir}/systemd.pl.catalog
%lang(pt_BR) %{_journalcatalogdir}/systemd.pt_BR.catalog
%lang(ru) %{_journalcatalogdir}/systemd.ru.catalog
%lang(sr) %{_journalcatalogdir}/systemd.sr.catalog
%lang(zh_CN) %{_journalcatalogdir}/systemd.zh_CN.catalog
%lang(zh_TW) %{_journalcatalogdir}/systemd.zh_TW.catalog

84
files.network Normal file
View File

@ -0,0 +1,84 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%if %{with networkd}
%dir %{_sysconfdir}/systemd/network
%dir %{_sysconfdir}/systemd/networkd.conf.d
%dir %{_systemd_util_dir}/network
# Main config files have been replaced in favor of drop-ins.
%ghost %{_sysconfdir}/systemd/networkd.conf
%{_bindir}/networkctl
%{_datadir}/bash-completion/completions/networkctl
%{_datadir}/dbus-1/interfaces/org.freedesktop.network1.DHCPServer.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.network1.DHCPv4Client.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.network1.DHCPv6Client.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.network1.Link.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.network1.Manager.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.network1.Network.xml
%{_datadir}/dbus-1/system-services/org.freedesktop.network1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.network1.conf
%{_datadir}/polkit-1/actions/org.freedesktop.network1.policy
%{_datadir}/polkit-1/rules.d/60-systemd-networkd.rules
%{_datadir}/zsh/site-functions/_networkctl
%{_mandir}/man1/networkctl.1.gz
%{_mandir}/man5/networkd.conf.5.gz
%{_mandir}/man5/networkd.conf.d.5.gz
%{_mandir}/man5/org.freedesktop.network1.5.gz
%{_mandir}/man5/systemd.network.5.gz
%{_mandir}/man8/systemd-networkd-wait-online.8.gz
%{_mandir}/man8/systemd-networkd-wait-online.service.8.gz
%{_mandir}/man8/systemd-networkd-wait-online@.service.8.gz
%{_mandir}/man8/systemd-networkd.8.gz
%{_mandir}/man8/systemd-networkd.service.8.gz
%{_systemd_util_dir}/network/80-6rd-tunnel.link
%{_systemd_util_dir}/network/80-6rd-tunnel.network
%{_systemd_util_dir}/network/80-auto-link-local.network.example
%{_systemd_util_dir}/network/80-container-host0.network
%{_systemd_util_dir}/network/80-container-host0-tun.network
%{_systemd_util_dir}/network/80-vm-vt.link
%{_systemd_util_dir}/network/80-vm-vt.network
%{_systemd_util_dir}/network/80-wifi-adhoc.network
%{_systemd_util_dir}/network/80-wifi-ap.network.example
%{_systemd_util_dir}/network/80-wifi-station.network.example
%{_systemd_util_dir}/network/89-ethernet.network.example
%{_systemd_util_dir}/networkd.conf
%{_systemd_util_dir}/systemd-networkd
%{_systemd_util_dir}/systemd-networkd-wait-online
%{_sysusersdir}/systemd-network.conf
%{_tmpfilesdir}/systemd-network.conf
%{_unitdir}/systemd-networkd-persistent-storage.service
%{_unitdir}/systemd-networkd-wait-online.service
%{_unitdir}/systemd-networkd-wait-online@.service
%{_unitdir}/systemd-networkd.service
%{_unitdir}/systemd-networkd.socket
%endif
%if %{with resolved}
%dir %{_sysconfdir}/systemd/resolved.conf.d
%{_bindir}/resolvectl
%{_bindir}/systemd-resolve
%{_datadir}/bash-completion/completions/resolvectl
%{_datadir}/bash-completion/completions/systemd-resolve
%{_datadir}/dbus-1/interfaces/org.freedesktop.resolve1.DnssdService.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.resolve1.Link.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.resolve1.Manager.xml
%{_datadir}/dbus-1/system-services/org.freedesktop.resolve1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.resolve1.conf
%{_datadir}/polkit-1/actions/org.freedesktop.resolve1.policy
%{_datadir}/zsh/site-functions/_resolvectl
%{_libdir}/libnss_resolve.so.2
%{_mandir}/man1/resolvectl.1.gz
%{_mandir}/man5/org.freedesktop.resolve1.5.gz
%{_mandir}/man5/resolved.conf.5.gz
%{_mandir}/man5/resolved.conf.d.5.gz
%{_mandir}/man8/libnss_resolve.so.2.8.gz
%{_mandir}/man8/nss-resolve.8.gz
%{_mandir}/man8/systemd-resolved.8.gz
%{_mandir}/man8/systemd-resolved.service.8.gz
%{_systemd_util_dir}/resolv.conf
%{_systemd_util_dir}/resolved.conf
%{_systemd_util_dir}/systemd-resolved
%{_sysusersdir}/systemd-resolve.conf
%{_tmpfilesdir}/systemd-resolve.conf
%{_unitdir}/systemd-resolved.service
%endif

15
files.portable Normal file
View File

@ -0,0 +1,15 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%{_bindir}/portablectl
%{_datadir}/dbus-1/system-services/org.freedesktop.portable1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.portable1.conf
%{_datadir}/polkit-1/actions/org.freedesktop.portable1.policy
%{_mandir}/man1/portablectl.1.gz
%{_mandir}/man8/systemd-portabled.8.gz
%{_mandir}/man8/systemd-portabled.service.8.gz
%{_systemd_util_dir}/portable
%{_systemd_util_dir}/systemd-portabled
%{_tmpfilesdir}/portables.conf
%{_unitdir}/dbus-org.freedesktop.portable1.service
%{_unitdir}/systemd-portabled.service

705
files.systemd Normal file
View File

@ -0,0 +1,705 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%dir %{_binfmtdir}
%if %{without bootstrap}
%dir %{_datadir}/bash-completion
%dir %{_datadir}/bash-completion/completions
%endif
%dir %{_datadir}/dbus-1
%dir %{_datadir}/dbus-1/interfaces
%dir %{_datadir}/dbus-1/services
%dir %{_datadir}/dbus-1/system-services
%dir %{_datadir}/dbus-1/system.d
%dir %{_datadir}/factory
%dir %{_datadir}/polkit-1
%dir %{_datadir}/polkit-1/actions
%dir %{_datadir}/systemd
%if %{without bootstrap}
%dir %{_datadir}/zsh
%dir %{_datadir}/zsh/site-functions
%endif
%dir %{_environmentdir}
%dir %{_journalcatalogdir}
%dir %{_libdir}/systemd
%dir %{_localstatedir}/lib/systemd
%dir %{_localstatedir}/lib/systemd/catalog
%dir %{_localstatedir}/lib/systemd/coredump
%dir %{_localstatedir}/lib/systemd/rpm
%dir %{_modprobedir}
%dir %{_sysconfdir}/X11/xorg.conf.d
%dir %{_sysconfdir}/binfmt.d
%dir %{_sysconfdir}/sysctl.d
%dir %{_sysconfdir}/systemd
%dir %{_sysconfdir}/systemd/coredump.conf.d
%dir %{_sysconfdir}/systemd/journald.conf.d
%dir %{_sysconfdir}/systemd/logind.conf.d
%dir %{_sysconfdir}/systemd/system
%dir %{_sysconfdir}/systemd/system.conf.d
%dir %{_sysconfdir}/systemd/user
%dir %{_sysconfdir}/systemd/user.conf.d
%dir %{_sysconfdir}/sysusers.d
%dir %{_sysconfdir}/tmpfiles.d
%dir %{_sysconfdir}/xdg/systemd
%dir %{_sysctldir}
%dir %{_systemd_system_env_generator_dir}
%dir %{_systemd_user_env_generator_dir}
%dir %{_systemd_util_dir}
%dir %{_systemd_util_dir}/ntp-units.d
%dir %{_systemd_util_dir}/rpm
%dir %{_systemd_util_dir}/system-preset
%dir %{_systemd_util_dir}/system-shutdown
%dir %{_systemd_util_dir}/user
%dir %{_systemd_util_dir}/user-preset
%dir %{_systemdgeneratordir}
%dir %{_systemdusergeneratordir}
%dir %{_sysusersdir}
%dir %{_tmpfilesdir}
%dir %{_unitdir}
%dir %{_unitdir}/basic.target.wants
%dir %{_unitdir}/dbus.target.wants
%dir %{_unitdir}/default.target.wants
%dir %{_unitdir}/graphical.target.wants
%dir %{_unitdir}/halt.target.wants
%dir %{_unitdir}/initrd-root-device.target.wants
%dir %{_unitdir}/initrd-root-fs.target.wants
%dir %{_unitdir}/kexec.target.wants
%dir %{_unitdir}/local-fs.target.wants
%dir %{_unitdir}/multi-user.target.wants
%dir %{_unitdir}/poweroff.target.wants
%dir %{_unitdir}/reboot.target.wants
%dir %{_unitdir}/remote-fs.target.wants
%dir %{_unitdir}/rescue.target.wants
%dir %{_unitdir}/shutdown.target.wants
%dir %{_unitdir}/sockets.target.wants
%dir %{_unitdir}/sysinit.target.wants
%dir %{_unitdir}/timers.target.wants
%dir %{_unitdir}/user-.slice.d
%dir %{_unitdir}/user@.service.d
%dir %{_unitdir}/user@0.service.d
%dir %{xinitconfdir}
%dir %{xinitconfdir}/xinitrc.d
%doc %{_modprobedir}/README
%doc %{_sysctldir}/README
%doc %{_sysusersdir}/README
%doc %{_tmpfilesdir}/README
%exclude %{_sysconfdir}/sysctl.conf
%ghost %attr(0444,root,root) %config(noreplace) %{_sysconfdir}/machine-id
%ghost %config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf
%ghost %config(noreplace) %{_sysconfdir}/locale.conf
%ghost %config(noreplace) %{_sysconfdir}/machine-info
%ghost %dir %attr(2755, root, systemd-journal) %{_localstatedir}/log/journal
%ghost %{_localstatedir}/lib/systemd/catalog/database
# Main config files have been replaced in favor of drop-ins.
%ghost %{_sysconfdir}/systemd/journald.conf
%ghost %{_sysconfdir}/systemd/logind.conf
%ghost %{_sysconfdir}/systemd/system.conf
%ghost %{_sysconfdir}/systemd/user.conf
%license LICENSE.GPL2
%license LICENSE.LGPL2.1
%{_bindir}/busctl
%if %{without bootstrap}
%{_bindir}/coredumpctl
%endif
%{_bindir}/hostnamectl
%{_bindir}/journalctl
%{_bindir}/localectl
%{_bindir}/loginctl
%{_bindir}/systemctl
%{_bindir}/systemd-ac-power
%{_bindir}/systemd-analyze
%{_bindir}/systemd-ask-password
%{_bindir}/systemd-cat
%{_bindir}/systemd-cgls
%{_bindir}/systemd-cgtop
%{_bindir}/systemd-confext
%{_bindir}/systemd-creds
%{_bindir}/systemd-delta
%{_bindir}/systemd-detect-virt
%{_bindir}/systemd-dissect
%{_bindir}/systemd-escape
%{_bindir}/systemd-firstboot
%{_bindir}/systemd-id128
%{_bindir}/systemd-inhibit
%{_bindir}/systemd-machine-id-setup
%{_bindir}/systemd-mount
%{_bindir}/systemd-notify
%{_bindir}/systemd-path
%{_bindir}/systemd-run
%{_bindir}/systemd-socket-activate
%{_bindir}/systemd-stdio-bridge
%{_bindir}/systemd-sysext
%{_bindir}/systemd-sysusers
%{_bindir}/systemd-tmpfiles
%{_bindir}/systemd-tty-ask-password-agent
%{_bindir}/systemd-umount
%{_bindir}/systemd-vpick
%{_bindir}/timedatectl
%if %{without bootstrap}
%{_bindir}/userdbctl
%endif
%{_bindir}/varlinkctl
%if %{without bootstrap}
%{_datadir}/bash-completion/completions/busctl
%{_datadir}/bash-completion/completions/coredumpctl
%{_datadir}/bash-completion/completions/hostnamectl
%{_datadir}/bash-completion/completions/journalctl
%{_datadir}/bash-completion/completions/localectl
%{_datadir}/bash-completion/completions/loginctl
%{_datadir}/bash-completion/completions/portablectl
%{_datadir}/bash-completion/completions/systemctl
%{_datadir}/bash-completion/completions/systemd-analyze
%{_datadir}/bash-completion/completions/systemd-cat
%{_datadir}/bash-completion/completions/systemd-cgls
%{_datadir}/bash-completion/completions/systemd-cgtop
%{_datadir}/bash-completion/completions/systemd-confext
%{_datadir}/bash-completion/completions/systemd-delta
%{_datadir}/bash-completion/completions/systemd-detect-virt
%{_datadir}/bash-completion/completions/systemd-dissect
%{_datadir}/bash-completion/completions/systemd-id128
%{_datadir}/bash-completion/completions/systemd-path
%{_datadir}/bash-completion/completions/systemd-run
%{_datadir}/bash-completion/completions/systemd-sysext
%{_datadir}/bash-completion/completions/systemd-vpick
%{_datadir}/bash-completion/completions/timedatectl
%endif
# dbus introspection data for code generators: https://github.com/systemd/systemd/pull/20294
%{_datadir}/dbus-1/interfaces/org.freedesktop.LogControl1.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.login1.Manager.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.login1.Seat.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.login1.Session.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.login1.User.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Automount.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Device.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Job.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Manager.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Mount.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Path.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Scope.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Service.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Slice.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Socket.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Swap.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Target.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Timer.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Unit.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.timedate1.xml
%{_datadir}/dbus-1/services/org.freedesktop.systemd1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.login1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.hostname1.conf
%{_datadir}/dbus-1/system.d/org.freedesktop.locale1.conf
%{_datadir}/dbus-1/system.d/org.freedesktop.login1.conf
%{_datadir}/dbus-1/system.d/org.freedesktop.systemd1.conf
%{_datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf
%{_datadir}/mime/packages/io.systemd.xml
%{_datadir}/pkgconfig/systemd.pc
%{_datadir}/polkit-1/actions/io.systemd.credentials.policy
%{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy
%{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy
%{_datadir}/polkit-1/actions/org.freedesktop.login1.policy
%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
%{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy
%{_datadir}/systemd/kbd-model-map
%{_datadir}/systemd/language-fallback-map
%if %{without bootstrap}
%{_datadir}/zsh/site-functions/_busctl
%{_datadir}/zsh/site-functions/_coredumpctl
%{_datadir}/zsh/site-functions/_hostnamectl
%{_datadir}/zsh/site-functions/_journalctl
%{_datadir}/zsh/site-functions/_localectl
%{_datadir}/zsh/site-functions/_loginctl
%{_datadir}/zsh/site-functions/_sd_hosts_or_user_at_host
%{_datadir}/zsh/site-functions/_sd_outputmodes
%{_datadir}/zsh/site-functions/_sd_unit_files
%{_datadir}/zsh/site-functions/_systemctl
%{_datadir}/zsh/site-functions/_systemd
%{_datadir}/zsh/site-functions/_systemd-analyze
%{_datadir}/zsh/site-functions/_systemd-delta
%{_datadir}/zsh/site-functions/_systemd-inhibit
%{_datadir}/zsh/site-functions/_systemd-path
%{_datadir}/zsh/site-functions/_systemd-run
%{_datadir}/zsh/site-functions/_systemd-tmpfiles
%{_datadir}/zsh/site-functions/_timedatectl
%{_datadir}/zsh/site-functions/_varlinkctl
%{_journalcatalogdir}/systemd.catalog
%{_libdir}/libnss_myhostname.so.2
%{_libdir}/libnss_systemd.so.2
%endif
%{_libdir}/systemd/libsystemd-core-%{systemd_major}.so
%{_libdir}/systemd/libsystemd-shared-%{systemd_major}.so
%if %{without bootstrap}
%{_mandir}/man1/busctl.1.gz
%{_mandir}/man1/coredumpctl.1.gz
%{_mandir}/man1/hostnamectl.1.gz
%{_mandir}/man1/init.1.gz
%{_mandir}/man1/journalctl.1.gz
%{_mandir}/man1/localectl.1.gz
%{_mandir}/man1/loginctl.1.gz
%{_mandir}/man1/mount.ddi.1.gz
%{_mandir}/man1/systemctl.1.gz
%{_mandir}/man1/systemd-ac-power.1.gz
%{_mandir}/man1/systemd-analyze.1.gz
%{_mandir}/man1/systemd-ask-password.1.gz
%{_mandir}/man1/systemd-cat.1.gz
%{_mandir}/man1/systemd-cgls.1.gz
%{_mandir}/man1/systemd-cgtop.1.gz
%{_mandir}/man1/systemd-creds.1.gz
%{_mandir}/man1/systemd-delta.1.gz
%{_mandir}/man1/systemd-detect-virt.1.gz
%{_mandir}/man1/systemd-dissect.1.gz
%{_mandir}/man1/systemd-escape.1.gz
%{_mandir}/man1/systemd-firstboot.1.gz
%{_mandir}/man1/systemd-firstboot.service.1.gz
%{_mandir}/man1/systemd-id128.1.gz
%{_mandir}/man1/systemd-inhibit.1.gz
%{_mandir}/man1/systemd-machine-id-setup.1.gz
%{_mandir}/man1/systemd-mount.1.gz
%{_mandir}/man1/systemd-notify.1.gz
%{_mandir}/man1/systemd-path.1.gz
%{_mandir}/man1/systemd-run.1.gz
%{_mandir}/man1/systemd-socket-activate.1.gz
%{_mandir}/man1/systemd-stdio-bridge.1.gz
%{_mandir}/man1/systemd-tty-ask-password-agent.1.gz
%{_mandir}/man1/systemd-umount.1.gz
%{_mandir}/man1/systemd-vpick.1.gz
%{_mandir}/man1/systemd.1.gz
%{_mandir}/man1/timedatectl.1.gz
%{_mandir}/man1/userdbctl.1.gz
%{_mandir}/man1/varlinkctl.1.gz
%{_mandir}/man5/binfmt.d.5.gz
%{_mandir}/man5/capsule@.service.5.gz
%{_mandir}/man5/coredump.conf.5.gz
%{_mandir}/man5/coredump.conf.d.5.gz
%{_mandir}/man5/dnssec-trust-anchors.d.5.gz
%{_mandir}/man5/environment.d.5.gz
%{_mandir}/man5/extension-release.5.gz
%{_mandir}/man5/hostname.5.gz
%{_mandir}/man5/initrd-release.5.gz
%{_mandir}/man5/journald.conf.5.gz
%{_mandir}/man5/journald.conf.d.5.gz
%{_mandir}/man5/journald@.conf.5.gz
%{_mandir}/man5/locale.conf.5.gz
%{_mandir}/man5/localtime.5.gz
%{_mandir}/man5/logind.conf.5.gz
%{_mandir}/man5/logind.conf.d.5.gz
%{_mandir}/man5/machine-id.5.gz
%{_mandir}/man5/machine-info.5.gz
%{_mandir}/man5/org.freedesktop.LogControl1.5.gz
%{_mandir}/man5/org.freedesktop.hostname1.5.gz
%{_mandir}/man5/org.freedesktop.locale1.5.gz
%{_mandir}/man5/org.freedesktop.login1.5.gz
%{_mandir}/man5/org.freedesktop.portable1.5.gz
%{_mandir}/man5/org.freedesktop.systemd1.5.gz
%{_mandir}/man5/org.freedesktop.timedate1.5.gz
%{_mandir}/man5/os-release.5.gz
%{_mandir}/man5/sysctl.d.5.gz
%{_mandir}/man5/system.conf.d.5.gz
%{_mandir}/man5/systemd-system.conf.5.gz
%{_mandir}/man5/systemd-user-runtime-dir.5.gz
%{_mandir}/man5/systemd-user.conf.5.gz
%{_mandir}/man5/systemd.automount.5.gz
%{_mandir}/man5/systemd.device.5.gz
%{_mandir}/man5/systemd.dnssd.5.gz
%{_mandir}/man5/systemd.exec.5.gz
%{_mandir}/man5/systemd.kill.5.gz
%{_mandir}/man5/systemd.link.5.gz
%{_mandir}/man5/systemd.mount.5.gz
%{_mandir}/man5/systemd.negative.5.gz
%{_mandir}/man5/systemd.netdev.5.gz
%{_mandir}/man5/systemd.path.5.gz
%{_mandir}/man5/systemd.positive.5.gz
%{_mandir}/man5/systemd.preset.5.gz
%{_mandir}/man5/systemd.resource-control.5.gz
%{_mandir}/man5/systemd.scope.5.gz
%{_mandir}/man5/systemd.service.5.gz
%{_mandir}/man5/systemd.slice.5.gz
%{_mandir}/man5/systemd.socket.5.gz
%{_mandir}/man5/systemd.swap.5.gz
%{_mandir}/man5/systemd.target.5.gz
%{_mandir}/man5/systemd.timer.5.gz
%{_mandir}/man5/systemd.unit.5.gz
%{_mandir}/man5/sysusers.d.5.gz
%{_mandir}/man5/tmpfiles.d.5.gz
%{_mandir}/man5/user-runtime-dir@.service.5.gz
%{_mandir}/man5/user.conf.d.5.gz
%{_mandir}/man5/user@.service.5.gz
%{_mandir}/man7/bootup.7.gz
%{_mandir}/man7/daemon.7.gz
%{_mandir}/man7/file-hierarchy.7.gz
%{_mandir}/man7/kernel-command-line.7.gz
%{_mandir}/man7/systemd.directives.7.gz
%{_mandir}/man7/systemd.environment-generator.7.gz
%{_mandir}/man7/systemd.generator.7.gz
%{_mandir}/man7/systemd.index.7.gz
%{_mandir}/man7/systemd.journal-fields.7.gz
%{_mandir}/man7/systemd.net-naming-scheme.7.gz
%{_mandir}/man7/systemd.offline-updates.7.gz
%{_mandir}/man7/systemd.special.7.gz
%{_mandir}/man7/systemd.syntax.7.gz
%{_mandir}/man7/systemd.system-credentials.7.gz
%{_mandir}/man7/systemd.time.7.gz
%{_mandir}/man7/systemd.v.7.gz
%{_mandir}/man8/30-systemd-environment-d-generator.8.gz
%{_mandir}/man8/halt.8.gz
%{_mandir}/man8/libnss_myhostname.so.2.8.gz
%{_mandir}/man8/libnss_systemd.so.2.8.gz
%{_mandir}/man8/nss-myhostname.8.gz
%{_mandir}/man8/nss-systemd.8.gz
%{_mandir}/man8/pam_systemd.8.gz
%{_mandir}/man8/pam_systemd_loadkey.8.gz
%{_mandir}/man8/poweroff.8.gz
%{_mandir}/man8/reboot.8.gz
%{_mandir}/man8/shutdown.8.gz
%{_mandir}/man8/systemd-ask-password-console.path.8.gz
%{_mandir}/man8/systemd-ask-password-console.service.8.gz
%{_mandir}/man8/systemd-ask-password-wall.path.8.gz
%{_mandir}/man8/systemd-ask-password-wall.service.8.gz
%{_mandir}/man8/systemd-binfmt.8.gz
%{_mandir}/man8/systemd-binfmt.service.8.gz
%{_mandir}/man8/systemd-boot-check-no-failures.8.gz
%{_mandir}/man8/systemd-boot-check-no-failures.service.8.gz
%{_mandir}/man8/systemd-confext.8.gz
%{_mandir}/man8/systemd-confext.service.8.gz
%{_mandir}/man8/systemd-coredump.8.gz
%{_mandir}/man8/systemd-coredump.socket.8.gz
%{_mandir}/man8/systemd-coredump@.service.8.gz
%{_mandir}/man8/systemd-debug-generator.8.gz
%{_mandir}/man8/systemd-environment-d-generator.8.gz
%{_mandir}/man8/systemd-getty-generator.8.gz
%{_mandir}/man8/systemd-halt.service.8.gz
%{_mandir}/man8/systemd-hibernate-resume.service.8.gz
%{_mandir}/man8/systemd-hostnamed.8.gz
%{_mandir}/man8/systemd-hostnamed.service.8.gz
%{_mandir}/man8/systemd-journald-audit.socket.8.gz
%{_mandir}/man8/systemd-journald-dev-log.socket.8.gz
%{_mandir}/man8/systemd-journald-varlink@.socket.8.gz
%{_mandir}/man8/systemd-journald.8.gz
%{_mandir}/man8/systemd-journald.service.8.gz
%{_mandir}/man8/systemd-journald.socket.8.gz
%{_mandir}/man8/systemd-journald@.service.8.gz
%{_mandir}/man8/systemd-journald@.socket.8.gz
%{_mandir}/man8/systemd-kexec.service.8.gz
%{_mandir}/man8/systemd-localed.8.gz
%{_mandir}/man8/systemd-localed.service.8.gz
%{_mandir}/man8/systemd-logind.8.gz
%{_mandir}/man8/systemd-logind.service.8.gz
%{_mandir}/man8/systemd-machine-id-commit.service.8.gz
%{_mandir}/man8/systemd-poweroff.service.8.gz
%{_mandir}/man8/systemd-reboot.service.8.gz
%{_mandir}/man8/systemd-run-generator.8.gz
%{_mandir}/man8/systemd-shutdown.8.gz
%{_mandir}/man8/systemd-socket-proxyd.8.gz
%{_mandir}/man8/systemd-soft-reboot.service.8.gz
%{_mandir}/man8/systemd-sysctl.8.gz
%{_mandir}/man8/systemd-sysctl.service.8.gz
%{_mandir}/man8/systemd-sysext.8.gz
%{_mandir}/man8/systemd-sysext.service.8.gz
%{_mandir}/man8/systemd-system-update-generator.8.gz
%{_mandir}/man8/systemd-sysusers.8.gz
%{_mandir}/man8/systemd-sysusers.service.8.gz
%{_mandir}/man8/systemd-time-wait-sync.8.gz
%{_mandir}/man8/systemd-time-wait-sync.service.8.gz
%{_mandir}/man8/systemd-timedated.8.gz
%{_mandir}/man8/systemd-timedated.service.8.gz
%{_mandir}/man8/systemd-tmpfiles-clean.service.8.gz
%{_mandir}/man8/systemd-tmpfiles-clean.timer.8.gz
%{_mandir}/man8/systemd-tmpfiles-setup.service.8.gz
%{_mandir}/man8/systemd-tmpfiles.8.gz
%{_mandir}/man8/systemd-update-done.8.gz
%{_mandir}/man8/systemd-update-done.service.8.gz
%if %{with utmp}
%{_mandir}/man8/systemd-update-utmp.8.gz
%{_mandir}/man8/systemd-update-utmp.service.8.gz
%endif
%{_mandir}/man8/systemd-user-sessions.8.gz
%{_mandir}/man8/systemd-user-sessions.service.8.gz
%{_mandir}/man8/systemd-userdbd.8.gz
%{_mandir}/man8/systemd-userdbd.service.8.gz
%{_mandir}/man8/systemd-xdg-autostart-generator.8.gz
%endif
%{_modprobedir}/systemd.conf
%{_pam_moduledir}/pam_systemd.so
%{_pam_moduledir}/pam_systemd_loadkey.so
%{_pam_vendordir}/systemd-user
%{_sbindir}/halt
%{_sbindir}/init
%{_sbindir}/mount.ddi
%{_sbindir}/poweroff
%{_sbindir}/reboot
%{_sbindir}/shutdown
%{_sysconfdir}/xdg/systemd/user
%if %{without bootstrap}
%{_sysctldir}/50-coredump.conf
%endif
%{_sysctldir}/99-sysctl.conf
%{_systemd_user_env_generator_dir}/30-systemd-environment-d-generator
%if %{without bootstrap}
%{_systemd_util_dir}/coredump.conf
%endif
%{_systemd_util_dir}/journald.conf
%{_systemd_util_dir}/logind.conf
%{_systemd_util_dir}/rpm/fixlet-systemd-post.sh
%{_systemd_util_dir}/system-preset/99-default.preset
%{_systemd_util_dir}/system.conf
%{_systemd_util_dir}/systemd
%{_systemd_util_dir}/systemd-binfmt
%{_systemd_util_dir}/systemd-boot-check-no-failures
%{_systemd_util_dir}/systemd-cgroups-agent
%if %{without bootstrap}
%{_systemd_util_dir}/systemd-coredump
%endif
%{_systemd_util_dir}/systemd-executor
%{_systemd_util_dir}/systemd-hostnamed
%{_systemd_util_dir}/systemd-journald
%{_systemd_util_dir}/systemd-localed
%{_systemd_util_dir}/systemd-logind
%{_systemd_util_dir}/systemd-reply-password
%{_systemd_util_dir}/systemd-shutdown
%{_systemd_util_dir}/systemd-socket-proxyd
%{_systemd_util_dir}/systemd-sulogin-shell
%{_systemd_util_dir}/systemd-sysctl
%{_systemd_util_dir}/systemd-sysroot-fstab-check
%{_systemd_util_dir}/systemd-time-wait-sync
%{_systemd_util_dir}/systemd-timedated
%{_systemd_util_dir}/systemd-update-done
%{_systemd_util_dir}/systemd-update-helper
%if %{with utmp}
%{_systemd_util_dir}/systemd-update-utmp
%endif
%{_systemd_util_dir}/systemd-user-runtime-dir
%{_systemd_util_dir}/systemd-user-sessions
%if %{without bootstrap}
%{_systemd_util_dir}/systemd-userdbd
%endif
%{_systemd_util_dir}/systemd-xdg-autostart-condition
%{_systemd_util_dir}/user-preset/90-systemd.preset
%{_systemd_util_dir}/user-preset/99-default.preset
%{_systemd_util_dir}/user.conf
%{_systemd_util_dir}/user/app.slice
%{_systemd_util_dir}/user/background.slice
%{_systemd_util_dir}/user/basic.target
%{_systemd_util_dir}/user/bluetooth.target
%{_systemd_util_dir}/user/default.target
%{_systemd_util_dir}/user/exit.target
%{_systemd_util_dir}/user/graphical-session-pre.target
%{_systemd_util_dir}/user/graphical-session.target
%{_systemd_util_dir}/user/paths.target
%{_systemd_util_dir}/user/printer.target
%{_systemd_util_dir}/user/session.slice
%{_systemd_util_dir}/user/shutdown.target
%{_systemd_util_dir}/user/smartcard.target
%{_systemd_util_dir}/user/sockets.target
%{_systemd_util_dir}/user/sound.target
%{_systemd_util_dir}/user/systemd-exit.service
%{_systemd_util_dir}/user/systemd-tmpfiles-clean.service
%{_systemd_util_dir}/user/systemd-tmpfiles-clean.timer
%{_systemd_util_dir}/user/systemd-tmpfiles-setup.service
%{_systemd_util_dir}/user/timers.target
%{_systemd_util_dir}/user/xdg-desktop-autostart.target
%{_systemdgeneratordir}/systemd-debug-generator
%{_systemdgeneratordir}/systemd-getty-generator
%{_systemdgeneratordir}/systemd-run-generator
%{_systemdgeneratordir}/systemd-system-update-generator
%{_systemdusergeneratordir}/systemd-xdg-autostart-generator
%if %{without bootstrap}
%{_sysusersdir}/systemd-coredump.conf
%endif
%{_sysusersdir}/systemd-journal.conf
%{_tmpfilesdir}/credstore.conf
%{_tmpfilesdir}/journal-nocow.conf
%{_tmpfilesdir}/provision.conf
%{_tmpfilesdir}/systemd-nologin.conf
%{_tmpfilesdir}/systemd-suse.conf
%{_tmpfilesdir}/systemd-tmp.conf
%{_tmpfilesdir}/systemd.conf
%{_tmpfilesdir}/x11.conf
%{_udevrulesdir}/70-uaccess.rules
%{_udevrulesdir}/71-seat.rules
%{_udevrulesdir}/73-seat-late.rules
%{_udevrulesdir}/99-systemd.rules
%{_unitdir}/autovt@.service
%{_unitdir}/basic.target
%{_unitdir}/blockdev@.target
%{_unitdir}/bluetooth.target
%{_unitdir}/boot-complete.target
%{_unitdir}/capsule.slice
%{_unitdir}/capsule@.service
%{_unitdir}/console-getty.service
%{_unitdir}/container-getty@.service
%{_unitdir}/ctrl-alt-del.target
%{_unitdir}/dbus-org.freedesktop.hostname1.service
%{_unitdir}/dbus-org.freedesktop.locale1.service
%{_unitdir}/dbus-org.freedesktop.login1.service
%{_unitdir}/dbus-org.freedesktop.timedate1.service
%{_unitdir}/debug-shell.service
%{_unitdir}/default.target
%{_unitdir}/dev-hugepages.mount
%{_unitdir}/dev-mqueue.mount
%{_unitdir}/emergency.service
%{_unitdir}/emergency.target
%{_unitdir}/exit.target
%{_unitdir}/factory-reset.target
%{_unitdir}/final.target
%{_unitdir}/first-boot-complete.target
%{_unitdir}/getty-pre.target
%{_unitdir}/getty.target
%{_unitdir}/getty@.service
%{_unitdir}/graphical.target
%{_unitdir}/halt.target
%{_unitdir}/initrd-cleanup.service
%{_unitdir}/initrd-fs.target
%{_unitdir}/initrd-parse-etc.service
%{_unitdir}/initrd-root-device.target
%{_unitdir}/initrd-root-fs.target
%{_unitdir}/initrd-switch-root.service
%{_unitdir}/initrd-switch-root.target
%{_unitdir}/initrd-usr-fs.target
%{_unitdir}/initrd.target
%{_unitdir}/kexec.target
%{_unitdir}/local-fs-pre.target
%{_unitdir}/local-fs.target
%{_unitdir}/local-fs.target.wants/tmp.mount
%{_unitdir}/modprobe@.service
%{_unitdir}/multi-user.target
%{_unitdir}/multi-user.target.wants/getty.target
%{_unitdir}/multi-user.target.wants/systemd-logind.service
%{_unitdir}/multi-user.target.wants/systemd-user-sessions.service
%{_unitdir}/network-online.target
%{_unitdir}/network-pre.target
%{_unitdir}/network.target
%{_unitdir}/nss-lookup.target
%{_unitdir}/nss-user-lookup.target
%{_unitdir}/paths.target
%{_unitdir}/poweroff.target
%{_unitdir}/printer.target
%{_unitdir}/proc-sys-fs-binfmt_misc.automount
%{_unitdir}/proc-sys-fs-binfmt_misc.mount
%{_unitdir}/reboot.target
%{_unitdir}/remote-fs-pre.target
%{_unitdir}/remote-fs.target
%{_unitdir}/rescue.service
%{_unitdir}/rescue.target
%{_unitdir}/rpcbind.target
%{_unitdir}/serial-getty@.service
%{_unitdir}/shutdown.target
%{_unitdir}/sigpwr.target
%{_unitdir}/slices.target
%{_unitdir}/smartcard.target
%{_unitdir}/sockets.target
%if %{without bootstrap}
%{_unitdir}/sockets.target.wants/systemd-coredump.socket
%endif
%{_unitdir}/sockets.target.wants/systemd-creds.socket
%{_unitdir}/sockets.target.wants/systemd-hostnamed.socket
%{_unitdir}/sockets.target.wants/systemd-journald-dev-log.socket
%{_unitdir}/sockets.target.wants/systemd-journald.socket
%{_unitdir}/sockets.target.wants/systemd-sysext.socket
%{_unitdir}/soft-reboot.target
%{_unitdir}/sound.target
%{_unitdir}/ssh-access.target
%{_unitdir}/swap.target
%{_unitdir}/sys-fs-fuse-connections.mount
%{_unitdir}/sys-kernel-config.mount
%{_unitdir}/sys-kernel-debug.mount
%{_unitdir}/sys-kernel-tracing.mount
%{_unitdir}/sysinit.target
%{_unitdir}/sysinit.target.wants/dev-hugepages.mount
%{_unitdir}/sysinit.target.wants/dev-mqueue.mount
%{_unitdir}/sysinit.target.wants/proc-sys-fs-binfmt_misc.automount
%{_unitdir}/sysinit.target.wants/sys-fs-fuse-connections.mount
%{_unitdir}/sysinit.target.wants/sys-kernel-config.mount
%{_unitdir}/sysinit.target.wants/sys-kernel-debug.mount
%{_unitdir}/sysinit.target.wants/sys-kernel-tracing.mount
%{_unitdir}/sysinit.target.wants/systemd-ask-password-console.path
%{_unitdir}/sysinit.target.wants/systemd-binfmt.service
%{_unitdir}/sysinit.target.wants/systemd-firstboot.service
%{_unitdir}/sysinit.target.wants/systemd-journal-catalog-update.service
%{_unitdir}/sysinit.target.wants/systemd-journal-flush.service
%{_unitdir}/sysinit.target.wants/systemd-journald.service
%{_unitdir}/sysinit.target.wants/systemd-machine-id-commit.service
%{_unitdir}/sysinit.target.wants/systemd-sysctl.service
%{_unitdir}/sysinit.target.wants/systemd-sysusers.service
%{_unitdir}/sysinit.target.wants/systemd-tmpfiles-setup.service
%{_unitdir}/sysinit.target.wants/systemd-update-done.service
%if %{with utmp}
%{_unitdir}/sysinit.target.wants/systemd-update-utmp.service
%endif
%{_unitdir}/syslog.socket
%{_unitdir}/system-update-cleanup.service
%{_unitdir}/system-update-pre.target
%{_unitdir}/system-update.target
%{_unitdir}/systemd-ask-password-console.path
%{_unitdir}/systemd-ask-password-console.service
%{_unitdir}/systemd-ask-password-wall.path
%{_unitdir}/systemd-ask-password-wall.service
%{_unitdir}/systemd-binfmt.service
%{_unitdir}/systemd-boot-check-no-failures.service
%{_unitdir}/systemd-confext.service
%if %{without bootstrap}
%{_unitdir}/systemd-coredump.socket
%{_unitdir}/systemd-coredump@.service
%endif
%{_unitdir}/systemd-creds.socket
%{_unitdir}/systemd-creds@.service
%{_unitdir}/systemd-exit.service
%{_unitdir}/systemd-halt.service
%{_unitdir}/systemd-hostnamed.service
%{_unitdir}/systemd-hostnamed.socket
%{_unitdir}/systemd-journal-catalog-update.service
%{_unitdir}/systemd-journal-flush.service
%{_unitdir}/systemd-journald-audit.socket
%{_unitdir}/systemd-journald-dev-log.socket
%{_unitdir}/systemd-journald-sync@.service
%{_unitdir}/systemd-journald-varlink@.socket
%{_unitdir}/systemd-journald.service
%{_unitdir}/systemd-journald.socket
%{_unitdir}/systemd-journald@.service
%{_unitdir}/systemd-journald@.socket
%{_unitdir}/systemd-kexec.service
%{_unitdir}/systemd-localed.service
%{_unitdir}/systemd-logind.service
%{_unitdir}/systemd-machine-id-commit.service
%{_unitdir}/systemd-poweroff.service
%{_unitdir}/systemd-reboot.service
%{_unitdir}/systemd-soft-reboot.service
%{_unitdir}/systemd-sysctl.service
%{_unitdir}/systemd-sysext.service
%{_unitdir}/systemd-sysext.socket
%{_unitdir}/systemd-sysext@.service
%{_unitdir}/systemd-sysusers.service
%{_unitdir}/systemd-time-wait-sync.service
%{_unitdir}/systemd-timedated.service
%{_unitdir}/systemd-tmpfiles-clean.service
%{_unitdir}/systemd-tmpfiles-clean.timer
%{_unitdir}/systemd-tmpfiles-setup.service
%{_unitdir}/systemd-update-done.service
%if %{with utmp}
%{_unitdir}/systemd-update-utmp.service
%endif
%{_unitdir}/systemd-user-sessions.service
%if %{without bootstrap}
%{_unitdir}/systemd-userdbd.service
%{_unitdir}/systemd-userdbd.socket
%endif
%{_unitdir}/time-set.target
%{_unitdir}/time-sync.target
%{_unitdir}/timers.target
%{_unitdir}/timers.target.wants/systemd-tmpfiles-clean.timer
%{_unitdir}/tmp.mount
%{_unitdir}/umount.target
%{_unitdir}/usb-gadget.target
%{_unitdir}/user-.slice.d/10-defaults.conf
%{_unitdir}/user-runtime-dir@.service
%{_unitdir}/user.slice
%{_unitdir}/user@.service
%{_unitdir}/user@.service.d/10-login-barrier.conf
%{_unitdir}/user@0.service.d/10-login-barrier.conf
%{_userunitdir}/capsule@.target
%{xinitconfdir}/xinitrc.d/50-systemd-user.sh

50
files.sysvcompat Normal file
View File

@ -0,0 +1,50 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%dir %{_unitdir}/runlevel1.target.wants
%dir %{_unitdir}/runlevel2.target.wants
%dir %{_unitdir}/runlevel3.target.wants
%dir %{_unitdir}/runlevel4.target.wants
%dir %{_unitdir}/runlevel5.target.wants
%{_mandir}/man8/rc-local.service.8.gz
%{_mandir}/man8/runlevel.8.gz
%{_mandir}/man8/systemd-initctl.8.gz
%{_mandir}/man8/systemd-initctl.service.8.gz
%{_mandir}/man8/systemd-initctl.socket.8.gz
%{_mandir}/man8/systemd-rc-local-generator.8.gz
%{_mandir}/man8/systemd-sysv-generator.8.gz
%if %{with utmp}
%{_mandir}/man8/systemd-update-utmp-runlevel.service.8.gz
%endif
%{_mandir}/man8/telinit.8.gz
%{_sbindir}/runlevel
%{_sbindir}/telinit
%{_systemd_util_dir}/systemd-initctl
%{_systemd_util_dir}/systemd-sysv-install
%{_systemdgeneratordir}/systemd-rc-local-generator
%{_systemdgeneratordir}/systemd-sysv-generator
%if %{with utmp}
%{_unitdir}/graphical.target.wants/systemd-update-utmp-runlevel.service
%{_unitdir}/multi-user.target.wants/systemd-update-utmp-runlevel.service
%endif
%{_unitdir}/rc-local.service
%if %{with utmp}
%{_unitdir}/rescue.target.wants/systemd-update-utmp-runlevel.service
%endif
%{_unitdir}/runlevel0.target
%{_unitdir}/runlevel1.target
%{_unitdir}/runlevel2.target
%{_unitdir}/runlevel3.target
%{_unitdir}/runlevel4.target
%{_unitdir}/runlevel5.target
%{_unitdir}/runlevel6.target
%{_unitdir}/sockets.target.wants/systemd-initctl.socket
%{_unitdir}/systemd-initctl.service
%{_unitdir}/systemd-initctl.socket
%if %{with utmp}
%{_unitdir}/systemd-update-utmp-runlevel.service
%endif
%if %{with split_usr}
/sbin/runlevel
/sbin/telinit
%endif

413
files.udev Normal file
View File

@ -0,0 +1,413 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%if %{without bootstrap}
%dir %{_libdir}/cryptsetup
%endif
%dir %{_modulesloaddir}
%if %{without bootstrap}
%dir %{_prefix}/lib/kernel
%dir %{_prefix}/lib/kernel/install.d
%endif
%dir %{_prefix}/lib/udev
%if %{without bootstrap}
%dir %{_sysconfdir}/modules-load.d
%endif
%dir %{_sysconfdir}/systemd/network
%dir %{_sysconfdir}/systemd/pstore.conf.d
%dir %{_sysconfdir}/systemd/sleep.conf.d
%dir %{_sysconfdir}/systemd/timesyncd.conf.d
%dir %{_sysconfdir}/udev
%dir %{_sysconfdir}/udev/iocost.conf.d
%dir %{_sysconfdir}/udev/rules.d
%dir %{_sysconfdir}/udev/udev.conf.d
%dir %{_systemd_util_dir}/network
%if %{without bootstrap}
%dir %{_systemd_util_dir}/repart
%dir %{_systemd_util_dir}/repart/definitions
%dir %{_systemd_util_dir}/repart/definitions/confext.repart.d
%dir %{_systemd_util_dir}/repart/definitions/portable.repart.d
%dir %{_systemd_util_dir}/repart/definitions/sysext.repart.d
%endif
%dir %{_systemd_util_dir}/system-sleep
%dir %{_udevhwdbdir}
%dir %{_udevrulesdir}
%dir %{_unitdir}/initrd.target.wants
%doc %{_udevhwdbdir}/README
%doc %{_udevrulesdir}/README
%ghost %attr(0600,root,root) %{_localstatedir}/lib/systemd/random-seed
%ghost %attr(444, root, root) %{_sysconfdir}/udev/hwdb.bin
%ghost %attr(644, root, root) %{_prefix}/lib/udev/compat-symlink-generation
%ghost %config(noreplace) %{_sysconfdir}/vconsole.conf
%ghost %{_localstatedir}/lib/systemd/backlight
# Main config files have been replaced in favor of drop-ins.
%ghost %{_sysconfdir}/systemd/pstore.conf
%ghost %{_sysconfdir}/systemd/sleep.conf
%ghost %{_sysconfdir}/systemd/timesyncd.conf
%ghost %{_sysconfdir}/udev/iocost.conf
%{_bindir}/bootctl
%if %{without bootstrap}
%{_bindir}/kernel-install
%{_bindir}/systemd-cryptenroll
%{_bindir}/systemd-cryptsetup
%endif
%{_bindir}/systemd-hwdb
%if %{without bootstrap}
%{_bindir}/systemd-repart
%endif
%{_bindir}/udevadm
%if %{without bootstrap}
%{_datadir}/bash-completion/completions/bootctl
%{_datadir}/bash-completion/completions/kernel-install
%{_datadir}/bash-completion/completions/systemd-cryptenroll
%{_datadir}/bash-completion/completions/udevadm
%endif
%{_datadir}/dbus-1/system-services/org.freedesktop.timesync1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.timesync1.conf
%{_datadir}/pkgconfig/udev.pc
%{_datadir}/polkit-1/actions/org.freedesktop.timesync1.policy
%if %{without bootstrap}
%{_datadir}/zsh/site-functions/_bootctl
%{_datadir}/zsh/site-functions/_kernel-install
%{_datadir}/zsh/site-functions/_udevadm
%{_libdir}/cryptsetup/libcryptsetup-token-systemd-fido2.so
%{_libdir}/cryptsetup/libcryptsetup-token-systemd-pkcs11.so
%{_libdir}/cryptsetup/libcryptsetup-token-systemd-tpm2.so
%{_mandir}/man1/bootctl.1.gz
%{_mandir}/man1/systemd-cryptenroll.1.gz
%{_mandir}/man5/crypttab.5.gz
%{_mandir}/man5/integritytab.5.gz
%{_mandir}/man5/iocost.conf.5.gz
%{_mandir}/man5/modules-load.d.5.gz
%{_mandir}/man5/pstore.conf.5.gz
%{_mandir}/man5/pstore.conf.d.5.gz
%{_mandir}/man5/repart.d.5.gz
%{_mandir}/man5/sleep.conf.d.5.gz
%{_mandir}/man5/systemd-sleep.conf.5.gz
%{_mandir}/man5/timesyncd.conf.5.gz
%{_mandir}/man5/timesyncd.conf.d.5.gz
%{_mandir}/man5/udev.conf.5.gz
%{_mandir}/man5/udev.conf.d.5.gz
%{_mandir}/man5/vconsole.conf.5.gz
%{_mandir}/man5/veritytab.5.gz
%{_mandir}/man7/hwdb.7.gz
%{_mandir}/man7/smbios-type-11.7.gz
%{_mandir}/man7/systemd.image-policy.7.gz
%{_mandir}/man7/udev.7.gz
%{_mandir}/man8/kernel-install.8.gz
%{_mandir}/man8/systemd-backlight.8.gz
%{_mandir}/man8/systemd-backlight@.service.8.gz
%{_mandir}/man8/systemd-battery-check.8.gz
%{_mandir}/man8/systemd-battery-check.service.8.gz
%{_mandir}/man8/systemd-cryptsetup-generator.8.gz
%{_mandir}/man8/systemd-cryptsetup.8.gz
%{_mandir}/man8/systemd-cryptsetup@.service.8.gz
%{_mandir}/man8/systemd-fsck-root.service.8.gz
%{_mandir}/man8/systemd-fsck-usr.service.8.gz
%{_mandir}/man8/systemd-fsck.8.gz
%{_mandir}/man8/systemd-fsck@.service.8.gz
%{_mandir}/man8/systemd-fstab-generator.8.gz
%{_mandir}/man8/systemd-gpt-auto-generator.8.gz
%{_mandir}/man8/systemd-growfs-root.service.8.gz
%{_mandir}/man8/systemd-growfs.8.gz
%{_mandir}/man8/systemd-growfs@.service.8.gz
%{_mandir}/man8/systemd-hibernate-clear.service.8.gz
%{_mandir}/man8/systemd-hibernate-resume-generator.8.gz
%{_mandir}/man8/systemd-hibernate-resume.8.gz
%{_mandir}/man8/systemd-hibernate.service.8.gz
%{_mandir}/man8/systemd-hwdb.8.gz
%{_mandir}/man8/systemd-hybrid-sleep.service.8.gz
%{_mandir}/man8/systemd-integritysetup-generator.8.gz
%{_mandir}/man8/systemd-integritysetup.8.gz
%{_mandir}/man8/systemd-integritysetup@.service.8.gz
%{_mandir}/man8/systemd-makefs.8.gz
%{_mandir}/man8/systemd-makefs@.service.8.gz
%{_mandir}/man8/systemd-mkswap@.service.8.gz
%{_mandir}/man8/systemd-modules-load.8.gz
%{_mandir}/man8/systemd-modules-load.service.8.gz
%{_mandir}/man8/systemd-network-generator.8.gz
%{_mandir}/man8/systemd-network-generator.service.8.gz
%{_mandir}/man8/systemd-pstore.8.gz
%{_mandir}/man8/systemd-pstore.service.8.gz
%{_mandir}/man8/systemd-quotacheck.8.gz
%{_mandir}/man8/systemd-quotacheck.service.8.gz
%{_mandir}/man8/systemd-random-seed.8.gz
%{_mandir}/man8/systemd-random-seed.service.8.gz
%{_mandir}/man8/systemd-remount-fs.8.gz
%{_mandir}/man8/systemd-remount-fs.service.8.gz
%{_mandir}/man8/systemd-repart.8.gz
%{_mandir}/man8/systemd-repart.service.8.gz
%{_mandir}/man8/systemd-rfkill.8.gz
%{_mandir}/man8/systemd-rfkill.service.8.gz
%{_mandir}/man8/systemd-rfkill.socket.8.gz
%{_mandir}/man8/systemd-sleep.8.gz
%{_mandir}/man8/systemd-suspend-then-hibernate.service.8.gz
%{_mandir}/man8/systemd-suspend.service.8.gz
%{_mandir}/man8/systemd-timesyncd.8.gz
%{_mandir}/man8/systemd-timesyncd.service.8.gz
%{_mandir}/man8/systemd-tmpfiles-setup-dev-early.service.8.gz
%{_mandir}/man8/systemd-tmpfiles-setup-dev.service.8.gz
%{_mandir}/man8/systemd-udev-settle.service.8.gz
%{_mandir}/man8/systemd-udevd-control.socket.8.gz
%{_mandir}/man8/systemd-udevd-kernel.socket.8.gz
%{_mandir}/man8/systemd-udevd.8.gz
%{_mandir}/man8/systemd-udevd.service.8.gz
%{_mandir}/man8/systemd-vconsole-setup.8.gz
%{_mandir}/man8/systemd-vconsole-setup.service.8.gz
%{_mandir}/man8/systemd-veritysetup-generator.8.gz
%{_mandir}/man8/systemd-veritysetup.8.gz
%{_mandir}/man8/systemd-veritysetup@.service.8.gz
%{_mandir}/man8/systemd-volatile-root.8.gz
%{_mandir}/man8/systemd-volatile-root.service.8.gz
%{_mandir}/man8/udevadm.8.gz
%{_prefix}/lib/kernel/install.conf
%{_prefix}/lib/kernel/install.d/50-depmod.install
%{_prefix}/lib/kernel/install.d/90-loaderentry.install
%{_prefix}/lib/kernel/install.d/90-uki-copy.install
%endif
%{_prefix}/lib/udev/ata_id
%{_prefix}/lib/udev/cdrom_id
%ifarch %{arm} aarch64 %{ix86} x86_64 ia64 mips
# dmi_memory_id is only relevant on arches with DMI
%{_prefix}/lib/udev/dmi_memory_id
%endif
%{_prefix}/lib/udev/fido_id
%{_prefix}/lib/udev/iocost
%{_prefix}/lib/udev/iocost.conf
%{_prefix}/lib/udev/mtd_probe
%{_prefix}/lib/udev/scsi_id
%{_prefix}/lib/udev/udev.conf
%{_prefix}/lib/udev/v4l_id
%{_systemd_util_dir}/network/99-default.link
%{_systemd_util_dir}/ntp-units.d/80-systemd-timesync.list
%{_systemd_util_dir}/pstore.conf
%if %{without bootstrap}
%{_systemd_util_dir}/repart/definitions/confext.repart.d/10-root.conf
%{_systemd_util_dir}/repart/definitions/confext.repart.d/20-root-verity.conf
%{_systemd_util_dir}/repart/definitions/confext.repart.d/30-root-verity-sig.conf
%{_systemd_util_dir}/repart/definitions/portable.repart.d/10-root.conf
%{_systemd_util_dir}/repart/definitions/portable.repart.d/20-root-verity.conf
%{_systemd_util_dir}/repart/definitions/portable.repart.d/30-root-verity-sig.conf
%{_systemd_util_dir}/repart/definitions/sysext.repart.d/10-root.conf
%{_systemd_util_dir}/repart/definitions/sysext.repart.d/20-root-verity.conf
%{_systemd_util_dir}/repart/definitions/sysext.repart.d/30-root-verity-sig.conf
%endif
%{_systemd_util_dir}/sleep.conf
%if %{without bootstrap}
%{_systemd_util_dir}/system/initrd-root-fs.target.wants/systemd-repart.service
%{_systemd_util_dir}/system/sysinit.target.wants/systemd-repart.service
%endif
%{_systemd_util_dir}/systemd-backlight
%{_systemd_util_dir}/systemd-battery-check
%if %{without bootstrap}
%{_systemd_util_dir}/systemd-cryptsetup
%endif
%{_systemd_util_dir}/systemd-fsck
%{_systemd_util_dir}/systemd-growfs
%{_systemd_util_dir}/systemd-hibernate-resume
%if %{without bootstrap}
%{_systemd_util_dir}/systemd-integritysetup
%endif
%{_systemd_util_dir}/systemd-makefs
%if %{without bootstrap}
%{_systemd_util_dir}/systemd-modules-load
%endif
%{_systemd_util_dir}/systemd-network-generator
%{_systemd_util_dir}/systemd-pstore
%{_systemd_util_dir}/systemd-quotacheck
%{_systemd_util_dir}/systemd-random-seed
%{_systemd_util_dir}/systemd-remount-fs
%{_systemd_util_dir}/systemd-rfkill
%{_systemd_util_dir}/systemd-sleep
%{_systemd_util_dir}/systemd-timesyncd
%{_systemd_util_dir}/systemd-udevd
%{_systemd_util_dir}/systemd-vconsole-setup
%if %{without bootstrap}
%{_systemd_util_dir}/systemd-veritysetup
%endif
%{_systemd_util_dir}/systemd-volatile-root
%{_systemd_util_dir}/timesyncd.conf
%if %{without bootstrap}
%{_systemdgeneratordir}/systemd-cryptsetup-generator
%endif
%{_systemdgeneratordir}/systemd-fstab-generator
%{_systemdgeneratordir}/systemd-gpt-auto-generator
%{_systemdgeneratordir}/systemd-hibernate-resume-generator
%if %{without bootstrap}
%{_systemdgeneratordir}/systemd-integritysetup-generator
%{_systemdgeneratordir}/systemd-veritysetup-generator
%endif
%{_sysusersdir}/systemd-timesync.conf
%{_tmpfilesdir}/static-nodes-permissions.conf
%{_tmpfilesdir}/systemd-pstore.conf
%{_udevhwdbdir}/20-OUI.hwdb
%{_udevhwdbdir}/20-acpi-vendor.hwdb
%{_udevhwdbdir}/20-bluetooth-vendor-product.hwdb
%{_udevhwdbdir}/20-dmi-id.hwdb
%{_udevhwdbdir}/20-net-ifname.hwdb
%{_udevhwdbdir}/20-pci-classes.hwdb
%{_udevhwdbdir}/20-pci-vendor-model.hwdb
%{_udevhwdbdir}/20-sdio-classes.hwdb
%{_udevhwdbdir}/20-sdio-vendor-model.hwdb
%{_udevhwdbdir}/20-usb-classes.hwdb
%{_udevhwdbdir}/20-usb-vendor-model.hwdb
%{_udevhwdbdir}/20-vmbus-class.hwdb
%{_udevhwdbdir}/60-autosuspend-chromiumos.hwdb
%{_udevhwdbdir}/60-autosuspend-fingerprint-reader.hwdb
%{_udevhwdbdir}/60-autosuspend.hwdb
%{_udevhwdbdir}/60-evdev.hwdb
%{_udevhwdbdir}/60-input-id.hwdb
%{_udevhwdbdir}/60-keyboard.hwdb
%{_udevhwdbdir}/60-seat.hwdb
%{_udevhwdbdir}/60-sensor.hwdb
%{_udevhwdbdir}/70-analyzers.hwdb
%{_udevhwdbdir}/70-av-production.hwdb
%{_udevhwdbdir}/70-cameras.hwdb
%{_udevhwdbdir}/70-hardware-wallets.hwdb
%{_udevhwdbdir}/70-joystick.hwdb
%{_udevhwdbdir}/70-mouse.hwdb
%{_udevhwdbdir}/70-pda.hwdb
%{_udevhwdbdir}/70-pointingstick.hwdb
%{_udevhwdbdir}/70-sound-card.hwdb
%{_udevhwdbdir}/70-touchpad.hwdb
%{_udevhwdbdir}/80-ieee1394-unit-function.hwdb
%{_udevrulesdir}/50-udev-default.rules
%{_udevrulesdir}/60-autosuspend.rules
%{_udevrulesdir}/60-block.rules
%{_udevrulesdir}/60-cdrom_id.rules
%{_udevrulesdir}/60-dmi-id.rules
%{_udevrulesdir}/60-drm.rules
%{_udevrulesdir}/60-evdev.rules
%{_udevrulesdir}/60-fido-id.rules
%{_udevrulesdir}/60-infiniband.rules
%{_udevrulesdir}/60-input-id.rules
%{_udevrulesdir}/60-persistent-alsa.rules
%{_udevrulesdir}/60-persistent-input.rules
%{_udevrulesdir}/60-persistent-storage-mtd.rules
%{_udevrulesdir}/60-persistent-storage-tape.rules
%{_udevrulesdir}/60-persistent-storage.rules
%{_udevrulesdir}/60-persistent-v4l.rules
%{_udevrulesdir}/60-sensor.rules
%{_udevrulesdir}/60-serial.rules
%{_udevrulesdir}/64-btrfs.rules
%{_udevrulesdir}/70-camera.rules
%{_udevrulesdir}/70-joystick.rules
%ifarch %{arm} aarch64 %{ix86} x86_64 ia64 mips
%{_udevrulesdir}/70-memory.rules
%endif
%{_udevrulesdir}/70-mouse.rules
%{_udevrulesdir}/70-power-switch.rules
%{_udevrulesdir}/70-touchpad.rules
%{_udevrulesdir}/75-net-description.rules
%{_udevrulesdir}/75-probe_mtd.rules
%{_udevrulesdir}/78-sound-card.rules
%if %{without bootstrap}
%{_udevrulesdir}/80-drivers.rules
%endif
%{_udevrulesdir}/80-net-setup-link.rules
%{_udevrulesdir}/81-net-dhcp.rules
%{_udevrulesdir}/90-iocost.rules
%{_udevrulesdir}/90-vconsole.rules
%if %{without bootstrap}
%{_unitdir}/cryptsetup-pre.target
%{_unitdir}/cryptsetup.target
%endif
%{_unitdir}/hibernate.target
%{_unitdir}/hybrid-sleep.target
%if %{without bootstrap}
%{_unitdir}/initrd-root-device.target.wants/remote-cryptsetup.target
%{_unitdir}/initrd-root-device.target.wants/remote-veritysetup.target
%endif
%{_unitdir}/initrd-udevadm-cleanup-db.service
%{_unitdir}/initrd.target.wants/systemd-battery-check.service
%if %{without bootstrap}
%{_unitdir}/integritysetup-pre.target
%{_unitdir}/integritysetup.target
%{_unitdir}/kmod-static-nodes.service
%endif
%{_unitdir}/quotaon-root.service
%{_unitdir}/quotaon@.service
%if %{without bootstrap}
%{_unitdir}/remote-cryptsetup.target
%{_unitdir}/remote-veritysetup.target
%endif
%{_unitdir}/sleep.target
%if %{with sd_boot}
%{_unitdir}/sockets.target.wants/systemd-bootctl.socket
%endif
%{_unitdir}/sockets.target.wants/systemd-udevd-control.socket
%{_unitdir}/sockets.target.wants/systemd-udevd-kernel.socket
%{_unitdir}/suspend-then-hibernate.target
%{_unitdir}/suspend.target
%if %{without bootstrap}
%{_unitdir}/sysinit.target.wants/cryptsetup.target
%{_unitdir}/sysinit.target.wants/integritysetup.target
%{_unitdir}/sysinit.target.wants/kmod-static-nodes.service
%endif
%if %{with sd_boot}
%{_unitdir}/sysinit.target.wants/systemd-hibernate-clear.service
%endif
%{_unitdir}/sysinit.target.wants/systemd-hwdb-update.service
%if %{without bootstrap}
%{_unitdir}/sysinit.target.wants/systemd-modules-load.service
%endif
%{_unitdir}/sysinit.target.wants/systemd-random-seed.service
%{_unitdir}/sysinit.target.wants/systemd-tmpfiles-setup-dev-early.service
%{_unitdir}/sysinit.target.wants/systemd-tmpfiles-setup-dev.service
%{_unitdir}/sysinit.target.wants/systemd-udev-trigger.service
%{_unitdir}/sysinit.target.wants/systemd-udevd.service
%if %{without bootstrap}
%{_unitdir}/sysinit.target.wants/veritysetup.target
%{_unitdir}/system-systemd\x2dcryptsetup.slice
%{_unitdir}/system-systemd\x2dveritysetup.slice
%endif
%{_unitdir}/systemd-backlight@.service
%{_unitdir}/systemd-battery-check.service
%if %{with sd_boot}
%{_unitdir}/systemd-bootctl.socket
%{_unitdir}/systemd-bootctl@.service
%endif
%{_unitdir}/systemd-firstboot.service
%{_unitdir}/systemd-fsck-root.service
%{_unitdir}/systemd-fsck@.service
%{_unitdir}/systemd-growfs-root.service
%{_unitdir}/systemd-growfs@.service
%if %{with sd_boot}
%{_unitdir}/systemd-hibernate-clear.service
%endif
%{_unitdir}/systemd-hibernate-resume.service
%{_unitdir}/systemd-hibernate.service
%{_unitdir}/systemd-hwdb-update.service
%{_unitdir}/systemd-hybrid-sleep.service
%if %{without bootstrap}
%{_unitdir}/systemd-modules-load.service
%endif
%{_unitdir}/systemd-network-generator.service
%{_unitdir}/systemd-pstore.service
%{_unitdir}/systemd-quotacheck-root.service
%{_unitdir}/systemd-quotacheck@.service
%{_unitdir}/systemd-random-seed.service
%{_unitdir}/systemd-remount-fs.service
%if %{without bootstrap}
%{_unitdir}/systemd-repart.service
%endif
%{_unitdir}/systemd-rfkill.service
%{_unitdir}/systemd-rfkill.socket
%{_unitdir}/systemd-suspend-then-hibernate.service
%{_unitdir}/systemd-suspend.service
%{_unitdir}/systemd-timesyncd.service
%{_unitdir}/systemd-tmpfiles-setup-dev-early.service
%{_unitdir}/systemd-tmpfiles-setup-dev.service
%{_unitdir}/systemd-udev-load-credentials.service
%{_unitdir}/systemd-udev-settle.service
%{_unitdir}/systemd-udev-trigger.service
%{_unitdir}/systemd-udevd-control.socket
%{_unitdir}/systemd-udevd-kernel.socket
%{_unitdir}/systemd-udevd.service
%{_unitdir}/systemd-vconsole-setup.service
%{_unitdir}/systemd-volatile-root.service
%{_unitdir}/tpm2.target
%if %{without bootstrap}
%{_unitdir}/veritysetup-pre.target
%{_unitdir}/veritysetup.target
%endif

29
files.uefi-boot Normal file
View File

@ -0,0 +1,29 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%dir %{_systemd_util_dir}/boot
%dir %{_systemd_util_dir}/boot/efi
%if %{without bootstrap}
%{_mandir}/man5/loader.conf.5.gz
%{_mandir}/man7/linuxaa64.efi.stub.7.gz
%{_mandir}/man7/linuxia32.efi.stub.7.gz
%{_mandir}/man7/linuxx64.efi.stub.7.gz
%{_mandir}/man7/sd-boot.7.gz
%{_mandir}/man7/sd-stub.7.gz
%{_mandir}/man7/systemd-boot.7.gz
%{_mandir}/man7/systemd-stub.7.gz
%{_mandir}/man8/systemd-bless-boot-generator.8.gz
%{_mandir}/man8/systemd-bless-boot.8.gz
%{_mandir}/man8/systemd-bless-boot.service.8.gz
%{_mandir}/man8/systemd-boot-random-seed.service.8.gz
%endif
# These are the few exceptions where glob pattern is allowed.
%{_systemd_util_dir}/boot/efi/addon*.efi.stub
%{_systemd_util_dir}/boot/efi/linux*.efi.stub
%{_systemd_util_dir}/boot/efi/systemd-boot*.efi
%{_systemd_util_dir}/systemd-bless-boot
%{_systemdgeneratordir}/systemd-bless-boot-generator
%{_unitdir}/sysinit.target.wants/systemd-boot-random-seed.service
%{_unitdir}/systemd-bless-boot.service
%{_unitdir}/systemd-boot-random-seed.service
%{_unitdir}/systemd-boot-update.service

View File

@ -1,38 +0,0 @@
From: Frederic Crozat <fcrozat@suse.com>
Date: Thu, 23 Aug 2012 11:08:25 +0200
Subject: fix support for boot prefixed initscript (bnc#746506)
---
src/systemctl/systemctl.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
Index: systemd-221/src/systemctl/systemctl.c
===================================================================
--- systemd-221.orig/src/systemctl/systemctl.c
+++ systemd-221/src/systemctl/systemctl.c
@@ -5165,8 +5165,24 @@ static int enable_sysv_units(const char
p[strlen(p) - strlen(".service")] = 0;
found_sysv = access(p, F_OK) >= 0;
- if (!found_sysv)
+ if (!found_sysv) {
+#ifdef HAVE_SYSV_COMPAT
+ free(p);
+ p = NULL;
+ if (!isempty(arg_root))
+ asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name);
+ else
+ asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name);
+ if (!p)
+ return -ENOMEM;
+ p[strlen(p) - sizeof(".service") + 1] = 0;
+ found_sysv = access(p, F_OK) >= 0;
+ if (!found_sysv)
+ continue;
+#else
continue;
+#endif
+ }
if (found_native)
log_info("Synchronizing state of %s with SysV init with %s...", name, argv[0]);

146
fixlet-container-post.sh Normal file
View File

@ -0,0 +1,146 @@
#! /bin/bash
#
# This script contains all the fixups run when systemd-container package is
# installed or updated.
#
warn() {
echo >&2 "warning: $@"
}
is_btrfs_subvolume() {
# On btrfs subvolumes always have the inode 256
test $(stat --format=%i "$1") -eq 256
}
# This assumes the directory/subvol is emptied by the caller.
rm_subvolume_or_directory() {
is_btrfs_subvolume "$1" && {
btrfs subvolume delete "$1"
return
}
rmdir "$1"
}
# On systems using BTRFS, convert /var/lib/machines into a subvolume suitable
# for snapper to perform snapshots, rollbacks.. in case it was not properly set
# up, see bsc#992573. The installer has been fixed to properly initialize it at
# installation time.
#
# The conversion might only be problematic for openSUSE distros (TW/Factory)
# where the subvolume was created at the wrong place (via tmpfiles for example)
# and it got populated before we had time to fix it. In this case we'll let the
# user fix it manually.
#
# On SLE12 this subvolume was only introduced during the upgrade from v210 to
# v228 (ie SLE12-SP[01] -> SLE12-SP2+ when we added this workaround hence no
# user should had time to populate it. Note that the subvolume is still created
# at the wrong place due to the call to tmpfiles_create macro in the %post
# section however it's empty so again we shouldn't face any issue to convert it.
#
# In order to avoid ugly dependencies added in systemd package, this function
# should only be called during package updates when mksubvolume(8) is
# available. During installation, /var/lib/machines is supposed to be created by
# the installer now.
#
# See bsc#992573
#
fix_machines_subvol() {
local tagfile=/var/lib/systemd/rpm/container-machines_subvol
if [ -e $tagfile ]; then
return 0
fi
touch $tagfile
#
# If there's already an entry in fstab for /var/lib/machines, it
# means that:
#
# - the installer initialized /var/lib/machines correctly (default)
# - we already fixed it
# - the sysadmin added it manually
#
# In any cases we should return.
#
# Note: we can't simply check if /var/lib/machines has been mounted
# because an update through a chroot might be in progress (see
# bsc#1030290).
#
if mount --fake /var/lib/machines 2>/dev/null; then
return
fi
#
# If there is already an entry in fstab for /var, it means that:
#
# - the system has a seperate /var subvolume (default from Feb 2018)
# - the system has a seperate /var partition
#
# In any case we should return.
#
if mount --fake /var 2>/dev/null; then
return
fi
#
# If something is already mounted don't try to fix anything, it's been
# done manually by the sysadmin.
#
if mountpoint -q /var/lib/machines; then
return
fi
#
# Let's try to figure out if the current filesystem uses a Snapper
# BTRFS specific layout. Note that TW uses a different layout than
# SLE...
#
# FIXME: not sure if it's correct, reliable or optimal.
#
case $(findmnt -nr -t btrfs -o FSROOT / 2>/dev/null) in
*.snapshots/*/snapshot*)
;;
*)
return 0
esac
if test -d /var/lib/machines; then
#
# Ok, we're on a system supporting rollbacks and
# /var/lib/machines is not a subvolume remotely mounted so it
# cannot be suitable for systems supporting rollback. Fix it.
#
echo "Making /var/lib/machines suitable for rollbacks..."
type mksubvolume >/dev/null 2>&1 || {
warn "mksubvolume(8) is not installed, aborting."
return 1
}
test "$(ls -A /var/lib/machines/)" && {
warn "/var/lib/machines is not empty, aborting."
return 1
}
echo "Deleting empty /var/lib/machines directory/subvolume"
rm_subvolume_or_directory /var/lib/machines || {
warn "fail to delete /var/lib/machines"
return 1
}
fi
# At this point /var/lib/machines shouldn't exist.
echo "Creating /var/lib/machines subvolume suitable for rollbacks."
mksubvolume /var/lib/machines
}
r=0
if [ $1 -gt 1 ]; then
# During upgrade
fix_machines_subvol || {
warn "Please fix /var/lib/machines manually."
r=1
}
fi
exit $r

312
fixlet-systemd-post.sh Normal file
View File

@ -0,0 +1,312 @@
#! /bin/bash
#
# This script contains all the fixups run when systemd package is installed or
# updated.
#
# /etc/sysconfig/console | /etc/vconsole.conf
# -------------------------+---------------------
# CONSOLE_FONT | FONT
# CONSOLE_SCREENMAP | FONT_MAP
# CONSOLE_UNICODEMAP | FONT_UNIMAP
migrate_locale () {
local migrated=""
if ! test -f /etc/sysconfig/console; then
return
fi
source /etc/sysconfig/console || return
if test -f /etc/vconsole.conf; then
source /etc/vconsole.conf || return
fi
if test -n "$CONSOLE_FONT" && test -z "$FONT"; then
echo "FONT=$CONSOLE_FONT" >>/etc/vconsole.conf
migrated+="CONSOLE_FONT "
fi
if test -n "$CONSOLE_SCREENMAP" && test -z "$FONT_MAP"; then
echo "FONT_MAP=$CONSOLE_SCREENMAP" >>/etc/vconsole.conf
migrated+="CONSOLE_SCREENMAP "
fi
if test -n "$CONSOLE_UNICODEMAP" && test -z "$FONT_UNIMAP"; then
echo "FONT_UNIMAP=$CONSOLE_UNICODEMAP" >>/etc/vconsole.conf
migrated+="CONSOLE_UNICODEMAP "
fi
if test -n "$migrated"; then
echo >&2 "The following variables from /etc/sysconfig/console have been migrated"
echo >&2 "into /etc/vconsole.conf:"
echo >&2
for v in $migrated; do echo " - $v=${!v}"; done
echo >&2
echo >&2 "Please edit /etc/vconsole.conf if you need to tune these settings"
echo >&2 "as /etc/sysconfig/console won't be considered anymore."
echo >&2
fi
}
# /etc/sysconfig/keyboard | /etc/vconsole.conf
# -------------------------+---------------------
# KEYTABLE | KEYMAP
migrate_keyboard () {
local migrated=""
if ! test -f /etc/sysconfig/keyboard; then
return
fi
source /etc/sysconfig/keyboard || return
if test -f /etc/vconsole.conf; then
source /etc/vconsole.conf || return
fi
if test -n "$KEYTABLE" && test -z "$KEYMAP"; then
echo "KEYMAP=$KEYTABLE" >>/etc/vconsole.conf
migrated+="KEYTABLE "
fi
if test -n "$migrated"; then
echo >&2 "The following variables from /etc/sysconfig/keyboard have been migrated"
echo >&2 "into /etc/vconsole.conf:"
echo >&2
for v in $migrated; do echo " - $v=${!v}"; done
echo >&2
echo >&2 "Please use localectl(1) if you need to tune these settings since"
echo >&2 "/etc/sysconfig/keyboard won't be considered anymore."
echo >&2
fi
}
# According to
# https://www.suse.com/documentation/sles-12/book_sle_admin/data/sec_suse_l10n.html,
# variables in /etc/sysconfig/language are supposed to be passed to the users'
# shell *only*. However it seems that there has been some confusion and they
# ended up configuring the system-wide locale as well. The logic followed by
# systemd was implemented in commit 01c4b6f4f0d951d17f6873f68156ecd7763429c6,
# which was reverted. The code below follows the same logic to migrate content
# of /etc/sysconfig/language into locale.conf.
migrate_language () {
local lang=
local migrated=false
if ! test -f /etc/sysconfig/language; then
return
fi
source /etc/sysconfig/language || return
lang=$(grep ^LANG= /etc/locale.conf 2>/dev/null)
lang=${lang#LANG=}
case "$ROOT_USES_LANG" in
yes)
if test -z "$lang" && test -n "$RC_LANG"; then
echo "LANG=$RC_LANG" >>/etc/locale.conf
migrated=true
fi
;;
ctype)
if ! grep -q ^LC_CTYPE= /etc/locale.conf 2>/dev/null; then
: ${lc_ctype:="$lang"}
: ${lc_ctype:="$RC_LC_CTYPE"}
: ${lc_ctype:="$RC_LANG"}
if test -n "$lc_ctype"; then
echo "LC_CTYPE=$lc_ctype" >>/etc/locale.conf
migrated=true
fi
fi
;;
esac
if $migrated; then
echo >&2 "The content of /etc/sysconfig/language has been migrated into"
echo >&2 "/etc/locale.conf. The former file is now only used for setting"
echo >&2 "the locale used by user's shells. The system-wide locale is"
echo >&2 "only read from /etc/locale.conf since now."
echo >&2
echo >&2 "Please only use localectl(1) or YaST if you need to change the"
echo >&2 "settings of the *system-wide* locale from now."
fi
}
#
# Migrate old i18n settings previously configured in /etc/sysconfig to the new
# locations used by systemd (/etc/locale.conf, /etc/vconsole.conf, ...). Recent
# versions of systemd parse the new locations only.
#
# This is needed both at package updates and package installations because we
# might be upgrading from a system which was running SysV init (systemd package
# is being installed).
#
# Note: run only once.
#
migrate_sysconfig_i18n() {
local tagfile=/var/lib/systemd/rpm/systemd-i18n_migrated
local -i rv=0
if [ -e $tagfile ]; then
return 0
fi
# The marker could have been incorrectly put in /usr/lib.
mv /usr/lib/systemd/scripts/.migrate-sysconfig-i18n.sh~done $tagfile &>/dev/null
# The tag files have been moved to /var/lib/systemd/rpm later.
mv /var/lib/systemd/i18n-migrated $tagfile &>/dev/null
if [ -e $tagfile ]; then
return 0
fi
touch $tagfile
migrate_locale; rv+=$?
migrate_keyboard; rv+=$?
migrate_language; rv+=$?
if [ $rv -gt 0 ]; then
echo >&2 "Failed to migrate i18n settings from /etc/sysconfig, ignoring."
fi
return $rv
}
#
# This function is supposed to be called from the %post section of the main
# package. It contains all the fixups needed when the system was running a
# version of systemd older than v210.
#
# All hacks can potentially break the admin settings since they work in /etc.
#
fix_pre_210() {
local tagfile=/var/lib/systemd/rpm/systemd-pre_210_fixed
if [ -e $tagfile ]; then
return 0
fi
touch $tagfile
#
# During migration from sysvinit to systemd, we used to set the systemd
# default target to one of the 'runlevel*.target' after reading the
# default runlevel from /etc/inittab. We don't do that anymore because
# in most cases using the graphical.target target, which is the default,
# will do the right thing. Moreover the runlevel targets are considered
# as deprecated, so we convert them into "true" systemd targets instead
# here.
#
if target=$(readlink /etc/systemd/system/default.target); then
target=$(basename $target)
case "$target" in
runlevel?.target)
echo "Default target is '$target' but use of runlevels is deprecated, converting"
systemctl --no-reload set-default $target
esac
fi
#
# Migrate any symlink which may refer to the old path (ie /lib/systemd).
#
for f in $(find /etc/systemd/system -type l -xtype l); do
new_target="/usr$(readlink $f)"
[ -f "$new_target" ] && ln -s -f "$new_target" "$f"
done
}
#
# /etc/machine-id might have been created writeable incorrectly (boo#1092269).
#
# Note: run at each package update.
#
fix_machine_id_perms() {
if [ "$(stat -c%a /etc/machine-id)" != 444 ]; then
echo "Incorrect file mode bits for /etc/machine-id which should be 0444, fixing..."
chmod 444 /etc/machine-id
fi
}
#
# v228 wrongly set world writable suid root permissions on timestamp files used
# by permanent timers. Fix the timestamps that might have been created by the
# affected versions of systemd (bsc#1020601).
#
# Note: run at each package update.
#
fix_bsc_1020601() {
for stamp in $(ls /var/lib/systemd/timers/stamp-*.timer 2>/dev/null); do
chmod 0644 $stamp
done
# Same for user lingering created by logind.
for username in $(ls /var/lib/systemd/linger/* 2>/dev/null); do
chmod 0644 $username
done
}
#
# Due to the fact that DynamicUser= was turned ON during v235 and then switched
# back to off in v240, /var/lib/systemd/timesync might be a symlink pointing to
# /var/lib/private/systemd/timesync, which is inaccessible for systemd-timesync
# user as /var/lib/private is 0700 root:root, see
# https://github.com/systemd/systemd/issues/11329 for details.
#
# Note: only TW might be affected by this bug.
# Note: run at each package update.
#
fix_issue_11329() {
if [ -L /var/lib/systemd/timesync ]; then
rm /var/lib/systemd/timesync
mv /var/lib/private/systemd/timesync /var/lib/systemd/timesync
fi
}
#
# We don't ship after-local.service anymore however as a courtesy we install a
# copy in /etc for users who are relying on it.
#
# Note: should run only once since it is conditionalized on the presence of
# %{_unitdir}/after-local.service
#
drop_after_local_support() {
if [ -x /etc/init.d/after.local ] &&
[ -f /usr/lib/systemd/system/after-local.service ]; then
echo "after-local.service is no more provided by systemd but a copy has been installed in /etc"
cp /usr/lib/systemd/system/after-local.service /etc/systemd/system/
ln -s ../after-local.service /etc/systemd/system/multi-user.target.wants/after-local.service
fi
}
#
# We have stopped shipping the main config files in /etc but we don't try to
# clean them up automatically as it can have unexepected side effects
# (bsc#1226415). Instead we simply suggest users to convert them (if they exist)
# into drop-ins.
#
# Note: run at each package update
#
check_config_files () {
config_files=(systemd/journald.conf systemd/logind.conf systemd/system.conf systemd/user.conf
systemd/pstore.conf systemd/sleep.conf systemd/timesyncd.conf systemd/coredump.conf
systemd/journal-remote.conf systemd/journal-upload.conf systemd/networkd.conf
systemd/resolved.conf systemd/oomd.conf udev/iocost.conf udev/udev.conf)
for f in ${config_files[*]}; do
[ -e /etc/$f ] || continue
cat >&2 <<EOF
Main configuration files are deprecated in favor of drop-ins.
Hence, we suggest that you remove /etc/$f if it doesn't contain any customization, or convert it into drop-in otherwise.
For more details, please visit https://en.opensuse.org/Systemd#Configuration.
EOF
done
}
r=0
fix_machine_id_perms || r=1
fix_pre_210 || r=1
migrate_sysconfig_i18n || r=1
fix_bsc_1020601 || r=1
fix_issue_11329 || r=1
drop_after_local_support || r=1
exit $r

View File

@ -1,216 +0,0 @@
Original-From: Frederic Crozat <fcrozat@suse.com>
Original-Date: Fri, 19 Aug 2011 15:29:49 +0000
Subject: handle disable_caplock and compose_table and kbd_rate
References: https://bugzilla.opensuse.org/746595
Last-Editor: Jan Engelhardt <jengelh@inai.de>
Date: Fri Jun 19 21:36:27 CEST 2015
---
src/vconsole/vconsole-setup.c | 151 ++++++++++++++++++++++++++++++++++++++++--
1 file changed, 147 insertions(+), 4 deletions(-)
Index: systemd-228/src/vconsole/vconsole-setup.c
===================================================================
--- systemd-228.orig/src/vconsole/vconsole-setup.c
+++ systemd-228/src/vconsole/vconsole-setup.c
@@ -34,6 +34,8 @@
#include "alloc-util.h"
#include "fd-util.h"
#include "fileio.h"
+#include "macro.h"
+#include "strv.h"
#include "io-util.h"
#include "locale-util.h"
#include "log.h"
@@ -104,8 +106,10 @@ static int enable_utf8(int fd) {
return r;
}
-static int keyboard_load_and_wait(const char *vc, const char *map, const char *map_toggle, bool utf8) {
- const char *args[8];
+static int keyboard_load_and_wait(const char *vc, const char *map,
+ const char *map_toggle, bool utf8, bool disable_capslock)
+{
+ const char *args[9];
int i = 0, r;
pid_t pid;
@@ -122,6 +126,8 @@ static int keyboard_load_and_wait(const
args[i++] = map;
if (map_toggle)
args[i++] = map_toggle;
+ if (disable_capslock)
+ args[i++] = "disable.capslock";
args[i++] = NULL;
pid = fork();
@@ -251,11 +257,117 @@ static void font_copy_to_all_vcs(int fd)
}
}
+#ifdef HAVE_SYSV_COMPAT
+static int compose_load_and_wait(const char *vc, const char *compose_table)
+{
+ const char *args[1024];
+ unsigned int i = 0, j = 0;
+ int ret;
+ pid_t pid;
+ char **strv_compose_table = NULL;
+ char *to_free[1024];
+
+ if (isempty(compose_table))
+ /* An empty map means no compose table */
+ return 1;
+
+ args[i++] = KBD_LOADKEYS;
+ args[i++] = "-q";
+ args[i++] = "-C";
+ args[i++] = vc;
+
+ strv_compose_table = strv_split(compose_table, WHITESPACE);
+ if (strv_compose_table) {
+ bool compose_loaded = false;
+ bool compose_clear = false;
+ char **name;
+ char *arg;
+
+ STRV_FOREACH(name, strv_compose_table) {
+ if (streq(*name, "-c") || streq(*name, "clear")) {
+ compose_clear = true;
+ continue;
+ }
+ if (!compose_loaded && compose_clear)
+ args[i++] = "-c";
+ asprintf(&arg, "compose.%s", *name);
+ compose_loaded = true;
+ args[i++] = to_free[j++] = arg;
+ if (i >= ELEMENTSOF(args) - 1)
+ break;
+ }
+ strv_free(strv_compose_table);
+ }
+ args[i++] = NULL;
+
+ pid = fork();
+ if (pid < 0)
+ return log_error_errno(errno, "Failed to fork: %m");
+ if (pid == 0) {
+ reset_all_signal_handlers();
+ reset_signal_mask();
+ execv(args[0], (char **) args);
+ _exit(EXIT_FAILURE);
+ }
+
+ ret = wait_for_terminate_and_warn(args[0], pid, true);
+ for (i = 0; i < j; ++i)
+ free(to_free[i]);
+ if (ret < 0)
+ return ret;
+ return ret == 0;
+}
+#endif
+
+static int kbdrate_set_and_wait(const char *vc, const char *kbd_rate,
+ const char *kbd_delay)
+{
+ const char *args[7];
+ int i = 0, ret;
+ pid_t pid;
+
+ if (isempty(kbd_rate) && isempty(kbd_delay))
+ return 1;
+
+ args[i++] = "/bin/kbdrate";
+ if (!isempty(kbd_rate)) {
+ args[i++] = "-r";
+ args[i++] = kbd_rate;
+ }
+ if (!isempty(kbd_delay)) {
+ args[i++] = "-d";
+ args[i++] = kbd_delay;
+ }
+ args[i++] = "-s";
+ args[i++] = NULL;
+
+ pid = fork();
+ if (pid < 0)
+ return log_error_errno(errno, "Failed to fork: %m");
+ if (pid == 0) {
+ reset_all_signal_handlers();
+ reset_signal_mask();
+ execv(args[0], (char **) args);
+ _exit(EXIT_FAILURE);
+ }
+ ret = wait_for_terminate_and_warn(args[0], pid, true);
+ if (ret < 0)
+ return ret;
+ return ret == 0;
+}
+
int main(int argc, char **argv) {
const char *vc;
_cleanup_free_ char
*vc_keymap = NULL, *vc_keymap_toggle = NULL,
*vc_font = NULL, *vc_font_map = NULL, *vc_font_unimap = NULL;
+#ifdef HAVE_SYSV_COMPAT
+ _cleanup_free_ char
+ *vc_kbd_delay = NULL, *vc_kbd_rate = NULL,
+ *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL;
+#endif
+ bool disable_capslock = false;
+ bool comp_ok, rate_ok;
_cleanup_close_ int fd = -1;
bool utf8, font_copy = false, font_ok, keyboard_ok;
int r = EXIT_FAILURE;
@@ -286,6 +398,31 @@ int main(int argc, char **argv) {
utf8 = is_locale_utf8();
+#ifdef HAVE_SYSV_COMPAT
+ r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE,
+ "KEYTABLE", &vc_keymap,
+ "KBD_DELAY", &vc_kbd_delay,
+ "KBD_RATE", &vc_kbd_rate,
+ "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock,
+ "COMPOSETABLE", &vc_compose_table,
+ NULL);
+ if (r < 0 && r != -ENOENT)
+ log_warning("Failed to read /etc/sysconfig/keyboard: %s",
+ strerror(-r));
+
+ r = parse_env_file("/etc/sysconfig/console", NEWLINE,
+ "CONSOLE_FONT", &vc_font,
+ "CONSOLE_SCREENMAP", &vc_font_map,
+ "CONSOLE_UNICODEMAP", &vc_font_unimap,
+ NULL);
+ if (r < 0 && r != -ENOENT)
+ log_warning("Failed to read /etc/sysconfig/console: %s",
+ strerror(-r));
+
+ disable_capslock = vc_kbd_disable_caps_lock &&
+ strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0;
+#endif /* HAVE_SYSV_COMPAT */
+
r = parse_env_file("/etc/vconsole.conf", NEWLINE,
"KEYMAP", &vc_keymap,
"KEYMAP_TOGGLE", &vc_keymap_toggle,
@@ -317,11 +454,17 @@ int main(int argc, char **argv) {
(void) disable_utf8(fd);
font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) > 0;
- keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle, utf8) > 0;
+ keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle,
+ utf8, disable_capslock) > 0;
+#ifdef HAVE_SYSV_COMPAT
+ comp_ok = compose_load_and_wait(vc, vc_compose_table);
+ rate_ok = kbdrate_set_and_wait(vc, vc_kbd_rate, vc_kbd_delay);
+#endif
/* Only copy the font when we executed setfont successfully */
if (font_copy && font_ok)
(void) font_copy_to_all_vcs(fd);
- return font_ok && keyboard_ok ? EXIT_SUCCESS : EXIT_FAILURE;
+ return font_ok && keyboard_ok && comp_ok && rate_ok ?
+ EXIT_SUCCESS : EXIT_FAILURE;
}

View File

@ -1,193 +0,0 @@
Set NumLock according to /etc/sysconfig/keyboard.
https://bugzilla.novell.com/show_bug.cgi?id=746595
Authors:
Stanislav Brabec <sbrabec@suse.cz>
Cristian Rodríguez <crrodriguez@opensuse.org>
---
Makefile.am | 13 ++++++++++
rules/73-seat-numlock.rules | 8 ++++++
src/login/numlock-on.c | 34 ++++++++++++++++++++++++++
src/vconsole/vconsole-setup.c | 41 ++++++++++++++++++++++++++++++--
units/systemd-vconsole-setup.service.in | 2 -
5 files changed, 95 insertions(+), 3 deletions(-)
Index: systemd-228/Makefile.am
===================================================================
--- systemd-228.orig/Makefile.am
+++ systemd-228/Makefile.am
@@ -3825,6 +3825,19 @@ dist_udevrules_DATA += \
rules/60-persistent-v4l.rules
# ------------------------------------------------------------------------------
+numlock_on_SOURCES = \
+ src/login/numlock-on.c
+
+numlock_on_CFLAGS = \
+ $(AM_CFLAGS)
+
+udevlibexec_PROGRAMS += \
+ numlock-on
+
+dist_udevrules_DATA += \
+ rules/73-seat-numlock.rules
+
+# ------------------------------------------------------------------------------
mtd_probe_SOURCES = \
src/udev/mtd_probe/mtd_probe.c \
src/udev/mtd_probe/mtd_probe.h \
Index: systemd-228/rules/73-seat-numlock.rules
===================================================================
--- /dev/null
+++ systemd-228/rules/73-seat-numlock.rules
@@ -0,0 +1,8 @@
+# This file is part of SUSE customization 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.
+
+SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}"
Index: systemd-228/src/login/numlock-on.c
===================================================================
--- /dev/null
+++ systemd-228/src/login/numlock-on.c
@@ -0,0 +1,34 @@
+/*
+ * numlock-on.c: Turn numlock-on
+ *
+ * This file may be freely copied under the terms of the GNU General
+ * Public License (GPL), version 2, or at your option any later
+ * version.
+
+ * Copyright (C) 2013 Stanislav Brabec, SUSE
+ *
+ * based on setleds.c, which is
+ * Copyright (C) 1994-1999 Andries E. Brouwer
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/ioctl.h>
+#include <linux/kd.h>
+
+int
+main(int argc, char **argv) {
+ char flags;
+
+ if (ioctl(0, KDGKBLED, &flags)) {
+ perror("KDGKBLED");
+ exit(1);
+ }
+
+ if (ioctl(0, KDSKBLED, flags | LED_NUM | (LED_NUM << 4))) {
+ perror("KDSKBLED");
+ exit(1);
+ }
+
+ exit(0);
+}
Index: systemd-228/src/vconsole/vconsole-setup.c
===================================================================
--- systemd-228.orig/src/vconsole/vconsole-setup.c
+++ systemd-228/src/vconsole/vconsole-setup.c
@@ -36,6 +36,7 @@
#include "fileio.h"
#include "macro.h"
#include "strv.h"
+#include "fs-util.h"
#include "io-util.h"
#include "locale-util.h"
#include "log.h"
@@ -46,6 +47,10 @@
#include "util.h"
#include "virt.h"
+#define BIOS_DATA_AREA 0x400
+#define BDA_KEYBOARD_STATUS_FLAGS_4 0x97
+#define BDA_KSF4_NUMLOCK_MASK 0x02
+
static bool is_vconsole(int fd) {
unsigned char data[1];
@@ -364,9 +369,10 @@ int main(int argc, char **argv) {
#ifdef HAVE_SYSV_COMPAT
_cleanup_free_ char
*vc_kbd_delay = NULL, *vc_kbd_rate = NULL,
- *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL;
+ *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL,
+ *vc_kbd_numlock = NULL;
#endif
- bool disable_capslock = false;
+ bool disable_capslock = false, numlock = false;
bool comp_ok, rate_ok;
_cleanup_close_ int fd = -1;
bool utf8, font_copy = false, font_ok, keyboard_ok;
@@ -404,6 +410,7 @@ int main(int argc, char **argv) {
"KBD_DELAY", &vc_kbd_delay,
"KBD_RATE", &vc_kbd_rate,
"KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock,
+ "KBD_NUMLOCK", &vc_kbd_numlock,
"COMPOSETABLE", &vc_compose_table,
NULL);
if (r < 0 && r != -ENOENT)
@@ -421,6 +428,32 @@ int main(int argc, char **argv) {
disable_capslock = vc_kbd_disable_caps_lock &&
strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0;
+ numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes");
+#if defined(__i386__) || defined(__x86_64__)
+ if (vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "bios")) {
+ int _cleanup_close_ fdmem;
+ char c;
+
+ fdmem = open ("/dev/mem", O_RDONLY);
+ if (fdmem < 0) {
+ log_error("Failed to open /dev/mem: %m");
+ return EXIT_FAILURE;
+ }
+
+ if (lseek(fdmem, BIOS_DATA_AREA + BDA_KEYBOARD_STATUS_FLAGS_4, SEEK_SET) == (off_t) -1) {
+ log_error("Failed to seek /dev/mem: %m");
+ return EXIT_FAILURE;
+ }
+
+ if (read(fdmem, &c, sizeof(char)) == -1) {
+ log_error("Failed to read /dev/mem: %m");
+ return EXIT_FAILURE;
+ }
+
+ if (c & BDA_KSF4_NUMLOCK_MASK)
+ numlock = true;
+ }
+#endif /* x86 */
#endif /* HAVE_SYSV_COMPAT */
r = parse_env_file("/etc/vconsole.conf", NEWLINE,
@@ -456,6 +489,10 @@ int main(int argc, char **argv) {
font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) > 0;
keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle,
utf8, disable_capslock) > 0;
+ if (numlock)
+ touch("/run/numlock-on");
+ else
+ unlink("/run/numlock-on");
#ifdef HAVE_SYSV_COMPAT
comp_ok = compose_load_and_wait(vc, vc_compose_table);
rate_ok = kbdrate_set_and_wait(vc, vc_kbd_rate, vc_kbd_delay);
Index: systemd-228/units/systemd-vconsole-setup.service.in
===================================================================
--- systemd-228.orig/units/systemd-vconsole-setup.service.in
+++ systemd-228/units/systemd-vconsole-setup.service.in
@@ -10,7 +10,7 @@ Description=Setup Virtual Console
Documentation=man:systemd-vconsole-setup.service(8) man:vconsole.conf(5)
DefaultDependencies=no
Conflicts=shutdown.target
-Before=sysinit.target shutdown.target
+Before=sysinit.target shutdown.target systemd-udev-trigger.service
ConditionPathExists=/dev/tty0
[Service]

View File

@ -1,72 +0,0 @@
From: Frederic Crozat <fcrozat@suse.com>
Date: Tue, 4 Dec 2012 16:51:32 +0000
Subject: handle root_uses_lang value in /etc/sysconfig/language
handle ROOT_USES_LANG=ctype (boo#792182).
---
src/core/locale-setup.c | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
Index: systemd-228/src/core/locale-setup.c
===================================================================
--- systemd-228.orig/src/core/locale-setup.c
+++ systemd-228/src/core/locale-setup.c
@@ -30,11 +30,16 @@
#include "strv.h"
#include "util.h"
#include "virt.h"
+#include "alloc-util.h"
int locale_setup(char ***environment) {
char **add;
char *variables[_VARIABLE_LC_MAX] = {};
int r = 0, i;
+#ifdef HAVE_SYSV_COMPAT
+ char _cleanup_free_ *rc_lang = NULL, *rc_lc_ctype = NULL;
+ char _cleanup_free_ *root_uses_lang = NULL;
+#endif
if (detect_container() <= 0) {
r = parse_env_file("/proc/cmdline", WHITESPACE,
@@ -81,6 +86,41 @@ int locale_setup(char ***environment) {
if (r < 0 && r != -ENOENT)
log_warning_errno(r, "Failed to read /etc/locale.conf: %m");
}
+#ifdef HAVE_SYSV_COMPAT
+ r = parse_env_file("/etc/sysconfig/language", NEWLINE,
+ "RC_LANG", &rc_lang,
+ "RC_LC_CTYPE", &rc_lc_ctype,
+ "ROOT_USES_LANG", &root_uses_lang,
+ NULL);
+
+ if (r < 0 && r != -ENOENT)
+ log_warning("Failed to read /etc/sysconfig/language: %s", strerror(-r));
+
+ /*
+ * Use the values of the interactive locale configuration in /etc/sysconfig/language
+ * as fallback if /etc/locale.conf does not exist and no locale was specified on the
+ * kernel's command line. The special case ROOT_USES_LANG=ctype allows to set LC_CTYPE
+ * even if LANG for root is set to e.g. POSIX. But do this only if no LC_CTYPE has been
+ * set in /etc/locale.conf and on the kernel's command line.
+ */
+ if (root_uses_lang) {
+ if (strcaseeq(root_uses_lang, "yes") && !variables[VARIABLE_LANG]) {
+ variables[VARIABLE_LANG] = rc_lang;
+ rc_lang = NULL;
+ }
+ if (strcaseeq(root_uses_lang, "ctype") && !variables[VARIABLE_LC_CTYPE]) {
+ if (variables[VARIABLE_LANG])
+ variables[VARIABLE_LC_CTYPE] = strdup(variables[VARIABLE_LANG]);
+ else if (rc_lc_ctype && *rc_lc_ctype) {
+ variables[VARIABLE_LC_CTYPE] = rc_lc_ctype;
+ rc_lc_ctype = NULL;
+ } else if (rc_lang && *rc_lang) {
+ variables[VARIABLE_LC_CTYPE] = rc_lang;
+ rc_lang = NULL;
+ }
+ }
+ }
+#endif
add = NULL;
for (i = 0; i < _VARIABLE_LC_MAX; i++) {

View File

@ -1,13 +0,0 @@
Index: systemd-222/src/core/hostname-setup.c
===================================================================
--- systemd-222.orig/src/core/hostname-setup.c
+++ systemd-222/src/core/hostname-setup.c
@@ -44,7 +44,7 @@ int hostname_setup(void) {
else
log_warning_errno(r, "Failed to read configured hostname: %m");
- hn = NULL;
+ hn = strdup("nohostname.set.site");
} else
hn = b;
/* strip any leftover of a domain name */

View File

@ -1,399 +0,0 @@
From a8cbe79c77836cc2466e3534157864abc98ef3ef Mon Sep 17 00:00:00 2001
From: Frederic Crozat <fcrozat@suse.com>
Date: Fri, 28 Jun 2013 17:54:41 +0200
Subject: [PATCH] insserv.conf generator
parse /etc/insserv.conf.dd content and /etc/insserv.conf and generate
systemd unit drop-in files to add dependencies
---
Makefile.am | 9
src/insserv-generator/Makefile | 28 ++
src/insserv-generator/insserv-generator.c | 319 ++++++++++++++++++++++++++++++
3 files changed, 355 insertions(+), 1 deletion(-)
create mode 100644 src/insserv-generator/Makefile
create mode 100644 src/insserv-generator/insserv-generator.c
Index: systemd-228/Makefile.am
===================================================================
--- systemd-228.orig/Makefile.am
+++ systemd-228/Makefile.am
@@ -626,7 +626,8 @@ nodist_systemunit_DATA += \
systemgenerator_PROGRAMS += \
systemd-sysv-generator \
- systemd-rc-local-generator
+ systemd-rc-local-generator \
+ systemd-insserv-generator
endif
EXTRA_DIST += \
@@ -2682,6 +2683,12 @@ $(systemd_boot): $(systemd_boot_solib)
endif
endif
+#-------------------------------------------------------------------------------
+systemd_insserv_generator_SOURCES = \
+ src/insserv-generator/insserv-generator.c
+
+systemd_insserv_generator_LDADD = libbasic.la
+
# ------------------------------------------------------------------------------
stub_headers = \
src/boot/efi/util.h \
Index: systemd-228/src/insserv-generator/Makefile
===================================================================
--- /dev/null
+++ systemd-228/src/insserv-generator/Makefile
@@ -0,0 +1,28 @@
+# This file is part of systemd.
+#
+# Copyright 2010 Lennart Poettering
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# systemd is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with systemd; If not, see <http://www.gnu.org/licenses/>.
+
+# This file is a dirty trick to simplify compilation from within
+# emacs. This file is not intended to be distributed. So, don't touch
+# it, even better ignore it!
+
+all:
+ $(MAKE) -C ..
+
+clean:
+ $(MAKE) -C .. clean
+
+.PHONY: all clean
Index: systemd-228/src/insserv-generator/insserv-generator.c
===================================================================
--- /dev/null
+++ systemd-228/src/insserv-generator/insserv-generator.c
@@ -0,0 +1,319 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2012 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+ ***/
+
+#include <stdio.h>
+#include <errno.h>
+#include <string.h>
+#include <sys/stat.h>
+
+#include "mkdir.h"
+#include "log.h"
+#include "fileio.h"
+#include "unit-name.h"
+#include "special.h"
+#include "path-util.h"
+#include "util.h"
+#include "strv.h"
+#include "alloc-util.h"
+#include "string-util.h"
+#include "fd-util.h"
+
+static const char *arg_dest = "/tmp";
+
+static char *sysv_translate_name(const char *name) {
+ char *r;
+
+ r = new(char, strlen(name) + sizeof(".service"));
+ if (!r)
+ return NULL;
+
+ if (endswith(name, ".sh"))
+ /* Drop .sh suffix */
+ strcpy(stpcpy(r, name) - 3, ".service");
+ if (startswith(name, "boot."))
+ /* Drop SuSE-style boot. prefix */
+ strcpy(stpcpy(r, name + 5), ".service");
+ else
+ /* Normal init script name */
+ strcpy(stpcpy(r, name), ".service");
+
+ return r;
+}
+
+static int sysv_translate_facility(const char *name, const char *filename, char **_r) {
+
+ /* We silently ignore the $ prefix here. According to the LSB
+ * spec it simply indicates whether something is a
+ * standardized name or a distribution-specific one. Since we
+ * just follow what already exists and do not introduce new
+ * uses or names we don't care who introduced a new name. */
+
+ static const char * const table[] = {
+ /* LSB defined facilities */
+ "local_fs", NULL,
+ "network", SPECIAL_NETWORK_ONLINE_TARGET,
+ "named", SPECIAL_NSS_LOOKUP_TARGET,
+ "portmap", SPECIAL_RPCBIND_TARGET,
+ "remote_fs", SPECIAL_REMOTE_FS_TARGET,
+ "syslog", NULL,
+ "time", SPECIAL_TIME_SYNC_TARGET,
+ };
+
+ unsigned i;
+ char *r;
+ const char *n;
+ int ret;
+
+ assert(name);
+ assert(_r);
+
+ n = *name == '$' ? name + 1 : name;
+
+ for (i = 0; i < ELEMENTSOF(table); i += 2) {
+
+ if (!streq(table[i], n))
+ continue;
+
+ if (!table[i+1])
+ return 0;
+
+ r = strdup(table[i+1]);
+ if (!r)
+ return log_oom();
+
+ goto finish;
+ }
+
+ /* If we don't know this name, fallback heuristics to figure
+ * out whether something is a target or a service alias. */
+
+ if (*name == '$') {
+ if (!unit_prefix_is_valid(n))
+ return -EINVAL;
+
+ /* Facilities starting with $ are most likely targets */
+ ret = unit_name_build(n, NULL, ".target", &r);
+ if (ret < 0)
+ return ret;
+ } else if (filename && streq(name, filename))
+ /* Names equaling the file name of the services are redundant */
+ return 0;
+ else
+ /* Everything else we assume to be normal service names */
+ r = sysv_translate_name(n);
+
+ if (!r)
+ return -ENOMEM;
+
+finish:
+ *_r = r;
+
+ return 1;
+}
+
+
+
+static int parse_insserv_conf(const char* filename) {
+ _cleanup_fclose_ FILE *f = NULL;
+ int r;
+
+ if (!(f = fopen(filename, "re"))) {
+ log_debug("Failed to open file %s", filename);
+ r = errno == ENOENT ? 0 : -errno;
+ return r;
+ }
+
+ while (!feof(f)) {
+ char l[LINE_MAX], *t;
+ _cleanup_strv_free_ char **parsed = NULL;
+
+ if (!fgets(l, sizeof(l), f)) {
+ if (feof(f))
+ break;
+
+ r = -errno;
+ log_error("Failed to read configuration file '%s': %s", filename, strerror(-r));
+ return -r;
+ }
+
+ t = strstrip(l);
+ if (*t != '$' && *t != '<')
+ continue;
+
+ parsed = strv_split(t,WHITESPACE);
+ /* we ignore <interactive>, not used, equivalent to X-Interactive */
+ if (parsed && !startswith_no_case (parsed[0], "<interactive>")) {
+ _cleanup_free_ char *facility = NULL;
+ if (sysv_translate_facility(parsed[0], NULL, &facility) < 0 || !facility)
+ continue;
+ if (streq(facility, SPECIAL_REMOTE_FS_TARGET)) {
+ _cleanup_free_ char *unit = NULL;
+ /* insert also a Wants dependency from remote-fs-pre on remote-fs */
+ unit = strjoin(arg_dest, "/remote-fs.target.d/50-",basename(filename),".conf", NULL);
+ if (!unit)
+ return log_oom();
+
+ mkdir_parents_label(unit, 0755);
+
+ r = write_string_file(unit,
+ "# Automatically generated by systemd-insserv-generator\n\n"
+ "[Unit]\n"
+ "Wants=remote-fs-pre.target\n",
+ WRITE_STRING_FILE_CREATE);
+ if (r)
+ return r;
+ free (facility);
+ facility=strdup(SPECIAL_REMOTE_FS_PRE_TARGET);
+ }
+ if (facility && endswith(facility, ".target")) {
+ char *name, **j;
+ FILE *file = NULL;
+
+ STRV_FOREACH (j, parsed+1) {
+ _cleanup_free_ char *unit = NULL;
+ _cleanup_free_ char *dep = NULL;
+
+ if (*j[0] == '+')
+ name = *j+1;
+ else
+ name = *j;
+ if (streq(name, "boot.localfs") ||
+ streq(name, "boot.crypto"))
+ continue;
+ if ((sysv_translate_facility(name, NULL, &dep) < 0) || !dep)
+ continue;
+
+ unit = strjoin(arg_dest, "/", dep, ".d/50-",basename(filename),"-",parsed[0],".conf", NULL);
+ if (!unit)
+ return log_oom();
+
+ mkdir_parents_label(unit, 0755);
+
+ file = fopen(unit, "wxe");
+ if (!file) {
+ if (errno == EEXIST)
+ log_error("Failed to create drop-in file %s", unit);
+ else
+ log_error("Failed to create drop-in file %s: %m", unit);
+ return -errno;
+ }
+
+ fprintf(file,
+ "# Automatically generated by systemd-insserv-generator\n\n"
+ "[Unit]\n"
+ "Wants=%s\n"
+ "Before=%s\n",
+ facility, facility);
+
+ fflush(file);
+ if (ferror(file)) {
+ log_error("Failed to write unit file %s: %m", unit);
+ return -errno;
+ }
+ fclose(file);
+
+ if (*j[0] != '+') {
+ free (unit);
+ unit = strjoin(arg_dest, "/", facility, ".d/50-hard-dependency-",basename(filename),"-",parsed[0],".conf", NULL);
+ if (!unit)
+ return log_oom();
+
+ mkdir_parents_label(unit, 0755);
+
+ file = fopen(unit, "wxe");
+ if (!file) {
+ if (errno == EEXIST)
+ log_error("Failed to create drop-in file %s, as it already exists", unit);
+ else
+ log_error("Failed to create drop-in file %s: %m", unit);
+ return -errno;
+ }
+
+
+ fprintf(file,
+ "# Automatically generated by systemd-insserv-generator\n\n"
+ "[Unit]\n"
+ "SourcePath=%s\n"
+ "Requires=%s\n",
+ filename, dep);
+ fflush(file);
+ if (ferror(file)) {
+ log_error("Failed to write unit file %s: %m", unit);
+ return -errno;
+ }
+ fclose(file);
+ }
+ }
+ }
+ }
+ }
+ return r;
+}
+
+static int parse_insserv(void) {
+ DIR *d = NULL;
+ struct dirent *de;
+ int r = 0;
+
+ if (!(d = opendir("/etc/insserv.conf.d/"))) {
+ if (errno != ENOENT) {
+ log_debug("opendir() failed on /etc/insserv.conf.d/ %s", strerror(errno));
+ }
+ } else {
+
+ while ((de = readdir(d))) {
+ char *path = NULL;
+ if (hidden_file(de->d_name))
+ continue;
+
+ path = strjoin("/etc/insserv.conf.d/", de->d_name, NULL);
+ parse_insserv_conf(path);
+ free(path);
+ }
+ closedir (d);
+ }
+
+ r = parse_insserv_conf("/etc/insserv.conf");
+
+ return r;
+}
+
+int main(int argc, char *argv[]) {
+ int r = 0;
+
+ if (argc > 1 && argc != 4) {
+ log_error("This program takes three or no arguments.");
+ return EXIT_FAILURE;
+ }
+
+ if (argc > 1)
+ arg_dest = argv[1];
+
+ log_set_target(LOG_TARGET_SAFE);
+ log_parse_environment();
+ log_open();
+
+ umask(0022);
+
+ r = parse_insserv();
+
+ return (r < 0) ? EXIT_FAILURE : EXIT_SUCCESS;
+}

View File

@ -1,138 +0,0 @@
From: werner@suse.de
Upstream: marked as openSUSE-specific fix originally, but may well
worth be to be sent upstream.
Original description:
(none)
Notes [jengelh@inai.de]:
MAP_NONBLOCK is documented (mmap(2) in man-pages-3.69+) to render
MAP_POPULATE ineffective. Why do we have it?
What is the rationale for MAP_STACK?
---
src/journal/catalog.c | 12 +++++++++++-
src/journal/journal-authenticate.c | 7 +++++--
src/journal/journald-kmsg.c | 3 ++-
src/journal/mmap-cache.c | 16 +++++++++++++++-
4 files changed, 33 insertions(+), 5 deletions(-)
Index: systemd-221/src/journal/catalog.c
===================================================================
--- systemd-221.orig/src/journal/catalog.c
+++ systemd-221/src/journal/catalog.c
@@ -469,6 +469,10 @@ finish:
static int open_mmap(const char *database, int *_fd, struct stat *_st, void **_p) {
const CatalogHeader *h;
+ static const unsigned int advice[] =
+ {MADV_WILLNEED, MADV_SEQUENTIAL, MADV_DONTDUMP, MADV_DONTFORK};
+ unsigned int n;
+ size_t psize;
int fd;
void *p;
struct stat st;
@@ -491,12 +495,18 @@ static int open_mmap(const char *databas
return -EINVAL;
}
- p = mmap(NULL, PAGE_ALIGN(st.st_size), PROT_READ, MAP_SHARED, fd, 0);
+ psize = PAGE_ALIGN(st.st_size);
+ p = mmap(NULL, psize, PROT_READ, MAP_SHARED | MAP_POPULATE |
+ MAP_NONBLOCK, fd, 0);
if (p == MAP_FAILED) {
safe_close(fd);
return -errno;
}
+ for (n = 0; n < sizeof(advice) / sizeof(*advice); ++n)
+ if (madvise(p, psize, advice[n]) < 0)
+ log_warning("Failed to give advice about use of memory: %m");
+
h = p;
if (memcmp(h->signature, CATALOG_SIGNATURE, sizeof(h->signature)) != 0 ||
le64toh(h->header_size) < sizeof(CatalogHeader) ||
Index: systemd-221/src/journal/journal-authenticate.c
===================================================================
--- systemd-221.orig/src/journal/journal-authenticate.c
+++ systemd-221/src/journal/journal-authenticate.c
@@ -355,7 +355,8 @@ int journal_file_fss_load(JournalFile *f
goto finish;
}
- m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ, MAP_SHARED, fd, 0);
+ m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ,
+ MAP_SHARED | MAP_STACK, fd, 0);
if (m == MAP_FAILED) {
m = NULL;
r = -errno;
@@ -399,7 +400,9 @@ int journal_file_fss_load(JournalFile *f
goto finish;
}
- f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
+ f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size),
+ PROT_READ | PROT_WRITE, MAP_SHARED | MAP_STACK,
+ fd, 0);
if (f->fss_file == MAP_FAILED) {
f->fss_file = NULL;
r = -errno;
Index: systemd-221/src/journal/journald-kmsg.c
===================================================================
--- systemd-221.orig/src/journal/journald-kmsg.c
+++ systemd-221/src/journal/journald-kmsg.c
@@ -454,7 +454,8 @@ int server_open_kernel_seqnum(Server *s)
return 0;
}
- p = mmap(NULL, sizeof(uint64_t), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
+ p = mmap(NULL, sizeof(uint64_t), PROT_READ | PROT_WRITE,
+ MAP_SHARED | MAP_STACK, fd, 0);
if (p == MAP_FAILED) {
log_error_errno(errno, "Failed to map sequential number file, ignoring: %m");
return 0;
Index: systemd-221/src/journal/mmap-cache.c
===================================================================
--- systemd-221.orig/src/journal/mmap-cache.c
+++ systemd-221/src/journal/mmap-cache.c
@@ -466,11 +466,14 @@ static int add_mmap(
struct stat *st,
void **ret) {
+ static const unsigned int advice[] =
+ {MADV_WILLNEED, MADV_SEQUENTIAL, MADV_DONTDUMP, MADV_DONTFORK};
uint64_t woffset, wsize;
Context *c;
FileDescriptor *f;
Window *w;
void *d;
+ unsigned int n;
int r;
assert(m);
@@ -509,7 +512,8 @@ static int add_mmap(
}
for (;;) {
- d = mmap(NULL, wsize, prot, MAP_SHARED, fd, woffset);
+ d = mmap(NULL, wsize, prot, MAP_SHARED | MAP_POPULATE |
+ MAP_NONBLOCK, fd, woffset);
if (d != MAP_FAILED)
break;
if (errno != ENOMEM)
@@ -522,6 +526,16 @@ static int add_mmap(
return -ENOMEM;
}
+ for (n = 0; n < sizeof(advice) / sizeof(*advice); ++n) {
+ if (advice[n] == MADV_DONTFORK) {
+ int flags = fcntl(fd, F_GETFD);
+ if (flags < 0 || !(flags & FD_CLOEXEC))
+ continue;
+ }
+ if (madvise(d, wsize, advice[n]) < 0)
+ log_warning("Failed to give advice about use of memory: %m");
+ }
+
c = context_add(m, context);
if (!c)
goto outofmem;

7
kbd-model-map.legacy Normal file
View File

@ -0,0 +1,7 @@
# Additional layouts offered by YaST arabic and ir (Iran) have never had a
# console layout, they are symlinks to 'us', but they are needed as YaST uses
# the console layout as a primary key for picking the X11 layout
arabic ara,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle
ara ara,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle
ir ir pc105 - terminate:ctrl_alt_bksp

View File

@ -1,28 +0,0 @@
From: werner@suse.de
Date: Tue Jan 20 11:33:59 UTC 2015
---
src/locale/kbd-model-map | 13 +++++++++++++
1 file changed, 13 insertions(+)
Index: systemd-221/src/locale/kbd-model-map
===================================================================
--- systemd-221.orig/src/locale/kbd-model-map
+++ systemd-221/src/locale/kbd-model-map
@@ -66,3 +66,16 @@ lt.baltic lt pc105 - terminate:ctrl_a
lt.l4 lt pc105 - terminate:ctrl_alt_bksp
lt lt pc105 - terminate:ctrl_alt_bksp
khmer kh,us pc105 - terminate:ctrl_alt_bksp
+# Additional layouts offered by YaST
+Pl02 pl pc105 - terminate:ctrl_alt_bksp
+arabic ara,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle
+cn-latin1 ca pc105 multix terminate:ctrl_alt_bksp
+cz-lat2-us cz,us pc105 qwerty,basic terminate:ctrl_alt_bksp,grp:shift_toggle
+es-cp850 es pc105 - terminate:ctrl_alt_bksp
+khmer us,kh pc105 - terminate:ctrl_alt_bksp,grp:alt_shift_toggle
+korean kr pc105 - terminate:ctrl_alt_bksp
+lt.baltic lt pc105 - terminate:ctrl_alt_bksp
+lt.std lt pc105 std terminate:ctrl_alt_bksp
+no-latin1 no pc105 - terminate:ctrl_alt_bksp
+ruwin_alt-UTF-8 us,ru pc105 ,winkeys terminate:ctrl_alt_bksp,grp:ctrl_shift_toggle,grp_led:scroll
+sk-qwertz sk,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle

View File

@ -1,19 +0,0 @@
---
configure.ac | 4 ----
1 file changed, 4 deletions(-)
Index: systemd-224/configure.ac
===================================================================
--- systemd-224.orig/configure.ac
+++ systemd-224/configure.ac
@@ -199,10 +199,6 @@ AS_CASE([$CC], [*clang*],
-Wno-gnu-variable-sized-type-not-at-end \
])])
-AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*],
- [CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
- -flto])],
- [AC_MSG_RESULT([skipping -flto, optimization not enabled])])
AC_SUBST([OUR_CFLAGS], "$with_cflags $sanitizer_cflags")
AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*],

View File

@ -1,84 +0,0 @@
From: Werner Fink <werner@suse.de>
Date: Wed Sep 23 12:37:23 UTC 2015
Subject: Do not bother vistual console to much with GIO/PIO
This avoids broken virtual console mapping due stressed ioctl API
for the virtual consoles (boo#904214)
---
src/vconsole/vconsole-setup.c | 39 +++++++++++++++++++++++++--------------
1 file changed, 25 insertions(+), 14 deletions(-)
--- src/vconsole/vconsole-setup.c
+++ src/vconsole/vconsole-setup.c 2015-09-23 12:34:33.854018750 +0000
@@ -202,8 +202,13 @@ static void font_copy_to_all_vcs(int fd)
unsigned short map16[E_TABSZ];
struct unimapdesc unimapd;
struct unipair unipairs[USHRT_MAX];
+ struct console_font_op cfo = {};
int i, r;
+ bool hasmap8;
+ bool hasmap16;
+ bool hasunimap;
+
/* get active, and 16 bit mask of used VT numbers */
r = ioctl(fd, VT_GETSTATE, &vcs);
if (r < 0) {
@@ -211,10 +216,22 @@ static void font_copy_to_all_vcs(int fd)
return;
}
+ /* copy font from active VT, where the font was uploaded to */
+ cfo.op = KD_FONT_OP_COPY;
+ cfo.height = vcs.v_active-1; /* tty1 == index 0 */
+
+ hasmap8 = (ioctl(fd, GIO_SCRNMAP, map8) >= 0);
+ hasmap16 = (ioctl(fd, GIO_UNISCRNMAP, map16) >= 0);
+
+ /* unimapd is a ushort count and a pointer to an
+ * array of struct unipair { ushort, ushort } */
+ unimapd.entries = unipairs;
+ unimapd.entry_ct = USHRT_MAX;
+ hasunimap = (ioctl(fd, GIO_UNIMAP, &unimapd) >= 0);
+
for (i = 1; i <= 15; i++) {
char vcname[strlen("/dev/vcs") + DECIMAL_STR_MAX(int)];
_cleanup_close_ int vcfd = -1;
- struct console_font_op cfo = {};
if (i == vcs.v_active)
continue;
@@ -229,25 +246,19 @@ static void font_copy_to_all_vcs(int fd)
if (vcfd < 0)
continue;
- /* copy font from active VT, where the font was uploaded to */
- cfo.op = KD_FONT_OP_COPY;
- cfo.height = vcs.v_active-1; /* tty1 == index 0 */
+ /* copy font from active VT to vcs */
(void) ioctl(vcfd, KDFONTOP, &cfo);
- /* copy map of 8bit chars */
- if (ioctl(fd, GIO_SCRNMAP, map8) >= 0)
+ /* copy map of 8bit chars to vcs */
+ if (hasmap8)
(void) ioctl(vcfd, PIO_SCRNMAP, map8);
- /* copy map of 8bit chars -> 16bit Unicode values */
- if (ioctl(fd, GIO_UNISCRNMAP, map16) >= 0)
+ /* copy map of 8bit chars -> 16bit Unicode values to vcs */
+ if (hasmap16)
(void) ioctl(vcfd, PIO_UNISCRNMAP, map16);
- /* copy unicode translation table */
- /* unimapd is a ushort count and a pointer to an
- array of struct unipair { ushort, ushort } */
- unimapd.entries = unipairs;
- unimapd.entry_ct = USHRT_MAX;
- if (ioctl(fd, GIO_UNIMAP, &unimapd) >= 0) {
+ /* copy unicode translation table to vcs */
+ if (hasunimap) {
struct unimapinit adv = { 0, 0, 0 };
(void) ioctl(vcfd, PIO_UNIMAPCLR, &adv);

View File

@ -1,123 +0,0 @@
dnl Autoconf macros for libgcrypt
dnl Copyright (C) 2002, 2004 Free Software Foundation, Inc.
dnl
dnl This file is free software; as a special exception the author gives
dnl unlimited permission to copy and/or distribute it, with or without
dnl modifications, as long as this notice is preserved.
dnl
dnl This file is distributed in the hope that it will be useful, but
dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
dnl AM_PATH_LIBGCRYPT([MINIMUM-VERSION,
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
dnl Test for libgcrypt and define LIBGCRYPT_CFLAGS and LIBGCRYPT_LIBS.
dnl MINIMUN-VERSION is a string with the version number optionalliy prefixed
dnl with the API version to also check the API compatibility. Example:
dnl a MINIMUN-VERSION of 1:1.2.5 won't pass the test unless the installed
dnl version of libgcrypt is at least 1.2.5 *and* the API number is 1. Using
dnl this features allows to prevent build against newer versions of libgcrypt
dnl with a changed API.
dnl
AC_DEFUN([AM_PATH_LIBGCRYPT],
[ AC_ARG_WITH(libgcrypt-prefix,
AC_HELP_STRING([--with-libgcrypt-prefix=PFX],
[prefix where LIBGCRYPT is installed (optional)]),
libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="")
if test x$libgcrypt_config_prefix != x ; then
if test x${LIBGCRYPT_CONFIG+set} != xset ; then
LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config
fi
fi
AC_PATH_TOOL(LIBGCRYPT_CONFIG, libgcrypt-config, no)
tmp=ifelse([$1], ,1:1.2.0,$1)
if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'`
min_libgcrypt_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'`
else
req_libgcrypt_api=0
min_libgcrypt_version="$tmp"
fi
AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version)
ok=no
if test "$LIBGCRYPT_CONFIG" != "no" ; then
req_major=`echo $min_libgcrypt_version | \
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
req_minor=`echo $min_libgcrypt_version | \
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
req_micro=`echo $min_libgcrypt_version | \
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version`
major=`echo $libgcrypt_config_version | \
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
minor=`echo $libgcrypt_config_version | \
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
micro=`echo $libgcrypt_config_version | \
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
if test "$major" -gt "$req_major"; then
ok=yes
else
if test "$major" -eq "$req_major"; then
if test "$minor" -gt "$req_minor"; then
ok=yes
else
if test "$minor" -eq "$req_minor"; then
if test "$micro" -ge "$req_micro"; then
ok=yes
fi
fi
fi
fi
fi
fi
if test $ok = yes; then
AC_MSG_RESULT([yes ($libgcrypt_config_version)])
else
AC_MSG_RESULT(no)
fi
if test $ok = yes; then
# If we have a recent libgcrypt, we should also check that the
# API is compatible
if test "$req_libgcrypt_api" -gt 0 ; then
tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0`
if test "$tmp" -gt 0 ; then
AC_MSG_CHECKING([LIBGCRYPT API version])
if test "$req_libgcrypt_api" -eq "$tmp" ; then
AC_MSG_RESULT([okay])
else
ok=no
AC_MSG_RESULT([does not match. want=$req_libgcrypt_api got=$tmp])
fi
fi
fi
fi
if test $ok = yes; then
LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags`
LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs`
ifelse([$2], , :, [$2])
if test x"$host" != x ; then
libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none`
if test x"$libgcrypt_config_host" != xnone ; then
if test x"$libgcrypt_config_host" != x"$host" ; then
AC_MSG_WARN([[
***
*** The config script $LIBGCRYPT_CONFIG was
*** built for $libgcrypt_config_host and thus may not match the
*** used host $host.
*** You may want to use the configure option --with-libgcrypt-prefix
*** to specify a matching config script.
***]])
fi
fi
fi
else
LIBGCRYPT_CFLAGS=""
LIBGCRYPT_LIBS=""
ifelse([$3], , :, [$3])
fi
AC_SUBST(LIBGCRYPT_CFLAGS)
AC_SUBST(LIBGCRYPT_LIBS)
])

View File

@ -1,105 +0,0 @@
# -*- Mode: rpm-spec; indent-tabs-mode: nil -*- */
#
# This file is part of systemd.
#
# Copyright 2012 Lennart Poettering
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# systemd is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
# RPM macros for packages installing systemd unit files
%_unitdir @systemunitdir@
%_userunitdir @userunitdir@
%_presetdir @systempresetdir@
%_udevhwdbdir @udevhwdbdir@
%_udevrulesdir @udevrulesdir@
%_journalcatalogdir @catalogdir@
%_tmpfilesdir @tmpfilesdir@
%_sysusersdir @sysusersdir@
%_sysctldir @sysctldir@
%_binfmtdir @binfmtdir@
%systemd_requires \
Requires(post): systemd \
Requires(preun): systemd \
Requires(postun): systemd \
%{nil}
%systemd_post() \
if [ $1 -eq 1 ] ; then \
# Initial installation \
systemctl --no-reload preset %{?*} >/dev/null 2>&1 || : \
fi \
%{nil}
%systemd_user_post() %systemd_post --user --global %{?*}
%systemd_preun() \
if [ $1 -eq 0 ] ; then \
# Package removal, not upgrade \
systemctl --no-reload disable --now %{?*} > /dev/null 2>&1 || : \
fi \
%{nil}
%systemd_user_preun() \
if [ $1 -eq 0 ] ; then \
# Package removal, not upgrade \
systemctl --no-reload --user --global disable %{?*} > /dev/null 2>&1 || : \
fi \
%{nil}
%systemd_postun() %{nil}
%systemd_user_postun() %{nil}
%systemd_postun_with_restart() \
if [ $1 -ge 1 ] ; then \
# Package upgrade, not uninstall \
systemctl try-restart %{?*} >/dev/null 2>&1 || : \
fi \
%{nil}
%systemd_user_postun_with_restart() %{nil}
%udev_hwdb_update() \
udevadm hwdb --update >/dev/null 2>&1 || : \
%{nil}
%udev_rules_update() \
udevadm control --reload >/dev/null 2>&1 || : \
%{nil}
%journal_catalog_update() \
journalctl --update-catalog >/dev/null 2>&1 || : \
%{nil}
%tmpfiles_create() \
systemd-tmpfiles --create %{?*} >/dev/null 2>&1 || : \
%{nil}
%sysusers_create() \
systemd-sysusers %{?*} >/dev/null 2>&1 || : \
%{nil}
%sysusers_create_inline() \
echo %{?*} | systemd-sysusers - >/dev/null 2>&1 || : \
%{nil}
%sysctl_apply() \
@rootlibexecdir@/systemd-sysctl %{?*} >/dev/null 2>&1 || : \
%{nil}
%binfmt_apply() \
@rootlibexecdir@/systemd-binfmt %{?*} >/dev/null 2>&1 || : \
%{nil}

View File

@ -1,25 +0,0 @@
If after emergency service had been started there is incoming
traffic on syslog.socket emergency.service gets killed due to
implicit dependencies on basic.target => sysinit.target which in
turn conflict with emergency.target.
As a workaround explicitly stop syslog.socket when entering
emergency.service.
Reference: bnc#852232
---
units/emergency.service.in | 1 +
1 file changed, 1 insertion(+)
Index: systemd-221/units/emergency.service.in
===================================================================
--- systemd-221.orig/units/emergency.service.in
+++ systemd-221/units/emergency.service.in
@@ -11,6 +11,7 @@ Documentation=man:sulogin(8)
DefaultDependencies=no
Conflicts=shutdown.target
Conflicts=rescue.service
+Conflicts=syslog.socket
Before=shutdown.target
[Service]

View File

@ -1,31 +0,0 @@
#!/bin/bash
# sed calls copied from fedora package
set -e
case "$1" in
--help)
echo "$0 [--enable|--disable]"
exit 0
;;
--enable)
sed -i.bak -e '
/^hosts:/ !b
/\<myhostname\>/ b
s/[[:blank:]]*$/ myhostname/
' /etc/nsswitch.conf
;;
--disable)
sed -i.bak -e '
/^hosts:/ !b
s/[[:blank:]]\+myhostname\>//
' /etc/nsswitch.conf
;;
"")
if grep -q "^hosts:.*\<myhostname\>" /etc/nsswitch.conf; then
echo "enabled"
else
echo "disabled"
fi
;;
*) echo "invalid argument $1"; exit 1 ;;
esac

8
pam.systemd-run0 Normal file
View File

@ -0,0 +1,8 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
# This file is part of systemd.
#
# Used by run0 session.
account include common-account
session optional pam_keyinit.so force revoke
session include common-session

25
pam.systemd-user Normal file
View File

@ -0,0 +1,25 @@
# This file is part of systemd.
#
# Used by systemd --user instances.
# Override the default behavior of the "auth" PAM stack and don't throw a
# warning each time a user instance is started, which is the default behavior of
# the PAM stack when no auth is defined. Indeed PID1 calls pam_setcred() when
# the user instance is about to be started to allow some user services, such as
# gnome-terminal, to extend theirs credentials similar to the ones received by a
# user when he logs in (and the full PAM authentication stack is run). For some
# details, see:
#
# https://gitlab.gnome.org/GNOME/gdm/-/issues/393
# https://github.com/systemd/systemd/issues/11198
# https://bugzilla.suse.com/show_bug.cgi?id=1190515
#
auth required pam_deny.so
account include common-account
session required pam_selinux.so close
session required pam_selinux.so nottys open
session required pam_loginuid.so
session optional pam_keyinit.so force revoke
session include common-session

View File

@ -1,67 +0,0 @@
---
src/fstab-generator/fstab-generator.c | 45 +++++++++++++++++++++++++++++++++-
1 file changed, 44 insertions(+), 1 deletion(-)
Index: systemd-221/src/fstab-generator/fstab-generator.c
===================================================================
--- systemd-221.orig/src/fstab-generator/fstab-generator.c
+++ systemd-221/src/fstab-generator/fstab-generator.c
@@ -47,6 +47,49 @@ static char *arg_usr_what = NULL;
static char *arg_usr_fstype = NULL;
static char *arg_usr_options = NULL;
+static int check_crypttab(const char *what) {
+ _cleanup_fclose_ FILE *f = NULL;
+ unsigned n = 0;
+
+ f = fopen("/etc/crypttab", "re");
+ if (!f) {
+ if (errno != ENOENT)
+ log_error("Failed to open /etc/crypttab: %m");
+
+ return 1;
+ }
+
+
+ for (;;) {
+ char line[LINE_MAX], *l;
+ _cleanup_free_ char *name = NULL, *device = NULL, *password = NULL, *options = NULL;
+ int k;
+
+ if (!fgets(line, sizeof(line), f))
+ break;
+
+ n++;
+
+ l = strstrip(line);
+ if (*l == '#' || *l == 0)
+ continue;
+
+ k = sscanf(l, "%ms %ms %ms %ms", &name, &device, &password, &options);
+ if (k < 2 || k > 4) {
+ log_error("Failed to parse /etc/crypttab:%u, ignoring.", n);
+ continue;
+ }
+
+ if (strcmp((what + 12), name) == 0) {
+ if (options && strstr(options, "noauto"))
+ return 0;
+
+ return 1;
+ }
+ }
+ return 1;
+}
+
static int add_swap(
const char *what,
struct mntent *me,
@@ -108,7 +151,7 @@ static int add_swap(
if (r < 0)
return r;
- if (!noauto) {
+ if (!noauto && check_crypttab(what) != 0) {
lnk = strjoin(arg_dest, "/" SPECIAL_SWAP_TARGET,
nofail ? ".wants/" : ".requires/", name, NULL);
if (!lnk)

View File

@ -1,46 +0,0 @@
---
units/console-shell.service.m4.in | 2 ++
units/emergency.service.in | 2 +-
units/rescue.service.in | 3 ++-
3 files changed, 5 insertions(+), 2 deletions(-)
Index: systemd-224/units/console-shell.service.m4.in
===================================================================
--- systemd-224.orig/units/console-shell.service.m4.in
+++ systemd-224/units/console-shell.service.m4.in
@@ -17,6 +17,8 @@ Before=getty.target
[Service]
Environment=HOME=/root
WorkingDirectory=/root
+ExecStartPre=-/usr/bin/plymouth quit
+ExecStartPre=-/usr/bin/plymouth --wait
ExecStart=-@SULOGIN@
ExecStopPost=-@SYSTEMCTL@ poweroff
Type=idle
Index: systemd-224/units/emergency.service.in
===================================================================
--- systemd-224.orig/units/emergency.service.in
+++ systemd-224/units/emergency.service.in
@@ -17,7 +17,7 @@ Before=shutdown.target
[Service]
Environment=HOME=/root
WorkingDirectory=/root
-ExecStartPre=-/bin/plymouth --wait quit
+ExecStartPre=-/usr/bin/plymouth --wait quit
ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\ntry again to boot into default mode.'
ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default"
Type=idle
Index: systemd-224/units/rescue.service.in
===================================================================
--- systemd-224.orig/units/rescue.service.in
+++ systemd-224/units/rescue.service.in
@@ -16,7 +16,8 @@ Before=shutdown.target
[Service]
Environment=HOME=/root
WorkingDirectory=/root
-ExecStartPre=-/bin/plymouth quit
+ExecStartPre=-/usr/bin/plymouth quit
+ExecStartPre=-/usr/bin/plymouth --wait
ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\nboot into default mode.'
ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default"
Type=idle

View File

@ -1,13 +0,0 @@
---
units/rpcbind.target | 1 +
1 file changed, 1 insertion(+)
Index: systemd-221/units/rpcbind.target
===================================================================
--- systemd-221.orig/units/rpcbind.target
+++ systemd-221/units/rpcbind.target
@@ -12,3 +12,4 @@
Description=RPC Port Mapper
Documentation=man:systemd.special(7)
RefuseManualStart=yes
+Wants=rpcbind.socket

View File

@ -1,16 +0,0 @@
#!/bin/sh
# This script is based on libcdio_spec-prepare.sh (thanks to sbrabec@suse.cz)
# create a -mini spec for systemd for bootstrapping
ORIG_SPEC=systemd
EDIT_WARNING="##### WARNING: please do not edit this auto generated spec file. Use the ${ORIG_SPEC}.spec! #####\n"
sed "s/^%define bootstrap .*$/${EDIT_WARNING}%define bootstrap 1/;
s/^%define mini .*$/${EDIT_WARNING}%define mini -mini/;
s/^\(Name:.*\)$/\1-mini/;
s/^BuildRoot.*/&\n\nProvides: %{real} = %{version}-%{release}\n/
" < ${ORIG_SPEC}.spec > ${ORIG_SPEC}-mini.spec
cp ${ORIG_SPEC}.changes ${ORIG_SPEC}-mini.changes
cp ${ORIG_SPEC}-rpmlintrc ${ORIG_SPEC}-mini-rpmlintrc
osc service localrun format_spec_file

View File

@ -1,29 +0,0 @@
---
units/emergency.target | 1 +
units/rescue.target | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
Index: systemd-221/units/emergency.target
===================================================================
--- systemd-221.orig/units/emergency.target
+++ systemd-221/units/emergency.target
@@ -10,4 +10,5 @@ Description=Emergency Mode
Documentation=man:systemd.special(7)
Requires=emergency.service
After=emergency.service
+Conflicts=getty.target rescue.target
AllowIsolate=yes
Index: systemd-221/units/rescue.target
===================================================================
--- systemd-221.orig/units/rescue.target
+++ systemd-221/units/rescue.target
@@ -10,7 +10,8 @@ Description=Rescue Mode
Documentation=man:systemd.special(7)
Requires=sysinit.target rescue.service
After=sysinit.target rescue.service
-Conflicts=getty.target
+Conflicts=getty.target emergency.target
+Before=emergency.target
AllowIsolate=yes
[Install]

View File

@ -1,22 +0,0 @@
---
src/fstab-generator/fstab-generator.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
Index: systemd-221/src/fstab-generator/fstab-generator.c
===================================================================
--- systemd-221.orig/src/fstab-generator/fstab-generator.c
+++ systemd-221/src/fstab-generator/fstab-generator.c
@@ -289,8 +289,11 @@ static int add_mount(
"Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n",
source);
- if (post && !noauto && !nofail && !automount)
- fprintf(f, "Before=%s\n", post);
+ if (post && !noauto && !nofail && !automount) {
+ bool is_nfs = fstype != NULL && streq(fstype, "nfs");
+ if (!is_nfs || strstr(opts, "bg") == NULL)
+ fprintf(f, "Before=%s\n", post);
+ }
if (!automount && opts) {
r = write_requires_after(f, opts);

View File

@ -1,87 +0,0 @@
From: Frederic Crozat <fcrozat@suse.com>
Date: Mon, 29 Oct 2012 13:01:20 +0000
Subject: restore /var/run and /var/lock bind mount if they aren't symlink
---
Makefile.am | 9 +++++++++
units/var-lock.mount | 19 +++++++++++++++++++
units/var-run.mount | 19 +++++++++++++++++++
3 files changed, 47 insertions(+)
create mode 100644 units/var-lock.mount
create mode 100644 units/var-run.mount
Index: systemd-221/Makefile.am
===================================================================
--- systemd-221.orig/Makefile.am
+++ systemd-221/Makefile.am
@@ -526,6 +526,12 @@ dist_systemunit_DATA += \
dist_systemunit_DATA_busnames += \
units/busnames.target
+if HAVE_SYSV_COMPAT
+dist_systemunit_DATA += \
+ units/var-run.mount \
+ units/var-lock.mount
+endif
+
nodist_systemunit_DATA = \
units/getty@.service \
units/serial-getty@.service \
@@ -6123,6 +6129,9 @@ GRAPHICAL_TARGET_WANTS += \
systemd-update-utmp-runlevel.service
RESCUE_TARGET_WANTS += \
systemd-update-utmp-runlevel.service
+LOCAL_FS_TARGET_WANTS += \
+ var-run.mount \
+ var-lock.mount
endif
SYSINIT_TARGET_WANTS += \
Index: systemd-221/units/var-lock.mount
===================================================================
--- /dev/null
+++ systemd-221/units/var-lock.mount
@@ -0,0 +1,19 @@
+# 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=Lock Directory
+Before=local-fs.target
+# skip mounting if the directory does not exist or is a symlink
+ConditionPathIsDirectory=/var/lock
+ConditionPathIsSymbolicLink=!/var/lock
+
+[Mount]
+What=/run/lock
+Where=/var/lock
+Type=bind
+Options=bind
Index: systemd-221/units/var-run.mount
===================================================================
--- /dev/null
+++ systemd-221/units/var-run.mount
@@ -0,0 +1,19 @@
+# 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=Runtime Directory
+Before=local-fs.target
+# skip mounting if the directory does not exist or is a symlink
+ConditionPathIsDirectory=/var/run
+ConditionPathIsSymbolicLink=!/var/run
+
+[Mount]
+What=/run
+Where=/var/run
+Type=bind
+Options=bind

View File

@ -1,175 +0,0 @@
Use and set default logging console for both journald and kernel messages
---
src/journal/journald-console.c | 100 +++++++++++++++++++++++++++++++++++++++++
src/journal/journald-console.h | 3 +
src/journal/journald-server.c | 5 ++
3 files changed, 108 insertions(+)
Index: systemd-228/src/journal/journald-console.c
===================================================================
--- systemd-228.orig/src/journal/journald-console.c
+++ systemd-228/src/journal/journald-console.c
@@ -22,6 +22,14 @@
#include <fcntl.h>
#include <sys/socket.h>
#include <time.h>
+#ifdef HAVE_SYSV_COMPAT
+# include <linux/tiocl.h>
+# include <linux/vt.h>
+# include <sys/ioctl.h>
+# include <sys/klog.h>
+# include <errno.h>
+# include "string-util.h"
+#endif
#include "alloc-util.h"
#include "fd-util.h"
@@ -50,6 +58,76 @@ static bool prefix_timestamp(void) {
return cached_printk_time;
}
+void default_tty_path(Server *s)
+{
+#ifdef HAVE_SYSV_COMPAT
+ static const char list[] = "/dev/tty10\0" "/dev/console\0";
+ const char *vc;
+
+ if (s->tty_path)
+ return;
+
+ NULSTR_FOREACH(vc, list) {
+ _cleanup_close_ int fd = -1;
+
+ if (access(vc, F_OK) < 0)
+ continue;
+
+ fd = open_terminal(vc, O_WRONLY|O_NOCTTY|O_CLOEXEC);
+ if (fd < 0)
+ continue;
+
+ s->tty_path = strdup(vc);
+ break;
+ }
+#endif
+}
+
+void klogconsole(Server *s)
+{
+#ifdef HAVE_SYSV_COMPAT
+ _cleanup_free_ char *klogconsole_params = NULL;
+ _cleanup_close_ int fd = -1;
+ const char *vc = s->tty_path;
+ const char *num;
+ int tiocl[2];
+ int r;
+
+ if (!vc || *vc == 0 || !strneq("/dev/tty", vc, 8))
+ return;
+
+ num = vc + strcspn(vc, "0123456789");
+ if (safe_atoi(num, &r) < 0)
+ return;
+
+ if (access(vc, F_OK) < 0)
+ return;
+
+ fd = open_terminal(vc, O_RDWR|O_NOCTTY|O_CLOEXEC);
+ if (fd < 0)
+ return;
+
+ tiocl[0] = TIOCL_SETKMSGREDIRECT;
+ tiocl[1] = r;
+
+ if (ioctl(fd, TIOCLINUX, tiocl) < 0)
+ return;
+
+ zero(klogconsole_params);
+ r = parse_env_file("/etc/sysconfig/boot", NEWLINE,
+ "KLOGCONSOLE_PARAMS", &klogconsole_params,
+ NULL);
+ if (r < 0)
+ return;
+ if (!klogconsole_params || *klogconsole_params == 0)
+ return;
+
+ num = klogconsole_params + strcspn(klogconsole_params, "0123456789");
+ if (safe_atoi(num, &r) == 0)
+ klogctl(8, 0, r);
+#endif
+}
+
void server_forward_console(
Server *s,
int priority,
@@ -71,6 +149,12 @@ void server_forward_console(
if (LOG_PRI(priority) > s->max_level_console)
return;
+#ifdef HAVE_SYSV_COMPAT
+ /* Do not write security/authorization (private) messages to console */
+ if ((priority & LOG_FACMASK) == LOG_AUTHPRIV)
+ return;
+#endif
+
/* First: timestamp */
if (prefix_timestamp()) {
assert_se(clock_gettime(CLOCK_MONOTONIC, &ts) == 0);
@@ -107,7 +191,23 @@ void server_forward_console(
fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC);
if (fd < 0) {
log_debug_errno(fd, "Failed to open %s for logging: %m", tty);
+#ifdef HAVE_SYSV_COMPAT
+ if (fd != -ENOENT && fd != -ENODEV)
+ return;
+ if (tty != s->tty_path)
+ return;
+ if (!streq("/dev/console", tty)) {
+ if (s->tty_path)
+ free(s->tty_path);
+ s->tty_path = NULL;
+ tty = "/dev/console";
+ fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC);
+ if (fd < 0)
+ return;
+ }
+#else
return;
+#endif
}
if (writev(fd, iovec, n) < 0)
Index: systemd-228/src/journal/journald-console.h
===================================================================
--- systemd-228.orig/src/journal/journald-console.h
+++ systemd-228/src/journal/journald-console.h
@@ -24,3 +24,6 @@
#include "journald-server.h"
void server_forward_console(Server *s, int priority, const char *identifier, const char *message, const struct ucred *ucred);
+
+void klogconsole(Server *s);
+void default_tty_path(Server *s);
Index: systemd-228/src/journal/journald-server.c
===================================================================
--- systemd-228.orig/src/journal/journald-server.c
+++ systemd-228/src/journal/journald-server.c
@@ -55,6 +55,7 @@
#include "journald-audit.h"
#include "journald-kmsg.h"
#include "journald-native.h"
+#include "journald-console.h"
#include "journald-rate-limit.h"
#include "journald-server.h"
#include "journald-stream.h"
@@ -1751,6 +1752,10 @@ int server_init(Server *s) {
server_parse_config_file(s);
server_parse_proc_cmdline(s);
+ default_tty_path(s);
+
+ if (s->tty_path)
+ klogconsole(s);
if (!!s->rate_limit_interval ^ !!s->rate_limit_burst) {
log_debug("Setting both rate limit interval and burst from "USEC_FMT",%u to 0,0",

View File

@ -1,25 +0,0 @@
---
Makefile.am | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
Index: systemd-221/Makefile.am
===================================================================
--- systemd-221.orig/Makefile.am
+++ systemd-221/Makefile.am
@@ -4129,11 +4129,11 @@ noinst_LTLIBRARIES += \
libjournal-core.la
journal-install-hook:
- -$(MKDIR_P) $(DESTDIR)/var/log/journal
- -chown 0:0 $(DESTDIR)/var/log/journal
- -chmod 755 $(DESTDIR)/var/log/journal
- -setfacl -nm g:adm:rx,d:g:adm:rx $(DESTDIR)/var/log/journal/
- -setfacl -nm g:wheel:rx,d:g:wheel:rx $(DESTDIR)/var/log/journal/
+ -$(MKDIR_P) $(DESTDIR)/var/log/journal/
+ -@echo chown 0:0 $(DESTDIR)/var/log/journal/
+ -chmod 755 $(DESTDIR)/var/log/journal/
+ -@echo setfacl -nm g:adm:rx,d:g:adm:rx $(DESTDIR)/var/log/journal/
+ -@echo setfacl -nm g:wheel:rx,d:g:wheel:rx $(DESTDIR)/var/log/journal/
journal-uninstall-hook:
-rmdir $(DESTDIR)/var/log/journal/remote

View File

@ -1,80 +0,0 @@
From: Frederic Crozat <fcrozat@suse.com>
Date: Fri, 12 Apr 2013 16:56:26 +0200
Subject: Revert "service: drop support for SysV scripts for the early boot"
This reverts commit 3cdebc217c42c8529086f2965319b6a48eaaeabe.
[Implementation note: currently, the unit is generated, but not
activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de]
---
src/sysv-generator/sysv-generator.c | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
Index: systemd-228/src/sysv-generator/sysv-generator.c
===================================================================
--- systemd-228.orig/src/sysv-generator/sysv-generator.c
+++ systemd-228/src/sysv-generator/sysv-generator.c
@@ -46,7 +46,8 @@
typedef enum RunlevelType {
RUNLEVEL_UP,
- RUNLEVEL_DOWN
+ RUNLEVEL_DOWN,
+ RUNLEVEL_SYSINIT,
} RunlevelType;
static const struct {
@@ -54,6 +55,9 @@ static const struct {
const char *target;
const RunlevelType type;
} rcnd_table[] = {
+ /* SUSE style boot.d */
+ { "boot.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT },
+
/* Standard SysV runlevels for start-up */
{ "rc1.d", SPECIAL_RESCUE_TARGET, RUNLEVEL_UP },
{ "rc2.d", SPECIAL_MULTI_USER_TARGET, RUNLEVEL_UP },
@@ -69,10 +73,10 @@ 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 */
};
-const char *arg_dest = "/tmp";
+static const char *arg_dest = "/tmp";
typedef struct SysvStub {
char *name;
@@ -261,6 +265,10 @@ static char *sysv_translate_name(const c
_cleanup_free_ char *c = NULL;
char *res;
+ if (startswith(name, "boot."))
+ /* Drop SuSE-style boot. prefix */
+ name += 5;
+
c = strdup(name);
if (!c)
return NULL;
@@ -882,7 +890,8 @@ static int set_dependencies_from_rcnd(co
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);
r = set_ensure_allocated(&runlevel_services[i], NULL);
@@ -898,7 +907,8 @@ static int set_dependencies_from_rcnd(co
}
} 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, NULL);
if (r < 0) {

View File

@ -1,30 +0,0 @@
Mention that --force is required to override an already existing default.target
This solves the bug bnc#868439
---
man/systemctl.xml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Index: systemd-221/man/systemctl.xml
===================================================================
--- systemd-221.orig/man/systemctl.xml
+++ systemd-221/man/systemctl.xml
@@ -439,7 +439,7 @@
<term><option>--force</option></term>
<listitem>
- <para>When used with <command>enable</command>, overwrite
+ <para>When used with <command>enable</command> or <command>set-default</command>, overwrite
any existing conflicting symlinks.</para>
<para>When used with <command>halt</command>,
@@ -1237,6 +1237,8 @@ kobject-uevent 1 systemd-udevd-kernel.so
<para>Return the default target to boot into. This returns
the target unit name <filename>default.target</filename>
is aliased (symlinked) to.</para>
+ <para>If combined with <option>--force</option>, override
+ an already existing symlink for the default target.</para>
</listitem>
</varlistentry>

View File

@ -1,92 +0,0 @@
---
man/tmpfiles.d.xml | 3 +++
src/tmpfiles/tmpfiles.c | 46 ++++++++++++++++++++++++++++++++++++++++------
2 files changed, 43 insertions(+), 6 deletions(-)
Index: systemd-228/man/tmpfiles.d.xml
===================================================================
--- systemd-228.orig/man/tmpfiles.d.xml
+++ systemd-228/man/tmpfiles.d.xml
@@ -599,6 +599,9 @@
<varname>f</varname>, <varname>F</varname>, and
<varname>w</varname>, the argument may be used to specify a short string that
is written to the file, suffixed by a newline. For
+ <varname>x</varname>, <varname>X</varname>, a comma separated list of
+ usernames. If given, only paths belonging to these users will be excluded
+ during directory cleanup. Ignored for all other lines. For
<varname>C</varname>, specifies the source file or
directory. For <varname>t</varname> and <varname>T</varname>,
determines extended attributes to be set. For
Index: systemd-228/src/tmpfiles/tmpfiles.c
===================================================================
--- systemd-228.orig/src/tmpfiles/tmpfiles.c
+++ systemd-228/src/tmpfiles/tmpfiles.c
@@ -37,6 +37,7 @@
#include <sys/xattr.h>
#include <time.h>
#include <unistd.h>
+#include <pwd.h>
#include "acl-util.h"
#include "alloc-util.h"
@@ -378,6 +379,7 @@ static int dir_cleanup(
struct timespec times[2];
bool deleted = false;
int r = 0;
+ Item *found = NULL;
while ((dent = readdir(d))) {
struct stat s;
@@ -428,14 +430,46 @@ static int dir_cleanup(
}
/* Is there an item configured for this path? */
- if (ordered_hashmap_get(items, sub_path)) {
- log_debug("Ignoring \"%s\": a separate entry exists.", sub_path);
- continue;
+ bool found_glob = false;
+ found = ordered_hashmap_get(items, sub_path);
+ if (!found) {
+ found_glob = true;
+ found = find_glob(globs, sub_path);
}
- if (find_glob(globs, sub_path)) {
- log_debug("Ignoring \"%s\": a separate glob exists.", sub_path);
- continue;
+ if (found) {
+ struct passwd *pw;
+ char *userfound = NULL, *args;
+ bool match = false;
+ uid_t uid = -1;
+
+ /* evaluate username arguments in ignore statements */
+ if ((found->type != IGNORE_PATH && found->type != IGNORE_DIRECTORY_PATH) ||
+ !found->argument) {
+ if (found_glob)
+ log_debug("Ignoring \"%s\": a separate glob exists.", sub_path);
+ else
+ log_debug("Ignoring \"%s\": a separate entry exists.", sub_path);
+ continue;
+ }
+ args = strdup(found->argument);
+ assert_se(args != NULL);
+ while ((userfound = strsep(&args, ",")) != NULL) {
+ pw = getpwnam(userfound);
+ if (pw == NULL) {
+ log_error("Unknown user '%s' in ignore statement.", userfound);
+ continue;
+ }
+ uid = pw->pw_uid;
+ if (s.st_uid == uid) {
+ match = true;
+ break;
+ }
+ }
+ if (match) {
+ found = NULL;
+ continue;
+ }
}
if (S_ISDIR(s.st_mode)) {

View File

@ -1,33 +0,0 @@
---
src/basic/def.h | 2 +-
src/libsystemd/sd-bus/sd-bus.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
Index: systemd-221/src/basic/def.h
===================================================================
--- systemd-221.orig/src/basic/def.h
+++ systemd-221/src/basic/def.h
@@ -61,7 +61,7 @@
"/usr/lib/kbd/keymaps/\0"
#endif
-#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/var/run/dbus/system_bus_socket"
+#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/run/dbus/system_bus_socket"
#define KERNEL_SYSTEM_BUS_ADDRESS "kernel:path=/sys/fs/kdbus/0-system/bus"
#define DEFAULT_SYSTEM_BUS_ADDRESS KERNEL_SYSTEM_BUS_ADDRESS ";" UNIX_SYSTEM_BUS_ADDRESS
#define UNIX_USER_BUS_ADDRESS_FMT "unix:path=%s/bus"
Index: systemd-221/src/libsystemd/sd-bus/sd-bus.c
===================================================================
--- systemd-221.orig/src/libsystemd/sd-bus/sd-bus.c
+++ systemd-221/src/libsystemd/sd-bus/sd-bus.c
@@ -837,8 +837,8 @@ static int parse_container_unix_address(
b->nspid = 0;
b->sockaddr.un.sun_family = AF_UNIX;
- strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path));
- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/var/run/dbus/system_bus_socket");
+ strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path));
+ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/run/dbus/system_bus_socket");
return 0;
}

View File

@ -1,34 +0,0 @@
---
Makefile.am | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
Index: systemd-221/Makefile.am
===================================================================
--- systemd-221.orig/Makefile.am
+++ systemd-221/Makefile.am
@@ -5876,12 +5876,6 @@ lib_LTLIBRARIES += \
libsystemd-id128.la \
libsystemd-daemon.la
-pkgconfiglib_DATA += \
- src/compat-libs/libsystemd-journal.pc \
- src/compat-libs/libsystemd-login.pc \
- src/compat-libs/libsystemd-id128.pc \
- src/compat-libs/libsystemd-daemon.pc
-
# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
compat-lib-install-hook:
libname=libsystemd-login.so && $(move-to-rootlibdir)
@@ -5899,6 +5893,12 @@ INSTALL_EXEC_HOOKS += compat-lib-install
UNINSTALL_EXEC_HOOKS += compat-lib-uninstall-hook
endif
+pkgconfiglib_DATA += \
+ src/compat-libs/libsystemd-journal.pc \
+ src/compat-libs/libsystemd-login.pc \
+ src/compat-libs/libsystemd-id128.pc \
+ src/compat-libs/libsystemd-daemon.pc
+
EXTRA_DIST += \
src/compat-libs/linkwarning.h \
src/compat-libs/libsystemd-journal.pc.in \

View File

@ -1,29 +0,0 @@
addFilter("invalid-pkgconfig-file")
addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runlevel|reboot).*")
addFilter(".*dangling-symlink .* /dev/null.*")
addFilter(".*files-duplicate .*/reboot\.8.*")
addFilter(".*files-duplicate .*/sd_is_socket\.3.*")
addFilter("non-conffile-in-etc /etc/bash_completion.d/systemd-bash-completion\.sh")
addFilter("non-conffile-in-etc /etc/rpm/macros\.systemd")
addFilter(".*dbus-policy-allow-receive")
addFilter(".*dangling-symlink /lib/udev/devices/std(in|out|err).*")
addFilter(".*dangling-symlink /lib/udev/devices/core.*")
addFilter(".*dangling-symlink /lib/udev/devices/fd.*")
addFilter(".*incoherent-init-script-name boot\.udev.*")
addFilter(".init-script-without-%stop_on_removal-preun /etc/init\.d/boot\.udev")
addFilter(".init-script-without-%restart_on_update-postun /etc/init\.d/boot\.udev")
addFilter(".*devel-file-in-non-devel-package.*udev.pc.*")
addFilter(".*libgudev-.*shlib-fixed-dependency.*")
addFilter(".*suse-filelist-forbidden-systemd-userdirs.*")
addFilter("libudev-mini.*shlib-policy-name-error.*")
addFilter("nss-myhostname.*shlib-policy-name-error.*")
addFilter("nss-mymachines.*shlib-policy-name-error.*")
addFilter("systemd-logger.*useless-provides sysvinit(syslog).*")
addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*")
addFilter(".*script-without-shebang.*/usr/lib/udev/rule_generator.functions.*")
addFilter(".*files-duplicate.*/systemd-logger.*")
addFilter(".*missing-call-to-setgroups-before-setuid.*")
addFilter(".*missing-call-to-chdir-with-chroot.*")
addFilter(".*systemd-service-without-service.*")
addFilter(".*shlib-policy-missing-suffix.*")
addFilter(".*suse-missing-rclink.*")

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,32 +0,0 @@
Index: systemd-227/factory/etc/pam.d/other
===================================================================
--- systemd-227.orig/factory/etc/pam.d/other
+++ systemd-227/factory/etc/pam.d/other
@@ -1,6 +1,6 @@
# This file is part of systemd.
-auth include system-auth
-account include system-auth
-password include system-auth
-session include system-auth
+auth include common-auth
+account include common-account
+password include common-password
+session include common-session
Index: systemd-227/src/login/systemd-user.m4
===================================================================
--- systemd-227.orig/src/login/systemd-user.m4
+++ systemd-227/src/login/systemd-user.m4
@@ -2,10 +2,10 @@
#
# Used by systemd --user instances.
-account include system-auth
+account include common-account
m4_ifdef(`HAVE_SELINUX',
session required pam_selinux.so close
session required pam_selinux.so nottys open
)m4_dnl
-session include system-auth
+session include common-session

View File

@ -1,15 +0,0 @@
#!/bin/sh
PATH=/usr/bin:/bin:/usr/sbin:/sbin
DIR=$(sed -rn '/^#/d;\@^[[:graph:]]+[[:space:]]+/[[:graph:]]+[[:space:]]+tmpfs[[:space:]]+.*size=[0-9]+[kmg,[:space:]]@{ s@^[[:graph:]]+[[:space:]]+(/[[:graph:]]+).*@\1@p }' /etc/fstab)
if [ -n "$DIR" ]; then
for i in $DIR; do
echo $i
mount -o remount "$i" >/dev/null 2>&1
STATE=$?
if [ "$STATE" -gt 0 ]; then
logger "Remount of $i failed with state $STATE"
fi
done
fi

Some files were not shown because too many files have changed in this diff Show More