Accepting request 77911 from Base:System
- Add root-fsck.patch: do not run fsck on / if it is rw - Ship a non null localfs.service, fixes static mount points not being mounted properly. - Update to version 33: * optimizations and bugfixes. * 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 patches. OBS-URL: https://build.opensuse.org/request/show/77911 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=49
This commit is contained in:
commit
05509be93c
@ -1,43 +0,0 @@
|
||||
From 54a437057e83ca41f329f010e2a0e968ed3880b2 Mon Sep 17 00:00:00 2001
|
||||
From: Frederic Crozat <fcrozat@suse.com>
|
||||
Date: Mon, 1 Aug 2011 18:43:01 +0200
|
||||
Subject: [PATCH] bash: Allow to restart already started service.
|
||||
|
||||
Allow to restart all services, not only inactive one.
|
||||
|
||||
https://bugzilla.novell.com/show_bug.cgi?id=704782
|
||||
---
|
||||
src/systemctl-bash-completion.sh | 7 ++++++-
|
||||
1 files changed, 6 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/src/systemctl-bash-completion.sh b/src/systemctl-bash-completion.sh
|
||||
index acdc086..6369a6c 100644
|
||||
--- a/src/systemctl-bash-completion.sh
|
||||
+++ b/src/systemctl-bash-completion.sh
|
||||
@@ -79,10 +79,11 @@ _systemctl () {
|
||||
local -A VERBS=(
|
||||
[ALL_UNITS]='enable disable is-active is-enabled status show'
|
||||
[FAILED_UNITS]='reset-failed'
|
||||
- [STARTABLE_UNITS]='start restart reload-or-restart'
|
||||
+ [STARTABLE_UNITS]='start'
|
||||
[STOPPABLE_UNITS]='stop kill try-restart condrestart'
|
||||
[ISOLATABLE_UNITS]='isolate'
|
||||
[RELOADABLE_UNITS]='reload reload-or-try-restart force-reload'
|
||||
+ [RESTARTABLE_UNITS]='restart reload-or-restart'
|
||||
[JOBS]='cancel'
|
||||
[SNAPSHOTS]='delete'
|
||||
[ENVS]='set-environment unset-environment'
|
||||
@@ -110,6 +111,10 @@ _systemctl () {
|
||||
comps=$( __filter_units_by_property CanStart yes \
|
||||
$( __get_inactive_units | grep -Ev '\.(device|snapshot)$' ))
|
||||
|
||||
+ elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then
|
||||
+ comps=$( __filter_units_by_property CanStart yes \
|
||||
+ $( __get_all_units | grep -Ev '\.(device|snapshot|socket|timer)$' ))
|
||||
+
|
||||
elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then
|
||||
comps=$( __filter_units_by_property CanStop yes \
|
||||
$( __get_active_units ) )
|
||||
--
|
||||
1.7.3.4
|
||||
|
25
gperf-missing.patch
Normal file
25
gperf-missing.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From: Thierry Reding <thierry.reding@avionic-design.de>
|
||||
To: systemd-devel@lists.freedesktop.org
|
||||
Date: Wed, 3 Aug 2011 08:40:27 +0200
|
||||
Subject: [systemd-devel] [PATCH] gperf: Include missing.h.
|
||||
|
||||
Older GNU C libraries don't define RLIMIT_RTTIME, so including the
|
||||
missing.h is required to fix the build.
|
||||
---
|
||||
src/load-fragment-gperf.gperf.m4 | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/src/load-fragment-gperf.gperf.m4 b/src/load-fragment-gperf.gperf.m4
|
||||
index 650f444..8e52890 100644
|
||||
--- a/src/load-fragment-gperf.gperf.m4
|
||||
+++ b/src/load-fragment-gperf.gperf.m4
|
||||
@@ -2,6 +2,7 @@
|
||||
#include <stddef.h>
|
||||
#include "conf-parser.h"
|
||||
#include "load-fragment.h"
|
||||
+#include "missing.h"
|
||||
%}
|
||||
struct ConfigPerfItem;
|
||||
%null_strings
|
||||
--
|
||||
1.7.6
|
@ -1,100 +0,0 @@
|
||||
From de3910a324aefcb15c26be27033d6917494e5946 Mon Sep 17 00:00:00 2001
|
||||
From: Frederic Crozat <fcrozat@suse.com>
|
||||
Date: Wed, 29 Jun 2011 13:59:34 +0200
|
||||
Subject: [PATCH] service: parse insserv.conf and plugs its system facilities into systemd.
|
||||
|
||||
---
|
||||
src/service.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 files changed, 70 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/src/service.c b/src/service.c
|
||||
index 4e3b6e7..0464d1e 100644
|
||||
--- a/src/service.c
|
||||
+++ b/src/service.c
|
||||
@@ -2968,6 +2968,72 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) {
|
||||
}
|
||||
|
||||
#ifdef HAVE_SYSV_COMPAT
|
||||
+
|
||||
+#ifdef TARGET_SUSE
|
||||
+static void sysv_facility_in_insserv_conf(Manager *mgr) {
|
||||
+ FILE *f=NULL;
|
||||
+ int r;
|
||||
+
|
||||
+ if (!(f = fopen("/etc/insserv.conf", "re"))) {
|
||||
+ r = errno == ENOENT ? 0 : -errno;
|
||||
+ goto finish;
|
||||
+ }
|
||||
+
|
||||
+ while (!feof(f)) {
|
||||
+ char l[LINE_MAX], *t;
|
||||
+ char **parsed = NULL;
|
||||
+
|
||||
+ if (!fgets(l, sizeof(l), f)) {
|
||||
+ if (feof(f))
|
||||
+ break;
|
||||
+
|
||||
+ r = -errno;
|
||||
+ log_error("Failed to read configuration file '/etc/insserv.conf': %s", strerror(-r));
|
||||
+ goto finish;
|
||||
+ }
|
||||
+
|
||||
+ t = strstrip(l);
|
||||
+ if (*t != '$' && *t != '<')
|
||||
+ continue;
|
||||
+
|
||||
+ parsed = strv_split(t,WHITESPACE);
|
||||
+ /* we ignore <interactive>, not used, equivalent to X-Interactive */
|
||||
+ if (parsed && !startswith_no_case (parsed[0], "<interactive>")) {
|
||||
+ char *facility;
|
||||
+ Unit *u;
|
||||
+ if (sysv_translate_facility(parsed[0], NULL, &facility) < 0)
|
||||
+ continue;
|
||||
+ if ((u = manager_get_unit(mgr, facility)) && (u->meta.type == UNIT_TARGET)) {
|
||||
+ UnitDependency e;
|
||||
+ char *dep = NULL, *name, **j;
|
||||
+
|
||||
+ STRV_FOREACH (j, parsed+1) {
|
||||
+ if (*j[0]=='+') {
|
||||
+ e = UNIT_WANTS;
|
||||
+ name = *j+1;
|
||||
+ }
|
||||
+ else {
|
||||
+ e = UNIT_REQUIRES;
|
||||
+ name = *j;
|
||||
+ }
|
||||
+ if (sysv_translate_facility(name, NULL, &dep) < 0)
|
||||
+ continue;
|
||||
+
|
||||
+ r = unit_add_two_dependencies_by_name(u, UNIT_BEFORE, e, dep, NULL, true);
|
||||
+ free(dep);
|
||||
+ }
|
||||
+ }
|
||||
+ free(facility);
|
||||
+ }
|
||||
+ strv_free(parsed);
|
||||
+ }
|
||||
+finish:
|
||||
+ if (f)
|
||||
+ fclose(f);
|
||||
+
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
static int service_enumerate(Manager *m) {
|
||||
char **p;
|
||||
unsigned i;
|
||||
@@ -3116,6 +3182,10 @@ static int service_enumerate(Manager *m) {
|
||||
|
||||
r = 0;
|
||||
|
||||
+#ifdef TARGET_SUSE
|
||||
+ sysv_facility_in_insserv_conf (m);
|
||||
+#endif
|
||||
+
|
||||
finish:
|
||||
free(path);
|
||||
free(fpath);
|
||||
--
|
||||
1.7.3.4
|
||||
|
6
localfs.service
Normal file
6
localfs.service
Normal file
@ -0,0 +1,6 @@
|
||||
[Unit]
|
||||
Description=Shadow /etc/init.d/boot.localfs
|
||||
|
||||
[Service]
|
||||
RemainAfterExit=true
|
||||
ExecStart=/bin/true
|
25
root-fsck.patch
Normal file
25
root-fsck.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From 687d70cc43b34eb2359598d0ca0b69e996aa1b38 Mon Sep 17 00:00:00 2001
|
||||
From: Frederic Crozat <fcrozat@suse.com>
|
||||
Date: Wed, 3 Aug 2011 16:46:52 +0200
|
||||
Subject: [PATCH] units: detect SUSE initrd and do not run fsck on /.
|
||||
|
||||
---
|
||||
units/fsck-root.service.in | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/units/fsck-root.service.in b/units/fsck-root.service.in
|
||||
index 7b3529d..2f8c8f5 100644
|
||||
--- a/units/fsck-root.service.in
|
||||
+++ b/units/fsck-root.service.in
|
||||
@@ -13,6 +13,8 @@ Before=local-fs.target shutdown.target
|
||||
|
||||
# Dracut informs us with this flag file if the root fsck was already run
|
||||
ConditionPathExists=!/run/initramfs/root-fsck
|
||||
+# Detect SUSE initrd too
|
||||
+ConditionPathExists=!/dev/shm/initrd_exports.sh
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
--
|
||||
1.7.3.4
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:714bd00ceb44639a675e8a7b7ee4f6bff42b70a442110c70e64ff41056828dae
|
||||
size 877943
|
3
systemd-33.tar.bz2
Normal file
3
systemd-33.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0de8b842841859b329dec26ecb3d7c10f6616ef80a074192800315893e3d5c3d
|
||||
size 879459
|
@ -1,3 +1,21 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 3 16:03:25 UTC 2011 - fcrozat@suse.com
|
||||
|
||||
- Add root-fsck.patch: do not run fsck on / if it is rw
|
||||
- Ship a non null localfs.service, fixes static mount points not
|
||||
being mounted properly.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 3 07:11:33 UTC 2011 - aj@suse.de
|
||||
|
||||
- Update to version 33:
|
||||
* optimizations and bugfixes.
|
||||
* 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
|
||||
patches.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 2 08:29:30 UTC 2011 - fcrozat@suse.com
|
||||
|
||||
|
15
systemd.spec
15
systemd.spec
@ -21,7 +21,7 @@
|
||||
|
||||
Name: systemd
|
||||
Url: http://www.freedesktop.org/wiki/Software/systemd
|
||||
Version: 32
|
||||
Version: 33
|
||||
Release: 5
|
||||
License: GPLv2+
|
||||
Group: System/Base
|
||||
@ -30,6 +30,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildRequires: libudev-devel udev
|
||||
BuildRequires: dbus-1-devel
|
||||
BuildRequires: audit-devel
|
||||
BuildRequires: gperf
|
||||
BuildRequires: libcap-devel
|
||||
BuildRequires: tcpd-devel
|
||||
BuildRequires: pam-devel
|
||||
@ -46,16 +47,18 @@ Conflicts: filesystem < 11.5
|
||||
Conflicts: mkinitrd < 2.7.0
|
||||
Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.bz2
|
||||
Source1: systemd-rpmlintrc
|
||||
Source2: localfs.service
|
||||
Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.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
|
||||
# an exception will be silently removed with the next version update.
|
||||
# PATCH-FIX-UPSTREAM fcrozat@suse.com -- read/parse insserv.conf (git)
|
||||
Patch2: insserv-parsing.patch
|
||||
# PATCH-FIX-UPSTREAM fcrozat@suse.com bnc704782 -- fix bash completion for restart command (git)
|
||||
Patch3: bash-completion-restart.patch
|
||||
# PATCH-FIX-UPSTREAM aj@suse.de gperf: Include missing.h
|
||||
Patch2: gperf-missing.patch
|
||||
# PATCH-FIX-UPSTREAM fcrozat@suse.com -- don't run fsck on rw /
|
||||
Patch3: root-fsck.patch
|
||||
|
||||
|
||||
%description
|
||||
Systemd is a system and service manager, compatible with SysV and LSB
|
||||
@ -161,7 +164,7 @@ ln -s /dev/null %{buildroot}/lib/systemd/system/kbd.service
|
||||
ln -s /dev/null %{buildroot}/lib/systemd/system/klog.service
|
||||
ln -s /dev/null %{buildroot}/lib/systemd/system/ldconfig.service
|
||||
ln -s /dev/null %{buildroot}/lib/systemd/system/loadmodules.service
|
||||
ln -s /dev/null %{buildroot}/lib/systemd/system/localfs.service
|
||||
install -m644 %{S:2} %{buildroot}/lib/systemd/system/localfs.service
|
||||
ln -s /dev/null %{buildroot}/lib/systemd/system/localnet.service
|
||||
ln -s /dev/null %{buildroot}/lib/systemd/system/proc.service
|
||||
ln -s fsck-root.service %{buildroot}/lib/systemd/system/rootfsck.service
|
||||
|
Loading…
Reference in New Issue
Block a user