8f03aa new upstream release

Authored and Committed by Lennart Poettering 11 years ago
    new upstream release
    
        
0013-build-sys-don-t-hard-code-binary-paths-in-initrd-.se.patch DELETED
@@ -1,119 +0,0 @@
1
- From 7b40ce553f0ec9487077e53f5bdc46580025901c Mon Sep 17 00:00:00 2001
2
- From: Michael Biebl <biebl@debian.org>
3
- Date: Sat, 9 Mar 2013 09:46:11 +0100
4
- Subject: [PATCH] build-sys: don't hard-code binary paths in initrd-*.service
5
-
6
- Instead use @bindir@ for udevadm and @rootbindir@ for systemctl.
7
- ---
8
- Makefile.am | 16 ++++++++++------
9
- ...{initrd-cleanup.service => initrd-cleanup.service.in} | 2 +-
10
- ...trd-parse-etc.service => initrd-parse-etc.service.in} | 6 +++---
11
- ...switch-root.service => initrd-switch-root.service.in} | 2 +-
12
- ...p-db.service => initrd-udevadm-cleanup-db.service.in} | 2 +-
13
- 5 files changed, 16 insertions(+), 12 deletions(-)
14
- rename units/{initrd-cleanup.service => initrd-cleanup.service.in} (87%)
15
- rename units/{initrd-parse-etc.service => initrd-parse-etc.service.in} (75%)
16
- rename units/{initrd-switch-root.service => initrd-switch-root.service.in} (88%)
17
- rename units/{initrd-udevadm-cleanup-db.service => initrd-udevadm-cleanup-db.service.in} (93%)
18
-
19
- diff --git a/Makefile.am b/Makefile.am
20
- index 05bf582..afd259a 100644
21
- --- a/Makefile.am
22
- +++ b/Makefile.am
23
- @@ -382,11 +382,7 @@ dist_systemunit_DATA = \
24
- units/systemd-udevd-control.socket \
25
- units/systemd-udevd-kernel.socket \
26
- units/system-update.target \
27
- - units/initrd-parse-etc.service \
28
- - units/initrd-cleanup.service \
29
- - units/initrd-switch-root.target \
30
- - units/initrd-udevadm-cleanup-db.service \
31
- - units/initrd-switch-root.service
32
- + units/initrd-switch-root.target
33
-
34
- nodist_systemunit_DATA = \
35
- units/getty@.service \
36
- @@ -418,7 +414,11 @@ nodist_systemunit_DATA = \
37
- units/systemd-udevd.service \
38
- units/systemd-udev-trigger.service \
39
- units/systemd-udev-settle.service \
40
- - units/debug-shell.service
41
- + units/debug-shell.service \
42
- + units/initrd-parse-etc.service \
43
- + units/initrd-cleanup.service \
44
- + units/initrd-udevadm-cleanup-db.service \
45
- + units/initrd-switch-root.service
46
-
47
- dist_userunit_DATA = \
48
- units/user/default.target \
49
- @@ -460,6 +460,10 @@ EXTRA_DIST += \
50
- units/systemd-hybrid-sleep.service.in \
51
- units/systemd-suspend.service.in \
52
- units/quotaon.service.in \
53
- + units/initrd-parse-etc.service.in \
54
- + units/initrd-cleanup.service.in \
55
- + units/initrd-udevadm-cleanup-db.service.in \
56
- + units/initrd-switch-root.service.in \
57
- introspect.awk \
58
- man/custom-html.xsl
59
-
60
- diff --git a/units/initrd-cleanup.service b/units/initrd-cleanup.service.in
61
- similarity index 87%
62
- rename from units/initrd-cleanup.service
63
- rename to units/initrd-cleanup.service.in
64
- index 8998696..e926a1e 100644
65
- --- a/units/initrd-cleanup.service
66
- +++ b/units/initrd-cleanup.service.in
67
- @@ -15,4 +15,4 @@ After=local-fs.target swap.target
68
-
69
- [Service]
70
- Type=oneshot
71
- -ExecStart=/usr/bin/systemctl --no-block isolate initrd-switch-root.target
72
- +ExecStart=@rootbindir@/systemctl --no-block isolate initrd-switch-root.target
73
- diff --git a/units/initrd-parse-etc.service b/units/initrd-parse-etc.service.in
74
- similarity index 75%
75
- rename from units/initrd-parse-etc.service
76
- rename to units/initrd-parse-etc.service.in
77
- index 3a71a7e..1a2711a 100644
78
- --- a/units/initrd-parse-etc.service
79
- +++ b/units/initrd-parse-etc.service.in
80
- @@ -15,6 +15,6 @@ ConditionPathExists=/etc/initrd-release
81
-
82
- [Service]
83
- Type=oneshot
84
- -ExecStartPre=/usr/bin/systemctl daemon-reload
85
- -ExecStart=/usr/bin/systemctl start local-fs.target
86
- -ExecStart=/usr/bin/systemctl --no-block start initrd-cleanup.service
87
- +ExecStartPre=@rootbindir@/systemctl daemon-reload
88
- +ExecStart=@rootbindir@/systemctl start local-fs.target
89
- +ExecStart=@rootbindir@/systemctl --no-block start initrd-cleanup.service
90
- diff --git a/units/initrd-switch-root.service b/units/initrd-switch-root.service.in
91
- similarity index 88%
92
- rename from units/initrd-switch-root.service
93
- rename to units/initrd-switch-root.service.in
94
- index e076b39..6740264 100644
95
- --- a/units/initrd-switch-root.service
96
- +++ b/units/initrd-switch-root.service.in
97
- @@ -15,5 +15,5 @@ AllowIsolate=yes
98
- [Service]
99
- Type=oneshot
100
- # we have to use "--force" here, otherwise systemd would umount /run
101
- -ExecStart=/usr/bin/systemctl --no-block --force switch-root /sysroot
102
- +ExecStart=@rootbindir@/systemctl --no-block --force switch-root /sysroot
103
- KillMode=none
104
- diff --git a/units/initrd-udevadm-cleanup-db.service b/units/initrd-udevadm-cleanup-db.service.in
105
- similarity index 93%
106
- rename from units/initrd-udevadm-cleanup-db.service
107
- rename to units/initrd-udevadm-cleanup-db.service.in
108
- index 983189e..b800c21 100644
109
- --- a/units/initrd-udevadm-cleanup-db.service
110
- +++ b/units/initrd-udevadm-cleanup-db.service.in
111
- @@ -15,4 +15,4 @@ Before=initrd-switch-root.target
112
-
113
- [Service]
114
- Type=oneshot
115
- -ExecStart=-/usr/bin/udevadm info --cleanup-db
116
- +ExecStart=-@bindir@/udevadm info --cleanup-db
117
- --
118
- 1.8.1
119
-
0045-add-initrd-fs.target-and-root-fs.target.patch DELETED
@@ -1,365 +0,0 @@
1
- From 700e07ffd53083114e91bb4ba646ed26d0463f67 Mon Sep 17 00:00:00 2001
2
- From: Harald Hoyer <harald@redhat.com>
3
- Date: Mon, 4 Mar 2013 19:01:05 +0100
4
- Subject: [PATCH] add initrd-fs.target and root-fs.target
5
-
6
- Instead of using local-fs*.target in the initrd, use root-fs.target for
7
- sysroot.mount and initrd-fs.target for /sysroot/usr and friends.
8
-
9
- Using local-fs.target would mean to carry over the activated
10
- local-fs.target to the isolated initrd-switch-root.target and thus in
11
- the real root. Having local-fs.target already active after
12
- deserialization causes ordering problems with the real root services and
13
- targets.
14
-
15
- We better isolate to targets for initrd-switch-root.target, which are
16
- only available in the initrd.
17
- ---
18
- Makefile.am | 2 +
19
- man/systemd.special.xml | 30 +++++++++++++
20
- src/core/special.h | 2 +
21
- src/fstab-generator/fstab-generator.c | 79 ++++++++++++++++++++---------------
22
- units/initrd-cleanup.service.in | 4 +-
23
- units/initrd-fs.target | 13 ++++++
24
- units/initrd-parse-etc.service.in | 6 +--
25
- units/initrd-switch-root.target | 4 +-
26
- units/root-fs.target | 11 +++++
27
- 9 files changed, 110 insertions(+), 41 deletions(-)
28
- create mode 100644 units/initrd-fs.target
29
- create mode 100644 units/root-fs.target
30
-
31
- diff --git a/Makefile.am b/Makefile.am
32
- index b6d3306..2a010c7 100644
33
- --- a/Makefile.am
34
- +++ b/Makefile.am
35
- @@ -347,6 +347,8 @@ dist_systemunit_DATA = \
36
- units/kexec.target \
37
- units/local-fs.target \
38
- units/local-fs-pre.target \
39
- + units/initrd-fs.target \
40
- + units/root-fs.target \
41
- units/remote-fs.target \
42
- units/remote-fs-pre.target \
43
- units/network.target \
44
- diff --git a/man/systemd.special.xml b/man/systemd.special.xml
45
- index 0d1df84..7b78099 100644
46
- --- a/man/systemd.special.xml
47
- +++ b/man/systemd.special.xml
48
- @@ -64,6 +64,7 @@
49
- <filename>halt.target</filename>,
50
- <filename>hibernate.target</filename>,
51
- <filename>hybrid-sleep.target</filename>,
52
- + <filename>initrd-fs.target</filename>,
53
- <filename>kbrequest.target</filename>,
54
- <filename>kexec.target</filename>,
55
- <filename>local-fs.target</filename>,
56
- @@ -78,6 +79,7 @@
57
- <filename>remote-fs.target</filename>,
58
- <filename>remote-fs-pre.target</filename>,
59
- <filename>rescue.target</filename>,
60
- + <filename>root-fs.target</filename>,
61
- <filename>rpcbind.target</filename>,
62
- <filename>runlevel2.target</filename>,
63
- <filename>runlevel3.target</filename>,
64
- @@ -296,6 +298,22 @@
65
- </listitem>
66
- </varlistentry>
67
- <varlistentry>
68
- + <term><filename>initrd-fs.target</filename></term>
69
- + <listitem>
70
- + <para>systemd automatically
71
- + adds dependencies of type
72
- + Before to sysroot-usr.mount and
73
- + all mount points fround in
74
- + <filename>/etc/fstab</filename>
75
- + that have the
76
- + <option>auto</option> and
77
- + <option>x-initrd.mount</option>
78
- + mount options set.
79
- + See also <literal>systemd-fstab-generator</literal>.
80
- + </para>
81
- + </listitem>
82
- + </varlistentry>
83
- + <varlistentry>
84
- <term><filename>kbrequest.target</filename></term>
85
- <listitem>
86
- <para>systemd starts this
87
- @@ -505,6 +523,17 @@
88
- </listitem>
89
- </varlistentry>
90
- <varlistentry>
91
- + <term><filename>root-fs.target</filename></term>
92
- + <listitem>
93
- + <para>systemd automatically
94
- + adds dependencies of type
95
- + Before to the sysroot.mount unit,
96
- + which is generated from the kernel command
97
- + line by the <literal>systemd-fstab-generator</literal>.
98
- + </para>
99
- + </listitem>
100
- + </varlistentry>
101
- + <varlistentry>
102
- <term><filename>rpcbind.target</filename></term>
103
- <listitem>
104
- <para>systemd automatically
105
- @@ -760,6 +789,7 @@
106
- <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
107
- <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
108
- <citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>
109
- + <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
110
- </para>
111
- </refsect1>
112
-
113
- diff --git a/src/core/special.h b/src/core/special.h
114
- index 99c0e12..52e593b 100644
115
- --- a/src/core/special.h
116
- +++ b/src/core/special.h
117
- @@ -48,6 +48,8 @@
118
- #define SPECIAL_SOCKETS_TARGET "sockets.target"
119
- #define SPECIAL_LOCAL_FS_TARGET "local-fs.target"
120
- #define SPECIAL_LOCAL_FS_PRE_TARGET "local-fs-pre.target"
121
- +#define SPECIAL_INITRD_FS_TARGET "initrd-fs.target"
122
- +#define SPECIAL_ROOT_FS_TARGET "root-fs.target"
123
- #define SPECIAL_REMOTE_FS_TARGET "remote-fs.target" /* LSB's $remote_fs */
124
- #define SPECIAL_REMOTE_FS_PRE_TARGET "remote-fs-pre.target"
125
- #define SPECIAL_SWAP_TARGET "swap.target"
126
- diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c
127
- index 910bbc1..b4fb134 100644
128
- --- a/src/fstab-generator/fstab-generator.c
129
- +++ b/src/fstab-generator/fstab-generator.c
130
- @@ -200,14 +200,13 @@ static bool mount_in_initrd(struct mntent *me) {
131
- }
132
-
133
- static int add_mount(const char *what, const char *where, const char *type, const char *opts,
134
- - int passno, bool noauto, bool nofail, bool automount, bool isbind, bool isnetwork,
135
- - const char *source) {
136
- + int passno, bool noauto, bool nofail, bool automount, bool isbind,
137
- + const char *pre, const char *post, const char *source) {
138
- char _cleanup_free_
139
- *name = NULL, *unit = NULL, *lnk = NULL, *device = NULL,
140
- *automount_name = NULL, *automount_unit = NULL;
141
- FILE _cleanup_fclose_ *f = NULL;
142
- int r;
143
- - const char *post, *pre;
144
-
145
- assert(what);
146
- assert(where);
147
- @@ -227,14 +226,6 @@ static int add_mount(const char *what, const char *where, const char *type, cons
148
- mount_point_ignore(where))
149
- return 0;
150
-
151
- - if (isnetwork) {
152
- - post = SPECIAL_REMOTE_FS_TARGET;
153
- - pre = SPECIAL_REMOTE_FS_PRE_TARGET;
154
- - } else {
155
- - post = SPECIAL_LOCAL_FS_TARGET;
156
- - pre = SPECIAL_LOCAL_FS_PRE_TARGET;
157
- - }
158
- -
159
- name = unit_name_from_path(where, ".mount");
160
- if (!name)
161
- return log_oom();
162
- @@ -259,17 +250,19 @@ static int add_mount(const char *what, const char *where, const char *type, cons
163
- "DefaultDependencies=no\n",
164
- source);
165
-
166
- - if (!path_equal(where, "/"))
167
- + if (!path_equal(where, "/")) {
168
- + if (pre)
169
- + fprintf(f,
170
- + "After=%s\n"
171
- + "Wants=%s\n",
172
- + pre,
173
- + pre);
174
- fprintf(f,
175
- - "After=%s\n"
176
- - "Wants=%s\n"
177
- "Conflicts=" SPECIAL_UMOUNT_TARGET "\n"
178
- - "Before=" SPECIAL_UMOUNT_TARGET "\n",
179
- - pre,
180
- - pre);
181
- -
182
- + "Before=" SPECIAL_UMOUNT_TARGET "\n");
183
- + }
184
-
185
- - if (!noauto && !nofail && !automount)
186
- + if (post && !noauto && !nofail && !automount)
187
- fprintf(f,
188
- "Before=%s\n",
189
- post);
190
- @@ -299,14 +292,16 @@ static int add_mount(const char *what, const char *where, const char *type, cons
191
- }
192
-
193
- if (!noauto) {
194
- - lnk = strjoin(arg_dest, "/", post, nofail || automount ? ".wants/" : ".requires/", name, NULL);
195
- - if (!lnk)
196
- - return log_oom();
197
- + if (post) {
198
- + lnk = strjoin(arg_dest, "/", post, nofail || automount ? ".wants/" : ".requires/", name, NULL);
199
- + if (!lnk)
200
- + return log_oom();
201
-
202
- - mkdir_parents_label(lnk, 0755);
203
- - if (symlink(unit, lnk) < 0) {
204
- - log_error("Failed to create symlink %s: %m", lnk);
205
- - return -errno;
206
- + mkdir_parents_label(lnk, 0755);
207
- + if (symlink(unit, lnk) < 0) {
208
- + log_error("Failed to create symlink %s: %m", lnk);
209
- + return -errno;
210
- + }
211
- }
212
-
213
- if (!isbind &&
214
- @@ -353,12 +348,17 @@ static int add_mount(const char *what, const char *where, const char *type, cons
215
- "SourcePath=%s\n"
216
- "DefaultDependencies=no\n"
217
- "Conflicts=" SPECIAL_UMOUNT_TARGET "\n"
218
- - "Before=" SPECIAL_UMOUNT_TARGET " %s\n"
219
- - "\n"
220
- + "Before=" SPECIAL_UMOUNT_TARGET "\n",
221
- + source);
222
- +
223
- + if (post)
224
- + fprintf(f,
225
- + "Before= %s\n",
226
- + post);
227
- +
228
- + fprintf(f,
229
- "[Automount]\n"
230
- "Where=%s\n",
231
- - source,
232
- - post,
233
- where);
234
-
235
- fflush(f);
236
- @@ -421,7 +421,8 @@ static int parse_fstab(const char *prefix, bool initrd) {
237
- if (streq(me->mnt_type, "swap"))
238
- k = add_swap(what, me);
239
- else {
240
- - bool noauto, nofail, automount, isbind, isnetwork;
241
- + bool noauto, nofail, automount, isbind;
242
- + const char *pre, *post;
243
-
244
- noauto = !!hasmntopt(me, "noauto");
245
- nofail = !!hasmntopt(me, "nofail");
246
- @@ -429,11 +430,21 @@ static int parse_fstab(const char *prefix, bool initrd) {
247
- hasmntopt(me, "comment=systemd.automount") ||
248
- hasmntopt(me, "x-systemd.automount");
249
- isbind = mount_is_bind(me);
250
- - isnetwork = mount_is_network(me);
251
- +
252
- + if (initrd) {
253
- + post = SPECIAL_INITRD_FS_TARGET;
254
- + pre = NULL;
255
- + } else if (mount_is_network(me)) {
256
- + post = SPECIAL_REMOTE_FS_TARGET;
257
- + pre = SPECIAL_REMOTE_FS_PRE_TARGET;
258
- + } else {
259
- + post = SPECIAL_LOCAL_FS_TARGET;
260
- + pre = SPECIAL_LOCAL_FS_PRE_TARGET;
261
- + }
262
-
263
- k = add_mount(what, where, me->mnt_type, me->mnt_opts,
264
- me->mnt_passno, noauto, nofail, automount,
265
- - isbind, isnetwork, fstab_path);
266
- + isbind, pre, post, fstab_path);
267
- }
268
-
269
- if (k < 0)
270
- @@ -514,7 +525,7 @@ static int parse_new_root_from_proc_cmdline(void) {
271
-
272
- log_debug("Found entry what=%s where=/sysroot type=%s", what, type);
273
- r = add_mount(what, "/sysroot", type, opts, 0, false, false, false,
274
- - false, false, "/proc/cmdline");
275
- + false, NULL, SPECIAL_ROOT_FS_TARGET, "/proc/cmdline");
276
-
277
- return (r < 0) ? r : 0;
278
- }
279
- diff --git a/units/initrd-cleanup.service.in b/units/initrd-cleanup.service.in
280
- index e926a1e..5bef090 100644
281
- --- a/units/initrd-cleanup.service.in
282
- +++ b/units/initrd-cleanup.service.in
283
- @@ -10,8 +10,8 @@ Description=Cleaning Up and Shutting Down Daemons
284
- DefaultDependencies=no
285
- ConditionPathExists=/etc/initrd-release
286
- OnFailure=emergency.target
287
- -Requires=local-fs.target swap.target
288
- -After=local-fs.target swap.target
289
- +Wants=root-fs.target initrd-fs.target
290
- +After=root-fs.target initrd-fs.target
291
-
292
- [Service]
293
- Type=oneshot
294
- diff --git a/units/initrd-fs.target b/units/initrd-fs.target
295
- new file mode 100644
296
- index 0000000..6ba1758
297
- --- /dev/null
298
- +++ b/units/initrd-fs.target
299
- @@ -0,0 +1,13 @@
300
- +# This file is part of systemd.
301
- +#
302
- +# systemd is free software; you can redistribute it and/or modify it
303
- +# under the terms of the GNU Lesser General Public License as published by
304
- +# the Free Software Foundation; either version 2.1 of the License, or
305
- +# (at your option) any later version.
306
- +
307
- +[Unit]
308
- +Description=Initrd File Systems
309
- +Documentation=man:systemd.special(7)
310
- +OnFailure=emergency.target
311
- +OnFailureIsolate=yes
312
- +ConditionPathExists=/etc/initrd-release
313
- diff --git a/units/initrd-parse-etc.service.in b/units/initrd-parse-etc.service.in
314
- index 1a2711a..44fee7b 100644
315
- --- a/units/initrd-parse-etc.service.in
316
- +++ b/units/initrd-parse-etc.service.in
317
- @@ -8,13 +8,13 @@
318
- [Unit]
319
- Description=Reload Configuration from the Real Root
320
- DefaultDependencies=no
321
- -Requires=local-fs.target swap.target
322
- -After=local-fs.target swap.target
323
- +Requires=root-fs.target
324
- +After=root-fs.target
325
- OnFailure=emergency.target
326
- ConditionPathExists=/etc/initrd-release
327
-
328
- [Service]
329
- Type=oneshot
330
- ExecStartPre=@rootbindir@/systemctl daemon-reload
331
- -ExecStart=@rootbindir@/systemctl start local-fs.target
332
- +ExecStart=@rootbindir@/systemctl start initrd-fs.target
333
- ExecStart=@rootbindir@/systemctl --no-block start initrd-cleanup.service
334
- diff --git a/units/initrd-switch-root.target b/units/initrd-switch-root.target
335
- index f706d29..cf646c4 100644
336
- --- a/units/initrd-switch-root.target
337
- +++ b/units/initrd-switch-root.target
338
- @@ -12,5 +12,5 @@ DefaultDependencies=no
339
- Requires=initrd-switch-root.service
340
- Before=initrd-switch-root.service
341
- AllowIsolate=yes
342
- -Wants=initrd-udevadm-cleanup-db.service local-fs.target swap.target systemd-journald.service
343
- -After=initrd-udevadm-cleanup-db.service local-fs.target swap.target emergency.service emergency.target
344
- +Wants=initrd-udevadm-cleanup-db.service root-fs.target initrd-fs.target systemd-journald.service
345
- +After=initrd-udevadm-cleanup-db.service root-fs.target initrd-fs.target emergency.service emergency.target
346
- diff --git a/units/root-fs.target b/units/root-fs.target
347
- new file mode 100644
348
- index 0000000..1351534
349
- --- /dev/null
350
- +++ b/units/root-fs.target
351
- @@ -0,0 +1,11 @@
352
- +# This file is part of systemd.
353
- +#
354
- +# systemd is free software; you can redistribute it and/or modify it
355
- +# under the terms of the GNU Lesser General Public License as published by
356
- +# the Free Software Foundation; either version 2.1 of the License, or
357
- +# (at your option) any later version.
358
- +
359
- +[Unit]
360
- +Description=Initrd Root File System
361
- +Documentation=man:systemd.special(7)
362
- +ConditionPathExists=/etc/initrd-release
363
- --
364
- 1.8.1
365
-
0061-main-don-t-mount-sys-dev-and-friends-when-we-run-wit.patch DELETED
@@ -1,32 +0,0 @@
1
- From c1dae1b3c9729fb8ab749dd4e2dad07e0fad7ed8 Mon Sep 17 00:00:00 2001
2
- From: Lennart Poettering <lennart@poettering.net>
3
- Date: Thu, 14 Mar 2013 21:36:38 +0100
4
- Subject: [PATCH] main: don't mount /sys, /dev and friends when we run with PID
5
- != 1
6
-
7
- Back from old times when we developed systemd on non-systemd hosts we
8
- still mounted the missing directories such as the cgroup stuff even when
9
- running with a PID != 1. There's no point for that anymore, so let's
10
- just do that if we are actually PID 1, and never otherwise.
11
-
12
- https://bugs.freedesktop.org/show_bug.cgi?id=62354
13
- ---
14
- src/core/main.c | 2 +-
15
- 1 file changed, 1 insertion(+), 1 deletion(-)
16
-
17
- diff --git a/src/core/main.c b/src/core/main.c
18
- index 7b03983..01a6d41 100644
19
- --- a/src/core/main.c
20
- +++ b/src/core/main.c
21
- @@ -1437,7 +1437,7 @@ int main(int argc, char *argv[]) {
22
-
23
- /* Mount /proc, /sys and friends, so that /proc/cmdline and
24
- * /proc/$PID/fd is available. */
25
- - if (geteuid() == 0 && !getenv("SYSTEMD_SKIP_API_MOUNTS")) {
26
- + if (getpid() == 1) {
27
- r = mount_setup(loaded_policy);
28
- if (r < 0)
29
- goto finish;
30
- --
31
- 1.8.1
32
-
0062-Make-initrd.target-the-default-target-in-the-initrd.patch DELETED
@@ -1,348 +0,0 @@
1
- From 9e5f0f92915b777308797294c6e103e430957b5d Mon Sep 17 00:00:00 2001
2
- From: Harald Hoyer <harald@redhat.com>
3
- Date: Thu, 14 Mar 2013 13:12:10 +0100
4
- Subject: [PATCH] Make initrd.target the default target in the initrd
5
-
6
- First, rename root-fs.target to initrd-root-fs.target to clarify its usage.
7
-
8
- Mount units with "x-initrd-rootfs.mount" are now ordered before
9
- initrd-root-fs.target. As we sometimes construct /sysroot mounts in
10
- /etc/fstab in the initrd, we want these to be mounted before the
11
- initrd-root-fs.target is active.
12
-
13
- initrd.target can be the default target in the initrd.
14
-
15
- (normal startup)
16
- :
17
- :
18
- v
19
- basic.target
20
- |
21
- ______________________/|
22
- / |
23
- | sysroot.mount
24
- | |
25
- | v
26
- | initrd-root-fs.target
27
- | |
28
- | v
29
- | initrd-parse-etc.service
30
- (custom initrd services) |
31
- | v
32
- | (sysroot-usr.mount and
33
- | various mounts marked
34
- | with fstab option
35
- | x-initrd.mount)
36
- | |
37
- | v
38
- | initrd-fs.target
39
- | |
40
- \______________________ |
41
- \|
42
- v
43
- initrd.target
44
- |
45
- v
46
- initrd-cleanup.service
47
- isolates to
48
- initrd-switch-root.target
49
- |
50
- v
51
- ______________________/|
52
- / |
53
- | initrd-udevadm-cleanup-db.service
54
- | |
55
- (custom initrd services) |
56
- | |
57
- \______________________ |
58
- \|
59
- v
60
- initrd-switch-root.target
61
- |
62
- v
63
- initrd-switch-root.service
64
- |
65
- v
66
- switch-root
67
- ---
68
- Makefile.am | 3 +-
69
- man/bootup.xml | 73 +++++++++++++++++++++++++
70
- man/systemd.special.xml | 4 +-
71
- src/core/special.h | 2 +-
72
- src/fstab-generator/fstab-generator.c | 11 +++-
73
- units/initrd-cleanup.service.in | 3 +-
74
- units/initrd-fs.target | 1 +
75
- units/initrd-parse-etc.service.in | 7 ++-
76
- units/{root-fs.target => initrd-root-fs.target} | 2 +
77
- units/initrd-switch-root.target | 4 +-
78
- units/initrd.target | 17 ++++++
79
- 11 files changed, 115 insertions(+), 12 deletions(-)
80
- rename units/{root-fs.target => initrd-root-fs.target} (89%)
81
- create mode 100644 units/initrd.target
82
-
83
- diff --git a/Makefile.am b/Makefile.am
84
- index 175d14b..cf21544 100644
85
- --- a/Makefile.am
86
- +++ b/Makefile.am
87
- @@ -347,8 +347,9 @@ dist_systemunit_DATA = \
88
- units/kexec.target \
89
- units/local-fs.target \
90
- units/local-fs-pre.target \
91
- + units/initrd.target \
92
- units/initrd-fs.target \
93
- - units/root-fs.target \
94
- + units/initrd-root-fs.target \
95
- units/remote-fs.target \
96
- units/remote-fs-pre.target \
97
- units/network.target \
98
- diff --git a/man/bootup.xml b/man/bootup.xml
99
- index f65abf5..6bd22ef 100644
100
- --- a/man/bootup.xml
101
- +++ b/man/bootup.xml
102
- @@ -174,6 +174,79 @@
103
- </refsect1>
104
-
105
- <refsect1>
106
- + <title>Systemd in the Initrd</title>
107
- + <para>If the initrd creation tool used the services provided
108
- + by systemd, the default target in the initrd is the
109
- + initrd-fs.target. The process is the same as above until the basic.target is reached.
110
- + Systemd now continues to the initrd.target. If the root device could be mounted
111
- + on /sysroot, the sysroot.mount unit is active and the initrd-root-fs.target is reached.
112
- + initrd-parse-etc.service scans /sysroot/etc/fstab for the /usr mountpoint and for entries
113
- + marked with the <emphasis>x-initrd.mount</emphasis> option set. If these mountpoint are
114
- + mounted in /sysroot, the initrd-fs.target is reached.
115
- + The initrd-cleanup.service isolates to the initrd-switch-root.target,
116
- + where cleanup services can run. At the very last end
117
- + initrd-switch-root.service is activated, which will cause
118
- + the system to switch root to /sysroot.
119
- + </para>
120
- +
121
- +<programlisting>
122
- + (same as above)
123
- + :
124
- + :
125
- + v
126
- + basic.target
127
- + | emergency.service
128
- + ______________________/| |
129
- + / | v
130
- + | sysroot.mount <emphasis>emergency.target</emphasis>
131
- + | |
132
- + | v
133
- + | initrd-root-fs.target
134
- + | |
135
- + | v
136
- + | initrd-parse-etc.service
137
- + (custom initrd services) |
138
- + | v
139
- + | (sysroot-usr.mount and
140
- + | various mounts marked
141
- + | with fstab option
142
- + | x-initrd.mount)
143
- + | |
144
- + | v
145
- + | initrd-fs.target
146
- + | |
147
- + \______________________ |
148
- + \|
149
- + v
150
- + initrd.target
151
- + |
152
- + v
153
- + initrd-cleanup.service
154
- + isolates to
155
- + initrd-switch-root.target
156
- + |
157
- + v
158
- + ______________________/|
159
- + / |
160
- + | initrd-udevadm-cleanup-db.service
161
- + | |
162
- + (custom initrd services) |
163
- + | |
164
- + \______________________ |
165
- + \|
166
- + v
167
- + initrd-switch-root.target
168
- + |
169
- + v
170
- + initrd-switch-root.service
171
- + |
172
- + v
173
- + switch-root
174
- +</programlisting>
175
- + </refsect1>
176
- +
177
- +
178
- + <refsect1>
179
- <title>System Manager Shutdown</title>
180
-
181
- <para>System shutdown also consists of various target
182
- diff --git a/man/systemd.special.xml b/man/systemd.special.xml
183
- index 7b78099..67a81b6 100644
184
- --- a/man/systemd.special.xml
185
- +++ b/man/systemd.special.xml
186
- @@ -79,7 +79,7 @@
187
- <filename>remote-fs.target</filename>,
188
- <filename>remote-fs-pre.target</filename>,
189
- <filename>rescue.target</filename>,
190
- - <filename>root-fs.target</filename>,
191
- + <filename>initrd-root-fs.target</filename>,
192
- <filename>rpcbind.target</filename>,
193
- <filename>runlevel2.target</filename>,
194
- <filename>runlevel3.target</filename>,
195
- @@ -523,7 +523,7 @@
196
- </listitem>
197
- </varlistentry>
198
- <varlistentry>
199
- - <term><filename>root-fs.target</filename></term>
200
- + <term><filename>initrd-root-fs.target</filename></term>
201
- <listitem>
202
- <para>systemd automatically
203
- adds dependencies of type
204
- diff --git a/src/core/special.h b/src/core/special.h
205
- index 52e593b..c7b856e 100644
206
- --- a/src/core/special.h
207
- +++ b/src/core/special.h
208
- @@ -49,7 +49,7 @@
209
- #define SPECIAL_LOCAL_FS_TARGET "local-fs.target"
210
- #define SPECIAL_LOCAL_FS_PRE_TARGET "local-fs-pre.target"
211
- #define SPECIAL_INITRD_FS_TARGET "initrd-fs.target"
212
- -#define SPECIAL_ROOT_FS_TARGET "root-fs.target"
213
- +#define SPECIAL_INITRD_ROOT_FS_TARGET "initrd-root-fs.target"
214
- #define SPECIAL_REMOTE_FS_TARGET "remote-fs.target" /* LSB's $remote_fs */
215
- #define SPECIAL_REMOTE_FS_PRE_TARGET "remote-fs-pre.target"
216
- #define SPECIAL_SWAP_TARGET "swap.target"
217
- diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c
218
- index b4fb134..cf85d31 100644
219
- --- a/src/fstab-generator/fstab-generator.c
220
- +++ b/src/fstab-generator/fstab-generator.c
221
- @@ -199,6 +199,12 @@ static bool mount_in_initrd(struct mntent *me) {
222
- streq(me->mnt_dir, "/usr");
223
- }
224
-
225
- +static bool mount_is_rootfs(struct mntent *me) {
226
- + assert(me);
227
- +
228
- + return hasmntopt(me, "x-initrd-rootfs.mount");
229
- +}
230
- +
231
- static int add_mount(const char *what, const char *where, const char *type, const char *opts,
232
- int passno, bool noauto, bool nofail, bool automount, bool isbind,
233
- const char *pre, const char *post, const char *source) {
234
- @@ -434,6 +440,9 @@ static int parse_fstab(const char *prefix, bool initrd) {
235
- if (initrd) {
236
- post = SPECIAL_INITRD_FS_TARGET;
237
- pre = NULL;
238
- + } else if (mount_is_rootfs(me)) {
239
- + post = SPECIAL_INITRD_ROOT_FS_TARGET;
240
- + pre = NULL;
241
- } else if (mount_is_network(me)) {
242
- post = SPECIAL_REMOTE_FS_TARGET;
243
- pre = SPECIAL_REMOTE_FS_PRE_TARGET;
244
- @@ -525,7 +534,7 @@ static int parse_new_root_from_proc_cmdline(void) {
245
-
246
- log_debug("Found entry what=%s where=/sysroot type=%s", what, type);
247
- r = add_mount(what, "/sysroot", type, opts, 0, false, false, false,
248
- - false, NULL, SPECIAL_ROOT_FS_TARGET, "/proc/cmdline");
249
- + false, NULL, SPECIAL_INITRD_ROOT_FS_TARGET, "/proc/cmdline");
250
-
251
- return (r < 0) ? r : 0;
252
- }
253
- diff --git a/units/initrd-cleanup.service.in b/units/initrd-cleanup.service.in
254
- index 5bef090..218ec80 100644
255
- --- a/units/initrd-cleanup.service.in
256
- +++ b/units/initrd-cleanup.service.in
257
- @@ -10,8 +10,7 @@ Description=Cleaning Up and Shutting Down Daemons
258
- DefaultDependencies=no
259
- ConditionPathExists=/etc/initrd-release
260
- OnFailure=emergency.target
261
- -Wants=root-fs.target initrd-fs.target
262
- -After=root-fs.target initrd-fs.target
263
- +After=initrd-root-fs.target initrd-fs.target initrd.target
264
-
265
- [Service]
266
- Type=oneshot
267
- diff --git a/units/initrd-fs.target b/units/initrd-fs.target
268
- index 6ba1758..7578b88 100644
269
- --- a/units/initrd-fs.target
270
- +++ b/units/initrd-fs.target
271
- @@ -11,3 +11,4 @@ Documentation=man:systemd.special(7)
272
- OnFailure=emergency.target
273
- OnFailureIsolate=yes
274
- ConditionPathExists=/etc/initrd-release
275
- +After=initrd-parse-etc.service
276
- diff --git a/units/initrd-parse-etc.service.in b/units/initrd-parse-etc.service.in
277
- index 44fee7b..07728e2 100644
278
- --- a/units/initrd-parse-etc.service.in
279
- +++ b/units/initrd-parse-etc.service.in
280
- @@ -8,13 +8,14 @@
281
- [Unit]
282
- Description=Reload Configuration from the Real Root
283
- DefaultDependencies=no
284
- -Requires=root-fs.target
285
- -After=root-fs.target
286
- +Requires=initrd-root-fs.target
287
- +After=initrd-root-fs.target
288
- OnFailure=emergency.target
289
- ConditionPathExists=/etc/initrd-release
290
-
291
- [Service]
292
- Type=oneshot
293
- ExecStartPre=@rootbindir@/systemctl daemon-reload
294
- -ExecStart=@rootbindir@/systemctl start initrd-fs.target
295
- +# we have to retrigger initrd-fs.target after daemon-reload
296
- +ExecStart=-@rootbindir@/systemctl --no-block start initrd-fs.target
297
- ExecStart=@rootbindir@/systemctl --no-block start initrd-cleanup.service
298
- diff --git a/units/root-fs.target b/units/initrd-root-fs.target
299
- similarity index 89%
300
- rename from units/root-fs.target
301
- rename to units/initrd-root-fs.target
302
- index 1351534..cd189f0 100644
303
- --- a/units/root-fs.target
304
- +++ b/units/initrd-root-fs.target
305
- @@ -9,3 +9,5 @@
306
- Description=Initrd Root File System
307
- Documentation=man:systemd.special(7)
308
- ConditionPathExists=/etc/initrd-release
309
- +OnFailure=emergency.target
310
- +OnFailureIsolate=yes
311
- diff --git a/units/initrd-switch-root.target b/units/initrd-switch-root.target
312
- index cf646c4..f347687 100644
313
- --- a/units/initrd-switch-root.target
314
- +++ b/units/initrd-switch-root.target
315
- @@ -12,5 +12,5 @@ DefaultDependencies=no
316
- Requires=initrd-switch-root.service
317
- Before=initrd-switch-root.service
318
- AllowIsolate=yes
319
- -Wants=initrd-udevadm-cleanup-db.service root-fs.target initrd-fs.target systemd-journald.service
320
- -After=initrd-udevadm-cleanup-db.service root-fs.target initrd-fs.target emergency.service emergency.target
321
- +Wants=initrd-udevadm-cleanup-db.service initrd-root-fs.target initrd-fs.target systemd-journald.service
322
- +After=initrd-udevadm-cleanup-db.service initrd-root-fs.target initrd-fs.target emergency.service emergency.target
323
- diff --git a/units/initrd.target b/units/initrd.target
324
- new file mode 100644
325
- index 0000000..5622de4
326
- --- /dev/null
327
- +++ b/units/initrd.target
328
- @@ -0,0 +1,17 @@
329
- +# This file is part of systemd.
330
- +#
331
- +# systemd is free software; you can redistribute it and/or modify it
332
- +# under the terms of the GNU Lesser General Public License as published by
333
- +# the Free Software Foundation; either version 2.1 of the License, or
334
- +# (at your option) any later version.
335
- +
336
- +[Unit]
337
- +Description=Initrd Target
338
- +Documentation=man:systemd.special(7)
339
- +OnFailure=emergency.target
340
- +OnFailureIsolate=yes
341
- +ConditionPathExists=/etc/initrd-release
342
- +Requires=basic.target
343
- +Wants=initrd-root-fs.target initrd-fs.target initrd-parse-etc.service
344
- +After=initrd-root-fs.target initrd-fs.target basic.target rescue.service rescue.target
345
- +AllowIsolate=yes
346
- --
347
- 1.8.1
348
-
file modified
+1 -1
sources CHANGED
@@ -1 +1 @@
1
- 26a75e2a310f8c1c1ea9ec26ddb171c5 systemd-198.tar.xz
1
+ 4bb13f84ce211e93f0141774a90a2322 systemd-199.tar.xz
file modified
+12 -8
systemd.spec CHANGED
@@ -13,8 +13,8 @@
13
13
Name: systemd
14
14
Url: http://www.freedesktop.org/wiki/Software/systemd
15
15
16
- Version: 198
17
- Release: 7%{?gitcommit:.git%{gitcommit}}%{?dist}
16
+ Version: 199
17
+ Release: 1%{?gitcommit:.git%{gitcommit}}%{?dist}
18
18
# For a breakdown of the licensing, see README
19
19
License: LGPLv2+ and MIT and GPLv2+
20
20
Summary: A System and Service Manager
@@ -80,7 +80,7 @@ Provides: systemd-units = %{version}-%{release}
80
80
# part of system since f18, drop at f20
81
81
Provides: udev = %{version}
82
82
Obsoletes: udev < 183
83
- Conflicts: dracut < 026-48
83
+ Conflicts: dracut < 027
84
84
# f18 version, drop at f20
85
85
Conflicts: plymouth < 0.8.5.1
86
86
# Ensures correct multilib updates added F18, drop at F20
@@ -99,10 +99,6 @@ Provides: systemd-analyze = 198
99
99
# patches for dracut's initramfs
100
100
# remove for new git snapshots or releases
101
101
BuildRequires: git
102
- Patch13: 0013-build-sys-don-t-hard-code-binary-paths-in-initrd-.se.patch
103
- Patch45: 0045-add-initrd-fs.target-and-root-fs.target.patch
104
- Patch61: 0061-main-don-t-mount-sys-dev-and-friends-when-we-run-wit.patch
105
- Patch62: 0062-Make-initrd.target-the-default-target-in-the-initrd.patch
106
102
107
103
# kernel-install patch for grubby, drop if grubby is obsolete
108
104
Patch1000: kernel-install-grubby.patch
@@ -291,7 +287,7 @@ install -m 0644 %{SOURCE6} %{buildroot}%{_sysconfdir}/yum/protected.d/systemd.co
291
287
# kernel.core_pattern setting until systemd-coredump is a part of an actual
292
288
# systemd release and it's made clear how to get the core dumps out of the
293
289
# journal.
294
- rm -f %{buildroot}%{_prefix}/lib/sysctl.d/coredump.conf
290
+ rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-coredump.conf
295
291
296
292
# For now remove /var/log/README since we are not enabling persistant
297
293
# logging yet.
@@ -639,6 +635,7 @@ fi
639
635
%{_prefix}/lib/tmpfiles.d/x11.conf
640
636
%{_prefix}/lib/tmpfiles.d/legacy.conf
641
637
%{_prefix}/lib/tmpfiles.d/tmp.conf
638
+ %{_prefix}/lib/sysctl.d/50-default.conf
642
639
%{_prefix}/lib/systemd/system-preset/90-default.preset
643
640
%{_prefix}/lib/systemd/system-preset/90-display-manager.preset
644
641
%{_prefix}/lib/systemd/catalog/systemd.catalog
@@ -730,10 +727,14 @@ fi
730
727
%{python_sitearch}/systemd/__init__.pyo
731
728
%{python_sitearch}/systemd/_journal.so
732
729
%{python_sitearch}/systemd/_reader.so
730
+ %{python_sitearch}/systemd/_daemon.so
733
731
%{python_sitearch}/systemd/id128.so
734
732
%{python_sitearch}/systemd/journal.py
735
733
%{python_sitearch}/systemd/journal.pyc
736
734
%{python_sitearch}/systemd/journal.pyo
735
+ %{python_sitearch}/systemd/daemon.py
736
+ %{python_sitearch}/systemd/daemon.pyc
737
+ %{python_sitearch}/systemd/daemon.pyo
737
738
738
739
%files -n libgudev1
739
740
%{_libdir}/libgudev-1.0.so.*
@@ -750,6 +751,9 @@ fi
750
751
%{_libdir}/pkgconfig/gudev-1.0*
751
752
752
753
%changelog
754
+ * Tue Mar 26 2013 Lennart Poettering <lpoetter@redhat.com> - 199-1
755
+ - New upstream release
756
+
753
757
* Mon Mar 18 2013 Michal Schmidt <mschmidt@redhat.com> 198-7
754
758
- Drop /usr/s?bin/ prefixes.
755
759