forked from pool/systemd-rpm-macros
This commit is contained in:
parent
4fc530766b
commit
12dd43bb94
35
0001-Fix-bad-assert-in-show_pid_array.patch
Normal file
35
0001-Fix-bad-assert-in-show_pid_array.patch
Normal file
@ -0,0 +1,35 @@
|
||||
From a0551d26ab5c6e0d5089b42a6319baef0e28ad92 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Mon, 14 Oct 2013 19:15:24 -0400
|
||||
Subject: [PATCH] Fix bad assert in show_pid_array
|
||||
|
||||
This function should get the same treatment as other qsort uses
|
||||
did in 7ff7394 "Never call qsort on potentially NULL arrays".
|
||||
|
||||
Reported-by: Oleksii Shevchuk <alxchk@gmail.com>
|
||||
---
|
||||
src/shared/cgroup-show.c | 4 +---
|
||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
Index: systemd-208/src/shared/cgroup-show.c
|
||||
===================================================================
|
||||
--- systemd-208.orig/src/shared/cgroup-show.c
|
||||
+++ systemd-208/src/shared/cgroup-show.c
|
||||
@@ -44,8 +44,6 @@ static void show_pid_array(int pids[], u
|
||||
unsigned i, m, pid_width;
|
||||
pid_t biggest = 0;
|
||||
|
||||
- assert(n_pids > 0);
|
||||
-
|
||||
/* Filter duplicates */
|
||||
m = 0;
|
||||
for (i = 0; i < n_pids; i++) {
|
||||
@@ -65,7 +63,7 @@ static void show_pid_array(int pids[], u
|
||||
pid_width = DECIMAL_STR_WIDTH(biggest);
|
||||
|
||||
/* And sort */
|
||||
- qsort(pids, n_pids, sizeof(pid_t), compare);
|
||||
+ qsort_safe(pids, n_pids, sizeof(pid_t), compare);
|
||||
|
||||
if(flags & OUTPUT_FULL_WIDTH)
|
||||
n_columns = 0;
|
385
0001-Never-call-qsort-on-potentially-NULL-arrays.patch
Normal file
385
0001-Never-call-qsort-on-potentially-NULL-arrays.patch
Normal file
@ -0,0 +1,385 @@
|
||||
From 7ff7394d9e4e9189c30fd018235e6b1728c6f2d0 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Fri, 11 Oct 2013 19:33:13 -0400
|
||||
Subject: [PATCH] Never call qsort on potentially NULL arrays
|
||||
|
||||
This extends 62678ded 'efi: never call qsort on potentially
|
||||
NULL arrays' to all other places where qsort is used and it
|
||||
is not obvious that the count is non-zero.
|
||||
---
|
||||
src/analyze/systemd-analyze.c | 2 +-
|
||||
src/cgtop/cgtop.c | 2 +-
|
||||
src/core/namespace.c | 38 ++++++++++++++++++++------------------
|
||||
src/journal/catalog.c | 2 +-
|
||||
src/journal/journal-file.c | 2 +-
|
||||
src/journal/journal-vacuum.c | 3 +--
|
||||
src/journal/journalctl.c | 2 +-
|
||||
src/libsystemd-bus/bus-match.c | 2 +-
|
||||
src/libudev/libudev-enumerate.c | 2 +-
|
||||
src/nss-myhostname/netlink.c | 3 ++-
|
||||
src/readahead/readahead-collect.c | 39 ++++++++++++++++++++++-----------------
|
||||
src/shared/cgroup-show.c | 2 ++
|
||||
src/shared/conf-files.c | 2 +-
|
||||
src/shared/efivars.c | 3 +--
|
||||
src/shared/fileio.c | 1 +
|
||||
src/shared/util.h | 12 ++++++++++++
|
||||
src/systemctl/systemctl.c | 10 +++++-----
|
||||
17 files changed, 74 insertions(+), 53 deletions(-)
|
||||
|
||||
diff --git a/src/analyze/systemd-analyze.c b/src/analyze/systemd-analyze.c
|
||||
index 27d063c..a4f15eb 100644
|
||||
--- a/src/analyze/systemd-analyze.c
|
||||
+++ b/src/analyze/systemd-analyze.c
|
||||
@@ -768,7 +768,7 @@ static int list_dependencies_one(DBusConnection *bus, const char *name, unsigned
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
- qsort(deps, strv_length(deps), sizeof (char*), list_dependencies_compare);
|
||||
+ qsort_safe(deps, strv_length(deps), sizeof (char*), list_dependencies_compare);
|
||||
|
||||
r = acquire_boot_times(bus, &boot);
|
||||
if (r < 0)
|
||||
diff --git a/src/cgtop/cgtop.c b/src/cgtop/cgtop.c
|
||||
index cacf705..293a211 100644
|
||||
--- a/src/cgtop/cgtop.c
|
||||
+++ b/src/cgtop/cgtop.c
|
||||
@@ -461,7 +461,7 @@ static int display(Hashmap *a) {
|
||||
if (g->n_tasks_valid || g->cpu_valid || g->memory_valid || g->io_valid)
|
||||
array[n++] = g;
|
||||
|
||||
- qsort(array, n, sizeof(Group*), group_compare);
|
||||
+ qsort_safe(array, n, sizeof(Group*), group_compare);
|
||||
|
||||
/* Find the longest names in one run */
|
||||
for (j = 0; j < n; j++) {
|
||||
diff --git a/src/core/namespace.c b/src/core/namespace.c
|
||||
index 16b132b..936f368 100644
|
||||
--- a/src/core/namespace.c
|
||||
+++ b/src/core/namespace.c
|
||||
@@ -222,7 +222,7 @@ int setup_namespace(char** read_write_dirs,
|
||||
strv_length(read_only_dirs) +
|
||||
strv_length(inaccessible_dirs) +
|
||||
(private_tmp ? 2 : 0);
|
||||
- BindMount *m, *mounts;
|
||||
+ BindMount *m, *mounts = NULL;
|
||||
int r = 0;
|
||||
|
||||
if (!mount_flags)
|
||||
@@ -231,27 +231,29 @@ int setup_namespace(char** read_write_dirs,
|
||||
if (unshare(CLONE_NEWNS) < 0)
|
||||
return -errno;
|
||||
|
||||
- m = mounts = (BindMount *) alloca(n * sizeof(BindMount));
|
||||
- if ((r = append_mounts(&m, read_write_dirs, READWRITE)) < 0 ||
|
||||
- (r = append_mounts(&m, read_only_dirs, READONLY)) < 0 ||
|
||||
- (r = append_mounts(&m, inaccessible_dirs, INACCESSIBLE)) < 0)
|
||||
- return r;
|
||||
+ if (n) {
|
||||
+ m = mounts = (BindMount *) alloca(n * sizeof(BindMount));
|
||||
+ if ((r = append_mounts(&m, read_write_dirs, READWRITE)) < 0 ||
|
||||
+ (r = append_mounts(&m, read_only_dirs, READONLY)) < 0 ||
|
||||
+ (r = append_mounts(&m, inaccessible_dirs, INACCESSIBLE)) < 0)
|
||||
+ return r;
|
||||
+
|
||||
+ if (private_tmp) {
|
||||
+ m->path = "/tmp";
|
||||
+ m->mode = PRIVATE_TMP;
|
||||
+ m++;
|
||||
+
|
||||
+ m->path = "/var/tmp";
|
||||
+ m->mode = PRIVATE_VAR_TMP;
|
||||
+ m++;
|
||||
+ }
|
||||
|
||||
- if (private_tmp) {
|
||||
- m->path = "/tmp";
|
||||
- m->mode = PRIVATE_TMP;
|
||||
- m++;
|
||||
+ assert(mounts + n == m);
|
||||
|
||||
- m->path = "/var/tmp";
|
||||
- m->mode = PRIVATE_VAR_TMP;
|
||||
- m++;
|
||||
+ qsort(mounts, n, sizeof(BindMount), mount_path_compare);
|
||||
+ drop_duplicates(mounts, &n);
|
||||
}
|
||||
|
||||
- assert(mounts + n == m);
|
||||
-
|
||||
- qsort(mounts, n, sizeof(BindMount), mount_path_compare);
|
||||
- drop_duplicates(mounts, &n);
|
||||
-
|
||||
/* Remount / as SLAVE so that nothing now mounted in the namespace
|
||||
shows up in the parent */
|
||||
if (mount(NULL, "/", NULL, MS_SLAVE|MS_REC, NULL) < 0)
|
||||
diff --git a/src/journal/catalog.c b/src/journal/catalog.c
|
||||
index 7738d24..90ca008 100644
|
||||
--- a/src/journal/catalog.c
|
||||
+++ b/src/journal/catalog.c
|
||||
@@ -399,7 +399,7 @@ int catalog_update(const char* database, const char* root, const char* const* di
|
||||
}
|
||||
|
||||
assert(n == hashmap_size(h));
|
||||
- qsort(items, n, sizeof(CatalogItem), catalog_compare_func);
|
||||
+ qsort_safe(items, n, sizeof(CatalogItem), catalog_compare_func);
|
||||
|
||||
r = write_catalog(database, h, sb, items, n);
|
||||
if (r < 0)
|
||||
diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
|
||||
index 78b937b..901e71b 100644
|
||||
--- a/src/journal/journal-file.c
|
||||
+++ b/src/journal/journal-file.c
|
||||
@@ -1344,7 +1344,7 @@ int journal_file_append_entry(JournalFile *f, const dual_timestamp *ts, const st
|
||||
|
||||
/* Order by the position on disk, in order to improve seek
|
||||
* times for rotating media. */
|
||||
- qsort(items, n_iovec, sizeof(EntryItem), entry_item_cmp);
|
||||
+ qsort_safe(items, n_iovec, sizeof(EntryItem), entry_item_cmp);
|
||||
|
||||
r = journal_file_append_entry_internal(f, ts, xor_hash, items, n_iovec, seqnum, ret, offset);
|
||||
|
||||
diff --git a/src/journal/journal-vacuum.c b/src/journal/journal-vacuum.c
|
||||
index 8d5effb..d4a1c6c 100644
|
||||
--- a/src/journal/journal-vacuum.c
|
||||
+++ b/src/journal/journal-vacuum.c
|
||||
@@ -299,8 +299,7 @@ int journal_directory_vacuum(
|
||||
n_list ++;
|
||||
}
|
||||
|
||||
- if (n_list > 0)
|
||||
- qsort(list, n_list, sizeof(struct vacuum_info), vacuum_compare);
|
||||
+ qsort_safe(list, n_list, sizeof(struct vacuum_info), vacuum_compare);
|
||||
|
||||
for (i = 0; i < n_list; i++) {
|
||||
struct statvfs ss;
|
||||
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
|
||||
index 2f8be1b..275458c 100644
|
||||
--- a/src/journal/journalctl.c
|
||||
+++ b/src/journal/journalctl.c
|
||||
@@ -761,7 +761,7 @@ static int get_relative_boot_id(sd_journal *j, sd_id128_t *boot_id, int relative
|
||||
sd_journal_flush_matches(j);
|
||||
}
|
||||
|
||||
- qsort(all_ids, count, sizeof(boot_id_t), boot_id_cmp);
|
||||
+ qsort_safe(all_ids, count, sizeof(boot_id_t), boot_id_cmp);
|
||||
|
||||
if (sd_id128_equal(*boot_id, SD_ID128_NULL)) {
|
||||
if (relative > (int) count || relative <= -(int)count)
|
||||
diff --git a/src/libsystemd-bus/bus-match.c b/src/libsystemd-bus/bus-match.c
|
||||
index 1411167..916682a 100644
|
||||
--- a/src/libsystemd-bus/bus-match.c
|
||||
+++ b/src/libsystemd-bus/bus-match.c
|
||||
@@ -768,7 +768,7 @@ int bus_match_parse(
|
||||
}
|
||||
|
||||
/* Order the whole thing, so that we always generate the same tree */
|
||||
- qsort(components, n_components, sizeof(struct bus_match_component), match_component_compare);
|
||||
+ qsort_safe(components, n_components, sizeof(struct bus_match_component), match_component_compare);
|
||||
|
||||
/* Check for duplicates */
|
||||
for (i = 0; i+1 < n_components; i++)
|
||||
diff --git a/src/libudev/libudev-enumerate.c b/src/libudev/libudev-enumerate.c
|
||||
index 8146f27..e71d766 100644
|
||||
--- a/src/libudev/libudev-enumerate.c
|
||||
+++ b/src/libudev/libudev-enumerate.c
|
||||
@@ -276,7 +276,7 @@ _public_ struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enume
|
||||
size_t move_later_prefix = 0;
|
||||
|
||||
udev_list_cleanup(&udev_enumerate->devices_list);
|
||||
- qsort(udev_enumerate->devices, udev_enumerate->devices_cur, sizeof(struct syspath), syspath_cmp);
|
||||
+ qsort_safe(udev_enumerate->devices, udev_enumerate->devices_cur, sizeof(struct syspath), syspath_cmp);
|
||||
|
||||
max = udev_enumerate->devices_cur;
|
||||
for (i = 0; i < max; i++) {
|
||||
diff --git a/src/nss-myhostname/netlink.c b/src/nss-myhostname/netlink.c
|
||||
index b1ef912..47a41f5 100644
|
||||
--- a/src/nss-myhostname/netlink.c
|
||||
+++ b/src/nss-myhostname/netlink.c
|
||||
@@ -197,7 +197,8 @@ finish:
|
||||
return r;
|
||||
}
|
||||
|
||||
- qsort(list, n_list, sizeof(struct address), address_compare);
|
||||
+ if (n_list)
|
||||
+ qsort(list, n_list, sizeof(struct address), address_compare);
|
||||
|
||||
*_list = list;
|
||||
*_n_list = n_list;
|
||||
diff --git a/src/readahead/readahead-collect.c b/src/readahead/readahead-collect.c
|
||||
index 32888ad..6b74866 100644
|
||||
--- a/src/readahead/readahead-collect.c
|
||||
+++ b/src/readahead/readahead-collect.c
|
||||
@@ -536,8 +536,7 @@ done:
|
||||
HASHMAP_FOREACH_KEY(q, p, files, i)
|
||||
pack_file(pack, p, on_btrfs);
|
||||
} else {
|
||||
- struct item *ordered, *j;
|
||||
- unsigned k, n;
|
||||
+ unsigned n;
|
||||
|
||||
/* On rotating media, order things by the block
|
||||
* numbers */
|
||||
@@ -545,25 +544,31 @@ done:
|
||||
log_debug("Ordering...");
|
||||
|
||||
n = hashmap_size(files);
|
||||
- if (!(ordered = new(struct item, n))) {
|
||||
- r = log_oom();
|
||||
- goto finish;
|
||||
- }
|
||||
-
|
||||
- j = ordered;
|
||||
- HASHMAP_FOREACH_KEY(q, p, files, i) {
|
||||
- memcpy(j, q, sizeof(struct item));
|
||||
- j++;
|
||||
- }
|
||||
+ if (n) {
|
||||
+ _cleanup_free_ struct item *ordered;
|
||||
+ struct item *j;
|
||||
+ unsigned k;
|
||||
+
|
||||
+ ordered = new(struct item, n);
|
||||
+ if (!ordered) {
|
||||
+ r = log_oom();
|
||||
+ goto finish;
|
||||
+ }
|
||||
|
||||
- assert(ordered + n == j);
|
||||
+ j = ordered;
|
||||
+ HASHMAP_FOREACH_KEY(q, p, files, i) {
|
||||
+ memcpy(j, q, sizeof(struct item));
|
||||
+ j++;
|
||||
+ }
|
||||
|
||||
- qsort(ordered, n, sizeof(struct item), qsort_compare);
|
||||
+ assert(ordered + n == j);
|
||||
|
||||
- for (k = 0; k < n; k++)
|
||||
- pack_file(pack, ordered[k].path, on_btrfs);
|
||||
+ qsort(ordered, n, sizeof(struct item), qsort_compare);
|
||||
|
||||
- free(ordered);
|
||||
+ for (k = 0; k < n; k++)
|
||||
+ pack_file(pack, ordered[k].path, on_btrfs);
|
||||
+ } else
|
||||
+ log_warning("No pack files");
|
||||
}
|
||||
|
||||
log_debug("Finalizing...");
|
||||
diff --git a/src/shared/cgroup-show.c b/src/shared/cgroup-show.c
|
||||
index e971f36..cc44ab4 100644
|
||||
--- a/src/shared/cgroup-show.c
|
||||
+++ b/src/shared/cgroup-show.c
|
||||
@@ -44,6 +44,8 @@ static void show_pid_array(int pids[], unsigned n_pids, const char *prefix, unsi
|
||||
unsigned i, m, pid_width;
|
||||
pid_t biggest = 0;
|
||||
|
||||
+ assert(n_pids > 0);
|
||||
+
|
||||
/* Filter duplicates */
|
||||
m = 0;
|
||||
for (i = 0; i < n_pids; i++) {
|
||||
diff --git a/src/shared/conf-files.c b/src/shared/conf-files.c
|
||||
index 6d99739..ed4070c 100644
|
||||
--- a/src/shared/conf-files.c
|
||||
+++ b/src/shared/conf-files.c
|
||||
@@ -127,7 +127,7 @@ static int conf_files_list_strv_internal(char ***strv, const char *suffix, const
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
- qsort(files, hashmap_size(fh), sizeof(char *), base_cmp);
|
||||
+ qsort_safe(files, hashmap_size(fh), sizeof(char *), base_cmp);
|
||||
*strv = files;
|
||||
|
||||
hashmap_free(fh);
|
||||
diff --git a/src/shared/efivars.c b/src/shared/efivars.c
|
||||
index c015b16..f3eb6a6 100644
|
||||
--- a/src/shared/efivars.c
|
||||
+++ b/src/shared/efivars.c
|
||||
@@ -384,8 +384,7 @@ int efi_get_boot_options(uint16_t **options) {
|
||||
list[count ++] = id;
|
||||
}
|
||||
|
||||
- if (list)
|
||||
- qsort(list, count, sizeof(uint16_t), cmp_uint16);
|
||||
+ qsort_safe(list, count, sizeof(uint16_t), cmp_uint16);
|
||||
|
||||
*options = list;
|
||||
return count;
|
||||
diff --git a/src/shared/fileio.c b/src/shared/fileio.c
|
||||
index 603a1c7..733b320 100644
|
||||
--- a/src/shared/fileio.c
|
||||
+++ b/src/shared/fileio.c
|
||||
@@ -662,6 +662,7 @@ int get_status_field(const char *filename, const char *pattern, char **field) {
|
||||
int r;
|
||||
|
||||
assert(filename);
|
||||
+ assert(pattern);
|
||||
assert(field);
|
||||
|
||||
r = read_full_file(filename, &status, NULL);
|
||||
diff --git a/src/shared/util.h b/src/shared/util.h
|
||||
index 26af5b3..09e556d 100644
|
||||
--- a/src/shared/util.h
|
||||
+++ b/src/shared/util.h
|
||||
@@ -772,3 +772,15 @@ bool id128_is_valid(const char *s) _pure_;
|
||||
void parse_user_at_host(char *arg, char **user, char **host);
|
||||
|
||||
int split_pair(const char *s, const char *sep, char **l, char **r);
|
||||
+
|
||||
+/**
|
||||
+ * Normal qsort requires base to be nonnull. Here were require
|
||||
+ * that only if nmemb > 0.
|
||||
+ */
|
||||
+static inline void qsort_safe(void *base, size_t nmemb, size_t size,
|
||||
+ int (*compar)(const void *, const void *)) {
|
||||
+ if (nmemb) {
|
||||
+ assert(base);
|
||||
+ qsort(base, nmemb, size, compar);
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
|
||||
index d75281f..036828b 100644
|
||||
--- a/src/systemctl/systemctl.c
|
||||
+++ b/src/systemctl/systemctl.c
|
||||
@@ -471,7 +471,7 @@ static int list_units(DBusConnection *bus, char **args) {
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
- qsort(unit_infos, c, sizeof(struct unit_info), compare_unit_info);
|
||||
+ qsort_safe(unit_infos, c, sizeof(struct unit_info), compare_unit_info);
|
||||
|
||||
output_units_list(unit_infos, c);
|
||||
|
||||
@@ -733,8 +733,8 @@ static int list_sockets(DBusConnection *bus, char **args) {
|
||||
listen = triggered = NULL; /* avoid cleanup */
|
||||
}
|
||||
|
||||
- qsort(socket_infos, cs, sizeof(struct socket_info),
|
||||
- (__compar_fn_t) socket_info_compare);
|
||||
+ qsort_safe(socket_infos, cs, sizeof(struct socket_info),
|
||||
+ (__compar_fn_t) socket_info_compare);
|
||||
|
||||
output_sockets_list(socket_infos, cs);
|
||||
|
||||
@@ -1108,7 +1108,7 @@ static int list_dependencies_one(DBusConnection *bus, const char *name, int leve
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
- qsort(deps, strv_length(deps), sizeof (char*), list_dependencies_compare);
|
||||
+ qsort_safe(deps, strv_length(deps), sizeof (char*), list_dependencies_compare);
|
||||
|
||||
STRV_FOREACH(c, deps) {
|
||||
if (strv_contains(u, *c)) {
|
||||
@@ -3532,7 +3532,7 @@ static int show_all(const char* verb,
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
- qsort(unit_infos, c, sizeof(struct unit_info), compare_unit_info);
|
||||
+ qsort_safe(unit_infos, c, sizeof(struct unit_info), compare_unit_info);
|
||||
|
||||
for (u = unit_infos; u < unit_infos + c; u++) {
|
||||
_cleanup_free_ char *p = NULL;
|
||||
--
|
||||
1.8.4
|
||||
|
123
0001-On_s390_con3270_disable_ANSI_colour_esc.patch
Normal file
123
0001-On_s390_con3270_disable_ANSI_colour_esc.patch
Normal file
@ -0,0 +1,123 @@
|
||||
---
|
||||
rules/99-systemd.rules.in | 2 -
|
||||
src/getty-generator/getty-generator.c | 2 -
|
||||
src/shared/util.c | 62 ++++++++++++++++++++++++++++++++--
|
||||
3 files changed, 61 insertions(+), 5 deletions(-)
|
||||
|
||||
--- systemd-208/rules/99-systemd.rules.in
|
||||
+++ systemd-208/rules/99-systemd.rules.in 2014-02-05 10:34:17.346235540 +0000
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
ACTION=="remove", GOTO="systemd_end"
|
||||
|
||||
-SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*", TAG+="systemd"
|
||||
+SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty*", TAG+="systemd"
|
||||
|
||||
KERNEL=="vport*", TAG+="systemd"
|
||||
|
||||
--- systemd-208/src/shared/util.c
|
||||
+++ systemd-208/src/shared/util.c 2014-01-31 11:54:07.222235280 +0000
|
||||
@@ -2967,6 +2967,7 @@ int status_vprintf(const char *status, b
|
||||
struct iovec iovec[6] = {};
|
||||
int n = 0;
|
||||
static bool prev_ephemeral;
|
||||
+ static int cached_on_tty = -1;
|
||||
|
||||
assert(format);
|
||||
|
||||
@@ -2980,6 +2981,51 @@ int status_vprintf(const char *status, b
|
||||
if (fd < 0)
|
||||
return fd;
|
||||
|
||||
+ if (_unlikely_(cached_on_tty < 0)) {
|
||||
+ cached_on_tty = isatty(fd) > 0;
|
||||
+ if (cached_on_tty) {
|
||||
+ const char *e = getenv("TERM");
|
||||
+ if (e && (strcmp(e, "dumb") == 0 || strcmp(e, "ibm327x") == 0)) {
|
||||
+ 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;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (status && !cached_on_tty) {
|
||||
+ const char *esc, *ptr;
|
||||
+ esc = strchr(status, 0x1B);
|
||||
+ if (esc && (ptr = strpbrk(esc, "SOFDTI*"))) {
|
||||
+ switch(*ptr) {
|
||||
+ case 'S':
|
||||
+ status = " SKIP ";
|
||||
+ break;
|
||||
+ case 'O':
|
||||
+ status = " OK ";
|
||||
+ break;
|
||||
+ case 'F':
|
||||
+ status = "FAILED";
|
||||
+ break;
|
||||
+ case 'D':
|
||||
+ status = "DEPEND";
|
||||
+ break;
|
||||
+ case 'T':
|
||||
+ status = " TIME ";
|
||||
+ break;
|
||||
+ case 'I':
|
||||
+ status = " INFO ";
|
||||
+ break;
|
||||
+ case '*':
|
||||
+ status = " BUSY ";
|
||||
+ break;
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (ellipse) {
|
||||
char *e;
|
||||
size_t emax, sl;
|
||||
@@ -3002,8 +3048,12 @@ int status_vprintf(const char *status, b
|
||||
}
|
||||
}
|
||||
|
||||
- if (prev_ephemeral)
|
||||
- IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE);
|
||||
+ if (prev_ephemeral) {
|
||||
+ if (cached_on_tty)
|
||||
+ IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE);
|
||||
+ else
|
||||
+ IOVEC_SET_STRING(iovec[n++], "\r");
|
||||
+ }
|
||||
prev_ephemeral = ephemeral;
|
||||
|
||||
if (status) {
|
||||
@@ -3267,8 +3317,14 @@ 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 (cached_on_tty) {
|
||||
+ const char *e = getenv("TERM");
|
||||
+ if (e && (strcmp(e, "dumb") == 0))
|
||||
+ cached_on_tty = 0;
|
||||
+ }
|
||||
+ }
|
||||
|
||||
return cached_on_tty;
|
||||
}
|
||||
--- systemd-208/src/getty-generator/getty-generator.c
|
||||
+++ systemd-208/src/getty-generator/getty-generator.c 2014-02-05 10:41:29.502245927 +0000
|
||||
@@ -149,9 +149,9 @@ int main(int argc, char *argv[]) {
|
||||
* only for non-VC terminals. */
|
||||
|
||||
k = add_serial_getty(tty);
|
||||
+ free(tty);
|
||||
|
||||
if (k < 0) {
|
||||
- free(tty);
|
||||
free(active);
|
||||
r = EXIT_FAILURE;
|
||||
goto finish;
|
25
0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch
Normal file
25
0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From 7e326fb5b2c1a839bbe7f879c7efa2af2ed33420 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Wed, 2 Oct 2013 13:39:49 +0200
|
||||
Subject: [PATCH 01/15] acpi-fptd: fix memory leak in acpi_get_boot_usec
|
||||
|
||||
---
|
||||
src/shared/acpi-fpdt.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/shared/acpi-fpdt.c b/src/shared/acpi-fpdt.c
|
||||
index b094f34..a7c83ed 100644
|
||||
--- a/src/shared/acpi-fpdt.c
|
||||
+++ b/src/shared/acpi-fpdt.c
|
||||
@@ -81,7 +81,7 @@ struct acpi_fpdt_boot {
|
||||
};
|
||||
|
||||
int acpi_get_boot_usec(usec_t *loader_start, usec_t *loader_exit) {
|
||||
- char *buf;
|
||||
+ _cleanup_free_ char *buf;
|
||||
struct acpi_table_header *tbl;
|
||||
size_t l;
|
||||
struct acpi_fpdt_header *rec;
|
||||
--
|
||||
1.8.4
|
||||
|
537
0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
Normal file
537
0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
Normal file
@ -0,0 +1,537 @@
|
||||
This seems to be a SUSE specific patch. Here we add the check for unmaintained
|
||||
disk like devices to be able to flush and maybe shut them down. Also we add the
|
||||
missing sync() system call for the direct halt/reboot systemctl command. Then we
|
||||
use the system halt as gfallback if poweroff fails for both the direct poweroff
|
||||
systemctl command as well as for the systemd-shutdown utility.
|
||||
|
||||
---
|
||||
Makefile.am | 2
|
||||
Makefile.in | 7
|
||||
src/core/shutdown.c | 8 -
|
||||
src/shared/hdflush.c | 365 ++++++++++++++++++++++++++++++++++++++++++++++
|
||||
src/shared/hdflush.h | 25 +++
|
||||
src/systemctl/systemctl.c | 17 +-
|
||||
6 files changed, 416 insertions(+), 8 deletions(-)
|
||||
|
||||
--- systemd-208/Makefile.am
|
||||
+++ systemd-208/Makefile.am 2014-01-28 11:06:55.638238060 +0000
|
||||
@@ -680,6 +680,8 @@ libsystemd_shared_la_SOURCES = \
|
||||
src/shared/strbuf.h \
|
||||
src/shared/strxcpyx.c \
|
||||
src/shared/strxcpyx.h \
|
||||
+ src/shared/hdflush.c \
|
||||
+ src/shared/hdflush.h \
|
||||
src/shared/conf-parser.c \
|
||||
src/shared/conf-parser.h \
|
||||
src/shared/log.c \
|
||||
--- systemd-208/Makefile.in
|
||||
+++ systemd-208/Makefile.in 2014-01-28 11:06:33.942246196 +0000
|
||||
@@ -1509,7 +1509,7 @@ am_libsystemd_shared_la_OBJECTS = src/sh
|
||||
src/shared/hashmap.lo src/shared/set.lo src/shared/fdset.lo \
|
||||
src/shared/prioq.lo src/shared/sleep-config.lo \
|
||||
src/shared/strv.lo src/shared/env-util.lo src/shared/strbuf.lo \
|
||||
- src/shared/strxcpyx.lo src/shared/conf-parser.lo \
|
||||
+ src/shared/strxcpyx.lo src/shared/hdflush.lo src/shared/conf-parser.lo \
|
||||
src/shared/log.lo src/shared/ratelimit.lo \
|
||||
src/shared/exit-status.lo src/shared/utf8.lo \
|
||||
src/shared/pager.lo src/shared/socket-util.lo \
|
||||
@@ -4137,6 +4137,8 @@ libsystemd_shared_la_SOURCES = \
|
||||
src/shared/strbuf.h \
|
||||
src/shared/strxcpyx.c \
|
||||
src/shared/strxcpyx.h \
|
||||
+ src/shared/hdflush.c \
|
||||
+ src/shared/hdflush.h \
|
||||
src/shared/conf-parser.c \
|
||||
src/shared/conf-parser.h \
|
||||
src/shared/log.c \
|
||||
@@ -7073,6 +7075,8 @@ src/shared/strbuf.lo: src/shared/$(am__d
|
||||
src/shared/$(DEPDIR)/$(am__dirstamp)
|
||||
src/shared/strxcpyx.lo: src/shared/$(am__dirstamp) \
|
||||
src/shared/$(DEPDIR)/$(am__dirstamp)
|
||||
+src/shared/hdflush.lo: src/shared/$(am__dirstamp) \
|
||||
+ src/shared/$(DEPDIR)/$(am__dirstamp)
|
||||
src/shared/conf-parser.lo: src/shared/$(am__dirstamp) \
|
||||
src/shared/$(DEPDIR)/$(am__dirstamp)
|
||||
src/shared/log.lo: src/shared/$(am__dirstamp) \
|
||||
@@ -9236,6 +9240,7 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/strbuf.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/strv.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/strxcpyx.Plo@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/hdflush.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/time-dst.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/time-util.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/unit-name.Plo@am__quote@
|
||||
--- systemd-208/src/shared/hdflush.c
|
||||
+++ systemd-208/src/shared/hdflush.c 2014-01-28 10:58:56.490735704 +0000
|
||||
@@ -0,0 +1,365 @@
|
||||
+/*-*- 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 all disks on the system, list out IDE, unmanaged ATA disks, and
|
||||
+ * USB sticks flush the cache of those and optional shut them down.
|
||||
+ */
|
||||
+
|
||||
+#include <libudev.h>
|
||||
+#include <limits.h>
|
||||
+#ifdef LIST_DEBUG
|
||||
+# include <stdio.h>
|
||||
+#endif
|
||||
+#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
+#include <unistd.h>
|
||||
+
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/stat.h>
|
||||
+#include <fcntl.h>
|
||||
+#include <errno.h>
|
||||
+
|
||||
+#include <sys/ioctl.h>
|
||||
+#include <linux/hdreg.h>
|
||||
+#include <linux/fs.h>
|
||||
+#ifdef WORDS_BIGENDIAN
|
||||
+# include <byteswap.h>
|
||||
+#endif
|
||||
+
|
||||
+/* Used in flush_cache_ext(), compare with <linux/hdreg.h> */
|
||||
+#define IDBYTES 512
|
||||
+#define MASK_EXT 0xE000 /* Bit 15 shall be zero, bit 14 shall be one, bit 13 flush cache ext */
|
||||
+#define TEST_EXT 0x6000
|
||||
+
|
||||
+/* Maybe set in list_disks() and used in do_standby_disk() */
|
||||
+#define DISK_IS_IDE 0x00000001
|
||||
+#define DISK_IS_SATA 0x00000002
|
||||
+#define DISK_EXTFLUSH 0x00000004
|
||||
+#define DISK_REMOVABLE 0x00000008
|
||||
+#define DISK_MANAGED 0x00000010
|
||||
+#define DISK_FLUSHONLY 0x00000020
|
||||
+
|
||||
+struct sysfs {
|
||||
+ struct udev *udev;
|
||||
+ struct udev_enumerate *num;
|
||||
+ struct udev_list_entry *item;
|
||||
+ char *devnode;
|
||||
+ size_t size;
|
||||
+};
|
||||
+
|
||||
+static int flush_cache_ext(const struct sysfs *sysfs);
|
||||
+
|
||||
+static struct sysfs * open_sysfs(void)
|
||||
+{
|
||||
+ static struct sysfs sysfs;
|
||||
+ sysfs.udev = udev_new();
|
||||
+ if (!sysfs.udev)
|
||||
+ goto err;
|
||||
+ sysfs.num = udev_enumerate_new(sysfs.udev);
|
||||
+ if (!sysfs.num)
|
||||
+ goto err;
|
||||
+ if (udev_enumerate_add_match_subsystem(sysfs.num, "block") < 0)
|
||||
+ goto err;
|
||||
+ if (udev_enumerate_add_match_sysname(sysfs.num, "sd?") < 0)
|
||||
+ goto err;
|
||||
+ if (udev_enumerate_add_match_sysname(sysfs.num, "hd?") < 0)
|
||||
+ goto err;
|
||||
+ if (udev_enumerate_scan_devices(sysfs.num) < 0)
|
||||
+ goto err;
|
||||
+ sysfs.item = udev_enumerate_get_list_entry(sysfs.num);
|
||||
+ sysfs.devnode = NULL;
|
||||
+ sysfs.size = 0;
|
||||
+ return &sysfs;
|
||||
+err:
|
||||
+ if (sysfs.num)
|
||||
+ udev_unref(sysfs.udev);
|
||||
+ if (sysfs.udev)
|
||||
+ udev_unref(sysfs.udev);
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+static void close_sysfs(struct sysfs *sysfs)
|
||||
+{
|
||||
+ if (sysfs->num)
|
||||
+ udev_enumerate_unref(sysfs->num);
|
||||
+ if (sysfs->udev)
|
||||
+ udev_unref(sysfs->udev);
|
||||
+ if (sysfs->devnode)
|
||||
+ free(sysfs->devnode);
|
||||
+ sysfs->devnode = NULL;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+static char *list_disks(struct sysfs *sysfs, unsigned int* flags)
|
||||
+{
|
||||
+ struct udev_device *device, *parent;
|
||||
+ struct udev_list_entry *item;
|
||||
+ const char *devnode;
|
||||
+ char path[PATH_MAX];
|
||||
+
|
||||
+ device = NULL;
|
||||
+next:
|
||||
+ if (device)
|
||||
+ udev_device_unref(device);
|
||||
+ if (sysfs->devnode)
|
||||
+ free(sysfs->devnode);
|
||||
+ sysfs->devnode = NULL;
|
||||
+ sysfs->size = 0;
|
||||
+ *flags = 0;
|
||||
+
|
||||
+ if (!sysfs->item)
|
||||
+ goto empty;
|
||||
+ item = sysfs->item;
|
||||
+ sysfs->item = udev_list_entry_get_next(sysfs->item);
|
||||
+
|
||||
+ if (!(device = udev_device_new_from_syspath(sysfs->udev, udev_list_entry_get_name(item))))
|
||||
+ goto out;
|
||||
+ if (!(devnode = udev_device_get_devnode(device)))
|
||||
+ goto out;
|
||||
+ if (!(sysfs->devnode = strdup(devnode)))
|
||||
+ goto out;
|
||||
+
|
||||
+ path[0] = '\0';
|
||||
+ parent = udev_device_get_parent(device);
|
||||
+ if (parent) {
|
||||
+ const char *sysname, *devpath;
|
||||
+ struct udev_device *disk;
|
||||
+ const char *value;
|
||||
+ int ret;
|
||||
+
|
||||
+ sysname = udev_device_get_sysname(parent);
|
||||
+ devpath = udev_device_get_devpath(parent);
|
||||
+
|
||||
+ strcpy(path, "/sys");
|
||||
+ strcat(path, devpath);
|
||||
+ strcat(path, "/scsi_disk/");
|
||||
+ strcat(path, sysname);
|
||||
+
|
||||
+ disk = udev_device_new_from_syspath(sysfs->udev, path);
|
||||
+ if (disk) {
|
||||
+ value = udev_device_get_sysattr_value(disk, "manage_start_stop");
|
||||
+ udev_device_unref(disk);
|
||||
+
|
||||
+ if (value && *value != '0') {
|
||||
+ *flags = DISK_MANAGED;
|
||||
+#ifndef LIST_DEBUG
|
||||
+ goto next; /* Device managed by the kernel */
|
||||
+#endif
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ value = udev_device_get_sysattr_value(device, "size");
|
||||
+ if (value && *value)
|
||||
+ sysfs->size = (size_t)atoll(value);
|
||||
+
|
||||
+ value = udev_device_get_sysattr_value(device, "removable");
|
||||
+ if (value && *value != '0') {
|
||||
+ *flags |= DISK_REMOVABLE;
|
||||
+
|
||||
+ if ((ret = flush_cache_ext(sysfs))) {
|
||||
+ if (ret < 0)
|
||||
+ goto next;
|
||||
+ *flags |= DISK_EXTFLUSH;
|
||||
+ }
|
||||
+ goto out; /* Removable disk like USB stick */
|
||||
+ }
|
||||
+
|
||||
+ value = udev_device_get_sysname(device);
|
||||
+ if (value && *value == 'h') {
|
||||
+ *flags |= DISK_IS_IDE;
|
||||
+
|
||||
+ if ((ret = flush_cache_ext(sysfs))) {
|
||||
+ if (ret < 0)
|
||||
+ goto next;
|
||||
+ *flags |= DISK_EXTFLUSH;
|
||||
+ }
|
||||
+ goto out; /* IDE disk found */
|
||||
+ }
|
||||
+
|
||||
+ value = udev_device_get_sysattr_value(parent, "vendor");
|
||||
+ if (value && strncmp(value, "ATA", 3) == 0) {
|
||||
+ *flags |= (DISK_IS_IDE|DISK_IS_SATA);
|
||||
+
|
||||
+ if ((ret = flush_cache_ext(sysfs))) {
|
||||
+ if (ret < 0)
|
||||
+ goto next;
|
||||
+ *flags |= DISK_EXTFLUSH;
|
||||
+ }
|
||||
+ goto out; /* SATA disk to shutdown */
|
||||
+ }
|
||||
+ goto next;
|
||||
+ }
|
||||
+out:
|
||||
+ udev_device_unref(device);
|
||||
+empty:
|
||||
+ return sysfs->devnode;
|
||||
+}
|
||||
+#ifndef LIST_DEBUG
|
||||
+/*
|
||||
+ * Check IDE/(S)ATA hard disk identity for
|
||||
+ * the FLUSH CACHE EXT bit set.
|
||||
+ */
|
||||
+static int flush_cache_ext(const struct sysfs *sysfs)
|
||||
+{
|
||||
+#ifndef WIN_IDENTIFY
|
||||
+#define WIN_IDENTIFY 0xEC
|
||||
+#endif
|
||||
+ unsigned char args[4+IDBYTES];
|
||||
+ unsigned short *id = (unsigned short*)(&args[4]);
|
||||
+ int fd = -1, ret = 0;
|
||||
+
|
||||
+ if (sysfs->size < (1<<28))
|
||||
+ goto out; /* small disk */
|
||||
+
|
||||
+ if ((fd = open(sysfs->devnode, O_RDONLY|O_NONBLOCK|O_CLOEXEC)) < 0)
|
||||
+ goto out;
|
||||
+
|
||||
+ memset(&args[0], 0, sizeof(args));
|
||||
+ args[0] = WIN_IDENTIFY;
|
||||
+ args[3] = 1;
|
||||
+ if (ioctl(fd, HDIO_DRIVE_CMD, &args))
|
||||
+ goto out;
|
||||
+#ifdef WORDS_BIGENDIAN
|
||||
+# if 0
|
||||
+ {
|
||||
+ const unsigned short *end = id + IDBYTES/2;
|
||||
+ const unsigned short *from = id;
|
||||
+ unsigned short *to = id;
|
||||
+
|
||||
+ while (from < end)
|
||||
+ *to++ = bswap_16(*from++);
|
||||
+ }
|
||||
+# else
|
||||
+ id[83] = bswap_16(id[83]);
|
||||
+# endif
|
||||
+#endif
|
||||
+ if ((id[83] & MASK_EXT) == TEST_EXT)
|
||||
+ ret = 1;
|
||||
+out:
|
||||
+ if (fd >= 0)
|
||||
+ close(fd);
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Put an IDE/SCSI/SATA disk in standby mode.
|
||||
+ * Code stolen from hdparm.c
|
||||
+ */
|
||||
+static int do_standby_disk(struct sysfs *sysfs, unsigned int flags)
|
||||
+{
|
||||
+#ifndef WIN_STANDBYNOW1
|
||||
+#define WIN_STANDBYNOW1 0xE0
|
||||
+#endif
|
||||
+#ifndef WIN_STANDBYNOW2
|
||||
+#define WIN_STANDBYNOW2 0x94
|
||||
+#endif
|
||||
+#ifndef WIN_FLUSH_CACHE_EXT
|
||||
+#define WIN_FLUSH_CACHE_EXT 0xEA
|
||||
+#endif
|
||||
+#ifndef WIN_FLUSH_CACHE
|
||||
+#define WIN_FLUSH_CACHE 0xE7
|
||||
+#endif
|
||||
+ unsigned char flush1[4] = {WIN_FLUSH_CACHE_EXT,0,0,0};
|
||||
+ unsigned char flush2[4] = {WIN_FLUSH_CACHE,0,0,0};
|
||||
+ unsigned char stdby1[4] = {WIN_STANDBYNOW1,0,0,0};
|
||||
+ unsigned char stdby2[4] = {WIN_STANDBYNOW2,0,0,0};
|
||||
+ int fd, ret;
|
||||
+
|
||||
+ if ((fd = open(sysfs->devnode, O_RDWR|O_NONBLOCK|O_CLOEXEC)) < 0)
|
||||
+ return -1;
|
||||
+
|
||||
+ switch (flags & DISK_EXTFLUSH) {
|
||||
+ case DISK_EXTFLUSH:
|
||||
+ if ((ret = ioctl(fd, HDIO_DRIVE_CMD, &flush1)) == 0)
|
||||
+ break;
|
||||
+ /* Extend flush rejected, try standard flush */
|
||||
+ default:
|
||||
+ ret = ioctl(fd, HDIO_DRIVE_CMD, &flush2) &&
|
||||
+ ioctl(fd, BLKFLSBUF);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ if ((flags & DISK_FLUSHONLY) == 0x0) {
|
||||
+ ret = ioctl(fd, HDIO_DRIVE_CMD, &stdby1) &&
|
||||
+ ioctl(fd, HDIO_DRIVE_CMD, &stdby2);
|
||||
+ }
|
||||
+
|
||||
+ close(fd);
|
||||
+
|
||||
+ if (ret)
|
||||
+ return -1;
|
||||
+ return 0;
|
||||
+}
|
||||
+#endif
|
||||
+#ifdef LIST_DEBUG
|
||||
+int main()
|
||||
+{
|
||||
+ char *disk;
|
||||
+ unsigned int flags;
|
||||
+ struct sysfs *sysfs = open_sysfs();
|
||||
+ if (!sysfs)
|
||||
+ goto err;
|
||||
+ while ((disk = list_disks(sysfs, &flags)))
|
||||
+ fprintf(stdout, "%s\n", sysfs->devnode);
|
||||
+ close_sysfs(sysfs);
|
||||
+err:
|
||||
+ return 0;
|
||||
+}
|
||||
+#else
|
||||
+/*
|
||||
+ * List all disks and put them in standby mode.
|
||||
+ * This has the side-effect of flushing the writecache,
|
||||
+ * which is exactly what we want on poweroff.
|
||||
+ */
|
||||
+void hddown(void)
|
||||
+{
|
||||
+ struct sysfs *sysfs;
|
||||
+ unsigned int flags;
|
||||
+ char *disk;
|
||||
+
|
||||
+ if (!(sysfs = open_sysfs()))
|
||||
+ return;
|
||||
+
|
||||
+ while ((disk = list_disks(sysfs, &flags)))
|
||||
+ do_standby_disk(sysfs, flags);
|
||||
+
|
||||
+ close_sysfs(sysfs);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * List all disks and cause them to flush their buffers.
|
||||
+ */
|
||||
+void hdflush(void)
|
||||
+{
|
||||
+ struct sysfs *sysfs;
|
||||
+ unsigned int flags;
|
||||
+ char *disk;
|
||||
+
|
||||
+ if (!(sysfs = open_sysfs()))
|
||||
+ return;
|
||||
+
|
||||
+ while ((disk = list_disks(sysfs, &flags)))
|
||||
+ do_standby_disk(sysfs, (flags|DISK_FLUSHONLY));
|
||||
+
|
||||
+ close_sysfs(sysfs);
|
||||
+}
|
||||
+#endif
|
||||
--- systemd-208/src/shared/hdflush.h
|
||||
+++ systemd-208/src/shared/hdflush.h 2014-01-28 11:00:08.286235696 +0000
|
||||
@@ -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/>.
|
||||
+***/
|
||||
+
|
||||
+void hdflush(void);
|
||||
+void hddown(void);
|
||||
--- systemd-208/src/core/shutdown.c
|
||||
+++ systemd-208/src/core/shutdown.c 2014-01-28 11:14:15.722235591 +0000
|
||||
@@ -40,6 +40,7 @@
|
||||
#include "missing.h"
|
||||
#include "log.h"
|
||||
#include "fileio.h"
|
||||
+#include "hdflush.h"
|
||||
#include "umount.h"
|
||||
#include "util.h"
|
||||
#include "mkdir.h"
|
||||
@@ -302,8 +303,13 @@ int main(int argc, char *argv[]) {
|
||||
* on reboot(), but the file systems need to be synce'd
|
||||
* explicitly in advance. So let's do this here, but not
|
||||
* needlessly slow down containers. */
|
||||
- if (!in_container)
|
||||
+ if (!in_container) {
|
||||
sync();
|
||||
+ if (cmd == RB_POWER_OFF || cmd == RB_HALT_SYSTEM)
|
||||
+ hddown();
|
||||
+ else
|
||||
+ hdflush();
|
||||
+ }
|
||||
|
||||
if (cmd == LINUX_REBOOT_CMD_KEXEC) {
|
||||
|
||||
--- systemd-208/src/systemctl/systemctl.c
|
||||
+++ systemd-208/src/systemctl/systemctl.c 2014-01-28 11:31:27.150735613 +0000
|
||||
@@ -87,6 +87,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;
|
||||
@@ -5272,6 +5273,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 },
|
||||
{ NULL, 0, NULL, 0 }
|
||||
@@ -5324,10 +5326,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;
|
||||
|
||||
@@ -5981,14 +5986,14 @@ static int halt_now(enum action a) {
|
||||
|
||||
switch (a) {
|
||||
|
||||
- case ACTION_HALT:
|
||||
- log_info("Halting.");
|
||||
- reboot(RB_HALT_SYSTEM);
|
||||
- return -errno;
|
||||
-
|
||||
case ACTION_POWEROFF:
|
||||
log_info("Powering off.");
|
||||
reboot(RB_POWER_OFF);
|
||||
+ /* Fall through */
|
||||
+
|
||||
+ case ACTION_HALT:
|
||||
+ log_info("Halting.");
|
||||
+ reboot(RB_HALT_SYSTEM);
|
||||
return -errno;
|
||||
|
||||
case ACTION_REBOOT:
|
90
0001-analyze-set-text-on-side-with-most-space.patch
Normal file
90
0001-analyze-set-text-on-side-with-most-space.patch
Normal file
@ -0,0 +1,90 @@
|
||||
From 95168f7d55181475946ad93db30255c4d709df03 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
|
||||
Date: Fri, 01 Nov 2013 21:57:47 +0000
|
||||
Subject: analyze: plot: place the text on the side with most space
|
||||
|
||||
Set the width of the svg to always fit the longest string
|
||||
while taking its starting position into consideration.
|
||||
|
||||
Place the text on the right while the starting point is
|
||||
in the first half of the screen. After that we put it on
|
||||
the left to save the svg from being wider that it has to.
|
||||
---
|
||||
diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c
|
||||
index 6bfe13d..8730723 100644
|
||||
--- a/src/analyze/systemd-analyze.c
|
||||
+++ b/src/analyze/systemd-analyze.c
|
||||
@@ -509,7 +509,7 @@ static int analyze_plot(sd_bus *bus) {
|
||||
m++;
|
||||
|
||||
for (u = times; u < times + n; u++) {
|
||||
- double len;
|
||||
+ double text_start, text_width;
|
||||
|
||||
if (u->ixt < boot->userspace_time ||
|
||||
u->ixt > boot->finish_time) {
|
||||
@@ -517,10 +517,14 @@ static int analyze_plot(sd_bus *bus) {
|
||||
u->name = NULL;
|
||||
continue;
|
||||
}
|
||||
- len = ((boot->firmware_time + u->ixt) * SCALE_X)
|
||||
- + (10.0 * strlen(u->name));
|
||||
- if (len > width)
|
||||
- width = len;
|
||||
+
|
||||
+ /* If the text cannot fit on the left side then
|
||||
+ * increase the svg width so it fits on the right.
|
||||
+ * TODO: calculate the text width more accurately */
|
||||
+ text_width = 8.0 * strlen(u->name);
|
||||
+ text_start = (boot->firmware_time + u->ixt) * SCALE_X;
|
||||
+ if (text_width > text_start && text_width + text_start > width)
|
||||
+ width = text_width + text_start;
|
||||
|
||||
if (u->iet > u->ixt && u->iet <= boot->finish_time
|
||||
&& u->aet == 0 && u->axt == 0)
|
||||
@@ -608,7 +612,7 @@ static int analyze_plot(sd_bus *bus) {
|
||||
svg_bar("active", boot->userspace_time, boot->finish_time, y);
|
||||
svg_bar("generators", boot->generators_start_time, boot->generators_finish_time, y);
|
||||
svg_bar("unitsload", boot->unitsload_start_time, boot->unitsload_finish_time, y);
|
||||
- svg_text("left", boot->userspace_time, y, "systemd");
|
||||
+ svg_text(true, boot->userspace_time, y, "systemd");
|
||||
y++;
|
||||
|
||||
for (u = times; u < times + n; u++) {
|
||||
@@ -622,7 +626,8 @@ static int analyze_plot(sd_bus *bus) {
|
||||
svg_bar("active", u->aet, u->axt, y);
|
||||
svg_bar("deactivating", u->axt, u->iet, y);
|
||||
|
||||
- b = u->ixt * SCALE_X > width * 2 / 3;
|
||||
+ /* place the text on the left if we have passed the half of the svg width */
|
||||
+ b = u->ixt * SCALE_X < width / 2;
|
||||
if (u->time)
|
||||
svg_text(b, u->ixt, y, "%s (%s)",
|
||||
u->name, format_timespan(ts, sizeof(ts), u->time, USEC_PER_MSEC));
|
||||
@@ -634,19 +639,19 @@ static int analyze_plot(sd_bus *bus) {
|
||||
/* Legend */
|
||||
y++;
|
||||
svg_bar("activating", 0, 300000, y);
|
||||
- svg_text("right", 400000, y, "Activating");
|
||||
+ svg_text(true, 400000, y, "Activating");
|
||||
y++;
|
||||
svg_bar("active", 0, 300000, y);
|
||||
- svg_text("right", 400000, y, "Active");
|
||||
+ svg_text(true, 400000, y, "Active");
|
||||
y++;
|
||||
svg_bar("deactivating", 0, 300000, y);
|
||||
- svg_text("right", 400000, y, "Deactivating");
|
||||
+ svg_text(true, 400000, y, "Deactivating");
|
||||
y++;
|
||||
svg_bar("generators", 0, 300000, y);
|
||||
- svg_text("right", 400000, y, "Generators");
|
||||
+ svg_text(true, 400000, y, "Generators");
|
||||
y++;
|
||||
svg_bar("unitsload", 0, 300000, y);
|
||||
- svg_text("right", 400000, y, "Loading unit files");
|
||||
+ svg_text(true, 400000, y, "Loading unit files");
|
||||
y++;
|
||||
|
||||
svg("</g>\n\n");
|
||||
--
|
||||
cgit v0.9.0.2-2-gbebe
|
32
0001-analyze-set-white-background.patch
Normal file
32
0001-analyze-set-white-background.patch
Normal file
@ -0,0 +1,32 @@
|
||||
From 418e37506e6a419a808a82081ca1616caa03a206 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
|
||||
Date: Mon, 21 Oct 2013 19:29:23 +0000
|
||||
Subject: analyze: set white backgound
|
||||
|
||||
In programs like eog and gimp the transparant background did not
|
||||
look very good.
|
||||
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=70720
|
||||
---
|
||||
diff --git a/src/analyze/systemd-analyze.c b/src/analyze/systemd-analyze.c
|
||||
index 26769d6..0cc4de7 100644
|
||||
--- a/src/analyze/systemd-analyze.c
|
||||
+++ b/src/analyze/systemd-analyze.c
|
||||
@@ -507,6 +507,7 @@ static int analyze_plot(DBusConnection *bus) {
|
||||
/* style sheet */
|
||||
svg("<defs>\n <style type=\"text/css\">\n <![CDATA[\n"
|
||||
" rect { stroke-width: 1; stroke-opacity: 0; }\n"
|
||||
+ " rect.background { fill: rgb(255,255,255); }\n"
|
||||
" rect.activating { fill: rgb(255,0,0); fill-opacity: 0.7; }\n"
|
||||
" rect.active { fill: rgb(200,150,150); fill-opacity: 0.7; }\n"
|
||||
" rect.deactivating { fill: rgb(150,100,100); fill-opacity: 0.7; }\n"
|
||||
@@ -528,6 +529,7 @@ static int analyze_plot(DBusConnection *bus) {
|
||||
" text.sec { font-size: 10px; }\n"
|
||||
" ]]>\n </style>\n</defs>\n\n");
|
||||
|
||||
+ svg("<rect class=\"background\" width=\"100%%\" height=\"100%%\" />\n");
|
||||
svg("<text x=\"20\" y=\"50\">%s</text>", pretty_times);
|
||||
svg("<text x=\"20\" y=\"30\">%s %s (%s %s) %s</text>",
|
||||
isempty(osname) ? "Linux" : osname,
|
||||
--
|
||||
cgit v0.9.0.2-2-gbebe
|
@ -1,27 +0,0 @@
|
||||
From 8d7b5ca0a6cdab3e400ef084fa8a05d581d59b55 Mon Sep 17 00:00:00 2001
|
||||
From: Gao feng <gaofeng@cn.fujitsu.com>
|
||||
Date: Fri, 13 Sep 2013 11:17:05 +0800
|
||||
Subject: [PATCH 1/7] cgroup: add the missing setting of variable's value
|
||||
|
||||
set the value of variable "r" to the return value
|
||||
of cg_set_attribute.
|
||||
---
|
||||
src/core/cgroup.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/core/cgroup.c b/src/core/cgroup.c
|
||||
index 3eeb475..fba0b2f 100644
|
||||
--- a/src/core/cgroup.c
|
||||
+++ b/src/core/cgroup.c
|
||||
@@ -264,7 +264,7 @@ void cgroup_context_apply(CGroupContext *c, CGroupControllerMask mask, const cha
|
||||
log_error("Failed to set memory.limit_in_bytes on %s: %s", path, strerror(-r));
|
||||
|
||||
sprintf(buf, "%" PRIu64 "\n", c->memory_soft_limit);
|
||||
- cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", buf);
|
||||
+ r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", buf);
|
||||
if (r < 0)
|
||||
log_error("Failed to set memory.limit_in_bytes on %s: %s", path, strerror(-r));
|
||||
}
|
||||
--
|
||||
1.8.1.4
|
||||
|
225
0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch
Normal file
225
0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch
Normal file
@ -0,0 +1,225 @@
|
||||
From 6fa7e1a944a2dbb89e794ad0f9da5d0fda5dc4a9 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 29 Jan 2014 13:38:55 +0100
|
||||
Subject: [PATCH 1/3] core: introduce new KillMode=mixed which sends SIGTERM
|
||||
only to the main process, but SIGKILL to all daemon processes
|
||||
|
||||
This should fix some race with terminating systemd --user, where the
|
||||
system systemd instance might race against the user systemd instance
|
||||
when sending SIGTERM.
|
||||
---
|
||||
man/systemd.kill.xml | 77 +++++++++++++++++++++++++++++++++-----------------
|
||||
src/core/kill.c | 1 +
|
||||
src/core/kill.h | 1 +
|
||||
src/core/unit.c | 3 +-
|
||||
units/user@.service.in | 1 +
|
||||
5 files changed, 56 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/man/systemd.kill.xml b/man/systemd.kill.xml
|
||||
index 1b10fba..a4009aa 100644
|
||||
--- a/man/systemd.kill.xml
|
||||
+++ b/man/systemd.kill.xml
|
||||
@@ -44,39 +44,44 @@
|
||||
|
||||
<refnamediv>
|
||||
<refname>systemd.kill</refname>
|
||||
- <refpurpose>Kill environment configuration</refpurpose>
|
||||
+ <refpurpose>Process killing procedure
|
||||
+ configuration</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<para><filename><replaceable>service</replaceable>.service</filename>,
|
||||
<filename><replaceable>socket</replaceable>.socket</filename>,
|
||||
<filename><replaceable>mount</replaceable>.mount</filename>,
|
||||
- <filename><replaceable>swap</replaceable>.swap</filename></para>
|
||||
+ <filename><replaceable>swap</replaceable>.swap</filename>,
|
||||
+ <filename><replaceable>scope</replaceable>.scope</filename></para>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>Unit configuration files for services, sockets,
|
||||
- mount points and swap devices share a subset of
|
||||
- configuration options which define the process killing
|
||||
- parameters of spawned processes.</para>
|
||||
+ mount points, swap devices and scopes share a subset
|
||||
+ of configuration options which define the
|
||||
+ killing procedure of processes belonging to the unit.</para>
|
||||
|
||||
<para>This man page lists the configuration options
|
||||
- shared by these four unit types. See
|
||||
+ shared by these five unit types. See
|
||||
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
- for the common options of all unit configuration
|
||||
- files, and
|
||||
+ for the common options shared by all unit
|
||||
+ configuration files, and
|
||||
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
- <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
- and
|
||||
+ <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
- for more information on the specific unit
|
||||
- configuration files. The execution specific
|
||||
+ and
|
||||
+ <citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
+ for more information on the configuration file options
|
||||
+ specific to each unit type.</para>
|
||||
+
|
||||
+ <para>The kill procedure
|
||||
configuration options are configured in the [Service],
|
||||
- [Socket], [Mount], or [Swap] section, depending on the unit
|
||||
- type.</para>
|
||||
+ [Socket], [Mount] or [Swap] section, depending on the
|
||||
+ unit type.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
@@ -87,32 +92,40 @@
|
||||
<varlistentry>
|
||||
<term><varname>KillMode=</varname></term>
|
||||
<listitem><para>Specifies how
|
||||
- processes of this service shall be
|
||||
+ processes of this unit shall be
|
||||
killed. One of
|
||||
<option>control-group</option>,
|
||||
<option>process</option>,
|
||||
+ <option>mixed</option>,
|
||||
<option>none</option>.</para>
|
||||
|
||||
<para>If set to
|
||||
<option>control-group</option>, all
|
||||
remaining processes in the control
|
||||
- group of this unit will be terminated
|
||||
- on unit stop (for services: after the
|
||||
+ group of this unit will be killed on
|
||||
+ unit stop (for services: after the
|
||||
stop command is executed, as
|
||||
configured with
|
||||
<varname>ExecStop=</varname>). If set
|
||||
to <option>process</option>, only the
|
||||
main process itself is killed. If set
|
||||
- to <option>none</option>, no process is
|
||||
+ to <option>mixed</option> the
|
||||
+ <constant>SIGTERM</constant> signal
|
||||
+ (see below) is sent to the main
|
||||
+ process while the subsequent
|
||||
+ <constant>SIGKILL</constant> signal
|
||||
+ (see below) is sent to all remaining
|
||||
+ processes of the unit's control
|
||||
+ group. If set to
|
||||
+ <option>none</option>, no process is
|
||||
killed. In this case only the stop
|
||||
- command will be executed on unit
|
||||
- stop, but no process be killed
|
||||
+ command will be executed on unit stop,
|
||||
+ but no process be killed
|
||||
otherwise. Processes remaining alive
|
||||
after stop are left in their control
|
||||
group and the control group continues
|
||||
to exist after stop unless it is
|
||||
- empty. Defaults to
|
||||
- <option>control-group</option>.</para>
|
||||
+ empty.</para>
|
||||
|
||||
<para>Processes will first be
|
||||
terminated via
|
||||
@@ -133,14 +146,24 @@
|
||||
option). See
|
||||
<citerefentry><refentrytitle>kill</refentrytitle><manvolnum>2</manvolnum></citerefentry>
|
||||
for more
|
||||
- information.</para></listitem>
|
||||
+ information.</para>
|
||||
+
|
||||
+ <para>Defaults to
|
||||
+ <option>control-group</option>.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>KillSignal=</varname></term>
|
||||
<listitem><para>Specifies which signal
|
||||
- to use when killing a
|
||||
- service. Defaults to <constant>SIGTERM</constant>.
|
||||
+ to use when killing a service. This
|
||||
+ controls the signal that is sent as
|
||||
+ first step of shutting down a unit
|
||||
+ (see above), and is usually followed
|
||||
+ by <constant>SIGKILL</constant> (see
|
||||
+ above and below). For a list of valid
|
||||
+ signals, see
|
||||
+ <citerefentry><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry>. Defaults
|
||||
+ to <constant>SIGTERM</constant>.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
@@ -184,7 +207,9 @@
|
||||
<citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
- <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
|
||||
+ <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
|
||||
+ <citerefentry><refentrytitle>kill</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
|
||||
+ <citerefentry><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/src/core/kill.c b/src/core/kill.c
|
||||
index ea947c2..4271346 100644
|
||||
--- a/src/core/kill.c
|
||||
+++ b/src/core/kill.c
|
||||
@@ -52,6 +52,7 @@ void kill_context_dump(KillContext *c, FILE *f, const char *prefix) {
|
||||
static const char* const kill_mode_table[_KILL_MODE_MAX] = {
|
||||
[KILL_CONTROL_GROUP] = "control-group",
|
||||
[KILL_PROCESS] = "process",
|
||||
+ [KILL_MIXED] = "mixed",
|
||||
[KILL_NONE] = "none"
|
||||
};
|
||||
|
||||
diff --git a/src/core/kill.h b/src/core/kill.h
|
||||
index 41773f0..d5f125f 100644
|
||||
--- a/src/core/kill.h
|
||||
+++ b/src/core/kill.h
|
||||
@@ -32,6 +32,7 @@ typedef enum KillMode {
|
||||
/* The kill mode is a property of a unit. */
|
||||
KILL_CONTROL_GROUP = 0,
|
||||
KILL_PROCESS,
|
||||
+ KILL_MIXED,
|
||||
KILL_NONE,
|
||||
_KILL_MODE_MAX,
|
||||
_KILL_MODE_INVALID = -1
|
||||
diff --git a/src/core/unit.c b/src/core/unit.c
|
||||
index 4b97710..0b10e57 100644
|
||||
--- a/src/core/unit.c
|
||||
+++ b/src/core/unit.c
|
||||
@@ -3007,7 +3007,7 @@ int unit_kill_context(
|
||||
}
|
||||
}
|
||||
|
||||
- if (c->kill_mode == KILL_CONTROL_GROUP && u->cgroup_path) {
|
||||
+ if ((c->kill_mode == KILL_CONTROL_GROUP || (c->kill_mode == KILL_MIXED && sigkill)) && u->cgroup_path) {
|
||||
_cleanup_set_free_ Set *pid_set = NULL;
|
||||
|
||||
/* Exclude the main/control pids from being killed via the cgroup */
|
||||
@@ -3021,6 +3021,7 @@ int unit_kill_context(
|
||||
log_warning_unit(u->id, "Failed to kill control group: %s", strerror(-r));
|
||||
} else if (r > 0) {
|
||||
wait_for_exit = true;
|
||||
+
|
||||
if (c->send_sighup) {
|
||||
set_free(pid_set);
|
||||
|
||||
diff --git a/units/user@.service.in b/units/user@.service.in
|
||||
index 3718a57..3bb8696 100644
|
||||
--- a/units/user@.service.in
|
||||
+++ b/units/user@.service.in
|
||||
@@ -17,3 +17,4 @@ Environment=SHELL=%s
|
||||
ExecStart=-@rootlibexecdir@/systemd --user
|
||||
Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%I/dbus/user_bus_socket
|
||||
Slice=user-%i.slice
|
||||
+KillMode=mixed
|
||||
--
|
||||
1.8.4
|
||||
|
329
0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch
Normal file
329
0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch
Normal file
@ -0,0 +1,329 @@
|
||||
From d420282b28f50720e233ccb1c02547c562195653 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Tue, 26 Nov 2013 01:39:53 +0100
|
||||
Subject: [PATCH] core: replace OnFailureIsolate= setting by a more generic
|
||||
OnFailureJobMode= setting and make use of it where applicable
|
||||
|
||||
---
|
||||
man/systemd.unit.xml | 40 +++++++++++++++++++++++++----------
|
||||
src/core/dbus-unit.c | 3 ++-
|
||||
src/core/job.h | 3 +--
|
||||
src/core/load-fragment-gperf.gperf.m4 | 3 ++-
|
||||
src/core/load-fragment.c | 31 +++++++++++++++++++++++++++
|
||||
src/core/load-fragment.h | 2 ++
|
||||
src/core/unit.c | 11 +++++-----
|
||||
src/core/unit.h | 4 ++--
|
||||
units/initrd-cleanup.service.in | 1 +
|
||||
units/initrd-fs.target | 2 +-
|
||||
units/initrd-parse-etc.service.in | 1 +
|
||||
units/initrd-root-fs.target | 2 +-
|
||||
units/initrd-switch-root.service.in | 1 +
|
||||
units/initrd.target | 2 +-
|
||||
units/local-fs.target | 2 +-
|
||||
15 files changed, 82 insertions(+), 26 deletions(-)
|
||||
|
||||
Index: systemd-208/man/systemd.unit.xml
|
||||
===================================================================
|
||||
--- systemd-208.orig/man/systemd.unit.xml
|
||||
+++ systemd-208/man/systemd.unit.xml
|
||||
@@ -669,19 +669,37 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
- <term><varname>OnFailureIsolate=</varname></term>
|
||||
+ <term><varname>OnFailureJobMode=</varname></term>
|
||||
|
||||
- <listitem><para>Takes a boolean
|
||||
- argument. If <option>true</option>, the
|
||||
- unit listed in
|
||||
+ <listitem><para>Takes a value of
|
||||
+ <literal>fail</literal>,
|
||||
+ <literal>replace</literal>,
|
||||
+ <literal>replace-irreversibly</literal>
|
||||
+ or
|
||||
+ <literal>isolate</literal>. Defaults
|
||||
+ to
|
||||
+ <literal>replace</literal>. Specifies
|
||||
+ how the units listed in
|
||||
<varname>OnFailure=</varname> will be
|
||||
- enqueued in isolation mode, i.e. all
|
||||
- units that are not its dependency will
|
||||
- be stopped. If this is set, only a
|
||||
+ enqueued. If set to
|
||||
+ <literal>fail</literal> and
|
||||
+ contradicting jobs are already queued,
|
||||
+ cause the activation to fail. If set
|
||||
+ to <literal>replace</literal> and
|
||||
+ contradicting jobs area already
|
||||
+ queued, replace
|
||||
+ those. <literal>replace-irreversibly</literal>
|
||||
+ is similar to
|
||||
+ <literal>replace</literal>, however,
|
||||
+ creates jobs that cannot be reversed
|
||||
+ unless they finished or are explicitly
|
||||
+ canceled. <literal>isolate</literal>
|
||||
+ may be used to terminate all other
|
||||
+ units but the specified one. If
|
||||
+ this is set to
|
||||
+ <literal>isolate</literal>, only a
|
||||
single unit may be listed in
|
||||
- <varname>OnFailure=</varname>. Defaults
|
||||
- to
|
||||
- <option>false</option>.</para></listitem>
|
||||
+ <varname>OnFailure=</varname>..</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
Index: systemd-208/src/core/dbus-unit.c
|
||||
===================================================================
|
||||
--- systemd-208.orig/src/core/dbus-unit.c
|
||||
+++ systemd-208/src/core/dbus-unit.c
|
||||
@@ -133,6 +133,7 @@ static int bus_unit_append_description(D
|
||||
}
|
||||
|
||||
static DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_unit_append_load_state, unit_load_state, UnitLoadState);
|
||||
+static DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_unit_append_job_mode, job_mode, JobMode);
|
||||
|
||||
static int bus_unit_append_active_state(DBusMessageIter *i, const char *property, void *data) {
|
||||
Unit *u = data;
|
||||
@@ -1079,7 +1080,7 @@ const BusProperty bus_unit_properties[]
|
||||
{ "RefuseManualStop", bus_property_append_bool, "b", offsetof(Unit, refuse_manual_stop) },
|
||||
{ "AllowIsolate", bus_property_append_bool, "b", offsetof(Unit, allow_isolate) },
|
||||
{ "DefaultDependencies", bus_property_append_bool, "b", offsetof(Unit, default_dependencies) },
|
||||
- { "OnFailureIsolate", bus_property_append_bool, "b", offsetof(Unit, on_failure_isolate) },
|
||||
+ { "OnFailureJobMode", bus_unit_append_job_mode, "s", offsetof(Unit, on_failure_job_mode) },
|
||||
{ "IgnoreOnIsolate", bus_property_append_bool, "b", offsetof(Unit, ignore_on_isolate) },
|
||||
{ "IgnoreOnSnapshot", bus_property_append_bool, "b", offsetof(Unit, ignore_on_snapshot) },
|
||||
{ "NeedDaemonReload", bus_unit_append_need_daemon_reload, "b", 0 },
|
||||
Index: systemd-208/src/core/job.h
|
||||
===================================================================
|
||||
--- systemd-208.orig/src/core/job.h
|
||||
+++ systemd-208/src/core/job.h
|
||||
@@ -83,7 +83,7 @@ enum JobState {
|
||||
enum JobMode {
|
||||
JOB_FAIL, /* Fail if a conflicting job is already queued */
|
||||
JOB_REPLACE, /* Replace an existing conflicting job */
|
||||
- JOB_REPLACE_IRREVERSIBLY, /* Like JOB_REPLACE + produce irreversible jobs */
|
||||
+ JOB_REPLACE_IRREVERSIBLY,/* Like JOB_REPLACE + produce irreversible jobs */
|
||||
JOB_ISOLATE, /* Start a unit, and stop all others */
|
||||
JOB_IGNORE_DEPENDENCIES, /* Ignore both requirement and ordering dependencies */
|
||||
JOB_IGNORE_REQUIREMENTS, /* Ignore requirement dependencies */
|
||||
Index: systemd-208/src/core/load-fragment-gperf.gperf.m4
|
||||
===================================================================
|
||||
--- systemd-208.orig/src/core/load-fragment-gperf.gperf.m4
|
||||
+++ systemd-208/src/core/load-fragment-gperf.gperf.m4
|
||||
@@ -122,7 +122,8 @@ Unit.RefuseManualStart, config_
|
||||
Unit.RefuseManualStop, config_parse_bool, 0, offsetof(Unit, refuse_manual_stop)
|
||||
Unit.AllowIsolate, config_parse_bool, 0, offsetof(Unit, allow_isolate)
|
||||
Unit.DefaultDependencies, config_parse_bool, 0, offsetof(Unit, default_dependencies)
|
||||
-Unit.OnFailureIsolate, config_parse_bool, 0, offsetof(Unit, on_failure_isolate)
|
||||
+Unit.OnFailureJobMode, config_parse_job_mode, 0, offsetof(Unit, on_failure_job_mode)
|
||||
+Unit.OnFailureIsolate, config_parse_job_mode_isolate, 0, offsetof(Unit, on_failure_job_mode)
|
||||
Unit.IgnoreOnIsolate, config_parse_bool, 0, offsetof(Unit, ignore_on_isolate)
|
||||
Unit.IgnoreOnSnapshot, config_parse_bool, 0, offsetof(Unit, ignore_on_snapshot)
|
||||
Unit.JobTimeoutSec, config_parse_sec, 0, offsetof(Unit, job_timeout)
|
||||
Index: systemd-208/src/core/load-fragment.c
|
||||
===================================================================
|
||||
--- systemd-208.orig/src/core/load-fragment.c
|
||||
+++ systemd-208/src/core/load-fragment.c
|
||||
@@ -2314,6 +2314,36 @@ int config_parse_blockio_bandwidth(
|
||||
return 0;
|
||||
}
|
||||
|
||||
+DEFINE_CONFIG_PARSE_ENUM(config_parse_job_mode, job_mode, JobMode, "Failed to parse job mode");
|
||||
+
|
||||
+int config_parse_job_mode_isolate(
|
||||
+ const char *unit,
|
||||
+ const char *filename,
|
||||
+ unsigned line,
|
||||
+ const char *section,
|
||||
+ const char *lvalue,
|
||||
+ int ltype,
|
||||
+ const char *rvalue,
|
||||
+ void *data,
|
||||
+ void *userdata) {
|
||||
+
|
||||
+ JobMode *m = data;
|
||||
+ int r;
|
||||
+
|
||||
+ assert(filename);
|
||||
+ assert(lvalue);
|
||||
+ assert(rvalue);
|
||||
+
|
||||
+ r = parse_boolean(rvalue);
|
||||
+ if (r < 0) {
|
||||
+ log_syntax(unit, LOG_ERR, filename, line, EINVAL, "Failed to parse boolean, ignoring: %s", rvalue);
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ *m = r ? JOB_ISOLATE : JOB_REPLACE;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
#define FOLLOW_MAX 8
|
||||
|
||||
static int open_follow(char **filename, FILE **_f, Set *names, char **_final) {
|
||||
Index: systemd-208/src/core/load-fragment.h
|
||||
===================================================================
|
||||
--- systemd-208.orig/src/core/load-fragment.h
|
||||
+++ systemd-208/src/core/load-fragment.h
|
||||
@@ -83,6 +83,8 @@ int config_parse_device_allow(const char
|
||||
int config_parse_blockio_weight(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
int config_parse_blockio_device_weight(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
int config_parse_blockio_bandwidth(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
+int config_parse_job_mode(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
+int config_parse_job_mode_isolate(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
|
||||
/* gperf prototypes */
|
||||
const struct ConfigPerfItem* load_fragment_gperf_lookup(const char *key, unsigned length);
|
||||
Index: systemd-208/src/core/unit.c
|
||||
===================================================================
|
||||
--- systemd-208.orig/src/core/unit.c
|
||||
+++ systemd-208/src/core/unit.c
|
||||
@@ -85,6 +85,7 @@ Unit *unit_new(Manager *m, size_t size)
|
||||
u->deserialized_job = _JOB_TYPE_INVALID;
|
||||
u->default_dependencies = true;
|
||||
u->unit_file_state = _UNIT_FILE_STATE_INVALID;
|
||||
+ u->on_failure_job_mode = JOB_REPLACE;
|
||||
|
||||
return u;
|
||||
}
|
||||
@@ -807,14 +808,14 @@ void unit_dump(Unit *u, FILE *f, const c
|
||||
"%s\tRefuseManualStart: %s\n"
|
||||
"%s\tRefuseManualStop: %s\n"
|
||||
"%s\tDefaultDependencies: %s\n"
|
||||
- "%s\tOnFailureIsolate: %s\n"
|
||||
+ "%s\tOnFailureJobMode: %s\n"
|
||||
"%s\tIgnoreOnIsolate: %s\n"
|
||||
"%s\tIgnoreOnSnapshot: %s\n",
|
||||
prefix, yes_no(u->stop_when_unneeded),
|
||||
prefix, yes_no(u->refuse_manual_start),
|
||||
prefix, yes_no(u->refuse_manual_stop),
|
||||
prefix, yes_no(u->default_dependencies),
|
||||
- prefix, yes_no(u->on_failure_isolate),
|
||||
+ prefix, job_mode_to_string(u->on_failure_job_mode),
|
||||
prefix, yes_no(u->ignore_on_isolate),
|
||||
prefix, yes_no(u->ignore_on_snapshot));
|
||||
|
||||
@@ -985,11 +986,11 @@ int unit_load(Unit *u) {
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
|
||||
- if (u->on_failure_isolate &&
|
||||
+ if (u->on_failure_job_mode == JOB_ISOLATE &&
|
||||
set_size(u->dependencies[UNIT_ON_FAILURE]) > 1) {
|
||||
|
||||
log_error_unit(u->id,
|
||||
- "More than one OnFailure= dependencies specified for %s but OnFailureIsolate= enabled. Refusing.", u->id);
|
||||
+ "More than one OnFailure= dependencies specified for %s but OnFailureJobMode=isolate set. Refusing.", u->id);
|
||||
|
||||
r = -EINVAL;
|
||||
goto fail;
|
||||
@@ -1394,7 +1395,7 @@ void unit_start_on_failure(Unit *u) {
|
||||
SET_FOREACH(other, u->dependencies[UNIT_ON_FAILURE], i) {
|
||||
int r;
|
||||
|
||||
- r = manager_add_job(u->manager, JOB_START, other, u->on_failure_isolate ? JOB_ISOLATE : JOB_REPLACE, true, NULL, NULL);
|
||||
+ r = manager_add_job(u->manager, JOB_START, other, u->on_failure_job_mode, true, NULL, NULL);
|
||||
if (r < 0)
|
||||
log_error_unit(u->id, "Failed to enqueue OnFailure= job: %s", strerror(-r));
|
||||
}
|
||||
Index: systemd-208/src/core/unit.h
|
||||
===================================================================
|
||||
--- systemd-208.orig/src/core/unit.h
|
||||
+++ systemd-208/src/core/unit.h
|
||||
@@ -228,8 +228,8 @@ struct Unit {
|
||||
/* Allow isolation requests */
|
||||
bool allow_isolate;
|
||||
|
||||
- /* Isolate OnFailure unit */
|
||||
- bool on_failure_isolate;
|
||||
+ /* How to start OnFailure units */
|
||||
+ JobMode on_failure_job_mode;
|
||||
|
||||
/* Ignore this unit when isolating */
|
||||
bool ignore_on_isolate;
|
||||
Index: systemd-208/units/initrd-cleanup.service.in
|
||||
===================================================================
|
||||
--- systemd-208.orig/units/initrd-cleanup.service.in
|
||||
+++ systemd-208/units/initrd-cleanup.service.in
|
||||
@@ -10,6 +10,7 @@ Description=Cleaning Up and Shutting Dow
|
||||
DefaultDependencies=no
|
||||
ConditionPathExists=/etc/initrd-release
|
||||
OnFailure=emergency.target
|
||||
+OnFailureJobMode=replace-irreversibly
|
||||
After=initrd-root-fs.target initrd-fs.target initrd.target
|
||||
|
||||
[Service]
|
||||
Index: systemd-208/units/initrd-fs.target
|
||||
===================================================================
|
||||
--- systemd-208.orig/units/initrd-fs.target
|
||||
+++ systemd-208/units/initrd-fs.target
|
||||
@@ -9,7 +9,7 @@
|
||||
Description=Initrd File Systems
|
||||
Documentation=man:systemd.special(7)
|
||||
OnFailure=emergency.target
|
||||
-OnFailureIsolate=yes
|
||||
+OnFailureJobMode=replace-irreversibly
|
||||
ConditionPathExists=/etc/initrd-release
|
||||
After=initrd-parse-etc.service
|
||||
DefaultDependencies=no
|
||||
Index: systemd-208/units/initrd-parse-etc.service.in
|
||||
===================================================================
|
||||
--- systemd-208.orig/units/initrd-parse-etc.service.in
|
||||
+++ systemd-208/units/initrd-parse-etc.service.in
|
||||
@@ -11,6 +11,7 @@ DefaultDependencies=no
|
||||
Requires=initrd-root-fs.target
|
||||
After=initrd-root-fs.target
|
||||
OnFailure=emergency.target
|
||||
+OnFailureJobMode=replace-irreversibly
|
||||
ConditionPathExists=/etc/initrd-release
|
||||
|
||||
[Service]
|
||||
Index: systemd-208/units/initrd-root-fs.target
|
||||
===================================================================
|
||||
--- systemd-208.orig/units/initrd-root-fs.target
|
||||
+++ systemd-208/units/initrd-root-fs.target
|
||||
@@ -10,6 +10,6 @@ Description=Initrd Root File System
|
||||
Documentation=man:systemd.special(7)
|
||||
ConditionPathExists=/etc/initrd-release
|
||||
OnFailure=emergency.target
|
||||
-OnFailureIsolate=yes
|
||||
+OnFailureJobMode=replace-irreversibly
|
||||
DefaultDependencies=no
|
||||
Conflicts=shutdown.target
|
||||
Index: systemd-208/units/initrd-switch-root.service.in
|
||||
===================================================================
|
||||
--- systemd-208.orig/units/initrd-switch-root.service.in
|
||||
+++ systemd-208/units/initrd-switch-root.service.in
|
||||
@@ -10,6 +10,7 @@ Description=Switch Root
|
||||
DefaultDependencies=no
|
||||
ConditionPathExists=/etc/initrd-release
|
||||
OnFailure=emergency.target
|
||||
+OnFailureJobMode=replace-irreversibly
|
||||
AllowIsolate=yes
|
||||
|
||||
[Service]
|
||||
Index: systemd-208/units/initrd.target
|
||||
===================================================================
|
||||
--- systemd-208.orig/units/initrd.target
|
||||
+++ systemd-208/units/initrd.target
|
||||
@@ -9,7 +9,7 @@
|
||||
Description=Initrd Default Target
|
||||
Documentation=man:systemd.special(7)
|
||||
OnFailure=emergency.target
|
||||
-OnFailureIsolate=yes
|
||||
+OnFailureJobMode=replace-irreversibly
|
||||
ConditionPathExists=/etc/initrd-release
|
||||
Requires=basic.target
|
||||
Wants=initrd-root-fs.target initrd-fs.target initrd-parse-etc.service
|
||||
Index: systemd-208/units/local-fs.target
|
||||
===================================================================
|
||||
--- systemd-208.orig/units/local-fs.target
|
||||
+++ systemd-208/units/local-fs.target
|
||||
@@ -12,4 +12,4 @@ After=local-fs-pre.target
|
||||
DefaultDependencies=no
|
||||
Conflicts=shutdown.target
|
||||
OnFailure=emergency.target
|
||||
-OnFailureIsolate=no
|
||||
+OnFailureJobMode=replace-irreversibly
|
@ -0,0 +1,40 @@
|
||||
From 8d1a28020409ee4afea6ef8c1c4d3522a209284e Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 9 Oct 2013 00:13:55 +0200
|
||||
Subject: [PATCH] core: unify the way we denote serialization attributes
|
||||
|
||||
---
|
||||
src/core/service.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/core/service.c b/src/core/service.c
|
||||
index 98b1599..96ed2d3 100644
|
||||
--- a/src/core/service.c
|
||||
+++ b/src/core/service.c
|
||||
@@ -2652,7 +2652,7 @@ static int service_serialize(Unit *u, FILE *f, FDSet *fds) {
|
||||
unit_serialize_item(u, f, "var-tmp-dir", s->exec_context.var_tmp_dir);
|
||||
|
||||
if (s->forbid_restart)
|
||||
- unit_serialize_item(u, f, "forbid_restart", yes_no(s->forbid_restart));
|
||||
+ unit_serialize_item(u, f, "forbid-restart", yes_no(s->forbid_restart));
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -2790,12 +2790,12 @@ static int service_deserialize_item(Unit *u, const char *key, const char *value,
|
||||
return log_oom();
|
||||
|
||||
s->exec_context.var_tmp_dir = t;
|
||||
- } else if (streq(key, "forbid_restart")) {
|
||||
+ } else if (streq(key, "forbid-restart")) {
|
||||
int b;
|
||||
|
||||
b = parse_boolean(value);
|
||||
if (b < 0)
|
||||
- log_debug_unit(u->id, "Failed to parse forbid_restart value %s", value);
|
||||
+ log_debug_unit(u->id, "Failed to parse forbid-restart value %s", value);
|
||||
else
|
||||
s->forbid_restart = b;
|
||||
} else
|
||||
--
|
||||
1.8.4
|
||||
|
71
0001-dbus-common-avoid-leak-in-error-path.patch
Normal file
71
0001-dbus-common-avoid-leak-in-error-path.patch
Normal file
@ -0,0 +1,71 @@
|
||||
From 74dcc2df7b2a340c3e1fe9e61e5c8deb324c83d7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Fri, 11 Oct 2013 19:33:20 -0400
|
||||
Subject: [PATCH] dbus-common: avoid leak in error path
|
||||
|
||||
src/shared/dbus-common.c:968:33: warning: Potential leak of memory pointed to by 'l'
|
||||
return -EINVAL;
|
||||
^~~~~~
|
||||
---
|
||||
src/shared/dbus-common.c | 20 ++++++++++----------
|
||||
1 file changed, 10 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/shared/dbus-common.c b/src/shared/dbus-common.c
|
||||
index c727cae..3ba2d87 100644
|
||||
--- a/src/shared/dbus-common.c
|
||||
+++ b/src/shared/dbus-common.c
|
||||
@@ -934,7 +934,7 @@ int bus_parse_strv_iter(DBusMessageIter *iter, char ***_l) {
|
||||
int bus_parse_strv_pairs_iter(DBusMessageIter *iter, char ***_l) {
|
||||
DBusMessageIter sub, sub2;
|
||||
unsigned n = 0, i = 0;
|
||||
- char **l;
|
||||
+ _cleanup_strv_free_ char **l = NULL;
|
||||
|
||||
assert(iter);
|
||||
assert(_l);
|
||||
@@ -953,6 +953,7 @@ int bus_parse_strv_pairs_iter(DBusMessageIter *iter, char ***_l) {
|
||||
l = new(char*, n*2+1);
|
||||
if (!l)
|
||||
return -ENOMEM;
|
||||
+ l[0] = NULL; /* make sure that l is properly terminated at all times */
|
||||
|
||||
dbus_message_iter_recurse(iter, &sub);
|
||||
|
||||
@@ -968,26 +969,25 @@ int bus_parse_strv_pairs_iter(DBusMessageIter *iter, char ***_l) {
|
||||
return -EINVAL;
|
||||
|
||||
l[i] = strdup(a);
|
||||
- if (!l[i]) {
|
||||
- strv_free(l);
|
||||
+ if (!l[i])
|
||||
return -ENOMEM;
|
||||
- }
|
||||
+ i++;
|
||||
|
||||
- l[++i] = strdup(b);
|
||||
- if (!l[i]) {
|
||||
- strv_free(l);
|
||||
+ l[i] = strdup(b);
|
||||
+ if (!l[i])
|
||||
return -ENOMEM;
|
||||
- }
|
||||
-
|
||||
i++;
|
||||
+
|
||||
dbus_message_iter_next(&sub);
|
||||
}
|
||||
|
||||
assert(i == n*2);
|
||||
l[i] = NULL;
|
||||
|
||||
- if (_l)
|
||||
+ if (_l) {
|
||||
*_l = l;
|
||||
+ l = NULL; /* avoid freeing */
|
||||
+ }
|
||||
|
||||
return 0;
|
||||
}
|
||||
--
|
||||
1.8.4
|
||||
|
@ -0,0 +1,33 @@
|
||||
From 6c7980093c4e39d07bf06484f96f489e236c7c29 Mon Sep 17 00:00:00 2001
|
||||
From: Kay Sievers <kay@vrfy.org>
|
||||
Date: Thu, 10 Oct 2013 01:38:11 +0200
|
||||
Subject: [PATCH] do not accept "garbage" from acpi firmware performance data
|
||||
(FPDT)
|
||||
|
||||
00000000 46 42 50 54 38 00 00 00 02 00 30 02 00 00 00 00 |FBPT8.....0.....|
|
||||
00000010 23 45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |#E..............|
|
||||
00000020 f5 6a 51 00 00 00 00 00 00 00 00 00 00 00 00 00 |.jQ.............|
|
||||
00000030 00 00 00 00 00 00 00 00 70 74 61 6c 58 00 00 00 |........ptalX...|
|
||||
---
|
||||
src/shared/acpi-fpdt.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/shared/acpi-fpdt.c b/src/shared/acpi-fpdt.c
|
||||
index af58c7c..75648b4 100644
|
||||
--- a/src/shared/acpi-fpdt.c
|
||||
+++ b/src/shared/acpi-fpdt.c
|
||||
@@ -146,6 +146,11 @@ int acpi_get_boot_usec(usec_t *loader_start, usec_t *loader_exit) {
|
||||
if (brec.type != ACPI_FPDT_BOOT_REC)
|
||||
return -EINVAL;
|
||||
|
||||
+ if (brec.startup_start == 0 || brec.exit_services_exit < brec.startup_start)
|
||||
+ return -EINVAL;
|
||||
+ if (brec.exit_services_exit > NSEC_PER_HOUR)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
if (loader_start)
|
||||
*loader_start = brec.startup_start / 1000;
|
||||
if (loader_exit)
|
||||
--
|
||||
1.8.4
|
||||
|
29
0001-drop-ins-check-return-value.patch
Normal file
29
0001-drop-ins-check-return-value.patch
Normal file
@ -0,0 +1,29 @@
|
||||
From 6891529fe1176c046ece579807ff48e3191692f3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Fri, 11 Oct 2013 19:33:36 -0400
|
||||
Subject: [PATCH] drop-ins: check return value
|
||||
|
||||
If the function failed, nothing serious would happen
|
||||
because unlink would probably return EFAULT, but this
|
||||
would obscure the real error and is a bit sloppy.
|
||||
---
|
||||
src/core/unit.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/src/core/unit.c b/src/core/unit.c
|
||||
index 4b97710..1db7d06 100644
|
||||
--- a/src/core/unit.c
|
||||
+++ b/src/core/unit.c
|
||||
@@ -2908,6 +2908,9 @@ int unit_remove_drop_in(Unit *u, UnitSetPropertiesMode mode, const char *name) {
|
||||
return 0;
|
||||
|
||||
r = drop_in_file(u, mode, name, &p, &q);
|
||||
+ if (r < 0)
|
||||
+ return r;
|
||||
+
|
||||
if (unlink(q) < 0)
|
||||
r = errno == ENOENT ? 0 : -errno;
|
||||
else
|
||||
--
|
||||
1.8.4
|
||||
|
@ -0,0 +1,40 @@
|
||||
From 9a5cb1371b6d8b0a04bd08665bcf9b06cb40c64c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Thu, 3 Oct 2013 22:13:01 -0400
|
||||
Subject: [PATCH] gpt-auto-generator: exit immediately if in container
|
||||
|
||||
Otherwise we get an ugly warning when running systemd in
|
||||
a container.
|
||||
---
|
||||
src/gpt-auto-generator/gpt-auto-generator.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/src/gpt-auto-generator/gpt-auto-generator.c b/src/gpt-auto-generator/gpt-auto-generator.c
|
||||
index ca54925..d2b4213 100644
|
||||
--- a/src/gpt-auto-generator/gpt-auto-generator.c
|
||||
+++ b/src/gpt-auto-generator/gpt-auto-generator.c
|
||||
@@ -38,6 +38,7 @@
|
||||
#include "libudev.h"
|
||||
#include "special.h"
|
||||
#include "unit-name.h"
|
||||
+#include "virt.h"
|
||||
|
||||
/* TODO:
|
||||
*
|
||||
@@ -481,6 +482,13 @@ int main(int argc, char *argv[]) {
|
||||
umask(0022);
|
||||
|
||||
if (in_initrd()) {
|
||||
+ log_debug("In initrd, exiting.");
|
||||
+ r = 0;
|
||||
+ goto finish;
|
||||
+ }
|
||||
+
|
||||
+ if (detect_container(NULL) > 0) {
|
||||
+ log_debug("In a container, exiting.");
|
||||
r = 0;
|
||||
goto finish;
|
||||
}
|
||||
--
|
||||
1.8.4
|
||||
|
25
0001-journald-fix-minor-memory-leak.patch
Normal file
25
0001-journald-fix-minor-memory-leak.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From 2ee0591d12b9e725c4585502285fd91cde682d9b Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 9 Oct 2013 04:03:45 +0200
|
||||
Subject: [PATCH] journald: fix minor memory leak
|
||||
|
||||
---
|
||||
src/journal/journal-vacuum.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/journal/journal-vacuum.c b/src/journal/journal-vacuum.c
|
||||
index c73ad8f..8d5effb 100644
|
||||
--- a/src/journal/journal-vacuum.c
|
||||
+++ b/src/journal/journal-vacuum.c
|
||||
@@ -278,6 +278,8 @@ int journal_directory_vacuum(
|
||||
} else if (errno != ENOENT)
|
||||
log_warning("Failed to delete %s/%s: %m", directory, p);
|
||||
|
||||
+ free(p);
|
||||
+
|
||||
continue;
|
||||
}
|
||||
|
||||
--
|
||||
1.8.4
|
||||
|
@ -0,0 +1,39 @@
|
||||
From 2b98f75a63e6022bf74a7d678c47faa5208c794f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Wed, 9 Oct 2013 22:13:13 -0400
|
||||
Subject: [PATCH] journald: remove rotated file from hashmap when rotation
|
||||
fails
|
||||
|
||||
Before, when the user journal file was rotated, journal_file_rotate
|
||||
could close the old file and fail to open the new file. In that
|
||||
case, we would leave the old (deallocated) file in the hashmap.
|
||||
On subsequent accesses, we could retrieve this stale entry, leading
|
||||
to a segfault.
|
||||
|
||||
When journal_file_rotate fails with the file pointer set to 0,
|
||||
old file is certainly gone, and cannot be used anymore.
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=890463
|
||||
---
|
||||
src/journal/journald-server.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
|
||||
index 4f47eb1..e03e413 100644
|
||||
--- a/src/journal/journald-server.c
|
||||
+++ b/src/journal/journald-server.c
|
||||
@@ -321,8 +321,10 @@ void server_rotate(Server *s) {
|
||||
if (r < 0)
|
||||
if (f)
|
||||
log_error("Failed to rotate %s: %s", f->path, strerror(-r));
|
||||
- else
|
||||
+ else {
|
||||
log_error("Failed to create user journal: %s", strerror(-r));
|
||||
+ hashmap_remove(s->user_journals, k);
|
||||
+ }
|
||||
else {
|
||||
hashmap_replace(s->user_journals, k, f);
|
||||
server_fix_perms(s, f, PTR_TO_UINT32(k));
|
||||
--
|
||||
1.8.4
|
||||
|
27
0001-login-fix-invalid-free-in-sd_session_get_vt.patch
Normal file
27
0001-login-fix-invalid-free-in-sd_session_get_vt.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From 3f4fee033bf0f623de74f3e8a14c42b8ff81c36e Mon Sep 17 00:00:00 2001
|
||||
From: David Herrmann <dh.herrmann@gmail.com>
|
||||
Date: Thu, 10 Oct 2013 13:09:37 +0200
|
||||
Subject: [PATCH] login: fix invalid free() in sd_session_get_vt()
|
||||
|
||||
We need to clear variables markes as _cleanup_free_. Otherwise, our
|
||||
error-paths might corrupt random memory.
|
||||
---
|
||||
src/login/sd-login.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/login/sd-login.c b/src/login/sd-login.c
|
||||
index 71d8c29..6c27dfe 100644
|
||||
--- a/src/login/sd-login.c
|
||||
+++ b/src/login/sd-login.c
|
||||
@@ -350,7 +350,7 @@ _public_ int sd_session_get_tty(const char *session, char **tty) {
|
||||
}
|
||||
|
||||
_public_ int sd_session_get_vt(const char *session, unsigned *vtnr) {
|
||||
- _cleanup_free_ char *vtnr_string;
|
||||
+ _cleanup_free_ char *vtnr_string = NULL;
|
||||
unsigned u;
|
||||
int r;
|
||||
|
||||
--
|
||||
1.8.4
|
||||
|
27
0001-login-make-sd_session_get_vt-actually-work.patch
Normal file
27
0001-login-make-sd_session_get_vt-actually-work.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From 0581dac2c146cef0f55841a4c136dc48409c8eaa Mon Sep 17 00:00:00 2001
|
||||
From: David Herrmann <dh.herrmann@gmail.com>
|
||||
Date: Thu, 10 Oct 2013 13:11:27 +0200
|
||||
Subject: [PATCH] login: make sd_session_get_vt() actually work
|
||||
|
||||
We use VTNR, not VTNr as key. Until now sd_session_get_vt() just returns
|
||||
an error.
|
||||
---
|
||||
src/login/sd-login.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/login/sd-login.c b/src/login/sd-login.c
|
||||
index 6c27dfe..7e25041 100644
|
||||
--- a/src/login/sd-login.c
|
||||
+++ b/src/login/sd-login.c
|
||||
@@ -354,7 +354,7 @@ _public_ int sd_session_get_vt(const char *session, unsigned *vtnr) {
|
||||
unsigned u;
|
||||
int r;
|
||||
|
||||
- r = session_get_string(session, "VTNr", &vtnr_string);
|
||||
+ r = session_get_string(session, "VTNR", &vtnr_string);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
--
|
||||
1.8.4
|
||||
|
25
0001-logind-fix-bus-introspection-data-for-TakeControl.patch
Normal file
25
0001-logind-fix-bus-introspection-data-for-TakeControl.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From 660ea9620f7b8f99d08a2770d4e81acfd8aea02e Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Fri, 4 Oct 2013 21:16:40 +0200
|
||||
Subject: [PATCH] logind: fix bus introspection data for TakeControl()
|
||||
|
||||
---
|
||||
src/login/logind-session-dbus.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c
|
||||
index 5f6bafb..be4e01c 100644
|
||||
--- a/src/login/logind-session-dbus.c
|
||||
+++ b/src/login/logind-session-dbus.c
|
||||
@@ -41,7 +41,7 @@
|
||||
" <arg name=\"who\" type=\"s\"/>\n" \
|
||||
" <arg name=\"signal\" type=\"s\"/>\n" \
|
||||
" </method>\n" \
|
||||
- " <method name=\"TakeControl\"/>\n" \
|
||||
+ " <method name=\"TakeControl\">\n" \
|
||||
" <arg name=\"force\" type=\"b\"/>\n" \
|
||||
" </method>\n" \
|
||||
" <method name=\"ReleaseControl\"/>\n" \
|
||||
--
|
||||
1.8.4
|
||||
|
28
0001-logind-garbage-collect-stale-users.patch
Normal file
28
0001-logind-garbage-collect-stale-users.patch
Normal file
@ -0,0 +1,28 @@
|
||||
From 63966da86d8e71b1f3f2b57d5448770d526421f9 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Bächler <thomas@archlinux.org>
|
||||
Date: Sun, 15 Dec 2013 11:06:37 +0000
|
||||
Subject: login: Don't stop a running user manager from garbage-collecting the user.
|
||||
|
||||
With the current logic, a user will never be garbage-collected, since its
|
||||
manager will always be around. Change the logic such that a user is
|
||||
garbage-collected when it has no sessions and linger is disabled.
|
||||
---
|
||||
diff --git a/src/login/logind-user.c b/src/login/logind-user.c
|
||||
index 6ba8d98..441e086 100644
|
||||
--- a/src/login/logind-user.c
|
||||
+++ b/src/login/logind-user.c
|
||||
@@ -629,12 +629,6 @@ int user_check_gc(User *u, bool drop_not
|
||||
if (u->slice_job || u->service_job)
|
||||
return 1;
|
||||
|
||||
- if (u->slice && manager_unit_is_active(u->manager, u->slice) != 0)
|
||||
- return 1;
|
||||
-
|
||||
- if (u->service && manager_unit_is_active(u->manager, u->service) != 0)
|
||||
- return 1;
|
||||
-
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
cgit v0.9.0.2-2-gbebe
|
@ -0,0 +1,45 @@
|
||||
From a316932f5a627c1ef78f568fd5dfa579f12e76b2 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Fri, 4 Oct 2013 17:01:37 +0200
|
||||
Subject: [PATCH] manager: when verifying whether clients may change
|
||||
environment using selinux check for "reload" rather "reboot"
|
||||
|
||||
This appears to be a copy/paste error.
|
||||
---
|
||||
src/core/dbus-manager.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c
|
||||
index 676a07f..8f4d017 100644
|
||||
--- a/src/core/dbus-manager.c
|
||||
+++ b/src/core/dbus-manager.c
|
||||
@@ -1397,7 +1397,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection,
|
||||
_cleanup_strv_free_ char **l = NULL;
|
||||
char **e = NULL;
|
||||
|
||||
- SELINUX_ACCESS_CHECK(connection, message, "reboot");
|
||||
+ SELINUX_ACCESS_CHECK(connection, message, "reload");
|
||||
|
||||
r = bus_parse_strv(message, &l);
|
||||
if (r == -ENOMEM)
|
||||
@@ -1424,7 +1424,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection,
|
||||
_cleanup_strv_free_ char **l = NULL;
|
||||
char **e = NULL;
|
||||
|
||||
- SELINUX_ACCESS_CHECK(connection, message, "reboot");
|
||||
+ SELINUX_ACCESS_CHECK(connection, message, "reload");
|
||||
|
||||
r = bus_parse_strv(message, &l);
|
||||
if (r == -ENOMEM)
|
||||
@@ -1452,7 +1452,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection,
|
||||
char **f = NULL;
|
||||
DBusMessageIter iter;
|
||||
|
||||
- SELINUX_ACCESS_CHECK(connection, message, "reboot");
|
||||
+ SELINUX_ACCESS_CHECK(connection, message, "reload");
|
||||
|
||||
if (!dbus_message_iter_init(message, &iter))
|
||||
goto oom;
|
||||
--
|
||||
1.8.4
|
||||
|
29
0001-mount-check-for-NULL-before-reading-pm-what.patch
Normal file
29
0001-mount-check-for-NULL-before-reading-pm-what.patch
Normal file
@ -0,0 +1,29 @@
|
||||
From 9c03872bc8fb2a381eafe7301ef9811b641686dd Mon Sep 17 00:00:00 2001
|
||||
From: Dave Reisner <dreisner@archlinux.org>
|
||||
Date: Fri, 4 Oct 2013 18:22:40 -0400
|
||||
Subject: [PATCH] mount: check for NULL before reading pm->what
|
||||
|
||||
Since a57f7e2c828b85, a mount unit with garbage in it would cause
|
||||
systemd to crash on loading it.
|
||||
|
||||
ref: https://bugs.freedesktop.org/show_bug.cgi?id=70148
|
||||
---
|
||||
src/core/mount.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/core/mount.c b/src/core/mount.c
|
||||
index 93bfa99..db055f0 100644
|
||||
--- a/src/core/mount.c
|
||||
+++ b/src/core/mount.c
|
||||
@@ -182,7 +182,7 @@ static int mount_add_mount_links(Mount *m) {
|
||||
* for the source path (if this is a bind mount) to be
|
||||
* available. */
|
||||
pm = get_mount_parameters_fragment(m);
|
||||
- if (pm && path_is_absolute(pm->what)) {
|
||||
+ if (pm && pm->what && path_is_absolute(pm->what)) {
|
||||
r = unit_require_mounts_for(UNIT(m), pm->what);
|
||||
if (r < 0)
|
||||
return r;
|
||||
--
|
||||
1.8.4
|
||||
|
28
0001-shared-util-Fix-glob_extend-argument.patch
Normal file
28
0001-shared-util-Fix-glob_extend-argument.patch
Normal file
@ -0,0 +1,28 @@
|
||||
From a8ccacf5344c4434b1d5ff3837307acb8fcf93d2 Mon Sep 17 00:00:00 2001
|
||||
From: Bastien Nocera <hadess@hadess.net>
|
||||
Date: Mon, 14 Oct 2013 08:15:51 +0200
|
||||
Subject: [PATCH] shared/util: Fix glob_extend() argument
|
||||
|
||||
glob_extend() would completely fail to work, or return incorrect
|
||||
data if it wasn't being passed the current getopt "optarg" variable
|
||||
as it used the global variable, instead of the passed parameters.
|
||||
---
|
||||
src/shared/util.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/shared/util.c b/src/shared/util.c
|
||||
index 54dbace..1822770 100644
|
||||
--- a/src/shared/util.c
|
||||
+++ b/src/shared/util.c
|
||||
@@ -4461,7 +4461,7 @@ int glob_extend(char ***strv, const char *path) {
|
||||
char **p;
|
||||
|
||||
errno = 0;
|
||||
- k = glob(optarg, GLOB_NOSORT|GLOB_BRACE, NULL, &g);
|
||||
+ k = glob(path, GLOB_NOSORT|GLOB_BRACE, NULL, &g);
|
||||
|
||||
if (k == GLOB_NOMATCH)
|
||||
return -ENOENT;
|
||||
--
|
||||
1.8.4
|
||||
|
@ -0,0 +1,50 @@
|
||||
From 1d5989fd803d2019de0f6aaaf3cfb1cb2bbc3cdb Mon Sep 17 00:00:00 2001
|
||||
From: Dave Reisner <dreisner@archlinux.org>
|
||||
Date: Sun, 6 Oct 2013 18:26:23 -0400
|
||||
Subject: [PATCH] shared/util: fix off-by-one error in tag_to_udev_node
|
||||
|
||||
Triggered false negatives when encoding a string which needed every
|
||||
character to be escaped, e.g. "LABEL=/".
|
||||
---
|
||||
src/shared/util.c | 2 +-
|
||||
src/test/test-device-nodes.c | 4 +++-
|
||||
2 files changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/shared/util.c b/src/shared/util.c
|
||||
index 82f4221..31cea79 100644
|
||||
--- a/src/shared/util.c
|
||||
+++ b/src/shared/util.c
|
||||
@@ -3527,7 +3527,7 @@ static char *tag_to_udev_node(const char *tagvalue, const char *by) {
|
||||
if (u == NULL)
|
||||
return NULL;
|
||||
|
||||
- enc_len = strlen(u) * 4;
|
||||
+ enc_len = strlen(u) * 4 + 1;
|
||||
t = new(char, enc_len);
|
||||
if (t == NULL)
|
||||
return NULL;
|
||||
diff --git a/src/test/test-device-nodes.c b/src/test/test-device-nodes.c
|
||||
index 2f3dedb..59ba4be 100644
|
||||
--- a/src/test/test-device-nodes.c
|
||||
+++ b/src/test/test-device-nodes.c
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
/* helpers for test_encode_devnode_name */
|
||||
static char *do_encode_string(const char *in) {
|
||||
- size_t out_len = strlen(in) * 4;
|
||||
+ size_t out_len = strlen(in) * 4 + 1;
|
||||
char *out = malloc(out_len);
|
||||
|
||||
assert_se(out);
|
||||
@@ -46,6 +46,8 @@ static void test_encode_devnode_name(void) {
|
||||
assert_se(expect_encoded_as("pinkiepie", "pinkiepie"));
|
||||
assert_se(expect_encoded_as("valíd\\ųtf8", "valíd\\x5cųtf8"));
|
||||
assert_se(expect_encoded_as("s/ash/ng", "s\\x2fash\\x2fng"));
|
||||
+ assert_se(expect_encoded_as("/", "\\x2f"));
|
||||
+ assert_se(expect_encoded_as("!", "\\x21"));
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
--
|
||||
1.8.4
|
||||
|
@ -0,0 +1,41 @@
|
||||
From 77009452cfd25208509b14ea985e81fdf9f7d40e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Thu, 3 Oct 2013 22:15:08 -0400
|
||||
Subject: [PATCH] systemd: order remote mounts from mountinfo before
|
||||
remote-fs.target
|
||||
|
||||
Usually the network is stopped before filesystems are umounted.
|
||||
Ordering network filesystems before remote-fs.target means that their
|
||||
unmounting will be performed earlier, and can terminate sucessfully.
|
||||
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=70002
|
||||
---
|
||||
src/core/mount.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/core/mount.c b/src/core/mount.c
|
||||
index 3d46557..93bfa99 100644
|
||||
--- a/src/core/mount.c
|
||||
+++ b/src/core/mount.c
|
||||
@@ -1440,6 +1440,9 @@ static int mount_add_one(
|
||||
|
||||
u = manager_get_unit(m, e);
|
||||
if (!u) {
|
||||
+ const char* const target =
|
||||
+ fstype_is_network(fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET;
|
||||
+
|
||||
delete = true;
|
||||
|
||||
u = unit_new(m, sizeof(Mount));
|
||||
@@ -1466,7 +1469,7 @@ static int mount_add_one(
|
||||
goto fail;
|
||||
}
|
||||
|
||||
- r = unit_add_dependency_by_name(u, UNIT_BEFORE, SPECIAL_LOCAL_FS_TARGET, NULL, true);
|
||||
+ r = unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
|
||||
--
|
||||
1.8.4
|
||||
|
@ -0,0 +1,51 @@
|
||||
From 6aca9a587d4ad40b1c044f99e3714022201b9fd4 Mon Sep 17 00:00:00 2001
|
||||
From: Sylvia Else <sylviabz1@cryogenic.net>
|
||||
Date: Sun, 6 Oct 2013 23:06:35 -0400
|
||||
Subject: [PATCH] systemd: serialize/deserialize forbid_restart value
|
||||
|
||||
The Service type's forbid_restart field was not preserved by
|
||||
serialization/deserialization, so the fact that the service should not
|
||||
be restarted after stopping was lost.
|
||||
|
||||
If a systemctl stop foo command has been given, but the foo service
|
||||
has not yet stopped, and then the systemctl --system daemon-reload was
|
||||
given, then when the foo service eventually stopped, systemd would
|
||||
restart it.
|
||||
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=69800
|
||||
---
|
||||
src/core/service.c | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/src/core/service.c b/src/core/service.c
|
||||
index 6792024..98b1599 100644
|
||||
--- a/src/core/service.c
|
||||
+++ b/src/core/service.c
|
||||
@@ -2651,6 +2651,9 @@ static int service_serialize(Unit *u, FILE *f, FDSet *fds) {
|
||||
if (s->exec_context.var_tmp_dir)
|
||||
unit_serialize_item(u, f, "var-tmp-dir", s->exec_context.var_tmp_dir);
|
||||
|
||||
+ if (s->forbid_restart)
|
||||
+ unit_serialize_item(u, f, "forbid_restart", yes_no(s->forbid_restart));
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2787,6 +2790,14 @@ static int service_deserialize_item(Unit *u, const char *key, const char *value,
|
||||
return log_oom();
|
||||
|
||||
s->exec_context.var_tmp_dir = t;
|
||||
+ } else if (streq(key, "forbid_restart")) {
|
||||
+ int b;
|
||||
+
|
||||
+ b = parse_boolean(value);
|
||||
+ if (b < 0)
|
||||
+ log_debug_unit(u->id, "Failed to parse forbid_restart value %s", value);
|
||||
+ else
|
||||
+ s->forbid_restart = b;
|
||||
} else
|
||||
log_debug_unit(u->id, "Unknown serialization key '%s'", key);
|
||||
|
||||
--
|
||||
1.8.4
|
||||
|
85
0001-upstream-systemctl-halt-reboot-error-handling.patch
Normal file
85
0001-upstream-systemctl-halt-reboot-error-handling.patch
Normal file
@ -0,0 +1,85 @@
|
||||
--- systemd-208/src/core/shutdown.c
|
||||
+++ systemd-208/src/core/shutdown.c 2014-01-27 11:31:38.486235816 +0000
|
||||
@@ -329,6 +329,9 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
reboot(cmd);
|
||||
|
||||
+ if (cmd == 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
|
||||
|
||||
--- systemd-208/src/systemctl/systemctl.c
|
||||
+++ systemd-208/src/systemctl/systemctl.c 2014-01-27 11:05:18.298236035 +0000
|
||||
@@ -138,7 +138,7 @@ static bool arg_plain = false;
|
||||
static bool private_bus = false;
|
||||
|
||||
static int daemon_reload(DBusConnection *bus, char **args);
|
||||
-static void halt_now(enum action a);
|
||||
+static int halt_now(enum action a);
|
||||
|
||||
static void pager_open_if_enabled(void) {
|
||||
|
||||
@@ -2227,7 +2227,7 @@ static int start_special(DBusConnection
|
||||
(a == ACTION_HALT ||
|
||||
a == ACTION_POWEROFF ||
|
||||
a == ACTION_REBOOT))
|
||||
- halt_now(a);
|
||||
+ return halt_now(a);
|
||||
|
||||
if (arg_force >= 1 &&
|
||||
(a == ACTION_HALT ||
|
||||
@@ -5973,7 +5973,7 @@ done:
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static _noreturn_ void halt_now(enum action a) {
|
||||
+static int halt_now(enum action a) {
|
||||
|
||||
/* Make sure C-A-D is handled by the kernel from this
|
||||
* point on... */
|
||||
@@ -5984,23 +5984,22 @@ static _noreturn_ void halt_now(enum act
|
||||
case ACTION_HALT:
|
||||
log_info("Halting.");
|
||||
reboot(RB_HALT_SYSTEM);
|
||||
- break;
|
||||
+ return -errno;
|
||||
|
||||
case ACTION_POWEROFF:
|
||||
log_info("Powering off.");
|
||||
reboot(RB_POWER_OFF);
|
||||
- break;
|
||||
+ return -errno;
|
||||
|
||||
case ACTION_REBOOT:
|
||||
log_info("Rebooting.");
|
||||
reboot(RB_AUTOBOOT);
|
||||
- break;
|
||||
+ return -errno;
|
||||
|
||||
default:
|
||||
- assert_not_reached("Unknown halt action.");
|
||||
+ assert_not_reached("Unknown action.");
|
||||
+ return -ENOSYS;
|
||||
}
|
||||
-
|
||||
- assert_not_reached("Uh? This shouldn't happen.");
|
||||
}
|
||||
|
||||
static int halt_main(DBusConnection *bus) {
|
||||
@@ -6069,9 +6068,10 @@ static int halt_main(DBusConnection *bus
|
||||
if (arg_dry)
|
||||
return 0;
|
||||
|
||||
- halt_now(arg_action);
|
||||
- /* We should never reach this. */
|
||||
- return -ENOSYS;
|
||||
+ r = halt_now(arg_action);
|
||||
+ log_error("Failed to reboot: %s", strerror(-r));
|
||||
+
|
||||
+ return r;
|
||||
}
|
||||
|
||||
static int runlevel_main(void) {
|
@ -1,26 +0,0 @@
|
||||
From ebab7f4535a077eb8168cb8f3a9fe899e56aba17 Mon Sep 17 00:00:00 2001
|
||||
From: Gao feng <gaofeng@cn.fujitsu.com>
|
||||
Date: Fri, 13 Sep 2013 11:17:06 +0800
|
||||
Subject: [PATCH 2/7] cgroup: correct the log information
|
||||
|
||||
it should be memory.soft_limit_in_bytes.
|
||||
---
|
||||
src/core/cgroup.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/core/cgroup.c b/src/core/cgroup.c
|
||||
index fba0b2f..aee93ba 100644
|
||||
--- a/src/core/cgroup.c
|
||||
+++ b/src/core/cgroup.c
|
||||
@@ -266,7 +266,7 @@ void cgroup_context_apply(CGroupContext *c, CGroupControllerMask mask, const cha
|
||||
sprintf(buf, "%" PRIu64 "\n", c->memory_soft_limit);
|
||||
r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", buf);
|
||||
if (r < 0)
|
||||
- log_error("Failed to set memory.limit_in_bytes on %s: %s", path, strerror(-r));
|
||||
+ log_error("Failed to set memory.soft_limit_in_bytes on %s: %s", path, strerror(-r));
|
||||
}
|
||||
|
||||
if (mask & CGROUP_DEVICE) {
|
||||
--
|
||||
1.8.1.4
|
||||
|
@ -0,0 +1,55 @@
|
||||
From 6c8c92fef72cf6a7ef7109a424ef82dbdc4f6952 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Reisner <dreisner@archlinux.org>
|
||||
Date: Wed, 2 Oct 2013 07:46:24 -0400
|
||||
Subject: [PATCH 02/15] fix lingering references to
|
||||
/var/lib/{backlight,random-seed}
|
||||
|
||||
This should have been part of ef5bfcf668e6029faa78534dfe.
|
||||
---
|
||||
man/systemd-backlight@.service.xml | 2 +-
|
||||
man/systemd-random-seed.service.xml | 2 +-
|
||||
units/systemd-backlight@.service.in | 2 +-
|
||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/man/systemd-backlight@.service.xml b/man/systemd-backlight@.service.xml
|
||||
index 2b73625..4318964 100644
|
||||
--- a/man/systemd-backlight@.service.xml
|
||||
+++ b/man/systemd-backlight@.service.xml
|
||||
@@ -58,7 +58,7 @@
|
||||
is a service that restores the display backlight
|
||||
brightness at early-boot and saves it at shutdown. On
|
||||
disk, the backlight brightness is stored in
|
||||
- <filename>/var/lib/backlight/</filename>. Note that by
|
||||
+ <filename>/var/lib/systemd/backlight/</filename>. Note that by
|
||||
default, only firmware backlight devices are
|
||||
saved/restored.</para>
|
||||
</refsect1>
|
||||
diff --git a/man/systemd-random-seed.service.xml b/man/systemd-random-seed.service.xml
|
||||
index 8cd14b7..e5cd037 100644
|
||||
--- a/man/systemd-random-seed.service.xml
|
||||
+++ b/man/systemd-random-seed.service.xml
|
||||
@@ -61,7 +61,7 @@
|
||||
for details. Saving/restoring the random seed across
|
||||
boots increases the amount of available entropy early
|
||||
at boot. On disk the random seed is stored in
|
||||
- <filename>/var/lib/random-seed</filename>.</para>
|
||||
+ <filename>/var/lib/systemd/random-seed</filename>.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
diff --git a/units/systemd-backlight@.service.in b/units/systemd-backlight@.service.in
|
||||
index b0e75db..5caa5d5 100644
|
||||
--- a/units/systemd-backlight@.service.in
|
||||
+++ b/units/systemd-backlight@.service.in
|
||||
@@ -9,7 +9,7 @@
|
||||
Description=Load/Save Screen Backlight Brightness of %I
|
||||
Documentation=man:systemd-backlight@.service(8)
|
||||
DefaultDependencies=no
|
||||
-RequiresMountsFor=/var/lib/backlight
|
||||
+RequiresMountsFor=/var/lib/systemd/backlight
|
||||
Conflicts=shutdown.target
|
||||
After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-remount-fs.service
|
||||
Before=sysinit.target shutdown.target
|
||||
--
|
||||
1.8.4
|
||||
|
@ -0,0 +1,62 @@
|
||||
From 95d57e7b631a2d78b9b5d841125194052895470f Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 29 Jan 2014 13:49:54 +0100
|
||||
Subject: [PATCH 2/3] service: allow KillMode=mixed in conjunction with
|
||||
PAMName=
|
||||
|
||||
---
|
||||
src/core/service.c | 20 +++++++-------------
|
||||
1 file changed, 7 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/src/core/service.c b/src/core/service.c
|
||||
index 6792024..e7f03e1 100644
|
||||
--- a/src/core/service.c
|
||||
+++ b/src/core/service.c
|
||||
@@ -1105,37 +1105,31 @@ static int service_verify(Service *s) {
|
||||
return 0;
|
||||
|
||||
if (!s->exec_command[SERVICE_EXEC_START]) {
|
||||
- log_error_unit(UNIT(s)->id,
|
||||
- "%s lacks ExecStart setting. Refusing.", UNIT(s)->id);
|
||||
+ log_error_unit(UNIT(s)->id, "%s lacks ExecStart setting. Refusing.", UNIT(s)->id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (s->type != SERVICE_ONESHOT &&
|
||||
s->exec_command[SERVICE_EXEC_START]->command_next) {
|
||||
- log_error_unit(UNIT(s)->id,
|
||||
- "%s has more than one ExecStart setting, which is only allowed for Type=oneshot services. Refusing.", UNIT(s)->id);
|
||||
+ log_error_unit(UNIT(s)->id, "%s has more than one ExecStart setting, which is only allowed for Type=oneshot services. Refusing.", UNIT(s)->id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (s->type == SERVICE_ONESHOT && s->restart != SERVICE_RESTART_NO) {
|
||||
- log_error_unit(UNIT(s)->id,
|
||||
- "%s has Restart setting other than no, which isn't allowed for Type=oneshot services. Refusing.", UNIT(s)->id);
|
||||
+ log_error_unit(UNIT(s)->id, "%s has Restart setting other than no, which isn't allowed for Type=oneshot services. Refusing.", UNIT(s)->id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (s->type == SERVICE_DBUS && !s->bus_name) {
|
||||
- log_error_unit(UNIT(s)->id,
|
||||
- "%s is of type D-Bus but no D-Bus service name has been specified. Refusing.", UNIT(s)->id);
|
||||
+ log_error_unit(UNIT(s)->id, "%s is of type D-Bus but no D-Bus service name has been specified. Refusing.", UNIT(s)->id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (s->bus_name && s->type != SERVICE_DBUS)
|
||||
- log_warning_unit(UNIT(s)->id,
|
||||
- "%s has a D-Bus service name specified, but is not of type dbus. Ignoring.", UNIT(s)->id);
|
||||
+ log_warning_unit(UNIT(s)->id, "%s has a D-Bus service name specified, but is not of type dbus. Ignoring.", UNIT(s)->id);
|
||||
|
||||
- if (s->exec_context.pam_name && s->kill_context.kill_mode != KILL_CONTROL_GROUP) {
|
||||
- log_error_unit(UNIT(s)->id,
|
||||
- "%s has PAM enabled. Kill mode must be set to 'control-group'. Refusing.", UNIT(s)->id);
|
||||
+ if (s->exec_context.pam_name && !(s->kill_context.kill_mode == KILL_CONTROL_GROUP || s->kill_context.kill_mode == KILL_MIXED)) {
|
||||
+ log_error_unit(UNIT(s)->id, "%s has PAM enabled. Kill mode must be set to 'control-group' or 'mixed'. Refusing.", UNIT(s)->id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
--
|
||||
1.8.4
|
||||
|
@ -0,0 +1,25 @@
|
||||
From 2c64a8d0caf84254e38f2e76528f2034d37da520 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 2 Oct 2013 14:03:56 +0200
|
||||
Subject: [PATCH 03/15] acpi: make sure we never free an uninitialized pointer
|
||||
|
||||
---
|
||||
src/shared/acpi-fpdt.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/shared/acpi-fpdt.c b/src/shared/acpi-fpdt.c
|
||||
index a7c83ed..af58c7c 100644
|
||||
--- a/src/shared/acpi-fpdt.c
|
||||
+++ b/src/shared/acpi-fpdt.c
|
||||
@@ -81,7 +81,7 @@ struct acpi_fpdt_boot {
|
||||
};
|
||||
|
||||
int acpi_get_boot_usec(usec_t *loader_start, usec_t *loader_exit) {
|
||||
- _cleanup_free_ char *buf;
|
||||
+ _cleanup_free_ char *buf = NULL;
|
||||
struct acpi_table_header *tbl;
|
||||
size_t l;
|
||||
struct acpi_fpdt_header *rec;
|
||||
--
|
||||
1.8.4
|
||||
|
@ -1,46 +0,0 @@
|
||||
From bebbf30ef61e4cbc782731e48ad67613aab38ec6 Mon Sep 17 00:00:00 2001
|
||||
From: Gao feng <gaofeng@cn.fujitsu.com>
|
||||
Date: Fri, 13 Sep 2013 14:43:04 +0800
|
||||
Subject: [PATCH 3/7] cgroup: fix incorrectly setting memory cgroup
|
||||
|
||||
If the memory_limit of unit is -1, we should write "-1"
|
||||
to the file memory.limit_in_bytes. not the (unit64_t) -1.
|
||||
|
||||
otherwise the memory.limit_in_bytes will be set to zero.
|
||||
---
|
||||
src/core/cgroup.c | 15 +++++++++++----
|
||||
1 file changed, 11 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/core/cgroup.c b/src/core/cgroup.c
|
||||
index aee93ba..244baff 100644
|
||||
--- a/src/core/cgroup.c
|
||||
+++ b/src/core/cgroup.c
|
||||
@@ -257,14 +257,21 @@ void cgroup_context_apply(CGroupContext *c, CGroupControllerMask mask, const cha
|
||||
|
||||
if (mask & CGROUP_MEMORY) {
|
||||
char buf[DECIMAL_STR_MAX(uint64_t) + 1];
|
||||
+ if (c->memory_limit != (uint64_t) -1) {
|
||||
+ sprintf(buf, "%" PRIu64 "\n", c->memory_limit);
|
||||
+ r = cg_set_attribute("memory", path, "memory.limit_in_bytes", buf);
|
||||
+ } else
|
||||
+ r = cg_set_attribute("memory", path, "memory.limit_in_bytes", "-1");
|
||||
|
||||
- sprintf(buf, "%" PRIu64 "\n", c->memory_limit);
|
||||
- r = cg_set_attribute("memory", path, "memory.limit_in_bytes", buf);
|
||||
if (r < 0)
|
||||
log_error("Failed to set memory.limit_in_bytes on %s: %s", path, strerror(-r));
|
||||
|
||||
- sprintf(buf, "%" PRIu64 "\n", c->memory_soft_limit);
|
||||
- r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", buf);
|
||||
+ if (c->memory_soft_limit != (uint64_t) -1) {
|
||||
+ sprintf(buf, "%" PRIu64 "\n", c->memory_soft_limit);
|
||||
+ r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", buf);
|
||||
+ } else
|
||||
+ r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", "-1");
|
||||
+
|
||||
if (r < 0)
|
||||
log_error("Failed to set memory.soft_limit_in_bytes on %s: %s", path, strerror(-r));
|
||||
}
|
||||
--
|
||||
1.8.1.4
|
||||
|
128
0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch
Normal file
128
0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch
Normal file
@ -0,0 +1,128 @@
|
||||
From b2ffdc8da536cd88a305f97517f356e2c5383a52 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 29 Jan 2014 14:58:04 +0100
|
||||
Subject: [PATCH 3/3] core: make sure to always go through both SIGTERM and
|
||||
SIGKILL states of units
|
||||
|
||||
Given that we now have KillMode=mixed where SIGTERM might kill a smaller
|
||||
set than SIGKILL we need to make sure to always go explicitly throught
|
||||
the SIGKILL state to get the right end result.
|
||||
---
|
||||
src/core/mount.c | 8 +++++++-
|
||||
src/core/scope.c | 4 +++-
|
||||
src/core/service.c | 10 +++++++---
|
||||
src/core/socket.c | 6 +++++-
|
||||
src/core/swap.c | 6 +++++-
|
||||
5 files changed, 27 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/src/core/mount.c b/src/core/mount.c
|
||||
index 3d46557..e418d09 100644
|
||||
--- a/src/core/mount.c
|
||||
+++ b/src/core/mount.c
|
||||
@@ -854,8 +854,14 @@ static void mount_enter_signal(Mount *m, MountState state, MountResult f) {
|
||||
goto fail;
|
||||
|
||||
mount_set_state(m, state);
|
||||
- } else if (state == MOUNT_REMOUNTING_SIGTERM || state == MOUNT_REMOUNTING_SIGKILL)
|
||||
+ } else if (state == MOUNT_REMOUNTING_SIGTERM)
|
||||
+ mount_enter_signal(m, MOUNT_REMOUNTING_SIGKILL, MOUNT_SUCCESS);
|
||||
+ else if (state == MOUNT_REMOUNTING_SIGKILL)
|
||||
mount_enter_mounted(m, MOUNT_SUCCESS);
|
||||
+ else if (state == MOUNT_MOUNTING_SIGTERM)
|
||||
+ mount_enter_signal(m, MOUNT_MOUNTING_SIGKILL, MOUNT_SUCCESS);
|
||||
+ else if (state == MOUNT_UNMOUNTING_SIGTERM)
|
||||
+ mount_enter_signal(m, MOUNT_UNMOUNTING_SIGKILL, MOUNT_SUCCESS);
|
||||
else
|
||||
mount_enter_dead(m, MOUNT_SUCCESS);
|
||||
|
||||
diff --git a/src/core/scope.c b/src/core/scope.c
|
||||
index 50e5dba..3a5c95e 100644
|
||||
--- a/src/core/scope.c
|
||||
+++ b/src/core/scope.c
|
||||
@@ -221,7 +221,9 @@ static void scope_enter_signal(Scope *s, ScopeState state, ScopeResult f) {
|
||||
}
|
||||
|
||||
scope_set_state(s, state);
|
||||
- } else
|
||||
+ } else if (state == SCOPE_STOP_SIGTERM)
|
||||
+ scope_enter_signal(s, SCOPE_STOP_SIGKILL, SCOPE_SUCCESS);
|
||||
+ else
|
||||
scope_enter_dead(s, SCOPE_SUCCESS);
|
||||
|
||||
return;
|
||||
diff --git a/src/core/service.c b/src/core/service.c
|
||||
index e7f03e1..4b481c2 100644
|
||||
--- a/src/core/service.c
|
||||
+++ b/src/core/service.c
|
||||
@@ -1964,10 +1964,9 @@ static void service_enter_stop_post(Service *s, ServiceResult f) {
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
|
||||
-
|
||||
service_set_state(s, SERVICE_STOP_POST);
|
||||
} else
|
||||
- service_enter_dead(s, SERVICE_SUCCESS, true);
|
||||
+ service_enter_signal(s, SERVICE_FINAL_SIGTERM, SERVICE_SUCCESS);
|
||||
|
||||
return;
|
||||
|
||||
@@ -1993,6 +1992,7 @@ static void service_enter_signal(Service *s, ServiceState state, ServiceResult f
|
||||
s->main_pid,
|
||||
s->control_pid,
|
||||
s->main_pid_alien);
|
||||
+
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
|
||||
@@ -2005,8 +2005,12 @@ static void service_enter_signal(Service *s, ServiceState state, ServiceResult f
|
||||
}
|
||||
|
||||
service_set_state(s, state);
|
||||
- } else if (state == SERVICE_STOP_SIGTERM || state == SERVICE_STOP_SIGKILL)
|
||||
+ } else if (state == SERVICE_STOP_SIGTERM)
|
||||
+ service_enter_signal(s, SERVICE_STOP_SIGKILL, SERVICE_SUCCESS);
|
||||
+ else if (state == SERVICE_STOP_SIGKILL)
|
||||
service_enter_stop_post(s, SERVICE_SUCCESS);
|
||||
+ else if (state == SERVICE_FINAL_SIGTERM)
|
||||
+ service_enter_signal(s, SERVICE_FINAL_SIGKILL, SERVICE_SUCCESS);
|
||||
else
|
||||
service_enter_dead(s, SERVICE_SUCCESS, true);
|
||||
|
||||
diff --git a/src/core/socket.c b/src/core/socket.c
|
||||
index 6c0ac1a..831876f 100644
|
||||
--- a/src/core/socket.c
|
||||
+++ b/src/core/socket.c
|
||||
@@ -1298,8 +1298,12 @@ static void socket_enter_signal(Socket *s, SocketState state, SocketResult f) {
|
||||
goto fail;
|
||||
|
||||
socket_set_state(s, state);
|
||||
- } else if (state == SOCKET_STOP_PRE_SIGTERM || state == SOCKET_STOP_PRE_SIGKILL)
|
||||
+ } else if (state == SOCKET_STOP_PRE_SIGTERM)
|
||||
+ socket_enter_signal(s, SOCKET_STOP_PRE_SIGKILL, SOCKET_SUCCESS);
|
||||
+ else if (state == SOCKET_STOP_PRE_SIGKILL)
|
||||
socket_enter_stop_post(s, SOCKET_SUCCESS);
|
||||
+ else if (state == SOCKET_FINAL_SIGTERM)
|
||||
+ socket_enter_signal(s, SOCKET_FINAL_SIGKILL, SOCKET_SUCCESS);
|
||||
else
|
||||
socket_enter_dead(s, SOCKET_SUCCESS);
|
||||
|
||||
diff --git a/src/core/swap.c b/src/core/swap.c
|
||||
index a68ab7c..8886fe8 100644
|
||||
--- a/src/core/swap.c
|
||||
+++ b/src/core/swap.c
|
||||
@@ -655,7 +655,11 @@ static void swap_enter_signal(Swap *s, SwapState state, SwapResult f) {
|
||||
goto fail;
|
||||
|
||||
swap_set_state(s, state);
|
||||
- } else
|
||||
+ } else if (state == SWAP_ACTIVATING_SIGTERM)
|
||||
+ swap_enter_signal(s, SWAP_ACTIVATING_SIGKILL, SWAP_SUCCESS);
|
||||
+ else if (state == SWAP_DEACTIVATING_SIGTERM)
|
||||
+ swap_enter_signal(s, SWAP_DEACTIVATING_SIGKILL, SWAP_SUCCESS);
|
||||
+ else
|
||||
swap_enter_dead(s, SWAP_SUCCESS);
|
||||
|
||||
return;
|
||||
--
|
||||
1.8.4
|
||||
|
@ -1,25 +0,0 @@
|
||||
From 0465a409e0a3725b44b0801641a7497e2125e59e Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Fri, 13 Sep 2013 14:12:55 +0200
|
||||
Subject: [PATCH 4/7] random-seed: we should return errno of failed loop_write
|
||||
|
||||
---
|
||||
src/random-seed/random-seed.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/random-seed/random-seed.c b/src/random-seed/random-seed.c
|
||||
index 4776c07..afbd500 100644
|
||||
--- a/src/random-seed/random-seed.c
|
||||
+++ b/src/random-seed/random-seed.c
|
||||
@@ -157,7 +157,7 @@ int main(int argc, char *argv[]) {
|
||||
r = loop_write(seed_fd, buf, (size_t) k, false);
|
||||
if (r <= 0) {
|
||||
log_error("Failed to write new random seed file: %s", r < 0 ? strerror(-r) : "short write");
|
||||
- r = k == 0 ? -EIO : (int) k;
|
||||
+ r = r == 0 ? -EIO : r;
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
1.8.1.4
|
||||
|
134
0004-systemctl-fix-name-mangling-for-sysv-units.patch
Normal file
134
0004-systemctl-fix-name-mangling-for-sysv-units.patch
Normal file
@ -0,0 +1,134 @@
|
||||
From cbb13b2a538ece1c7ec3b210e2b36b47df2a13ea Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= <vpavlin@redhat.com>
|
||||
Date: Wed, 2 Oct 2013 16:42:42 +0200
|
||||
Subject: [PATCH 04/15] systemctl: fix name mangling for sysv units
|
||||
|
||||
---
|
||||
src/systemctl/systemctl.c | 45 ++++++++++++++++++---------------------------
|
||||
1 file changed, 18 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
|
||||
index bb7ada9..d75281f 100644
|
||||
--- a/src/systemctl/systemctl.c
|
||||
+++ b/src/systemctl/systemctl.c
|
||||
@@ -4218,11 +4218,10 @@ static int set_environment(DBusConnection *bus, char **args) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static int enable_sysv_units(char **args) {
|
||||
+static int enable_sysv_units(const char *verb, char **args) {
|
||||
int r = 0;
|
||||
|
||||
#if defined(HAVE_SYSV_COMPAT) && defined(HAVE_CHKCONFIG)
|
||||
- const char *verb = args[0];
|
||||
unsigned f = 1, t = 1;
|
||||
LookupPaths paths = {};
|
||||
|
||||
@@ -4242,7 +4241,7 @@ static int enable_sysv_units(char **args) {
|
||||
return r;
|
||||
|
||||
r = 0;
|
||||
- for (f = 1; args[f]; f++) {
|
||||
+ for (f = 0; args[f]; f++) {
|
||||
const char *name;
|
||||
_cleanup_free_ char *p = NULL, *q = NULL;
|
||||
bool found_native = false, found_sysv;
|
||||
@@ -4365,7 +4364,7 @@ finish:
|
||||
lookup_paths_free(&paths);
|
||||
|
||||
/* Drop all SysV units */
|
||||
- for (f = 1, t = 1; args[f]; f++) {
|
||||
+ for (f = 0, t = 0; args[f]; f++) {
|
||||
|
||||
if (isempty(args[f]))
|
||||
continue;
|
||||
@@ -4423,16 +4422,16 @@ static int enable_unit(DBusConnection *bus, char **args) {
|
||||
|
||||
dbus_error_init(&error);
|
||||
|
||||
- r = enable_sysv_units(args);
|
||||
- if (r < 0)
|
||||
- return r;
|
||||
-
|
||||
if (!args[1])
|
||||
return 0;
|
||||
|
||||
r = mangle_names(args+1, &mangled_names);
|
||||
if (r < 0)
|
||||
- goto finish;
|
||||
+ return r;
|
||||
+
|
||||
+ r = enable_sysv_units(verb, mangled_names);
|
||||
+ if (r < 0)
|
||||
+ return r;
|
||||
|
||||
if (!bus || avoid_bus()) {
|
||||
if (streq(verb, "enable")) {
|
||||
@@ -4624,11 +4623,15 @@ static int unit_is_enabled(DBusConnection *bus, char **args) {
|
||||
_cleanup_dbus_message_unref_ DBusMessage *reply = NULL;
|
||||
bool enabled;
|
||||
char **name;
|
||||
- char *n;
|
||||
+ _cleanup_strv_free_ char **mangled_names = NULL;
|
||||
|
||||
dbus_error_init(&error);
|
||||
|
||||
- r = enable_sysv_units(args);
|
||||
+ r = mangle_names(args+1, &mangled_names);
|
||||
+ if (r < 0)
|
||||
+ return r;
|
||||
+
|
||||
+ r = enable_sysv_units(args[0], mangled_names);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -4636,16 +4639,10 @@ static int unit_is_enabled(DBusConnection *bus, char **args) {
|
||||
|
||||
if (!bus || avoid_bus()) {
|
||||
|
||||
- STRV_FOREACH(name, args+1) {
|
||||
+ STRV_FOREACH(name, mangled_names) {
|
||||
UnitFileState state;
|
||||
|
||||
- n = unit_name_mangle(*name);
|
||||
- if (!n)
|
||||
- return log_oom();
|
||||
-
|
||||
- state = unit_file_get_state(arg_scope, arg_root, n);
|
||||
-
|
||||
- free(n);
|
||||
+ state = unit_file_get_state(arg_scope, arg_root, *name);
|
||||
|
||||
if (state < 0)
|
||||
return state;
|
||||
@@ -4660,13 +4657,9 @@ static int unit_is_enabled(DBusConnection *bus, char **args) {
|
||||
}
|
||||
|
||||
} else {
|
||||
- STRV_FOREACH(name, args+1) {
|
||||
+ STRV_FOREACH(name, mangled_names) {
|
||||
const char *s;
|
||||
|
||||
- n = unit_name_mangle(*name);
|
||||
- if (!n)
|
||||
- return log_oom();
|
||||
-
|
||||
r = bus_method_call_with_reply (
|
||||
bus,
|
||||
"org.freedesktop.systemd1",
|
||||
@@ -4675,11 +4668,9 @@ static int unit_is_enabled(DBusConnection *bus, char **args) {
|
||||
"GetUnitFileState",
|
||||
&reply,
|
||||
NULL,
|
||||
- DBUS_TYPE_STRING, &n,
|
||||
+ DBUS_TYPE_STRING, name,
|
||||
DBUS_TYPE_INVALID);
|
||||
|
||||
- free(n);
|
||||
-
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
--
|
||||
1.8.4
|
||||
|
@ -1,26 +0,0 @@
|
||||
From fa7341808def8efb736747299374745ae059f398 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Fri, 13 Sep 2013 14:31:17 +0200
|
||||
Subject: [PATCH 5/7] core/cgroup: first print then free
|
||||
|
||||
---
|
||||
src/core/cgroup.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/core/cgroup.c b/src/core/cgroup.c
|
||||
index 244baff..1f41efc 100644
|
||||
--- a/src/core/cgroup.c
|
||||
+++ b/src/core/cgroup.c
|
||||
@@ -402,8 +402,8 @@ static int unit_create_cgroups(Unit *u, CGroupControllerMask mask) {
|
||||
is_in_hash = true;
|
||||
|
||||
if (r < 0) {
|
||||
- free(path);
|
||||
log_error("cgroup %s exists already: %s", path, strerror(-r));
|
||||
+ free(path);
|
||||
return r;
|
||||
}
|
||||
|
||||
--
|
||||
1.8.1.4
|
||||
|
@ -0,0 +1,48 @@
|
||||
From 4b93637fd7dddb0a1518f35171998b2c7cd5c5bd Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 2 Oct 2013 19:36:28 +0200
|
||||
Subject: [PATCH 05/15] cryptsetup: fix OOM handling when parsing mount options
|
||||
|
||||
---
|
||||
src/cryptsetup/cryptsetup.c | 11 ++++++-----
|
||||
1 file changed, 6 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c
|
||||
index 22b5eea..769c3e4 100644
|
||||
--- a/src/cryptsetup/cryptsetup.c
|
||||
+++ b/src/cryptsetup/cryptsetup.c
|
||||
@@ -74,7 +74,7 @@ static int parse_one_option(const char *option) {
|
||||
|
||||
t = strdup(option+7);
|
||||
if (!t)
|
||||
- return -ENOMEM;
|
||||
+ return log_oom();
|
||||
|
||||
free(opt_cipher);
|
||||
opt_cipher = t;
|
||||
@@ -89,9 +89,10 @@ static int parse_one_option(const char *option) {
|
||||
} else if (startswith(option, "tcrypt-keyfile=")) {
|
||||
|
||||
opt_type = CRYPT_TCRYPT;
|
||||
- if (path_is_absolute(option+15))
|
||||
- opt_tcrypt_keyfiles = strv_append(opt_tcrypt_keyfiles, strdup(option+15));
|
||||
- else
|
||||
+ if (path_is_absolute(option+15)) {
|
||||
+ if (strv_extend(&opt_tcrypt_keyfiles, option + 15) < 0)
|
||||
+ return log_oom();
|
||||
+ } else
|
||||
log_error("Key file path '%s' is not absolute. Ignoring.", option+15);
|
||||
|
||||
} else if (startswith(option, "keyfile-size=")) {
|
||||
@@ -113,7 +114,7 @@ static int parse_one_option(const char *option) {
|
||||
|
||||
t = strdup(option+5);
|
||||
if (!t)
|
||||
- return -ENOMEM;
|
||||
+ return log_oom();
|
||||
|
||||
free(opt_hash);
|
||||
opt_hash = t;
|
||||
--
|
||||
1.8.4
|
||||
|
25
0006-journald-add-missing-error-check.patch
Normal file
25
0006-journald-add-missing-error-check.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From 8c92d4bbc7a538ada11d7e85016cce141beb0e6c Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 2 Oct 2013 19:36:43 +0200
|
||||
Subject: [PATCH 06/15] journald: add missing error check
|
||||
|
||||
---
|
||||
src/journal/journal-file.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
|
||||
index 1236403..81c344f 100644
|
||||
--- a/src/journal/journal-file.c
|
||||
+++ b/src/journal/journal-file.c
|
||||
@@ -907,6 +907,8 @@ static int journal_file_append_field(
|
||||
|
||||
osize = offsetof(Object, field.payload) + size;
|
||||
r = journal_file_append_object(f, OBJECT_FIELD, osize, &o, &p);
|
||||
+ if (r < 0)
|
||||
+ return r;
|
||||
|
||||
o->field.hash = htole64(hash);
|
||||
memcpy(o->field.payload, field, size);
|
||||
--
|
||||
1.8.4
|
||||
|
@ -1,30 +0,0 @@
|
||||
From dec37dc9e875695c09cfc1ec5e55b5f68eaa39f4 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Gundersen <teg@jklm.no>
|
||||
Date: Fri, 13 Sep 2013 14:46:18 +0200
|
||||
Subject: [PATCH 6/7] swap: fix reverse dependencies
|
||||
|
||||
Make sure swap.target correctly requires/wants the swap units.
|
||||
|
||||
This fixes https://bugs.freedesktop.org/show_bug.cgi?id=69291.
|
||||
|
||||
Reported-by: Hussam Al-Tayeb
|
||||
---
|
||||
src/core/swap.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/core/swap.c b/src/core/swap.c
|
||||
index 57d15eb..3950860 100644
|
||||
--- a/src/core/swap.c
|
||||
+++ b/src/core/swap.c
|
||||
@@ -220,7 +220,7 @@ static int swap_add_default_dependencies(Swap *s) {
|
||||
}
|
||||
|
||||
if (!noauto) {
|
||||
- r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, (nofail ? UNIT_WANTED_BY : UNIT_REQUIRED_BY),
|
||||
+ r = unit_add_two_dependencies_by_name_inverse(UNIT(s), UNIT_AFTER, (nofail ? UNIT_WANTS : UNIT_REQUIRES),
|
||||
SPECIAL_SWAP_TARGET, NULL, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
--
|
||||
1.8.1.4
|
||||
|
34
0007-bus-fix-potentially-uninitialized-memory-access.patch
Normal file
34
0007-bus-fix-potentially-uninitialized-memory-access.patch
Normal file
@ -0,0 +1,34 @@
|
||||
From f5f6e41a9ee008e1632f79ab3fa20beef7c2b613 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 2 Oct 2013 19:37:11 +0200
|
||||
Subject: [PATCH 07/15] bus: fix potentially uninitialized memory access
|
||||
|
||||
---
|
||||
src/libsystemd-bus/bus-internal.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/libsystemd-bus/bus-internal.c b/src/libsystemd-bus/bus-internal.c
|
||||
index 0e66f3d..cac948e 100644
|
||||
--- a/src/libsystemd-bus/bus-internal.c
|
||||
+++ b/src/libsystemd-bus/bus-internal.c
|
||||
@@ -63,7 +63,7 @@ bool object_path_is_valid(const char *p) {
|
||||
|
||||
bool interface_name_is_valid(const char *p) {
|
||||
const char *q;
|
||||
- bool dot, found_dot;
|
||||
+ bool dot, found_dot = false;
|
||||
|
||||
if (isempty(p))
|
||||
return false;
|
||||
@@ -103,7 +103,7 @@ bool interface_name_is_valid(const char *p) {
|
||||
|
||||
bool service_name_is_valid(const char *p) {
|
||||
const char *q;
|
||||
- bool dot, found_dot, unique;
|
||||
+ bool dot, found_dot = false, unique;
|
||||
|
||||
if (isempty(p))
|
||||
return false;
|
||||
--
|
||||
1.8.4
|
||||
|
@ -1,27 +0,0 @@
|
||||
From f90d045c9168a55bb22eef6fe8756b6a6d2c1e53 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Fri, 13 Sep 2013 14:12:54 +0200
|
||||
Subject: [PATCH 7/7] libudev: fix move_later comparison
|
||||
|
||||
At the beginning move_later is set to -1, but it is set to different
|
||||
value only if expression !move_later is true.
|
||||
---
|
||||
src/libudev/libudev-enumerate.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/libudev/libudev-enumerate.c b/src/libudev/libudev-enumerate.c
|
||||
index bc1e37d..8146f27 100644
|
||||
--- a/src/libudev/libudev-enumerate.c
|
||||
+++ b/src/libudev/libudev-enumerate.c
|
||||
@@ -300,7 +300,7 @@ _public_ struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enume
|
||||
/* skip to be delayed devices, and move the to
|
||||
* the point where the prefix changes. We can
|
||||
* only move one item at a time. */
|
||||
- if (!move_later) {
|
||||
+ if (move_later == -1) {
|
||||
move_later_prefix = devices_delay_later(udev_enumerate->udev, entry->syspath);
|
||||
|
||||
if (move_later_prefix > 0) {
|
||||
--
|
||||
1.8.1.4
|
||||
|
30
0008-dbus-fix-return-value-of-dispatch_rqueue.patch
Normal file
30
0008-dbus-fix-return-value-of-dispatch_rqueue.patch
Normal file
@ -0,0 +1,30 @@
|
||||
From 2e8d788c2f90d062f208f8c57a97e7b33cb29f7d Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 2 Oct 2013 19:37:30 +0200
|
||||
Subject: [PATCH 08/15] dbus: fix return value of dispatch_rqueue()
|
||||
|
||||
---
|
||||
src/libsystemd-bus/sd-bus.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/libsystemd-bus/sd-bus.c b/src/libsystemd-bus/sd-bus.c
|
||||
index 3f766fb..db0880f 100644
|
||||
--- a/src/libsystemd-bus/sd-bus.c
|
||||
+++ b/src/libsystemd-bus/sd-bus.c
|
||||
@@ -1215,11 +1215,11 @@ static int dispatch_rqueue(sd_bus *bus, sd_bus_message **m) {
|
||||
if (r == 0)
|
||||
return ret;
|
||||
|
||||
- r = 1;
|
||||
+ ret = 1;
|
||||
} while (!z);
|
||||
|
||||
*m = z;
|
||||
- return 1;
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
int sd_bus_send(sd_bus *bus, sd_bus_message *m, uint64_t *serial) {
|
||||
--
|
||||
1.8.4
|
||||
|
@ -1,90 +0,0 @@
|
||||
From 9981460a8f2d5587fef5216d556b5fb502281be6 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Gundersen <teg@jklm.no>
|
||||
Date: Mon, 16 Sep 2013 01:08:32 +0200
|
||||
Subject: [PATCH 8/8] swap: create .wants symlink to 'auto' swap devices
|
||||
|
||||
As we load unit files lazily, we need to make sure something pulls in swap
|
||||
units that should be started automatically, otherwise the default dependencies
|
||||
will never be applied.
|
||||
|
||||
This partially reinstates code removed in
|
||||
commit 64347fc2b983f33e7efb0fd2bb44e133fb9f30f4.
|
||||
|
||||
Also don't order swap devices after swap.target when they are 'nofail'.
|
||||
---
|
||||
src/core/swap.c | 8 ++++++--
|
||||
src/fstab-generator/fstab-generator.c | 18 ++++++++++++++++--
|
||||
2 files changed, 22 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/core/swap.c b/src/core/swap.c
|
||||
index 3950860..76c7d45 100644
|
||||
--- a/src/core/swap.c
|
||||
+++ b/src/core/swap.c
|
||||
@@ -220,8 +220,12 @@ static int swap_add_default_dependencies(Swap *s) {
|
||||
}
|
||||
|
||||
if (!noauto) {
|
||||
- r = unit_add_two_dependencies_by_name_inverse(UNIT(s), UNIT_AFTER, (nofail ? UNIT_WANTS : UNIT_REQUIRES),
|
||||
- SPECIAL_SWAP_TARGET, NULL, true);
|
||||
+ if (nofail)
|
||||
+ r = unit_add_dependency_by_name_inverse(UNIT(s),
|
||||
+ UNIT_WANTS, SPECIAL_SWAP_TARGET, NULL, true);
|
||||
+ else
|
||||
+ r = unit_add_two_dependencies_by_name_inverse(UNIT(s),
|
||||
+ UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SWAP_TARGET, NULL, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c
|
||||
index 6ebe8aa..b73dfa4 100644
|
||||
--- a/src/fstab-generator/fstab-generator.c
|
||||
+++ b/src/fstab-generator/fstab-generator.c
|
||||
@@ -66,6 +66,7 @@ static int mount_find_pri(struct mntent *me, int *ret) {
|
||||
static int add_swap(const char *what, struct mntent *me) {
|
||||
_cleanup_free_ char *name = NULL, *unit = NULL, *lnk = NULL, *device = NULL;
|
||||
_cleanup_fclose_ FILE *f = NULL;
|
||||
+ bool noauto;
|
||||
int r, pri = -1;
|
||||
|
||||
assert(what);
|
||||
@@ -77,6 +78,8 @@ static int add_swap(const char *what, struct mntent *me) {
|
||||
return pri;
|
||||
}
|
||||
|
||||
+ noauto = !!hasmntopt(me, "noauto");
|
||||
+
|
||||
name = unit_name_from_path(what, ".swap");
|
||||
if (!name)
|
||||
return log_oom();
|
||||
@@ -97,8 +100,7 @@ static int add_swap(const char *what, struct mntent *me) {
|
||||
fprintf(f,
|
||||
"# Automatically generated by systemd-fstab-generator\n\n"
|
||||
"[Unit]\n"
|
||||
- "SourcePath=/etc/fstab\n"
|
||||
- "\n"
|
||||
+ "SourcePath=/etc/fstab\n\n"
|
||||
"[Swap]\n"
|
||||
"What=%s\n",
|
||||
what);
|
||||
@@ -114,6 +116,18 @@ static int add_swap(const char *what, struct mntent *me) {
|
||||
return -errno;
|
||||
}
|
||||
|
||||
+ if (!noauto) {
|
||||
+ lnk = strjoin(arg_dest, "/" SPECIAL_SWAP_TARGET ".wants/", name, NULL);
|
||||
+ if (!lnk)
|
||||
+ return log_oom();
|
||||
+
|
||||
+ mkdir_parents_label(lnk, 0755);
|
||||
+ if (symlink(unit, lnk) < 0) {
|
||||
+ log_error("Failed to create symlink %s: %m", lnk);
|
||||
+ return -errno;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
1.8.1.4
|
||||
|
27
0009-modules-load-fix-error-handling.patch
Normal file
27
0009-modules-load-fix-error-handling.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From b857193b1def5172e3641ca1d5bc9e08ae81aac4 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 2 Oct 2013 19:37:44 +0200
|
||||
Subject: [PATCH 09/15] modules-load: fix error handling
|
||||
|
||||
---
|
||||
src/modules-load/modules-load.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/modules-load/modules-load.c b/src/modules-load/modules-load.c
|
||||
index 7b19ee0..49ee420 100644
|
||||
--- a/src/modules-load/modules-load.c
|
||||
+++ b/src/modules-load/modules-load.c
|
||||
@@ -302,8 +302,8 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
STRV_FOREACH(i, arg_proc_cmdline_modules) {
|
||||
k = load_module(ctx, *i);
|
||||
- if (k < 0)
|
||||
- r = EXIT_FAILURE;
|
||||
+ if (k < 0 && r == 0)
|
||||
+ r = k;
|
||||
}
|
||||
|
||||
r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs);
|
||||
--
|
||||
1.8.4
|
||||
|
26
0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch
Normal file
26
0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 62678deda2dcd43954bf02f783da01e48c7f8fce Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 2 Oct 2013 19:38:09 +0200
|
||||
Subject: [PATCH 10/15] efi: never call qsort on potentially NULL arrays
|
||||
|
||||
---
|
||||
src/shared/efivars.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/shared/efivars.c b/src/shared/efivars.c
|
||||
index 1d5b6f9..c015b16 100644
|
||||
--- a/src/shared/efivars.c
|
||||
+++ b/src/shared/efivars.c
|
||||
@@ -384,7 +384,8 @@ int efi_get_boot_options(uint16_t **options) {
|
||||
list[count ++] = id;
|
||||
}
|
||||
|
||||
- qsort(list, count, sizeof(uint16_t), cmp_uint16);
|
||||
+ if (list)
|
||||
+ qsort(list, count, sizeof(uint16_t), cmp_uint16);
|
||||
|
||||
*options = list;
|
||||
return count;
|
||||
--
|
||||
1.8.4
|
||||
|
27
0011-strv-don-t-access-potentially-NULL-string-arrays.patch
Normal file
27
0011-strv-don-t-access-potentially-NULL-string-arrays.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From 5b4fb02d890d5c9777e9a6e798e0b8922a8a9fd8 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 2 Oct 2013 19:38:28 +0200
|
||||
Subject: [PATCH 11/15] strv: don't access potentially NULL string arrays
|
||||
|
||||
---
|
||||
src/shared/env-util.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/shared/env-util.c b/src/shared/env-util.c
|
||||
index 5e29629..7976881 100644
|
||||
--- a/src/shared/env-util.c
|
||||
+++ b/src/shared/env-util.c
|
||||
@@ -405,7 +405,9 @@ char **strv_env_clean_log(char **e, const char *message) {
|
||||
e[k++] = *p;
|
||||
}
|
||||
|
||||
- e[k] = NULL;
|
||||
+ if (e)
|
||||
+ e[k] = NULL;
|
||||
+
|
||||
return e;
|
||||
}
|
||||
|
||||
--
|
||||
1.8.4
|
||||
|
@ -0,0 +1,26 @@
|
||||
From 69c2b6be8fc607412a13cd0ea03a629b4965c816 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 2 Oct 2013 19:38:52 +0200
|
||||
Subject: [PATCH 12/15] mkdir: pass a proper function pointer to
|
||||
mkdir_safe_internal
|
||||
|
||||
---
|
||||
src/shared/mkdir.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/shared/mkdir.c b/src/shared/mkdir.c
|
||||
index b7e5c6e..43c6ea6 100644
|
||||
--- a/src/shared/mkdir.c
|
||||
+++ b/src/shared/mkdir.c
|
||||
@@ -53,7 +53,7 @@ int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, mkd
|
||||
}
|
||||
|
||||
int mkdir_safe(const char *path, mode_t mode, uid_t uid, gid_t gid) {
|
||||
- return mkdir_safe_internal(path, mode, uid, gid, false);
|
||||
+ return mkdir_safe_internal(path, mode, uid, gid, mkdir);
|
||||
}
|
||||
|
||||
static int is_dir(const char* path) {
|
||||
--
|
||||
1.8.4
|
||||
|
@ -0,0 +1,26 @@
|
||||
From 7074fecf6747c9a6ad872cc87701481e8bece8b0 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Reisner <dreisner@archlinux.org>
|
||||
Date: Wed, 2 Oct 2013 15:35:16 -0400
|
||||
Subject: [PATCH 14/15] tmpfiles.d: include setgid perms for /run/log/journal
|
||||
|
||||
4608af4333d0f7f5 set permissions for journal storage on persistent disk
|
||||
but not the volatile storage.
|
||||
|
||||
ref: https://bugs.archlinux.org/task/37170
|
||||
---
|
||||
tmpfiles.d/systemd.conf | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/tmpfiles.d/systemd.conf b/tmpfiles.d/systemd.conf
|
||||
index b630440..a05c657 100644
|
||||
--- a/tmpfiles.d/systemd.conf
|
||||
+++ b/tmpfiles.d/systemd.conf
|
||||
@@ -26,3 +26,5 @@ F /run/nologin 0644 - - - "System is booting up. See pam_nologin(8)"
|
||||
|
||||
m /var/log/journal 2755 root systemd-journal - -
|
||||
m /var/log/journal/%m 2755 root systemd-journal - -
|
||||
+m /run/log/journal 2755 root systemd-journal - -
|
||||
+m /run/log/journal/%m 2755 root systemd-journal - -
|
||||
--
|
||||
1.8.4
|
||||
|
10
1009-make-xsltproc-use-correct-ROFF-links.patch
Normal file
10
1009-make-xsltproc-use-correct-ROFF-links.patch
Normal file
@ -0,0 +1,10 @@
|
||||
--- systemd-208/man/custom-man.xsl
|
||||
+++ systemd-208/man/custom-man.xsl 2013-10-21 09:23:31.030735259 +0000
|
||||
@@ -61,4 +61,7 @@
|
||||
<xsl:text>"</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
+<xsl:param name="man.output.in.separate.dir" select="1"></xsl:param>
|
||||
+<xsl:param name="man.output.base.dir"></xsl:param>
|
||||
+
|
||||
</xsl:stylesheet>
|
13
1010-do-not-install-sulogin-unit-with-poweroff.patch
Normal file
13
1010-do-not-install-sulogin-unit-with-poweroff.patch
Normal file
@ -0,0 +1,13 @@
|
||||
|
|
||||
| Belongs to bnc#849071 that is do not install console-shell.service
|
||||
| in any system target as this will cause automatic poweroff at boot.
|
||||
|
|
||||
--- systemd-208/units/console-shell.service.m4.in
|
||||
+++ systemd-208/units/console-shell.service.m4.in 2013-11-06 09:35:37.958693570 +0000
|
||||
@@ -26,6 +26,3 @@ StandardError=inherit
|
||||
KillMode=process
|
||||
IgnoreSIGPIPE=no
|
||||
SendSIGHUP=yes
|
||||
-
|
||||
-[Install]
|
||||
-WantedBy=getty.target
|
62
1011-check-4-valid-kmsg-device.patch
Normal file
62
1011-check-4-valid-kmsg-device.patch
Normal file
@ -0,0 +1,62 @@
|
||||
From: Werner Fink <werner@suse.de>
|
||||
Date: Thu, 21 Nov 2013 11:50:32 +0000
|
||||
Subject: [PATCH] Avoid busy systemd-journald
|
||||
|
||||
Avoid a busy systemd-journald due polling a broken /dec/kmsg in lxc
|
||||
environments.
|
||||
|
||||
---
|
||||
journald-kmsg.c | 18 +++++++++++++++---
|
||||
1 file changed, 15 insertions(+), 3 deletions(-)
|
||||
|
||||
Index: systemd-208/src/journal/journald-kmsg.c
|
||||
===================================================================
|
||||
--- systemd-208/src/journal/journald-kmsg.c
|
||||
+++ systemd-208/src/journal/journald-kmsg.c 2013-12-20 11:34:39.762236175 +0000
|
||||
@@ -377,15 +377,18 @@ int server_flush_dev_kmsg(Server *s) {
|
||||
|
||||
int server_open_dev_kmsg(Server *s) {
|
||||
struct epoll_event ev;
|
||||
+ int r;
|
||||
|
||||
assert(s);
|
||||
|
||||
s->dev_kmsg_fd = open("/dev/kmsg", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY);
|
||||
if (s->dev_kmsg_fd < 0) {
|
||||
- log_warning("Failed to open /dev/kmsg, ignoring: %m");
|
||||
+ log_full(errno == ENOENT ? LOG_DEBUG : LOG_WARNING,
|
||||
+ "Failed to open /dev/kmsg, ignoring: %m");
|
||||
return 0;
|
||||
}
|
||||
|
||||
+ r = 0;
|
||||
zero(ev);
|
||||
ev.events = EPOLLIN;
|
||||
ev.data.fd = s->dev_kmsg_fd;
|
||||
@@ -394,15 +397,24 @@ int server_open_dev_kmsg(Server *s) {
|
||||
/* This will fail with EPERM on older kernels where
|
||||
* /dev/kmsg is not readable. */
|
||||
if (errno == EPERM)
|
||||
- return 0;
|
||||
+ goto fail;
|
||||
|
||||
log_error("Failed to add /dev/kmsg fd to epoll object: %m");
|
||||
- return -errno;
|
||||
+ r = -errno;
|
||||
+ goto fail;
|
||||
}
|
||||
|
||||
s->dev_kmsg_readable = true;
|
||||
|
||||
return 0;
|
||||
+
|
||||
+fail:
|
||||
+ if (s->dev_kmsg_fd >= 0) {
|
||||
+ close_nointr_nofail(s->dev_kmsg_fd);
|
||||
+ s->dev_kmsg_fd = -1;
|
||||
+ }
|
||||
+
|
||||
+ return r;
|
||||
}
|
||||
|
||||
int server_open_kernel_seqnum(Server *s) {
|
@ -0,0 +1,168 @@
|
||||
Based on upstream baae0358f349870544884e405e82e4be7d8add9f
|
||||
| From: Lennart Poettering <lennart@poettering.net>
|
||||
| Date: Tue, 26 Nov 2013 04:05:00 +0000
|
||||
| Subject: pam_systemd: do not set XDG_RUNTIME_DIR if the session's original user is not the same as the newly logged in one
|
||||
| It's better not to set any XDG_RUNTIME_DIR at all rather than one of a
|
||||
| different user. So let's do this.
|
||||
--- systemd-208/src/login/logind-dbus.c
|
||||
+++ systemd-208/src/login/logind-dbus.c 2013-11-26 13:37:05.730735774 +0000
|
||||
@@ -523,6 +523,7 @@ static int bus_manager_create_session(Ma
|
||||
DBUS_TYPE_OBJECT_PATH, &path,
|
||||
DBUS_TYPE_STRING, &session->user->runtime_path,
|
||||
DBUS_TYPE_UNIX_FD, &fifo_fd,
|
||||
+ DBUS_TYPE_UINT32, &session->user->uid,
|
||||
DBUS_TYPE_STRING, &cseat,
|
||||
DBUS_TYPE_UINT32, &vtnr,
|
||||
DBUS_TYPE_BOOLEAN, &exists,
|
||||
--- systemd-208/src/login/logind-session-dbus.c
|
||||
+++ systemd-208/src/login/logind-session-dbus.c 2013-11-26 13:36:07.478236401 +0000
|
||||
@@ -755,6 +755,7 @@ int session_send_create_reply(Session *s
|
||||
DBUS_TYPE_OBJECT_PATH, &path,
|
||||
DBUS_TYPE_STRING, &s->user->runtime_path,
|
||||
DBUS_TYPE_UNIX_FD, &fifo_fd,
|
||||
+ DBUS_TYPE_UINT32, &s->user->uid,
|
||||
DBUS_TYPE_STRING, &cseat,
|
||||
DBUS_TYPE_UINT32, &vtnr,
|
||||
DBUS_TYPE_BOOLEAN, &exists,
|
||||
--- systemd-208/src/login/pam-module.c
|
||||
+++ systemd-208/src/login/pam-module.c 2013-11-26 14:32:20.194235777 +0000
|
||||
@@ -93,24 +93,18 @@ static int get_user_data(
|
||||
assert(ret_username);
|
||||
assert(ret_pw);
|
||||
|
||||
- r = audit_loginuid_from_pid(0, &uid);
|
||||
- if (r >= 0)
|
||||
- pw = pam_modutil_getpwuid(handle, uid);
|
||||
- else {
|
||||
- r = pam_get_user(handle, &username, NULL);
|
||||
- if (r != PAM_SUCCESS) {
|
||||
- pam_syslog(handle, LOG_ERR, "Failed to get user name.");
|
||||
- return r;
|
||||
- }
|
||||
-
|
||||
- if (isempty(username)) {
|
||||
- pam_syslog(handle, LOG_ERR, "User name not valid.");
|
||||
- return PAM_AUTH_ERR;
|
||||
- }
|
||||
+ r = pam_get_user(handle, &username, NULL);
|
||||
+ if (r != PAM_SUCCESS) {
|
||||
+ pam_syslog(handle, LOG_ERR, "Failed to get user name.");
|
||||
+ return r;
|
||||
+ }
|
||||
|
||||
- pw = pam_modutil_getpwnam(handle, username);
|
||||
+ if (isempty(username)) {
|
||||
+ pam_syslog(handle, LOG_ERR, "User name not valid.");
|
||||
+ return PAM_AUTH_ERR;
|
||||
}
|
||||
|
||||
+ pw = pam_modutil_getpwnam(handle, username);
|
||||
if (!pw) {
|
||||
pam_syslog(handle, LOG_ERR, "Failed to get user data.");
|
||||
return PAM_USER_UNKNOWN;
|
||||
@@ -123,16 +117,14 @@ static int get_user_data(
|
||||
}
|
||||
|
||||
static int get_seat_from_display(const char *display, const char **seat, uint32_t *vtnr) {
|
||||
- _cleanup_free_ char *p = NULL;
|
||||
- int r;
|
||||
- _cleanup_close_ int fd = -1;
|
||||
union sockaddr_union sa = {
|
||||
.un.sun_family = AF_UNIX,
|
||||
};
|
||||
+ _cleanup_free_ char *p = NULL, *tty = NULL;
|
||||
+ _cleanup_close_ int fd = -1;
|
||||
struct ucred ucred;
|
||||
socklen_t l;
|
||||
- _cleanup_free_ char *tty = NULL;
|
||||
- int v;
|
||||
+ int v, r;
|
||||
|
||||
assert(display);
|
||||
assert(vtnr);
|
||||
@@ -194,13 +186,12 @@ _public_ PAM_EXTERN int pam_sm_open_sess
|
||||
dbus_bool_t remote, existing;
|
||||
int r;
|
||||
uint32_t vtnr = 0;
|
||||
+ uid_t original_uid;
|
||||
|
||||
assert(handle);
|
||||
|
||||
dbus_error_init(&error);
|
||||
|
||||
- /* pam_syslog(handle, LOG_INFO, "pam-systemd initializing"); */
|
||||
-
|
||||
/* Make this a NOP on non-logind systems */
|
||||
if (!logind_running())
|
||||
return PAM_SUCCESS;
|
||||
@@ -213,6 +204,9 @@ _public_ PAM_EXTERN int pam_sm_open_sess
|
||||
goto finish;
|
||||
}
|
||||
|
||||
+ if (debug)
|
||||
+ pam_syslog(handle, LOG_INFO, "pam-systemd initializing");
|
||||
+
|
||||
r = get_user_data(handle, &username, &pw);
|
||||
if (r != PAM_SUCCESS)
|
||||
goto finish;
|
||||
@@ -374,7 +368,11 @@ _public_ PAM_EXTERN int pam_sm_open_sess
|
||||
if (debug)
|
||||
pam_syslog(handle, LOG_DEBUG, "Asking logind to create session: "
|
||||
"uid=%u pid=%u service=%s type=%s class=%s seat=%s vtnr=%u tty=%s display=%s remote=%s remote_user=%s remote_host=%s",
|
||||
- uid, pid, service, type, class, seat, vtnr, tty, display, yes_no(remote), remote_user, remote_host);
|
||||
+ pw->pw_uid, pid,
|
||||
+ strempty(service),
|
||||
+ type, class,
|
||||
+ seat, vtnr, tty, display,
|
||||
+ yes_no(remote), remote_user, remote_host);
|
||||
|
||||
reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error);
|
||||
if (!reply) {
|
||||
@@ -388,6 +386,7 @@ _public_ PAM_EXTERN int pam_sm_open_sess
|
||||
DBUS_TYPE_OBJECT_PATH, &object_path,
|
||||
DBUS_TYPE_STRING, &runtime_path,
|
||||
DBUS_TYPE_UNIX_FD, &session_fd,
|
||||
+ DBUS_TYPE_UINT32, &original_uid,
|
||||
DBUS_TYPE_STRING, &seat,
|
||||
DBUS_TYPE_UINT32, &vtnr,
|
||||
DBUS_TYPE_BOOLEAN, &existing,
|
||||
@@ -399,8 +398,8 @@ _public_ PAM_EXTERN int pam_sm_open_sess
|
||||
|
||||
if (debug)
|
||||
pam_syslog(handle, LOG_DEBUG, "Reply from logind: "
|
||||
- "id=%s object_path=%s runtime_path=%s session_fd=%d seat=%s vtnr=%u",
|
||||
- id, object_path, runtime_path, session_fd, seat, vtnr);
|
||||
+ "id=%s object_path=%s runtime_path=%s session_fd=%d seat=%s vtnr=%u original_uid=%u",
|
||||
+ id, object_path, runtime_path, session_fd, seat, vtnr, original_uid);
|
||||
|
||||
r = pam_misc_setenv(handle, "XDG_SESSION_ID", id, 0);
|
||||
if (r != PAM_SUCCESS) {
|
||||
@@ -408,10 +407,24 @@ _public_ PAM_EXTERN int pam_sm_open_sess
|
||||
goto finish;
|
||||
}
|
||||
|
||||
- r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", runtime_path, 0);
|
||||
- if (r != PAM_SUCCESS) {
|
||||
- pam_syslog(handle, LOG_ERR, "Failed to set runtime dir.");
|
||||
- goto finish;
|
||||
+ if (original_uid == pw->pw_uid) {
|
||||
+ /* Don't set $XDG_RUNTIME_DIR if the user we now
|
||||
+ * authenticated for does not match the original user
|
||||
+ * of the session. We do this in order not to result
|
||||
+ * in privileged apps clobbering the runtime directory
|
||||
+ * unnecessarily. */
|
||||
+
|
||||
+ r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", runtime_path, 0);
|
||||
+ if (r != PAM_SUCCESS) {
|
||||
+ pam_syslog(handle, LOG_ERR, "Failed to set runtime dir.");
|
||||
+ goto finish;
|
||||
+ }
|
||||
+ } else if (getenv("XDG_RUNTIME_DIR")) {
|
||||
+ r = pam_putenv(handle, "XDG_RUNTIME_DIR");
|
||||
+ if (r != PAM_SUCCESS && r != PAM_BAD_ITEM) {
|
||||
+ pam_syslog(handle, LOG_ERR, "Failed to unset runtime dir.");
|
||||
+ }
|
||||
+ (void) unsetenv("XDG_RUNTIME_DIR");
|
||||
}
|
||||
|
||||
if (!isempty(seat)) {
|
52
1014-journald-with-journaling-FS.patch
Normal file
52
1014-journald-with-journaling-FS.patch
Normal file
@ -0,0 +1,52 @@
|
||||
--- systemd-208/src/journal/journald-server.c
|
||||
+++ systemd-208/src/journal/journald-server.c 2013-12-10 16:31:50.770235717 +0000
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
#include <sys/signalfd.h>
|
||||
#include <sys/ioctl.h>
|
||||
+#include <linux/fs.h>
|
||||
#include <linux/sockios.h>
|
||||
#include <sys/statvfs.h>
|
||||
#include <sys/mman.h>
|
||||
@@ -878,7 +879,7 @@ finish:
|
||||
|
||||
|
||||
static int system_journal_open(Server *s) {
|
||||
- int r;
|
||||
+ int r, fd;
|
||||
char *fn;
|
||||
sd_id128_t machine;
|
||||
char ids[33];
|
||||
@@ -905,7 +906,31 @@ static int system_journal_open(Server *s
|
||||
(void) mkdir("/var/log/journal/", 0755);
|
||||
|
||||
fn = strappenda("/var/log/journal/", ids);
|
||||
- (void) mkdir(fn, 0755);
|
||||
+ (void)mkdir(fn, 0755);
|
||||
+
|
||||
+ /*
|
||||
+ * 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 one unkown flag (like BtrFS does).
|
||||
+ */
|
||||
+ if ((fd = open(fn, O_DIRECTORY)) >= 0) {
|
||||
+ long flags;
|
||||
+ if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == 0) {
|
||||
+ int 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) && s->compress) {
|
||||
+ flags &= ~FS_COMPR_FL;
|
||||
+ flags |= FS_NOCOMP_FL;
|
||||
+ }
|
||||
+ if (old != flags)
|
||||
+ ioctl(fd, FS_IOC_SETFLAGS, flags);
|
||||
+ }
|
||||
+ close(fd);
|
||||
+ }
|
||||
|
||||
fn = strappenda(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);
|
90
1016-support-powerfail-with-powerstatus.patch
Normal file
90
1016-support-powerfail-with-powerstatus.patch
Normal file
@ -0,0 +1,90 @@
|
||||
--- systemd-208/units/sigpwr.target
|
||||
+++ systemd-208/units/sigpwr.target 2014-01-14 15:53:32.878735762 +0000
|
||||
@@ -8,3 +8,5 @@
|
||||
[Unit]
|
||||
Description=Power Failure
|
||||
Documentation=man:systemd.special(7)
|
||||
+BindsTo=powerfail.service
|
||||
+DefaultDependencies=no
|
||||
+RefuseManualStart=yes
|
||||
--- systemd-208/units/powerfail.service
|
||||
+++ systemd-208/units/powerfail.service 2014-01-14 16:11:41.802235712 +0000
|
||||
@@ -0,0 +1,21 @@
|
||||
+# This file is part of systemd.
|
||||
+#
|
||||
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Germany.
|
||||
+# Author: Werner Fink
|
||||
+# Please send feedback to http://www.suse.de/feedback
|
||||
+#
|
||||
+# Description:
|
||||
+#
|
||||
+# Used to start the systemd-powerfail.service
|
||||
+#
|
||||
+
|
||||
+[Unit]
|
||||
+Description=powerfail handling
|
||||
+BindsTo=sigpwr.target
|
||||
+DefaultDependencies=no
|
||||
+RefuseManualStart=yes
|
||||
+
|
||||
+[Service]
|
||||
+Type=oneshot
|
||||
+ExecStart=/usr/lib/systemd/systemd-powerfail
|
||||
+RemainAfterExit=false
|
||||
--- systemd-208/man/systemd-powerfail.service.8
|
||||
+++ systemd-208/man/systemd-powerfail.service.8 2014-01-14 18:22:21.286735810 +0000
|
||||
@@ -0,0 +1,54 @@
|
||||
+'\" t
|
||||
+.TH "SYSTEMD\-POWERFAIL\&.SERVICE" "8" "" "systemd 208" "systemd-powerfail.service"
|
||||
+.\" -----------------------------------------------------------------
|
||||
+.\" * Define some portability stuff
|
||||
+.\" -----------------------------------------------------------------
|
||||
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
+.\" http://bugs.debian.org/507673
|
||||
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
|
||||
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
+.ie \n(.g .ds Aq \(aq
|
||||
+.el .ds Aq '
|
||||
+.\" -----------------------------------------------------------------
|
||||
+.\" * set default formatting
|
||||
+.\" -----------------------------------------------------------------
|
||||
+.\" disable hyphenation
|
||||
+.nh
|
||||
+.\" disable justification (adjust text to left margin only)
|
||||
+.ad l
|
||||
+.\" -----------------------------------------------------------------
|
||||
+.\" * MAIN CONTENT STARTS HERE *
|
||||
+.\" -----------------------------------------------------------------
|
||||
+.SH "NAME"
|
||||
+systemd-powerfail.service, systemd-powerfail \- Power Fail signal handling
|
||||
+.SH "SYNOPSIS"
|
||||
+.PP
|
||||
+systemd\-powerfail\&.service
|
||||
+.PP
|
||||
+/usr/lib/systemd/systemd\-powerfail
|
||||
+.SH "DESCRIPTION"
|
||||
+.PP
|
||||
+systemd\-powerfail
|
||||
+is a system service that is used to evaulate the content of
|
||||
+\fI/var/run/powerstatus\fR. Based on the content of this
|
||||
+file:
|
||||
+.IP F(AIL)
|
||||
+Power is failing, UPS is providing the power. The
|
||||
+systemd\-powerfail
|
||||
+is now doing a timed shutdown.
|
||||
+.IP O(K)
|
||||
+The power has been restored, and pending shutdown
|
||||
+will be cancled.
|
||||
+.IP L(OW)
|
||||
+The power is failing and the UPS has a low battery.
|
||||
+The
|
||||
+systemd\-powerfail
|
||||
+is doing an immediate shutdown.
|
||||
+.PP
|
||||
+If \fI/var/run/powerstatus\fR doesn't exist or contains anything else then the letters
|
||||
+F, O or L, systemd\-powerfail will behave as if it has read the letter F.
|
||||
+.PP
|
||||
+.SH "SEE ALSO"
|
||||
+.PP
|
||||
+\fBshutdown\fR(8),
|
||||
+\fBpowerd\fR(8)
|
20
1017-skip-native-unit-handling-if-sysv-already-handled.patch
Normal file
20
1017-skip-native-unit-handling-if-sysv-already-handled.patch
Normal file
@ -0,0 +1,20 @@
|
||||
For bnc#818044
|
||||
Based on http://cgit.freedesktop.org/systemd/systemd/patch/?id=67d6621059085963a2a908a3ea99ced3b0ca789e
|
||||
---
|
||||
systemctl.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
--- systemd-208/src/systemctl/systemctl.c
|
||||
+++ systemd-208/src/systemctl/systemctl.c 2014-01-21 13:00:52.910736187 +0000
|
||||
@@ -4453,6 +4453,11 @@ static int enable_unit(DBusConnection *b
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
+ /* If the operation was fully executed by the SysV compat,
|
||||
+ * let's finish early */
|
||||
+ if (strv_isempty(mangled_names))
|
||||
+ return 0;
|
||||
+
|
||||
if (!bus || avoid_bus()) {
|
||||
if (streq(verb, "enable")) {
|
||||
r = unit_file_enable(arg_scope, arg_runtime, arg_root, mangled_names, arg_force, &changes, &n_changes);
|
51
1018-Make-LSB-Skripts-know-about-Required-and-Should.patch
Normal file
51
1018-Make-LSB-Skripts-know-about-Required-and-Should.patch
Normal file
@ -0,0 +1,51 @@
|
||||
--- systemd-208/src/core/service.c
|
||||
+++ systemd-208/src/core/service.c 2014-01-17 12:15:52.527311588 +0000
|
||||
@@ -380,6 +380,8 @@ static int sysv_translate_facility(const
|
||||
"remote_fs", SPECIAL_REMOTE_FS_TARGET,
|
||||
"syslog", NULL,
|
||||
"time", SPECIAL_TIME_SYNC_TARGET,
|
||||
+ "all", SPECIAL_DEFAULT_TARGET,
|
||||
+ "null", NULL,
|
||||
};
|
||||
|
||||
unsigned i;
|
||||
@@ -389,7 +391,7 @@ static int sysv_translate_facility(const
|
||||
assert(name);
|
||||
assert(_r);
|
||||
|
||||
- n = *name == '$' ? name + 1 : name;
|
||||
+ n = (*name == '$' || *name == '+') ? name + 1 : name;
|
||||
|
||||
for (i = 0; i < ELEMENTSOF(table); i += 2) {
|
||||
|
||||
@@ -816,10 +818,13 @@ static int service_load_sysv_path(Servic
|
||||
startswith_no_case(t, "Should-Start:") ||
|
||||
startswith_no_case(t, "X-Start-Before:") ||
|
||||
startswith_no_case(t, "X-Start-After:")) {
|
||||
+ UnitDependency d, e;
|
||||
char *i, *w;
|
||||
size_t z;
|
||||
|
||||
state = LSB;
|
||||
+ d = startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER;
|
||||
+ e = startswith_no_case(t, "Required-Start:") ? UNIT_REQUIRES_OVERRIDABLE : UNIT_WANTS;
|
||||
|
||||
FOREACH_WORD_QUOTED(w, z, strchr(t, ':')+1, i) {
|
||||
char *n, *m;
|
||||
@@ -838,12 +843,15 @@ static int service_load_sysv_path(Servic
|
||||
continue;
|
||||
}
|
||||
|
||||
+ if (*n == '+')
|
||||
+ e = UNIT_WANTS;
|
||||
+
|
||||
free(n);
|
||||
|
||||
if (r == 0)
|
||||
continue;
|
||||
|
||||
- r = unit_add_dependency_by_name(u, startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER, m, NULL, true);
|
||||
+ r = unit_add_two_dependencies_by_name(u, d, e, m, NULL, true);
|
||||
|
||||
if (r < 0)
|
||||
log_error_unit(u->id, "[%s:%u] Failed to add dependency on %s, ignoring: %s",
|
236
1019-make-completion-smart-to-be-able-to-redirect.patch
Normal file
236
1019-make-completion-smart-to-be-able-to-redirect.patch
Normal file
@ -0,0 +1,236 @@
|
||||
--- systemd-208/shell-completion/bash/hostnamectl
|
||||
+++ systemd-208/shell-completion/bash/hostnamectl 2014-01-17 14:27:16.183272019 +0000
|
||||
@@ -30,6 +30,10 @@ _hostnamectl() {
|
||||
local OPTS='-h --help --version --transient --static --pretty
|
||||
--no-ask-password -H --host'
|
||||
|
||||
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
|
||||
+ return 0
|
||||
+ fi
|
||||
+
|
||||
if [[ $cur = -* ]]; then
|
||||
COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") )
|
||||
return 0
|
||||
@@ -58,4 +62,4 @@ _hostnamectl() {
|
||||
return 0
|
||||
}
|
||||
|
||||
-complete -F _hostnamectl hostnamectl
|
||||
+complete -o default -o bashdefault -F _hostnamectl hostnamectl
|
||||
--- systemd-208/shell-completion/bash/journalctl
|
||||
+++ systemd-208/shell-completion/bash/journalctl 2014-01-17 14:34:30.338737694 +0000
|
||||
@@ -49,6 +49,10 @@ _journalctl() {
|
||||
--verify-key'
|
||||
)
|
||||
|
||||
+ 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)
|
||||
@@ -107,4 +111,4 @@ _journalctl() {
|
||||
fi
|
||||
}
|
||||
|
||||
-complete -F _journalctl journalctl
|
||||
+complete -o default -o bashdefault -F _journalctl journalctl
|
||||
--- systemd-208/shell-completion/bash/kernel-install
|
||||
+++ systemd-208/shell-completion/bash/kernel-install 2014-01-17 14:34:41.982255874 +0000
|
||||
@@ -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
|
||||
--- systemd-208/shell-completion/bash/localectl
|
||||
+++ systemd-208/shell-completion/bash/localectl 2014-01-17 14:34:52.546235747 +0000
|
||||
@@ -30,6 +30,10 @@ _localectl() {
|
||||
local OPTS='-h --help --version --no-convert --no-pager --no-ask-password
|
||||
-H --host'
|
||||
|
||||
+ 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 @@ _localectl() {
|
||||
return 0
|
||||
}
|
||||
|
||||
-complete -F _localectl localectl
|
||||
+complete -o default -o bashdefault -F _localectl localectl
|
||||
--- systemd-208/shell-completion/bash/loginctl
|
||||
+++ systemd-208/shell-completion/bash/loginctl 2014-01-17 14:35:03.386245699 +0000
|
||||
@@ -37,6 +37,10 @@ _loginctl () {
|
||||
[ARG]='--host -H --kill-who --property -p --signal -s'
|
||||
)
|
||||
|
||||
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
|
||||
+ return 0
|
||||
+ fi
|
||||
+
|
||||
if __contains_word "$prev" ${OPTS[ARG]}; then
|
||||
case $prev in
|
||||
--signal|-s)
|
||||
@@ -106,4 +110,4 @@ _loginctl () {
|
||||
return 0
|
||||
}
|
||||
|
||||
-complete -F _loginctl loginctl
|
||||
+complete -o default -o bashdefault -F _loginctl loginctl
|
||||
--- systemd-208/shell-completion/bash/systemctl
|
||||
+++ systemd-208/shell-completion/bash/systemctl 2014-01-17 14:35:26.506235666 +0000
|
||||
@@ -77,6 +77,10 @@ _systemctl () {
|
||||
[ARG]='--host -H --kill-mode --kill-who --property -p --signal -s --type -t --state --root'
|
||||
)
|
||||
|
||||
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
|
||||
+ return 0
|
||||
+ fi
|
||||
+
|
||||
if __contains_word "--user" ${COMP_WORDS[*]}; then
|
||||
mode=--user
|
||||
else
|
||||
@@ -226,4 +230,4 @@ _systemctl () {
|
||||
return 0
|
||||
}
|
||||
|
||||
-complete -F _systemctl systemctl
|
||||
+complete -o default -o bashdefault -F _systemctl systemctl
|
||||
--- systemd-208/shell-completion/bash/systemd-analyze
|
||||
+++ systemd-208/shell-completion/bash/systemd-analyze 2014-01-17 14:35:38.366736021 +0000
|
||||
@@ -37,6 +37,10 @@ _systemd_analyze() {
|
||||
[LOG_LEVEL]='set-log-level'
|
||||
)
|
||||
|
||||
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
|
||||
+ return 0
|
||||
+ fi
|
||||
+
|
||||
_init_completion || return
|
||||
|
||||
for ((i=0; $i <= $COMP_CWORD; i++)); do
|
||||
@@ -83,4 +87,4 @@ _systemd_analyze() {
|
||||
return 0
|
||||
}
|
||||
|
||||
-complete -F _systemd_analyze systemd-analyze
|
||||
+complete -o default -o bashdefault -F _systemd_analyze systemd-analyze
|
||||
--- systemd-208/shell-completion/bash/systemd-coredumpctl
|
||||
+++ systemd-208/shell-completion/bash/systemd-coredumpctl 2014-01-17 14:35:46.434235632 +0000
|
||||
@@ -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 systemd-coredumpctl
|
||||
+complete -o default -o bashdefault -F _coredumpctl systemd-coredumpctl
|
||||
--- systemd-208/shell-completion/bash/systemd-run
|
||||
+++ systemd-208/shell-completion/bash/systemd-run 2014-01-17 14:35:55.938236298 +0000
|
||||
@@ -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 "$@"
|
||||
@@ -31,6 +38,11 @@ _systemd_run() {
|
||||
|
||||
local mode=--system
|
||||
local i
|
||||
+
|
||||
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
|
||||
+ return 0
|
||||
+ fi
|
||||
+
|
||||
for (( i=1; i <= COMP_CWORD; i++ )); do
|
||||
if [[ ${COMP_WORDS[i]} != -* ]]; then
|
||||
local root_command=${COMP_WORDS[i]}
|
||||
@@ -60,4 +72,4 @@ _systemd_run() {
|
||||
return 0
|
||||
}
|
||||
|
||||
-complete -F _systemd_run systemd-run
|
||||
+complete -o default -o bashdefault -F _systemd_run systemd-run
|
||||
--- systemd-208/shell-completion/bash/timedatectl
|
||||
+++ systemd-208/shell-completion/bash/timedatectl 2014-01-17 14:36:06.182735466 +0000
|
||||
@@ -30,6 +30,10 @@ _timedatectl() {
|
||||
local OPTS='-h --help --version --adjust-system-clock --no-pager
|
||||
--no-ask-password -H --host'
|
||||
|
||||
+ 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
|
||||
--- systemd-208/shell-completion/bash/udevadm
|
||||
+++ systemd-208/shell-completion/bash/udevadm 2014-01-17 14:36:16.406236120 +0000
|
||||
@@ -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
|
@ -10,8 +10,10 @@ Conflicts:
|
||||
src/core/service.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++-----
|
||||
1 file changed, 46 insertions(+), 5 deletions(-)
|
||||
|
||||
--- systemd-206.orig/src/core/service.c
|
||||
+++ systemd-206/src/core/service.c
|
||||
Index: systemd-208/src/core/service.c
|
||||
===================================================================
|
||||
--- systemd-208.orig/src/core/service.c
|
||||
+++ systemd-208/src/core/service.c
|
||||
@@ -51,7 +51,8 @@
|
||||
|
||||
typedef enum RunlevelType {
|
||||
@ -53,7 +55,7 @@ Conflicts:
|
||||
#endif
|
||||
|
||||
static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = {
|
||||
@@ -334,6 +347,9 @@ static char *sysv_translate_name(const c
|
||||
@@ -340,6 +353,9 @@ static char *sysv_translate_name(const c
|
||||
if (endswith(name, ".sh"))
|
||||
/* Drop .sh suffix */
|
||||
strcpy(stpcpy(r, name) - 3, ".service");
|
||||
@ -63,7 +65,7 @@ Conflicts:
|
||||
else
|
||||
/* Normal init script name */
|
||||
strcpy(stpcpy(r, name), ".service");
|
||||
@@ -936,6 +952,13 @@ static int service_load_sysv_path(Servic
|
||||
@@ -942,6 +958,13 @@ static int service_load_sysv_path(Servic
|
||||
|
||||
if ((r = sysv_exec_commands(s, supports_reload)) < 0)
|
||||
goto finish;
|
||||
@ -77,7 +79,7 @@ Conflicts:
|
||||
|
||||
if (s->sysv_runlevels && !chars_intersect(RUNLEVELS_UP, s->sysv_runlevels)) {
|
||||
/* If there a runlevels configured for this service
|
||||
@@ -1017,6 +1040,9 @@ static int service_load_sysv_name(Servic
|
||||
@@ -1023,6 +1046,9 @@ static int service_load_sysv_name(Servic
|
||||
if (endswith(name, ".sh.service"))
|
||||
return -ENOENT;
|
||||
|
||||
@ -87,7 +89,7 @@ Conflicts:
|
||||
STRV_FOREACH(p, UNIT(s)->manager->lookup_paths.sysvinit_path) {
|
||||
char *path;
|
||||
int r;
|
||||
@@ -1037,6 +1063,18 @@ static int service_load_sysv_name(Servic
|
||||
@@ -1043,6 +1069,18 @@ static int service_load_sysv_name(Servic
|
||||
}
|
||||
free(path);
|
||||
|
||||
@ -106,7 +108,7 @@ Conflicts:
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -3587,7 +3625,7 @@ static int service_enumerate(Manager *m)
|
||||
@@ -3574,7 +3612,7 @@ static int service_enumerate(Manager *m)
|
||||
|
||||
if (de->d_name[0] == 'S') {
|
||||
|
||||
@ -115,7 +117,7 @@ Conflicts:
|
||||
SERVICE(service)->sysv_start_priority_from_rcnd =
|
||||
MAX(a*10 + b, SERVICE(service)->sysv_start_priority_from_rcnd);
|
||||
|
||||
@@ -3604,7 +3642,8 @@ static int service_enumerate(Manager *m)
|
||||
@@ -3591,7 +3629,8 @@ static int service_enumerate(Manager *m)
|
||||
goto finish;
|
||||
|
||||
} else if (de->d_name[0] == 'K' &&
|
||||
@ -125,7 +127,7 @@ Conflicts:
|
||||
|
||||
r = set_ensure_allocated(&shutdown_services,
|
||||
trivial_hash_func, trivial_compare_func);
|
||||
@@ -3644,7 +3683,9 @@ static int service_enumerate(Manager *m)
|
||||
@@ -3631,7 +3670,9 @@ static int service_enumerate(Manager *m)
|
||||
* runlevels we assume the stop jobs will be implicitly added
|
||||
* by the core logic. Also, we don't really distinguish here
|
||||
* between the runlevels 0 and 6 and just add them to the
|
||||
|
@ -0,0 +1,26 @@
|
||||
From 3fdb2494c1e24c0a020f5b54022d2c751fd26f50 Mon Sep 17 00:00:00 2001
|
||||
From: David Herrmann <dh.herrmann@gmail.com>
|
||||
Date: Thu, 28 Nov 2013 09:52:18 +0000
|
||||
Subject: login: revert lazy session-activation on non-VT seats
|
||||
|
||||
Existing applications like gdm already depend on new sessions to get
|
||||
immediately activated on seats without VTs. Fixes a bug reported as:
|
||||
[systemd-devel] systemd 208:trouble with inactive user sessions at non-seat0 seats
|
||||
|
||||
This patch restores the original behavior. We either need to add a new
|
||||
flag for session-creation or some other heuristic to avoid activating new
|
||||
sessions in the future.
|
||||
---
|
||||
--- a/src/login/logind-seat.c 2013-11-28 11:30:49.624623090 -0200
|
||||
+++ b/src/login/logind-seat.c 2013-11-28 11:31:46.668792391 -0200
|
||||
@@ -420,8 +420,8 @@
|
||||
seat_send_changed(s, "Sessions\0");
|
||||
|
||||
/* On seats with VTs, the VT logic defines which session is active. On
|
||||
- * seats without VTs, we automatically activate the first session. */
|
||||
- if (!seat_has_vts(s) && !s->active)
|
||||
+ * seats without VTs, we automatically activate new sessions. */
|
||||
+ if (!seat_has_vts(s))
|
||||
seat_set_active(s, session);
|
||||
|
||||
return 0;
|
18
after-local.service
Normal file
18
after-local.service
Normal file
@ -0,0 +1,18 @@
|
||||
# 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
|
||||
SysVStartPriority=99
|
35
analyze-fix-crash-in-command-line-parsing.patch
Normal file
35
analyze-fix-crash-in-command-line-parsing.patch
Normal file
@ -0,0 +1,35 @@
|
||||
From da6de8a55784115451582051c8da620056994a05 Mon Sep 17 00:00:00 2001
|
||||
From: Frederic Crozat <fcrozat@suse.com>
|
||||
Date: Mon, 20 Jan 2014 11:05:22 +0100
|
||||
Subject: [PATCH] analyze: fix crash in command line parsing
|
||||
|
||||
Ensure DBusError is set before it can possibly be freed on return.
|
||||
Fix crash when calling set-log-level without any parameter.
|
||||
|
||||
Fix https://bugzilla.novell.com/show_bug.cgi?id=859365
|
||||
---
|
||||
src/analyze/systemd-analyze.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/analyze/systemd-analyze.c b/src/analyze/systemd-analyze.c
|
||||
index 27d063c..cdfae93 100644
|
||||
--- a/src/analyze/systemd-analyze.c
|
||||
+++ b/src/analyze/systemd-analyze.c
|
||||
@@ -1226,13 +1226,13 @@ static int set_log_level(DBusConnection *bus, char **args) {
|
||||
assert(bus);
|
||||
assert(args);
|
||||
|
||||
+ dbus_error_init(&error);
|
||||
if (strv_length(args) != 1) {
|
||||
log_error("This command expects one argument only.");
|
||||
return -E2BIG;
|
||||
}
|
||||
|
||||
value = args[0];
|
||||
- dbus_error_init(&error);
|
||||
|
||||
m = dbus_message_new_method_call("org.freedesktop.systemd1",
|
||||
"/org/freedesktop/systemd1",
|
||||
--
|
||||
1.8.4
|
||||
|
@ -7,34 +7,29 @@ set ACL on nvidia devices (bnc#808319).
|
||||
src/login/logind-acl.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
--- systemd-206.orig/src/login/logind-acl.c
|
||||
+++ systemd-206/src/login/logind-acl.c
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <acl/libacl.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
+#include <strv.h>
|
||||
|
||||
#include "logind-acl.h"
|
||||
#include "util.h"
|
||||
@@ -287,6 +288,22 @@ int devnode_acl_all(struct udev *udev,
|
||||
Index: systemd-208/src/login/logind-acl.c
|
||||
===================================================================
|
||||
--- systemd-208.orig/src/login/logind-acl.c
|
||||
+++ systemd-208/src/login/logind-acl.c
|
||||
@@ -287,6 +287,22 @@ int devnode_acl_all(struct udev *udev,
|
||||
r = devnode_acl(n, flush, del, old_uid, add, new_uid);
|
||||
}
|
||||
|
||||
+ /* only search for nvidia* if /dev/nvidiactl exists */
|
||||
+ if (!devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid)) {
|
||||
+ char** directory;
|
||||
+ char **f, *resolved;
|
||||
+ /* only apply ACL on nvidia* if /dev/nvidiactl exists */
|
||||
+ if (devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid) >= 0) {
|
||||
+ int i;
|
||||
+ char *devname;
|
||||
+
|
||||
+ if (get_files_in_directory ("/dev", &directory)) {
|
||||
+ STRV_FOREACH(f,directory)
|
||||
+ if (startswith(*f,"nvidia")) {
|
||||
+ resolved = strjoin("/dev/", *f, NULL);
|
||||
+ devnode_acl(resolved, flush, del, old_uid, add, new_uid);
|
||||
+ free(resolved);
|
||||
+ for (i = 0; i <= 256 ; i++) {
|
||||
+ if (asprintf(&devname, "/dev/nvidia%d", i) < 0)
|
||||
+ break;
|
||||
+ if (devnode_acl(devname, flush, del, old_uid, add, new_uid) < 0) {
|
||||
+ free(devname);
|
||||
+ break;
|
||||
+ }
|
||||
+ free(devname);
|
||||
+ }
|
||||
+ strv_free(directory);
|
||||
+ }
|
||||
+
|
||||
finish:
|
||||
|
60
build-sys-make-multi-seat-x-optional.patch
Normal file
60
build-sys-make-multi-seat-x-optional.patch
Normal file
@ -0,0 +1,60 @@
|
||||
From bd441fa27a22b7c6e11d9330560e0622fb69f297 Mon Sep 17 00:00:00 2001
|
||||
From: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
|
||||
Date: Thu, 28 Nov 2013 17:07:29 +0000
|
||||
Subject: build-sys: make multi-seat-x optional
|
||||
|
||||
At some point it should become disabled by default.
|
||||
|
||||
http://lists.freedesktop.org/archives/systemd-devel/2013-November/014869.html
|
||||
---
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 90874df..3598edd 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -4141,6 +4141,8 @@ MULTI_USER_TARGET_WANTS += \
|
||||
SYSTEM_UNIT_ALIASES += \
|
||||
systemd-logind.service dbus-org.freedesktop.login1.service
|
||||
|
||||
+if ENABLE_MULTI_SEAT_X
|
||||
+
|
||||
systemd_multi_seat_x_SOURCES = \
|
||||
src/login/multi-seat-x.c
|
||||
|
||||
@@ -4151,6 +4153,8 @@ systemd_multi_seat_x_LDADD = \
|
||||
rootlibexec_PROGRAMS += \
|
||||
systemd-multi-seat-x
|
||||
|
||||
+endif
|
||||
+
|
||||
dist_udevrules_DATA += \
|
||||
src/login/70-uaccess.rules \
|
||||
src/login/70-power-switch.rules
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index f1b00c5..ab24266 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -794,6 +794,14 @@ fi
|
||||
AM_CONDITIONAL(ENABLE_EFI, [test "x$have_efi" = "xyes"])
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
+have_multi_seat_x=no
|
||||
+AC_ARG_ENABLE(multi_seat_x, AS_HELP_STRING([--disable-multi-seat-x], [do not build multi-seat-x]))
|
||||
+if test "x$enable_multi_seat_x" != "xno"; then
|
||||
+ have_multi_seat_x=yes
|
||||
+fi
|
||||
+AM_CONDITIONAL(ENABLE_MULTI_SEAT_X, [test "$have_multi_seat_x" = "yes"])
|
||||
+
|
||||
+# ------------------------------------------------------------------------------
|
||||
AC_ARG_WITH(rc-local-script-path-start,
|
||||
AS_HELP_STRING([--with-rc-local-script-path-start=PATH],
|
||||
[Path to /etc/rc.local]),
|
||||
@@ -1077,6 +1085,7 @@ AC_MSG_RESULT([
|
||||
nss-myhostname: ${have_myhostname}
|
||||
gudev: ${enable_gudev}
|
||||
gintrospection: ${enable_introspection}
|
||||
+ multi-seat-x: ${have_multi_seat_x}
|
||||
Python: ${have_python}
|
||||
Python Headers: ${have_python_devel}
|
||||
man pages: ${have_manpages}
|
||||
--
|
||||
cgit v0.9.0.2-2-gbebe
|
@ -7,18 +7,22 @@ Subject: delay fsck / cryptsetup after md / dmraid are started
|
||||
units/systemd-fsck@.service.in | 2 +-
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- systemd-206_git201308300826.orig/src/cryptsetup/cryptsetup-generator.c
|
||||
+++ systemd-206_git201308300826/src/cryptsetup/cryptsetup-generator.c
|
||||
@@ -160,6 +160,7 @@ static int create_disk(
|
||||
"Conflicts=umount.target\n"
|
||||
Index: systemd-208/src/cryptsetup/cryptsetup-generator.c
|
||||
===================================================================
|
||||
--- systemd-208.orig/src/cryptsetup/cryptsetup-generator.c
|
||||
+++ systemd-208/src/cryptsetup/cryptsetup-generator.c
|
||||
@@ -119,6 +119,7 @@ static int create_disk(
|
||||
"DefaultDependencies=no\n"
|
||||
"BindsTo=dev-mapper-%i.device\n"
|
||||
"IgnoreOnIsolate=true\n"
|
||||
+ "After=md.service dmraid.service\n"
|
||||
"After=systemd-readahead-collect.service systemd-readahead-replay.service\n",
|
||||
f);
|
||||
|
||||
--- systemd-206_git201308300826.orig/units/systemd-fsck@.service.in
|
||||
+++ systemd-206_git201308300826/units/systemd-fsck@.service.in
|
||||
Index: systemd-208/units/systemd-fsck@.service.in
|
||||
===================================================================
|
||||
--- systemd-208.orig/units/systemd-fsck@.service.in
|
||||
+++ systemd-208/units/systemd-fsck@.service.in
|
||||
@@ -10,7 +10,7 @@ Description=File System Check on %f
|
||||
Documentation=man:systemd-fsck@.service(8)
|
||||
DefaultDependencies=no
|
||||
|
@ -7,11 +7,13 @@ Subject: handle SYSTEMCTL_OPTIONS environment variable
|
||||
src/systemctl/systemctl.c | 22 ++++++++++++++++++++++
|
||||
1 file changed, 22 insertions(+)
|
||||
|
||||
--- systemd-206.orig/src/systemctl/systemctl.c
|
||||
+++ systemd-206/src/systemctl/systemctl.c
|
||||
@@ -6197,6 +6197,28 @@ int main(int argc, char*argv[]) {
|
||||
log_parse_environment();
|
||||
log_open();
|
||||
Index: systemd-208/src/systemctl/systemctl.c
|
||||
===================================================================
|
||||
--- systemd-208.orig/src/systemctl/systemctl.c
|
||||
+++ systemd-208/src/systemctl/systemctl.c
|
||||
@@ -6115,6 +6115,28 @@ int main(int argc, char*argv[]) {
|
||||
* ellipsized. */
|
||||
original_stdout_is_tty = isatty(STDOUT_FILENO);
|
||||
|
||||
+ if (secure_getenv("SYSTEMCTL_OPTIONS") &&
|
||||
+ (!program_invocation_short_name ||
|
||||
|
@ -7,10 +7,12 @@ handle ROOT_USES_LANG=ctype (bnc#792182).
|
||||
src/core/locale-setup.c | 27 +++++++++++++++++++++++++++
|
||||
1 file changed, 27 insertions(+)
|
||||
|
||||
--- systemd-206_git201308300826.orig/src/core/locale-setup.c
|
||||
+++ systemd-206_git201308300826/src/core/locale-setup.c
|
||||
@@ -72,6 +72,11 @@ int locale_setup(char ***environment) {
|
||||
char **env;
|
||||
Index: systemd-208/src/core/locale-setup.c
|
||||
===================================================================
|
||||
--- systemd-208.orig/src/core/locale-setup.c
|
||||
+++ systemd-208/src/core/locale-setup.c
|
||||
@@ -73,6 +73,11 @@ int locale_setup(char ***environment) {
|
||||
char **add;
|
||||
char *variables[_VARIABLE_MAX] = {};
|
||||
int r = 0, i;
|
||||
+#ifdef HAVE_SYSV_COMPAT
|
||||
@ -21,12 +23,12 @@ handle ROOT_USES_LANG=ctype (bnc#792182).
|
||||
|
||||
if (detect_container(NULL) <= 0) {
|
||||
r = parse_env_file("/proc/cmdline", WHITESPACE,
|
||||
@@ -118,6 +123,27 @@ int locale_setup(char ***environment) {
|
||||
@@ -119,6 +124,27 @@ int locale_setup(char ***environment) {
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_warning("Failed to read /etc/locale.conf: %s", strerror(-r));
|
||||
}
|
||||
+#ifdef HAVE_SYSV_COMPAT
|
||||
+ if (r <= 0 &&
|
||||
+ if (r <= 0 &&
|
||||
+ (r = parse_env_file("/etc/sysconfig/language", NEWLINE,
|
||||
+ "ROOT_USES_LANG", &root_uses_lang,
|
||||
+ "RC_LANG", &variables[VARIABLE_LANG],
|
||||
@ -47,5 +49,5 @@ handle ROOT_USES_LANG=ctype (bnc#792182).
|
||||
+
|
||||
+#endif
|
||||
|
||||
add = NULL;
|
||||
for (i = 0; i < _VARIABLE_MAX; i++) {
|
||||
if (!variables[i])
|
||||
|
@ -13,9 +13,11 @@ systemd unit drop-in files to add dependencies
|
||||
create mode 100644 src/insserv-generator/Makefile
|
||||
create mode 100644 src/insserv-generator/insserv-generator.c
|
||||
|
||||
--- systemd-206_git201308300826.orig/Makefile.am
|
||||
+++ systemd-206_git201308300826/Makefile.am
|
||||
@@ -321,6 +321,7 @@ rootlibexec_PROGRAMS = \
|
||||
Index: systemd-208/Makefile.am
|
||||
===================================================================
|
||||
--- systemd-208.orig/Makefile.am
|
||||
+++ systemd-208/Makefile.am
|
||||
@@ -322,6 +322,7 @@ rootlibexec_PROGRAMS = \
|
||||
systemd-sleep
|
||||
|
||||
systemgenerator_PROGRAMS = \
|
||||
@ -23,7 +25,7 @@ systemd unit drop-in files to add dependencies
|
||||
systemd-getty-generator \
|
||||
systemd-fstab-generator \
|
||||
systemd-system-update-generator
|
||||
@@ -1655,6 +1656,14 @@ systemd_delta_LDADD = \
|
||||
@@ -1682,6 +1683,14 @@ systemd_delta_LDADD = \
|
||||
libsystemd-shared.la
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
@ -38,8 +40,10 @@ systemd unit drop-in files to add dependencies
|
||||
systemd_getty_generator_SOURCES = \
|
||||
src/getty-generator/getty-generator.c
|
||||
|
||||
Index: systemd-208/src/insserv-generator/Makefile
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ systemd-206_git201308300826/src/insserv-generator/Makefile
|
||||
+++ systemd-208/src/insserv-generator/Makefile
|
||||
@@ -0,0 +1,28 @@
|
||||
+# This file is part of systemd.
|
||||
+#
|
||||
@ -69,9 +73,11 @@ systemd unit drop-in files to add dependencies
|
||||
+ $(MAKE) -C .. clean
|
||||
+
|
||||
+.PHONY: all clean
|
||||
Index: systemd-208/src/insserv-generator/insserv-generator.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ systemd-206_git201308300826/src/insserv-generator/insserv-generator.c
|
||||
@@ -0,0 +1,309 @@
|
||||
+++ systemd-208/src/insserv-generator/insserv-generator.c
|
||||
@@ -0,0 +1,312 @@
|
||||
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
|
||||
+
|
||||
+/***
|
||||
@ -119,6 +125,9 @@ systemd unit drop-in files to add dependencies
|
||||
+ 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");
|
||||
@ -227,7 +236,7 @@ systemd unit drop-in files to add dependencies
|
||||
+ /* 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)
|
||||
+ if (sysv_translate_facility(parsed[0], NULL, &facility) < 0 || !facility)
|
||||
+ continue;
|
||||
+ if (streq(facility, SPECIAL_REMOTE_FS_TARGET)) {
|
||||
+ _cleanup_free_ char *unit = NULL;
|
||||
|
@ -46,6 +46,13 @@ if [ $FIRST_ARG -eq 1 ]; then \
|
||||
touch "/var/lib/systemd/migrated/$sysv_service" || : \
|
||||
done \
|
||||
else \
|
||||
if [ $FIRST_ARG -gt 1 ]; then \
|
||||
for service in %{?*} ; do \
|
||||
if [ ! -e "/usr/lib/systemd/system/$service" ]; then \
|
||||
touch "/run/rpm-%{name}-update-$service-new-in-upgrade" \
|
||||
fi \
|
||||
done \
|
||||
fi \
|
||||
for service in %{?*} ; do \
|
||||
sysv_service=${service%.*} \
|
||||
if [ ! -e "/var/lib/systemd/migrated/$sysv_service" ]; then \
|
||||
@ -74,6 +81,13 @@ if [ -n "$services_to_migrate" ]; then \
|
||||
/usr/sbin/systemd-sysv-convert --apply $services_to_migrate >/dev/null 2>&1 || : \
|
||||
elif [ $FIRST_ARG -eq 1 ]; then \
|
||||
/usr/bin/systemctl preset %{?*} >/dev/null 2>&1 || : \
|
||||
elif [ $FIRST_ARG -gt 1 ]; then \
|
||||
for service in %{?*} ; do \
|
||||
if [ -e "/run/rpm-%{name}-update-$service-new-in-upgrade" ]; then \
|
||||
rm -f "/run/rpm-%{name}-update-$service-new-in-upgrade" \
|
||||
/usr/bin/systemctl preset "$service" >/dev/null 2>&1 || : \
|
||||
fi \
|
||||
done \
|
||||
fi \
|
||||
%{nil}
|
||||
|
||||
|
22
make-emergency.service-conflict-with-syslog.socket.patch
Normal file
22
make-emergency.service-conflict-with-syslog.socket.patch
Normal file
@ -0,0 +1,22 @@
|
||||
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
|
||||
Index: systemd-208/units/emergency.service.in
|
||||
===================================================================
|
||||
--- systemd-208/units/emergency.service.in
|
||||
+++ systemd-208/units/emergency.service.in
|
||||
@@ -9,7 +9,7 @@
|
||||
Description=Emergency Shell
|
||||
Documentation=man:sulogin(8)
|
||||
DefaultDependencies=no
|
||||
-Conflicts=shutdown.target
|
||||
+Conflicts=shutdown.target syslog.socket
|
||||
Before=shutdown.target
|
||||
|
||||
[Service]
|
35
plymouth-quit-and-wait-for-emergency-service.patch
Normal file
35
plymouth-quit-and-wait-for-emergency-service.patch
Normal file
@ -0,0 +1,35 @@
|
||||
--- systemd-208/units/console-shell.service.m4.in
|
||||
+++ systemd-208/units/console-shell.service.m4.in 2014-02-05 11:28:31.446735287 +0000
|
||||
@@ -17,6 +17,8 @@ Before=getty.target
|
||||
[Service]
|
||||
Environment=HOME=/root
|
||||
WorkingDirectory=/root
|
||||
+ExecStartPre=-/usr/bin/plymouth quit
|
||||
+ExecStartPre=-/usr/bin/plymouth --wait
|
||||
ExecStart=-/usr/sbin/sulogin
|
||||
ExecStopPost=-@SYSTEMCTL@ poweroff
|
||||
Type=idle
|
||||
--- systemd-208/units/rescue.service.m4.in
|
||||
+++ systemd-208/units/rescue.service.m4.in 2014-02-05 11:28:45.214235524 +0000
|
||||
@@ -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 rescue mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -xb" to view system logs. Type "systemctl reboot" to reboot.'
|
||||
ExecStart=-/usr/sbin/sulogin
|
||||
ExecStopPost=-@SYSTEMCTL@ --fail --no-block default
|
||||
--- systemd-208/units/emergency.service.in
|
||||
+++ systemd-208/units/emergency.service.in 2014-02-05 11:28:51.782235282 +0000
|
||||
@@ -15,7 +15,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" to try again\\nto boot into default mode.'
|
||||
ExecStart=-/usr/sbin/sulogin
|
||||
ExecStopPost=@SYSTEMCTL@ --fail --no-block default
|
@ -11,8 +11,10 @@ PIDFile: and X-Systemd-RemainAfterExit to control it.
|
||||
src/core/service.h | 1 +
|
||||
2 files changed, 33 insertions(+), 2 deletions(-)
|
||||
|
||||
--- systemd-206_git201308300826.orig/src/core/service.c
|
||||
+++ systemd-206_git201308300826/src/core/service.c
|
||||
Index: systemd-208/src/core/service.c
|
||||
===================================================================
|
||||
--- systemd-208.orig/src/core/service.c
|
||||
+++ systemd-208/src/core/service.c
|
||||
@@ -135,6 +135,7 @@ static void service_init(Unit *u) {
|
||||
#ifdef HAVE_SYSV_COMPAT
|
||||
s->sysv_start_priority = -1;
|
||||
@ -21,7 +23,7 @@ PIDFile: and X-Systemd-RemainAfterExit to control it.
|
||||
#endif
|
||||
s->socket_fd = -1;
|
||||
s->guess_main_pid = true;
|
||||
@@ -879,6 +880,34 @@ static int service_load_sysv_path(Servic
|
||||
@@ -883,6 +884,34 @@ static int service_load_sysv_path(Servic
|
||||
free(short_description);
|
||||
short_description = d;
|
||||
|
||||
@ -56,7 +58,7 @@ PIDFile: and X-Systemd-RemainAfterExit to control it.
|
||||
} else if (state == LSB_DESCRIPTION) {
|
||||
|
||||
if (startswith(l, "#\t") || startswith(l, "# ")) {
|
||||
@@ -929,7 +958,8 @@ static int service_load_sysv_path(Servic
|
||||
@@ -933,7 +962,8 @@ static int service_load_sysv_path(Servic
|
||||
|
||||
/* Special setting for all SysV services */
|
||||
s->type = SERVICE_FORKING;
|
||||
@ -66,7 +68,7 @@ PIDFile: and X-Systemd-RemainAfterExit to control it.
|
||||
s->guess_main_pid = false;
|
||||
s->restart = SERVICE_RESTART_NO;
|
||||
s->exec_context.ignore_sigpipe = false;
|
||||
@@ -2102,7 +2132,7 @@ static void service_enter_running(Servic
|
||||
@@ -2080,7 +2110,7 @@ static void service_enter_running(Servic
|
||||
if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) &&
|
||||
(s->bus_name_good || s->type != SERVICE_DBUS)) {
|
||||
#ifdef HAVE_SYSV_COMPAT
|
||||
@ -75,9 +77,11 @@ PIDFile: and X-Systemd-RemainAfterExit to control it.
|
||||
s->remain_after_exit = false;
|
||||
#endif
|
||||
service_set_state(s, SERVICE_RUNNING);
|
||||
--- systemd-206_git201308300826.orig/src/core/service.h
|
||||
+++ systemd-206_git201308300826/src/core/service.h
|
||||
@@ -177,6 +177,7 @@ struct Service {
|
||||
Index: systemd-208/src/core/service.h
|
||||
===================================================================
|
||||
--- systemd-208.orig/src/core/service.h
|
||||
+++ systemd-208/src/core/service.h
|
||||
@@ -178,6 +178,7 @@ struct Service {
|
||||
bool is_sysv:1;
|
||||
bool sysv_has_lsb:1;
|
||||
bool sysv_enabled:1;
|
||||
|
@ -10,8 +10,10 @@ configuration), needed by openSUSE (bnc#809420).
|
||||
units/systemd-sysctl.service.in | 1 +
|
||||
2 files changed, 9 insertions(+)
|
||||
|
||||
--- systemd-206.orig/src/sysctl/sysctl.c
|
||||
+++ systemd-206/src/sysctl/sysctl.c
|
||||
Index: systemd-207/src/sysctl/sysctl.c
|
||||
===================================================================
|
||||
--- systemd-207.orig/src/sysctl/sysctl.c
|
||||
+++ systemd-207/src/sysctl/sysctl.c
|
||||
@@ -26,6 +26,7 @@
|
||||
#include <stdio.h>
|
||||
#include <limits.h>
|
||||
@ -20,7 +22,7 @@ configuration), needed by openSUSE (bnc#809420).
|
||||
|
||||
#include "log.h"
|
||||
#include "strv.h"
|
||||
@@ -297,6 +298,13 @@ int main(int argc, char *argv[]) {
|
||||
@@ -299,6 +300,13 @@ int main(int argc, char *argv[]) {
|
||||
} else {
|
||||
_cleanup_strv_free_ char **files = NULL;
|
||||
char **f;
|
||||
@ -34,13 +36,16 @@ configuration), needed by openSUSE (bnc#809420).
|
||||
|
||||
r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs);
|
||||
if (r < 0) {
|
||||
--- systemd-206.orig/units/systemd-sysctl.service.in
|
||||
+++ systemd-206/units/systemd-sysctl.service.in
|
||||
@@ -20,6 +20,7 @@ ConditionDirectoryNotEmpty=|/usr/lib/sys
|
||||
Index: systemd-207/units/systemd-sysctl.service.in
|
||||
===================================================================
|
||||
--- systemd-207.orig/units/systemd-sysctl.service.in
|
||||
+++ systemd-207/units/systemd-sysctl.service.in
|
||||
@@ -19,6 +19,8 @@ ConditionDirectoryNotEmpty=|/usr/lib/sys
|
||||
ConditionDirectoryNotEmpty=|/usr/local/lib/sysctl.d
|
||||
ConditionDirectoryNotEmpty=|/etc/sysctl.d
|
||||
ConditionDirectoryNotEmpty=|/run/sysctl.d
|
||||
+ConditionPathExistsGlob=|/boot/sysctl.conf-*
|
||||
+ConditionPathExistsGlob=|/boot/sysctl.conf-%v
|
||||
+RequiresMountsFor=/boot
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ac1f8120315e7969063bbb0c181c8dc59509aeaf10c4266077c257a182ad5942
|
||||
size 2363804
|
3
systemd-208.tar.xz
Normal file
3
systemd-208.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:aa64fa864466fd5727005c55d61c092828b94b4f857272c0b503695022146390
|
||||
size 2382904
|
@ -1,14 +1,476 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 5 11:19:28 UTC 2014 - werner@suse.de
|
||||
|
||||
- Change and extend patch
|
||||
0001-On_s390_con3270_disable_ANSI_colour_esc.patch
|
||||
to disable the workaround to find /dev/3270/tty1 as this now
|
||||
should be done by a) the kernel patch
|
||||
http://lkml.indiana.edu/hypermail/linux/kernel/1402.0/02319.html
|
||||
and the changed udev rule 99-systemd.rules
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Feb 2 08:53:17 UTC 2014 - ohering@suse.com
|
||||
|
||||
- Remove PreReq pidof from udev, nothing in this pkg uses it
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 31 14:24:35 UTC 2014 - werner@suse.de
|
||||
|
||||
- Change and extend patch
|
||||
0001-On_s390_con3270_disable_ANSI_colour_esc.patch
|
||||
to re-enable colouring if 3270 console was enforced on the kernel
|
||||
command line as 3270 cna handle colour ANSI escape sequences.
|
||||
Also let the serial getty generator find the /dev/3270/tty1
|
||||
character device (bnc#861316)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 30 12:33:08 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add patch 0001-On_s390_con3270_disable_ANSI_colour_esc.patch
|
||||
to strip the colouring ANSI escape sequences from the console
|
||||
messages (bnc#860937)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 30 08:29:00 UTC 2014 - werner@suse.de
|
||||
|
||||
- Change patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
|
||||
to skip already by the kernel managed devices
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 29 18:03:39 UTC 2014 - arvidjaar@gmail.com
|
||||
|
||||
- fix timeout stopping user@.service (bnc#841544)
|
||||
* 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch
|
||||
* 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch
|
||||
* 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 28 12:44:07 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add patch 0001-upstream-systemctl-halt-reboot-error-handling.patch
|
||||
to be able to detect if the sysctl reboot() returns.
|
||||
- Add patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
|
||||
A check for unmaintained disk like devices is added to be able to
|
||||
flush and maybe shut them down. Also the missing sync() system
|
||||
call is added for the direct halt/reboot systemctl command. Then
|
||||
the system halt is used as fallback if poweroff fails for both
|
||||
the direct poweroff systemctl command as well as for the
|
||||
systemd-shutdown utility.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 23 13:24:53 UTC 2014 - werner@suse.de
|
||||
|
||||
- Make systemd-mini build
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 23 13:18:39 UTC 2014 - werner@suse.de
|
||||
|
||||
- Make requires bash-completion a recommends
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 21 13:05:59 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add patch 1017-skip-native-unit-handling-if-sysv-already-handled.patch
|
||||
to avoid that enabled boot scripts will be handled as unit files
|
||||
by systemctl status command (bnc#818044)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 21 12:51:20 UTC 2014 - werner@suse.de
|
||||
|
||||
- Drop patch 1017-enforce-sufficient-shutdown-warnings.patch
|
||||
as the original code behaves exactly as the shutdown code of
|
||||
the old SysVinit (bnc#750845)
|
||||
- Rename support-powerfail-with-powerstatus.patch to
|
||||
1016-support-powerfail-with-powerstatus.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 20 10:18:20 UTC 2014 - fcrozat@suse.com
|
||||
|
||||
- Add analyze-fix-crash-in-command-line-parsing.patch: fix crash in
|
||||
systemd-analyze (bnc#859365)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 17 16:09:24 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add patch
|
||||
1019-make-completion-smart-to-be-able-to-redirect.patch
|
||||
to make redirections work with the bash command completions for
|
||||
for systemd command tools (bnc#856858, bnc#859072)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 17 12:24:13 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add patch
|
||||
1018-Make-LSB-Skripts-know-about-Required-and-Should.patch
|
||||
to support the "+" to tag wanted dependencies as well as make
|
||||
sure that required dependencies are handles as required ones.
|
||||
This should fix bnc#858864 and bnc#857204.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 16 16:08:00 UTC 2014 - lnussel@suse.de
|
||||
|
||||
- apply preset also to service files that are new in upgrade
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 15 14:11:02 UTC 2014 - werner@suse.de
|
||||
|
||||
- Change support-powerfail-with-powerstatus.patch to use BindsTo
|
||||
instead of BindTo
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 15 12:34:53 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add patch 1017-enforce-sufficient-shutdown-warnings.patch
|
||||
Warn once per hour in the last 3 hours, then all 30 minutes in last
|
||||
hour, all 15 minutes in the last 45 minutes, all 10 minutes in the
|
||||
last 15 minutes, and then all minute in the last 10 minutes (bnc#750845)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 14 18:28:09 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add patch support-powerfail-with-powerstatus.patch and source
|
||||
file systemd-powerfail to implement SIGPWR support with evaluation
|
||||
of the file /var/run/powerstatus (bnc#737690)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 20 12:06:18 UTC 2013 - werner@suse.de
|
||||
|
||||
- Adapt patch
|
||||
1011-check-4-valid-kmsg-device.patch
|
||||
to fit current upstream version maybe related to bnc#854884
|
||||
- Change patch
|
||||
1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch
|
||||
to check if XDG_RUNTIME_DIR is set before the call of pam_putenv()
|
||||
may fix bnc#855160
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 20 09:40:01 UTC 2013 - lbsousajr@gmail.com
|
||||
|
||||
- Disable multi-seat-x build, since package xorg-x11-server
|
||||
currently in Factory no longer needs it.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 18 18:56:01 UTC 2013 - hrvoje.senjan@gmail.com
|
||||
|
||||
- Added 0001-logind-garbage-collect-stale-users.patch: Don't stop a
|
||||
running user manager from garbage-collecting the user. Original
|
||||
behavior caused bnc#849870
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 16 11:08:33 UTC 2013 - lbsousajr@gmail.com
|
||||
|
||||
- Add build-sys-make-multi-seat-x-optional.patch
|
||||
* See: http://cgit.freedesktop.org/systemd/systemd/commit/?id=bd441fa27a22b7c6e11d9330560e0622fb69f297
|
||||
* Now systemd-multi-seat-x build can be disabled with configure option
|
||||
--disable-multi-seat-x. It should be done when xorg-x11-server
|
||||
no longer needs it (work in progress).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 16 09:43:29 UTC 2013 - fcrozat@suse.com
|
||||
|
||||
- Update insserv-generator.patch: fix crash in insserv generator
|
||||
(bnc#854314).
|
||||
- Update apply-ACL-for-nvidia-device-nodes.patch with latest fixes
|
||||
for Nvidia cards (bnc#808319).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 6 13:30:19 UTC 2013 - werner@suse.de
|
||||
|
||||
- Add patch
|
||||
1014-journald-with-journaling-FS.patch
|
||||
which now uses the file system ioctls for switching off atime,
|
||||
compression, and copy-on-write of the journal directory of the
|
||||
the systemd-journald (bnc#838475)
|
||||
- Let us build require the package config for libpcre (bnc#853293)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 30 08:16:02 UTC 2013 - arvidjaar@gmail.com
|
||||
|
||||
- Add patch
|
||||
0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch
|
||||
Make sure emergency shell is not killed by attempt to start another unit
|
||||
(bnc#852021). Backported from d420282b28f50720e233ccb1c02547c562195653.
|
||||
- Add patch
|
||||
make-emergency.service-conflict-with-syslog.socket.patch
|
||||
Previous patch did not fix problem if syslog connection request came
|
||||
after emergency shell was already started. So forcibly stop syslog.socket
|
||||
when starting emergency.service. (bnc#852232)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 28 10:25:58 UTC 2013 - lbsousajr@gmail.com
|
||||
|
||||
- Add U_logind_revert_lazy_session_activation_on_non_vt_seats.patch
|
||||
* See: http://cgit.freedesktop.org/systemd/systemd/commit/?id=3fdb2494c1e24c0a020f5b54022d2c751fd26f50
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 26 15:12:58 UTC 2013 - werner@suse.de
|
||||
|
||||
- Add patch
|
||||
1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch
|
||||
to avoid (xdg-)su to set XDG_RUNTIME_DIR to the original user and
|
||||
avoid that e.g. pulseaudio will create /run/user/<pid>/pulse owned
|
||||
by root (bnc#852015)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 21 12:27:11 UTC 2013 - werner@suse.de
|
||||
|
||||
- Add patch
|
||||
1011-check-4-valid-kmsg-device.patch
|
||||
to avoid a busy systemd-journald (bnc#851393)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 6 09:42:05 UTC 2013 - werner@suse.de
|
||||
|
||||
- Add patch
|
||||
1010-do-not-install-sulogin-unit-with-poweroff.patch
|
||||
that is do not install console-shell.service in any system target
|
||||
as this will cause automatic poweroff at boot (bnc#849071)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 4 15:23:02 UTC 2013 - werner@suse.de
|
||||
|
||||
- Add upstream patch
|
||||
0001-analyze-set-text-on-side-with-most-space.patch
|
||||
to place the text on the side with most space
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 25 12:12:48 UTC 2013 - werner@suse.de
|
||||
|
||||
- Add upstream patch
|
||||
0001-analyze-set-white-background.patch
|
||||
to make SVG output of systemd analyze readable
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 21 09:27:36 UTC 2013 - werner@suse.de
|
||||
|
||||
- Add patch
|
||||
1009-make-xsltproc-use-correct-ROFF-links.patch
|
||||
to have valid ROFF links in manual pages working again (bnc#842844)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 15 13:50:52 CEST 2013 - fcrozat@suse.com
|
||||
|
||||
- Add
|
||||
0001-gpt-auto-generator-exit-immediately-if-in-container.patch:
|
||||
don't start gpt auto-generator in container (git).
|
||||
- Add
|
||||
0001-manager-when-verifying-whether-clients-may-change-en.patch:
|
||||
fix reload check in selinux case (git).
|
||||
- Add 0001-logind-fix-bus-introspection-data-for-TakeControl.patch:
|
||||
fix introspection for TakeControl (git).
|
||||
- Add 0001-mount-check-for-NULL-before-reading-pm-what.patch: fix
|
||||
crash when parsing some incorrect unit (git).
|
||||
- Add
|
||||
0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch:
|
||||
Fix udev rules parsing (git).
|
||||
- Add
|
||||
0001-systemd-serialize-deserialize-forbid_restart-value.patch:
|
||||
Fix incorrect deserialization for forbid_restart (git).
|
||||
- Add
|
||||
0001-core-unify-the-way-we-denote-serialization-attribute.patch:
|
||||
Ensure forbid_restart is named like other attributes (git).
|
||||
- Add 0001-journald-fix-minor-memory-leak.patch: fix memleak in
|
||||
journald (git).
|
||||
- Add
|
||||
0001-do-not-accept-garbage-from-acpi-firmware-performance.patch:
|
||||
Improve ACPI firmware performance parsing (git).
|
||||
- Add
|
||||
0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch:
|
||||
Fix journal rotation (git).
|
||||
- Add
|
||||
0001-login-fix-invalid-free-in-sd_session_get_vt.patch:
|
||||
Fix memory corruption in sd_session_get_vt (git).
|
||||
- Add 0001-login-make-sd_session_get_vt-actually-work.patch: Ensure
|
||||
sd_session_get_vt returns correct value (git).
|
||||
- Add 0001-Never-call-qsort-on-potentially-NULL-arrays.patch: Don't
|
||||
call qsort on NULL arrays (git).
|
||||
- Add 0001-dbus-common-avoid-leak-in-error-path.patch: Fix memleak
|
||||
in dbus-common code (git).
|
||||
- Add 0001-drop-ins-check-return-value.patch: Fix return value for
|
||||
drop-ins checks (git).
|
||||
- Add 0001-shared-util-Fix-glob_extend-argument.patch: Fix
|
||||
glob_extend argument (git).
|
||||
- Add 0001-Fix-bad-assert-in-show_pid_array.patch: Fix bad assert
|
||||
in show_pid_array (git).
|
||||
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 3 08:43:51 UTC 2013 - fcrozat@suse.com
|
||||
|
||||
- Add 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch:
|
||||
fix acpi memleak.
|
||||
- Add
|
||||
0002-fix-lingering-references-to-var-lib-backlight-random.patch:
|
||||
fix invalid path in documentation.
|
||||
- Add
|
||||
0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch:
|
||||
fix invalid memory free.
|
||||
- Add 0004-systemctl-fix-name-mangling-for-sysv-units.patch: fix
|
||||
name mangling for sysv units.
|
||||
- Add
|
||||
0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch:
|
||||
fix OOM handling.
|
||||
- Add 0006-journald-add-missing-error-check.patch: add missing
|
||||
error check.
|
||||
- Add 0007-bus-fix-potentially-uninitialized-memory-access.patch:
|
||||
fix uninitialized memory access.
|
||||
- Add 0008-dbus-fix-return-value-of-dispatch_rqueue.patch: fix
|
||||
return value.
|
||||
- Add 0009-modules-load-fix-error-handling.patch: fix error
|
||||
handling.
|
||||
- Add 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch:
|
||||
fix incorrect memory access.
|
||||
- Add 0011-strv-don-t-access-potentially-NULL-string-arrays.patch:
|
||||
fix incorrect memory access.
|
||||
- Add
|
||||
0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch:
|
||||
fix invalid pointer.
|
||||
- Add
|
||||
0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch:
|
||||
fix permission on /run/log/journal.
|
||||
- Add
|
||||
0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch:
|
||||
order remote mount points properly before remote-fs.target.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 2 14:10:41 UTC 2013 - hrvoje.senjan@gmail.com
|
||||
|
||||
- Explicitly require pam-config for %post of the main package
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 2 08:03:30 UTC 2013 - fcrozat@suse.com
|
||||
|
||||
- Release v208:
|
||||
+ logind gained support for facilitating privileged input and drm
|
||||
devices access for unprivileged clients (helps Wayland /
|
||||
kmscon).
|
||||
+ New kernel command line luks.options= allows to specify LUKS
|
||||
options, when used with luks.uuid=
|
||||
+ tmpfileS.d snippets can uses specifier expansion in path names
|
||||
(%m, %b, %H, %v).
|
||||
+ New tmpfiles.d command "m" introduced to change
|
||||
owner/group/access mode of a file/directory only if it exists.
|
||||
+ MemorySoftLimit= cgroup settings is no longer supported
|
||||
(underlying kernel cgroup attribute will disappear in the
|
||||
future).
|
||||
+ memeory.use_hierarchy cgroup attribute is enabled for all
|
||||
cgroups systemd creates in memory cgroup hierarchy.
|
||||
+ New filed _SYSTEMD_SLICE= is logged in journal messages related
|
||||
to a slice.
|
||||
+ systemd-journald will no longer adjust the group of journal
|
||||
files it creates to "systemd-journal" group. Permissions and
|
||||
owernship is adjusted when package is upgraded.
|
||||
+ Backlight and random seed files are now stored in
|
||||
/var/lib/systemd.
|
||||
+ Boot time performance measurements included ACPI 5.0 FPDT
|
||||
informations if available.
|
||||
- Drop merged patches:
|
||||
0001-cgroup-add-the-missing-setting-of-variable-s-value.patch,
|
||||
0002-cgroup-correct-the-log-information.patch,
|
||||
0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch,
|
||||
0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch,
|
||||
0005-core-cgroup-first-print-then-free.patch,
|
||||
0006-swap-fix-reverse-dependencies.patch,
|
||||
0008-swap-create-.wants-symlink-to-auto-swap-devices.patch,
|
||||
0009-polkit-Avoid-race-condition-in-scraping-proc.patch,
|
||||
Fix-timeout-when-stopping-Type-notify-service.patch,
|
||||
set-ignoreonisolate-noauto-cryptsetup.patch,
|
||||
0001-Fix-buffer-overrun-when-enumerating-files.patch,
|
||||
0007-libudev-fix-move_later-comparison.patch.
|
||||
- Refresh patches
|
||||
remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch,
|
||||
delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch,
|
||||
handle-root_uses_lang-value-in-etc-sysconfig-language.patch,
|
||||
handle-SYSTEMCTL_OPTIONS-environment-variable.patch,
|
||||
Revert-service-drop-support-for-SysV-scripts-for-the-early.patch.
|
||||
- Own more ghost files.
|
||||
- Do not run pam-config in systemd-mini %post.
|
||||
- Add after-local.service to run after.local late during the boot
|
||||
process (bnc#778715).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 1 17:09:01 UTC 2013 - fcrozat@suse.com
|
||||
|
||||
- Update Fix-timeout-when-stopping-Type-notify-service.patch with
|
||||
upstream fix.
|
||||
- No longer start ask-password-wall, was causing too much spam on
|
||||
terminals (bnc#747783).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 30 15:42:45 UTC 2013 - fcrozat@suse.com
|
||||
|
||||
- Add set-ignoreonisolate-noauto-cryptsetup.patch: ensure noauto
|
||||
encrypted mounts survives runlevel changes (bnc#843085).
|
||||
- Add 0001-Fix-buffer-overrun-when-enumerating-files.patch: fix
|
||||
logind crash when /run/systemd/sessions was too big (bnc#840055,
|
||||
initial fix from hpj@suse.com).
|
||||
- Update sysctl-handle-boot-sysctl.conf-kernel_release.patch to
|
||||
only check for /boot/sysctl.conf-<uname -r> presence.
|
||||
- Add service wrapper for after.local (bnc#778715).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 27 15:47:15 UTC 2013 - fcrozat@suse.com
|
||||
|
||||
- Update use-usr-sbin-sulogin-for-emergency-service.patch to apply
|
||||
to all services using sulogin and remove generated files from
|
||||
upstream tarball (bnc#841398).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 23 13:09:06 UTC 2013 - arvidjaar@gmail.com
|
||||
|
||||
- Fix-timeout-when-stopping-Type-notify-service.patch
|
||||
Make sure MAINPID is watched when it becomes known (bnc#841544)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 23 13:11:08 CEST 2013 - fcrozat@suse.com
|
||||
|
||||
- Remove output and error redirection to /dev/null in install
|
||||
script, it might help tracing pam related issue (bnc#841573).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 19 16:37:03 CEST 2013 - fcrozat@suse.com
|
||||
|
||||
- Move symlink migration trigger to post (bnc#821800).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 18 23:55:09 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- 0009-polkit-Avoid-race-condition-in-scraping-proc.patch
|
||||
VUL-0: polkit: process subject race condition [bnc#835827]
|
||||
CVE-2013-4288
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 18 23:45:54 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- Build with --disable-ima as the openSUSE kernel
|
||||
does not support IMA (CONFIG_IMA is not set)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 18 23:40:27 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- Build with --disable-smack as the openSUSE kernel
|
||||
does not support smack (CONFIG_SECURITY_SMACK is not set)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 18 12:05:47 UTC 2013 - fcrozat@suse.com
|
||||
|
||||
- Don't use a trigger to create symlink for sysctl.conf, always run
|
||||
the test on %post (bnc#840864).
|
||||
- Update sysctl-handle-boot-sysctl.conf-kernel_release.patch to
|
||||
ensure /boot is mounted before reading /boot/sysctl.conf-*
|
||||
(bnc#809420).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 16 17:41:24 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch
|
||||
really fixes the swap unit problem mentioned in previous
|
||||
- 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch
|
||||
really fixes the swap unit problem mentioned in previous
|
||||
commit & the opensuse-factory mailing list.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch
|
||||
- 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch
|
||||
missing important check on return value.
|
||||
- 0002-cgroup-correct-the-log-information.patch fix misleading
|
||||
log information.
|
||||
@ -18,7 +480,7 @@ Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org
|
||||
should fail if write fails.
|
||||
- 0005-core-cgroup-first-print-then-free.patch use-after-free
|
||||
will trigger if there is an error condition.
|
||||
- 0006-swap-fix-reverse-dependencies.patch reported in
|
||||
- 0006-swap-fix-reverse-dependencies.patch reported in
|
||||
opensuse-factory list, topic "swap isn't activated"
|
||||
- 0007-libudev-fix-move_later-comparison.patch libudev
|
||||
invalid usage of "move_later".
|
||||
@ -27,10 +489,10 @@ Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org
|
||||
Sat Sep 14 06:52:32 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- while testing this new release I get in the logs ocassionally
|
||||
at boot "systemd[1]: Failed to open private bus connection:
|
||||
Failed to connect to socket /var/run/dbus/system_bus_socket:
|
||||
at boot "systemd[1]: Failed to open private bus connection:
|
||||
Failed to connect to socket /var/run/dbus/system_bus_socket:
|
||||
No such file or directory" indeed DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
|
||||
is defined to /var/run/dbus/system_bus_socket instead of
|
||||
is defined to /var/run/dbus/system_bus_socket instead of
|
||||
/run/dbus/system_bus_socket and that does not fly when /var/run
|
||||
is not yet available. (systemd-dbus-system-bus-address.patch)
|
||||
|
||||
@ -42,10 +504,10 @@ Fri Sep 13 07:47:40 UTC 2013 - fcrozat@suse.com
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 13 03:14:36 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- version 207, distribution specific changes follow, for overall
|
||||
- version 207, distribution specific changes follow, for overall
|
||||
release notes see NEWS.
|
||||
- Fixed:
|
||||
* Failed at step PAM spawning /usr/lib/systemd/systemd:
|
||||
- Fixed:
|
||||
* Failed at step PAM spawning /usr/lib/systemd/systemd:
|
||||
Operation not permitted
|
||||
* Fix shutdown hang "a stop job is running for Session 1 of user root"
|
||||
that was reported in opensuse-factory list.
|
||||
@ -152,7 +614,7 @@ Fri Jul 5 02:17:19 UTC 2013 - crrodriguez@opensuse.org
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 5 02:09:55 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- fix broken symlink, service is called systemd-random-seed now.
|
||||
- fix broken symlink, service is called systemd-random-seed now.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 4 10:20:23 CEST 2013 - fcrozat@suse.com
|
||||
@ -287,13 +749,13 @@ Fri Jun 21 12:40:27 UTC 2013 - rmilasan@suse.com
|
||||
|
||||
- Automatically online CPUs/Memory on CPU/Memory hotplug add events
|
||||
(bnc#703100, fate#311831).
|
||||
add: 1008-physical-hotplug-cpu-and-memory.patch
|
||||
add: 1008-physical-hotplug-cpu-and-memory.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 19 08:44:06 UTC 2013 - mhrusecky@suse.com
|
||||
|
||||
- Dropped backward compatibility
|
||||
- Added check for upstream rpm macros changes
|
||||
- Added check for upstream rpm macros changes
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 18 12:13:25 UTC 2013 - mhrusecky@suse.com
|
||||
@ -303,7 +765,7 @@ Mon Jun 18 12:13:25 UTC 2013 - mhrusecky@suse.com
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 18 00:33:10 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- 0001-journal-letting-interleaved-seqnums-go.patch and
|
||||
- 0001-journal-letting-interleaved-seqnums-go.patch and
|
||||
0002-journal-remember-last-direction-of-search-and-keep-o.patch
|
||||
fix possible infinite loops in the journal code, related to
|
||||
bnc #817778
|
||||
@ -340,8 +802,8 @@ Tue Jun 11 02:29:49 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch
|
||||
fixes :
|
||||
* systemd-journald[347]: Failed to set ACL on
|
||||
/var/log/journal/11d90b1c0239b5b2e38ed54f513722e3/user-1000.journal,
|
||||
* systemd-journald[347]: Failed to set ACL on
|
||||
/var/log/journal/11d90b1c0239b5b2e38ed54f513722e3/user-1000.journal,
|
||||
ignoring: Invalid argument
|
||||
- 006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch
|
||||
systemctl disable should remove dangling symlinks.
|
||||
@ -403,7 +865,7 @@ support has been removed from the kernel.
|
||||
fixed in systemd v199, commit 89d09e1b5c65a2d97840f682e0932c8bb499f166
|
||||
- Apply rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch
|
||||
only on ARM, patch rejected upstream because is too generic.
|
||||
- no such define TARGET_SUSE exists but it is used in
|
||||
- no such define TARGET_SUSE exists but it is used in
|
||||
Revert-service-drop-support-for-SysV-scripts-for-the-early.patch
|
||||
use HAVE_SYSV_COMPAT instead.
|
||||
|
||||
@ -462,7 +924,7 @@ Thu Apr 25 08:19:30 UTC 2013 - rmilasan@suse.com
|
||||
|
||||
- Rename remaning udev patches (clean-up).
|
||||
- Generate %{_libexecdir}/modules-load.d/sg.conf so we load sg module at
|
||||
boot time not from udev (bnc#761109).
|
||||
boot time not from udev (bnc#761109).
|
||||
- Drop unused patches:
|
||||
1001-Reinstate-TIMEOUT-handling.patch
|
||||
1005-udev-fix-sg-autoload-regression.patch
|
||||
@ -490,7 +952,7 @@ Mon Apr 22 09:48:22 UTC 2013 - fcrozat@suse.com
|
||||
-------------------------------------------------------------------
|
||||
Sun Apr 21 22:24:15 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- Fix packaging error, there is no syslog.target anymore
|
||||
- Fix packaging error, there is no syslog.target anymore
|
||||
do not pretend there is one.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
@ -531,14 +993,14 @@ Fri Apr 12 16:58:31 UTC 2013 - fcrozat@suse.com
|
||||
from an indexed database. %udev_hwdb_update macro should be
|
||||
used by packages adding entries to this database.
|
||||
+ Journal gained support for "Message Catalog", indexed database
|
||||
to link up additional information with journal entries.
|
||||
to link up additional information with journal entries.
|
||||
%journal_catalog_update macro should be used by packages adding
|
||||
%entries to this database.
|
||||
+ "age" field for tmpfiles entries can be set to 0, forcing
|
||||
removal of files matching this entry.
|
||||
+ coredumpctl gained "gdb" verb to invoke gdb on selected
|
||||
coredump.
|
||||
+ New rpm macros has been added: %udev_rules_update(),
|
||||
+ New rpm macros has been added: %udev_rules_update(),
|
||||
%_udevhwdbdir, %_udevrulesdir, %_journalcatalogdir,
|
||||
%_tmpfilesdir, %_sysctldir.
|
||||
+ In service files, %U can be used for configured user name of
|
||||
@ -562,7 +1024,7 @@ Fri Apr 12 16:58:31 UTC 2013 - fcrozat@suse.com
|
||||
(normal clean-up with tmpfiles is still done in addition to
|
||||
this though).
|
||||
+ Resource limits (as exposed by cgroup controlers) can be
|
||||
controlled dynamically at runtime for all units, using
|
||||
controlled dynamically at runtime for all units, using
|
||||
"systemctl set-cgroup-attr foobar.server cgroup.attribute
|
||||
value". Those settings are stored persistenly on disk.
|
||||
+ systemd-vconsole-setup will now copy all fonts settings to all
|
||||
@ -696,14 +1158,14 @@ Thu Mar 28 09:24:43 UTC 2013 - rmilasan@suse.com
|
||||
|
||||
- udev: ensure that the network interfaces are renamed even if they
|
||||
exist (bnc#809843).
|
||||
add: 1027-udev-always-rename-network.patch
|
||||
add: 1027-udev-always-rename-network.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 20 10:14:59 UTC 2013 - rmilasan@suse.com
|
||||
|
||||
- udev: re-add persistent network rules (bnc#809843).
|
||||
add: 1026-re-add-persistent-net.patch
|
||||
- rebase all patches, ensure that they apply properly.
|
||||
- rebase all patches, ensure that they apply properly.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 21 14:45:12 UTC 2013 - fcrozat@suse.com
|
||||
@ -728,7 +1190,7 @@ Tue Feb 19 09:51:18 UTC 2013 - rmilasan@suse.com
|
||||
- udev: usb_id: parse only 'size' bytes of the 'descriptors' buffer
|
||||
add: 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch
|
||||
- udev: expose new ISO9660 properties from libblkid
|
||||
add: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch
|
||||
add: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 18 09:27:05 UTC 2013 - jengelh@inai.de
|
||||
@ -763,7 +1225,7 @@ Wed Feb 13 11:34:06 UTC 2013 - rmilasan@suse.com
|
||||
- udev: use unique names for temporary files created in /dev.
|
||||
add: 1022-udev-use-unique-names-for-temporary-files-created-in.patch
|
||||
- cdrom_id: add data track count for bad virtual drive.
|
||||
add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch
|
||||
add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 12 09:16:23 UTC 2013 - rmilasan@suse.com
|
||||
@ -785,7 +1247,7 @@ Fri Feb 1 16:27:45 UTC 2013 - fcrozat@suse.com
|
||||
Tue Jan 29 13:32:30 UTC 2013 - rmilasan@suse.com
|
||||
|
||||
- udev: Fix device matching in the accelerometer
|
||||
add: 1019-udev-Fix-device-matching-in-the-accelerometer.patch
|
||||
add: 1019-udev-Fix-device-matching-in-the-accelerometer.patch
|
||||
- keymap: add aditional support for some keyboard keys
|
||||
add: 1018-keymap-add-aditional-support.patch
|
||||
- journalctl: require argument for --priority
|
||||
@ -794,7 +1256,7 @@ Tue Jan 29 13:32:30 UTC 2013 - rmilasan@suse.com
|
||||
libudev-validate-argument-udev_enumerate_new.patch
|
||||
kmod-fix-builtin-typo.patch
|
||||
- rename udev-root-symlink.service to systemd-udev-root-symlink.service.
|
||||
- fix in udev package missing link in basic.target.wants for
|
||||
- fix in udev package missing link in basic.target.wants for
|
||||
systemd-udev-root-symlink.service
|
||||
|
||||
-------------------------------------------------------------------
|
||||
@ -926,7 +1388,7 @@ Wed Jan 9 09:42:50 UTC 2013 - rmilasan@suse.com
|
||||
add: 1014-udev-fix-whitespace.patch
|
||||
- udev: properly handle symlink removal by 'change' event
|
||||
add: 1015-udev-properly-handle-symlink-removal-by-change-event.patch
|
||||
- udev: builtin - do not fail builtin initialization if one of
|
||||
- udev: builtin - do not fail builtin initialization if one of
|
||||
them returns an error
|
||||
add: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch
|
||||
- udev: use usec_t and now()
|
||||
@ -938,7 +1400,7 @@ Tue Jan 8 12:47:43 UTC 2013 - rmilasan@suse.com
|
||||
- udevd: add missing ':' to getopt_long 'e'.
|
||||
add: 1007-udevd-add-missing-to-getopt_long-e.patch
|
||||
- clean up systemd.spec, make it easy to see which are udev and
|
||||
systemd patches.
|
||||
systemd patches.
|
||||
- make 'reload' and 'force-reload' LSB compliant (bnc#793936).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
@ -946,8 +1408,8 @@ Tue Dec 11 00:22:50 UTC 2012 - crrodriguez@opensuse.org
|
||||
|
||||
- detect-btrfs-ssd.patch: Fix btrfs detection on SSD.
|
||||
- timedated-donot-close-bogus-dbus-connection.patch: Avoid
|
||||
closing an non-existent dbus connection and getting assertion
|
||||
failures.
|
||||
closing an non-existent dbus connection and getting assertion
|
||||
failures.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com
|
||||
@ -980,7 +1442,7 @@ Tue Dec 4 16:51:32 UTC 2012 - fcrozat@suse.com
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 22 14:22:00 UTC 2012 - rmilasan@suse.com
|
||||
|
||||
- Fix creation of /dev/root link.
|
||||
- Fix creation of /dev/root link.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 20 18:25:49 CET 2012 - fcrozat@suse.com
|
||||
@ -1139,7 +1601,7 @@ Thu Oct 4 11:23:42 UTC 2012 - fcrozat@suse.com
|
||||
+ Optional journal gateway daemon
|
||||
(systemd-journal-gatewayd.service) to access journal via HTTP
|
||||
and JSON. Use "wget http://localhost:19531/entries" to get
|
||||
/var/log/messages compatible format and
|
||||
/var/log/messages compatible format and
|
||||
'curl -H"Accept: application/json"
|
||||
http://localhost:19531/entries' for JSON formatted content.
|
||||
HTML5 static page is also available as explained on
|
||||
@ -1369,7 +1831,7 @@ Thu Apr 19 10:07:47 UTC 2012 - fcrozat@suse.com
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 3 09:37:09 UTC 2012 - dvaleev@suse.com
|
||||
|
||||
- apply ppc patch to systemd-gtk too (fixes build)
|
||||
- apply ppc patch to systemd-gtk too (fixes build)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 22 08:47:36 UTC 2012 - fcrozat@suse.com
|
||||
@ -1451,7 +1913,7 @@ Sun Feb 19 07:56:05 UTC 2012 - jengelh@medozas.de
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 17 09:22:50 UTC 2012 - tittiatcoke@gmail.com
|
||||
|
||||
- Enable Plymouth integration.
|
||||
- Enable Plymouth integration.
|
||||
* Bootsplash related files will be moved to the bootsplash
|
||||
package
|
||||
|
||||
@ -1502,7 +1964,7 @@ Tue Feb 7 14:43:58 UTC 2012 - fcrozat@suse.com
|
||||
property.
|
||||
+ Rudimentary service watchdog support (not complete)
|
||||
+ Improve bootcharts, by immediatly changing argv[0] after
|
||||
forking to to reflect which process will be executed.
|
||||
forking to to reflect which process will be executed.
|
||||
+ Various bug fixes.
|
||||
- Add remote-fs-after-network.patch and update insserv patch:
|
||||
ensure remote-fs-pre.target is enabled and started before network
|
||||
@ -1561,7 +2023,7 @@ Wed Jan 25 10:37:06 UTC 2012 - fcrozat@suse.com
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 19 13:47:39 UTC 2012 - tittiatcoke@gmail.com
|
||||
|
||||
- Make the systemd journal persistent by creating the
|
||||
- Make the systemd journal persistent by creating the
|
||||
/var/log/journal directory
|
||||
|
||||
-------------------------------------------------------------------
|
||||
@ -1571,8 +2033,8 @@ Wed Jan 18 09:03:51 UTC 2012 - tittiatcoke@gmail.com
|
||||
- Bugfixes
|
||||
- Implementation of a Journal Utility Library
|
||||
- Implementation of a 128 Bit ID Utility Library
|
||||
- 11 Patches integrated upstream
|
||||
- Add systemd-syslog_away_early_on_shutdown.patch: make sure
|
||||
- 11 Patches integrated upstream
|
||||
- Add systemd-syslog_away_early_on_shutdown.patch: make sure
|
||||
syslog socket goes away early during shutdown.
|
||||
- Add listen.conf for rsyslog. This will ensure that it will still
|
||||
work fine with rsyslog and the new journal.
|
||||
@ -1850,7 +2312,7 @@ Wed Aug 3 07:11:33 UTC 2011 - aj@suse.de
|
||||
* New PrivateNetwork= service setting which allows you to shut off
|
||||
networking for a specific service (i.e. all routable network
|
||||
interfaces will disappear for that service).
|
||||
* Merged insserv-parsing.patch and bash-completion-restart.patch
|
||||
* Merged insserv-parsing.patch and bash-completion-restart.patch
|
||||
patches.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package systemd-mini
|
||||
#
|
||||
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -23,9 +23,14 @@
|
||||
%define udevpkgname udev-mini
|
||||
%define udev_major 1
|
||||
|
||||
%if 0%{?sles_version} == 0
|
||||
%global with_bash_completion 1
|
||||
%endif
|
||||
%bcond_with bash_completion
|
||||
|
||||
Name: systemd-mini
|
||||
Url: http://www.freedesktop.org/wiki/Software/systemd
|
||||
Version: 207
|
||||
Version: 208
|
||||
Release: 0
|
||||
Summary: A System and Session Manager
|
||||
License: LGPL-2.1+
|
||||
@ -73,6 +78,7 @@ BuildRequires: pkgconfig(liblzma)
|
||||
BuildRequires: pkgconfig(libmicrohttpd)
|
||||
%endif
|
||||
BuildRequires: pkgconfig(libpci) >= 3
|
||||
BuildRequires: pkgconfig(libpcre)
|
||||
%if ! 0%{?bootstrap}
|
||||
BuildRequires: pkgconfig(libqrencode)
|
||||
%endif
|
||||
@ -88,6 +94,9 @@ Conflicts: kiwi
|
||||
# the buildignore is important for bootstrapping
|
||||
#!BuildIgnore: udev
|
||||
Requires: %{udevpkgname} >= 172
|
||||
%if %{with bash_completion}
|
||||
Recommends: bash-completion
|
||||
%endif
|
||||
Requires: dbus-1 >= 1.4.0
|
||||
Requires: kbd
|
||||
Requires: kmod >= 14
|
||||
@ -98,6 +107,9 @@ Requires: util-linux >= 2.21
|
||||
Requires(post): coreutils
|
||||
Requires(post): findutils
|
||||
%endif
|
||||
%if ! 0%{?bootstrap}
|
||||
Requires(post): pam-config
|
||||
%endif
|
||||
Conflicts: filesystem < 11.5
|
||||
Conflicts: mkinitrd < 2.7.0
|
||||
Obsoletes: systemd-analyze < 201
|
||||
@ -112,6 +124,8 @@ Source7: libgcrypt.m4
|
||||
Source8: systemd-journald.init
|
||||
Source9: nss-myhostname-config
|
||||
Source10: macros.systemd.upstream
|
||||
Source11: after-local.service
|
||||
Source12: systemd-powerfail
|
||||
|
||||
Source1060: boot.udev
|
||||
Source1061: write_dev_root_rule
|
||||
@ -156,6 +170,7 @@ Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch
|
||||
# PATCH-FIX-OPENSUSE ensure-shortname-is-set-as-hostname-bnc-820213.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname
|
||||
Patch41: ensure-shortname-is-set-as-hostname-bnc-820213.patch
|
||||
Patch42: systemd-pam_config.patch
|
||||
|
||||
# Upstream First - Policy:
|
||||
# Never add any patches to this package without the upstream commit id
|
||||
# in the patch. Any patches added here without a very good reason to make
|
||||
@ -170,23 +185,96 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch
|
||||
Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch
|
||||
# PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin
|
||||
Patch46: use-usr-sbin-sulogin-for-emergency-service.patch
|
||||
# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run
|
||||
# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run
|
||||
Patch47: systemd-dbus-system-bus-address.patch
|
||||
|
||||
# PATCH-FIX-UPSTREAM 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch -- r must be set to the return value of previous call.
|
||||
Patch48: 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch
|
||||
# PATCH-FIX-UPSTREAM 0002-cgroup-correct-the-log-information.patch -- fix misleading log information.
|
||||
Patch49: 0002-cgroup-correct-the-log-information.patch
|
||||
# PATCH-FIX-UPSTREAM 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch -- memory cgroup setting is wrong.
|
||||
Patch50: 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch
|
||||
# PATCH-FIX-UPSTREAM 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch -- systemd-random-seed-load should fail if write fails.
|
||||
Patch51: 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch
|
||||
# PATCH-FIX-UPSTREAM 0005-core-cgroup-first-print-then-free.patch -- fix use after free
|
||||
Patch52: 0005-core-cgroup-first-print-then-free.patch
|
||||
# PATCH-FIX-UPSTREAM 0006-swap-fix-reverse-dependencies.patch -- SWAP does not mount properly
|
||||
Patch53: 0006-swap-fix-reverse-dependencies.patch
|
||||
# PATCH-FIX-UPSTREAM 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fix swap units
|
||||
Patch54: 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch fcrozat@suse.com -- fix acpi memleak
|
||||
Patch48: 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch
|
||||
# PATCH-FIX-UPSTREAM 0002-fix-lingering-references-to-var-lib-backlight-random.patch fcrozat@suse.com -- fix invalid path in documentation
|
||||
Patch49: 0002-fix-lingering-references-to-var-lib-backlight-random.patch
|
||||
# PATCH-FIX-UPSTREAM 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch fcrozat@suse.com -- fix invalid memory free
|
||||
Patch50: 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch
|
||||
# PATCH-FIX-UPSTREAM 0004-systemctl-fix-name-mangling-for-sysv-units.patch fcrozat@suse.com -- fix name mangling for sysv units
|
||||
Patch51: 0004-systemctl-fix-name-mangling-for-sysv-units.patch
|
||||
# PATCH-FIX-UPSTREAM 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch fcrozat@suse.com -- fix OOM handling
|
||||
Patch52: 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch
|
||||
# PATCH-FIX-UPSTREAM 0006-journald-add-missing-error-check.patch fcrozat@suse.com -- add missing error check
|
||||
Patch53: 0006-journald-add-missing-error-check.patch
|
||||
# PATCH-FIX-UPSTREAM 0007-bus-fix-potentially-uninitialized-memory-access.patch fcrozat@suse.com -- fix uninitialized memory access
|
||||
Patch54: 0007-bus-fix-potentially-uninitialized-memory-access.patch
|
||||
# PATCH-FIX-UPSTREAM 0008-dbus-fix-return-value-of-dispatch_rqueue.patch fcrozat@suse.com -- fix return value
|
||||
Patch55: 0008-dbus-fix-return-value-of-dispatch_rqueue.patch
|
||||
# PATCH-FIX-UPSTREAM 0009-modules-load-fix-error-handling.patch fcrozat@suse.com -- fix error handling
|
||||
Patch56: 0009-modules-load-fix-error-handling.patch
|
||||
# PATCH-FIX-UPSTREAM 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- fix incorrect memory access
|
||||
Patch57: 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch
|
||||
# PATCH-FIX-UPSTREAM 0011-strv-don-t-access-potentially-NULL-string-arrays.patch fcrozat@suse.com -- fix incorrect memory access
|
||||
Patch58: 0011-strv-don-t-access-potentially-NULL-string-arrays.patch
|
||||
# PATCH-FIX-UPSTREAM 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch fcrozat@suse.com -- fix invalid pointer
|
||||
Patch59: 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch
|
||||
# PATCH-FIX-UPSTREAM 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch fcrozat@suse.com -- fix permission on /run/log/journal
|
||||
Patch60: 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch fcrozat@suse.com -- order remote mount points properly before remote-fs.target
|
||||
Patch61: 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-gpt-auto-generator-exit-immediately-if-in-container.patch fcrozat@suse.com -- don't start gpt auto-generator in container
|
||||
Patch62: 0001-gpt-auto-generator-exit-immediately-if-in-container.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-manager-when-verifying-whether-clients-may-change-en.patch fcrozat@suse.com -- fix reload check in selinux case
|
||||
Patch63: 0001-manager-when-verifying-whether-clients-may-change-en.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-logind-fix-bus-introspection-data-for-TakeControl.patch fcrozat@suse.com -- fix introspection for TakeControl
|
||||
Patch64: 0001-logind-fix-bus-introspection-data-for-TakeControl.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-mount-check-for-NULL-before-reading-pm-what.patch fcrozat@suse.com -- fix crash when parsing some incorrect unit
|
||||
Patch65: 0001-mount-check-for-NULL-before-reading-pm-what.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch fcrozat@suse.com -- Fix udev rules parsing
|
||||
Patch66: 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-systemd-serialize-deserialize-forbid_restart-value.patch fcrozat@suse.com -- Fix incorrect deserialization for forbid_restart
|
||||
Patch67: 0001-systemd-serialize-deserialize-forbid_restart-value.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-core-unify-the-way-we-denote-serialization-attribute.patch fcrozat@suse.com -- Ensure forbid_restart is named like other attributes
|
||||
Patch68: 0001-core-unify-the-way-we-denote-serialization-attribute.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-journald-fix-minor-memory-leak.patch fcrozat@suse.com -- fix memleak in journald
|
||||
Patch69: 0001-journald-fix-minor-memory-leak.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch fcrozat@suse.com -- Improve ACPI firmware performance parsing
|
||||
Patch70: 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch fcrozat@suse.com -- Fix journal rotation
|
||||
Patch71: 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-login-fix-invalid-free-in-sd_session_get_vt.patchfcrozat@suse.com -- Fix memory corruption in sd_session_get_vt
|
||||
Patch72: 0001-login-fix-invalid-free-in-sd_session_get_vt.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-login-make-sd_session_get_vt-actually-work.patch fcrozat@suse.com -- Ensure sd_session_get_vt returns correct value
|
||||
Patch73: 0001-login-make-sd_session_get_vt-actually-work.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-Never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- Don't call qsort on NULL arrays
|
||||
Patch74: 0001-Never-call-qsort-on-potentially-NULL-arrays.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-dbus-common-avoid-leak-in-error-path.patch fcrozat@suse.com -- Fix memleak in dbus-common code
|
||||
Patch75: 0001-dbus-common-avoid-leak-in-error-path.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-drop-ins-check-return-value.patch fcrozat@suse.com -- Fix return value for drop-ins checks
|
||||
Patch76: 0001-drop-ins-check-return-value.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-shared-util-Fix-glob_extend-argument.patch fcrozat@suse.com -- Fix glob_extend argument
|
||||
Patch77: 0001-shared-util-Fix-glob_extend-argument.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-Fix-bad-assert-in-show_pid_array.patch fcrozat@suse.com -- Fix bad assert in show_pid_array
|
||||
Patch78: 0001-Fix-bad-assert-in-show_pid_array.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-analyze-set-white-background.patch werner@suse.com -- Make background of systemd-analyze SVG white
|
||||
Patch79: 0001-analyze-set-white-background.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-analyze-set-text-on-side-with-most-space.patch werner@suse.com -- Place the text on the side with most space
|
||||
Patch80: 0001-analyze-set-text-on-side-with-most-space.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-logind-garbage-collect-stale-users.patch -- Don't stop a running user manager from garbage-collecting the user.
|
||||
Patch81: 0001-logind-garbage-collect-stale-users.patch
|
||||
# PATCH-FIX-UPSTREAM analyze-fix-crash-in-command-line-parsing.patch fcrozat@suse.com bnc#859365 -- Fix crash in systemd-analyze
|
||||
Patch82: analyze-fix-crash-in-command-line-parsing.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch -- Prevent accidental kill of emergency shell (bnc#852021)
|
||||
Patch83: 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch
|
||||
# PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232)
|
||||
Patch84: make-emergency.service-conflict-with-syslog.socket.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-upstream-systemctl-halt-reboot-error-handling.patch
|
||||
Patch85: 0001-upstream-systemctl-halt-reboot-error-handling.patch
|
||||
# PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
|
||||
Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch -- Allow sending SIGTERM to main PID only (bnc#841544)
|
||||
Patch87: 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch
|
||||
# PATCH-FIX-UPSTREAM 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch -- Allow using it with PAM enabled services (bnc#841544)
|
||||
Patch88: 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch
|
||||
# PATCH-FIX-UPSTREAM 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch -- Make sure final SIGKILL actually kills everything (bnc#841544)
|
||||
Patch89: 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch
|
||||
# PATCH-FIX-SUSE 0001-On_s390_con3270_disable_ANSI_colour_esc.patch
|
||||
Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch
|
||||
# PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty
|
||||
Patch91: plymouth-quit-and-wait-for-emergency-service.patch
|
||||
|
||||
# udev patches
|
||||
# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch
|
||||
@ -203,8 +291,28 @@ Patch1006: 1006-udev-always-rename-network.patch
|
||||
Patch1007: 1007-physical-hotplug-cpu-and-memory.patch
|
||||
# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch
|
||||
Patch1008: 1008-add-msft-compability-rules.patch
|
||||
# PATCH-FIX-UPSTREAM libudev: fix move_later comparison
|
||||
Patch1009: 0007-libudev-fix-move_later-comparison.patch
|
||||
# PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844)
|
||||
Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch
|
||||
# PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071)
|
||||
Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch
|
||||
# PATCH-FIX-OPENSUSE 1011-check-4-valid-kmsg-device.patch -- Avoid busy systemd-journald (bnc#851393)
|
||||
Patch1011: 1011-check-4-valid-kmsg-device.patch
|
||||
# PATCH-FIX-UPSTREAM 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch
|
||||
Patch1012: 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch
|
||||
# PATCH-FIX-UPSTREAM U_logind_revert_lazy_session_activation_on_non_vt_seats.patch
|
||||
Patch1013: U_logind_revert_lazy_session_activation_on_non_vt_seats.patch
|
||||
# PATCH-FIX-OPENSUSE 1014-journald-with-journaling-FS.patch
|
||||
Patch1014: 1014-journald-with-journaling-FS.patch
|
||||
# PATCH-FIX-UPSTREAM build-sys-make-multi-seat-x-optional.patch
|
||||
Patch1015: build-sys-make-multi-seat-x-optional.patch
|
||||
# PATCH-FIX-SUSE 1016-support-powerfail-with-powerstatus.patch
|
||||
Patch1016: 1016-support-powerfail-with-powerstatus.patch
|
||||
# PATCH-FIX-UPSTREAM 1017-skip-native-unit-handling-if-sysv-already-handled.patch
|
||||
Patch1017: 1017-skip-native-unit-handling-if-sysv-already-handled.patch
|
||||
# PATCH-FIX-SUSE 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch
|
||||
Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch
|
||||
# PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch
|
||||
Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch
|
||||
|
||||
%description
|
||||
Systemd is a system and service manager, compatible with SysV and LSB
|
||||
@ -248,7 +356,7 @@ Summary: A rule-based device node and kernel event manager
|
||||
License: GPL-2.0
|
||||
Group: System/Kernel
|
||||
Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
|
||||
PreReq: /bin/pidof /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd /usr/bin/sg_inq
|
||||
PreReq: /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd /usr/bin/sg_inq
|
||||
Requires(post): lib%{udevpkgname}%{udev_major}
|
||||
Conflicts: systemd < 39
|
||||
Conflicts: aaa_base < 11.5
|
||||
@ -441,6 +549,43 @@ cp %{SOURCE7} m4/
|
||||
%patch52 -p1
|
||||
%patch53 -p1
|
||||
%patch54 -p1
|
||||
%patch55 -p1
|
||||
%patch56 -p1
|
||||
%patch57 -p1
|
||||
%patch58 -p1
|
||||
%patch59 -p1
|
||||
%patch60 -p1
|
||||
%patch61 -p1
|
||||
%patch62 -p1
|
||||
%patch63 -p1
|
||||
%patch64 -p1
|
||||
%patch65 -p1
|
||||
%patch66 -p1
|
||||
%patch67 -p1
|
||||
%patch68 -p1
|
||||
%patch69 -p1
|
||||
%patch70 -p1
|
||||
%patch71 -p1
|
||||
%patch72 -p1
|
||||
%patch73 -p1
|
||||
%patch74 -p1
|
||||
%patch75 -p1
|
||||
%patch76 -p1
|
||||
%patch77 -p1
|
||||
%patch78 -p1
|
||||
%patch79 -p1
|
||||
%patch80 -p1
|
||||
%patch81 -p1
|
||||
%patch82 -p1
|
||||
%patch83 -p1
|
||||
%patch84 -p1
|
||||
%patch85 -p1
|
||||
%patch86 -p1
|
||||
%patch87 -p1
|
||||
%patch88 -p1
|
||||
%patch89 -p1
|
||||
%patch90 -p1
|
||||
%patch91 -p1
|
||||
|
||||
# udev patches
|
||||
%patch1001 -p1
|
||||
@ -454,6 +599,19 @@ cp %{SOURCE7} m4/
|
||||
%patch1008 -p1
|
||||
%endif
|
||||
%patch1009 -p1
|
||||
%patch1010 -p1
|
||||
%patch1011 -p1
|
||||
%patch1012 -p1
|
||||
%patch1013 -p1
|
||||
%patch1014 -p1
|
||||
%patch1015 -p1
|
||||
%patch1016 -p1
|
||||
%patch1017 -p1
|
||||
%patch1018 -p1
|
||||
%patch1019 -p1
|
||||
|
||||
# ensure generate files are removed
|
||||
rm -f units/emergency.service
|
||||
|
||||
%build
|
||||
autoreconf -fiv
|
||||
@ -479,6 +637,11 @@ export V=1
|
||||
--with-rc-local-script-path-start=/etc/init.d/boot.local \
|
||||
--with-rc-local-script-path-stop=/etc/init.d/halt.local \
|
||||
--with-debug-shell=/bin/bash \
|
||||
--disable-smack \
|
||||
--disable-ima \
|
||||
%if 0%{?suse_version} > 1310
|
||||
--disable-multi-seat-x \
|
||||
%endif
|
||||
CFLAGS="%{optflags}"
|
||||
make %{?_smp_mflags}
|
||||
|
||||
@ -555,6 +718,9 @@ ln -s systemd-random-seed.service %{buildroot}/%{_prefix}/lib/systemd/system/ran
|
||||
# don't mount /tmp as tmpfs for now
|
||||
rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount
|
||||
|
||||
# don't enable wall ask password service, it spams every console (bnc#747783)
|
||||
rm %{buildroot}%{_prefix}/lib/systemd/system/multi-user.target.wants/systemd-ask-password-wall.path
|
||||
|
||||
# create %{_libexecdir}/modules-load.d
|
||||
mkdir -p %{buildroot}%{_libexecdir}/modules-load.d
|
||||
cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/sg.conf
|
||||
@ -579,7 +745,7 @@ rm -f %{buildroot}/var/log/README
|
||||
%endif
|
||||
|
||||
# legacy links
|
||||
for f in loginctl journalctl ; do
|
||||
for f in loginctl journalctl ; do
|
||||
ln -s $f %{buildroot}%{_bindir}/systemd-$f
|
||||
%if ! 0%{?bootstrap}
|
||||
ln -s $f.1 %{buildroot}%{_mandir}/man1/systemd-$f.1
|
||||
@ -616,6 +782,27 @@ cat << EOF > %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/nocl
|
||||
TTYVTDisallocate=no
|
||||
EOF
|
||||
|
||||
# ensure after.local wrapper is called
|
||||
install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/
|
||||
ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/
|
||||
|
||||
# support for SIGPWR handling with /var/run/powerstatus of e.g. powerd
|
||||
install -m 755 %{S:12} %{buildroot}/%{_prefix}/lib/systemd/
|
||||
install -m 644 units/powerfail.service %{buildroot}/%{_prefix}/lib/systemd/system/
|
||||
%if ! 0%{?bootstrap}
|
||||
install -m 644 man/systemd-powerfail.service.8 %{buildroot}/%{_mandir}/man8/
|
||||
%endif
|
||||
|
||||
# clean out some completions which requires bash-completion package
|
||||
%if %{without bash_completion}
|
||||
for c in %{buildroot}/%{_datadir}/bash-completion/completions/*
|
||||
do
|
||||
test -e "$c" || continue
|
||||
grep -q _init_completion "$c" || continue
|
||||
rm -vf "$c"
|
||||
done
|
||||
%endif
|
||||
|
||||
%fdupes -s %{buildroot}%{_mandir}
|
||||
|
||||
# packaged in systemd-rpm-macros
|
||||
@ -626,12 +813,18 @@ getent group systemd-journal >/dev/null || groupadd -r systemd-journal || :
|
||||
exit 0
|
||||
|
||||
%post
|
||||
/usr/sbin/pam-config -a --systemd >/dev/null 2>&1 || :
|
||||
%if ! 0%{?bootstrap}
|
||||
/usr/sbin/pam-config -a --systemd || :
|
||||
%endif
|
||||
/sbin/ldconfig
|
||||
[ -e /var/lib/random-seed ] && mv /var/lib/random-seed /var/lib/systemd/ > /dev/null || :
|
||||
/usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || :
|
||||
/usr/lib/systemd/systemd-random-seed save >/dev/null 2>&1 || :
|
||||
/usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || :
|
||||
/usr/bin/journalctl --update-catalog >/dev/null 2>&1 || :
|
||||
# Make sure new journal files
|
||||
chgrp systemd-journal /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || :
|
||||
chmod g+s /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || :
|
||||
|
||||
# Try to read default runlevel from the old inittab if it exists
|
||||
if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then
|
||||
@ -651,28 +844,29 @@ if [ "$1" -eq 1 ]; then
|
||||
remote-fs.target >/dev/null 2>&1 || :
|
||||
fi
|
||||
|
||||
%triggerpostun -- systemd < 194
|
||||
# migrate any symlink which may refer to the old path
|
||||
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
|
||||
|
||||
# since v207 /etc/sysctl.conf is no longer parsed, however
|
||||
# backward compatibility is provided by /etc/sysctl.d/99-sysctl.conf
|
||||
if [ ! -L /etc/sysctl.d/99-sysctl.conf -a -e /etc/sysctl.conf ]; then
|
||||
/bin/ln -sf /etc/sysctl.conf /etc/sysctl.d/99-sysctl.conf || :
|
||||
fi
|
||||
|
||||
# migrate any symlink which may refer to the old path
|
||||
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
|
||||
|
||||
%postun
|
||||
/sbin/ldconfig
|
||||
if [ $1 -ge 1 ]; then
|
||||
/usr/bin/systemctl daemon-reload >/dev/null 2>&1 || :
|
||||
/usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || :
|
||||
fi
|
||||
%if ! 0%{?bootstrap}
|
||||
if [ $1 -eq 0 ]; then
|
||||
/usr/sbin/pam-config -d --systemd >/dev/null 2>&1 || :
|
||||
/usr/sbin/pam-config -d --systemd || :
|
||||
fi
|
||||
%endif
|
||||
|
||||
%preun
|
||||
if [ $1 -eq 0 ]; then
|
||||
@ -978,10 +1172,13 @@ exit 0
|
||||
%dir /var/lib/systemd/sysv-convert
|
||||
%dir /var/lib/systemd/migrated
|
||||
%dir /var/lib/systemd/catalog
|
||||
%ghost /var/lib/systemd/catalog/database
|
||||
%dir /var/lib/systemd/coredump
|
||||
%dir /usr/share/zsh
|
||||
%dir /usr/share/zsh/site-functions
|
||||
/usr/share/zsh/site-functions/*
|
||||
%ghost /var/lib/systemd/backlight
|
||||
%ghost /var/lib/systemd/random-seed
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root,-)
|
||||
|
28
systemd-powerfail
Normal file
28
systemd-powerfail
Normal file
@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# /usr/lib/systemd/systemd-powerfail
|
||||
#
|
||||
# Copyright (c) 2014 SUSE LINUX Products GmbH, Germany.
|
||||
# Author: Werner Fink
|
||||
# Please send feedback to http://www.suse.de/feedback
|
||||
#
|
||||
# Description:
|
||||
#
|
||||
# Used to evaluate the status of /var/run/powerstatus
|
||||
#
|
||||
|
||||
trap "echo" SIGINT SIGSEGV SIGTERM
|
||||
|
||||
POWERFAIL='THE POWER IS FAILED! SYSTEM GOING DOWN! PLEASE LOG OFF NOW!'
|
||||
POWERFAILNOW='THE POWER IS FAILED! LOW BATTERY - EMERGENCY SYSTEM SHUTDOWN!'
|
||||
POWERISBACK='THE POWER IS BACK'
|
||||
|
||||
typeset pwrstat=0
|
||||
test -s /var/run/powerstatus && read pwrstat < /var/run/powerstatus
|
||||
rm -f /var/run/powerstatus
|
||||
|
||||
case "$pwrstat" in
|
||||
O*) exec /sbin/shutdown -c +0 "$POWERISBACK" ;;
|
||||
L*) exec /sbin/shutdown -P +0 "$POWERFAILNOW" ;;
|
||||
*) exec /sbin/shutdown -P +2 "$POWERFAIL" ;;
|
||||
esac
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package systemd-rpm-macros
|
||||
#
|
||||
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
|
544
systemd.changes
544
systemd.changes
@ -1,14 +1,476 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 5 11:19:28 UTC 2014 - werner@suse.de
|
||||
|
||||
- Change and extend patch
|
||||
0001-On_s390_con3270_disable_ANSI_colour_esc.patch
|
||||
to disable the workaround to find /dev/3270/tty1 as this now
|
||||
should be done by a) the kernel patch
|
||||
http://lkml.indiana.edu/hypermail/linux/kernel/1402.0/02319.html
|
||||
and the changed udev rule 99-systemd.rules
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Feb 2 08:53:17 UTC 2014 - ohering@suse.com
|
||||
|
||||
- Remove PreReq pidof from udev, nothing in this pkg uses it
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 31 14:24:35 UTC 2014 - werner@suse.de
|
||||
|
||||
- Change and extend patch
|
||||
0001-On_s390_con3270_disable_ANSI_colour_esc.patch
|
||||
to re-enable colouring if 3270 console was enforced on the kernel
|
||||
command line as 3270 cna handle colour ANSI escape sequences.
|
||||
Also let the serial getty generator find the /dev/3270/tty1
|
||||
character device (bnc#861316)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 30 12:33:08 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add patch 0001-On_s390_con3270_disable_ANSI_colour_esc.patch
|
||||
to strip the colouring ANSI escape sequences from the console
|
||||
messages (bnc#860937)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 30 08:29:00 UTC 2014 - werner@suse.de
|
||||
|
||||
- Change patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
|
||||
to skip already by the kernel managed devices
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 29 18:03:39 UTC 2014 - arvidjaar@gmail.com
|
||||
|
||||
- fix timeout stopping user@.service (bnc#841544)
|
||||
* 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch
|
||||
* 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch
|
||||
* 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 28 12:44:07 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add patch 0001-upstream-systemctl-halt-reboot-error-handling.patch
|
||||
to be able to detect if the sysctl reboot() returns.
|
||||
- Add patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
|
||||
A check for unmaintained disk like devices is added to be able to
|
||||
flush and maybe shut them down. Also the missing sync() system
|
||||
call is added for the direct halt/reboot systemctl command. Then
|
||||
the system halt is used as fallback if poweroff fails for both
|
||||
the direct poweroff systemctl command as well as for the
|
||||
systemd-shutdown utility.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 23 13:24:53 UTC 2014 - werner@suse.de
|
||||
|
||||
- Make systemd-mini build
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 23 13:18:39 UTC 2014 - werner@suse.de
|
||||
|
||||
- Make requires bash-completion a recommends
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 21 13:05:59 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add patch 1017-skip-native-unit-handling-if-sysv-already-handled.patch
|
||||
to avoid that enabled boot scripts will be handled as unit files
|
||||
by systemctl status command (bnc#818044)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 21 12:51:20 UTC 2014 - werner@suse.de
|
||||
|
||||
- Drop patch 1017-enforce-sufficient-shutdown-warnings.patch
|
||||
as the original code behaves exactly as the shutdown code of
|
||||
the old SysVinit (bnc#750845)
|
||||
- Rename support-powerfail-with-powerstatus.patch to
|
||||
1016-support-powerfail-with-powerstatus.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 20 10:18:20 UTC 2014 - fcrozat@suse.com
|
||||
|
||||
- Add analyze-fix-crash-in-command-line-parsing.patch: fix crash in
|
||||
systemd-analyze (bnc#859365)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 17 16:09:24 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add patch
|
||||
1019-make-completion-smart-to-be-able-to-redirect.patch
|
||||
to make redirections work with the bash command completions for
|
||||
for systemd command tools (bnc#856858, bnc#859072)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 17 12:24:13 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add patch
|
||||
1018-Make-LSB-Skripts-know-about-Required-and-Should.patch
|
||||
to support the "+" to tag wanted dependencies as well as make
|
||||
sure that required dependencies are handles as required ones.
|
||||
This should fix bnc#858864 and bnc#857204.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 16 16:08:00 UTC 2014 - lnussel@suse.de
|
||||
|
||||
- apply preset also to service files that are new in upgrade
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 15 14:11:02 UTC 2014 - werner@suse.de
|
||||
|
||||
- Change support-powerfail-with-powerstatus.patch to use BindsTo
|
||||
instead of BindTo
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 15 12:34:53 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add patch 1017-enforce-sufficient-shutdown-warnings.patch
|
||||
Warn once per hour in the last 3 hours, then all 30 minutes in last
|
||||
hour, all 15 minutes in the last 45 minutes, all 10 minutes in the
|
||||
last 15 minutes, and then all minute in the last 10 minutes (bnc#750845)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 14 18:28:09 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add patch support-powerfail-with-powerstatus.patch and source
|
||||
file systemd-powerfail to implement SIGPWR support with evaluation
|
||||
of the file /var/run/powerstatus (bnc#737690)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 20 12:06:18 UTC 2013 - werner@suse.de
|
||||
|
||||
- Adapt patch
|
||||
1011-check-4-valid-kmsg-device.patch
|
||||
to fit current upstream version maybe related to bnc#854884
|
||||
- Change patch
|
||||
1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch
|
||||
to check if XDG_RUNTIME_DIR is set before the call of pam_putenv()
|
||||
may fix bnc#855160
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 20 09:40:01 UTC 2013 - lbsousajr@gmail.com
|
||||
|
||||
- Disable multi-seat-x build, since package xorg-x11-server
|
||||
currently in Factory no longer needs it.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 18 18:56:01 UTC 2013 - hrvoje.senjan@gmail.com
|
||||
|
||||
- Added 0001-logind-garbage-collect-stale-users.patch: Don't stop a
|
||||
running user manager from garbage-collecting the user. Original
|
||||
behavior caused bnc#849870
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 16 11:08:33 UTC 2013 - lbsousajr@gmail.com
|
||||
|
||||
- Add build-sys-make-multi-seat-x-optional.patch
|
||||
* See: http://cgit.freedesktop.org/systemd/systemd/commit/?id=bd441fa27a22b7c6e11d9330560e0622fb69f297
|
||||
* Now systemd-multi-seat-x build can be disabled with configure option
|
||||
--disable-multi-seat-x. It should be done when xorg-x11-server
|
||||
no longer needs it (work in progress).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 16 09:43:29 UTC 2013 - fcrozat@suse.com
|
||||
|
||||
- Update insserv-generator.patch: fix crash in insserv generator
|
||||
(bnc#854314).
|
||||
- Update apply-ACL-for-nvidia-device-nodes.patch with latest fixes
|
||||
for Nvidia cards (bnc#808319).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 6 13:30:19 UTC 2013 - werner@suse.de
|
||||
|
||||
- Add patch
|
||||
1014-journald-with-journaling-FS.patch
|
||||
which now uses the file system ioctls for switching off atime,
|
||||
compression, and copy-on-write of the journal directory of the
|
||||
the systemd-journald (bnc#838475)
|
||||
- Let us build require the package config for libpcre (bnc#853293)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 30 08:16:02 UTC 2013 - arvidjaar@gmail.com
|
||||
|
||||
- Add patch
|
||||
0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch
|
||||
Make sure emergency shell is not killed by attempt to start another unit
|
||||
(bnc#852021). Backported from d420282b28f50720e233ccb1c02547c562195653.
|
||||
- Add patch
|
||||
make-emergency.service-conflict-with-syslog.socket.patch
|
||||
Previous patch did not fix problem if syslog connection request came
|
||||
after emergency shell was already started. So forcibly stop syslog.socket
|
||||
when starting emergency.service. (bnc#852232)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 28 10:25:58 UTC 2013 - lbsousajr@gmail.com
|
||||
|
||||
- Add U_logind_revert_lazy_session_activation_on_non_vt_seats.patch
|
||||
* See: http://cgit.freedesktop.org/systemd/systemd/commit/?id=3fdb2494c1e24c0a020f5b54022d2c751fd26f50
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 26 15:12:58 UTC 2013 - werner@suse.de
|
||||
|
||||
- Add patch
|
||||
1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch
|
||||
to avoid (xdg-)su to set XDG_RUNTIME_DIR to the original user and
|
||||
avoid that e.g. pulseaudio will create /run/user/<pid>/pulse owned
|
||||
by root (bnc#852015)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 21 12:27:11 UTC 2013 - werner@suse.de
|
||||
|
||||
- Add patch
|
||||
1011-check-4-valid-kmsg-device.patch
|
||||
to avoid a busy systemd-journald (bnc#851393)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 6 09:42:05 UTC 2013 - werner@suse.de
|
||||
|
||||
- Add patch
|
||||
1010-do-not-install-sulogin-unit-with-poweroff.patch
|
||||
that is do not install console-shell.service in any system target
|
||||
as this will cause automatic poweroff at boot (bnc#849071)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 4 15:23:02 UTC 2013 - werner@suse.de
|
||||
|
||||
- Add upstream patch
|
||||
0001-analyze-set-text-on-side-with-most-space.patch
|
||||
to place the text on the side with most space
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 25 12:12:48 UTC 2013 - werner@suse.de
|
||||
|
||||
- Add upstream patch
|
||||
0001-analyze-set-white-background.patch
|
||||
to make SVG output of systemd analyze readable
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 21 09:27:36 UTC 2013 - werner@suse.de
|
||||
|
||||
- Add patch
|
||||
1009-make-xsltproc-use-correct-ROFF-links.patch
|
||||
to have valid ROFF links in manual pages working again (bnc#842844)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 15 13:50:52 CEST 2013 - fcrozat@suse.com
|
||||
|
||||
- Add
|
||||
0001-gpt-auto-generator-exit-immediately-if-in-container.patch:
|
||||
don't start gpt auto-generator in container (git).
|
||||
- Add
|
||||
0001-manager-when-verifying-whether-clients-may-change-en.patch:
|
||||
fix reload check in selinux case (git).
|
||||
- Add 0001-logind-fix-bus-introspection-data-for-TakeControl.patch:
|
||||
fix introspection for TakeControl (git).
|
||||
- Add 0001-mount-check-for-NULL-before-reading-pm-what.patch: fix
|
||||
crash when parsing some incorrect unit (git).
|
||||
- Add
|
||||
0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch:
|
||||
Fix udev rules parsing (git).
|
||||
- Add
|
||||
0001-systemd-serialize-deserialize-forbid_restart-value.patch:
|
||||
Fix incorrect deserialization for forbid_restart (git).
|
||||
- Add
|
||||
0001-core-unify-the-way-we-denote-serialization-attribute.patch:
|
||||
Ensure forbid_restart is named like other attributes (git).
|
||||
- Add 0001-journald-fix-minor-memory-leak.patch: fix memleak in
|
||||
journald (git).
|
||||
- Add
|
||||
0001-do-not-accept-garbage-from-acpi-firmware-performance.patch:
|
||||
Improve ACPI firmware performance parsing (git).
|
||||
- Add
|
||||
0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch:
|
||||
Fix journal rotation (git).
|
||||
- Add
|
||||
0001-login-fix-invalid-free-in-sd_session_get_vt.patch:
|
||||
Fix memory corruption in sd_session_get_vt (git).
|
||||
- Add 0001-login-make-sd_session_get_vt-actually-work.patch: Ensure
|
||||
sd_session_get_vt returns correct value (git).
|
||||
- Add 0001-Never-call-qsort-on-potentially-NULL-arrays.patch: Don't
|
||||
call qsort on NULL arrays (git).
|
||||
- Add 0001-dbus-common-avoid-leak-in-error-path.patch: Fix memleak
|
||||
in dbus-common code (git).
|
||||
- Add 0001-drop-ins-check-return-value.patch: Fix return value for
|
||||
drop-ins checks (git).
|
||||
- Add 0001-shared-util-Fix-glob_extend-argument.patch: Fix
|
||||
glob_extend argument (git).
|
||||
- Add 0001-Fix-bad-assert-in-show_pid_array.patch: Fix bad assert
|
||||
in show_pid_array (git).
|
||||
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 3 08:43:51 UTC 2013 - fcrozat@suse.com
|
||||
|
||||
- Add 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch:
|
||||
fix acpi memleak.
|
||||
- Add
|
||||
0002-fix-lingering-references-to-var-lib-backlight-random.patch:
|
||||
fix invalid path in documentation.
|
||||
- Add
|
||||
0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch:
|
||||
fix invalid memory free.
|
||||
- Add 0004-systemctl-fix-name-mangling-for-sysv-units.patch: fix
|
||||
name mangling for sysv units.
|
||||
- Add
|
||||
0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch:
|
||||
fix OOM handling.
|
||||
- Add 0006-journald-add-missing-error-check.patch: add missing
|
||||
error check.
|
||||
- Add 0007-bus-fix-potentially-uninitialized-memory-access.patch:
|
||||
fix uninitialized memory access.
|
||||
- Add 0008-dbus-fix-return-value-of-dispatch_rqueue.patch: fix
|
||||
return value.
|
||||
- Add 0009-modules-load-fix-error-handling.patch: fix error
|
||||
handling.
|
||||
- Add 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch:
|
||||
fix incorrect memory access.
|
||||
- Add 0011-strv-don-t-access-potentially-NULL-string-arrays.patch:
|
||||
fix incorrect memory access.
|
||||
- Add
|
||||
0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch:
|
||||
fix invalid pointer.
|
||||
- Add
|
||||
0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch:
|
||||
fix permission on /run/log/journal.
|
||||
- Add
|
||||
0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch:
|
||||
order remote mount points properly before remote-fs.target.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 2 14:10:41 UTC 2013 - hrvoje.senjan@gmail.com
|
||||
|
||||
- Explicitly require pam-config for %post of the main package
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 2 08:03:30 UTC 2013 - fcrozat@suse.com
|
||||
|
||||
- Release v208:
|
||||
+ logind gained support for facilitating privileged input and drm
|
||||
devices access for unprivileged clients (helps Wayland /
|
||||
kmscon).
|
||||
+ New kernel command line luks.options= allows to specify LUKS
|
||||
options, when used with luks.uuid=
|
||||
+ tmpfileS.d snippets can uses specifier expansion in path names
|
||||
(%m, %b, %H, %v).
|
||||
+ New tmpfiles.d command "m" introduced to change
|
||||
owner/group/access mode of a file/directory only if it exists.
|
||||
+ MemorySoftLimit= cgroup settings is no longer supported
|
||||
(underlying kernel cgroup attribute will disappear in the
|
||||
future).
|
||||
+ memeory.use_hierarchy cgroup attribute is enabled for all
|
||||
cgroups systemd creates in memory cgroup hierarchy.
|
||||
+ New filed _SYSTEMD_SLICE= is logged in journal messages related
|
||||
to a slice.
|
||||
+ systemd-journald will no longer adjust the group of journal
|
||||
files it creates to "systemd-journal" group. Permissions and
|
||||
owernship is adjusted when package is upgraded.
|
||||
+ Backlight and random seed files are now stored in
|
||||
/var/lib/systemd.
|
||||
+ Boot time performance measurements included ACPI 5.0 FPDT
|
||||
informations if available.
|
||||
- Drop merged patches:
|
||||
0001-cgroup-add-the-missing-setting-of-variable-s-value.patch,
|
||||
0002-cgroup-correct-the-log-information.patch,
|
||||
0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch,
|
||||
0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch,
|
||||
0005-core-cgroup-first-print-then-free.patch,
|
||||
0006-swap-fix-reverse-dependencies.patch,
|
||||
0008-swap-create-.wants-symlink-to-auto-swap-devices.patch,
|
||||
0009-polkit-Avoid-race-condition-in-scraping-proc.patch,
|
||||
Fix-timeout-when-stopping-Type-notify-service.patch,
|
||||
set-ignoreonisolate-noauto-cryptsetup.patch,
|
||||
0001-Fix-buffer-overrun-when-enumerating-files.patch,
|
||||
0007-libudev-fix-move_later-comparison.patch.
|
||||
- Refresh patches
|
||||
remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch,
|
||||
delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch,
|
||||
handle-root_uses_lang-value-in-etc-sysconfig-language.patch,
|
||||
handle-SYSTEMCTL_OPTIONS-environment-variable.patch,
|
||||
Revert-service-drop-support-for-SysV-scripts-for-the-early.patch.
|
||||
- Own more ghost files.
|
||||
- Do not run pam-config in systemd-mini %post.
|
||||
- Add after-local.service to run after.local late during the boot
|
||||
process (bnc#778715).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 1 17:09:01 UTC 2013 - fcrozat@suse.com
|
||||
|
||||
- Update Fix-timeout-when-stopping-Type-notify-service.patch with
|
||||
upstream fix.
|
||||
- No longer start ask-password-wall, was causing too much spam on
|
||||
terminals (bnc#747783).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 30 15:42:45 UTC 2013 - fcrozat@suse.com
|
||||
|
||||
- Add set-ignoreonisolate-noauto-cryptsetup.patch: ensure noauto
|
||||
encrypted mounts survives runlevel changes (bnc#843085).
|
||||
- Add 0001-Fix-buffer-overrun-when-enumerating-files.patch: fix
|
||||
logind crash when /run/systemd/sessions was too big (bnc#840055,
|
||||
initial fix from hpj@suse.com).
|
||||
- Update sysctl-handle-boot-sysctl.conf-kernel_release.patch to
|
||||
only check for /boot/sysctl.conf-<uname -r> presence.
|
||||
- Add service wrapper for after.local (bnc#778715).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 27 15:47:15 UTC 2013 - fcrozat@suse.com
|
||||
|
||||
- Update use-usr-sbin-sulogin-for-emergency-service.patch to apply
|
||||
to all services using sulogin and remove generated files from
|
||||
upstream tarball (bnc#841398).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 23 13:09:06 UTC 2013 - arvidjaar@gmail.com
|
||||
|
||||
- Fix-timeout-when-stopping-Type-notify-service.patch
|
||||
Make sure MAINPID is watched when it becomes known (bnc#841544)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 23 13:11:08 CEST 2013 - fcrozat@suse.com
|
||||
|
||||
- Remove output and error redirection to /dev/null in install
|
||||
script, it might help tracing pam related issue (bnc#841573).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 19 16:37:03 CEST 2013 - fcrozat@suse.com
|
||||
|
||||
- Move symlink migration trigger to post (bnc#821800).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 18 23:55:09 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- 0009-polkit-Avoid-race-condition-in-scraping-proc.patch
|
||||
VUL-0: polkit: process subject race condition [bnc#835827]
|
||||
CVE-2013-4288
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 18 23:45:54 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- Build with --disable-ima as the openSUSE kernel
|
||||
does not support IMA (CONFIG_IMA is not set)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 18 23:40:27 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- Build with --disable-smack as the openSUSE kernel
|
||||
does not support smack (CONFIG_SECURITY_SMACK is not set)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 18 12:05:47 UTC 2013 - fcrozat@suse.com
|
||||
|
||||
- Don't use a trigger to create symlink for sysctl.conf, always run
|
||||
the test on %post (bnc#840864).
|
||||
- Update sysctl-handle-boot-sysctl.conf-kernel_release.patch to
|
||||
ensure /boot is mounted before reading /boot/sysctl.conf-*
|
||||
(bnc#809420).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 16 17:41:24 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch
|
||||
really fixes the swap unit problem mentioned in previous
|
||||
- 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch
|
||||
really fixes the swap unit problem mentioned in previous
|
||||
commit & the opensuse-factory mailing list.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch
|
||||
- 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch
|
||||
missing important check on return value.
|
||||
- 0002-cgroup-correct-the-log-information.patch fix misleading
|
||||
log information.
|
||||
@ -18,7 +480,7 @@ Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org
|
||||
should fail if write fails.
|
||||
- 0005-core-cgroup-first-print-then-free.patch use-after-free
|
||||
will trigger if there is an error condition.
|
||||
- 0006-swap-fix-reverse-dependencies.patch reported in
|
||||
- 0006-swap-fix-reverse-dependencies.patch reported in
|
||||
opensuse-factory list, topic "swap isn't activated"
|
||||
- 0007-libudev-fix-move_later-comparison.patch libudev
|
||||
invalid usage of "move_later".
|
||||
@ -27,10 +489,10 @@ Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org
|
||||
Sat Sep 14 06:52:32 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- while testing this new release I get in the logs ocassionally
|
||||
at boot "systemd[1]: Failed to open private bus connection:
|
||||
Failed to connect to socket /var/run/dbus/system_bus_socket:
|
||||
at boot "systemd[1]: Failed to open private bus connection:
|
||||
Failed to connect to socket /var/run/dbus/system_bus_socket:
|
||||
No such file or directory" indeed DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
|
||||
is defined to /var/run/dbus/system_bus_socket instead of
|
||||
is defined to /var/run/dbus/system_bus_socket instead of
|
||||
/run/dbus/system_bus_socket and that does not fly when /var/run
|
||||
is not yet available. (systemd-dbus-system-bus-address.patch)
|
||||
|
||||
@ -42,10 +504,10 @@ Fri Sep 13 07:47:40 UTC 2013 - fcrozat@suse.com
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 13 03:14:36 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- version 207, distribution specific changes follow, for overall
|
||||
- version 207, distribution specific changes follow, for overall
|
||||
release notes see NEWS.
|
||||
- Fixed:
|
||||
* Failed at step PAM spawning /usr/lib/systemd/systemd:
|
||||
- Fixed:
|
||||
* Failed at step PAM spawning /usr/lib/systemd/systemd:
|
||||
Operation not permitted
|
||||
* Fix shutdown hang "a stop job is running for Session 1 of user root"
|
||||
that was reported in opensuse-factory list.
|
||||
@ -152,7 +614,7 @@ Fri Jul 5 02:17:19 UTC 2013 - crrodriguez@opensuse.org
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 5 02:09:55 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- fix broken symlink, service is called systemd-random-seed now.
|
||||
- fix broken symlink, service is called systemd-random-seed now.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 4 10:20:23 CEST 2013 - fcrozat@suse.com
|
||||
@ -287,13 +749,13 @@ Fri Jun 21 12:40:27 UTC 2013 - rmilasan@suse.com
|
||||
|
||||
- Automatically online CPUs/Memory on CPU/Memory hotplug add events
|
||||
(bnc#703100, fate#311831).
|
||||
add: 1008-physical-hotplug-cpu-and-memory.patch
|
||||
add: 1008-physical-hotplug-cpu-and-memory.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 19 08:44:06 UTC 2013 - mhrusecky@suse.com
|
||||
|
||||
- Dropped backward compatibility
|
||||
- Added check for upstream rpm macros changes
|
||||
- Added check for upstream rpm macros changes
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 18 12:13:25 UTC 2013 - mhrusecky@suse.com
|
||||
@ -303,7 +765,7 @@ Mon Jun 18 12:13:25 UTC 2013 - mhrusecky@suse.com
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 18 00:33:10 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- 0001-journal-letting-interleaved-seqnums-go.patch and
|
||||
- 0001-journal-letting-interleaved-seqnums-go.patch and
|
||||
0002-journal-remember-last-direction-of-search-and-keep-o.patch
|
||||
fix possible infinite loops in the journal code, related to
|
||||
bnc #817778
|
||||
@ -340,8 +802,8 @@ Tue Jun 11 02:29:49 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch
|
||||
fixes :
|
||||
* systemd-journald[347]: Failed to set ACL on
|
||||
/var/log/journal/11d90b1c0239b5b2e38ed54f513722e3/user-1000.journal,
|
||||
* systemd-journald[347]: Failed to set ACL on
|
||||
/var/log/journal/11d90b1c0239b5b2e38ed54f513722e3/user-1000.journal,
|
||||
ignoring: Invalid argument
|
||||
- 006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch
|
||||
systemctl disable should remove dangling symlinks.
|
||||
@ -403,7 +865,7 @@ support has been removed from the kernel.
|
||||
fixed in systemd v199, commit 89d09e1b5c65a2d97840f682e0932c8bb499f166
|
||||
- Apply rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch
|
||||
only on ARM, patch rejected upstream because is too generic.
|
||||
- no such define TARGET_SUSE exists but it is used in
|
||||
- no such define TARGET_SUSE exists but it is used in
|
||||
Revert-service-drop-support-for-SysV-scripts-for-the-early.patch
|
||||
use HAVE_SYSV_COMPAT instead.
|
||||
|
||||
@ -462,7 +924,7 @@ Thu Apr 25 08:19:30 UTC 2013 - rmilasan@suse.com
|
||||
|
||||
- Rename remaning udev patches (clean-up).
|
||||
- Generate %{_libexecdir}/modules-load.d/sg.conf so we load sg module at
|
||||
boot time not from udev (bnc#761109).
|
||||
boot time not from udev (bnc#761109).
|
||||
- Drop unused patches:
|
||||
1001-Reinstate-TIMEOUT-handling.patch
|
||||
1005-udev-fix-sg-autoload-regression.patch
|
||||
@ -490,7 +952,7 @@ Mon Apr 22 09:48:22 UTC 2013 - fcrozat@suse.com
|
||||
-------------------------------------------------------------------
|
||||
Sun Apr 21 22:24:15 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- Fix packaging error, there is no syslog.target anymore
|
||||
- Fix packaging error, there is no syslog.target anymore
|
||||
do not pretend there is one.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
@ -531,14 +993,14 @@ Fri Apr 12 16:58:31 UTC 2013 - fcrozat@suse.com
|
||||
from an indexed database. %udev_hwdb_update macro should be
|
||||
used by packages adding entries to this database.
|
||||
+ Journal gained support for "Message Catalog", indexed database
|
||||
to link up additional information with journal entries.
|
||||
to link up additional information with journal entries.
|
||||
%journal_catalog_update macro should be used by packages adding
|
||||
%entries to this database.
|
||||
+ "age" field for tmpfiles entries can be set to 0, forcing
|
||||
removal of files matching this entry.
|
||||
+ coredumpctl gained "gdb" verb to invoke gdb on selected
|
||||
coredump.
|
||||
+ New rpm macros has been added: %udev_rules_update(),
|
||||
+ New rpm macros has been added: %udev_rules_update(),
|
||||
%_udevhwdbdir, %_udevrulesdir, %_journalcatalogdir,
|
||||
%_tmpfilesdir, %_sysctldir.
|
||||
+ In service files, %U can be used for configured user name of
|
||||
@ -562,7 +1024,7 @@ Fri Apr 12 16:58:31 UTC 2013 - fcrozat@suse.com
|
||||
(normal clean-up with tmpfiles is still done in addition to
|
||||
this though).
|
||||
+ Resource limits (as exposed by cgroup controlers) can be
|
||||
controlled dynamically at runtime for all units, using
|
||||
controlled dynamically at runtime for all units, using
|
||||
"systemctl set-cgroup-attr foobar.server cgroup.attribute
|
||||
value". Those settings are stored persistenly on disk.
|
||||
+ systemd-vconsole-setup will now copy all fonts settings to all
|
||||
@ -696,14 +1158,14 @@ Thu Mar 28 09:24:43 UTC 2013 - rmilasan@suse.com
|
||||
|
||||
- udev: ensure that the network interfaces are renamed even if they
|
||||
exist (bnc#809843).
|
||||
add: 1027-udev-always-rename-network.patch
|
||||
add: 1027-udev-always-rename-network.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 20 10:14:59 UTC 2013 - rmilasan@suse.com
|
||||
|
||||
- udev: re-add persistent network rules (bnc#809843).
|
||||
add: 1026-re-add-persistent-net.patch
|
||||
- rebase all patches, ensure that they apply properly.
|
||||
- rebase all patches, ensure that they apply properly.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 21 14:45:12 UTC 2013 - fcrozat@suse.com
|
||||
@ -728,7 +1190,7 @@ Tue Feb 19 09:51:18 UTC 2013 - rmilasan@suse.com
|
||||
- udev: usb_id: parse only 'size' bytes of the 'descriptors' buffer
|
||||
add: 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch
|
||||
- udev: expose new ISO9660 properties from libblkid
|
||||
add: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch
|
||||
add: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 18 09:27:05 UTC 2013 - jengelh@inai.de
|
||||
@ -763,7 +1225,7 @@ Wed Feb 13 11:34:06 UTC 2013 - rmilasan@suse.com
|
||||
- udev: use unique names for temporary files created in /dev.
|
||||
add: 1022-udev-use-unique-names-for-temporary-files-created-in.patch
|
||||
- cdrom_id: add data track count for bad virtual drive.
|
||||
add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch
|
||||
add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 12 09:16:23 UTC 2013 - rmilasan@suse.com
|
||||
@ -785,7 +1247,7 @@ Fri Feb 1 16:27:45 UTC 2013 - fcrozat@suse.com
|
||||
Tue Jan 29 13:32:30 UTC 2013 - rmilasan@suse.com
|
||||
|
||||
- udev: Fix device matching in the accelerometer
|
||||
add: 1019-udev-Fix-device-matching-in-the-accelerometer.patch
|
||||
add: 1019-udev-Fix-device-matching-in-the-accelerometer.patch
|
||||
- keymap: add aditional support for some keyboard keys
|
||||
add: 1018-keymap-add-aditional-support.patch
|
||||
- journalctl: require argument for --priority
|
||||
@ -794,7 +1256,7 @@ Tue Jan 29 13:32:30 UTC 2013 - rmilasan@suse.com
|
||||
libudev-validate-argument-udev_enumerate_new.patch
|
||||
kmod-fix-builtin-typo.patch
|
||||
- rename udev-root-symlink.service to systemd-udev-root-symlink.service.
|
||||
- fix in udev package missing link in basic.target.wants for
|
||||
- fix in udev package missing link in basic.target.wants for
|
||||
systemd-udev-root-symlink.service
|
||||
|
||||
-------------------------------------------------------------------
|
||||
@ -926,7 +1388,7 @@ Wed Jan 9 09:42:50 UTC 2013 - rmilasan@suse.com
|
||||
add: 1014-udev-fix-whitespace.patch
|
||||
- udev: properly handle symlink removal by 'change' event
|
||||
add: 1015-udev-properly-handle-symlink-removal-by-change-event.patch
|
||||
- udev: builtin - do not fail builtin initialization if one of
|
||||
- udev: builtin - do not fail builtin initialization if one of
|
||||
them returns an error
|
||||
add: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch
|
||||
- udev: use usec_t and now()
|
||||
@ -938,7 +1400,7 @@ Tue Jan 8 12:47:43 UTC 2013 - rmilasan@suse.com
|
||||
- udevd: add missing ':' to getopt_long 'e'.
|
||||
add: 1007-udevd-add-missing-to-getopt_long-e.patch
|
||||
- clean up systemd.spec, make it easy to see which are udev and
|
||||
systemd patches.
|
||||
systemd patches.
|
||||
- make 'reload' and 'force-reload' LSB compliant (bnc#793936).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
@ -946,8 +1408,8 @@ Tue Dec 11 00:22:50 UTC 2012 - crrodriguez@opensuse.org
|
||||
|
||||
- detect-btrfs-ssd.patch: Fix btrfs detection on SSD.
|
||||
- timedated-donot-close-bogus-dbus-connection.patch: Avoid
|
||||
closing an non-existent dbus connection and getting assertion
|
||||
failures.
|
||||
closing an non-existent dbus connection and getting assertion
|
||||
failures.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com
|
||||
@ -980,7 +1442,7 @@ Tue Dec 4 16:51:32 UTC 2012 - fcrozat@suse.com
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 22 14:22:00 UTC 2012 - rmilasan@suse.com
|
||||
|
||||
- Fix creation of /dev/root link.
|
||||
- Fix creation of /dev/root link.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 20 18:25:49 CET 2012 - fcrozat@suse.com
|
||||
@ -1139,7 +1601,7 @@ Thu Oct 4 11:23:42 UTC 2012 - fcrozat@suse.com
|
||||
+ Optional journal gateway daemon
|
||||
(systemd-journal-gatewayd.service) to access journal via HTTP
|
||||
and JSON. Use "wget http://localhost:19531/entries" to get
|
||||
/var/log/messages compatible format and
|
||||
/var/log/messages compatible format and
|
||||
'curl -H"Accept: application/json"
|
||||
http://localhost:19531/entries' for JSON formatted content.
|
||||
HTML5 static page is also available as explained on
|
||||
@ -1369,7 +1831,7 @@ Thu Apr 19 10:07:47 UTC 2012 - fcrozat@suse.com
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 3 09:37:09 UTC 2012 - dvaleev@suse.com
|
||||
|
||||
- apply ppc patch to systemd-gtk too (fixes build)
|
||||
- apply ppc patch to systemd-gtk too (fixes build)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 22 08:47:36 UTC 2012 - fcrozat@suse.com
|
||||
@ -1451,7 +1913,7 @@ Sun Feb 19 07:56:05 UTC 2012 - jengelh@medozas.de
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 17 09:22:50 UTC 2012 - tittiatcoke@gmail.com
|
||||
|
||||
- Enable Plymouth integration.
|
||||
- Enable Plymouth integration.
|
||||
* Bootsplash related files will be moved to the bootsplash
|
||||
package
|
||||
|
||||
@ -1502,7 +1964,7 @@ Tue Feb 7 14:43:58 UTC 2012 - fcrozat@suse.com
|
||||
property.
|
||||
+ Rudimentary service watchdog support (not complete)
|
||||
+ Improve bootcharts, by immediatly changing argv[0] after
|
||||
forking to to reflect which process will be executed.
|
||||
forking to to reflect which process will be executed.
|
||||
+ Various bug fixes.
|
||||
- Add remote-fs-after-network.patch and update insserv patch:
|
||||
ensure remote-fs-pre.target is enabled and started before network
|
||||
@ -1561,7 +2023,7 @@ Wed Jan 25 10:37:06 UTC 2012 - fcrozat@suse.com
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 19 13:47:39 UTC 2012 - tittiatcoke@gmail.com
|
||||
|
||||
- Make the systemd journal persistent by creating the
|
||||
- Make the systemd journal persistent by creating the
|
||||
/var/log/journal directory
|
||||
|
||||
-------------------------------------------------------------------
|
||||
@ -1571,8 +2033,8 @@ Wed Jan 18 09:03:51 UTC 2012 - tittiatcoke@gmail.com
|
||||
- Bugfixes
|
||||
- Implementation of a Journal Utility Library
|
||||
- Implementation of a 128 Bit ID Utility Library
|
||||
- 11 Patches integrated upstream
|
||||
- Add systemd-syslog_away_early_on_shutdown.patch: make sure
|
||||
- 11 Patches integrated upstream
|
||||
- Add systemd-syslog_away_early_on_shutdown.patch: make sure
|
||||
syslog socket goes away early during shutdown.
|
||||
- Add listen.conf for rsyslog. This will ensure that it will still
|
||||
work fine with rsyslog and the new journal.
|
||||
@ -1850,7 +2312,7 @@ Wed Aug 3 07:11:33 UTC 2011 - aj@suse.de
|
||||
* New PrivateNetwork= service setting which allows you to shut off
|
||||
networking for a specific service (i.e. all routable network
|
||||
interfaces will disappear for that service).
|
||||
* Merged insserv-parsing.patch and bash-completion-restart.patch
|
||||
* Merged insserv-parsing.patch and bash-completion-restart.patch
|
||||
patches.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
|
259
systemd.spec
259
systemd.spec
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package systemd
|
||||
#
|
||||
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -21,9 +21,14 @@
|
||||
%define udevpkgname udev
|
||||
%define udev_major 1
|
||||
|
||||
%if 0%{?sles_version} == 0
|
||||
%global with_bash_completion 1
|
||||
%endif
|
||||
%bcond_with bash_completion
|
||||
|
||||
Name: systemd
|
||||
Url: http://www.freedesktop.org/wiki/Software/systemd
|
||||
Version: 207
|
||||
Version: 208
|
||||
Release: 0
|
||||
Summary: A System and Session Manager
|
||||
License: LGPL-2.1+
|
||||
@ -68,6 +73,7 @@ BuildRequires: pkgconfig(liblzma)
|
||||
BuildRequires: pkgconfig(libmicrohttpd)
|
||||
%endif
|
||||
BuildRequires: pkgconfig(libpci) >= 3
|
||||
BuildRequires: pkgconfig(libpcre)
|
||||
%if ! 0%{?bootstrap}
|
||||
BuildRequires: pkgconfig(libqrencode)
|
||||
%endif
|
||||
@ -83,6 +89,9 @@ Conflicts: kiwi
|
||||
# the buildignore is important for bootstrapping
|
||||
#!BuildIgnore: udev
|
||||
Requires: %{udevpkgname} >= 172
|
||||
%if %{with bash_completion}
|
||||
Recommends: bash-completion
|
||||
%endif
|
||||
Requires: dbus-1 >= 1.4.0
|
||||
Requires: kbd
|
||||
Requires: kmod >= 14
|
||||
@ -93,6 +102,9 @@ Requires: util-linux >= 2.21
|
||||
Requires(post): coreutils
|
||||
Requires(post): findutils
|
||||
%endif
|
||||
%if ! 0%{?bootstrap}
|
||||
Requires(post): pam-config
|
||||
%endif
|
||||
Conflicts: filesystem < 11.5
|
||||
Conflicts: mkinitrd < 2.7.0
|
||||
Obsoletes: systemd-analyze < 201
|
||||
@ -107,6 +119,8 @@ Source7: libgcrypt.m4
|
||||
Source8: systemd-journald.init
|
||||
Source9: nss-myhostname-config
|
||||
Source10: macros.systemd.upstream
|
||||
Source11: after-local.service
|
||||
Source12: systemd-powerfail
|
||||
|
||||
Source1060: boot.udev
|
||||
Source1061: write_dev_root_rule
|
||||
@ -151,6 +165,7 @@ Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch
|
||||
# PATCH-FIX-OPENSUSE ensure-shortname-is-set-as-hostname-bnc-820213.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname
|
||||
Patch41: ensure-shortname-is-set-as-hostname-bnc-820213.patch
|
||||
Patch42: systemd-pam_config.patch
|
||||
|
||||
# Upstream First - Policy:
|
||||
# Never add any patches to this package without the upstream commit id
|
||||
# in the patch. Any patches added here without a very good reason to make
|
||||
@ -165,23 +180,96 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch
|
||||
Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch
|
||||
# PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin
|
||||
Patch46: use-usr-sbin-sulogin-for-emergency-service.patch
|
||||
# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run
|
||||
# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run
|
||||
Patch47: systemd-dbus-system-bus-address.patch
|
||||
|
||||
# PATCH-FIX-UPSTREAM 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch -- r must be set to the return value of previous call.
|
||||
Patch48: 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch
|
||||
# PATCH-FIX-UPSTREAM 0002-cgroup-correct-the-log-information.patch -- fix misleading log information.
|
||||
Patch49: 0002-cgroup-correct-the-log-information.patch
|
||||
# PATCH-FIX-UPSTREAM 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch -- memory cgroup setting is wrong.
|
||||
Patch50: 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch
|
||||
# PATCH-FIX-UPSTREAM 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch -- systemd-random-seed-load should fail if write fails.
|
||||
Patch51: 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch
|
||||
# PATCH-FIX-UPSTREAM 0005-core-cgroup-first-print-then-free.patch -- fix use after free
|
||||
Patch52: 0005-core-cgroup-first-print-then-free.patch
|
||||
# PATCH-FIX-UPSTREAM 0006-swap-fix-reverse-dependencies.patch -- SWAP does not mount properly
|
||||
Patch53: 0006-swap-fix-reverse-dependencies.patch
|
||||
# PATCH-FIX-UPSTREAM 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fix swap units
|
||||
Patch54: 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch fcrozat@suse.com -- fix acpi memleak
|
||||
Patch48: 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch
|
||||
# PATCH-FIX-UPSTREAM 0002-fix-lingering-references-to-var-lib-backlight-random.patch fcrozat@suse.com -- fix invalid path in documentation
|
||||
Patch49: 0002-fix-lingering-references-to-var-lib-backlight-random.patch
|
||||
# PATCH-FIX-UPSTREAM 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch fcrozat@suse.com -- fix invalid memory free
|
||||
Patch50: 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch
|
||||
# PATCH-FIX-UPSTREAM 0004-systemctl-fix-name-mangling-for-sysv-units.patch fcrozat@suse.com -- fix name mangling for sysv units
|
||||
Patch51: 0004-systemctl-fix-name-mangling-for-sysv-units.patch
|
||||
# PATCH-FIX-UPSTREAM 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch fcrozat@suse.com -- fix OOM handling
|
||||
Patch52: 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch
|
||||
# PATCH-FIX-UPSTREAM 0006-journald-add-missing-error-check.patch fcrozat@suse.com -- add missing error check
|
||||
Patch53: 0006-journald-add-missing-error-check.patch
|
||||
# PATCH-FIX-UPSTREAM 0007-bus-fix-potentially-uninitialized-memory-access.patch fcrozat@suse.com -- fix uninitialized memory access
|
||||
Patch54: 0007-bus-fix-potentially-uninitialized-memory-access.patch
|
||||
# PATCH-FIX-UPSTREAM 0008-dbus-fix-return-value-of-dispatch_rqueue.patch fcrozat@suse.com -- fix return value
|
||||
Patch55: 0008-dbus-fix-return-value-of-dispatch_rqueue.patch
|
||||
# PATCH-FIX-UPSTREAM 0009-modules-load-fix-error-handling.patch fcrozat@suse.com -- fix error handling
|
||||
Patch56: 0009-modules-load-fix-error-handling.patch
|
||||
# PATCH-FIX-UPSTREAM 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- fix incorrect memory access
|
||||
Patch57: 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch
|
||||
# PATCH-FIX-UPSTREAM 0011-strv-don-t-access-potentially-NULL-string-arrays.patch fcrozat@suse.com -- fix incorrect memory access
|
||||
Patch58: 0011-strv-don-t-access-potentially-NULL-string-arrays.patch
|
||||
# PATCH-FIX-UPSTREAM 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch fcrozat@suse.com -- fix invalid pointer
|
||||
Patch59: 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch
|
||||
# PATCH-FIX-UPSTREAM 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch fcrozat@suse.com -- fix permission on /run/log/journal
|
||||
Patch60: 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch fcrozat@suse.com -- order remote mount points properly before remote-fs.target
|
||||
Patch61: 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-gpt-auto-generator-exit-immediately-if-in-container.patch fcrozat@suse.com -- don't start gpt auto-generator in container
|
||||
Patch62: 0001-gpt-auto-generator-exit-immediately-if-in-container.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-manager-when-verifying-whether-clients-may-change-en.patch fcrozat@suse.com -- fix reload check in selinux case
|
||||
Patch63: 0001-manager-when-verifying-whether-clients-may-change-en.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-logind-fix-bus-introspection-data-for-TakeControl.patch fcrozat@suse.com -- fix introspection for TakeControl
|
||||
Patch64: 0001-logind-fix-bus-introspection-data-for-TakeControl.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-mount-check-for-NULL-before-reading-pm-what.patch fcrozat@suse.com -- fix crash when parsing some incorrect unit
|
||||
Patch65: 0001-mount-check-for-NULL-before-reading-pm-what.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch fcrozat@suse.com -- Fix udev rules parsing
|
||||
Patch66: 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-systemd-serialize-deserialize-forbid_restart-value.patch fcrozat@suse.com -- Fix incorrect deserialization for forbid_restart
|
||||
Patch67: 0001-systemd-serialize-deserialize-forbid_restart-value.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-core-unify-the-way-we-denote-serialization-attribute.patch fcrozat@suse.com -- Ensure forbid_restart is named like other attributes
|
||||
Patch68: 0001-core-unify-the-way-we-denote-serialization-attribute.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-journald-fix-minor-memory-leak.patch fcrozat@suse.com -- fix memleak in journald
|
||||
Patch69: 0001-journald-fix-minor-memory-leak.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch fcrozat@suse.com -- Improve ACPI firmware performance parsing
|
||||
Patch70: 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch fcrozat@suse.com -- Fix journal rotation
|
||||
Patch71: 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-login-fix-invalid-free-in-sd_session_get_vt.patchfcrozat@suse.com -- Fix memory corruption in sd_session_get_vt
|
||||
Patch72: 0001-login-fix-invalid-free-in-sd_session_get_vt.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-login-make-sd_session_get_vt-actually-work.patch fcrozat@suse.com -- Ensure sd_session_get_vt returns correct value
|
||||
Patch73: 0001-login-make-sd_session_get_vt-actually-work.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-Never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- Don't call qsort on NULL arrays
|
||||
Patch74: 0001-Never-call-qsort-on-potentially-NULL-arrays.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-dbus-common-avoid-leak-in-error-path.patch fcrozat@suse.com -- Fix memleak in dbus-common code
|
||||
Patch75: 0001-dbus-common-avoid-leak-in-error-path.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-drop-ins-check-return-value.patch fcrozat@suse.com -- Fix return value for drop-ins checks
|
||||
Patch76: 0001-drop-ins-check-return-value.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-shared-util-Fix-glob_extend-argument.patch fcrozat@suse.com -- Fix glob_extend argument
|
||||
Patch77: 0001-shared-util-Fix-glob_extend-argument.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-Fix-bad-assert-in-show_pid_array.patch fcrozat@suse.com -- Fix bad assert in show_pid_array
|
||||
Patch78: 0001-Fix-bad-assert-in-show_pid_array.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-analyze-set-white-background.patch werner@suse.com -- Make background of systemd-analyze SVG white
|
||||
Patch79: 0001-analyze-set-white-background.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-analyze-set-text-on-side-with-most-space.patch werner@suse.com -- Place the text on the side with most space
|
||||
Patch80: 0001-analyze-set-text-on-side-with-most-space.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-logind-garbage-collect-stale-users.patch -- Don't stop a running user manager from garbage-collecting the user.
|
||||
Patch81: 0001-logind-garbage-collect-stale-users.patch
|
||||
# PATCH-FIX-UPSTREAM analyze-fix-crash-in-command-line-parsing.patch fcrozat@suse.com bnc#859365 -- Fix crash in systemd-analyze
|
||||
Patch82: analyze-fix-crash-in-command-line-parsing.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch -- Prevent accidental kill of emergency shell (bnc#852021)
|
||||
Patch83: 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch
|
||||
# PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232)
|
||||
Patch84: make-emergency.service-conflict-with-syslog.socket.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-upstream-systemctl-halt-reboot-error-handling.patch
|
||||
Patch85: 0001-upstream-systemctl-halt-reboot-error-handling.patch
|
||||
# PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
|
||||
Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch -- Allow sending SIGTERM to main PID only (bnc#841544)
|
||||
Patch87: 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch
|
||||
# PATCH-FIX-UPSTREAM 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch -- Allow using it with PAM enabled services (bnc#841544)
|
||||
Patch88: 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch
|
||||
# PATCH-FIX-UPSTREAM 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch -- Make sure final SIGKILL actually kills everything (bnc#841544)
|
||||
Patch89: 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch
|
||||
# PATCH-FIX-SUSE 0001-On_s390_con3270_disable_ANSI_colour_esc.patch
|
||||
Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch
|
||||
# PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty
|
||||
Patch91: plymouth-quit-and-wait-for-emergency-service.patch
|
||||
|
||||
# udev patches
|
||||
# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch
|
||||
@ -198,8 +286,28 @@ Patch1006: 1006-udev-always-rename-network.patch
|
||||
Patch1007: 1007-physical-hotplug-cpu-and-memory.patch
|
||||
# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch
|
||||
Patch1008: 1008-add-msft-compability-rules.patch
|
||||
# PATCH-FIX-UPSTREAM libudev: fix move_later comparison
|
||||
Patch1009: 0007-libudev-fix-move_later-comparison.patch
|
||||
# PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844)
|
||||
Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch
|
||||
# PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071)
|
||||
Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch
|
||||
# PATCH-FIX-OPENSUSE 1011-check-4-valid-kmsg-device.patch -- Avoid busy systemd-journald (bnc#851393)
|
||||
Patch1011: 1011-check-4-valid-kmsg-device.patch
|
||||
# PATCH-FIX-UPSTREAM 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch
|
||||
Patch1012: 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch
|
||||
# PATCH-FIX-UPSTREAM U_logind_revert_lazy_session_activation_on_non_vt_seats.patch
|
||||
Patch1013: U_logind_revert_lazy_session_activation_on_non_vt_seats.patch
|
||||
# PATCH-FIX-OPENSUSE 1014-journald-with-journaling-FS.patch
|
||||
Patch1014: 1014-journald-with-journaling-FS.patch
|
||||
# PATCH-FIX-UPSTREAM build-sys-make-multi-seat-x-optional.patch
|
||||
Patch1015: build-sys-make-multi-seat-x-optional.patch
|
||||
# PATCH-FIX-SUSE 1016-support-powerfail-with-powerstatus.patch
|
||||
Patch1016: 1016-support-powerfail-with-powerstatus.patch
|
||||
# PATCH-FIX-UPSTREAM 1017-skip-native-unit-handling-if-sysv-already-handled.patch
|
||||
Patch1017: 1017-skip-native-unit-handling-if-sysv-already-handled.patch
|
||||
# PATCH-FIX-SUSE 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch
|
||||
Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch
|
||||
# PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch
|
||||
Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch
|
||||
|
||||
%description
|
||||
Systemd is a system and service manager, compatible with SysV and LSB
|
||||
@ -243,7 +351,7 @@ Summary: A rule-based device node and kernel event manager
|
||||
License: GPL-2.0
|
||||
Group: System/Kernel
|
||||
Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
|
||||
PreReq: /bin/pidof /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd /usr/bin/sg_inq
|
||||
PreReq: /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd /usr/bin/sg_inq
|
||||
Requires(post): lib%{udevpkgname}%{udev_major}
|
||||
Conflicts: systemd < 39
|
||||
Conflicts: aaa_base < 11.5
|
||||
@ -436,6 +544,43 @@ cp %{SOURCE7} m4/
|
||||
%patch52 -p1
|
||||
%patch53 -p1
|
||||
%patch54 -p1
|
||||
%patch55 -p1
|
||||
%patch56 -p1
|
||||
%patch57 -p1
|
||||
%patch58 -p1
|
||||
%patch59 -p1
|
||||
%patch60 -p1
|
||||
%patch61 -p1
|
||||
%patch62 -p1
|
||||
%patch63 -p1
|
||||
%patch64 -p1
|
||||
%patch65 -p1
|
||||
%patch66 -p1
|
||||
%patch67 -p1
|
||||
%patch68 -p1
|
||||
%patch69 -p1
|
||||
%patch70 -p1
|
||||
%patch71 -p1
|
||||
%patch72 -p1
|
||||
%patch73 -p1
|
||||
%patch74 -p1
|
||||
%patch75 -p1
|
||||
%patch76 -p1
|
||||
%patch77 -p1
|
||||
%patch78 -p1
|
||||
%patch79 -p1
|
||||
%patch80 -p1
|
||||
%patch81 -p1
|
||||
%patch82 -p1
|
||||
%patch83 -p1
|
||||
%patch84 -p1
|
||||
%patch85 -p1
|
||||
%patch86 -p1
|
||||
%patch87 -p1
|
||||
%patch88 -p1
|
||||
%patch89 -p1
|
||||
%patch90 -p1
|
||||
%patch91 -p1
|
||||
|
||||
# udev patches
|
||||
%patch1001 -p1
|
||||
@ -449,6 +594,19 @@ cp %{SOURCE7} m4/
|
||||
%patch1008 -p1
|
||||
%endif
|
||||
%patch1009 -p1
|
||||
%patch1010 -p1
|
||||
%patch1011 -p1
|
||||
%patch1012 -p1
|
||||
%patch1013 -p1
|
||||
%patch1014 -p1
|
||||
%patch1015 -p1
|
||||
%patch1016 -p1
|
||||
%patch1017 -p1
|
||||
%patch1018 -p1
|
||||
%patch1019 -p1
|
||||
|
||||
# ensure generate files are removed
|
||||
rm -f units/emergency.service
|
||||
|
||||
%build
|
||||
autoreconf -fiv
|
||||
@ -474,6 +632,11 @@ export V=1
|
||||
--with-rc-local-script-path-start=/etc/init.d/boot.local \
|
||||
--with-rc-local-script-path-stop=/etc/init.d/halt.local \
|
||||
--with-debug-shell=/bin/bash \
|
||||
--disable-smack \
|
||||
--disable-ima \
|
||||
%if 0%{?suse_version} > 1310
|
||||
--disable-multi-seat-x \
|
||||
%endif
|
||||
CFLAGS="%{optflags}"
|
||||
make %{?_smp_mflags}
|
||||
|
||||
@ -550,6 +713,9 @@ ln -s systemd-random-seed.service %{buildroot}/%{_prefix}/lib/systemd/system/ran
|
||||
# don't mount /tmp as tmpfs for now
|
||||
rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount
|
||||
|
||||
# don't enable wall ask password service, it spams every console (bnc#747783)
|
||||
rm %{buildroot}%{_prefix}/lib/systemd/system/multi-user.target.wants/systemd-ask-password-wall.path
|
||||
|
||||
# create %{_libexecdir}/modules-load.d
|
||||
mkdir -p %{buildroot}%{_libexecdir}/modules-load.d
|
||||
cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/sg.conf
|
||||
@ -574,7 +740,7 @@ rm -f %{buildroot}/var/log/README
|
||||
%endif
|
||||
|
||||
# legacy links
|
||||
for f in loginctl journalctl ; do
|
||||
for f in loginctl journalctl ; do
|
||||
ln -s $f %{buildroot}%{_bindir}/systemd-$f
|
||||
%if ! 0%{?bootstrap}
|
||||
ln -s $f.1 %{buildroot}%{_mandir}/man1/systemd-$f.1
|
||||
@ -611,6 +777,27 @@ cat << EOF > %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/nocl
|
||||
TTYVTDisallocate=no
|
||||
EOF
|
||||
|
||||
# ensure after.local wrapper is called
|
||||
install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/
|
||||
ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/
|
||||
|
||||
# support for SIGPWR handling with /var/run/powerstatus of e.g. powerd
|
||||
install -m 755 %{S:12} %{buildroot}/%{_prefix}/lib/systemd/
|
||||
install -m 644 units/powerfail.service %{buildroot}/%{_prefix}/lib/systemd/system/
|
||||
%if ! 0%{?bootstrap}
|
||||
install -m 644 man/systemd-powerfail.service.8 %{buildroot}/%{_mandir}/man8/
|
||||
%endif
|
||||
|
||||
# clean out some completions which requires bash-completion package
|
||||
%if %{without bash_completion}
|
||||
for c in %{buildroot}/%{_datadir}/bash-completion/completions/*
|
||||
do
|
||||
test -e "$c" || continue
|
||||
grep -q _init_completion "$c" || continue
|
||||
rm -vf "$c"
|
||||
done
|
||||
%endif
|
||||
|
||||
%fdupes -s %{buildroot}%{_mandir}
|
||||
|
||||
# packaged in systemd-rpm-macros
|
||||
@ -621,12 +808,18 @@ getent group systemd-journal >/dev/null || groupadd -r systemd-journal || :
|
||||
exit 0
|
||||
|
||||
%post
|
||||
/usr/sbin/pam-config -a --systemd >/dev/null 2>&1 || :
|
||||
%if ! 0%{?bootstrap}
|
||||
/usr/sbin/pam-config -a --systemd || :
|
||||
%endif
|
||||
/sbin/ldconfig
|
||||
[ -e /var/lib/random-seed ] && mv /var/lib/random-seed /var/lib/systemd/ > /dev/null || :
|
||||
/usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || :
|
||||
/usr/lib/systemd/systemd-random-seed save >/dev/null 2>&1 || :
|
||||
/usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || :
|
||||
/usr/bin/journalctl --update-catalog >/dev/null 2>&1 || :
|
||||
# Make sure new journal files
|
||||
chgrp systemd-journal /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || :
|
||||
chmod g+s /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || :
|
||||
|
||||
# Try to read default runlevel from the old inittab if it exists
|
||||
if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then
|
||||
@ -646,28 +839,29 @@ if [ "$1" -eq 1 ]; then
|
||||
remote-fs.target >/dev/null 2>&1 || :
|
||||
fi
|
||||
|
||||
%triggerpostun -- systemd < 194
|
||||
# migrate any symlink which may refer to the old path
|
||||
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
|
||||
|
||||
# since v207 /etc/sysctl.conf is no longer parsed, however
|
||||
# backward compatibility is provided by /etc/sysctl.d/99-sysctl.conf
|
||||
if [ ! -L /etc/sysctl.d/99-sysctl.conf -a -e /etc/sysctl.conf ]; then
|
||||
/bin/ln -sf /etc/sysctl.conf /etc/sysctl.d/99-sysctl.conf || :
|
||||
fi
|
||||
|
||||
# migrate any symlink which may refer to the old path
|
||||
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
|
||||
|
||||
%postun
|
||||
/sbin/ldconfig
|
||||
if [ $1 -ge 1 ]; then
|
||||
/usr/bin/systemctl daemon-reload >/dev/null 2>&1 || :
|
||||
/usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || :
|
||||
fi
|
||||
%if ! 0%{?bootstrap}
|
||||
if [ $1 -eq 0 ]; then
|
||||
/usr/sbin/pam-config -d --systemd >/dev/null 2>&1 || :
|
||||
/usr/sbin/pam-config -d --systemd || :
|
||||
fi
|
||||
%endif
|
||||
|
||||
%preun
|
||||
if [ $1 -eq 0 ]; then
|
||||
@ -973,10 +1167,13 @@ exit 0
|
||||
%dir /var/lib/systemd/sysv-convert
|
||||
%dir /var/lib/systemd/migrated
|
||||
%dir /var/lib/systemd/catalog
|
||||
%ghost /var/lib/systemd/catalog/database
|
||||
%dir /var/lib/systemd/coredump
|
||||
%dir /usr/share/zsh
|
||||
%dir /usr/share/zsh/site-functions
|
||||
/usr/share/zsh/site-functions/*
|
||||
%ghost /var/lib/systemd/backlight
|
||||
%ghost /var/lib/systemd/random-seed
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root,-)
|
||||
|
@ -3,8 +3,10 @@ Subject: use /usr/sbin/sulogin in emergency service
|
||||
|
||||
In current Factory sulogin is in /usr/sbin which makes it impossible
|
||||
to enter emergency service.
|
||||
--- systemd-206.orig/units/emergency.service.in
|
||||
+++ systemd-206/units/emergency.service.in
|
||||
Index: systemd-207/units/emergency.service.in
|
||||
===================================================================
|
||||
--- systemd-207.orig/units/emergency.service.in
|
||||
+++ systemd-207/units/emergency.service.in
|
||||
@@ -17,7 +17,7 @@ Environment=HOME=/root
|
||||
WorkingDirectory=/root
|
||||
ExecStartPre=-/bin/plymouth quit
|
||||
@ -14,3 +16,29 @@ to enter emergency service.
|
||||
ExecStopPost=@SYSTEMCTL@ --fail --no-block default
|
||||
Type=idle
|
||||
StandardInput=tty-force
|
||||
Index: systemd-207/units/console-shell.service.m4.in
|
||||
===================================================================
|
||||
--- systemd-207.orig/units/console-shell.service.m4.in
|
||||
+++ systemd-207/units/console-shell.service.m4.in
|
||||
@@ -17,7 +17,7 @@ Before=getty.target
|
||||
[Service]
|
||||
Environment=HOME=/root
|
||||
WorkingDirectory=/root
|
||||
-ExecStart=-/sbin/sulogin
|
||||
+ExecStart=-/usr/sbin/sulogin
|
||||
ExecStopPost=-@SYSTEMCTL@ poweroff
|
||||
Type=idle
|
||||
StandardInput=tty-force
|
||||
Index: systemd-207/units/rescue.service.m4.in
|
||||
===================================================================
|
||||
--- systemd-207.orig/units/rescue.service.m4.in
|
||||
+++ systemd-207/units/rescue.service.m4.in
|
||||
@@ -18,7 +18,7 @@ Environment=HOME=/root
|
||||
WorkingDirectory=/root
|
||||
ExecStartPre=-/bin/plymouth quit
|
||||
ExecStartPre=-/bin/echo -e 'Welcome to rescue mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -xb" to view system logs. Type "systemctl reboot" to reboot.'
|
||||
-ExecStart=-/sbin/sulogin
|
||||
+ExecStart=-/usr/sbin/sulogin
|
||||
ExecStopPost=-@SYSTEMCTL@ --fail --no-block default
|
||||
Type=idle
|
||||
StandardInput=tty-force
|
||||
|
Loading…
x
Reference in New Issue
Block a user