forked from pool/systemd
Accepting request 1183029 from Base:System
- Don't automatically clean unmodified config files up (bsc#1226415) Relying on the presence of .rpmsave for detecting unmodified main config files couldn't work as it created a time window in which some of the systemd services were restarted with no config file. That had the bad side effect to restart them with the upstream defaults, ignoring any user's customization. - testsuite: move a misplaced %endif - Merge systemd-coredump back into the main package (bsc#1091684) - testsuite: only require the devel packages when pulling the dlopen'd dependencies (the libraries are dependencies of the devel packages). OBS-URL: https://build.opensuse.org/request/show/1183029 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=426
This commit is contained in:
commit
23bfa9d83b
80
0001-Drop-support-for-efivar-SystemdOptions.patch
Normal file
80
0001-Drop-support-for-efivar-SystemdOptions.patch
Normal 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
|
||||||
|
|
@ -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++;
|
|
||||||
|
|
@ -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:
|
|
@ -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;
|
|
||||||
}
|
|
@ -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)
|
|
@ -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;
|
|
||||||
|
|
@ -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]}"
|
|
@ -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
|
|
||||||
|
|
@ -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)) {
|
|
@ -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
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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
|
|
@ -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);
|
|
@ -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
|
|
@ -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"
|
|
@ -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);
|
|
@ -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"
|
|
@ -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,
|
|
@ -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"
|
|
@ -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"
|
|
@ -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"
|
|
||||||
|
|
@ -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"
|
|
||||||
|
|
@ -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;
|
|
@ -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"
|
|
@ -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"
|
|
@ -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
|
|
||||||
*/
|
|
@ -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"
|
|
@ -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
|
|
@ -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);
|
|
||||||
}
|
|
@ -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
|
|
@ -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
|
||||||
|
|
@ -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
|
||||||
|
|
@ -0,0 +1,39 @@
|
|||||||
|
From 51f4a0be4895bedbde9b23339a5953d965411334 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Franck Bui <fbui@suse.com>
|
||||||
|
Date: Thu, 6 Jun 2024 15:15:56 +0200
|
||||||
|
Subject: [PATCH 5003/5003] Revert "run: pass the pty slave fd to transient
|
||||||
|
service"
|
||||||
|
|
||||||
|
This reverts commit 182b80bede28ef6e9c0d0edd34c56a467d22dee5.
|
||||||
|
---
|
||||||
|
src/run/run.c | 12 +++---------
|
||||||
|
1 file changed, 3 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/run/run.c b/src/run/run.c
|
||||||
|
index 14cc9f9514..4c4a76638d 100644
|
||||||
|
--- a/src/run/run.c
|
||||||
|
+++ b/src/run/run.c
|
||||||
|
@@ -808,17 +808,11 @@ static int transient_service_set_properties(sd_bus_message *m, const char *pty_p
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pty_path) {
|
||||||
|
- _cleanup_close_ int pty_slave = -EBADF;
|
||||||
|
-
|
||||||
|
- pty_slave = open_terminal(pty_path, O_RDWR|O_NOCTTY|O_CLOEXEC);
|
||||||
|
- if (pty_slave < 0)
|
||||||
|
- return pty_slave;
|
||||||
|
-
|
||||||
|
r = sd_bus_message_append(m,
|
||||||
|
"(sv)(sv)(sv)(sv)",
|
||||||
|
- "StandardInputFileDescriptor", "h", pty_slave,
|
||||||
|
- "StandardOutputFileDescriptor", "h", pty_slave,
|
||||||
|
- "StandardErrorFileDescriptor", "h", pty_slave,
|
||||||
|
+ "StandardInput", "s", "tty",
|
||||||
|
+ "StandardOutput", "s", "tty",
|
||||||
|
+ "StandardError", "s", "tty",
|
||||||
|
"TTYPath", "s", pty_path);
|
||||||
|
if (r < 0)
|
||||||
|
return bus_log_create_error(r);
|
||||||
|
--
|
||||||
|
2.35.3
|
||||||
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
@ -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
3
_multibuild
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<multibuild>
|
||||||
|
<package>mini</package>
|
||||||
|
</multibuild>
|
16
_service
Normal file
16
_service
Normal 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>
|
@ -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
|
|
@ -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
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
@ -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);
|
|
@ -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
|
|
@ -1,8 +1,10 @@
|
|||||||
|
#
|
||||||
|
# https://en.opensuse.org/openSUSE:Build_Service_baselibs.conf#Quickstart
|
||||||
|
#
|
||||||
systemd
|
systemd
|
||||||
supplements "packageand(systemd:pam-<targettype>)"
|
supplements "(systemd and pam-<targettype>)"
|
||||||
-/lib/systemd/system/
|
-/lib/systemd/system/
|
||||||
post "<prefix>%{_sbindir}/pam-config -a --systemd || :"
|
-/usr/lib/systemd
|
||||||
|
-/usr/lib/cryptsetup
|
||||||
libsystemd0
|
libsystemd0
|
||||||
libudev1
|
libudev1
|
||||||
nss-myhostname
|
|
||||||
nss-mymachines
|
|
||||||
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
63
files.container
Normal file
63
files.container
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
#
|
||||||
|
# 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
|
||||||
|
%{_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
|
||||||
|
%endif
|
||||||
|
%{_unitdir}/systemd-nspawn@.service
|
||||||
|
|
||||||
|
%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}
|
||||||
|
%{_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}/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
9
files.devel
Normal 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
|
783
files.devel-doc
Normal file
783
files.devel-doc
Normal file
@ -0,0 +1,783 @@
|
|||||||
|
#
|
||||||
|
# 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_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_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_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_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
|
148
files.experimental
Normal file
148
files.experimental
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
#
|
||||||
|
# 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}/systemd-vmspawn
|
||||||
|
%if %{with sd_boot}
|
||||||
|
%{_bindir}/ukify
|
||||||
|
%endif
|
||||||
|
%{_bindir}/varlinkctl
|
||||||
|
%{_datadir}/bash-completion/completions/oomctl
|
||||||
|
%{_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
|
||||||
|
%{_mandir}/man1/oomctl.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}/man1/varlinkctl.1.gz
|
||||||
|
%{_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
|
||||||
|
%endif
|
||||||
|
%{_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
|
||||||
|
%if %{with sd_boot}
|
||||||
|
%{_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
|
||||||
|
%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
|
||||||
|
%{_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
|
||||||
|
%{_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
|
||||||
|
%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-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
|
23
files.homed
Normal file
23
files.homed
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#
|
||||||
|
# Please keep the list sorted (with `LC_ALL=C sort`).
|
||||||
|
#
|
||||||
|
%{_bindir}/homectl
|
||||||
|
%{_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
|
||||||
|
%{_mandir}/man1/homectl.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.service
|
34
files.journal-remote
Normal file
34
files.journal-remote
Normal 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
19
files.lang
Normal 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
|
83
files.network
Normal file
83
files.network
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
#
|
||||||
|
# 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.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-vb.network
|
||||||
|
%{_systemd_util_dir}/network/80-container-ve.network
|
||||||
|
%{_systemd_util_dir}/network/80-container-vz.network
|
||||||
|
%{_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-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
15
files.portable
Normal 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
|
692
files.systemd
Normal file
692
files.systemd
Normal file
@ -0,0 +1,692 @@
|
|||||||
|
#
|
||||||
|
# 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}/timedatectl
|
||||||
|
%if %{without bootstrap}
|
||||||
|
%{_bindir}/userdbctl
|
||||||
|
%{_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/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}/pkgconfig/systemd.pc
|
||||||
|
%{_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
|
||||||
|
%{_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.1.gz
|
||||||
|
%{_mandir}/man1/timedatectl.1.gz
|
||||||
|
%{_mandir}/man1/userdbctl.1.gz
|
||||||
|
%{_mandir}/man5/binfmt.d.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}/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}/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
|
||||||
|
%if %{with upstream}
|
||||||
|
%{_unitdir}/quotaon-root.service
|
||||||
|
%endif
|
||||||
|
%if %{without upstream}
|
||||||
|
%{_unitdir}/quotaon.service
|
||||||
|
%endif
|
||||||
|
%if %{with upstream}
|
||||||
|
%{_unitdir}/quotaon@.service
|
||||||
|
%endif
|
||||||
|
%{_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-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}/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-exit.service
|
||||||
|
%{_unitdir}/systemd-halt.service
|
||||||
|
%{_unitdir}/systemd-hostnamed.service
|
||||||
|
%{_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-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
|
||||||
|
%{xinitconfdir}/xinitrc.d/50-systemd-user.sh
|
50
files.sysvcompat
Normal file
50
files.sysvcompat
Normal 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
|
397
files.udev
Normal file
397
files.udev
Normal file
@ -0,0 +1,397 @@
|
|||||||
|
#
|
||||||
|
# Please keep the list sorted (with `LC_ALL=C sort`).
|
||||||
|
#
|
||||||
|
%config(noreplace) %{_sysconfdir}/udev/udev.conf
|
||||||
|
%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 %{_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/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-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/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-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
|
||||||
|
%{_unitdir}/remote-cryptsetup.target
|
||||||
|
%{_unitdir}/remote-veritysetup.target
|
||||||
|
%endif
|
||||||
|
%{_unitdir}/sleep.target
|
||||||
|
%{_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
|
||||||
|
%{_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
|
||||||
|
%{_unitdir}/systemd-firstboot.service
|
||||||
|
%{_unitdir}/systemd-fsck-root.service
|
||||||
|
%{_unitdir}/systemd-fsck@.service
|
||||||
|
%{_unitdir}/systemd-growfs-root.service
|
||||||
|
%{_unitdir}/systemd-growfs@.service
|
||||||
|
%{_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
|
||||||
|
%if %{with upstream}
|
||||||
|
%{_unitdir}/systemd-quotacheck-root.service
|
||||||
|
%endif
|
||||||
|
%if %{without upstream}
|
||||||
|
%{_unitdir}/systemd-quotacheck.service
|
||||||
|
%endif
|
||||||
|
%if %{with upstream}
|
||||||
|
%{_unitdir}/systemd-quotacheck@.service
|
||||||
|
%endif
|
||||||
|
%{_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-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
|
||||||
|
%if %{without bootstrap}
|
||||||
|
%{_unitdir}/veritysetup-pre.target
|
||||||
|
%{_unitdir}/veritysetup.target
|
||||||
|
%endif
|
29
files.uefi-boot
Normal file
29
files.uefi-boot
Normal 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
|
@ -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
146
fixlet-container-post.sh
Normal 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
312
fixlet-systemd-post.sh
Normal 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)
|
||||||
|
|
||||||
|
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 you to 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
|
@ -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;
|
|
||||||
}
|
|
@ -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]
|
|
@ -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++) {
|
|
@ -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 */
|
|
@ -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;
|
|
||||||
+}
|
|
@ -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
7
kbd-model-map.legacy
Normal 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
|
@ -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
|
|
@ -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\ ]]*],
|
|
@ -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);
|
|
123
libgcrypt.m4
123
libgcrypt.m4
@ -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)
|
|
||||||
])
|
|
@ -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}
|
|
@ -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]
|
|
@ -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
|
|
25
pam.systemd-user
Normal file
25
pam.systemd-user
Normal 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
|
@ -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)
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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]
|
|
@ -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);
|
|
@ -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
|
|
@ -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",
|
|
@ -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
|
|
@ -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) {
|
|
@ -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>
|
|
||||||
|
|
@ -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)) {
|
|
@ -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;
|
|
||||||
}
|
|
@ -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 \
|
|
@ -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.*")
|
|
7278
systemd-mini.changes
7278
systemd-mini.changes
File diff suppressed because it is too large
Load Diff
1573
systemd-mini.spec
1573
systemd-mini.spec
File diff suppressed because it is too large
Load Diff
@ -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
|
|
@ -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
|
|
@ -1,29 +1,19 @@
|
|||||||
addFilter("invalid-pkgconfig-file")
|
addFilter(".*filelist-forbidden-systemd-userdirs /etc/systemd/.*\.conf")
|
||||||
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(".*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(".*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("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-setgroups-before-setuid.*")
|
||||||
addFilter(".*missing-call-to-chdir-with-chroot.*")
|
|
||||||
addFilter(".*systemd-service-without-service.*")
|
addFilter(".*systemd-service-without-service.*")
|
||||||
addFilter(".*shlib-policy-missing-suffix.*")
|
addFilter("env-script-interpreter")
|
||||||
addFilter(".*suse-missing-rclink.*")
|
addFilter(".*files-duplicate /usr/lib/systemd/.*")
|
||||||
|
addFilter(".*files-duplicated-waste.*")
|
||||||
|
addFilter(".*explicit-lib-dependency .*")
|
||||||
|
addFilter(".*tmpfile-not-in-filelist .*")
|
||||||
|
|
||||||
|
# shlib policy does not cover multibuilds
|
||||||
|
addFilter("libsystemd0-mini\..*: E: shlib-policy-name-error SONAME: libsystemd.so.0.*")
|
||||||
|
addFilter("libudev.*-mini\..*: E: shlib-policy-name-error SONAME: libudev.*")
|
||||||
|
|
||||||
|
# These are NSS plugins and are not really subject to shlib policy.
|
||||||
|
addFilter("systemd-container\..*: E: shlib-policy-name-error .* libnss_mymachines")
|
||||||
|
addFilter("systemd-network\..*: E: shlib-policy-name-error .* libnss_resolve")
|
||||||
|
@ -1,179 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ "$UID" != "0" ]; then
|
|
||||||
echo Need to be root.
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
declare -A results_runlevel
|
|
||||||
declare -A results_priority
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
cat << EOF
|
|
||||||
usage: systemd-sysv-convert [-h] [--save] [--show] [--apply]
|
|
||||||
SERVICE [SERVICE ...]
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
help() {
|
|
||||||
usage
|
|
||||||
cat << EOF
|
|
||||||
Save and Restore SysV Service Runlevel Information
|
|
||||||
|
|
||||||
positional arguments:
|
|
||||||
SERVICE Service names
|
|
||||||
|
|
||||||
optional arguments:
|
|
||||||
-h, --help show this help message and exit
|
|
||||||
--save Save SysV runlevel information for one or more services
|
|
||||||
--show Show saved SysV runlevel information for one or more services
|
|
||||||
--apply Apply saved SysV runlevel information for one or more services
|
|
||||||
to systemd counterparts
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
find_service() {
|
|
||||||
local service
|
|
||||||
local runlevel
|
|
||||||
declare -i priority
|
|
||||||
service=$1
|
|
||||||
runlevel=$2
|
|
||||||
priority=-1
|
|
||||||
for l in $(ls /etc/rc.d/rc$runlevel.d/) ; do
|
|
||||||
initscript=$(basename $l)
|
|
||||||
if [ ${initscript:0:1} != "S" -o ${initscript:3} != "$service" ]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
if [ ${initscript:1:2} -ge 0 -a ${initscript:1:2} -le 99 -a ${initscript:1:2} -ge $priority ]; then
|
|
||||||
if [ ${initscript:1:1} == 0 ]; then
|
|
||||||
priority=${initscript:2:1}
|
|
||||||
else
|
|
||||||
priority=${initscript:1:2}
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if [ $priority -ge 0 ]; then
|
|
||||||
return $priority
|
|
||||||
else
|
|
||||||
return 255
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
lookup_database() {
|
|
||||||
local services
|
|
||||||
local service
|
|
||||||
local service_file
|
|
||||||
local runlevel
|
|
||||||
local priority
|
|
||||||
local -i k
|
|
||||||
declare -a parsed
|
|
||||||
services=$@
|
|
||||||
k=0
|
|
||||||
results_runlevel=()
|
|
||||||
results_priority=()
|
|
||||||
while read line ; do
|
|
||||||
k+=1
|
|
||||||
parsed=($line)
|
|
||||||
service=${parsed[0]}
|
|
||||||
runlevel=${parsed[1]}
|
|
||||||
priority=${parsed[2]}
|
|
||||||
if [ $runlevel -lt 2 -o $runlevel -gt 5 ]; then
|
|
||||||
echo "Runlevel out of bounds in database line $k. Ignoring" >/dev/stderr
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
if [ $priority -lt 0 -o $priority -gt 99 ]; then
|
|
||||||
echo "Priority out of bounds in database line $k. Ignoring" >/dev/stderr
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
declare -i found
|
|
||||||
found=0
|
|
||||||
for s in $services ; do
|
|
||||||
if [ $s == $service ]; then
|
|
||||||
found=1
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if [ $found -eq 0 ]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
results_runlevel[$service]+=" $runlevel"
|
|
||||||
results_priority[$service]+=" $priority"
|
|
||||||
done < /var/lib/systemd/sysv-convert/database
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
-h|--help)
|
|
||||||
help
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
--save)
|
|
||||||
shift
|
|
||||||
for service in $@ ; do
|
|
||||||
if [ ! -r "/etc/init.d/$service" ]; then
|
|
||||||
echo "SysV service $service does not exist" >/dev/stderr
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
for runlevel in 2 3 4 5; do
|
|
||||||
find_service $service $runlevel
|
|
||||||
priority=$?
|
|
||||||
if [ $priority -lt 255 ]; then
|
|
||||||
echo "$service $runlevel $priority" >> /var/lib/systemd/sysv-convert/database
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
--show)
|
|
||||||
shift
|
|
||||||
services=$@
|
|
||||||
lookup_database $services
|
|
||||||
fail=0
|
|
||||||
for service in $services; do
|
|
||||||
if [ -z "${results_runlevel[$service]}" ]; then
|
|
||||||
echo No information found about service $service found. >/dev/stderr
|
|
||||||
fail=1
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
declare -i count
|
|
||||||
count=0
|
|
||||||
priority=(${results_priority[$service]})
|
|
||||||
for runlevel in ${results_runlevel[$service]}; do
|
|
||||||
echo SysV service $service enabled in runlevel $runlevel at priority ${priority[$count]}
|
|
||||||
count+=1
|
|
||||||
done
|
|
||||||
done
|
|
||||||
exit $fail
|
|
||||||
;;
|
|
||||||
--apply)
|
|
||||||
shift
|
|
||||||
services=$@
|
|
||||||
for service in $services; do
|
|
||||||
if [ ! -f "/lib/systemd/system/$service.service" -a ! -f "/usr/lib/systemd/system/$service.service" ]; then
|
|
||||||
echo systemd service $service.service does not exist. >/dev/stderr
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
lookup_database $services
|
|
||||||
for service in $services; do
|
|
||||||
[ -f "/lib/systemd/system/$service.service" ] && service_file="/lib/systemd/system/$service.service"
|
|
||||||
[ -f "/usr/lib/systemd/system/$service.service" ] && service_file="/usr/lib/systemd/system/$service.service"
|
|
||||||
|
|
||||||
if [ -z "${results_runlevel[$service]}" ]; then
|
|
||||||
echo No information found about service $service found. >/dev/stderr
|
|
||||||
fail=1
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
for runlevel in ${results_runlevel[$service]}; do
|
|
||||||
echo ln -sf $service_file /etc/systemd/system/runlevel$runlevel.target.wants/$service.service >/dev/stderr
|
|
||||||
mkdir -p "/etc/systemd/system/runlevel$runlevel.target.wants"
|
|
||||||
/bin/ln -sf $service_file /etc/systemd/system/runlevel$runlevel.target.wants/$service.service
|
|
||||||
done
|
|
||||||
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
*) usage
|
|
||||||
exit 2;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user