[systemd/f18] Update to upstream release v201 from F19.

Michal Schmidt michich at fedoraproject.org
Wed Apr 10 12:50:29 UTC 2013


commit b3f9281de5203728c32ad9f89d523fca31665add
Author: Michal Schmidt <mschmidt at redhat.com>
Date:   Tue Apr 9 15:12:48 2013 +0200

    Update to upstream release v201 from F19.
    
    - Update to upstream release v201 from F19.
    - Back out selected changes to avoid incompatibilities in a stable release.
    - Add selected post-v201 patches from upstream.
    - Pull NM-wait-online in from network-online.target.wants (stopgap).
    - Added README.Fedora-18 describing differences from upstream.

 ...on-t-always-use-sulogin-in-rescue.service.patch |    2 +-
 ...service-sysv-remove-distribution-specific.patch |  139 +
 ...t-enable-persistent-network-device-naming.patch |   22 -
 0003-F18-re-add-http-daemon.target.patch           |   18 +-
 0004-F18-bring-back-single.service.patch           |   27 +-
 ...udev-network-device-renaming-immediately-.patch |   12 +-
 ...-udev-net_id-skip-stacked-network-devices.patch |   39 -
 ...18-explain-what-happened-to-systemctl-dot.patch |   33 +
 ...dbus-fix-serialization-of-calendar-timers.patch |   60 -
 ...edictable-net-names-opt-in-instead-of-opt.patch |   23 +
 ...call-fclose-on-NULL-in-is_pci_multifuncti.patch |   33 -
 ...heck-return-of-fopen-before-setvbuf-in-lo.patch |   25 -
 0008-keymap-Add-HP-EliteBook-8460p.patch           |   50 +
 ...> 0009-keymap-Fix-typo-in-previous-commit.patch |   23 +-
 0009-man-systemd-bootchart.xml-fix-typo.patch      |   23 -
 0010-man-systemd.unit.xml-fix-typos.patch          |   25 -
 ...int-a-nice-message-before-returning-to-in.patch |   24 +
 ...us-properly-serialize-calendar-timer-data.patch |  194 -
 ...ome-left-over-mentions-of-remote-fs-setup.patch |   37 +
 ...-avoid-creating-stale-session-state-files.patch |   46 +
 ...-Fix-device-matching-in-the-accelerometer.patch |   49 -
 ...udev-set-device-node-permissions-only-at-.patch |   58 -
 ...onour-inhibitors-when-shutting-down-or-en.patch |  239 --
 0016-man-localectl-s-set-keyboard-set-keymap.patch |   23 -
 ...-sense-of-dvorak-alt-intel-X-variant-in-m.patch |   24 -
 ...nt-that-JoinControllers-might-be-ineffect.patch |   38 -
 ...-Type-forking-services-ignore-exit-status.patch |   46 -
 ...on-t-hit-an-assert-if-we-try-to-reboot-an.patch |   26 -
 ...onour-inhibitors-only-when-running-unpriv.patch |   71 -
 ...re-non-tty-non-x11-session-when-checking-.patch |   31 -
 ...load-font-to-dev-tty1-and-copy-it-to-all-.patch |  151 -
 ...n-wiki-documentation-about-network.target.patch |   41 -
 ...ink-in-API-FS-documentation-from-the-wiki.patch |   89 -
 0026-vconsole-copy-font-to-tty1-15.patch           |  117 -
 0027-localectl-fix-typo-in-man-page.patch          |   24 -
 ...rrect-order-of-precedence-for-fstab-units.patch |   33 -
 ...eference-to-new-wiki-page-to-all-api-moun.patch |  113 -
 ...erence-to-wiki-doc-from-DefaultController.patch |   47 -
 ...e-dev-vcsa1-15-to-check-for-allocated-VTs.patch |   30 -
 ...re-use-correct-argument-of-type-JobResult.patch |   23 -
 0033-journalctl-quit-on-I-O-error.patch            |   39 -
 ...-core-do-not-make-sockets-dependent-on-lo.patch |   25 -
 ...nt-replace-specifiers-in-path-unit-s-Unit.patch |   45 -
 0036-load-fragment-fix-bad-memory-access.patch     |   23 -
 ...-the-final-umount-loop-don-t-use-MNT_FORC.patch |   33 -
 ...gnore-loop-devices-without-a-backing-file.patch |   35 -
 ...oginctl-cgls-do-not-ellipsize-cgroup-memb.patch |  777 ----
 0040-man-typo-fixes.patch                          |   39 -
 ...it-s-PartOf-and-ConsistsOf-deps-to-intros.patch |   29 -
 ...ll-unit-settings-that-take-lists-allow-th.patch | 1934 ----------
 ...perly-signal-permanent-failure-of-a-servi.patch |   38 -
 0044-util-fix-bad-memory-access.patch              |   22 -
 0045-hwdb-update.patch                             | 3691 --------------------
 ...awn-add-audit-caps-to-default-set-to-keep.patch |   62 -
 ...te-suggested-yum-command-line-in-nspawn-1.patch |   33 -
 ...pfiles-do-not-make-run-nologin-executable.patch |   20 -
 ...-shutdown-loop-convert-to-enumerate-match.patch |   45 -
 0050-Fix-some-typos.patch                          |   37 -
 ...y-the-meaning-of-timeout-0-for-password-a.patch |   42 -
 ...c-combine-Wformat-options-into-one-argume.patch |   29 -
 ...-allow-one-shutdown-sleep-action-to-be-qu.patch |  206 --
 0054-hwdb-update.patch                             |  720 ----
 ...-really-stop-watchdog-timer-when-stopping.patch |   27 -
 ...e-sure-the-watchdog-timer-is-not-restarte.patch |   31 -
 ...ore-Set-source-for-mountinfo-.mount-units.patch |   48 -
 ...temd.exec-explicit-Environment-assignment.patch |   54 -
 ...on-proc-self-mountinfo-in-systemd.mount-5.patch |   34 -
 ...ess-Delete-debugging-message-logged-as-an.patch |   24 -
 ...don-t-need-that-many-debug-messages-by-de.patch |   40 -
 ...-Resumed-signal-after-we-come-back-from-s.patch |  112 -
 ...UnlockSessions-clal-to-complement-LockSes.patch |   96 -
 ...ow-seat-master-and-uaccess-devices-in-sea.patch |   50 -
 ...tl-don-t-show-UACCESS-info-in-device-tree.patch |   46 -
 0066-logind-rework-delay-inhibition-logic.patch    |  447 ---
 0067-tmpfiles-introduce-type-X.patch               |  332 --
 ...-job-fix-merging-with-ignore-dependencies.patch |   24 -
 ...me-stdout-is-always-writable-if-it-does-n.patch |   39 -
 ...mention-that-PrivateTmp-means-var-tmp-too.patch |   36 -
 0072-keymap-Add-HP-HDX-9494NR.patch                |   63 -
 ...eymap-Add-HP-HDX-9494NR-Fix-touchpad-keys.patch |   23 -
 90-default.preset                                  |   10 +
 README.Fedora-18                                   |   33 +
 kernel-install-grubby.patch                        |   43 +
 sources                                            |    2 +-
 systemd.spec                                       |  444 ++--
 udlfb.conf                                         |    2 -
 86 files changed, 703 insertions(+), 11409 deletions(-)
---
diff --git a/0001-F18-units-don-t-always-use-sulogin-in-rescue.service.patch b/0001-F18-units-don-t-always-use-sulogin-in-rescue.service.patch
index 5c0adbc..8ca99d0 100644
--- a/0001-F18-units-don-t-always-use-sulogin-in-rescue.service.patch
+++ b/0001-F18-units-don-t-always-use-sulogin-in-rescue.service.patch
@@ -1,4 +1,4 @@
-From e08e3216df4db1f082fa667d559c0e5a17c3b4fb Mon Sep 17 00:00:00 2001
+From 4ed0d8c26467979128cdbb53291351f1a8c3b6d0 Mon Sep 17 00:00:00 2001
 From: Michal Schmidt <mschmidt at redhat.com>
 Date: Fri, 11 Jan 2013 22:36:06 +0100
 Subject: [PATCH] (F18) units: don't always use sulogin in rescue.service
diff --git a/0002-F18-Revert-service-sysv-remove-distribution-specific.patch b/0002-F18-Revert-service-sysv-remove-distribution-specific.patch
new file mode 100644
index 0000000..ea17b7c
--- /dev/null
+++ b/0002-F18-Revert-service-sysv-remove-distribution-specific.patch
@@ -0,0 +1,139 @@
+From c6ee0089d433ce746625ac05a84de731272db39b Mon Sep 17 00:00:00 2001
+From: Michal Schmidt <mschmidt at redhat.com>
+Date: Tue, 9 Apr 2013 11:06:56 +0200
+Subject: [PATCH] (F18) Revert "service: sysv - remove distribution specific
+ targets"
+
+This reverts commit 3f141375cb4ff4f850b267258e776c90df594990.
+---
+ Makefile.am                      |  1 +
+ man/systemd.special.xml          | 28 ++++++++++++++++++++++++++++
+ src/core/service.c               |  8 ++++++++
+ src/core/special.h               |  2 ++
+ units/mail-transfer-agent.target | 13 +++++++++++++
+ 5 files changed, 52 insertions(+)
+ create mode 100644 units/mail-transfer-agent.target
+
+diff --git a/Makefile.am b/Makefile.am
+index 21a0e4b..57be908 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -361,6 +361,7 @@ dist_systemunit_DATA = \
+ 	units/network-online.target \
+ 	units/nss-lookup.target \
+ 	units/nss-user-lookup.target \
++	units/mail-transfer-agent.target \
+ 	units/hibernate.target \
+ 	units/hybrid-sleep.target \
+ 	units/poweroff.target \
+diff --git a/man/systemd.special.xml b/man/systemd.special.xml
+index cd0f5aa..b055c6b 100644
+--- a/man/systemd.special.xml
++++ b/man/systemd.special.xml
+@@ -69,6 +69,7 @@
+                 <filename>kexec.target</filename>,
+                 <filename>local-fs.target</filename>,
+                 <filename>local-fs-pre.target</filename>,
++                <filename>mail-transfer-agent.target</filename>,
+                 <filename>multi-user.target</filename>,
+                 <filename>network.target</filename>,
+                 <filename>network-online.target</filename>,
+@@ -209,6 +210,14 @@
+                                         <filename>gdm.service</filename>
+                                         or a similar display manager
+                                         service.</para>
++                                        <para>systemd automatically
++                                        adds dependencies of type
++                                        After for this target unit to
++                                        all SysV init script service
++                                        units with a LSB header
++                                        referring to the
++                                        <literal>$x-display-manager</literal>
++                                        facility.</para>
+                                 </listitem>
+                         </varlistentry>
+                         <varlistentry>
+@@ -366,6 +375,25 @@
+                                 </listitem>
+                         </varlistentry>
+                         <varlistentry>
++                                <term><filename>mail-transfer-agent.target</filename></term>
++                                <listitem>
++                                        <para>The mail transfer agent
++                                        (MTA) service. Usually this
++                                        should pull-in all units
++                                        necessary for
++                                        sending/receiving mails on the
++                                        local host.</para>
++
++                                        <para>systemd automatically
++                                        adds dependencies of type
++                                        After for this target unit to
++                                        all SysV init script service
++                                        units with an LSB header
++                                        referring to the
++                                        <literal>$mail-transfer-agent</literal>.</para>
++                                </listitem>
++                        </varlistentry>
++                        <varlistentry>
+                                 <term><filename>multi-user.target</filename></term>
+                                 <listitem>
+                                         <para>A special target unit
+diff --git a/src/core/service.c b/src/core/service.c
+index a104b30..29e3504 100644
+--- a/src/core/service.c
++++ b/src/core/service.c
+@@ -355,6 +355,13 @@ static int sysv_translate_facility(const char *name, const char *filename, char
+                 "remote_fs",            SPECIAL_REMOTE_FS_TARGET,
+                 "syslog",               NULL,
+                 "time",                 SPECIAL_TIME_SYNC_TARGET,
++
++                /* common extensions */
++                "mail-transfer-agent",  SPECIAL_MAIL_TRANSFER_AGENT_TARGET,
++                "x-display-manager",    SPECIAL_DISPLAY_MANAGER_SERVICE,
++                "null",                 NULL,
++                "mail-transport-agent", SPECIAL_MAIL_TRANSFER_AGENT_TARGET,
++                "smtp",                 SPECIAL_MAIL_TRANSFER_AGENT_TARGET,
+         };
+ 
+         unsigned i;
+@@ -805,6 +812,7 @@ static int service_load_sysv_path(Service *s, const char *path) {
+                                         }
+ 
+                                         r = sysv_translate_facility(n, path_get_file_name(path), &m);
++
+                                         if (r < 0) {
+                                                 log_error_unit(u->id,
+                                                                "[%s:%u] Failed to translate LSB dependency %s, ignoring: %s",
+diff --git a/src/core/special.h b/src/core/special.h
+index a9b50bc..d5a0fe8 100644
+--- a/src/core/special.h
++++ b/src/core/special.h
+@@ -63,6 +63,8 @@
+ #define SPECIAL_NSS_LOOKUP_TARGET "nss-lookup.target"     /* LSB's $named */
+ #define SPECIAL_RPCBIND_TARGET "rpcbind.target"           /* LSB's $portmap */
+ #define SPECIAL_TIME_SYNC_TARGET "time-sync.target"       /* LSB's $time */
++#define SPECIAL_DISPLAY_MANAGER_SERVICE "display-manager.service" /* Common extension of LSB */
++#define SPECIAL_MAIL_TRANSFER_AGENT_TARGET "mail-transfer-agent.target" /* Common extension of LSB */
+ 
+ /*
+  * Rules regarding adding further high level targets like the above:
+diff --git a/units/mail-transfer-agent.target b/units/mail-transfer-agent.target
+new file mode 100644
+index 0000000..d2f24d1
+--- /dev/null
++++ b/units/mail-transfer-agent.target
+@@ -0,0 +1,13 @@
++#  This file is part of systemd.
++#
++#  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.
++
++# This exists mostly for compatibility with SysV/LSB units, and
++# implementations lacking socket/bus activation.
++
++[Unit]
++Description=Mail Transfer Agent
++Documentation=man:systemd.special(7)
diff --git a/0003-F18-re-add-http-daemon.target.patch b/0003-F18-re-add-http-daemon.target.patch
index 09875c1..f05950a 100644
--- a/0003-F18-re-add-http-daemon.target.patch
+++ b/0003-F18-re-add-http-daemon.target.patch
@@ -1,4 +1,4 @@
-From fdc3644c14c5c3ace8fac22c87a2a3dcc0da5a64 Mon Sep 17 00:00:00 2001
+From b8a8c9fed5e35c773df624bc51165d91a73396b3 Mon Sep 17 00:00:00 2001
 From: Michal Schmidt <mschmidt at redhat.com>
 Date: Fri, 11 Jan 2013 23:22:49 +0100
 Subject: [PATCH] (F18) re-add http-daemon.target
@@ -15,10 +15,10 @@ In case someone uses the odd facility names in F18. Who knows.
  create mode 100644 units/http-daemon.target
 
 diff --git a/Makefile.am b/Makefile.am
-index 004945f..26d4672 100644
+index 57be908..ce56d05 100644
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -262,6 +262,7 @@ dist_systemunit_DATA = \
+@@ -364,6 +364,7 @@ dist_systemunit_DATA = \
  	units/mail-transfer-agent.target \
  	units/hibernate.target \
  	units/hybrid-sleep.target \
@@ -27,7 +27,7 @@ index 004945f..26d4672 100644
  	units/reboot.target \
  	units/rescue.target \
 diff --git a/man/systemd.special.xml b/man/systemd.special.xml
-index 9ea288e..d3b6181 100644
+index b055c6b..2a1c320 100644
 --- a/man/systemd.special.xml
 +++ b/man/systemd.special.xml
 @@ -63,6 +63,7 @@
@@ -36,13 +36,13 @@ index 9ea288e..d3b6181 100644
                  <filename>hibernate.target</filename>,
 +                <filename>http-daemon.target</filename>,
                  <filename>hybrid-sleep.target</filename>,
+                 <filename>initrd-fs.target</filename>,
                  <filename>kbrequest.target</filename>,
-                 <filename>kexec.target</filename>,
 diff --git a/src/core/service.c b/src/core/service.c
-index 2a4e691..5db72b8 100644
+index 29e3504..e9e42b4 100644
 --- a/src/core/service.c
 +++ b/src/core/service.c
-@@ -366,6 +366,11 @@ static int sysv_translate_facility(const char *name, const char *filename, char
+@@ -362,6 +362,11 @@ static int sysv_translate_facility(const char *name, const char *filename, char
                  "null",                 NULL,
                  "mail-transport-agent", SPECIAL_MAIL_TRANSFER_AGENT_TARGET,
                  "smtp",                 SPECIAL_MAIL_TRANSFER_AGENT_TARGET,
@@ -55,10 +55,10 @@ index 2a4e691..5db72b8 100644
  
          unsigned i;
 diff --git a/src/core/special.h b/src/core/special.h
-index ef72260..15aa6ca 100644
+index d5a0fe8..570cecc 100644
 --- a/src/core/special.h
 +++ b/src/core/special.h
-@@ -87,6 +87,7 @@
+@@ -91,6 +91,7 @@
   * of a kind. .target units can be used to support multiple
   * implementations that can run side-by-side.
   */
diff --git a/0004-F18-bring-back-single.service.patch b/0004-F18-bring-back-single.service.patch
index d0dbe2d..6d6ebed 100644
--- a/0004-F18-bring-back-single.service.patch
+++ b/0004-F18-bring-back-single.service.patch
@@ -1,24 +1,23 @@
-From 644f61739799fa3c4b9a0e7d56b48bc386705138 Mon Sep 17 00:00:00 2001
+From 86a488ac3416b63b2146e2833ef692c76ae1decf Mon Sep 17 00:00:00 2001
 From: Michal Schmidt <mschmidt at redhat.com>
 Date: Fri, 11 Jan 2013 23:47:11 +0100
 Subject: [PATCH] (F18) bring back single.service
 
 ---
- Makefile.am | 4 ++++
- 1 file changed, 4 insertions(+)
+ Makefile.am | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/Makefile.am b/Makefile.am
-index 26d4672..28d8d44 100644
+index ce56d05..18b9c4c 100644
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -4080,6 +4080,10 @@ if HAVE_KMOD
- 		$(LN_S) ../systemd-modules-load.service systemd-modules-load.service )
- endif
+@@ -4011,7 +4011,8 @@ endif
+ SYSTEM_UNIT_ALIASES += \
+ 	graphical.target default.target \
+ 	reboot.target ctrl-alt-del.target \
+-	getty at .service autovt at .service
++	getty at .service autovt at .service \
++	rescue.service single.service
  
-+	( cd $(DESTDIR)$(systemunitdir) && \
-+		rm -f single.service && \
-+		$(LN_S) rescue.service single.service )
-+
- install-exec-hook: $(INSTALL_EXEC_HOOKS)
- 
- uninstall-hook: $(UNINSTALL_DATA_HOOKS) $(UNINSTALL_EXEC_HOOKS)
+ USER_UNIT_ALIASES += \
+ 	$(systemunitdir)/shutdown.target shutdown.target \
diff --git a/0013-F18-Revert-udev-network-device-renaming-immediately-.patch b/0005-F18-Revert-udev-network-device-renaming-immediately-.patch
similarity index 91%
rename from 0013-F18-Revert-udev-network-device-renaming-immediately-.patch
rename to 0005-F18-Revert-udev-network-device-renaming-immediately-.patch
index 26675bc..45806fa 100644
--- a/0013-F18-Revert-udev-network-device-renaming-immediately-.patch
+++ b/0005-F18-Revert-udev-network-device-renaming-immediately-.patch
@@ -1,4 +1,4 @@
-From 6cebb9b39ec04ba11c81dca9b0c10faa51929d72 Mon Sep 17 00:00:00 2001
+From 19e22f2480911d134cc0e02413591a9e8d187092 Mon Sep 17 00:00:00 2001
 From: Michal Schmidt <mschmidt at redhat.com>
 Date: Mon, 28 Jan 2013 14:15:56 +0100
 Subject: [PATCH] (F18) Revert "udev: network device renaming - immediately
@@ -21,7 +21,7 @@ BZ: https://bugzilla.redhat.com/show_bug.cgi?id=896135
  1 file changed, 51 insertions(+), 3 deletions(-)
 
 diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
-index 5eedf4f..8aedc5f 100644
+index 3db2cb7..4253bbd 100644
 --- a/src/udev/udev-event.c
 +++ b/src/udev/udev-event.c
 @@ -750,7 +750,14 @@ static int rename_netif(struct udev_event *event)
@@ -40,8 +40,8 @@ index 5eedf4f..8aedc5f 100644
          log_debug("changing net interface name from '%s' to '%s'\n",
                    udev_device_get_sysname(dev), event->name);
 @@ -766,12 +773,53 @@ static int rename_netif(struct udev_event *event)
-         util_strscpy(ifr.ifr_name, IFNAMSIZ, udev_device_get_sysname(dev));
-         util_strscpy(ifr.ifr_newname, IFNAMSIZ, event->name);
+         strscpy(ifr.ifr_name, IFNAMSIZ, udev_device_get_sysname(dev));
+         strscpy(ifr.ifr_newname, IFNAMSIZ, event->name);
          err = ioctl(sk, SIOCSIFNAME, &ifr);
 -        if (err >= 0) {
 +        if (err == 0) {
@@ -72,8 +72,8 @@ index 5eedf4f..8aedc5f 100644
 +        print_kmsg("renamed network interface %s to %s\n", ifr.ifr_name, ifr.ifr_newname);
 +
 +        /* wait a maximum of 90 seconds for our target to become available */
-+        util_strscpy(ifr.ifr_name, IFNAMSIZ, ifr.ifr_newname);
-+        util_strscpy(ifr.ifr_newname, IFNAMSIZ, event->name);
++        strscpy(ifr.ifr_name, IFNAMSIZ, ifr.ifr_newname);
++        strscpy(ifr.ifr_newname, IFNAMSIZ, event->name);
 +        loop = 90 * 20;
 +        while (loop--) {
 +                const struct timespec duration = { 0, 1000 * 1000 * 1000 / 20 };
diff --git a/0006-F18-explain-what-happened-to-systemctl-dot.patch b/0006-F18-explain-what-happened-to-systemctl-dot.patch
new file mode 100644
index 0000000..9db0334
--- /dev/null
+++ b/0006-F18-explain-what-happened-to-systemctl-dot.patch
@@ -0,0 +1,33 @@
+From e96d07c92556e63584e0e63f47a40af6598f77dd Mon Sep 17 00:00:00 2001
+From: Michal Schmidt <mschmidt at redhat.com>
+Date: Tue, 9 Apr 2013 11:27:22 +0200
+Subject: [PATCH] (F18): explain what happened to 'systemctl dot'
+
+---
+ src/systemctl/systemctl.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
+index fd9f580..9a5810d 100644
+--- a/src/systemctl/systemctl.c
++++ b/src/systemctl/systemctl.c
+@@ -895,6 +895,11 @@ static int list_dependencies(DBusConnection *bus, char **args) {
+         return list_dependencies_one(bus, u, 0, NULL, 0);
+ }
+ 
++static int dot(DBusConnection *bus, char **args) {
++        log_info("The 'systemctl dot' command has been removed. Use 'systemd-analyze dot' instead.");
++        return 0;
++}
++
+ static int list_jobs(DBusConnection *bus, char **args) {
+         _cleanup_dbus_message_unref_ DBusMessage *reply = NULL;
+         DBusMessageIter iter, sub, sub2;
+@@ -5202,6 +5207,7 @@ static int systemctl_main(DBusConnection *bus, int argc, char *argv[], DBusError
+                 { "status",                MORE,  1, show              },
+                 { "help",                  MORE,  2, show              },
+                 { "dump",                  EQUAL, 1, dump              },
++                { "dot",                   EQUAL, 1, dot               },
+                 { "snapshot",              LESS,  2, snapshot          },
+                 { "delete",                MORE,  2, delete_snapshot   },
+                 { "daemon-reload",         EQUAL, 1, daemon_reload     },
diff --git a/0007-F18-Make-predictable-net-names-opt-in-instead-of-opt.patch b/0007-F18-Make-predictable-net-names-opt-in-instead-of-opt.patch
new file mode 100644
index 0000000..5950097
--- /dev/null
+++ b/0007-F18-Make-predictable-net-names-opt-in-instead-of-opt.patch
@@ -0,0 +1,23 @@
+From d8dda5789feeac657aa9003e6ae843f3a7c35f28 Mon Sep 17 00:00:00 2001
+From: Michal Schmidt <mschmidt at redhat.com>
+Date: Tue, 9 Apr 2013 11:31:07 +0200
+Subject: [PATCH] (F18): Make predictable net names opt-in instead of opt-out
+
+Users can simply pass "net.ifnames=1" on the kernel command line.
+---
+ rules/80-net-name-slot.rules | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/rules/80-net-name-slot.rules b/rules/80-net-name-slot.rules
+index 15b5bc4..c0f66d1 100644
+--- a/rules/80-net-name-slot.rules
++++ b/rules/80-net-name-slot.rules
+@@ -5,7 +5,7 @@ SUBSYSTEM!="net", GOTO="net_name_slot_end"
+ NAME!="", GOTO="net_name_slot_end"
+ 
+ IMPORT{cmdline}="net.ifnames"
+-ENV{net.ifnames}=="0", GOTO="net_name_slot_end"
++ENV{net.ifnames}!="1", GOTO="net_name_slot_end"
+ 
+ NAME=="", ENV{ID_NET_NAME_ONBOARD}!="", NAME="$env{ID_NET_NAME_ONBOARD}"
+ NAME=="", ENV{ID_NET_NAME_SLOT}!="", NAME="$env{ID_NET_NAME_SLOT}"
diff --git a/0008-keymap-Add-HP-EliteBook-8460p.patch b/0008-keymap-Add-HP-EliteBook-8460p.patch
new file mode 100644
index 0000000..fbbb659
--- /dev/null
+++ b/0008-keymap-Add-HP-EliteBook-8460p.patch
@@ -0,0 +1,50 @@
+From dbe6267c974f29f3357cdf8b1c26de9d89040d6c Mon Sep 17 00:00:00 2001
+From: Pali Rohar <pali.rohar at gmail.com>
+Date: Tue, 9 Apr 2013 15:32:22 +0200
+Subject: [PATCH] keymap: Add HP EliteBook 8460p
+
+Taken from
+https://code.launchpad.net/~pali/ubuntu/raring/udev/hp-elitebook-8460p/+merge/157420
+
+Signed-off-by: Martin Pitt <martinpitt at gnome.org>
+(cherry picked from commit 72bd03c636b72156e93ea43886b0b54d96446d27)
+---
+ Makefile.am                             | 1 +
+ keymaps/hewlett-packard_elitebook-8460p | 3 +++
+ src/udev/keymap/95-keymap.rules         | 1 +
+ 3 files changed, 5 insertions(+)
+ create mode 100644 keymaps/hewlett-packard_elitebook-8460p
+
+diff --git a/Makefile.am b/Makefile.am
+index 18b9c4c..c192cb3 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2400,6 +2400,7 @@ dist_udevkeymap_DATA = \
+ 	keymaps/hewlett-packard-tablet \
+ 	keymaps/hewlett-packard-tx2 \
+ 	keymaps/hewlett-packard_elitebook-8440p \
++	keymaps/hewlett-packard_elitebook-8460p \
+ 	keymaps/hewlett-packard-hdx9494nr \
+ 	keymaps/ibm-thinkpad-usb-keyboard-trackpoint \
+ 	keymaps/inventec-symphony_6.0_7.0 \
+diff --git a/keymaps/hewlett-packard_elitebook-8460p b/keymaps/hewlett-packard_elitebook-8460p
+new file mode 100644
+index 0000000..1fe1b72
+--- /dev/null
++++ b/keymaps/hewlett-packard_elitebook-8460p
+@@ -0,0 +1,3 @@
++0xF8 wlan # Wireless HW switch button
++0xB3 prog1 # Fn+F11 - Ambient Light Sensor button
++0xB1 prog2 # Fn+ESC - System information button
+diff --git a/src/udev/keymap/95-keymap.rules b/src/udev/keymap/95-keymap.rules
+index 4e0ddfc..cc57cb0 100644
+--- a/src/udev/keymap/95-keymap.rules
++++ b/src/udev/keymap/95-keymap.rules
+@@ -100,6 +100,7 @@ ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="Presario 2100*"
+ ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP G62 Notebook PC", RUN+="keymap $name 0xB2 www"
+ ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP ProBook*", RUN+="keymap $name 0xF8 rfkill 0xB2 www"
+ ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP EliteBook 8440p", RUN+="keymap $name hewlett-packard_elitebook-8440p"
++ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP EliteBook 8446p", RUN+="keymap $name hewlett-packard_elitebook-8460p"
+ ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HDX9494NR", RUN+="keymap $name hewlett-packard-hdx9494nr"
+ # HP Pavillion dv6315ea has empty DMI_VENDOR
+ ATTR{[dmi/id]board_vendor}=="Quanta", ATTR{[dmi/id]board_name}=="30B7", ATTR{[dmi/id]board_version}=="65.2B", RUN+="keymap $name 0x88 media" # "quick play
diff --git a/0071-keymap-Add-support-for-the-brower-hotkey-on-the-HP-P.patch b/0009-keymap-Fix-typo-in-previous-commit.patch
similarity index 57%
rename from 0071-keymap-Add-support-for-the-brower-hotkey-on-the-HP-P.patch
rename to 0009-keymap-Fix-typo-in-previous-commit.patch
index 12f0b54..c0ea1dc 100644
--- a/0071-keymap-Add-support-for-the-brower-hotkey-on-the-HP-P.patch
+++ b/0009-keymap-Fix-typo-in-previous-commit.patch
@@ -1,24 +1,23 @@
-From f881e306873dfe9deead58c73e6fde3b759e720c Mon Sep 17 00:00:00 2001
-From: Ayan George <ayan.george at canonical.com>
-Date: Mon, 28 Jan 2013 07:30:01 +0100
-Subject: [PATCH] keymap: Add support for the brower hotkey on the HP ProBook
+From 771fe2176d5e917dc16b7a0f46e453b8bc06ad5b Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martinpitt at gnome.org>
+Date: Tue, 9 Apr 2013 15:44:41 +0200
+Subject: [PATCH] keymap: Fix typo in previous commit (cherry picked from
+ commit c8f5f5e72841d7b21a618507170b973c049f12ef)
 
-https://bugs.launchpad.net/bugs/1105191
-(cherry picked from commit c437b20d6efcbd14b086b93de8633d3c23eee811)
 ---
  src/udev/keymap/95-keymap.rules | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/udev/keymap/95-keymap.rules b/src/udev/keymap/95-keymap.rules
-index 347b5a1..945b131 100644
+index cc57cb0..33baa72 100644
 --- a/src/udev/keymap/95-keymap.rules
 +++ b/src/udev/keymap/95-keymap.rules
-@@ -96,7 +96,7 @@ ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*2510p*|*2530p
- ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*[tT][xX]2*", RUN+="keymap $name hewlett-packard-tx2"
- ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="Presario 2100*", RUN+="keymap $name hewlett-packard-presario-2100"
+@@ -100,7 +100,7 @@ ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="Presario 2100*"
  ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP G62 Notebook PC", RUN+="keymap $name 0xB2 www"
--ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP ProBook*", RUN+="keymap $name 0xF8 rfkill"
-+ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP ProBook*", RUN+="keymap $name 0xF8 rfkill 0xB2 www"
+ ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP ProBook*", RUN+="keymap $name 0xF8 rfkill 0xB2 www"
  ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP EliteBook 8440p", RUN+="keymap $name hewlett-packard_elitebook-8440p"
+-ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP EliteBook 8446p", RUN+="keymap $name hewlett-packard_elitebook-8460p"
++ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP EliteBook 8460p", RUN+="keymap $name hewlett-packard_elitebook-8460p"
+ ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HDX9494NR", RUN+="keymap $name hewlett-packard-hdx9494nr"
  # HP Pavillion dv6315ea has empty DMI_VENDOR
  ATTR{[dmi/id]board_vendor}=="Quanta", ATTR{[dmi/id]board_name}=="30B7", ATTR{[dmi/id]board_version}=="65.2B", RUN+="keymap $name 0x88 media" # "quick play
diff --git a/0010-shutdown-print-a-nice-message-before-returning-to-in.patch b/0010-shutdown-print-a-nice-message-before-returning-to-in.patch
new file mode 100644
index 0000000..69ccca0
--- /dev/null
+++ b/0010-shutdown-print-a-nice-message-before-returning-to-in.patch
@@ -0,0 +1,24 @@
+From 1e3ca980fad088ea532596c5f5bbfdda27e6730b Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Tue, 9 Apr 2013 18:29:24 +0200
+Subject: [PATCH] shutdown: print a nice message before returning to initrd
+ (cherry picked from commit 30d743f43007ed5a3db1f9a053b6d87c0940adb2)
+
+---
+ src/core/shutdown.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/core/shutdown.c b/src/core/shutdown.c
+index 86ea054..2db761d 100644
+--- a/src/core/shutdown.c
++++ b/src/core/shutdown.c
+@@ -274,6 +274,9 @@ int main(int argc, char *argv[]) {
+ 
+                 if (prepare_new_root() >= 0 &&
+                     pivot_to_new_root() >= 0) {
++
++                        log_info("Returning to initrd...");
++
+                         execv("/shutdown", argv);
+                         log_error("Failed to execute shutdown binary: %m");
+                 }
diff --git a/0011-units-fix-some-left-over-mentions-of-remote-fs-setup.patch b/0011-units-fix-some-left-over-mentions-of-remote-fs-setup.patch
new file mode 100644
index 0000000..5f74517
--- /dev/null
+++ b/0011-units-fix-some-left-over-mentions-of-remote-fs-setup.patch
@@ -0,0 +1,37 @@
+From 49244c428ebc6d584fb0a2795b4b9db306a165d3 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Tue, 9 Apr 2013 19:05:49 +0200
+Subject: [PATCH] units: fix some left-over mentions of remote-fs-setup.target
+ (cherry picked from commit 8df31a9c980009d8a4e0ca51cc31174efb7e25c9)
+
+---
+ man/systemd.special.xml | 2 +-
+ units/remote-fs.target  | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/man/systemd.special.xml b/man/systemd.special.xml
+index 2a1c320..08adbf4 100644
+--- a/man/systemd.special.xml
++++ b/man/systemd.special.xml
+@@ -966,7 +966,7 @@
+                                         to be pulled in by the first
+                                         remote mount showing up it
+                                         should use
+-                                        <filename>remote-fs-setup.target</filename>
++                                        <filename>network-online.target</filename>
+                                         (see above).</para>
+ 
+                                         <para>Again, this target unit
+diff --git a/units/remote-fs.target b/units/remote-fs.target
+index e867b8d..09213e8 100644
+--- a/units/remote-fs.target
++++ b/units/remote-fs.target
+@@ -8,7 +8,7 @@
+ [Unit]
+ Description=Remote File Systems
+ Documentation=man:systemd.special(7)
+-After=remote-fs-pre.target remote-fs-setup.target
++After=remote-fs-pre.target
+ 
+ [Install]
+ WantedBy=multi-user.target
diff --git a/0012-logind-avoid-creating-stale-session-state-files.patch b/0012-logind-avoid-creating-stale-session-state-files.patch
new file mode 100644
index 0000000..173d339
--- /dev/null
+++ b/0012-logind-avoid-creating-stale-session-state-files.patch
@@ -0,0 +1,46 @@
+From ef563b92ef8a2c1f816eb1e7574c44b2c75d9144 Mon Sep 17 00:00:00 2001
+From: Fedora systemd team <systemd-maint at redhat.com>
+Date: Wed, 10 Apr 2013 09:49:24 +0200
+Subject: [PATCH] logind: avoid creating stale session state files
+
+There were old session state files accumulating in /run/systemd/session.
+They confused e.g. "reboot", which thought there were still users logged
+in. The files got created like this:
+
+session_stop(Session *s) ->
+        ...
+        unlink(s->state_file);
+        ...
+        seat_set_active(s->seat, NULL) ->
+                session_save(...);  /* re-creates the state file we just
+                                       unlinked */
+
+Fix it simply by clearing the s->started flag earlier to prevent
+any further writes of the state file (session_save() checks the flag).
+(cherry picked from commit 50fb97935d689a520251b2d543599be14bdfd0ed)
+---
+ src/login/logind-session.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/login/logind-session.c b/src/login/logind-session.c
+index 97c24d0..bf8775b 100644
+--- a/src/login/logind-session.c
++++ b/src/login/logind-session.c
+@@ -710,6 +710,8 @@ int session_stop(Session *s) {
+         if (s->started)
+                 session_send_signal(s, false);
+ 
++        s->started = false;
++
+         if (s->seat) {
+                 if (s->seat->active == s)
+                         seat_set_active(s->seat, NULL);
+@@ -721,8 +723,6 @@ int session_stop(Session *s) {
+         user_send_changed(s->user, "Sessions\0");
+         user_save(s->user);
+ 
+-        s->started = false;
+-
+         return r;
+ }
+ 
diff --git a/90-default.preset b/90-default.preset
index 9825184..688a210 100644
--- a/90-default.preset
+++ b/90-default.preset
@@ -8,6 +8,8 @@ enable crond.*
 enable chronyd.service
 enable rpcbind.*
 enable NetworkManager.service
+enable ModemManager.service
+enable nm_dispatcher.service
 enable auditd.service
 enable restorecond.service
 enable bluetooth.*
@@ -44,6 +46,13 @@ enable spice-vdagentd.service
 # https://bugzilla.redhat.com/show_bug.cgi?id=885406
 enable qemu-guest-agent.service
 
+# https://bugzilla.redhat.com/show_bug.cgi?id=928726
+enable dnf-makecache.timer
+
+# https://bugzilla.redhat.com/show_bug.cgi?id=929403
+enable initial-setup-graphical.service
+enable initial-setup-text.service
+
 # Hardware
 enable gpm.*
 enable gpsd.*
@@ -78,6 +87,7 @@ enable upower.service
 enable udisks2.service
 enable polkit.service
 enable packagekit-offline-update.service
+enable PackageKit.service
 
 # Enforce Fedora's disable-by-default policy
 disable *
diff --git a/README.Fedora-18 b/README.Fedora-18
new file mode 100644
index 0000000..e73adb1
--- /dev/null
+++ b/README.Fedora-18
@@ -0,0 +1,33 @@
+Fedora 18 was released with systemd-195. In subsequent F18 updates systemd has
+been rebased to a newer upstream version. Several of the upstream changes could
+introduce incompatible behavior within a Fedora release. Care has been taken
+to avoid adding such changes in the stable Fedora updates. This leads to the
+following areas where systemd in Fedora 18 differs from the upstream version:
+
+- rescue.service can start sushell if configured so by /etc/sysconfig/init.
+  Upstream supports only sulogin.
+
+- http-daemon.target, mail-transfer-agent.target, the LSB facilities "httpd",
+  "MTA", "smtpdaemon", "mail-transfer-agent", "mail-transport-agent", "smtp",
+  "x-display-manager" were removed upstream, but they are preserved in
+  Fedora 18.
+
+- The alias "single.service" for "rescue.service" is provided.
+
+- A hacky workaround that allows udev to rename network interfaces into
+  kernel's ethX namespace has been re-added. This is to support users who still
+  rely on udev rules such as 70-persistent-net.rules generated in previous
+  Fedora releases to name their network interfaces. Note that the workaround is
+  only temporary and will go away in a future Fedora release. Also note that
+  due to unavoidable race conditions, the workaround can still fail
+  occasionally (causing network interfaces to be named renameX).
+  To be on the safe side it is recommended to change any present network
+  interface naming udev rules to use network interface names that cannot
+  collide with kernel generated names as soon as possible.
+
+- Though "systemctl dot" does not work anymore, at least it prints an advice
+  to use "systemd-analyze dot" instead.
+
+- The udev support for predictable network interface names is present, but it
+  is not enabled by default. Users interested in the feature have to opt-in by
+  passing the parameter "net.ifnames=1" on the kernel command line.
diff --git a/kernel-install-grubby.patch b/kernel-install-grubby.patch
new file mode 100644
index 0000000..38505d9
--- /dev/null
+++ b/kernel-install-grubby.patch
@@ -0,0 +1,43 @@
+From 5150a366a4771a2a498d4e062482728d1dce94dd Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 13 Mar 2013 07:57:53 +0100
+Subject: [PATCH] kernel-install: add fedora specific callouts to
+ new-kernel-pkg
+
+---
+ src/kernel-install/kernel-install | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+diff --git a/src/kernel-install/kernel-install b/src/kernel-install/kernel-install
+index 16c06e0..cf9829e 100644
+--- a/src/kernel-install/kernel-install
++++ b/src/kernel-install/kernel-install
+@@ -25,6 +25,25 @@ COMMAND="$1"
+ KERNEL_VERSION="$2"
+ KERNEL_IMAGE="$3"
+ 
++if [[ -x /sbin/new-kernel-pkg ]]; then
++    case "$COMMAND" in
++        add)
++            /sbin/new-kernel-pkg --package kernel --mkinitrd --dracut --depmod --install "$KERNEL_VERSION" || exit $?
++            /sbin/new-kernel-pkg --package kernel --rpmposttrans "$KERNEL_VERSION" || exit $?
++            ;;
++        remove)
++            /sbin/new-kernel-pkg --rminitrd --rmmoddep --remove "$KERNEL_VERSION" || exit $?
++            ;;
++        *)
++            ;;
++    esac
++
++    # exit, if we can't find a boot loader spec conforming setup
++    if ! [[ -d /boot/loader/entries || -L /boot/loader/entries ]]; then
++        exit 0
++    fi
++fi
++
+ [[ -f /etc/os-release ]] && . /etc/os-release
+ if ! [[ $ID ]]; then
+     echo "Can't determine the name of your distribution. Please create /etc/os-release." >&2
+-- 
+1.8.1
+
diff --git a/sources b/sources
index c15a483..28cb7ae 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-56a860dceadfafe59f40141eb5223743  systemd-197.tar.xz
+3e758392ff0e9206b3f7ee252b4a654b  systemd-201.tar.xz
diff --git a/systemd.spec b/systemd.spec
index c5fa21e..b9de7ea 100644
--- a/systemd.spec
+++ b/systemd.spec
@@ -12,12 +12,50 @@
 
 Name:           systemd
 Url:            http://www.freedesktop.org/wiki/Software/systemd
-
-Version:        197
-Release:        1%{?gitcommit:.git%{gitcommit}}%{?dist}.2
+Version:        201
+Release:        2%{?gitcommit:.git%{gitcommit}}%{?dist}.1
 # For a breakdown of the licensing, see README
 License:        LGPLv2+ and MIT and GPLv2+
 Summary:        A System and Service Manager
+
+%if %{defined gitcommit}
+# Snapshot tarball can be created using: ./make-git-shapshot.sh [gitcommit]
+Source0:        %{name}-git%{gitcommit}.tar.xz
+%else
+Source0:        http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.xz
+%endif
+# Fedora's default preset policy
+Source1:        90-default.preset
+Source5:        90-display-manager.preset
+# Feodora's SysV convert script. meh.
+Source2:        systemd-sysv-convert
+# Stop-gap, just to ensure things work fine with rsyslog without having to change the package right-away
+Source4:        listen.conf
+# Prevent accidental removal of the systemd package
+Source6:        yum-protect-systemd.conf
+# documented differences from upstream
+Source7:        README.Fedora-18
+
+# Back out incompatibilities in F18:
+Patch0001:      0001-F18-units-don-t-always-use-sulogin-in-rescue.service.patch
+Patch0002:      0002-F18-Revert-service-sysv-remove-distribution-specific.patch
+Patch0003:      0003-F18-re-add-http-daemon.target.patch
+Patch0004:      0004-F18-bring-back-single.service.patch
+Patch0005:      0005-F18-Revert-udev-network-device-renaming-immediately-.patch
+Patch0006:      0006-F18-explain-what-happened-to-systemctl-dot.patch
+Patch0007:      0007-F18-Make-predictable-net-names-opt-in-instead-of-opt.patch
+# Selected post-v201 patches from upstream:
+Patch0008:      0008-keymap-Add-HP-EliteBook-8460p.patch
+Patch0009:      0009-keymap-Fix-typo-in-previous-commit.patch
+Patch0010:      0010-shutdown-print-a-nice-message-before-returning-to-in.patch
+Patch0011:      0011-units-fix-some-left-over-mentions-of-remote-fs-setup.patch
+Patch0012:      0012-logind-avoid-creating-stale-session-state-files.patch
+
+# kernel-install patch for grubby, drop if grubby is obsolete
+Patch1000:      kernel-install-grubby.patch
+
+%global num_patches %{lua: c=0; for i,p in ipairs(patches) do c=c+1; end; print(c);}
+
 BuildRequires:  libcap-devel
 BuildRequires:  tcp_wrappers-devel
 BuildRequires:  pam-devel
@@ -28,131 +66,39 @@ BuildRequires:  dbus-devel
 BuildRequires:  libacl-devel
 BuildRequires:  pciutils-devel
 BuildRequires:  glib2-devel
-BuildRequires:  gobject-introspection-devel >= 0.6.2
-BuildRequires:  libblkid-devel >= 2.20
+BuildRequires:  gobject-introspection-devel
+BuildRequires:  libblkid-devel
 BuildRequires:  xz-devel
-BuildRequires:  kmod-devel >= 5
+BuildRequires:  kmod-devel
 BuildRequires:  libgcrypt-devel
 BuildRequires:  qrencode-devel
 BuildRequires:  libmicrohttpd-devel
-BuildRequires:  hwdata
 BuildRequires:  libxslt
 BuildRequires:  docbook-style-xsl
 BuildRequires:  pkgconfig
-BuildRequires:  usbutils >= 0.82
-BuildRequires:  intltool >= 0.40.0
+BuildRequires:  intltool
 BuildRequires:  gperf
 BuildRequires:  gtk-doc
 BuildRequires:  python2-devel
+%if %{defined gitcommit}%{num_patches}
 BuildRequires:  automake
 BuildRequires:  autoconf
 BuildRequires:  libtool
+%endif
+%if %{num_patches}
+BuildRequires:  git
+%endif
 Requires(post): coreutils
 Requires(post): gawk
 Requires(post): sed
+Requires(post): acl
 Requires(pre):  coreutils
 Requires(pre):  /usr/bin/getent
 Requires(pre):  /usr/sbin/groupadd
 Requires:       dbus
-Requires:       hwdata
-Requires:       filesystem >= 3
 Requires:       nss-myhostname
 Requires:       %{name}-libs = %{version}-%{release}
-%if %{defined gitcommit}
-# Snapshot tarball can be created using: ./make-git-shapshot.sh [gitcommit]
-Source0:        %{name}-git%{gitcommit}.tar.xz
-%else
-Source0:        http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.xz
-%endif
-# Fedora's default preset policy
-Source1:        90-default.preset
-Source5:        90-display-manager.preset
-# Feodora's SysV convert script. meh.
-Source2:        systemd-sysv-convert
-# Stop-gap, just to ensure things work out-of-the-box for this driver.
-Source3:        udlfb.conf
-# Stop-gap, just to ensure things work fine with rsyslog without having to change the package right-away
-Source4:        listen.conf
-# Prevent accidental removal of the systemd package
-Source6:        yum-protect-systemd.conf
 
-# Revert potentially incompatible changes in v195..v197.
-Patch0001:      0001-F18-units-don-t-always-use-sulogin-in-rescue.service.patch
-Patch0002:      0002-F18-do-not-enable-persistent-network-device-naming.patch
-Patch0003:      0003-F18-re-add-http-daemon.target.patch
-Patch0004:      0004-F18-bring-back-single.service.patch
-# post-v197 fixes:
-Patch0005:      0005-udev-net_id-skip-stacked-network-devices.patch
-Patch0006:      0006-dbus-fix-serialization-of-calendar-timers.patch
-Patch0007:      0007-udev-don-t-call-fclose-on-NULL-in-is_pci_multifuncti.patch
-Patch0008:      0008-bootchart-check-return-of-fopen-before-setvbuf-in-lo.patch
-Patch0009:      0009-man-systemd-bootchart.xml-fix-typo.patch
-Patch0010:      0010-man-systemd.unit.xml-fix-typos.patch
-Patch0011:      0011-dbus-properly-serialize-calendar-timer-data.patch
-Patch0012:      0012-udev-Fix-device-matching-in-the-accelerometer.patch
-# Revert more incompatibilities
-Patch0013:      0013-F18-Revert-udev-network-device-renaming-immediately-.patch
-Patch0014:      0014-F18-Revert-udev-set-device-node-permissions-only-at-.patch
-
-Patch0015:      0015-systemctl-honour-inhibitors-when-shutting-down-or-en.patch
-Patch0016:      0016-man-localectl-s-set-keyboard-set-keymap.patch
-Patch0017:      0017-locale-make-sense-of-dvorak-alt-intel-X-variant-in-m.patch
-Patch0018:      0018-core-document-that-JoinControllers-might-be-ineffect.patch
-Patch0019:      0019-service-for-Type-forking-services-ignore-exit-status.patch
-Patch0020:      0020-systemctl-don-t-hit-an-assert-if-we-try-to-reboot-an.patch
-Patch0021:      0021-systemctl-honour-inhibitors-only-when-running-unpriv.patch
-Patch0022:      0022-logind-ignore-non-tty-non-x11-session-when-checking-.patch
-Patch0023:      0023-vconsole-upload-font-to-dev-tty1-and-copy-it-to-all-.patch
-Patch0024:      0024-man-link-in-wiki-documentation-about-network.target.patch
-Patch0025:      0025-man-link-in-API-FS-documentation-from-the-wiki.patch
-Patch0026:      0026-vconsole-copy-font-to-tty1-15.patch
-Patch0027:      0027-localectl-fix-typo-in-man-page.patch
-Patch0028:      0028-man-correct-order-of-precedence-for-fstab-units.patch
-Patch0029:      0029-units-add-reference-to-new-wiki-page-to-all-api-moun.patch
-Patch0030:      0030-man-add-reference-to-wiki-doc-from-DefaultController.patch
-Patch0031:      0031-vconsole-use-dev-vcsa1-15-to-check-for-allocated-VTs.patch
-Patch0032:      0032-core-use-correct-argument-of-type-JobResult.patch
-Patch0033:      0033-journalctl-quit-on-I-O-error.patch
-Patch0034:      0034-core-do-not-make-sockets-dependent-on-lo.patch
-Patch0035:      0035-load-fragment-replace-specifiers-in-path-unit-s-Unit.patch
-Patch0036:      0036-load-fragment-fix-bad-memory-access.patch
-Patch0037:      0037-shutdown-in-the-final-umount-loop-don-t-use-MNT_FORC.patch
-Patch0038:      0038-shutdown-ignore-loop-devices-without-a-backing-file.patch
-Patch0039:      0039-systemctl-loginctl-cgls-do-not-ellipsize-cgroup-memb.patch
-Patch0040:      0040-man-typo-fixes.patch
-Patch0041:      0041-dbus-add-Unit-s-PartOf-and-ConsistsOf-deps-to-intros.patch
-Patch0042:      0042-units-for-all-unit-settings-that-take-lists-allow-th.patch
-Patch0043:      0043-service-properly-signal-permanent-failure-of-a-servi.patch
-Patch0044:      0044-util-fix-bad-memory-access.patch
-Patch0045:      0045-hwdb-update.patch
-Patch0046:      0046-nspawn-add-audit-caps-to-default-set-to-keep.patch
-Patch0047:      0047-man-update-suggested-yum-command-line-in-nspawn-1.patch
-Patch0048:      0048-tmpfiles-do-not-make-run-nologin-executable.patch
-Patch0049:      0049-shutdown-loop-convert-to-enumerate-match.patch
-Patch0050:      0050-Fix-some-typos.patch
-Patch0051:      0051-man-clearify-the-meaning-of-timeout-0-for-password-a.patch
-Patch0052:      0052-configure.ac-combine-Wformat-options-into-one-argume.patch
-Patch0053:      0053-logind-only-allow-one-shutdown-sleep-action-to-be-qu.patch
-Patch0054:      0054-hwdb-update.patch
-Patch0055:      0055-service-really-stop-watchdog-timer-when-stopping.patch
-Patch0056:      0056-service-make-sure-the-watchdog-timer-is-not-restarte.patch
-Patch0057:      0057-core-Set-source-for-mountinfo-.mount-units.patch
-Patch0058:      0058-man-systemd.exec-explicit-Environment-assignment.patch
-Patch0059:      0059-man-mention-proc-self-mountinfo-in-systemd.mount-5.patch
-Patch0060:      0060-selinux-access-Delete-debugging-message-logged-as-an.patch
-Patch0061:      0061-selinux-we-don-t-need-that-many-debug-messages-by-de.patch
-Patch0062:      0062-logind-send-Resumed-signal-after-we-come-back-from-s.patch
-Patch0063:      0063-logind-add-UnlockSessions-clal-to-complement-LockSes.patch
-Patch0064:      0064-loginctl-show-seat-master-and-uaccess-devices-in-sea.patch
-Patch0065:      0065-loginctl-don-t-show-UACCESS-info-in-device-tree.patch
-Patch0066:      0066-logind-rework-delay-inhibition-logic.patch
-Patch0067:      0067-tmpfiles-introduce-type-X.patch
-Patch0068:      0068-job-fix-merging-with-ignore-dependencies.patch
-Patch0069:      0069-nspawn-assume-stdout-is-always-writable-if-it-does-n.patch
-Patch0070:      0070-man-mention-that-PrivateTmp-means-var-tmp-too.patch
-Patch0071:      0071-keymap-Add-support-for-the-brower-hotkey-on-the-HP-P.patch
-Patch0072:      0072-keymap-Add-HP-HDX-9494NR.patch
-Patch0073:      0073-keymap-Add-HP-HDX-9494NR-Fix-touchpad-keys.patch
 
 Obsoletes:      SysVinit < 2.86-24, sysvinit < 2.86-24
 Provides:       SysVinit = 2.86-24, sysvinit = 2.86-24
@@ -166,17 +112,24 @@ Obsoletes:      readahead < 1:1.5.7-3
 Provides:       readahead = 1:1.5.7-3
 Provides:       /bin/systemctl
 Provides:       /sbin/shutdown
+Provides:       syslog
 Obsoletes:      systemd-units < 38-5
 Provides:       systemd-units = %{version}-%{release}
+# part of system since f18, drop at f20
 Provides:       udev = %{version}
 Obsoletes:      udev < 183
 Conflicts:      dracut < 020-57
+# f18 version, drop at f20
 Conflicts:      plymouth < 0.8.5.1
+# Ensures correct multilib updates added F18, drop at F20
 Obsoletes:      systemd < 185-4
 Conflicts:      systemd < 185-4
+# added F18, drop at F20
 Obsoletes:      system-setup-keyboard < 0.9
 Provides:       system-setup-keyboard = 0.9
-Provides:       syslog
+# systemd-analyze got merged in F19 (and in F18 updates), drop at F21
+Obsoletes:      systemd-analyze < 198
+Provides:       systemd-analyze = 198
 
 %description
 systemd is a system and service manager for Linux, compatible with
@@ -216,21 +169,6 @@ Requires:       %{name} = %{version}-%{release}
 %description sysv
 SysV compatibility tools for systemd
 
-%package analyze
-Summary:        Tool for processing systemd profiling information
-License:        LGPLv2+
-Requires:       %{name} = %{version}-%{release}
-Requires:       dbus-python
-Requires:       pycairo
-# for the systemd-analyze split:
-Obsoletes:      systemd < 38-5
-
-%description analyze
-'systemd-analyze blame' lists which systemd unit needed how much time to finish
-initialization at boot.
-'systemd-analyze plot' renders an SVG visualizing the parallel start of units
-at boot.
-
 %package python
 Summary:        Python Bindings for systemd
 License:        LGPLv2+
@@ -260,127 +198,160 @@ glib-based applications using libudev functionality.
 
 %prep
 %setup -q %{?gitcommit:-n %{name}-git%{gitcommit}}
-git init
-git config user.email "systemd-owner at fedoraproject.org"
-git config user.name "systemd cabal"
-git add .
-git commit -m "base release %{version}"
-git am %{patches}
+
+%if %{num_patches}
+    git init
+    git config user.email "systemd-maint at redhat.com"
+    git config user.name "Fedora systemd team"
+    git add .
+    git commit -a -q -m "%{version} baseline."
+
+    # Apply all the patches.
+    git am %{patches}
+%endif
 
 %build
-%{?gitcommit: ./autogen.sh }
-autoreconf -i
+%if %{defined gitcommit}
+    ./autogen.sh
+%else
+    %if %{num_patches}
+        autoreconf
+    %endif
+%endif
+
 %configure \
         --libexecdir=%{_prefix}/lib \
         --enable-gtk-doc \
         --disable-static \
         --with-sysvinit-path=/etc/rc.d/init.d \
         --with-rc-local-script-path-start=/etc/rc.d/rc.local \
-        --disable-myhostname
-/usr/bin/make %{?_smp_mflags} V=1
+        --disable-myhostname \
+        --with-firmware-path="/usr/lib/firmware/updates:/usr/lib/firmware"
+make %{?_smp_mflags} V=1
 
 %install
 %make_install
-/usr/bin/find %{buildroot} \( -name '*.a' -o -name '*.la' \) -exec rm {} \;
+find %{buildroot} \( -name '*.a' -o -name '*.la' \) -delete
 
 # udev links
-/usr/bin/mkdir -p %{buildroot}/%{_sbindir}
-/usr/bin/ln -sf ../bin/udevadm %{buildroot}%{_sbindir}/udevadm
-/usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/firmware/updates
+mkdir -p %{buildroot}/%{_sbindir}
+ln -sf ../bin/udevadm %{buildroot}%{_sbindir}/udevadm
+mkdir -p %{buildroot}%{_prefix}/lib/firmware/updates
 
 # Create SysV compatibility symlinks. systemctl/systemd are smart
 # enough to detect in which way they are called.
-/usr/bin/ln -s ../lib/systemd/systemd %{buildroot}%{_sbindir}/init
-/usr/bin/ln -s ../lib/systemd/systemd %{buildroot}%{_bindir}/systemd
-/usr/bin/ln -s ../bin/systemctl %{buildroot}%{_sbindir}/reboot
-/usr/bin/ln -s ../bin/systemctl %{buildroot}%{_sbindir}/halt
-/usr/bin/ln -s ../bin/systemctl %{buildroot}%{_sbindir}/poweroff
-/usr/bin/ln -s ../bin/systemctl %{buildroot}%{_sbindir}/shutdown
-/usr/bin/ln -s ../bin/systemctl %{buildroot}%{_sbindir}/telinit
-/usr/bin/ln -s ../bin/systemctl %{buildroot}%{_sbindir}/runlevel
+ln -s ../lib/systemd/systemd %{buildroot}%{_sbindir}/init
+ln -s ../lib/systemd/systemd %{buildroot}%{_bindir}/systemd
+ln -s ../bin/systemctl %{buildroot}%{_sbindir}/reboot
+ln -s ../bin/systemctl %{buildroot}%{_sbindir}/halt
+ln -s ../bin/systemctl %{buildroot}%{_sbindir}/poweroff
+ln -s ../bin/systemctl %{buildroot}%{_sbindir}/shutdown
+ln -s ../bin/systemctl %{buildroot}%{_sbindir}/telinit
+ln -s ../bin/systemctl %{buildroot}%{_sbindir}/runlevel
 
 # legacy links
-/usr/bin/ln -s loginctl %{buildroot}%{_bindir}/systemd-loginctl
+ln -s loginctl %{buildroot}%{_bindir}/systemd-loginctl
 
 # We create all wants links manually at installation time to make sure
 # they are not owned and hence overriden by rpm after the used deleted
 # them.
-/usr/bin/rm -r %{buildroot}%{_sysconfdir}/systemd/system/*.target.wants
+rm -r %{buildroot}%{_sysconfdir}/systemd/system/*.target.wants
 
 # Make sure the ghost-ing below works
-/usr/bin/touch %{buildroot}%{_sysconfdir}/systemd/system/runlevel2.target
-/usr/bin/touch %{buildroot}%{_sysconfdir}/systemd/system/runlevel3.target
-/usr/bin/touch %{buildroot}%{_sysconfdir}/systemd/system/runlevel4.target
-/usr/bin/touch %{buildroot}%{_sysconfdir}/systemd/system/runlevel5.target
+touch %{buildroot}%{_sysconfdir}/systemd/system/runlevel2.target
+touch %{buildroot}%{_sysconfdir}/systemd/system/runlevel3.target
+touch %{buildroot}%{_sysconfdir}/systemd/system/runlevel4.target
+touch %{buildroot}%{_sysconfdir}/systemd/system/runlevel5.target
 
 # Make sure these directories are properly owned
-/usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/basic.target.wants
-/usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/default.target.wants
-/usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/dbus.target.wants
-/usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/syslog.target.wants
+mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/basic.target.wants
+mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/default.target.wants
+mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/dbus.target.wants
+mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/syslog.target.wants
 
 # Make sure the user generators dir exists too
-/usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-generators
-/usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/user-generators
+mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-generators
+mkdir -p %{buildroot}%{_prefix}/lib/systemd/user-generators
 
 # Create new-style configuration files so that we can ghost-own them
-/usr/bin/touch %{buildroot}%{_sysconfdir}/hostname
-/usr/bin/touch %{buildroot}%{_sysconfdir}/vconsole.conf
-/usr/bin/touch %{buildroot}%{_sysconfdir}/locale.conf
-/usr/bin/touch %{buildroot}%{_sysconfdir}/machine-id
-/usr/bin/touch %{buildroot}%{_sysconfdir}/machine-info
-/usr/bin/touch %{buildroot}%{_sysconfdir}/localtime
-/usr/bin/mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d
-/usr/bin/touch %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf
+touch %{buildroot}%{_sysconfdir}/hostname
+touch %{buildroot}%{_sysconfdir}/vconsole.conf
+touch %{buildroot}%{_sysconfdir}/locale.conf
+touch %{buildroot}%{_sysconfdir}/machine-id
+touch %{buildroot}%{_sysconfdir}/machine-info
+touch %{buildroot}%{_sysconfdir}/localtime
+mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d
+touch %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf
 
 # Install Fedora default preset policy
-/usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-preset/
-/usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/user-preset/
-/usr/bin/install -m 0644 %{SOURCE1} %{buildroot}%{_prefix}/lib/systemd/system-preset/
-/usr/bin/install -m 0644 %{SOURCE5} %{buildroot}%{_prefix}/lib/systemd/system-preset/
+mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-preset/
+mkdir -p %{buildroot}%{_prefix}/lib/systemd/user-preset/
+install -m 0644 %{SOURCE1} %{buildroot}%{_prefix}/lib/systemd/system-preset/
+install -m 0644 %{SOURCE5} %{buildroot}%{_prefix}/lib/systemd/system-preset/
 
 # Make sure the shutdown/sleep drop-in dirs exist
-/usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-shutdown/
-/usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-sleep/
+mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-shutdown/
+mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-sleep/
 
 # Make sure the NTP units dir exists
-/usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/ntp-units.d/
+mkdir -p %{buildroot}%{_prefix}/lib/systemd/ntp-units.d/
 
-# Install SysV conversion tool for systemd
-/usr/bin/install -m 0755 %{SOURCE2} %{buildroot}%{_bindir}/
+# Make sure directories in /var exist
+mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump
+mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/catalog
+mkdir -p %{buildroot}%{_localstatedir}/log/journal
+touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database
+touch %{buildroot}%{_sysconfdir}/udev/hwdb.bin
 
-# Install modprobe fragment
-/usr/bin/mkdir -p %{buildroot}%{_sysconfdir}/modprobe.d/
-/usr/bin/install -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/modprobe.d/
+# Install SysV conversion tool for systemd
+install -m 0755 %{SOURCE2} %{buildroot}%{_bindir}/
 
 # Install rsyslog fragment
-/usr/bin/mkdir -p %{buildroot}%{_sysconfdir}/rsyslog.d/
-/usr/bin/install -m 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/rsyslog.d/
+mkdir -p %{buildroot}%{_sysconfdir}/rsyslog.d/
+install -m 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/rsyslog.d/
 
 # Install yum protection fragment
-/usr/bin/mkdir -p %{buildroot}%{_sysconfdir}/yum/protected.d/
-/usr/bin/install -m 0644 %{SOURCE6} %{buildroot}%{_sysconfdir}/yum/protected.d/systemd.conf
+mkdir -p %{buildroot}%{_sysconfdir}/yum/protected.d/
+install -m 0644 %{SOURCE6} %{buildroot}%{_sysconfdir}/yum/protected.d/systemd.conf
 
 # To avoid making life hard for Rawhide-using developers, don't package the
 # kernel.core_pattern setting until systemd-coredump is a part of an actual
 # systemd release and it's made clear how to get the core dumps out of the
 # journal.
-/usr/bin/rm -f %{buildroot}%{_prefix}/lib/sysctl.d/coredump.conf
+rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-coredump.conf
 
 # For now remove /var/log/README since we are not enabling persistant
 # logging yet.
-/usr/bin/rm -f %{buildroot}%{_localstatedir}/log/README
+rm -f %{buildroot}%{_localstatedir}/log/README
+
+# bash-completion ships udevadm too, so let's remove ours until this gets fixed
+# https://bugzilla.redhat.com/show_bug.cgi?id=919246
+rm -f %{buildroot}%{_datadir}/bash-completion/completions/udevadm
+
+# Temporarily pull in NM-wait-online ourselves until NM starts doing it.
+# Prefix the symlink name with "system-" in order to avoid a possible file
+# conflict when NM starts shipping the symlink.
+mkdir %{buildroot}/%{_prefix}/lib/systemd/system/network-online.target.wants
+ln -s ../NetworkManager-wait-online.service \
+      %{buildroot}/%{_prefix}/lib/systemd/system/network-online.target.wants/systemd-NetworkManager-wait-online.service
+
+# F18-specific doc
+install -m 0644 %{SOURCE7} %{buildroot}/%{_docdir}/systemd/
 
 %pre
-/usr/bin/getent group cdrom >/dev/null 2>&1 || /usr/sbin/groupadd -r -g 11 cdrom >/dev/null 2>&1 || :
-/usr/bin/getent group tape >/dev/null 2>&1 || /usr/sbin/groupadd -r -g 33 tape >/dev/null 2>&1 || :
-/usr/bin/getent group dialout >/dev/null 2>&1 || /usr/sbin/groupadd -r -g 18 dialout >/dev/null 2>&1 || :
-/usr/bin/getent group floppy >/dev/null 2>&1 || /usr/sbin/groupadd -r -g 19 floppy >/dev/null 2>&1 || :
-/usr/bin/systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service >/dev/null 2>&1 || :
+getent group cdrom >/dev/null 2>&1 || groupadd -r -g 11 cdrom >/dev/null 2>&1 || :
+getent group tape >/dev/null 2>&1 || groupadd -r -g 33 tape >/dev/null 2>&1 || :
+getent group dialout >/dev/null 2>&1 || groupadd -r -g 18 dialout >/dev/null 2>&1 || :
+getent group floppy >/dev/null 2>&1 || groupadd -r -g 19 floppy >/dev/null 2>&1 || :
+getent group systemd-journal >/dev/null 2>&1 || groupadd -r -g 190 systemd-journal 2>&1 || :
+getent group systemd-journal-gateway >/dev/null 2>&1 || groupadd -r -g 191 systemd-journal-gateway 2>&1 || :
+getent passwd systemd-journal-gateway >/dev/null 2>&1 || useradd -r -l -u 191 -g systemd-journal-gateway -d %{_localstatedir}/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || :
+
+systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service >/dev/null 2>&1 || :
 
 # Rename configuration files that changed their names
-/usr/bin/mv -n %{_sysconfdir}/systemd/systemd-logind.conf %{_sysconfdir}/systemd/logind.conf >/dev/null 2>&1 || :
-/usr/bin/mv -n %{_sysconfdir}/systemd/systemd-journald.conf %{_sysconfdir}/systemd/journald.conf >/dev/null 2>&1 || :
+mv -n %{_sysconfdir}/systemd/systemd-logind.conf %{_sysconfdir}/systemd/logind.conf >/dev/null 2>&1 || :
+mv -n %{_sysconfdir}/systemd/systemd-journald.conf %{_sysconfdir}/systemd/journald.conf >/dev/null 2>&1 || :
 
 %pretrans -p <lua>
 --# Migrate away from systemd-timedated-ntp.target.
@@ -419,20 +390,20 @@ migrate_ntp()
 return 0
 
 %post
-/usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || :
+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/systemctl start systemd-udevd.service >/dev/null 2>&1 || :
-/usr/bin/udevadm hwdb --update >/dev/null 2>&1 || :
-/usr/bin/journalctl --update-catalog >/dev/null 2>&1 || :
+systemctl daemon-reexec >/dev/null 2>&1 || :
+systemctl start systemd-udevd.service >/dev/null 2>&1 || :
+udevadm hwdb --update >/dev/null 2>&1 || :
+journalctl --update-catalog >/dev/null 2>&1 || :
 
 # Stop-gap until rsyslog.rpm does this on its own. (This is supposed
 # to fail when the link already exists)
-/usr/bin/ln -s /usr/lib/systemd/system/rsyslog.service /etc/systemd/system/syslog.service >/dev/null 2>&1 || :
+ln -s /usr/lib/systemd/system/rsyslog.service /etc/systemd/system/syslog.service >/dev/null 2>&1 || :
 
 if [ $1 -eq 1 ] ; then
         # Try to read default runlevel from the old inittab if it exists
-        runlevel=$(/usr/bin/awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null)
+        runlevel=$(awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null)
         if [ -z "$runlevel" ] ; then
                 target="/usr/lib/systemd/system/graphical.target"
         else
@@ -440,10 +411,10 @@ if [ $1 -eq 1 ] ; then
         fi
 
         # And symlink what we found to the new-style default.target
-        /usr/bin/ln -sf "$target" /etc/systemd/system/default.target >/dev/null 2>&1 || :
+        ln -sf "$target" /etc/systemd/system/default.target >/dev/null 2>&1 || :
 
         # Enable the services we install by default.
-        /usr/bin/systemctl enable \
+        systemctl enable \
                 getty at .service \
                 remote-fs.target \
                 systemd-readahead-replay.service \
@@ -451,29 +422,29 @@ if [ $1 -eq 1 ] ; then
 else
         # This systemd service does not exist anymore, we now do it
         # internally in PID 1
-        /usr/bin/rm -f /etc/systemd/system/sysinit.target.wants/hwclock-load.service >/dev/null 2>&1 || :
+        rm -f /etc/systemd/system/sysinit.target.wants/hwclock-load.service >/dev/null 2>&1 || :
 
         # This systemd target does not exist anymore. It's been replaced
         # by ntp-units.d.
-        /usr/bin/rm -f /etc/systemd/system/multi-user.target.wants/systemd-timedated-ntp.target >/dev/null 2>&1 || :
+        rm -f /etc/systemd/system/multi-user.target.wants/systemd-timedated-ntp.target >/dev/null 2>&1 || :
 
         # Enable the units recorded by %%pretrans
         if [ -e /var/lib/rpm-state/systemd/ntp-units ] ; then
                 while read service; do
-                        /usr/bin/systemctl enable "$service" >/dev/null 2>&1 || :
+                        systemctl enable "$service" >/dev/null 2>&1 || :
                 done < /var/lib/rpm-state/systemd/ntp-units
-                /usr/bin/rm -r /var/lib/rpm-state/systemd/ntp-units
+                rm -r /var/lib/rpm-state/systemd/ntp-units >/dev/null 2>&1 || :
         fi
 fi
 
 # Migrate /etc/sysconfig/clock
 if [ ! -L /etc/localtime -a -e /etc/sysconfig/clock ] ; then
-       . /etc/sysconfig/clock 2>&1 || :
+       . /etc/sysconfig/clock >/dev/null 2>&1 || :
        if [ -n "$ZONE" -a -e "/usr/share/zoneinfo/$ZONE" ] ; then
-              /usr/bin/ln -sf "../usr/share/zoneinfo/$ZONE" /etc/localtime >/dev/null 2>&1 || :
+              ln -sf "../usr/share/zoneinfo/$ZONE" /etc/localtime >/dev/null 2>&1 || :
        fi
 fi
-/usr/bin/rm -f /etc/sysconfig/clock >/dev/null 2>&1 || :
+rm -f /etc/sysconfig/clock >/dev/null 2>&1 || :
 
 # Migrate /etc/sysconfig/i18n
 if [ -e /etc/sysconfig/i18n -a ! -e /etc/locale.conf ]; then
@@ -519,8 +490,8 @@ if [ -e /etc/sysconfig/keyboard -a ! -e /etc/vconsole.conf ]; then
         [ -n "$UNIMAP" ] && echo FONT_UNIMAP=$UNIMAP >> /etc/vconsole.conf 2>&1 || :
         [ -n "$KEYTABLE" ] && echo KEYMAP=$KEYTABLE >> /etc/vconsole.conf 2>&1 || :
 fi
-/usr/bin/rm -f /etc/sysconfig/i18n >/dev/null 2>&1 || :
-/usr/bin/rm -f /etc/sysconfig/keyboard >/dev/null 2>&1 || :
+rm -f /etc/sysconfig/i18n >/dev/null 2>&1 || :
+rm -f /etc/sysconfig/keyboard >/dev/null 2>&1 || :
 
 # Migrate HOSTNAME= from /etc/sysconfig/network
 if [ -e /etc/sysconfig/network -a ! -e /etc/hostname ]; then
@@ -528,15 +499,17 @@ if [ -e /etc/sysconfig/network -a ! -e /etc/hostname ]; then
         . /etc/sysconfig/network >/dev/null 2>&1 || :
         [ -n "$HOSTNAME" ] && echo $HOSTNAME > /etc/hostname 2>&1 || :
 fi
-/usr/bin/sed -i '/^HOSTNAME=/d' /etc/sysconfig/network >/dev/null 2>&1 || :
+sed -i '/^HOSTNAME=/d' /etc/sysconfig/network >/dev/null 2>&1 || :
 
 # Migrate the old systemd-setup-keyboard X11 configuration fragment
 if [ ! -e /etc/X11/xorg.conf.d/00-keyboard.conf ] ; then
-        /usr/bin/mv /etc/X11/xorg.conf.d/00-system-setup-keyboard.conf /etc/X11/xorg.conf.d/00-keyboard.conf >/dev/null 2>&1 || :
+        mv /etc/X11/xorg.conf.d/00-system-setup-keyboard.conf /etc/X11/xorg.conf.d/00-keyboard.conf >/dev/null 2>&1 || :
 else
-        /usr/bin/rm -f /etc/X11/xorg.conf.d/00-system-setup-keyboard.conf >/dev/null 2>&1 || :
+        rm -f /etc/X11/xorg.conf.d/00-system-setup-keyboard.conf >/dev/null 2>&1 || :
 fi
 
+setfacl -Rnm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal/ >/dev/null 2>&1 || :
+
 %posttrans
 # Convert old /etc/sysconfig/desktop settings
 preferred=
@@ -563,24 +536,24 @@ if [ -z "$preferred" ]; then
 fi
 if [ -n "$preferred" -a -r "/usr/lib/systemd/system/$preferred.service" ]; then
         # This is supposed to fail when the symlink already exists
-        /usr/bin/ln -s "/usr/lib/systemd/system/$preferred.service" /etc/systemd/system/display-manager.service >/dev/null 2>&1 || :
+        ln -s "/usr/lib/systemd/system/$preferred.service" /etc/systemd/system/display-manager.service >/dev/null 2>&1 || :
 fi
 
 %postun
 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 || :
+        systemctl daemon-reload > /dev/null 2>&1 || :
+        systemctl try-restart systemd-logind.service >/dev/null 2>&1 || :
 fi
 
 %preun
 if [ $1 -eq 0 ] ; then
-        /usr/bin/systemctl disable \
+        systemctl disable \
                 getty at .service \
                 remote-fs.target \
                 systemd-readahead-replay.service \
                 systemd-readahead-collect.service >/dev/null 2>&1 || :
 
-        /usr/bin/rm -f /etc/systemd/system/default.target >/dev/null 2>&1 || :
+        rm -f /etc/systemd/system/default.target >/dev/null 2>&1 || :
 fi
 
 %triggerun -- systemd-units < 38-5
@@ -609,7 +582,6 @@ fi
 %dir %{_sysconfdir}/sysctl.d
 %dir %{_sysconfdir}/modules-load.d
 %dir %{_sysconfdir}/binfmt.d
-%dir %{_sysconfdir}/bash_completion.d
 %dir %{_sysconfdir}/udev
 %dir %{_sysconfdir}/udev/rules.d
 %dir %{_prefix}/lib/systemd
@@ -628,7 +600,12 @@ fi
 %dir %{_prefix}/lib/firmware
 %dir %{_prefix}/lib/firmware/updates
 %dir %{_datadir}/systemd
+%dir %{_datadir}/systemd/gatewayd
 %dir %{_datadir}/pkgconfig
+%dir %{_localstatedir}/log/journal
+%dir %{_localstatedir}/lib/systemd
+%dir %{_localstatedir}/lib/systemd/catalog
+%dir %{_localstatedir}/lib/systemd/coredump
 %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf
 %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf
 %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf
@@ -638,11 +615,11 @@ fi
 %config(noreplace) %{_sysconfdir}/systemd/user.conf
 %config(noreplace) %{_sysconfdir}/systemd/logind.conf
 %config(noreplace) %{_sysconfdir}/systemd/journald.conf
+%config(noreplace) %{_sysconfdir}/systemd/bootchart.conf
 %config(noreplace) %{_sysconfdir}/udev/udev.conf
 %config(noreplace) %{_sysconfdir}/rsyslog.d/listen.conf
-%config(noreplace) %{_sysconfdir}/modprobe.d/udlfb.conf
 %config(noreplace) %{_sysconfdir}/yum/protected.d/systemd.conf
-%{_sysconfdir}/bash_completion.d/systemd-bash-completion.sh
+%ghost %{_sysconfdir}/udev/hwdb.bin
 %{_sysconfdir}/rpm/macros.systemd
 %{_sysconfdir}/xdg/systemd
 %{_sysconfdir}/rc.d/init.d/README
@@ -654,9 +631,11 @@ fi
 %ghost %config(noreplace) %{_sysconfdir}/machine-info
 %ghost %config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf
 %ghost %config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/00-system-setup-keyboard.conf
+%ghost %{_localstatedir}/lib/systemd/catalog/database
 %{_bindir}/systemd
 %{_bindir}/systemctl
 %{_bindir}/systemd-notify
+%{_bindir}/systemd-analyze
 %{_bindir}/systemd-ask-password
 %{_bindir}/systemd-tty-ask-password-agent
 %{_bindir}/systemd-machine-id-setup
@@ -675,8 +654,10 @@ fi
 %{_bindir}/hostnamectl
 %{_bindir}/localectl
 %{_bindir}/timedatectl
+%{_bindir}/bootctl
 %{_bindir}/systemd-coredumpctl
 %{_bindir}/udevadm
+%{_bindir}/kernel-install
 %{_prefix}/lib/systemd/systemd
 %{_prefix}/lib/systemd/system
 %{_prefix}/lib/systemd/user
@@ -687,10 +668,12 @@ fi
 %{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator
 %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator
 %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator
+%{_prefix}/lib/systemd/system-generators/systemd-efi-boot-generator
 %{_prefix}/lib/tmpfiles.d/systemd.conf
 %{_prefix}/lib/tmpfiles.d/x11.conf
 %{_prefix}/lib/tmpfiles.d/legacy.conf
 %{_prefix}/lib/tmpfiles.d/tmp.conf
+%{_prefix}/lib/sysctl.d/50-default.conf
 %{_prefix}/lib/systemd/system-preset/90-default.preset
 %{_prefix}/lib/systemd/system-preset/90-display-manager.preset
 %{_prefix}/lib/systemd/catalog/systemd.catalog
@@ -725,6 +708,16 @@ fi
 %{_datadir}/pkgconfig/systemd.pc
 %{_datadir}/pkgconfig/udev.pc
 %{_datadir}/systemd/gatewayd/browse.html
+%{_datadir}/bash-completion/completions/hostnamectl
+%{_datadir}/bash-completion/completions/journalctl
+%{_datadir}/bash-completion/completions/localectl
+%{_datadir}/bash-completion/completions/loginctl
+%{_datadir}/bash-completion/completions/systemctl
+%{_datadir}/bash-completion/completions/systemd-coredumpctl
+%{_datadir}/bash-completion/completions/timedatectl
+#%{_datadir}/bash-completion/completions/udevadm
+# F18 stopgap for NM-wait-online:
+%{_prefix}/lib/systemd/system/network-online.target.wants
 
 # Make sure we don't remove runlevel targets from F14 alpha installs,
 # but make sure we don't create then anew.
@@ -742,6 +735,7 @@ fi
 %{_libdir}/libudev.so.*
 
 %files devel
+%dir %{_includedir}/systemd
 %{_libdir}/libsystemd-daemon.so
 %{_libdir}/libsystemd-login.so
 %{_libdir}/libsystemd-journal.so
@@ -766,17 +760,20 @@ fi
 %files sysv
 %{_bindir}/systemd-sysv-convert
 
-%files analyze
-%{_bindir}/systemd-analyze
-
 %files python
 %{python_sitearch}/systemd/__init__.py
 %{python_sitearch}/systemd/__init__.pyc
 %{python_sitearch}/systemd/__init__.pyo
 %{python_sitearch}/systemd/_journal.so
+%{python_sitearch}/systemd/_reader.so
+%{python_sitearch}/systemd/_daemon.so
+%{python_sitearch}/systemd/id128.so
 %{python_sitearch}/systemd/journal.py
 %{python_sitearch}/systemd/journal.pyc
 %{python_sitearch}/systemd/journal.pyo
+%{python_sitearch}/systemd/daemon.py
+%{python_sitearch}/systemd/daemon.pyc
+%{python_sitearch}/systemd/daemon.pyo
 
 %files -n libgudev1
 %{_libdir}/libgudev-1.0.so.*
@@ -793,6 +790,13 @@ fi
 %{_libdir}/pkgconfig/gudev-1.0*
 
 %changelog
+* Wed Apr 10 2013 Michal Schmidt <mschmidt at redhat.com> - 201-2.fc18.1
+- Update to upstream release v201 from F19.
+- Back out selected changes to avoid incompatibilities in a stable release.
+- Add selected post-v201 patches from upstream.
+- Pull NM-wait-online in from network-online.target.wants (stopgap).
+- Added README.Fedora-18 describing differences from upstream.
+
 * Mon Jan 28 2013 Michal Schmidt <mschmidt at redhat.com> - 197-1.fc18.2
 - Revert a couple of patches causing surprising breakage.
 - Resolves: #896135, #903716


More information about the scm-commits mailing list