+++ /dev/null
-Upstream-Status: Backport
-Signed-off-by: Jonathan Liu <net147@gmail.com>
-
-From 3f92e4b4b61042391bd44de4dceb18177df0dd57 Mon Sep 17 00:00:00 2001
-From: Lennart Poettering <lennart@poettering.net>
-Date: Thu, 16 May 2013 00:19:03 +0200
-Subject: [PATCH] utmp: turn systemd-update-utmp-shutdown.service into a normal
- runtime service
-
-With this change systemd-update-utmp-shutdown.service is replaced by
-systemd-update-utmp.service which is started at boot and stays around
-until shutdown. This allows us to properly order the unit against both
-/var/log and auditd.
-
-https://bugzilla.redhat.com/show_bug.cgi?id=853104
-https://bugs.freedesktop.org/show_bug.cgi?id=64365
----
- Makefile-man.am | 12 ++---
- Makefile.am | 8 +--
- man/systemd-update-utmp-runlevel.service.xml | 76 ---------------------------
- man/systemd-update-utmp.service.xml | 76 +++++++++++++++++++++++++++
- src/update-utmp/update-utmp.c | 2 +-
- units/.gitignore | 2 +-
- units/systemd-update-utmp-runlevel.service.in | 8 +--
- units/systemd-update-utmp-shutdown.service.in | 19 -------
- units/systemd-update-utmp.service.in | 21 ++++++++
- 9 files changed, 114 insertions(+), 110 deletions(-)
- delete mode 100644 man/systemd-update-utmp-runlevel.service.xml
- create mode 100644 man/systemd-update-utmp.service.xml
- delete mode 100644 units/systemd-update-utmp-shutdown.service.in
- create mode 100644 units/systemd-update-utmp.service.in
-
-diff --git a/Makefile-man.am b/Makefile-man.am
-index 7d62094..5888158 100644
---- a/Makefile-man.am
-+++ b/Makefile-man.am
-@@ -72,7 +72,7 @@ MANPAGES += \
- man/systemd-tmpfiles.8 \
- man/systemd-tty-ask-password-agent.1 \
- man/systemd-udevd.service.8 \
-- man/systemd-update-utmp-runlevel.service.8 \
-+ man/systemd-update-utmp.service.8 \
- man/systemd.1 \
- man/systemd.automount.5 \
- man/systemd.device.5 \
-@@ -191,7 +191,7 @@ MANPAGES_ALIAS += \
- man/systemd-udevd-control.socket.8 \
- man/systemd-udevd-kernel.socket.8 \
- man/systemd-udevd.8 \
-- man/systemd-update-utmp-shutdown.service.8 \
-+ man/systemd-update-utmp-runlevel.service.8 \
- man/systemd-update-utmp.8 \
- man/systemd-user.conf.5
- man/SD_ALERT.3: man/sd-daemon.3
-@@ -289,8 +289,8 @@ man/systemd-tmpfiles-setup.service.8: man/systemd-tmpfiles.8
- man/systemd-udevd-control.socket.8: man/systemd-udevd.service.8
- man/systemd-udevd-kernel.socket.8: man/systemd-udevd.service.8
- man/systemd-udevd.8: man/systemd-udevd.service.8
--man/systemd-update-utmp-shutdown.service.8: man/systemd-update-utmp-runlevel.service.8
--man/systemd-update-utmp.8: man/systemd-update-utmp-runlevel.service.8
-+man/systemd-update-utmp-runlevel.service.8: man/systemd-update-utmp.service.8
-+man/systemd-update-utmp.8: man/systemd-update-utmp.service.8
- man/systemd-user.conf.5: man/systemd-system.conf.5
- man/SD_ALERT.html: man/sd-daemon.html
- $(html-alias)
-@@ -577,10 +577,10 @@ man/systemd-udevd-kernel.socket.html: man/systemd-udevd.service.html
- man/systemd-udevd.html: man/systemd-udevd.service.html
- $(html-alias)
-
--man/systemd-update-utmp-shutdown.service.html: man/systemd-update-utmp-runlevel.service.html
-+man/systemd-update-utmp-runlevel.service.html: man/systemd-update-utmp.service.html
- $(html-alias)
-
--man/systemd-update-utmp.html: man/systemd-update-utmp-runlevel.service.html
-+man/systemd-update-utmp.html: man/systemd-update-utmp.service.html
- $(html-alias)
-
- man/systemd-user.conf.html: man/systemd-system.conf.html
-diff --git a/Makefile.am b/Makefile.am
-index 8d8139c..4c5e6fc 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -417,8 +417,8 @@ nodist_systemunit_DATA = \
- units/systemd-initctl.service \
- units/systemd-shutdownd.service \
- units/systemd-remount-fs.service \
-+ units/systemd-update-utmp.service \
- units/systemd-update-utmp-runlevel.service \
-- units/systemd-update-utmp-shutdown.service \
- units/systemd-tmpfiles-setup-dev.service \
- units/systemd-tmpfiles-setup.service \
- units/systemd-tmpfiles-clean.service \
-@@ -463,8 +463,8 @@ EXTRA_DIST += \
- units/systemd-initctl.service.in \
- units/systemd-shutdownd.service.in \
- units/systemd-remount-fs.service.in \
-+ units/systemd-update-utmp.service.in \
- units/systemd-update-utmp-runlevel.service.in \
-- units/systemd-update-utmp-shutdown.service.in \
- units/systemd-tmpfiles-setup-dev.service.in \
- units/systemd-tmpfiles-setup.service.in \
- units/systemd-tmpfiles-clean.service.in \
-@@ -4070,8 +4070,8 @@ RUNLEVEL4_TARGET_WANTS += \
- RUNLEVEL5_TARGET_WANTS += \
- systemd-update-utmp-runlevel.service
- endif
--SHUTDOWN_TARGET_WANTS += \
-- systemd-update-utmp-shutdown.service
-+SYSINIT_TARGET_WANTS += \
-+ systemd-update-utmp.service
- LOCAL_FS_TARGET_WANTS += \
- systemd-remount-fs.service \
- systemd-fsck-root.service \
-diff --git a/man/systemd-update-utmp-runlevel.service.xml b/man/systemd-update-utmp-runlevel.service.xml
-deleted file mode 100644
-index 867b958..0000000
---- a/man/systemd-update-utmp-runlevel.service.xml
-+++ /dev/null
-@@ -1,76 +0,0 @@
--<?xml version="1.0"?>
--<!--*-nxml-*-->
--<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
--<!--
-- This file is part of systemd.
--
-- Copyright 2012 Lennart Poettering
--
-- systemd is free software; you can redistribute it and/or modify it
-- under the terms of the GNU Lesser General Public License as published by
-- the Free Software Foundation; either version 2.1 of the License, or
-- (at your option) any later version.
--
-- systemd is distributed in the hope that it will be useful, but
-- WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public License
-- along with systemd; If not, see <http://www.gnu.org/licenses/>.
---->
--<refentry id="systemd-update-utmp-runlevel.service">
--
-- <refentryinfo>
-- <title>systemd-update-utmp-runlevel.service</title>
-- <productname>systemd</productname>
--
-- <authorgroup>
-- <author>
-- <contrib>Developer</contrib>
-- <firstname>Lennart</firstname>
-- <surname>Poettering</surname>
-- <email>lennart@poettering.net</email>
-- </author>
-- </authorgroup>
-- </refentryinfo>
--
-- <refmeta>
-- <refentrytitle>systemd-update-utmp-runlevel.service</refentrytitle>
-- <manvolnum>8</manvolnum>
-- </refmeta>
--
-- <refnamediv>
-- <refname>systemd-update-utmp-runlevel.service</refname>
-- <refname>systemd-update-utmp-shutdown.service</refname>
-- <refname>systemd-update-utmp</refname>
-- <refpurpose>Write audit and utmp updates at runlevel
-- changes and shutdown</refpurpose>
-- </refnamediv>
--
-- <refsynopsisdiv>
-- <para><filename>systemd-update-utmp-runlevel.service</filename></para>
-- <para><filename>systemd-update-utmp-shutdown.service</filename></para>
-- <para><filename>/usr/lib/systemd/systemd-update-utmp</filename></para>
-- </refsynopsisdiv>
--
-- <refsect1>
-- <title>Description</title>
--
-- <para><filename>systemd-update-utmp-runlevel.service</filename>
-- is a service that writes SysV runlevel changes to utmp
-- and wtmp, as well as the audit logs, as they
-- occur. <filename>systemd-update-utmp-shutdown.service</filename>
-- does the same for shut-down requests.</para>
-- </refsect1>
--
-- <refsect1>
-- <title>See Also</title>
-- <para>
-- <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
-- <citerefentry><refentrytitle>utmp</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
-- <citerefentry><refentrytitle>auditd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-- </para>
-- </refsect1>
--
--</refentry>
-diff --git a/man/systemd-update-utmp.service.xml b/man/systemd-update-utmp.service.xml
-new file mode 100644
-index 0000000..846fc95
---- /dev/null
-+++ b/man/systemd-update-utmp.service.xml
-@@ -0,0 +1,76 @@
-+<?xml version="1.0"?>
-+<!--*-nxml-*-->
-+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-+<!--
-+ This file is part of systemd.
-+
-+ Copyright 2012 Lennart Poettering
-+
-+ systemd is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1 of the License, or
-+ (at your option) any later version.
-+
-+ systemd is distributed in the hope that it will be useful, but
-+ WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
-+-->
-+<refentry id="systemd-update-utmp.service">
-+
-+ <refentryinfo>
-+ <title>systemd-update-utmp.service</title>
-+ <productname>systemd</productname>
-+
-+ <authorgroup>
-+ <author>
-+ <contrib>Developer</contrib>
-+ <firstname>Lennart</firstname>
-+ <surname>Poettering</surname>
-+ <email>lennart@poettering.net</email>
-+ </author>
-+ </authorgroup>
-+ </refentryinfo>
-+
-+ <refmeta>
-+ <refentrytitle>systemd-update-utmp.service</refentrytitle>
-+ <manvolnum>8</manvolnum>
-+ </refmeta>
-+
-+ <refnamediv>
-+ <refname>systemd-update-utmp.service</refname>
-+ <refname>systemd-update-utmp-runlevel.service</refname>
-+ <refname>systemd-update-utmp</refname>
-+ <refpurpose>Write audit and utmp updates at bootup, runlevel
-+ changes and shutdown</refpurpose>
-+ </refnamediv>
-+
-+ <refsynopsisdiv>
-+ <para><filename>systemd-update-utmp.service</filename></para>
-+ <para><filename>systemd-update-utmp-runlevel.service</filename></para>
-+ <para><filename>/usr/lib/systemd/systemd-update-utmp</filename></para>
-+ </refsynopsisdiv>
-+
-+ <refsect1>
-+ <title>Description</title>
-+
-+ <para><filename>systemd-update-utmp-runlevel.service</filename>
-+ is a service that writes SysV runlevel changes to utmp
-+ and wtmp, as well as the audit logs, as they
-+ occur. <filename>systemd-update-utmp.service</filename>
-+ does the same for system reboots and shut-down requests.</para>
-+ </refsect1>
-+
-+ <refsect1>
-+ <title>See Also</title>
-+ <para>
-+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
-+ <citerefentry><refentrytitle>utmp</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
-+ <citerefentry><refentrytitle>auditd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-+ </para>
-+ </refsect1>
-+
-+</refentry>
-diff --git a/src/update-utmp/update-utmp.c b/src/update-utmp/update-utmp.c
-index 9184025..202aa98 100644
---- a/src/update-utmp/update-utmp.c
-+++ b/src/update-utmp/update-utmp.c
-@@ -104,7 +104,7 @@ static int get_current_runlevel(Context *c) {
- { '3', SPECIAL_RUNLEVEL3_TARGET },
- { '4', SPECIAL_RUNLEVEL4_TARGET },
- { '2', SPECIAL_RUNLEVEL2_TARGET },
-- { 'S', SPECIAL_RESCUE_TARGET },
-+ { '1', SPECIAL_RESCUE_TARGET },
- };
- const char
- *interface = "org.freedesktop.systemd1.Unit",
-diff --git a/units/systemd-update-utmp-runlevel.service.in b/units/systemd-update-utmp-runlevel.service.in
-index 27fae2c..99783e2 100644
---- a/units/systemd-update-utmp-runlevel.service.in
-+++ b/units/systemd-update-utmp-runlevel.service.in
-@@ -7,12 +7,14 @@
-
- [Unit]
- Description=Update UTMP about System Runlevel Changes
--Documentation=man:systemd-update-utmp-runlevel.service(8) man:utmp(5)
-+Documentation=man:systemd-update-utmp.service(8) man:utmp(5)
- DefaultDependencies=no
- RequiresMountsFor=/var/log/wtmp
--After=systemd-remount-fs.service systemd-tmpfiles-setup.service auditd.service
-+Conflicts=shutdown.target
-+Requisite=systemd-update-utmp.service
-+After=systemd-update-utmp.service
- After=runlevel1.target runlevel2.target runlevel3.target runlevel4.target runlevel5.target
--Before=final.target
-+Before=shutdown.target
-
- [Service]
- Type=oneshot
-diff --git a/units/systemd-update-utmp-shutdown.service.in b/units/systemd-update-utmp-shutdown.service.in
-deleted file mode 100644
-index aa93562..0000000
---- a/units/systemd-update-utmp-shutdown.service.in
-+++ /dev/null
-@@ -1,19 +0,0 @@
--# 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.
--
--[Unit]
--Description=Update UTMP about System Shutdown
--Documentation=man:systemd-update-utmp-runlevel.service(8) man:utmp(5)
--DefaultDependencies=no
--RequiresMountsFor=/var/log/wtmp
--After=systemd-remount-fs.service systemd-tmpfiles-setup.service auditd.service
--After=systemd-update-utmp-runlevel.service
--Before=final.target
--
--[Service]
--Type=oneshot
--ExecStart=@rootlibexecdir@/systemd-update-utmp shutdown
-diff --git a/units/systemd-update-utmp.service.in b/units/systemd-update-utmp.service.in
-new file mode 100644
-index 0000000..e7c20a5
---- /dev/null
-+++ b/units/systemd-update-utmp.service.in
-@@ -0,0 +1,21 @@
-+# 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.
-+
-+[Unit]
-+Description=Update UTMP about System Reboot/Shutdown
-+Documentation=man:systemd-update-utmp.service(8) man:utmp(5)
-+DefaultDependencies=no
-+RequiresMountsFor=/var/log/wtmp
-+Conflicts=shutdown.target
-+After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-remount-fs.service systemd-tmpfiles-setup.service auditd.service
-+Before=sysinit.target shutdown.target
-+
-+[Service]
-+Type=oneshot
-+RemainAfterExit=yes
-+ExecStart=@rootlibexecdir@/systemd-update-utmp reboot
-+ExecStop=@rootlibexecdir@/systemd-update-utmp shutdown
---
-1.8.2.3
-
Upstream-Status: Denied [no desire for uclibc support]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: systemd-204/src/journal/journal-send.c
+Index: systemd-206/src/journal/journal-send.c
===================================================================
---- systemd-204.orig/src/journal/journal-send.c 2013-05-06 12:06:04.000000000 -0700
-+++ systemd-204/src/journal/journal-send.c 2013-05-23 11:21:14.500338688 -0700
+--- systemd-206.orig/src/journal/journal-send.c 2013-07-21 15:43:28.000000000 -0700
++++ systemd-206/src/journal/journal-send.c 2013-08-21 08:50:50.825892498 -0700
@@ -46,6 +46,8 @@
memcpy(*_f + 10, _func, _fl); \
} while(false)
/* We open a single fd, and we'll share it with the current process,
* all its threads, and all its subprocesses. This means we need to
* initialize it atomically, and need to operate on it atomically
-@@ -312,8 +314,13 @@
+@@ -311,8 +313,13 @@
/* Message doesn't fit... Let's dump the data in a temporary
* file and just pass a file descriptor of it to the other
* side */
if (buffer_fd < 0)
return -errno;
-Index: systemd-204/src/core/manager.c
+Index: systemd-206/src/core/manager.c
===================================================================
---- systemd-204.orig/src/core/manager.c 2013-04-25 17:53:56.000000000 -0700
-+++ systemd-204/src/core/manager.c 2013-05-23 11:23:15.864340878 -0700
-@@ -72,6 +72,8 @@
+--- systemd-206.orig/src/core/manager.c 2013-07-21 15:43:28.000000000 -0700
++++ systemd-206/src/core/manager.c 2013-08-21 08:51:35.209893331 -0700
+@@ -71,6 +71,7 @@
#include "audit-fd.h"
+ #include "efivars.h"
#include "env-util.h"
-
+#include "config.h"
-+
- /* As soon as 16 units are in our GC queue, make sure to run a gc sweep */
- #define GC_QUEUE_ENTRIES_MAX 16
-@@ -1973,7 +1975,12 @@
+ /* As soon as 5s passed since a unit was added to our GC queue, make sure to run a gc sweep */
+ #define GC_QUEUE_USEC_MAX (10*USEC_PER_SEC)
+@@ -2058,7 +2059,12 @@
return -ENOMEM;
RUN_WITH_UMASK(0077) {
}
if (fd < 0) {
-Index: systemd-204/src/shared/util.c
+Index: systemd-206/src/shared/util.c
===================================================================
---- systemd-204.orig/src/shared/util.c 2013-05-07 12:07:22.000000000 -0700
-+++ systemd-204/src/shared/util.c 2013-05-23 11:19:35.028336822 -0700
+--- systemd-206.orig/src/shared/util.c 2013-07-21 15:43:28.000000000 -0700
++++ systemd-206/src/shared/util.c 2013-08-21 08:50:50.829892498 -0700
@@ -74,6 +74,8 @@
#include "env-util.h"
#include "fileio.h"
int saved_argc = 0;
char **saved_argv = NULL;
-@@ -3921,7 +3923,12 @@
+@@ -3980,7 +3982,12 @@
t[k] = '.';
stpcpy(stpcpy(t+k+1, fn), "XXXXXX");
if (fd < 0) {
free(t);
return -errno;
-Index: systemd-204/src/shared/ask-password-api.c
+Index: systemd-206/src/shared/ask-password-api.c
===================================================================
---- systemd-204.orig/src/shared/ask-password-api.c 2013-04-08 08:26:34.000000000 -0700
-+++ systemd-204/src/shared/ask-password-api.c 2013-05-23 11:24:43.456342451 -0700
+--- systemd-206.orig/src/shared/ask-password-api.c 2013-07-21 15:43:28.000000000 -0700
++++ systemd-206/src/shared/ask-password-api.c 2013-08-21 08:50:50.829892498 -0700
@@ -37,6 +37,8 @@
#include "ask-password-api.h"
}
if (fd < 0) {
-Index: systemd-204/src/journal/journalctl.c
+Index: systemd-206/src/journal/journalctl.c
===================================================================
---- systemd-204.orig/src/journal/journalctl.c 2013-05-07 12:07:22.000000000 -0700
-+++ systemd-204/src/journal/journalctl.c 2013-05-23 11:19:35.028336822 -0700
-@@ -755,7 +755,13 @@
+--- systemd-206.orig/src/journal/journalctl.c 2013-07-21 15:43:28.000000000 -0700
++++ systemd-206/src/journal/journalctl.c 2013-08-21 08:50:50.833892498 -0700
+@@ -1005,7 +1005,13 @@
n /= arg_interval;
close_nointr_nofail(fd);
if (fd < 0) {
log_error("Failed to open %s: %m", k);
r = -errno;
-Index: systemd-204/src/journal/journal-verify.c
+Index: systemd-206/src/journal/journal-verify.c
===================================================================
---- systemd-204.orig/src/journal/journal-verify.c 2012-11-20 13:42:23.000000000 -0800
-+++ systemd-204/src/journal/journal-verify.c 2013-05-23 11:19:35.032336822 -0700
-@@ -700,8 +700,12 @@
+--- systemd-206.orig/src/journal/journal-verify.c 2013-07-21 15:43:28.000000000 -0700
++++ systemd-206/src/journal/journal-verify.c 2013-08-21 08:50:50.833892498 -0700
+@@ -811,8 +811,12 @@
#endif
} else if (f->seal)
return -ENOKEY;
if (data_fd < 0) {
log_error("Failed to create data file: %m");
r = -errno;
-@@ -709,7 +713,12 @@
+@@ -820,7 +824,12 @@
}
unlink(data_path);
if (entry_fd < 0) {
log_error("Failed to create entry file: %m");
r = -errno;
-@@ -717,7 +726,12 @@
+@@ -828,7 +837,12 @@
}
unlink(entry_path);