Patch systemd CVEs: 2019-3842, 2019-3843, 2019-3844, 2019-6454, 2019-20386, 2020-1712, 2020-13776 (#248)
* Patch CVE-2019-3842 * Patch CVE-2019-3843 * Fix URL in CVE-2019-3843.patch * Patch CVE-2019-3844 * Patch CVE-2019-6454 * Update CVE-2019-6454 patch * Patch CVE-2019-20386 * Patch CVE-2020-1712 * Patch CVE-2020-13776 * Update toolchain txt files * Update systemd-bootstrap * Fix toolchain aarch64 * Fix linting for systemd-bootstrap * Address more systemd-bootstrap linting * Addres systemd spec linting * Add newline at end of systemd spec * Fix systemd-bootstrap spec
This commit is contained in:
parent
d8f24c1187
commit
c98d311027
|
@ -0,0 +1,10 @@
|
|||
--- a/src/login/logind-button.c
|
||||
+++ b/src/login/logind-button.c
|
||||
@@ -341,6 +341,7 @@
|
||||
|
||||
(void) button_set_mask(b);
|
||||
|
||||
+ b->io_event_source = sd_event_source_unref(b->io_event_source);
|
||||
r = sd_event_add_io(b->manager->event, &b->io_event_source, b->fd, EPOLLIN, button_dispatch, b);
|
||||
if (r < 0) {
|
||||
log_error_errno(r, "Failed to add button event: %m");
|
|
@ -0,0 +1,134 @@
|
|||
--- a/src/login/pam_systemd.c
|
||||
+++ b/src/login/pam_systemd.c
|
||||
@@ -37,6 +37,7 @@
|
||||
int argc, const char **argv,
|
||||
const char **class,
|
||||
const char **type,
|
||||
+ const char **desktop,
|
||||
bool *debug) {
|
||||
|
||||
unsigned i;
|
||||
@@ -45,24 +46,30 @@
|
||||
assert(argc == 0 || argv);
|
||||
|
||||
for (i = 0; i < (unsigned) argc; i++) {
|
||||
- if (startswith(argv[i], "class=")) {
|
||||
+ const char *p;
|
||||
+
|
||||
+ if ((p = startswith(argv[i], "class="))) {
|
||||
if (class)
|
||||
- *class = argv[i] + 6;
|
||||
+ *class = p;
|
||||
|
||||
- } else if (startswith(argv[i], "type=")) {
|
||||
+ } else if ((p = startswith(argv[i], "type="))) {
|
||||
if (type)
|
||||
- *type = argv[i] + 5;
|
||||
+ *type = p;
|
||||
+
|
||||
+ } else if ((p = startswith(argv[i], "desktop="))) {
|
||||
+ if (desktop)
|
||||
+ *desktop = p;
|
||||
|
||||
} else if (streq(argv[i], "debug")) {
|
||||
if (debug)
|
||||
*debug = true;
|
||||
|
||||
- } else if (startswith(argv[i], "debug=")) {
|
||||
+ } else if ((p = startswith(argv[i], "debug="))) {
|
||||
int k;
|
||||
|
||||
- k = parse_boolean(argv[i] + 6);
|
||||
+ k = parse_boolean(p);
|
||||
if (k < 0)
|
||||
- pam_syslog(handle, LOG_WARNING, "Failed to parse debug= argument, ignoring.");
|
||||
+ pam_syslog(handle, LOG_WARNING, "Failed to parse debug= argument, ignoring: %s", p);
|
||||
else if (debug)
|
||||
*debug = k;
|
||||
|
||||
@@ -274,6 +281,33 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
+ static const char* getenv_harder(pam_handle_t *handle, const char *key, const char *fallback) {
|
||||
+ const char *v;
|
||||
+
|
||||
+ assert(handle);
|
||||
+ assert(key);
|
||||
+
|
||||
+ /* Looks for an environment variable, preferrably in the environment block associated with the
|
||||
+ * specified PAM handle, falling back to the process' block instead. Why check both? Because we want
|
||||
+ * to permit configuration of session properties from unit files that invoke PAM services, so that
|
||||
+ * PAM services don't have to be reworked to set systemd-specific properties, but these properties
|
||||
+ * can still be set from the unit file Environment= block. */
|
||||
+
|
||||
+ v = pam_getenv(handle, key);
|
||||
+ if (!isempty(v))
|
||||
+ return v;
|
||||
+
|
||||
+ /* We use secure_getenv() here, since we might get loaded into su/sudo, which are SUID. Ideally
|
||||
+ * they'd clean up the environment before invoking foreign code (such as PAM modules), but alas they
|
||||
+ * currently don't (to be precise, they clean up the environment they pass to their children, but
|
||||
+ * not their own environ[]). */
|
||||
+ v = secure_getenv(key);
|
||||
+ if (!isempty(v))
|
||||
+ return v;
|
||||
+
|
||||
+ return fallback;
|
||||
+}
|
||||
+
|
||||
_public_ PAM_EXTERN int pam_sm_open_session(
|
||||
pam_handle_t *handle,
|
||||
int flags,
|
||||
@@ -288,7 +322,7 @@
|
||||
*remote_user = NULL, *remote_host = NULL,
|
||||
*seat = NULL,
|
||||
*type = NULL, *class = NULL,
|
||||
- *class_pam = NULL, *type_pam = NULL, *cvtnr = NULL, *desktop = NULL,
|
||||
+ *class_pam = NULL, *type_pam = NULL, *cvtnr = NULL, *desktop = NULL, *desktop_pam = NULL,
|
||||
*memory_max = NULL, *tasks_max = NULL, *cpu_weight = NULL, *io_weight = NULL;
|
||||
_cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
|
||||
int session_fd = -1, existing, r;
|
||||
@@ -307,6 +341,7 @@
|
||||
argc, argv,
|
||||
&class_pam,
|
||||
&type_pam,
|
||||
+ &desktop_pam,
|
||||
&debug) < 0)
|
||||
return PAM_SESSION_ERR;
|
||||
|
||||
@@ -352,29 +387,11 @@
|
||||
pam_get_item(handle, PAM_RUSER, (const void**) &remote_user);
|
||||
pam_get_item(handle, PAM_RHOST, (const void**) &remote_host);
|
||||
|
||||
- seat = pam_getenv(handle, "XDG_SEAT");
|
||||
- if (isempty(seat))
|
||||
- seat = getenv("XDG_SEAT");
|
||||
-
|
||||
- cvtnr = pam_getenv(handle, "XDG_VTNR");
|
||||
- if (isempty(cvtnr))
|
||||
- cvtnr = getenv("XDG_VTNR");
|
||||
-
|
||||
- type = pam_getenv(handle, "XDG_SESSION_TYPE");
|
||||
- if (isempty(type))
|
||||
- type = getenv("XDG_SESSION_TYPE");
|
||||
- if (isempty(type))
|
||||
- type = type_pam;
|
||||
-
|
||||
- class = pam_getenv(handle, "XDG_SESSION_CLASS");
|
||||
- if (isempty(class))
|
||||
- class = getenv("XDG_SESSION_CLASS");
|
||||
- if (isempty(class))
|
||||
- class = class_pam;
|
||||
-
|
||||
- desktop = pam_getenv(handle, "XDG_SESSION_DESKTOP");
|
||||
- if (isempty(desktop))
|
||||
- desktop = getenv("XDG_SESSION_DESKTOP");
|
||||
+ seat = getenv_harder(handle, "XDG_SEAT", NULL);
|
||||
+ cvtnr = getenv_harder(handle, "XDG_VTNR", NULL);
|
||||
+ type = getenv_harder(handle, "XDG_SESSION_TYPE", type_pam);
|
||||
+ class = getenv_harder(handle, "XDG_SESSION_CLASS", class_pam);
|
||||
+ desktop = getenv_harder(handle, "XDG_SESSION_DESKTOP", desktop_pam);
|
||||
|
||||
tty = strempty(tty);
|
||||
|
|
@ -0,0 +1,428 @@
|
|||
--- a/src/shared/seccomp-util.c
|
||||
+++ b/src/shared/seccomp-util.c
|
||||
@@ -1,12 +1,14 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1+ */
|
||||
|
||||
#include <errno.h>
|
||||
+#include <fcntl.h>
|
||||
#include <linux/seccomp.h>
|
||||
#include <seccomp.h>
|
||||
#include <stddef.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/prctl.h>
|
||||
#include <sys/shm.h>
|
||||
+#include <sys/stat.h>
|
||||
|
||||
#include "af-list.h"
|
||||
#include "alloc-util.h"
|
||||
@@ -1742,3 +1744,133 @@
|
||||
|
||||
return 0;
|
||||
}
|
||||
+
|
||||
+int seccomp_restrict_suid_sgid(void) {
|
||||
+ uint32_t arch;
|
||||
+ int r;
|
||||
+
|
||||
+ SECCOMP_FOREACH_LOCAL_ARCH(arch) {
|
||||
+ _cleanup_(seccomp_releasep) scmp_filter_ctx seccomp = NULL;
|
||||
+
|
||||
+ r = seccomp_init_for_arch(&seccomp, arch, SCMP_ACT_ALLOW);
|
||||
+ if (r < 0)
|
||||
+ return r;
|
||||
+
|
||||
+ /* Checks the mode_t parameter of the following system calls:
|
||||
+ *
|
||||
+ * → chmod() + fchmod() + fchmodat()
|
||||
+ * → open() + creat() + openat()
|
||||
+ * → mkdir() + mkdirat()
|
||||
+ * → mknod() + mknodat()
|
||||
+ */
|
||||
+
|
||||
+ for (unsigned bit = 0; bit < 2; bit ++) {
|
||||
+ /* Block S_ISUID in the first iteration, S_ISGID in the second */
|
||||
+ mode_t m = bit == 0 ? S_ISUID : S_ISGID;
|
||||
+
|
||||
+ r = seccomp_rule_add_exact(
|
||||
+ seccomp,
|
||||
+ SCMP_ACT_ERRNO(EPERM),
|
||||
+ SCMP_SYS(chmod),
|
||||
+ 1,
|
||||
+ SCMP_A1(SCMP_CMP_MASKED_EQ, m, m));
|
||||
+ if (r < 0)
|
||||
+ break;
|
||||
+
|
||||
+ r = seccomp_rule_add_exact(
|
||||
+ seccomp,
|
||||
+ SCMP_ACT_ERRNO(EPERM),
|
||||
+ SCMP_SYS(fchmod),
|
||||
+ 1,
|
||||
+ SCMP_A1(SCMP_CMP_MASKED_EQ, m, m));
|
||||
+ if (r < 0)
|
||||
+ break;
|
||||
+
|
||||
+ r = seccomp_rule_add_exact(
|
||||
+ seccomp,
|
||||
+ SCMP_ACT_ERRNO(EPERM),
|
||||
+ SCMP_SYS(fchmodat),
|
||||
+ 1,
|
||||
+ SCMP_A2(SCMP_CMP_MASKED_EQ, m, m));
|
||||
+ if (r < 0)
|
||||
+ break;
|
||||
+
|
||||
+ r = seccomp_rule_add_exact(
|
||||
+ seccomp,
|
||||
+ SCMP_ACT_ERRNO(EPERM),
|
||||
+ SCMP_SYS(mkdir),
|
||||
+ 1,
|
||||
+ SCMP_A1(SCMP_CMP_MASKED_EQ, m, m));
|
||||
+ if (r < 0)
|
||||
+ break;
|
||||
+
|
||||
+ r = seccomp_rule_add_exact(
|
||||
+ seccomp,
|
||||
+ SCMP_ACT_ERRNO(EPERM),
|
||||
+ SCMP_SYS(mkdirat),
|
||||
+ 1,
|
||||
+ SCMP_A2(SCMP_CMP_MASKED_EQ, m, m));
|
||||
+ if (r < 0)
|
||||
+ break;
|
||||
+
|
||||
+ r = seccomp_rule_add_exact(
|
||||
+ seccomp,
|
||||
+ SCMP_ACT_ERRNO(EPERM),
|
||||
+ SCMP_SYS(mknod),
|
||||
+ 1,
|
||||
+ SCMP_A1(SCMP_CMP_MASKED_EQ, m, m));
|
||||
+ if (r < 0)
|
||||
+ break;
|
||||
+
|
||||
+ r = seccomp_rule_add_exact(
|
||||
+ seccomp,
|
||||
+ SCMP_ACT_ERRNO(EPERM),
|
||||
+ SCMP_SYS(mknodat),
|
||||
+ 1,
|
||||
+ SCMP_A2(SCMP_CMP_MASKED_EQ, m, m));
|
||||
+ if (r < 0)
|
||||
+ break;
|
||||
+
|
||||
+ r = seccomp_rule_add_exact(
|
||||
+ seccomp,
|
||||
+ SCMP_ACT_ERRNO(EPERM),
|
||||
+ SCMP_SYS(open),
|
||||
+ 2,
|
||||
+ SCMP_A1(SCMP_CMP_MASKED_EQ, O_CREAT, O_CREAT),
|
||||
+ SCMP_A2(SCMP_CMP_MASKED_EQ, m, m));
|
||||
+ if (r < 0)
|
||||
+ break;
|
||||
+
|
||||
+ r = seccomp_rule_add_exact(
|
||||
+ seccomp,
|
||||
+ SCMP_ACT_ERRNO(EPERM),
|
||||
+ SCMP_SYS(openat),
|
||||
+ 2,
|
||||
+ SCMP_A2(SCMP_CMP_MASKED_EQ, O_CREAT, O_CREAT),
|
||||
+ SCMP_A3(SCMP_CMP_MASKED_EQ, m, m));
|
||||
+ if (r < 0)
|
||||
+ break;
|
||||
+
|
||||
+ r = seccomp_rule_add_exact(
|
||||
+ seccomp,
|
||||
+ SCMP_ACT_ERRNO(EPERM),
|
||||
+ SCMP_SYS(creat),
|
||||
+ 1,
|
||||
+ SCMP_A1(SCMP_CMP_MASKED_EQ, m, m));
|
||||
+ if (r < 0)
|
||||
+ break;
|
||||
+ }
|
||||
+ if (r < 0) {
|
||||
+ log_debug_errno(r, "Failed to add suid/sgid rule for architecture %s, skipping: %m", seccomp_arch_to_string(arch));
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ r = seccomp_load(seccomp);
|
||||
+ if (IN_SET(r, -EPERM, -EACCES))
|
||||
+ return r;
|
||||
+ if (r < 0)
|
||||
+ log_debug_errno(r, "Failed to apply suid/sgid restrictions for architecture %s, skipping: %m", seccomp_arch_to_string(arch));
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
\ No newline at end of file
|
||||
--- a/src/shared/seccomp-util.h
|
||||
+++ b/src/shared/seccomp-util.h
|
||||
@@ -85,6 +85,7 @@
|
||||
int seccomp_restrict_realtime(void);
|
||||
int seccomp_memory_deny_write_execute(void);
|
||||
int seccomp_lock_personality(unsigned long personality);
|
||||
+ int seccomp_restrict_suid_sgid(void);
|
||||
|
||||
extern const uint32_t seccomp_local_archs[];
|
||||
|
||||
--- a/src/core/dbus-execute.c
|
||||
+++ b/src/core/dbus-execute.c
|
||||
@@ -769,6 +769,7 @@
|
||||
SD_BUS_PROPERTY("ConfigurationDirectory", "as", NULL, offsetof(ExecContext, directories[EXEC_DIRECTORY_CONFIGURATION].paths), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("MemoryDenyWriteExecute", "b", bus_property_get_bool, offsetof(ExecContext, memory_deny_write_execute), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("RestrictRealtime", "b", bus_property_get_bool, offsetof(ExecContext, restrict_realtime), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
+ SD_BUS_PROPERTY("RestrictSUIDSGID", "b", bus_property_get_bool, offsetof(ExecContext, restrict_suid_sgid), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("RestrictNamespaces", "t", bus_property_get_ulong, offsetof(ExecContext, restrict_namespaces), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("BindPaths", "a(ssbt)", property_get_bind_paths, 0, SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("BindReadOnlyPaths", "a(ssbt)", property_get_bind_paths, 0, SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
@@ -1127,6 +1128,9 @@
|
||||
if (streq(name, "RestrictRealtime"))
|
||||
return bus_set_transient_bool(u, name, &c->restrict_realtime, message, flags, error);
|
||||
|
||||
+ if (streq(name, "RestrictSUIDSGID"))
|
||||
+ return bus_set_transient_bool(u, name, &c->restrict_suid_sgid, message, flags, error);
|
||||
+
|
||||
if (streq(name, "DynamicUser"))
|
||||
return bus_set_transient_bool(u, name, &c->dynamic_user, message, flags, error);
|
||||
|
||||
--- a/src/core/execute.c
|
||||
+++ b/src/core/execute.c
|
||||
@@ -1366,6 +1366,7 @@
|
||||
return context_has_address_families(c) ||
|
||||
c->memory_deny_write_execute ||
|
||||
c->restrict_realtime ||
|
||||
+ c->restrict_suid_sgid ||
|
||||
exec_context_restrict_namespaces_set(c) ||
|
||||
c->protect_kernel_tunables ||
|
||||
c->protect_kernel_modules ||
|
||||
@@ -1470,6 +1471,19 @@
|
||||
return seccomp_restrict_realtime();
|
||||
}
|
||||
|
||||
+static int apply_restrict_suid_sgid(const Unit* u, const ExecContext *c) {
|
||||
+ assert(u);
|
||||
+ assert(c);
|
||||
+
|
||||
+ if (!c->restrict_suid_sgid)
|
||||
+ return 0;
|
||||
+
|
||||
+ if (skip_seccomp_unavailable(u, "RestrictSUIDSGID="))
|
||||
+ return 0;
|
||||
+
|
||||
+ return seccomp_restrict_suid_sgid();
|
||||
+}
|
||||
+
|
||||
static int apply_protect_sysctl(const Unit *u, const ExecContext *c) {
|
||||
assert(u);
|
||||
assert(c);
|
||||
@@ -3331,6 +3345,12 @@
|
||||
return log_unit_error_errno(unit, r, "Failed to apply realtime restrictions: %m");
|
||||
}
|
||||
|
||||
+ r = apply_restrict_suid_sgid(unit, context);
|
||||
+ if (r < 0) {
|
||||
+ *exit_status = EXIT_SECCOMP;
|
||||
+ return log_unit_error_errno(unit, r, "Failed to apply SUID/SGID restrictions: %m");
|
||||
+ }
|
||||
+
|
||||
r = apply_restrict_namespaces(unit, context);
|
||||
if (r < 0) {
|
||||
*exit_status = EXIT_SECCOMP;
|
||||
@@ -3920,6 +3940,7 @@
|
||||
"%sIgnoreSIGPIPE: %s\n"
|
||||
"%sMemoryDenyWriteExecute: %s\n"
|
||||
"%sRestrictRealtime: %s\n"
|
||||
+ "%sRestrictSUIDSGID: %s\n"
|
||||
"%sKeyringMode: %s\n",
|
||||
prefix, c->umask,
|
||||
prefix, c->working_directory ? c->working_directory : "/",
|
||||
@@ -3938,6 +3959,7 @@
|
||||
prefix, yes_no(c->ignore_sigpipe),
|
||||
prefix, yes_no(c->memory_deny_write_execute),
|
||||
prefix, yes_no(c->restrict_realtime),
|
||||
+ prefix, yes_no(c->restrict_suid_sgid),
|
||||
prefix, exec_keyring_mode_to_string(c->keyring_mode));
|
||||
|
||||
if (c->root_image)
|
||||
|
||||
--- a/src/core/execute.h
|
||||
+++ b/src/core/execute.h
|
||||
@@ -260,6 +260,7 @@
|
||||
|
||||
bool memory_deny_write_execute;
|
||||
bool restrict_realtime;
|
||||
+ bool restrict_suid_sgid;
|
||||
|
||||
bool oom_score_adjust_set:1;
|
||||
bool nice_set:1;
|
||||
|
||||
--- a/src/core/load-fragment-gperf.gperf.m4
|
||||
+++ b/src/core/load-fragment-gperf.gperf.m4
|
||||
@@ -72,6 +72,7 @@
|
||||
$1.MemoryDenyWriteExecute, config_parse_bool, 0, offsetof($1, exec_context.memory_deny_write_execute)
|
||||
$1.RestrictNamespaces, config_parse_restrict_namespaces, 0, offsetof($1, exec_context)
|
||||
$1.RestrictRealtime, config_parse_bool, 0, offsetof($1, exec_context.restrict_realtime)
|
||||
+$1.RestrictSUIDSGID, config_parse_bool, 0, offsetof($1, exec_context.restrict_suid_sgid)
|
||||
$1.RestrictAddressFamilies, config_parse_address_families, 0, offsetof($1, exec_context)
|
||||
$1.LockPersonality, config_parse_bool, 0, offsetof($1, exec_context.lock_personality)',
|
||||
`$1.SystemCallFilter, config_parse_warn_compat, DISABLED_CONFIGURATION, 0
|
||||
@@ -80,6 +81,7 @@
|
||||
$1.MemoryDenyWriteExecute, config_parse_warn_compat, DISABLED_CONFIGURATION, 0
|
||||
$1.RestrictNamespaces, config_parse_warn_compat, DISABLED_CONFIGURATION, 0
|
||||
$1.RestrictRealtime, config_parse_warn_compat, DISABLED_CONFIGURATION, 0
|
||||
+$1.RestrictSUIDSGID, config_parse_warn_compat, DISABLED_CONFIGURATION, 0
|
||||
$1.RestrictAddressFamilies, config_parse_warn_compat, DISABLED_CONFIGURATION, 0
|
||||
$1.LockPersonality, config_parse_warn_compat, DISABLED_CONFIGURATION, 0')
|
||||
$1.LimitCPU, config_parse_rlimit, RLIMIT_CPU, offsetof($1, exec_context.rlimit)
|
||||
|
||||
--- a/src/shared/bus-unit-util.c
|
||||
+++ b/src/shared/bus-unit-util.c
|
||||
@@ -697,7 +697,7 @@
|
||||
"PrivateMounts", "NoNewPrivileges", "SyslogLevelPrefix",
|
||||
"MemoryDenyWriteExecute", "RestrictRealtime", "DynamicUser", "RemoveIPC",
|
||||
"ProtectKernelTunables", "ProtectKernelModules", "ProtectControlGroups",
|
||||
- "MountAPIVFS", "CPUSchedulingResetOnFork", "LockPersonality"))
|
||||
+ "MountAPIVFS", "CPUSchedulingResetOnFork", "LockPersonality", "RestrictSUIDSGID"))
|
||||
|
||||
return bus_append_parse_boolean(m, field, eq);
|
||||
|
||||
--- a/test/fuzz-corpus/unit-file/directives.service
|
||||
+++ b/test/fuzz-corpus/unit-file/directives.service
|
||||
@@ -847,6 +847,7 @@
|
||||
RestrictAddressFamilies=
|
||||
RestrictNamespaces=
|
||||
RestrictRealtime=
|
||||
+RestrictSUIDSGID=
|
||||
RuntimeDirectory=
|
||||
RuntimeDirectoryMode=
|
||||
RuntimeDirectoryPreserve=
|
||||
|
||||
--- a/doc/TRANSIENT-SETTINGS.md
|
||||
+++ b/doc/TRANSIENT-SETTINGS.md
|
||||
@@ -147,6 +147,7 @@
|
||||
✓ MemoryDenyWriteExecute=
|
||||
✓ RestrictNamespaces=
|
||||
✓ RestrictRealtime=
|
||||
+✓ RestrictSUIDSGID=
|
||||
✓ RestrictAddressFamilies=
|
||||
✓ LockPersonality=
|
||||
✓ LimitCPU=
|
||||
|
||||
--- a/units/systemd-coredump@.service.in
|
||||
+++ b/units/systemd-coredump@.service.in
|
||||
@@ -31,6 +31,7 @@
|
||||
ProtectKernelModules=yes
|
||||
MemoryDenyWriteExecute=yes
|
||||
RestrictRealtime=yes
|
||||
+RestrictSUIDSGID=yes
|
||||
RestrictNamespaces=yes
|
||||
RestrictAddressFamilies=AF_UNIX
|
||||
SystemCallFilter=@system-service
|
||||
|
||||
--- a/units/systemd-hostnamed.service.in
|
||||
+++ b/units/systemd-hostnamed.service.in
|
||||
@@ -27,6 +27,7 @@
|
||||
ProtectKernelModules=yes
|
||||
MemoryDenyWriteExecute=yes
|
||||
RestrictRealtime=yes
|
||||
+RestrictSUIDSGID=yes
|
||||
RestrictNamespaces=yes
|
||||
RestrictAddressFamilies=AF_UNIX
|
||||
SystemCallFilter=@system-service sethostname
|
||||
|
||||
--- a/units/systemd-journal-remote.service.in
|
||||
+++ b/units/systemd-journal-remote.service.in
|
||||
@@ -26,6 +26,7 @@
|
||||
ProtectKernelModules=yes
|
||||
MemoryDenyWriteExecute=yes
|
||||
RestrictRealtime=yes
|
||||
+RestrictSUIDSGID=yes
|
||||
RestrictNamespaces=yes
|
||||
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
|
||||
SystemCallArchitectures=native
|
||||
|
||||
--- a/units/systemd-journald.service.in
|
||||
+++ b/units/systemd-journald.service.in
|
||||
@@ -27,6 +27,7 @@
|
||||
CapabilityBoundingSet=CAP_SYS_ADMIN CAP_DAC_OVERRIDE CAP_SYS_PTRACE CAP_SYSLOG CAP_AUDIT_CONTROL CAP_AUDIT_READ CAP_CHOWN CAP_DAC_READ_SEARCH CAP_FOWNER CAP_SETUID CAP_SETGID CAP_MAC_OVERRIDE
|
||||
MemoryDenyWriteExecute=yes
|
||||
RestrictRealtime=yes
|
||||
+RestrictSUIDSGID=yes
|
||||
RestrictNamespaces=yes
|
||||
RestrictAddressFamilies=AF_UNIX AF_NETLINK
|
||||
SystemCallFilter=@system-service
|
||||
|
||||
--- a/units/systemd-localed.service.in
|
||||
+++ b/units/systemd-localed.service.in
|
||||
@@ -27,6 +27,7 @@
|
||||
ProtectKernelModules=yes
|
||||
MemoryDenyWriteExecute=yes
|
||||
RestrictRealtime=yes
|
||||
+RestrictSUIDSGID=yes
|
||||
RestrictNamespaces=yes
|
||||
RestrictAddressFamilies=AF_UNIX
|
||||
SystemCallFilter=@system-service
|
||||
|
||||
--- a/units/systemd-logind.service.in
|
||||
+++ b/units/systemd-logind.service.in
|
||||
@@ -28,6 +28,7 @@
|
||||
CapabilityBoundingSet=CAP_SYS_ADMIN CAP_MAC_ADMIN CAP_AUDIT_CONTROL CAP_CHOWN CAP_KILL CAP_DAC_READ_SEARCH CAP_DAC_OVERRIDE CAP_FOWNER CAP_SYS_TTY_CONFIG
|
||||
MemoryDenyWriteExecute=yes
|
||||
RestrictRealtime=yes
|
||||
+RestrictSUIDSGID=yes
|
||||
RestrictNamespaces=yes
|
||||
RestrictAddressFamilies=AF_UNIX AF_NETLINK
|
||||
SystemCallFilter=@system-service
|
||||
|
||||
--- a/units/systemd-networkd.service.in
|
||||
+++ b/units/systemd-networkd.service.in
|
||||
@@ -33,6 +33,7 @@
|
||||
ProtectKernelModules=yes
|
||||
MemoryDenyWriteExecute=yes
|
||||
RestrictRealtime=yes
|
||||
+RestrictSUIDSGID=yes
|
||||
RestrictNamespaces=yes
|
||||
RestrictAddressFamilies=AF_UNIX AF_NETLINK AF_INET AF_INET6 AF_PACKET
|
||||
SystemCallFilter=@system-service
|
||||
|
||||
--- a/units/systemd-resolved.service.in
|
||||
+++ b/units/systemd-resolved.service.in
|
||||
@@ -36,6 +36,7 @@
|
||||
ProtectKernelModules=yes
|
||||
MemoryDenyWriteExecute=yes
|
||||
RestrictRealtime=yes
|
||||
+RestrictSUIDSGID=yes
|
||||
RestrictNamespaces=yes
|
||||
RestrictAddressFamilies=AF_UNIX AF_NETLINK AF_INET AF_INET6
|
||||
SystemCallFilter=@system-service
|
||||
|
||||
--- a/units/systemd-timedated.service.in
|
||||
+++ b/units/systemd-timedated.service.in
|
||||
@@ -25,6 +25,7 @@
|
||||
ProtectKernelModules=yes
|
||||
MemoryDenyWriteExecute=yes
|
||||
RestrictRealtime=yes
|
||||
+RestrictSUIDSGID=yes
|
||||
RestrictNamespaces=yes
|
||||
RestrictAddressFamilies=AF_UNIX
|
||||
SystemCallFilter=@system-service @clock
|
||||
|
||||
--- a/units/systemd-timesyncd.service.in
|
||||
+++ b/units/systemd-timesyncd.service.in
|
||||
@@ -35,6 +35,7 @@
|
||||
ProtectKernelModules=yes
|
||||
MemoryDenyWriteExecute=yes
|
||||
RestrictRealtime=yes
|
||||
+RestrictSUIDSGID=yes
|
||||
RestrictNamespaces=yes
|
||||
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
|
||||
RuntimeDirectory=systemd/timesync
|
||||
|
||||
--- a/units/systemd-udevd.service.in
|
||||
+++ b/units/systemd-udevd.service.in
|
||||
@@ -27,8 +27,9 @@
|
||||
TasksMax=infinity
|
||||
PrivateMounts=yes
|
||||
MemoryDenyWriteExecute=yes
|
||||
-RestrictRealtime=yes
|
||||
RestrictAddressFamilies=AF_UNIX AF_NETLINK AF_INET AF_INET6
|
||||
+RestrictRealtime=yes
|
||||
+RestrictSUIDSGID=yes
|
||||
SystemCallFilter=@system-service @module @raw-io
|
||||
SystemCallErrorNumber=EPERM
|
||||
SystemCallArchitectures=native
|
|
@ -0,0 +1,25 @@
|
|||
--- a/src/core/unit.c
|
||||
+++ b/src/core/unit.c
|
||||
@@ -4131,14 +4131,20 @@
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
- /* If the dynamic user option is on, let's make sure that the unit can't leave its UID/GID
|
||||
- * around in the file system or on IPC objects. Hence enforce a strict sandbox. */
|
||||
+ /* If the dynamic user option is on, let's make sure that the unit can't leave its
|
||||
+ * UID/GID around in the file system or on IPC objects. Hence enforce a strict
|
||||
+ * sandbox. */
|
||||
|
||||
ec->private_tmp = true;
|
||||
ec->remove_ipc = true;
|
||||
ec->protect_system = PROTECT_SYSTEM_STRICT;
|
||||
if (ec->protect_home == PROTECT_HOME_NO)
|
||||
ec->protect_home = PROTECT_HOME_READ_ONLY;
|
||||
+
|
||||
+ /* Make sure this service can neither benefit from SUID/SGID binaries nor create
|
||||
+ * them. */
|
||||
+ ec->no_new_privileges = true;
|
||||
+ ec->restrict_suid_sgid = true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,187 @@
|
|||
--- a/src/libsystemd/sd-bus/bus-internal.c
|
||||
+++ b/src/libsystemd/sd-bus/bus-internal.c
|
||||
@@ -45,7 +45,7 @@
|
||||
if (slash)
|
||||
return false;
|
||||
|
||||
- return true;
|
||||
+ return (q - p) <= BUS_PATH_SIZE_MAX;
|
||||
}
|
||||
|
||||
char* object_path_startswith(const char *a, const char *b) {
|
||||
|
||||
--- a/src/libsystemd/sd-bus/bus-internal.h
|
||||
+++ b/src/libsystemd/sd-bus/bus-internal.h
|
||||
@@ -333,6 +333,10 @@
|
||||
|
||||
#define BUS_MESSAGE_SIZE_MAX (128*1024*1024)
|
||||
#define BUS_AUTH_SIZE_MAX (64*1024)
|
||||
+/* Note that the D-Bus specification states that bus paths shall have no size limit. We enforce here one
|
||||
+ * anyway, since truly unbounded strings are a security problem. The limit we pick is relatively large however,
|
||||
+ * to not clash unnecessarily with real-life applications. */
|
||||
+#define BUS_PATH_SIZE_MAX (64*1024)
|
||||
|
||||
#define BUS_CONTAINER_DEPTH 128
|
||||
|
||||
--- a/src/libsystemd/sd-bus/bus-objects.c
|
||||
+++ b/src/libsystemd/sd-bus/bus-objects.c
|
||||
@@ -1134,7 +1134,8 @@
|
||||
const char *path,
|
||||
sd_bus_error *error) {
|
||||
|
||||
- char *prefix;
|
||||
+ _cleanup_free_ char *prefix = NULL;
|
||||
+ size_t pl;
|
||||
int r;
|
||||
|
||||
assert(bus);
|
||||
@@ -1150,7 +1151,12 @@
|
||||
return 0;
|
||||
|
||||
/* Second, add fallback vtables registered for any of the prefixes */
|
||||
- prefix = alloca(strlen(path) + 1);
|
||||
+ pl = strlen(path);
|
||||
+ assert(pl <= BUS_PATH_SIZE_MAX);
|
||||
+ prefix = new(char, pl + 1);
|
||||
+ if (!prefix)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
OBJECT_PATH_FOREACH_PREFIX(prefix, path) {
|
||||
r = object_manager_serialize_path(bus, reply, prefix, path, true, error);
|
||||
if (r < 0)
|
||||
@@ -1346,6 +1352,7 @@
|
||||
}
|
||||
|
||||
int bus_process_object(sd_bus *bus, sd_bus_message *m) {
|
||||
+ _cleanup_free_ char *prefix = NULL;
|
||||
int r;
|
||||
size_t pl;
|
||||
bool found_object = false;
|
||||
@@ -1370,9 +1377,11 @@
|
||||
assert(m->member);
|
||||
|
||||
pl = strlen(m->path);
|
||||
+ assert(pl <= BUS_PATH_SIZE_MAX);
|
||||
+ prefix = new(char, pl + 1);
|
||||
+ if (!prefix)
|
||||
+ return -ENOMEM;
|
||||
do {
|
||||
- char prefix[pl+1];
|
||||
-
|
||||
bus->nodes_modified = false;
|
||||
|
||||
r = object_find_and_run(bus, m, m->path, false, &found_object);
|
||||
@@ -1499,9 +1508,15 @@
|
||||
|
||||
n = hashmap_get(bus->nodes, path);
|
||||
if (!n) {
|
||||
- char *prefix;
|
||||
+ _cleanup_free_ char *prefix = NULL;
|
||||
+ size_t pl;
|
||||
+
|
||||
+ pl = strlen(path);
|
||||
+ assert(pl <= BUS_PATH_SIZE_MAX);
|
||||
+ prefix = new(char, pl + 1);
|
||||
+ if (!prefix)
|
||||
+ return -ENOMEM;
|
||||
|
||||
- prefix = alloca(strlen(path) + 1);
|
||||
OBJECT_PATH_FOREACH_PREFIX(prefix, path) {
|
||||
n = hashmap_get(bus->nodes, prefix);
|
||||
if (n)
|
||||
@@ -2091,8 +2106,9 @@
|
||||
char **names) {
|
||||
|
||||
BUS_DONT_DESTROY(bus);
|
||||
+ _cleanup_free_ char *prefix = NULL;
|
||||
bool found_interface = false;
|
||||
- char *prefix;
|
||||
+ size_t pl;
|
||||
int r;
|
||||
|
||||
assert_return(bus, -EINVAL);
|
||||
@@ -2110,6 +2126,12 @@
|
||||
included in the PropertiesChanged message. */
|
||||
if (names && names[0] == NULL)
|
||||
return 0;
|
||||
+
|
||||
+ pl = strlen(path);
|
||||
+ assert(pl <= BUS_PATH_SIZE_MAX);
|
||||
+ prefix = new(char, pl + 1);
|
||||
+ if (!prefix)
|
||||
+ return -ENOMEM;
|
||||
|
||||
do {
|
||||
bus->nodes_modified = false;
|
||||
@@ -2252,7 +2274,8 @@
|
||||
|
||||
static int object_added_append_all(sd_bus *bus, sd_bus_message *m, const char *path) {
|
||||
_cleanup_set_free_ Set *s = NULL;
|
||||
- char *prefix;
|
||||
+ _cleanup_free_ char *prefix = NULL;
|
||||
+ size_t pl;
|
||||
int r;
|
||||
|
||||
assert(bus);
|
||||
@@ -2297,7 +2320,12 @@
|
||||
if (bus->nodes_modified)
|
||||
return 0;
|
||||
|
||||
- prefix = alloca(strlen(path) + 1);
|
||||
+ pl = strlen(path);
|
||||
+ assert(pl <= BUS_PATH_SIZE_MAX);
|
||||
+ prefix = new(char, pl + 1);
|
||||
+ if (!prefix)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
OBJECT_PATH_FOREACH_PREFIX(prefix, path) {
|
||||
r = object_added_append_all_prefix(bus, m, s, prefix, path, true);
|
||||
if (r < 0)
|
||||
@@ -2436,7 +2464,8 @@
|
||||
|
||||
static int object_removed_append_all(sd_bus *bus, sd_bus_message *m, const char *path) {
|
||||
_cleanup_set_free_ Set *s = NULL;
|
||||
- char *prefix;
|
||||
+ _cleanup_free_ char *prefix = NULL;
|
||||
+ size_t pl;
|
||||
int r;
|
||||
|
||||
assert(bus);
|
||||
@@ -2468,7 +2497,12 @@
|
||||
if (bus->nodes_modified)
|
||||
return 0;
|
||||
|
||||
- prefix = alloca(strlen(path) + 1);
|
||||
+ pl = strlen(path);
|
||||
+ assert(pl <= BUS_PATH_SIZE_MAX);
|
||||
+ prefix = new(char, pl + 1);
|
||||
+ if (!prefix)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
OBJECT_PATH_FOREACH_PREFIX(prefix, path) {
|
||||
r = object_removed_append_all_prefix(bus, m, s, prefix, path, true);
|
||||
if (r < 0)
|
||||
@@ -2618,7 +2652,8 @@
|
||||
const char *path,
|
||||
const char *interface) {
|
||||
|
||||
- char *prefix;
|
||||
+ _cleanup_free_ char *prefix = NULL;
|
||||
+ size_t pl;
|
||||
int r;
|
||||
|
||||
assert(bus);
|
||||
@@ -2632,7 +2667,12 @@
|
||||
if (bus->nodes_modified)
|
||||
return 0;
|
||||
|
||||
- prefix = alloca(strlen(path) + 1);
|
||||
+ pl = strlen(path);
|
||||
+ assert(pl <= BUS_PATH_SIZE_MAX);
|
||||
+ prefix = new(char, pl + 1);
|
||||
+ if (!prefix)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
OBJECT_PATH_FOREACH_PREFIX(prefix, path) {
|
||||
r = interfaces_added_append_one_prefix(bus, m, prefix, path, interface, true);
|
||||
if (r != 0)
|
|
@ -0,0 +1,43 @@
|
|||
--- a/src/basic/user-util.c
|
||||
+++ b/src/basic/user-util.c
|
||||
@@ -49,7 +49,7 @@
|
||||
assert(s);
|
||||
|
||||
assert_cc(sizeof(uid_t) == sizeof(uint32_t));
|
||||
- r = safe_atou32(s, &uid);
|
||||
+ r = safe_atou32_full(s, 10, &uid);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
--- a/src/test/test-user-util.c
|
||||
+++ b/src/test/test-user-util.c
|
||||
@@ -49,6 +49,14 @@
|
||||
|
||||
r = parse_uid("asdsdas", &uid);
|
||||
assert_se(r == -EINVAL);
|
||||
+
|
||||
+ r = parse_uid("0x1234", &uid);
|
||||
+ assert_se(r == -EINVAL);
|
||||
+ assert_se(uid == 100);
|
||||
+
|
||||
+ r = parse_uid("01234", &uid);
|
||||
+ assert_se(r == 0);
|
||||
+ assert_se(uid == 1234);
|
||||
}
|
||||
|
||||
static void test_uid_ptr(void) {
|
||||
|
||||
--- a/src/basic/parse-util.h
|
||||
+++ b/src/basic/parse-util.h
|
||||
@@ -50,6 +50,11 @@
|
||||
|
||||
int safe_atoi16(const char *s, int16_t *ret);
|
||||
|
||||
+static inline int safe_atou32_full(const char *s, unsigned base, uint32_t *ret_u) {
|
||||
+ assert_cc(sizeof(uint32_t) == sizeof(unsigned));
|
||||
+ return safe_atou_full(s, base, (unsigned*) ret_u);
|
||||
+}
|
||||
+
|
||||
static inline int safe_atou32(const char *s, uint32_t *ret_u) {
|
||||
assert_cc(sizeof(uint32_t) == sizeof(unsigned));
|
||||
return safe_atou(s, (unsigned*) ret_u);
|
|
@ -0,0 +1,409 @@
|
|||
--- a/src/shared/bus-util.c
|
||||
+++ b/src/shared/bus-util.c
|
||||
@@ -319,10 +319,9 @@
|
||||
|
||||
typedef struct AsyncPolkitQuery {
|
||||
sd_bus_message *request, *reply;
|
||||
- sd_bus_message_handler_t callback;
|
||||
- void *userdata;
|
||||
sd_bus_slot *slot;
|
||||
Hashmap *registry;
|
||||
+ sd_event_source *defer_event_source;
|
||||
} AsyncPolkitQuery;
|
||||
|
||||
static void async_polkit_query_free(AsyncPolkitQuery *q) {
|
||||
@@ -338,9 +337,22 @@
|
||||
sd_bus_message_unref(q->request);
|
||||
sd_bus_message_unref(q->reply);
|
||||
|
||||
+ sd_event_source_disable_unref(q->defer_event_source);
|
||||
free(q);
|
||||
}
|
||||
|
||||
+static int async_polkit_defer(sd_event_source *s, void *userdata) {
|
||||
+ AsyncPolkitQuery *q = userdata;
|
||||
+
|
||||
+ assert(s);
|
||||
+
|
||||
+ /* This is called as idle event source after we processed the async polkit reply, hopefully after the
|
||||
+ * method call we re-enqueued has been properly processed. */
|
||||
+
|
||||
+ async_polkit_query_free(q);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int async_polkit_callback(sd_bus_message *reply, void *userdata, sd_bus_error *error) {
|
||||
_cleanup_(sd_bus_error_free) sd_bus_error error_buffer = SD_BUS_ERROR_NULL;
|
||||
AsyncPolkitQuery *q = userdata;
|
||||
@@ -349,19 +361,44 @@
|
||||
assert(reply);
|
||||
assert(q);
|
||||
|
||||
+ assert(q->slot);
|
||||
q->slot = sd_bus_slot_unref(q->slot);
|
||||
+
|
||||
+ assert(!q->reply);
|
||||
q->reply = sd_bus_message_ref(reply);
|
||||
|
||||
+ /* Now, let's dispatch the original message a second time be re-enqueing. This will then traverse the
|
||||
+ * whole message processing again, and thus re-validating and re-retrieving the "userdata" field
|
||||
+ * again.
|
||||
+ *
|
||||
+ * We install an idle event loop event to clean-up the PolicyKit request data when we are idle again,
|
||||
+ * i.e. after the second time the message is processed is complete. */
|
||||
+
|
||||
+ assert(!q->defer_event_source);
|
||||
+ r = sd_event_add_defer(sd_bus_get_event(sd_bus_message_get_bus(reply)), &q->defer_event_source, async_polkit_defer, q);
|
||||
+ if (r < 0)
|
||||
+ goto fail;
|
||||
+
|
||||
+ r = sd_event_source_set_priority(q->defer_event_source, SD_EVENT_PRIORITY_IDLE);
|
||||
+ if (r < 0)
|
||||
+ goto fail;
|
||||
+
|
||||
+ r = sd_event_source_set_enabled(q->defer_event_source, SD_EVENT_ONESHOT);
|
||||
+ if (r < 0)
|
||||
+ goto fail;
|
||||
+
|
||||
r = sd_bus_message_rewind(q->request, true);
|
||||
- if (r < 0) {
|
||||
- r = sd_bus_reply_method_errno(q->request, r, NULL);
|
||||
- goto finish;
|
||||
- }
|
||||
-
|
||||
- r = q->callback(q->request, q->userdata, &error_buffer);
|
||||
- r = bus_maybe_reply_error(q->request, r, &error_buffer);
|
||||
+ if (r < 0)
|
||||
+ goto fail;
|
||||
|
||||
-finish:
|
||||
+ r = sd_bus_enqueue_for_read(sd_bus_message_get_bus(q->request), q->request);
|
||||
+ if (r < 0)
|
||||
+ goto fail;
|
||||
+
|
||||
+ return 1;
|
||||
+fail:
|
||||
+ log_debug_errno(r, "Processing asynchronous PolicyKit reply failed, ignoring: %m");
|
||||
+ (void) sd_bus_reply_method_errno(q->request, r, NULL);
|
||||
async_polkit_query_free(q);
|
||||
|
||||
return r;
|
||||
@@ -382,11 +419,12 @@
|
||||
#if ENABLE_POLKIT
|
||||
_cleanup_(sd_bus_message_unrefp) sd_bus_message *pk = NULL;
|
||||
AsyncPolkitQuery *q;
|
||||
- const char *sender, **k, **v;
|
||||
+ const char **k, **v;
|
||||
sd_bus_message_handler_t callback;
|
||||
void *userdata;
|
||||
int c;
|
||||
#endif
|
||||
+ const char *sender;
|
||||
int r;
|
||||
|
||||
assert(call);
|
||||
@@ -444,20 +482,11 @@
|
||||
else if (r > 0)
|
||||
return 1;
|
||||
|
||||
-#if ENABLE_POLKIT
|
||||
- if (sd_bus_get_current_message(call->bus) != call)
|
||||
- return -EINVAL;
|
||||
-
|
||||
- callback = sd_bus_get_current_handler(call->bus);
|
||||
- if (!callback)
|
||||
- return -EINVAL;
|
||||
-
|
||||
- userdata = sd_bus_get_current_userdata(call->bus);
|
||||
-
|
||||
sender = sd_bus_message_get_sender(call);
|
||||
if (!sender)
|
||||
return -EBADMSG;
|
||||
|
||||
+#if ENABLE_POLKIT
|
||||
c = sd_bus_message_get_allow_interactive_authorization(call);
|
||||
if (c < 0)
|
||||
return c;
|
||||
@@ -509,8 +538,6 @@
|
||||
return -ENOMEM;
|
||||
|
||||
q->request = sd_bus_message_ref(call);
|
||||
- q->callback = callback;
|
||||
- q->userdata = userdata;
|
||||
|
||||
r = hashmap_put(*registry, call, q);
|
||||
if (r < 0) {
|
||||
|
||||
--- a/src/libsystemd/libsystemd.sym
|
||||
+++ b/src/libsystemd/libsystemd.sym
|
||||
@@ -556,6 +556,7 @@
|
||||
|
||||
LIBSYSTEMD_239 {
|
||||
global:
|
||||
+ sd_bus_enqueue_for_read;
|
||||
sd_bus_open_with_description;
|
||||
sd_bus_open_user_with_description;
|
||||
sd_bus_open_system_with_description;
|
||||
|
||||
--- a/src/libsystemd/sd-bus/sd-bus.c
|
||||
+++ b/src/libsystemd/sd-bus/sd-bus.c
|
||||
@@ -148,13 +148,13 @@
|
||||
assert(b);
|
||||
|
||||
while (b->rqueue_size > 0)
|
||||
- sd_bus_message_unref(b->rqueue[--b->rqueue_size]);
|
||||
+ bus_message_unref_queued(b->rqueue[--b->rqueue_size], b);
|
||||
|
||||
b->rqueue = mfree(b->rqueue);
|
||||
b->rqueue_allocated = 0;
|
||||
|
||||
while (b->wqueue_size > 0)
|
||||
- sd_bus_message_unref(b->wqueue[--b->wqueue_size]);
|
||||
+ bus_message_unref_queued(b->wqueue[--b->wqueue_size], b);
|
||||
|
||||
b->wqueue = mfree(b->wqueue);
|
||||
b->wqueue_allocated = 0;
|
||||
@@ -493,7 +493,7 @@
|
||||
|
||||
/* Insert at the very front */
|
||||
memmove(bus->rqueue + 1, bus->rqueue, sizeof(sd_bus_message*) * bus->rqueue_size);
|
||||
- bus->rqueue[0] = TAKE_PTR(m);
|
||||
+ bus->rqueue[0] = bus_message_ref_queued(m, bus);
|
||||
bus->rqueue_size++;
|
||||
|
||||
return 0;
|
||||
@@ -1716,7 +1716,7 @@
|
||||
* anyway. */
|
||||
|
||||
bus->wqueue_size--;
|
||||
- sd_bus_message_unref(bus->wqueue[0]);
|
||||
+ bus_message_unref_queued(bus->wqueue[0], bus);
|
||||
memmove(bus->wqueue, bus->wqueue + 1, sizeof(sd_bus_message*) * bus->wqueue_size);
|
||||
bus->windex = 0;
|
||||
|
||||
@@ -1838,7 +1838,7 @@
|
||||
* of the wqueue array is always allocated so
|
||||
* that we always can remember how much was
|
||||
* written. */
|
||||
- bus->wqueue[0] = sd_bus_message_ref(m);
|
||||
+ bus->wqueue[0] = bus_message_ref_queued(m, bus);
|
||||
bus->wqueue_size = 1;
|
||||
bus->windex = idx;
|
||||
}
|
||||
@@ -1852,7 +1852,7 @@
|
||||
if (!GREEDY_REALLOC(bus->wqueue, bus->wqueue_allocated, bus->wqueue_size + 1))
|
||||
return -ENOMEM;
|
||||
|
||||
- bus->wqueue[bus->wqueue_size++] = sd_bus_message_ref(m);
|
||||
+ bus->wqueue[bus->wqueue_size++] = bus_message_ref_queued(m, bus);
|
||||
}
|
||||
|
||||
finish:
|
||||
@@ -2084,7 +2084,7 @@
|
||||
|
||||
if (incoming->reply_cookie == cookie) {
|
||||
/* Found a match! */
|
||||
-
|
||||
+ bus_message_unref_queued(bus->rqueue[i], bus);
|
||||
memmove(bus->rqueue + i, bus->rqueue + i + 1, sizeof(sd_bus_message*) * (bus->rqueue_size - i - 1));
|
||||
bus->rqueue_size--;
|
||||
log_debug_bus_message(incoming);
|
||||
@@ -2118,6 +2118,7 @@
|
||||
incoming->sender &&
|
||||
streq(bus->unique_name, incoming->sender)) {
|
||||
|
||||
+ bus_message_unref_queued(bus->rqueue[i], bus);
|
||||
memmove(bus->rqueue + i, bus->rqueue + i + 1, sizeof(sd_bus_message*) * (bus->rqueue_size - i - 1));
|
||||
bus->rqueue_size--;
|
||||
|
||||
@@ -4075,3 +4076,27 @@
|
||||
*ret = bus->wqueue_size;
|
||||
return 0;
|
||||
}
|
||||
+
|
||||
+_public_ int sd_bus_enqueue_for_read(sd_bus *bus, sd_bus_message *m) {
|
||||
+ int r;
|
||||
+
|
||||
+ assert_return(bus, -EINVAL);
|
||||
+ assert_return(bus = bus_resolve(bus), -ENOPKG);
|
||||
+ assert_return(m, -EINVAL);
|
||||
+ assert_return(m->sealed, -EINVAL);
|
||||
+ assert_return(!bus_pid_changed(bus), -ECHILD);
|
||||
+
|
||||
+ if (!BUS_IS_OPEN(bus->state))
|
||||
+ return -ENOTCONN;
|
||||
+
|
||||
+ /* Re-enqueue a message for reading. This is primarily useful for PolicyKit-style authentication,
|
||||
+ * where we want accept a message, then determine we need to interactively authenticate the user, and then
|
||||
+ * when we want to process the message again. */
|
||||
+
|
||||
+ r = bus_rqueue_make_room(bus);
|
||||
+ if (r < 0)
|
||||
+ return r;
|
||||
+
|
||||
+ bus->rqueue[bus->rqueue_size++] = bus_message_ref_queued(m, bus);
|
||||
+ return 0;
|
||||
+}
|
||||
|
||||
--- a/src/systemd/sd-bus.h
|
||||
+++ b/src/systemd/sd-bus.h
|
||||
@@ -193,6 +193,7 @@
|
||||
int sd_bus_process_priority(sd_bus *bus, int64_t max_priority, sd_bus_message **r);
|
||||
int sd_bus_wait(sd_bus *bus, uint64_t timeout_usec);
|
||||
int sd_bus_flush(sd_bus *bus);
|
||||
+int sd_bus_enqueue_for_read(sd_bus *bus, sd_bus_message *m);
|
||||
|
||||
sd_bus_slot* sd_bus_get_current_slot(sd_bus *bus);
|
||||
sd_bus_message* sd_bus_get_current_message(sd_bus *bus);
|
||||
|
||||
--- a/src/libsystemd/sd-bus/bus-message.c
|
||||
+++ b/src/libsystemd/sd-bus/bus-message.c
|
||||
@@ -876,28 +876,78 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
-_public_ sd_bus_message* sd_bus_message_ref(sd_bus_message *m) {
|
||||
|
||||
+_public_ sd_bus_message* sd_bus_message_ref(sd_bus_message *m) {
|
||||
if (!m)
|
||||
return NULL;
|
||||
|
||||
- assert(m->n_ref > 0);
|
||||
+ /* We are fine if this message so far was either explicitly reffed or not reffed but queued into at
|
||||
+ * least one bus connection object. */
|
||||
+ assert(m->n_ref > 0 || m->n_queued > 0);
|
||||
+
|
||||
m->n_ref++;
|
||||
|
||||
+ /* Each user reference to a bus message shall also be considered a ref on the bus */
|
||||
+ sd_bus_ref(m->bus);
|
||||
return m;
|
||||
}
|
||||
|
||||
_public_ sd_bus_message* sd_bus_message_unref(sd_bus_message *m) {
|
||||
-
|
||||
if (!m)
|
||||
return NULL;
|
||||
|
||||
assert(m->n_ref > 0);
|
||||
+
|
||||
+ sd_bus_unref(m->bus); /* Each regular ref is also a ref on the bus connection. Let's hence drop it
|
||||
+ * here. Note we have to do this before decrementing our own n_ref here, since
|
||||
+ * otherwise, if this message is currently queued sd_bus_unref() might call
|
||||
+ * bus_message_unref_queued() for this which might then destroy the message
|
||||
+ * while we are still processing it. */
|
||||
m->n_ref--;
|
||||
|
||||
- if (m->n_ref > 0)
|
||||
+ if (m->n_ref > 0 || m->n_queued > 0)
|
||||
+ return NULL;
|
||||
+
|
||||
+ /* Unset the bus field if neither the user has a reference nor this message is queued. We are careful
|
||||
+ * to reset the field only after the last reference to the bus is dropped, after all we might keep
|
||||
+ * multiple references to the bus, once for each reference kept on ourselves. */
|
||||
+ m->bus = NULL;
|
||||
+
|
||||
+ return message_free(m);
|
||||
+}
|
||||
+
|
||||
+sd_bus_message* bus_message_ref_queued(sd_bus_message *m, sd_bus *bus) {
|
||||
+ if (!m)
|
||||
+ return NULL;
|
||||
+
|
||||
+ /* If this is a different bus than the message is associated with, then implicitly turn this into a
|
||||
+ * regular reference. This means that you can create a memory leak by enqueuing a message generated
|
||||
+ * on one bus onto another at the same time as enqueueing a message from the second one on the first,
|
||||
+ * as we'll not detect the cyclic references there. */
|
||||
+ if (bus != m->bus)
|
||||
+ return sd_bus_message_ref(m);
|
||||
+
|
||||
+ assert(m->n_ref > 0 || m->n_queued > 0);
|
||||
+ m->n_queued++;
|
||||
+
|
||||
+ return m;
|
||||
+}
|
||||
+
|
||||
+sd_bus_message* bus_message_unref_queued(sd_bus_message *m, sd_bus *bus) {
|
||||
+ if (!m)
|
||||
+ return NULL;
|
||||
+
|
||||
+ if (bus != m->bus)
|
||||
+ return sd_bus_message_unref(m);
|
||||
+
|
||||
+ assert(m->n_queued > 0);
|
||||
+ m->n_queued--;
|
||||
+
|
||||
+ if (m->n_ref > 0 || m->n_queued > 0)
|
||||
return NULL;
|
||||
|
||||
+ m->bus = NULL;
|
||||
+
|
||||
return message_free(m);
|
||||
}
|
||||
|
||||
--- a/src/libsystemd/sd-bus/bus-message.h
|
||||
+++ b/src/libsystemd/sd-bus/bus-message.h
|
||||
@@ -51,7 +51,16 @@
|
||||
};
|
||||
|
||||
struct sd_bus_message {
|
||||
- unsigned n_ref;
|
||||
+ /* Caveat: a message can be referenced in two different ways: the main (user-facing) way will also
|
||||
+ * pin the bus connection object the message is associated with. The secondary way ("queued") is used
|
||||
+ * when a message is in the read or write queues of the bus connection object, which will not pin the
|
||||
+ * bus connection object. This is necessary so that we don't have to have a pair of cyclic references
|
||||
+ * between a message that is queued and its connection: as soon as a message is only referenced by
|
||||
+ * the connection (by means of being queued) and the connection itself has no other references it
|
||||
+ * will be freed. */
|
||||
+
|
||||
+ unsigned n_ref; /* Counter of references that pin the connection */
|
||||
+ unsigned n_queued; /* Counter of references that do not pin the connection */
|
||||
|
||||
sd_bus *bus;
|
||||
|
||||
@@ -216,3 +225,6 @@
|
||||
|
||||
void bus_message_set_sender_driver(sd_bus *bus, sd_bus_message *m);
|
||||
void bus_message_set_sender_local(sd_bus *bus, sd_bus_message *m);
|
||||
+
|
||||
+sd_bus_message* bus_message_ref_queued(sd_bus_message *m, sd_bus *bus);
|
||||
+sd_bus_message* bus_message_unref_queued(sd_bus_message *m, sd_bus *bus);
|
||||
\ No newline at end of file
|
||||
|
||||
--- a/src/libsystemd/sd-bus/bus-socket.c
|
||||
+++ b/src/libsystemd/sd-bus/bus-socket.c
|
||||
@@ -1117,7 +1117,7 @@
|
||||
bus->fds = NULL;
|
||||
bus->n_fds = 0;
|
||||
|
||||
- bus->rqueue[bus->rqueue_size++] = t;
|
||||
+ bus->rqueue[bus->rqueue_size++] = bus_message_ref_queued(t, bus);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
--- a/src/systemd/sd-event.h
|
||||
+++ b/src/systemd/sd-event.h
|
||||
@@ -84,6 +84,7 @@
|
||||
int sd_event_new(sd_event **e);
|
||||
sd_event* sd_event_ref(sd_event *e);
|
||||
sd_event* sd_event_unref(sd_event *e);
|
||||
+sd_event_source* sd_event_source_disable_unref(sd_event_source *s);
|
||||
|
||||
int sd_event_add_io(sd_event *e, sd_event_source **s, int fd, uint32_t events, sd_event_io_handler_t callback, void *userdata);
|
||||
int sd_event_add_time(sd_event *e, sd_event_source **s, clockid_t clock, uint64_t usec, uint64_t accuracy, sd_event_time_handler_t callback, void *userdata);
|
||||
|
||||
--- a/src/libsystemd/sd-event/sd-event.c
|
||||
+++ b/src/libsystemd/sd-event/sd-event.c
|
||||
@@ -580,6 +580,12 @@
|
||||
return NULL;
|
||||
}
|
||||
|
||||
+_public_ sd_event_source* sd_event_source_disable_unref(sd_event_source *s) {
|
||||
+ if (s)
|
||||
+ (void) sd_event_source_set_enabled(s, SD_EVENT_OFF);
|
||||
+ return sd_event_source_unref(s);
|
||||
+}
|
||||
+
|
||||
static bool event_pid_changed(sd_event *e) {
|
||||
assert(e);
|
|
@ -1,65 +1,70 @@
|
|||
Summary: Bootstrap version of systemd. Workaround for systemd circular dependency.
|
||||
Name: systemd-bootstrap
|
||||
Version: 239
|
||||
Release: 29%{?dist}
|
||||
License: LGPLv2+ and GPLv2+ and MIT
|
||||
URL: https://www.freedesktop.org/wiki/Software/systemd/
|
||||
Group: System Environment/Security
|
||||
Vendor: Microsoft Corporation
|
||||
Distribution: Mariner
|
||||
#Source0: https://github.com/systemd/systemd-stable/archive/v%{version}.tar.gz
|
||||
Source0: systemd-%{version}.tar.gz
|
||||
Source1: 50-security-hardening.conf
|
||||
Source2: systemd.cfg
|
||||
Source3: 99-dhcp-en.network
|
||||
|
||||
Patch0: 01-enoX-uses-instance-number-for-vmware-hv.patch
|
||||
Patch1: 02-install-general-aliases.patch
|
||||
Patch2: systemd-239-default-dns-from-env.patch
|
||||
Patch3: systemd-macros.patch
|
||||
Patch4: systemd-239-query-duid.patch
|
||||
Summary: Bootstrap version of systemd. Workaround for systemd circular dependency.
|
||||
Name: systemd-bootstrap
|
||||
Version: 239
|
||||
Release: 30%{?dist}
|
||||
License: LGPLv2+ AND GPLv2+ AND MIT
|
||||
Vendor: Microsoft Corporation
|
||||
Distribution: Mariner
|
||||
Group: System Environment/Security
|
||||
URL: https://www.freedesktop.org/wiki/Software/systemd/
|
||||
#Source0: https://github.com/systemd/systemd-stable/archive/v%{version}.tar.gz
|
||||
Source0: systemd-%{version}.tar.gz
|
||||
Source1: 50-security-hardening.conf
|
||||
Source2: systemd.cfg
|
||||
Source3: 99-dhcp-en.network
|
||||
Patch0: 01-enoX-uses-instance-number-for-vmware-hv.patch
|
||||
Patch1: 02-install-general-aliases.patch
|
||||
Patch2: systemd-239-default-dns-from-env.patch
|
||||
Patch3: systemd-macros.patch
|
||||
Patch4: systemd-239-query-duid.patch
|
||||
# Fix glibc-2.28 build issue. Checked in upstream after v239
|
||||
Patch5: systemd-239-glibc-build-fix.patch
|
||||
Patch6: systemd-239-revert-mtu.patch
|
||||
Patch7: systemd-239-CVE-2018-15688.patch
|
||||
Patch8: systemd-239-CVE-2018-15686.patch
|
||||
Patch9: systemd-239-CVE-2018-15687.patch
|
||||
Patch10: systemd-239-CVE-2018-16864.patch
|
||||
Patch11: systemd-239-CVE-2018-16865.patch
|
||||
Patch12: systemd-239-CVE-2018-16866.patch
|
||||
Patch13: Backport-FOREACH_STRING-fix-for-gcc9.patch
|
||||
Patch14: Disable-argument-to-mount_cgroup_controllers.patch
|
||||
Patch5: systemd-239-glibc-build-fix.patch
|
||||
Patch6: systemd-239-revert-mtu.patch
|
||||
Patch7: systemd-239-CVE-2018-15688.patch
|
||||
Patch8: systemd-239-CVE-2018-15686.patch
|
||||
Patch9: systemd-239-CVE-2018-15687.patch
|
||||
Patch10: systemd-239-CVE-2018-16864.patch
|
||||
Patch11: systemd-239-CVE-2018-16865.patch
|
||||
Patch12: systemd-239-CVE-2018-16866.patch
|
||||
Patch13: Backport-FOREACH_STRING-fix-for-gcc9.patch
|
||||
Patch14: Disable-argument-to-mount_cgroup_controllers.patch
|
||||
# This commit from upstream fixes an issue caused by using a later version of meson.
|
||||
Patch15: https://github.com/systemd/systemd/commit/8f6b442a78d0b485f044742ad90b2e8271b4e68e.patch
|
||||
Patch15: https://github.com/systemd/systemd/commit/8f6b442a78d0b485f044742ad90b2e8271b4e68e.patch
|
||||
Patch16: CVE-2019-3842.patch
|
||||
Patch17: CVE-2019-3843.patch
|
||||
Patch18: CVE-2019-3844.patch
|
||||
Patch19: CVE-2019-6454.patch
|
||||
Patch20: CVE-2019-20386.patch
|
||||
Patch21: CVE-2020-1712.patch
|
||||
Patch22: CVE-2020-13776.patch
|
||||
# This vulnerability is in the strict DNS-over-TLS (DoT) mechanism of systemd-resolve.
|
||||
# DoT is only enabled when systemd is build against gnutls.
|
||||
# Furthermore, strict mode DoT is not supported before v243.
|
||||
Patch16: CVE-2018-21029.nopatch
|
||||
|
||||
Requires: pam
|
||||
Requires: libcap
|
||||
Requires: xz
|
||||
Requires: kmod
|
||||
Requires: glib
|
||||
Requires: libgcrypt
|
||||
Requires: filesystem >= 1.1
|
||||
BuildRequires: intltool
|
||||
BuildRequires: gperf
|
||||
BuildRequires: libcap-devel
|
||||
BuildRequires: xz-devel
|
||||
BuildRequires: pam-devel
|
||||
BuildRequires: perl-XML-Parser
|
||||
BuildRequires: kbd
|
||||
BuildRequires: kmod-devel
|
||||
BuildRequires: util-linux-devel >= 2.30
|
||||
BuildRequires: libxslt
|
||||
BuildRequires: docbook-style-xsl
|
||||
BuildRequires: docbook-dtd-xml
|
||||
BuildRequires: glib-devel
|
||||
BuildRequires: meson
|
||||
BuildRequires: gettext
|
||||
BuildRequires: shadow-utils
|
||||
BuildRequires: libgcrypt-devel
|
||||
Patch23: CVE-2018-21029.nopatch
|
||||
BuildRequires: docbook-dtd-xml
|
||||
BuildRequires: docbook-style-xsl
|
||||
BuildRequires: gettext
|
||||
BuildRequires: glib-devel
|
||||
BuildRequires: gperf
|
||||
BuildRequires: intltool
|
||||
BuildRequires: kbd
|
||||
BuildRequires: kmod-devel
|
||||
BuildRequires: libcap-devel
|
||||
BuildRequires: libgcrypt-devel
|
||||
BuildRequires: libxslt
|
||||
BuildRequires: meson
|
||||
BuildRequires: pam-devel
|
||||
BuildRequires: perl-XML-Parser
|
||||
BuildRequires: shadow-utils
|
||||
BuildRequires: util-linux-devel >= 2.30
|
||||
BuildRequires: xz-devel
|
||||
Requires: filesystem >= 1.1
|
||||
Requires: glib
|
||||
Requires: kmod
|
||||
Requires: libcap
|
||||
Requires: libgcrypt
|
||||
Requires: pam
|
||||
Requires: xz
|
||||
|
||||
%description
|
||||
Systemd is an init replacement with better process control and security
|
||||
|
@ -73,7 +78,7 @@ Requires: glib-devel
|
|||
Development headers for developing applications linking to libsystemd
|
||||
|
||||
%prep
|
||||
%setup -q -n systemd-%{version}
|
||||
%autosetup -p1 -n systemd-%{version}
|
||||
cat > config.cache << "EOF"
|
||||
KILL=/bin/kill
|
||||
HAVE_BLKID=1
|
||||
|
@ -82,23 +87,6 @@ BLKID_CFLAGS="-I/usr/include/blkid"
|
|||
cc_cv_CFLAGS__flto=no
|
||||
EOF
|
||||
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
|
||||
sed -i "s#\#DefaultTasksMax=512#DefaultTasksMax=infinity#g" src/core/system.conf.in
|
||||
|
||||
%build
|
||||
|
@ -106,8 +94,8 @@ export LANG=en_US.UTF-8
|
|||
export LC_ALL=en_US.UTF-8
|
||||
CFLAGS="%{build_cflags} -Wno-error=format-overflow=" \
|
||||
meson --prefix %{_prefix} \
|
||||
--sysconfdir /etc \
|
||||
--localstatedir /var \
|
||||
--sysconfdir %{_sysconfdir} \
|
||||
--localstatedir %{_var} \
|
||||
-Dblkid=true \
|
||||
-Dbuildtype=release \
|
||||
-Ddefault-dnssec=no \
|
||||
|
@ -121,11 +109,11 @@ meson --prefix %{_prefix} \
|
|||
-Dpam=true \
|
||||
-Dlibcurl=false \
|
||||
-Dpolkit=true \
|
||||
-Ddbuspolicydir=/etc/dbus-1/system.d \
|
||||
-Ddbussessionservicedir=%{_prefix}/share/dbus-1/services \
|
||||
-Ddbussystemservicedir=%{_prefix}/share/dbus-1/system-services \
|
||||
-Dsysvinit-path=/etc/rc.d/init.d \
|
||||
-Drc-local=/etc/rc.d/rc.local \
|
||||
-Ddbuspolicydir=%{_sysconfdir}/dbus-1/system.d \
|
||||
-Ddbussessionservicedir=%{_datadir}/dbus-1/services \
|
||||
-Ddbussystemservicedir=%{_datadir}/dbus-1/system-services \
|
||||
-Dsysvinit-path=%{_sysconfdir}/rc.d/init.d \
|
||||
-Drc-local=%{_sysconfdir}/rc.d/rc.local \
|
||||
$PWD build &&
|
||||
cd build &&
|
||||
%ninja_build
|
||||
|
@ -138,16 +126,16 @@ for tool in runlevel reboot shutdown poweroff halt telinit; do
|
|||
ln -sfv ../bin/systemctl %{buildroot}/sbin/${tool}
|
||||
done
|
||||
ln -sfv ../lib/systemd/systemd %{buildroot}/sbin/init
|
||||
sed -i '/srv/d' %{buildroot}/usr/lib/tmpfiles.d/home.conf
|
||||
sed -i "s:0775 root lock:0755 root root:g" %{buildroot}/usr/lib/tmpfiles.d/legacy.conf
|
||||
sed -i '/srv/d' %{buildroot}%{_lib}/tmpfiles.d/home.conf
|
||||
sed -i "s:0775 root lock:0755 root root:g" %{buildroot}%{_lib}/tmpfiles.d/legacy.conf
|
||||
sed -i "s:NamePolicy=kernel database onboard slot path:NamePolicy=kernel database:g" %{buildroot}/lib/systemd/network/99-default.link
|
||||
sed -i "s:#LLMNR=yes:LLMNR=false:g" %{buildroot}/etc/systemd/resolved.conf
|
||||
sed -i "s:#LLMNR=yes:LLMNR=false:g" %{buildroot}%{_sysconfdir}/systemd/resolved.conf
|
||||
rm -f %{buildroot}%{_var}/log/README
|
||||
mkdir -p %{buildroot}%{_localstatedir}/opt/journal/log
|
||||
mkdir -p %{buildroot}%{_localstatedir}/log
|
||||
ln -sfv %{_localstatedir}/opt/journal/log %{buildroot}%{_localstatedir}/log/journal
|
||||
|
||||
find %{buildroot} -name '*.la' -delete
|
||||
find %{buildroot} -type f -name "*.la" -delete -print
|
||||
install -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/sysctl.d
|
||||
install -dm 0755 %{buildroot}/boot/
|
||||
install -m 0644 %{SOURCE2} %{buildroot}/boot/
|
||||
|
@ -156,12 +144,12 @@ ln -sfv multi-user.target %{buildroot}/lib/systemd/system/default.target
|
|||
install -dm 0755 %{buildroot}/%{_sysconfdir}/systemd/network
|
||||
install -m 0644 %{SOURCE3} %{buildroot}/%{_sysconfdir}/systemd/network
|
||||
|
||||
%post
|
||||
/sbin/ldconfig
|
||||
%postun
|
||||
/sbin/ldconfig
|
||||
%post -p /sbin/ldconfig
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}/*
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%license LICENSE.GPL2
|
||||
|
@ -235,7 +223,7 @@ rm -rf %{buildroot}/*
|
|||
%{_datadir}/bash-completion/*
|
||||
%{_datadir}/factory/*
|
||||
%{_datadir}/dbus-1
|
||||
%{_datadir}/doc/*
|
||||
%{_docdir}/*
|
||||
%{_mandir}/man[1578]/*
|
||||
%{_datadir}/polkit-1
|
||||
%{_datadir}/systemd
|
||||
|
@ -256,191 +244,293 @@ rm -rf %{buildroot}/*
|
|||
%{_mandir}/man3/*
|
||||
|
||||
%changelog
|
||||
* Thu Oct 22 2020 Nicolas Ontiveros <niontive@microsoft.com> - 239-30
|
||||
- Use autosetup
|
||||
- Fix CVE-2019-3842
|
||||
- Fix CVE-2019-3843
|
||||
- Fix CVE-2019-3844
|
||||
- Fix CVE-2019-6454
|
||||
- Fix CVE-2019-20386
|
||||
- Fix CVE-2020-1712
|
||||
- Fix CVE-2020-13776
|
||||
|
||||
* Tue Aug 11 2020 Mateusz Malisz <mamalisz@microsoft.com> 239-29
|
||||
- Reduce kptr_restrict to 1
|
||||
|
||||
* Tue Jun 09 2020 Nicolas Ontiveros <niontive@microsoft.com> 239-28
|
||||
- Change summary to address circular dependency.
|
||||
|
||||
* Fri May 29 2020 Nicolas Ontiveros <niontive@microsoft.com> 239-27
|
||||
- Fork from systemd.spec.
|
||||
- Do not include cryptsetup in BR. This breaks a circular dependency.
|
||||
|
||||
* Wed May 20 2020 Joe Schmitt <joschmit@microsoft.com> 239-26
|
||||
- Remove 99-vmware-hotplug.rules.
|
||||
|
||||
* Sat May 09 00:20:49 PST 2020 Nick Samson <nisamson@microsoft.com> - 239-25
|
||||
- Added %%license line automatically
|
||||
|
||||
* Wed May 06 2020 Emre Girgin <mrgirgin@microsoft.com> 239-24
|
||||
- Renaming docbook-xsl to docbook-style-xsl
|
||||
|
||||
* Wed May 06 2020 Emre Girgin <mrgirgin@microsoft.com> 239-23
|
||||
- Renaming docbook-xml to docbook-dtd-xml
|
||||
|
||||
* Wed May 06 2020 Emre Girgin <mrgirgin@microsoft.com> 239-22
|
||||
- Renaming Linux-PAM to pam
|
||||
|
||||
* Wed May 06 2020 Emre Girgin <mrgirgin@microsoft.com> 239-21
|
||||
- Renaming XML-Parser to perl-XML-Parser
|
||||
|
||||
* Tue May 05 2020 Joe Schmitt <joschmit@microsoft.com> 239-20
|
||||
- Remove unused rdrand-rng after kernel update.
|
||||
|
||||
* Thu Apr 23 2020 Emre Girgin <mrgirgin@microsoft.com> 239-19
|
||||
- Ignore CVE-2018-21029.
|
||||
|
||||
* Fri Apr 17 2020 Emre Girgin <mrgirgin@microsoft.com> 239-18
|
||||
- Rename shadow to shadow-utils.
|
||||
|
||||
* Thu Apr 16 2020 Emre Girgin <mrgirgin@microsoft.com> 239-17
|
||||
- Resolve build issues arising from upgrading meson to 0.49.2.
|
||||
|
||||
* Thu Apr 09 2020 Henry Beberman <henry.beberman@microsoft.com> 239-16
|
||||
- Add patch to disable arguments to mount_cgroup_controllers as in upstream latest.
|
||||
|
||||
* Tue Apr 07 2020 Paul Monson <paulmon@microsoft.com> 239-15
|
||||
- Update Source0 link. License verified.
|
||||
|
||||
* Tue Mar 31 2020 Henry Beberman <henry.beberman@microsoft.com> 239-14
|
||||
- Backport upstream fix for FOREACH_STRING macro.
|
||||
|
||||
* Tue Mar 24 2020 Henry Beberman <henry.beberman@microsoft.com> 239-13
|
||||
- Add -Wno-error=format-overflow= to fix gcc9 build.
|
||||
|
||||
* Thu Feb 27 2020 Henry Beberman <hebeberm@microsoft.com> 239-12
|
||||
- Disable libcurl auto-configure
|
||||
|
||||
* Tue Sep 03 2019 Mateusz Malisz <mamalisz@microsoft.com> 239-11
|
||||
- Initial CBL-Mariner import from Photon (license: Apache2).
|
||||
|
||||
* Thu Jan 10 2019 Anish Swaminathan <anishs@vmware.com> 239-10
|
||||
- Fix CVE-2018-16864, CVE-2018-16865, CVE-2018-16866
|
||||
|
||||
* Wed Jan 09 2019 Keerthana K <keerthanak@vmware.com> 239-9
|
||||
- Seting default values for tcp_timestamps, tcp_challenge_ack_limit and ip_forward.
|
||||
|
||||
* Wed Jan 02 2019 Anish Swaminathan <anishs@vmware.com> 239-8
|
||||
- Fix CVE-2018-15686, CVE-2018-15687
|
||||
|
||||
* Sun Nov 11 2018 Tapas Kundu <tkundu@vmware.com> 239-7
|
||||
- Fix CVE-2018-15688
|
||||
|
||||
* Fri Oct 26 2018 Srivatsa S. Bhat (VMware) <srivatsa@csail.mit.edu> 239-6
|
||||
- Auto-load rdrand-rng kernel module only on x86.
|
||||
|
||||
* Fri Oct 26 2018 Anish Swaminathan <anishs@vmware.com> 239-5
|
||||
- Revert the commit that causes GCE networkd timeout
|
||||
- https://github.com/systemd/systemd/commit/44b598a1c9d11c23420a5ef45ff11bcb0ed195eb
|
||||
|
||||
* Mon Oct 08 2018 Srinidhi Rao <srinidhir@vmware.com> 239-4
|
||||
- Add glib-devel as a Requirement to systemd-devel
|
||||
|
||||
* Fri Sep 21 2018 Alexey Makhalov <amakhalov@vmware.com> 239-3
|
||||
- Fix compilation issue against glibc-2.28
|
||||
|
||||
* Tue Sep 18 2018 Srivatsa S. Bhat <srivatsa@csail.mit.edu> 239-2
|
||||
- Automatically load rdrand-rng kernel module on every boot.
|
||||
|
||||
* Tue Aug 28 2018 Anish Swaminathan <anishs@vmware.com> 239-1
|
||||
- Update systemd to 239
|
||||
|
||||
* Wed Apr 11 2018 Xiaolin Li <xiaolinl@vmware.com> 236-3
|
||||
- Build systemd with util-linux 2.32.
|
||||
|
||||
* Wed Jan 17 2018 Divya Thaluru <dthaluru@vmware.com> 236-2
|
||||
- Fixed the log file directory structure
|
||||
|
||||
* Fri Dec 29 2017 Anish Swaminathan <anishs@vmware.com> 236-1
|
||||
- Update systemd to 236
|
||||
|
||||
* Thu Nov 09 2017 Vinay Kulkarni <kulkarniv@vmware.com> 233-11
|
||||
- Fix CVE-2017-15908 dns packet loop fix.
|
||||
|
||||
* Tue Nov 07 2017 Vinay Kulkarni <kulkarniv@vmware.com> 233-10
|
||||
- Fix nullptr access during link disable.
|
||||
|
||||
* Mon Sep 18 2017 Anish Swaminathan <anishs@vmware.com> 233-9
|
||||
- Backport router solicitation backoff from systemd 234
|
||||
|
||||
* Fri Sep 15 2017 Anish Swaminathan <anishs@vmware.com> 233-8
|
||||
- Move network file to systemd package
|
||||
|
||||
* Tue Aug 15 2017 Alexey Makhalov <amakhalov@vmware.com> 233-7
|
||||
- Fix compilation issue for glibc-2.26
|
||||
|
||||
* Fri Jul 21 2017 Vinay Kulkarni <kulkarniv@vmware.com> 233-6
|
||||
- Fix for CVE-2017-1000082.
|
||||
|
||||
* Fri Jul 07 2017 Vinay Kulkarni <kulkarniv@vmware.com> 233-5
|
||||
- Fix default-dns-from-env patch.
|
||||
|
||||
* Wed Jul 05 2017 Xiaolin Li <xiaolinl@vmware.com> 233-4
|
||||
- Add kmod-devel to BuildRequires
|
||||
|
||||
* Thu Jun 29 2017 Vinay Kulkarni <kulkarniv@vmware.com> 233-3
|
||||
- Fix for CVE-2017-9445.
|
||||
|
||||
* Tue Jun 20 2017 Anish Swaminathan <anishs@vmware.com> 233-2
|
||||
- Fix for CVE-2017-9217
|
||||
|
||||
* Mon Mar 06 2017 Vinay Kulkarni <kulkarniv@vmware.com> 233-1
|
||||
- Update systemd to 233
|
||||
|
||||
* Tue Jan 3 2017 Alexey Makhalov <amakhalov@vmware.com> 232-5
|
||||
- Added /boot/systemd.cfg
|
||||
|
||||
* Tue Dec 20 2016 Alexey Makhalov <amakhalov@vmware.com> 232-4
|
||||
- Fix initrd-switch-root issue
|
||||
|
||||
* Wed Dec 07 2016 Xiaolin Li <xiaolinl@vmware.com> 232-3
|
||||
- BuildRequires Linux-PAM-devel
|
||||
|
||||
* Thu Dec 01 2016 Xiaolin Li <xiaolinl@vmware.com> 232-2
|
||||
- disable-elfutils.
|
||||
|
||||
* Fri Nov 18 2016 Anish Swaminathan <anishs@vmware.com> 232-1
|
||||
- Update systemd to 232
|
||||
|
||||
* Thu Nov 3 2016 Divya Thaluru <dthaluru@vmware.com> 228-32
|
||||
- Added logic to reload services incase of rpm upgrade
|
||||
|
||||
* Thu Sep 29 2016 Vinay Kulkarni <kulkarniv@vmware.com> 228-31
|
||||
- Fix a CVE in systemd-notify socket.
|
||||
|
||||
* Mon Aug 29 2016 Alexey Makhalov <amakhalov@vmware.com> 228-30
|
||||
- 02-install-general-aliases.patch to create absolute symlinks
|
||||
|
||||
* Fri Aug 26 2016 Anish Swaminathan <anishs@vmware.com> 228-29
|
||||
- Change config file properties for 99-default.link
|
||||
|
||||
* Tue Aug 16 2016 Vinay Kulkarni <kulkarniv@vmware.com> 228-28
|
||||
- systemd-resolved: Fix DNS_TRANSACTION_PENDING assert.
|
||||
|
||||
* Mon Aug 1 2016 Divya Thaluru <dthaluru@vmware.com> 228-27
|
||||
- Removed packaging of symlinks and will be created during installation
|
||||
|
||||
* Tue Jul 12 2016 Vinay Kulkarni <kulkarniv@vmware.com> 228-26
|
||||
- systemd-resolved: Fix DNS domains resolv.conf search issue for static DNS.
|
||||
|
||||
* Mon Jul 11 2016 Vinay Kulkarni <kulkarniv@vmware.com> 228-25
|
||||
- systemd-networkd: Update DUID/IAID config interface to systemd v230 spec.
|
||||
|
||||
* Tue Jun 21 2016 Anish Swaminathan <anishs@vmware.com> 228-24
|
||||
- Change config file properties
|
||||
|
||||
* Fri Jun 17 2016 Vinay Kulkarni <kulkarniv@vmware.com> 228-23
|
||||
- systemd-resolved: Configure initial DNS servers from environment var.
|
||||
|
||||
* Mon Jun 06 2016 Alexey Makhalov <amakhalov@vmware.com> 228-22
|
||||
- systemd-resolved: disable LLMNR
|
||||
|
||||
* Tue May 24 2016 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 228-21
|
||||
- GA - Bump release of all rpms
|
||||
|
||||
* Tue May 17 2016 Anish Swaminathan <anishs@vmware.com> 228-20
|
||||
- Added patch for letting kernel handle ndisc
|
||||
|
||||
* Tue May 17 2016 Divya Thaluru <dthaluru@vmware.com> 228-19
|
||||
- Updated systemd-user PAM configuration
|
||||
|
||||
* Mon May 16 2016 Harish Udaiya Kumar <hudaiyakumar@vmware.com> 228-18
|
||||
- Updated the MaxTasks to infinity in system.conf file
|
||||
|
||||
* Thu Apr 21 2016 Mahmoud Bassiouny <mbassiouny@vmware.com> 228-17
|
||||
- Set the default.target to the multi-user.target
|
||||
|
||||
* Tue Apr 12 2016 Vinay Kulkarni <kulkarniv@vmware.com> 228-16
|
||||
- Disable network interface renaming.
|
||||
|
||||
* Thu Mar 31 2016 Vinay Kulkarni <kulkarniv@vmware.com> 228-15
|
||||
- Patch to query DHCP DUID, IAID.f
|
||||
|
||||
* Wed Mar 30 2016 Vinay Kulkarni <kulkarniv@vmware.com> 228-14
|
||||
- Update DHCP DUID, IAID configuration patch.
|
||||
|
||||
* Wed Mar 30 2016 Kumar Kaushik <kaushikk@vmware.com> 228-13
|
||||
- Install the security hardening script as part of systemd.
|
||||
|
||||
* Tue Mar 29 2016 Kumar Kaushik <kaushikk@vmware.com> 228-12
|
||||
- Added patch for timedatectl /etc/adjtime PR2749.
|
||||
|
||||
* Fri Mar 11 2016 Anish Swaminathan <anishs@vmware.com> 228-11
|
||||
- Added patch for dhcp preservation via duid iaid configurability
|
||||
|
||||
* Fri Mar 11 2016 Anish Swaminathan <anishs@vmware.com> 228-10
|
||||
- Added patch for swap disconnect order
|
||||
|
||||
* Thu Mar 10 2016 XIaolin Li <xiaolinl@vmware.com> 228-9
|
||||
- Enable manpages.
|
||||
|
||||
* Fri Feb 19 2016 Anish Swaminathan <anishs@vmware.com> 228-8
|
||||
- Added patch to get around systemd-networkd wait online timeout
|
||||
|
||||
* Sat Feb 06 2016 Alexey Makhalov <amakhalov@vmware.com> 228-7
|
||||
- Added patch: fix-reading-routes.
|
||||
|
||||
* Wed Feb 03 2016 Anish Swaminathan <anishs@vmware.com> 228-6
|
||||
- Add hotplug udev rules.
|
||||
|
||||
* Tue Jan 12 2016 Anish Swaminathan <anishs@vmware.com> 228-5
|
||||
- Change config file attributes.
|
||||
|
||||
* Wed Jan 06 2016 Anish Swaminathan <anishs@vmware.com> 228-4
|
||||
- Patches for minor network fixes.
|
||||
|
||||
* Wed Dec 16 2015 Anish Swaminathan <anishs@vmware.com> 228-3
|
||||
- Patch for ostree.
|
||||
|
||||
* Wed Dec 16 2015 Anish Swaminathan <anishs@vmware.com> 228-2
|
||||
- Patch for loopback address.
|
||||
|
||||
* Fri Dec 11 2015 Anish Swaminathan <anishs@vmware.com> 228-1
|
||||
- Upgrade systemd version.
|
||||
|
||||
* Mon Nov 30 2015 Mahmoud Bassiouny <mbassiouny@vmware.com> 216-13
|
||||
- Removing the reference of lock user
|
||||
|
||||
* Fri Oct 9 2015 Xiaolin Li <xiaolinl@vmware.com> 216-12
|
||||
- Removing la files from packages.
|
||||
|
||||
* Fri Sep 18 2015 Divya Thaluru <dthaluru@vmware.com> 216-11
|
||||
- Packaging journal log directory
|
||||
|
||||
* Thu Sep 10 2015 Alexey Makhalov <amakhalov@vmware.com> 216-10
|
||||
- Improve enoX renaming in VMware HV case. Patch is added.
|
||||
|
||||
* Tue Aug 25 2015 Alexey Makhalov <amakhalov@vmware.com> 216-9
|
||||
- Reduce systemd-networkd boot time (exclude if-rename patch).
|
||||
|
||||
* Mon Jul 20 2015 Divya Thaluru <dthaluru@vmware.com> 216-8
|
||||
- Adding sysvinit support
|
||||
|
||||
* Mon Jul 06 2015 Kumar Kaushik <kaushikk@vmware.com> 216-7
|
||||
- Fixing networkd/udev race condition for renaming interface.
|
||||
|
||||
* Thu Jun 25 2015 Sharath George <sharathg@vmware.com> 216-6
|
||||
- Remove debug files.
|
||||
|
||||
* Tue Jun 23 2015 Divya Thaluru <dthaluru@vmware.com> 216-5
|
||||
- Building compat libs
|
||||
|
||||
* Mon Jun 1 2015 Alexey Makhalov <amakhalov@vmware.com> 216-4
|
||||
- gudev support
|
||||
|
||||
* Wed May 27 2015 Divya Thaluru <dthaluru@vmware.com> 216-3
|
||||
- Removing packing of PAM configuration files
|
||||
|
||||
* Mon May 18 2015 Touseef Liaqat <tliaqat@vmware.com> 216-2
|
||||
- Update according to UsrMove.
|
||||
|
||||
* Mon Oct 27 2014 Sharath George <sharathg@vmware.com> 216-1
|
||||
- Initial build. First version
|
||||
|
|
|
@ -1,76 +1,80 @@
|
|||
Summary: Systemd-239
|
||||
Name: systemd
|
||||
Version: 239
|
||||
Release: 32%{?dist}
|
||||
License: LGPLv2+ and GPLv2+ and MIT
|
||||
URL: https://www.freedesktop.org/wiki/Software/systemd/
|
||||
Group: System Environment/Security
|
||||
Vendor: Microsoft Corporation
|
||||
Distribution: Mariner
|
||||
#Source0: https://github.com/systemd/systemd-stable/archive/v%{version}.tar.gz
|
||||
Source0: %{name}-%{version}.tar.gz
|
||||
Source1: 50-security-hardening.conf
|
||||
Source2: systemd.cfg
|
||||
Source3: 99-dhcp-en.network
|
||||
|
||||
Patch0: 01-enoX-uses-instance-number-for-vmware-hv.patch
|
||||
Patch1: 02-install-general-aliases.patch
|
||||
Patch2: systemd-239-default-dns-from-env.patch
|
||||
Patch3: systemd-macros.patch
|
||||
Patch4: systemd-239-query-duid.patch
|
||||
Summary: Systemd-239
|
||||
Name: systemd
|
||||
Version: 239
|
||||
Release: 33%{?dist}
|
||||
License: LGPLv2+ AND GPLv2+ AND MIT
|
||||
Vendor: Microsoft Corporation
|
||||
Distribution: Mariner
|
||||
Group: System Environment/Security
|
||||
URL: https://www.freedesktop.org/wiki/Software/systemd/
|
||||
#Source0: https://github.com/systemd/systemd-stable/archive/v%{version}.tar.gz
|
||||
Source0: %{name}-%{version}.tar.gz
|
||||
Source1: 50-security-hardening.conf
|
||||
Source2: systemd.cfg
|
||||
Source3: 99-dhcp-en.network
|
||||
Patch0: 01-enoX-uses-instance-number-for-vmware-hv.patch
|
||||
Patch1: 02-install-general-aliases.patch
|
||||
Patch2: systemd-239-default-dns-from-env.patch
|
||||
Patch3: systemd-macros.patch
|
||||
Patch4: systemd-239-query-duid.patch
|
||||
# Fix glibc-2.28 build issue. Checked in upstream after v239
|
||||
Patch5: systemd-239-glibc-build-fix.patch
|
||||
Patch6: systemd-239-revert-mtu.patch
|
||||
Patch7: systemd-239-CVE-2018-15688.patch
|
||||
Patch8: systemd-239-CVE-2018-15686.patch
|
||||
Patch9: systemd-239-CVE-2018-15687.patch
|
||||
Patch10: systemd-239-CVE-2018-16864.patch
|
||||
Patch11: systemd-239-CVE-2018-16865.patch
|
||||
Patch12: systemd-239-CVE-2018-16866.patch
|
||||
Patch13: Backport-FOREACH_STRING-fix-for-gcc9.patch
|
||||
Patch14: Disable-argument-to-mount_cgroup_controllers.patch
|
||||
Patch5: systemd-239-glibc-build-fix.patch
|
||||
Patch6: systemd-239-revert-mtu.patch
|
||||
Patch7: systemd-239-CVE-2018-15688.patch
|
||||
Patch8: systemd-239-CVE-2018-15686.patch
|
||||
Patch9: systemd-239-CVE-2018-15687.patch
|
||||
Patch10: systemd-239-CVE-2018-16864.patch
|
||||
Patch11: systemd-239-CVE-2018-16865.patch
|
||||
Patch12: systemd-239-CVE-2018-16866.patch
|
||||
Patch13: Backport-FOREACH_STRING-fix-for-gcc9.patch
|
||||
Patch14: Disable-argument-to-mount_cgroup_controllers.patch
|
||||
# This commit from upstream fixes an issue caused by using a later version of meson.
|
||||
Patch15: https://github.com/systemd/systemd/commit/8f6b442a78d0b485f044742ad90b2e8271b4e68e.patch
|
||||
Patch15: https://github.com/systemd/systemd/commit/8f6b442a78d0b485f044742ad90b2e8271b4e68e.patch
|
||||
Patch16: CVE-2019-3842.patch
|
||||
Patch17: CVE-2019-3843.patch
|
||||
Patch18: CVE-2019-3844.patch
|
||||
Patch19: CVE-2019-6454.patch
|
||||
Patch20: CVE-2019-20386.patch
|
||||
Patch21: CVE-2020-1712.patch
|
||||
Patch22: CVE-2020-13776.patch
|
||||
# This vulnerability is in the strict DNS-over-TLS (DoT) mechanism of systemd-resolve.
|
||||
# DoT is only enabled when systemd is build against gnutls.
|
||||
# Furthermore, strict mode DoT is not supported before v243.
|
||||
Patch16: CVE-2018-21029.nopatch
|
||||
|
||||
Patch23: CVE-2018-21029.nopatch
|
||||
#Portablectl patches for --now --enable and --no-block flags support
|
||||
Patch100: 100-portabled-allow-to-detach-an-image-with-a-unit-in-li.patch
|
||||
Patch101: 101-Portabled-fix-inspect-on-image-attached-as-directory.patch
|
||||
Patch102: 102-portablectl-add-now-and-enable-to-attach-detach.patch
|
||||
Patch103: 103-core-allow-portablectl-to-load-new-services-without-.patch
|
||||
Patch104: 104-portablectl-block-when-stopping-a-unit-on-detach-now.patch
|
||||
Patch105: 105-portablectl-use-replace-unload-when-stopping-a-servi.patch
|
||||
Patch106: 106-portabled-implement-container-host-os-release-interf.patch
|
||||
|
||||
Obsoletes: systemd-bootstrap
|
||||
Requires: pam
|
||||
Requires: libcap
|
||||
Requires: xz
|
||||
Requires: kmod
|
||||
Requires: glib
|
||||
Requires: libgcrypt
|
||||
Requires: filesystem >= 1.1
|
||||
BuildRequires: intltool
|
||||
BuildRequires: gperf
|
||||
BuildRequires: libcap-devel
|
||||
BuildRequires: xz-devel
|
||||
BuildRequires: pam-devel
|
||||
BuildRequires: perl-XML-Parser
|
||||
BuildRequires: kbd
|
||||
BuildRequires: kmod-devel
|
||||
BuildRequires: util-linux-devel >= 2.30
|
||||
BuildRequires: libxslt
|
||||
BuildRequires: docbook-style-xsl
|
||||
BuildRequires: docbook-dtd-xml
|
||||
BuildRequires: glib-devel
|
||||
BuildRequires: meson
|
||||
BuildRequires: gettext
|
||||
BuildRequires: shadow-utils
|
||||
BuildRequires: libgcrypt-devel
|
||||
BuildRequires: cryptsetup-devel
|
||||
Patch100: 100-portabled-allow-to-detach-an-image-with-a-unit-in-li.patch
|
||||
Patch101: 101-Portabled-fix-inspect-on-image-attached-as-directory.patch
|
||||
Patch102: 102-portablectl-add-now-and-enable-to-attach-detach.patch
|
||||
Patch103: 103-core-allow-portablectl-to-load-new-services-without-.patch
|
||||
Patch104: 104-portablectl-block-when-stopping-a-unit-on-detach-now.patch
|
||||
Patch105: 105-portablectl-use-replace-unload-when-stopping-a-servi.patch
|
||||
Patch106: 106-portabled-implement-container-host-os-release-interf.patch
|
||||
BuildRequires: cryptsetup-devel
|
||||
BuildRequires: docbook-dtd-xml
|
||||
BuildRequires: docbook-style-xsl
|
||||
BuildRequires: gettext
|
||||
BuildRequires: glib-devel
|
||||
BuildRequires: gperf
|
||||
BuildRequires: intltool
|
||||
BuildRequires: kbd
|
||||
BuildRequires: kmod-devel
|
||||
BuildRequires: libcap-devel
|
||||
BuildRequires: libgcrypt-devel
|
||||
BuildRequires: libxslt
|
||||
BuildRequires: meson
|
||||
BuildRequires: pam-devel
|
||||
BuildRequires: perl-XML-Parser
|
||||
BuildRequires: shadow-utils
|
||||
BuildRequires: util-linux-devel >= 2.30
|
||||
BuildRequires: xz-devel
|
||||
Requires: filesystem >= 1.1
|
||||
Requires: glib
|
||||
Requires: kmod
|
||||
Requires: libcap
|
||||
Requires: libgcrypt
|
||||
Requires: pam
|
||||
Requires: xz
|
||||
Obsoletes: systemd-bootstrap
|
||||
|
||||
%description
|
||||
Systemd is an init replacement with better process control and security
|
||||
|
@ -78,7 +82,7 @@ Systemd is an init replacement with better process control and security
|
|||
%package devel
|
||||
Summary: Development headers for systemd
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: glib-devel
|
||||
Requires: glib-devel
|
||||
|
||||
%description devel
|
||||
Development headers for developing applications linking to libsystemd
|
||||
|
@ -91,7 +95,7 @@ Requires: %{name} = %{version}-%{release}
|
|||
Language pack for systemd
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%autosetup -p1
|
||||
cat > config.cache << "EOF"
|
||||
KILL=/bin/kill
|
||||
HAVE_BLKID=1
|
||||
|
@ -100,32 +104,6 @@ BLKID_CFLAGS="-I/usr/include/blkid"
|
|||
cc_cv_CFLAGS__flto=no
|
||||
EOF
|
||||
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
|
||||
# Portablectl patches
|
||||
%patch100 -p1
|
||||
%patch101 -p1
|
||||
%patch102 -p1
|
||||
%patch103 -p1
|
||||
%patch104 -p1
|
||||
%patch105 -p1
|
||||
%patch106 -p1
|
||||
|
||||
sed -i "s#\#DefaultTasksMax=512#DefaultTasksMax=infinity#g" src/core/system.conf.in
|
||||
|
||||
%build
|
||||
|
@ -133,8 +111,8 @@ export LANG=en_US.UTF-8
|
|||
export LC_ALL=en_US.UTF-8
|
||||
CFLAGS="%{build_cflags} -Wno-error=format-overflow=" \
|
||||
meson --prefix %{_prefix} \
|
||||
--sysconfdir /etc \
|
||||
--localstatedir /var \
|
||||
--sysconfdir %{_sysconfdir} \
|
||||
--localstatedir %{_var} \
|
||||
-Dblkid=true \
|
||||
-Dbuildtype=release \
|
||||
-Ddefault-dnssec=no \
|
||||
|
@ -150,11 +128,11 @@ meson --prefix %{_prefix} \
|
|||
-Dpolkit=true \
|
||||
-Dlibcryptsetup=true \
|
||||
-Dgcrypt=true \
|
||||
-Ddbuspolicydir=/etc/dbus-1/system.d \
|
||||
-Ddbussessionservicedir=%{_prefix}/share/dbus-1/services \
|
||||
-Ddbussystemservicedir=%{_prefix}/share/dbus-1/system-services \
|
||||
-Dsysvinit-path=/etc/rc.d/init.d \
|
||||
-Drc-local=/etc/rc.d/rc.local \
|
||||
-Ddbuspolicydir=%{_sysconfdir}/dbus-1/system.d \
|
||||
-Ddbussessionservicedir=%{_datadir}/dbus-1/services \
|
||||
-Ddbussystemservicedir=%{_datadir}/dbus-1/system-services \
|
||||
-Dsysvinit-path=%{_sysconfdir}/rc.d/init.d \
|
||||
-Drc-local=%{_sysconfdir}/rc.d/rc.local \
|
||||
$PWD build &&
|
||||
cd build &&
|
||||
%ninja_build
|
||||
|
@ -167,17 +145,17 @@ for tool in runlevel reboot shutdown poweroff halt telinit; do
|
|||
ln -sfv ../bin/systemctl %{buildroot}/sbin/${tool}
|
||||
done
|
||||
ln -sfv ../lib/systemd/systemd %{buildroot}/sbin/init
|
||||
sed -i '/srv/d' %{buildroot}/usr/lib/tmpfiles.d/home.conf
|
||||
sed -i "s:0775 root lock:0755 root root:g" %{buildroot}/usr/lib/tmpfiles.d/legacy.conf
|
||||
sed -i '/srv/d' %{buildroot}%{_lib}/tmpfiles.d/home.conf
|
||||
sed -i "s:0775 root lock:0755 root root:g" %{buildroot}%{_lib}/tmpfiles.d/legacy.conf
|
||||
sed -i "s:NamePolicy=kernel database onboard slot path:NamePolicy=kernel database:g" %{buildroot}/lib/systemd/network/99-default.link
|
||||
sed -i "s:#LLMNR=yes:LLMNR=false:g" %{buildroot}/etc/systemd/resolved.conf
|
||||
sed -i "s:#NTP=:NTP=time.windows.com:g" %{buildroot}/etc/systemd/timesyncd.conf
|
||||
sed -i "s:#LLMNR=yes:LLMNR=false:g" %{buildroot}%{_sysconfdir}/systemd/resolved.conf
|
||||
sed -i "s:#NTP=:NTP=time.windows.com:g" %{buildroot}%{_sysconfdir}/systemd/timesyncd.conf
|
||||
rm -f %{buildroot}%{_var}/log/README
|
||||
mkdir -p %{buildroot}%{_localstatedir}/opt/journal/log
|
||||
mkdir -p %{buildroot}%{_localstatedir}/log
|
||||
ln -sfv %{_localstatedir}/opt/journal/log %{buildroot}%{_localstatedir}/log/journal
|
||||
|
||||
find %{buildroot} -name '*.la' -delete
|
||||
find %{buildroot} -type f -name "*.la" -delete -print
|
||||
install -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/sysctl.d
|
||||
install -dm 0700 %{buildroot}/boot/
|
||||
install -m 0600 %{SOURCE2} %{buildroot}/boot/
|
||||
|
@ -187,12 +165,12 @@ install -dm 0755 %{buildroot}/%{_sysconfdir}/systemd/network
|
|||
install -m 0644 %{SOURCE3} %{buildroot}/%{_sysconfdir}/systemd/network
|
||||
%find_lang %{name} ../%{name}.lang
|
||||
|
||||
%post
|
||||
/sbin/ldconfig
|
||||
%postun
|
||||
/sbin/ldconfig
|
||||
%post -p /sbin/ldconfig
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}/*
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%license LICENSE.GPL2
|
||||
|
@ -266,7 +244,7 @@ rm -rf %{buildroot}/*
|
|||
%{_datadir}/bash-completion/*
|
||||
%{_datadir}/factory/*
|
||||
%{_datadir}/dbus-1
|
||||
%{_datadir}/doc/*
|
||||
%{_docdir}/*
|
||||
%{_mandir}/man[1578]/*
|
||||
%{_datadir}/polkit-1
|
||||
%{_datadir}/systemd
|
||||
|
@ -289,196 +267,301 @@ rm -rf %{buildroot}/*
|
|||
%files lang -f %{name}.lang
|
||||
|
||||
%changelog
|
||||
* Thu Oct 22 2020 Nicolas Ontiveros <niontive@microsoft.com> - 239-33
|
||||
- Use autosetup
|
||||
- Fix CVE-2019-3842
|
||||
- Fix CVE-2019-3843
|
||||
- Fix CVE-2019-3844
|
||||
- Fix CVE-2019-6454
|
||||
- Fix CVE-2019-20386
|
||||
- Fix CVE-2020-1712
|
||||
- Fix CVE-2020-13776
|
||||
|
||||
* Wed Sep 23 2020 Suresh Babu Chalamalasetty <schalam@microsoft.com> 239-32
|
||||
- Portablectl patches for --now --enable and --no-block flags support
|
||||
|
||||
* Mon Aug 24 2020 Leandro Pereira <leperei@microsoft.com> 239-31
|
||||
- Use time.windows.com as the default NTP server in timesyncd.
|
||||
|
||||
* Tue Aug 11 2020 Mateusz Malisz <mamalisz@microsoft.com> 239-30
|
||||
- Reduce kptr_restrict to 1
|
||||
|
||||
* Fri May 29 2020 Nicolas Ontiveros <niontive@microsoft.com> 239-29
|
||||
- Include cryptsetup to build cryptsetup generator.
|
||||
|
||||
* Wed May 27 2020 Chris Co <chrco@microsoft.com> 239-28
|
||||
- Disable IPv6 router advertisements by default
|
||||
|
||||
* Wed May 20 2020 Emre Girgin <mrgirgin@microsoft.com> 239-27
|
||||
- Change /boot directory permissions to 600.
|
||||
|
||||
* Wed May 20 2020 Joe Schmitt <joschmit@microsoft.com> 239-26
|
||||
- Remove 99-vmware-hotplug.rules.
|
||||
|
||||
* Sat May 09 00:20:49 PST 2020 Nick Samson <nisamson@microsoft.com> - 239-25
|
||||
- Added %%license line automatically
|
||||
|
||||
* Wed May 06 2020 Emre Girgin <mrgirgin@microsoft.com> 239-24
|
||||
- Renaming docbook-xsl to docbook-style-xsl
|
||||
|
||||
* Wed May 06 2020 Emre Girgin <mrgirgin@microsoft.com> 239-23
|
||||
- Renaming docbook-xml to docbook-dtd-xml
|
||||
|
||||
* Wed May 06 2020 Emre Girgin <mrgirgin@microsoft.com> 239-22
|
||||
- Renaming Linux-PAM to pam
|
||||
|
||||
* Wed May 06 2020 Emre Girgin <mrgirgin@microsoft.com> 239-21
|
||||
- Renaming XML-Parser to perl-XML-Parser
|
||||
|
||||
* Tue May 05 2020 Joe Schmitt <joschmit@microsoft.com> 239-20
|
||||
- Remove unused rdrand-rng after kernel update.
|
||||
|
||||
* Thu Apr 23 2020 Emre Girgin <mrgirgin@microsoft.com> 239-19
|
||||
- Ignore CVE-2018-21029.
|
||||
|
||||
* Fri Apr 17 2020 Emre Girgin <mrgirgin@microsoft.com> 239-18
|
||||
- Rename shadow to shadow-utils.
|
||||
|
||||
* Thu Apr 16 2020 Emre Girgin <mrgirgin@microsoft.com> 239-17
|
||||
- Resolve build issues arising from upgrading meson to 0.49.2.
|
||||
|
||||
* Thu Apr 09 2020 Henry Beberman <henry.beberman@microsoft.com> 239-16
|
||||
- Add patch to disable arguments to mount_cgroup_controllers as in upstream latest.
|
||||
|
||||
* Tue Apr 07 2020 Paul Monson <paulmon@microsoft.com> 239-15
|
||||
- Update Source0 link. License verified.
|
||||
|
||||
* Tue Mar 31 2020 Henry Beberman <henry.beberman@microsoft.com> 239-14
|
||||
- Backport upstream fix for FOREACH_STRING macro.
|
||||
|
||||
* Tue Mar 24 2020 Henry Beberman <henry.beberman@microsoft.com> 239-13
|
||||
- Add -Wno-error=format-overflow= to fix gcc9 build.
|
||||
|
||||
* Thu Feb 27 2020 Henry Beberman <hebeberm@microsoft.com> 239-12
|
||||
- Disable libcurl auto-configure
|
||||
|
||||
* Tue Sep 03 2019 Mateusz Malisz <mamalisz@microsoft.com> 239-11
|
||||
- Initial CBL-Mariner import from Photon (license: Apache2).
|
||||
|
||||
* Thu Jan 10 2019 Anish Swaminathan <anishs@vmware.com> 239-10
|
||||
- Fix CVE-2018-16864, CVE-2018-16865, CVE-2018-16866
|
||||
|
||||
* Wed Jan 09 2019 Keerthana K <keerthanak@vmware.com> 239-9
|
||||
- Seting default values for tcp_timestamps, tcp_challenge_ack_limit and ip_forward.
|
||||
|
||||
* Wed Jan 02 2019 Anish Swaminathan <anishs@vmware.com> 239-8
|
||||
- Fix CVE-2018-15686, CVE-2018-15687
|
||||
|
||||
* Sun Nov 11 2018 Tapas Kundu <tkundu@vmware.com> 239-7
|
||||
- Fix CVE-2018-15688
|
||||
|
||||
* Fri Oct 26 2018 Srivatsa S. Bhat (VMware) <srivatsa@csail.mit.edu> 239-6
|
||||
- Auto-load rdrand-rng kernel module only on x86.
|
||||
|
||||
* Fri Oct 26 2018 Anish Swaminathan <anishs@vmware.com> 239-5
|
||||
- Revert the commit that causes GCE networkd timeout
|
||||
- https://github.com/systemd/systemd/commit/44b598a1c9d11c23420a5ef45ff11bcb0ed195eb
|
||||
|
||||
* Mon Oct 08 2018 Srinidhi Rao <srinidhir@vmware.com> 239-4
|
||||
- Add glib-devel as a Requirement to systemd-devel
|
||||
|
||||
* Fri Sep 21 2018 Alexey Makhalov <amakhalov@vmware.com> 239-3
|
||||
- Fix compilation issue against glibc-2.28
|
||||
|
||||
* Tue Sep 18 2018 Srivatsa S. Bhat <srivatsa@csail.mit.edu> 239-2
|
||||
- Automatically load rdrand-rng kernel module on every boot.
|
||||
|
||||
* Tue Aug 28 2018 Anish Swaminathan <anishs@vmware.com> 239-1
|
||||
- Update systemd to 239
|
||||
|
||||
* Wed Apr 11 2018 Xiaolin Li <xiaolinl@vmware.com> 236-3
|
||||
- Build systemd with util-linux 2.32.
|
||||
|
||||
* Wed Jan 17 2018 Divya Thaluru <dthaluru@vmware.com> 236-2
|
||||
- Fixed the log file directory structure
|
||||
|
||||
* Fri Dec 29 2017 Anish Swaminathan <anishs@vmware.com> 236-1
|
||||
- Update systemd to 236
|
||||
|
||||
* Thu Nov 09 2017 Vinay Kulkarni <kulkarniv@vmware.com> 233-11
|
||||
- Fix CVE-2017-15908 dns packet loop fix.
|
||||
|
||||
* Tue Nov 07 2017 Vinay Kulkarni <kulkarniv@vmware.com> 233-10
|
||||
- Fix nullptr access during link disable.
|
||||
|
||||
* Mon Sep 18 2017 Anish Swaminathan <anishs@vmware.com> 233-9
|
||||
- Backport router solicitation backoff from systemd 234
|
||||
|
||||
* Fri Sep 15 2017 Anish Swaminathan <anishs@vmware.com> 233-8
|
||||
- Move network file to systemd package
|
||||
|
||||
* Tue Aug 15 2017 Alexey Makhalov <amakhalov@vmware.com> 233-7
|
||||
- Fix compilation issue for glibc-2.26
|
||||
|
||||
* Fri Jul 21 2017 Vinay Kulkarni <kulkarniv@vmware.com> 233-6
|
||||
- Fix for CVE-2017-1000082.
|
||||
|
||||
* Fri Jul 07 2017 Vinay Kulkarni <kulkarniv@vmware.com> 233-5
|
||||
- Fix default-dns-from-env patch.
|
||||
|
||||
* Wed Jul 05 2017 Xiaolin Li <xiaolinl@vmware.com> 233-4
|
||||
- Add kmod-devel to BuildRequires
|
||||
|
||||
* Thu Jun 29 2017 Vinay Kulkarni <kulkarniv@vmware.com> 233-3
|
||||
- Fix for CVE-2017-9445.
|
||||
|
||||
* Tue Jun 20 2017 Anish Swaminathan <anishs@vmware.com> 233-2
|
||||
- Fix for CVE-2017-9217
|
||||
|
||||
* Mon Mar 06 2017 Vinay Kulkarni <kulkarniv@vmware.com> 233-1
|
||||
- Update systemd to 233
|
||||
|
||||
* Tue Jan 3 2017 Alexey Makhalov <amakhalov@vmware.com> 232-5
|
||||
- Added /boot/systemd.cfg
|
||||
|
||||
* Tue Dec 20 2016 Alexey Makhalov <amakhalov@vmware.com> 232-4
|
||||
- Fix initrd-switch-root issue
|
||||
|
||||
* Wed Dec 07 2016 Xiaolin Li <xiaolinl@vmware.com> 232-3
|
||||
- BuildRequires Linux-PAM-devel
|
||||
|
||||
* Thu Dec 01 2016 Xiaolin Li <xiaolinl@vmware.com> 232-2
|
||||
- disable-elfutils.
|
||||
|
||||
* Fri Nov 18 2016 Anish Swaminathan <anishs@vmware.com> 232-1
|
||||
- Update systemd to 232
|
||||
|
||||
* Thu Nov 3 2016 Divya Thaluru <dthaluru@vmware.com> 228-32
|
||||
- Added logic to reload services incase of rpm upgrade
|
||||
|
||||
* Thu Sep 29 2016 Vinay Kulkarni <kulkarniv@vmware.com> 228-31
|
||||
- Fix a CVE in systemd-notify socket.
|
||||
|
||||
* Mon Aug 29 2016 Alexey Makhalov <amakhalov@vmware.com> 228-30
|
||||
- 02-install-general-aliases.patch to create absolute symlinks
|
||||
|
||||
* Fri Aug 26 2016 Anish Swaminathan <anishs@vmware.com> 228-29
|
||||
- Change config file properties for 99-default.link
|
||||
|
||||
* Tue Aug 16 2016 Vinay Kulkarni <kulkarniv@vmware.com> 228-28
|
||||
- systemd-resolved: Fix DNS_TRANSACTION_PENDING assert.
|
||||
|
||||
* Mon Aug 1 2016 Divya Thaluru <dthaluru@vmware.com> 228-27
|
||||
- Removed packaging of symlinks and will be created during installation
|
||||
|
||||
* Tue Jul 12 2016 Vinay Kulkarni <kulkarniv@vmware.com> 228-26
|
||||
- systemd-resolved: Fix DNS domains resolv.conf search issue for static DNS.
|
||||
|
||||
* Mon Jul 11 2016 Vinay Kulkarni <kulkarniv@vmware.com> 228-25
|
||||
- systemd-networkd: Update DUID/IAID config interface to systemd v230 spec.
|
||||
|
||||
* Tue Jun 21 2016 Anish Swaminathan <anishs@vmware.com> 228-24
|
||||
- Change config file properties
|
||||
|
||||
* Fri Jun 17 2016 Vinay Kulkarni <kulkarniv@vmware.com> 228-23
|
||||
- systemd-resolved: Configure initial DNS servers from environment var.
|
||||
|
||||
* Mon Jun 06 2016 Alexey Makhalov <amakhalov@vmware.com> 228-22
|
||||
- systemd-resolved: disable LLMNR
|
||||
|
||||
* Tue May 24 2016 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 228-21
|
||||
- GA - Bump release of all rpms
|
||||
|
||||
* Tue May 17 2016 Anish Swaminathan <anishs@vmware.com> 228-20
|
||||
- Added patch for letting kernel handle ndisc
|
||||
|
||||
* Tue May 17 2016 Divya Thaluru <dthaluru@vmware.com> 228-19
|
||||
- Updated systemd-user PAM configuration
|
||||
|
||||
* Mon May 16 2016 Harish Udaiya Kumar <hudaiyakumar@vmware.com> 228-18
|
||||
- Updated the MaxTasks to infinity in system.conf file
|
||||
|
||||
* Thu Apr 21 2016 Mahmoud Bassiouny <mbassiouny@vmware.com> 228-17
|
||||
- Set the default.target to the multi-user.target
|
||||
|
||||
* Tue Apr 12 2016 Vinay Kulkarni <kulkarniv@vmware.com> 228-16
|
||||
- Disable network interface renaming.
|
||||
|
||||
* Thu Mar 31 2016 Vinay Kulkarni <kulkarniv@vmware.com> 228-15
|
||||
- Patch to query DHCP DUID, IAID.f
|
||||
|
||||
* Wed Mar 30 2016 Vinay Kulkarni <kulkarniv@vmware.com> 228-14
|
||||
- Update DHCP DUID, IAID configuration patch.
|
||||
|
||||
* Wed Mar 30 2016 Kumar Kaushik <kaushikk@vmware.com> 228-13
|
||||
- Install the security hardening script as part of systemd.
|
||||
|
||||
* Tue Mar 29 2016 Kumar Kaushik <kaushikk@vmware.com> 228-12
|
||||
- Added patch for timedatectl /etc/adjtime PR2749.
|
||||
|
||||
* Fri Mar 11 2016 Anish Swaminathan <anishs@vmware.com> 228-11
|
||||
- Added patch for dhcp preservation via duid iaid configurability
|
||||
|
||||
* Fri Mar 11 2016 Anish Swaminathan <anishs@vmware.com> 228-10
|
||||
- Added patch for swap disconnect order
|
||||
|
||||
* Thu Mar 10 2016 XIaolin Li <xiaolinl@vmware.com> 228-9
|
||||
- Enable manpages.
|
||||
|
||||
* Fri Feb 19 2016 Anish Swaminathan <anishs@vmware.com> 228-8
|
||||
- Added patch to get around systemd-networkd wait online timeout
|
||||
|
||||
* Sat Feb 06 2016 Alexey Makhalov <amakhalov@vmware.com> 228-7
|
||||
- Added patch: fix-reading-routes.
|
||||
|
||||
* Wed Feb 03 2016 Anish Swaminathan <anishs@vmware.com> 228-6
|
||||
- Add hotplug udev rules.
|
||||
|
||||
* Tue Jan 12 2016 Anish Swaminathan <anishs@vmware.com> 228-5
|
||||
- Change config file attributes.
|
||||
|
||||
* Wed Jan 06 2016 Anish Swaminathan <anishs@vmware.com> 228-4
|
||||
- Patches for minor network fixes.
|
||||
|
||||
* Wed Dec 16 2015 Anish Swaminathan <anishs@vmware.com> 228-3
|
||||
- Patch for ostree.
|
||||
|
||||
* Wed Dec 16 2015 Anish Swaminathan <anishs@vmware.com> 228-2
|
||||
- Patch for loopback address.
|
||||
|
||||
* Fri Dec 11 2015 Anish Swaminathan <anishs@vmware.com> 228-1
|
||||
- Upgrade systemd version.
|
||||
|
||||
* Mon Nov 30 2015 Mahmoud Bassiouny <mbassiouny@vmware.com> 216-13
|
||||
- Removing the reference of lock user
|
||||
|
||||
* Fri Oct 9 2015 Xiaolin Li <xiaolinl@vmware.com> 216-12
|
||||
- Removing la files from packages.
|
||||
|
||||
* Fri Sep 18 2015 Divya Thaluru <dthaluru@vmware.com> 216-11
|
||||
- Packaging journal log directory
|
||||
|
||||
* Thu Sep 10 2015 Alexey Makhalov <amakhalov@vmware.com> 216-10
|
||||
- Improve enoX renaming in VMware HV case. Patch is added.
|
||||
|
||||
* Tue Aug 25 2015 Alexey Makhalov <amakhalov@vmware.com> 216-9
|
||||
- Reduce systemd-networkd boot time (exclude if-rename patch).
|
||||
|
||||
* Mon Jul 20 2015 Divya Thaluru <dthaluru@vmware.com> 216-8
|
||||
- Adding sysvinit support
|
||||
|
||||
* Mon Jul 06 2015 Kumar Kaushik <kaushikk@vmware.com> 216-7
|
||||
- Fixing networkd/udev race condition for renaming interface.
|
||||
|
||||
* Thu Jun 25 2015 Sharath George <sharathg@vmware.com> 216-6
|
||||
- Remove debug files.
|
||||
|
||||
* Tue Jun 23 2015 Divya Thaluru <dthaluru@vmware.com> 216-5
|
||||
- Building compat libs
|
||||
|
||||
* Mon Jun 1 2015 Alexey Makhalov <amakhalov@vmware.com> 216-4
|
||||
- gudev support
|
||||
|
||||
* Wed May 27 2015 Divya Thaluru <dthaluru@vmware.com> 216-3
|
||||
- Removing packing of PAM configuration files
|
||||
|
||||
* Mon May 18 2015 Touseef Liaqat <tliaqat@vmware.com> 216-2
|
||||
- Update according to UsrMove.
|
||||
|
||||
* Mon Oct 27 2014 Sharath George <sharathg@vmware.com> 216-1
|
||||
- Initial build. First version
|
||||
|
|
|
@ -353,13 +353,13 @@ sqlite-devel-3.32.3-2.cm1.aarch64.rpm
|
|||
sqlite-libs-3.32.3-2.cm1.aarch64.rpm
|
||||
swig-3.0.12-4.cm1.aarch64.rpm
|
||||
swig-debuginfo-3.0.12-4.cm1.aarch64.rpm
|
||||
systemd-239-32.cm1.aarch64.rpm
|
||||
systemd-bootstrap-239-29.cm1.aarch64.rpm
|
||||
systemd-bootstrap-debuginfo-239-29.cm1.aarch64.rpm
|
||||
systemd-bootstrap-devel-239-29.cm1.aarch64.rpm
|
||||
systemd-debuginfo-239-32.cm1.aarch64.rpm
|
||||
systemd-devel-239-32.cm1.aarch64.rpm
|
||||
systemd-lang-239-32.cm1.aarch64.rpm
|
||||
systemd-239-33.cm1.aarch64.rpm
|
||||
systemd-bootstrap-239-30.cm1.aarch64.rpm
|
||||
systemd-bootstrap-debuginfo-239-30.cm1.aarch64.rpm
|
||||
systemd-bootstrap-devel-239-30.cm1.aarch64.rpm
|
||||
systemd-debuginfo-239-33.cm1.aarch64.rpm
|
||||
systemd-devel-239-33.cm1.aarch64.rpm
|
||||
systemd-lang-239-33.cm1.aarch64.rpm
|
||||
tar-1.32-2.cm1.aarch64.rpm
|
||||
tar-debuginfo-1.32-2.cm1.aarch64.rpm
|
||||
tdnf-2.1.0-4.cm1.aarch64.rpm
|
||||
|
|
|
@ -353,13 +353,13 @@ sqlite-devel-3.32.3-2.cm1.x86_64.rpm
|
|||
sqlite-libs-3.32.3-2.cm1.x86_64.rpm
|
||||
swig-3.0.12-4.cm1.x86_64.rpm
|
||||
swig-debuginfo-3.0.12-4.cm1.x86_64.rpm
|
||||
systemd-239-32.cm1.x86_64.rpm
|
||||
systemd-bootstrap-239-29.cm1.x86_64.rpm
|
||||
systemd-bootstrap-debuginfo-239-29.cm1.x86_64.rpm
|
||||
systemd-bootstrap-devel-239-29.cm1.x86_64.rpm
|
||||
systemd-debuginfo-239-32.cm1.x86_64.rpm
|
||||
systemd-devel-239-32.cm1.x86_64.rpm
|
||||
systemd-lang-239-32.cm1.x86_64.rpm
|
||||
systemd-239-33.cm1.x86_64.rpm
|
||||
systemd-bootstrap-239-30.cm1.x86_64.rpm
|
||||
systemd-bootstrap-debuginfo-239-30.cm1.x86_64.rpm
|
||||
systemd-bootstrap-devel-239-30.cm1.x86_64.rpm
|
||||
systemd-debuginfo-239-33.cm1.x86_64.rpm
|
||||
systemd-devel-239-33.cm1.x86_64.rpm
|
||||
systemd-lang-239-33.cm1.x86_64.rpm
|
||||
tar-1.32-2.cm1.x86_64.rpm
|
||||
tar-debuginfo-1.32-2.cm1.x86_64.rpm
|
||||
tdnf-2.1.0-4.cm1.x86_64.rpm
|
||||
|
|
Loading…
Reference in New Issue