ecbff1
From d538b6082216f4867b4a50c8009abe2462aafbf4 Mon Sep 17 00:00:00 2001
ecbff1
From: Michal Sekletar <msekletar@users.noreply.github.com>
ecbff1
Date: Thu, 31 Aug 2017 11:20:14 +0200
ecbff1
Subject: [PATCH] units: introduce getty-pre.target (#6667)
ecbff1
ecbff1
This new target is a passive unit, hence it is supposed to be pulled in
ecbff1
to the transaction by the service that wants to block login on the
ecbff1
console (e.g. text version of initial-setup). Now both getty and
ecbff1
serial-getty are ordered after this target.
ecbff1
ecbff1
https://lists.freedesktop.org/archives/systemd-devel/2015-July/033754.html
ecbff1
ecbff1
(cherry picked from commit 175902541852fb9207f6e532d8da48c9a102340c)
ecbff1
ecbff1
Conflicts:
ecbff1
	units/meson.build
ecbff1
ecbff1
Resolves: #1173080
ecbff1
---
ecbff1
 Makefile.am                    |  1 +
ecbff1
 man/systemd.special.xml        | 12 ++++++++++++
ecbff1
 units/getty-pre.target         | 11 +++++++++++
ecbff1
 units/getty@.service.m4        |  2 +-
ecbff1
 units/serial-getty@.service.m4 |  2 +-
ecbff1
 5 files changed, 26 insertions(+), 2 deletions(-)
ecbff1
 create mode 100644 units/getty-pre.target
ecbff1
ecbff1
diff --git a/Makefile.am b/Makefile.am
ecbff1
index e9ceac98a..7c58fd050 100644
ecbff1
--- a/Makefile.am
ecbff1
+++ b/Makefile.am
ecbff1
@@ -462,6 +462,7 @@ dist_systemunit_DATA = \
ecbff1
 	units/sysinit.target \
ecbff1
 	units/basic.target \
ecbff1
 	units/getty.target \
ecbff1
+	units/getty-pre.target \
ecbff1
 	units/halt.target \
ecbff1
 	units/kexec.target \
ecbff1
 	units/local-fs.target \
ecbff1
diff --git a/man/systemd.special.xml b/man/systemd.special.xml
ecbff1
index 553197d66..eb464f9f8 100644
ecbff1
--- a/man/systemd.special.xml
ecbff1
+++ b/man/systemd.special.xml
ecbff1
@@ -61,6 +61,7 @@
ecbff1
     <filename>exit.target</filename>,
ecbff1
     <filename>final.target</filename>,
ecbff1
     <filename>getty.target</filename>,
ecbff1
+    <filename>getty-pre.target</filename>,
ecbff1
     <filename>graphical.target</filename>,
ecbff1
     <filename>halt.target</filename>,
ecbff1
     <filename>hibernate.target</filename>,
ecbff1
@@ -216,6 +217,17 @@
ecbff1
           </para>
ecbff1
         </listitem>
ecbff1
       </varlistentry>
ecbff1
+      <varlistentry>
ecbff1
+        <term><filename>getty-pre.target</filename></term>
ecbff1
+        <listitem>
ecbff1
+          <para>A special passive target unit. Users of this target
ecbff1
+          are expected to pull it in the boot transaction via
ecbff1
+          a dependency (e.g. <varname>Wants=</varname>). Order your
ecbff1
+          unit before this unit if you want to make use of the console
ecbff1
+          just before <filename>getty</filename> is started.
ecbff1
+          </para>
ecbff1
+        </listitem>
ecbff1
+      </varlistentry>
ecbff1
       <varlistentry>
ecbff1
         <term><filename>graphical.target</filename></term>
ecbff1
         <listitem>
ecbff1
diff --git a/units/getty-pre.target b/units/getty-pre.target
ecbff1
new file mode 100644
ecbff1
index 000000000..f6c78b6c2
ecbff1
--- /dev/null
ecbff1
+++ b/units/getty-pre.target
ecbff1
@@ -0,0 +1,11 @@
ecbff1
+#  This file is part of systemd.
ecbff1
+#
ecbff1
+#  systemd is free software; you can redistribute it and/or modify it
ecbff1
+#  under the terms of the GNU Lesser General Public License as published by
ecbff1
+#  the Free Software Foundation; either version 2.1 of the License, or
ecbff1
+#  (at your option) any later version.
ecbff1
+
ecbff1
+[Unit]
ecbff1
+Description=Login Prompts (Pre)
ecbff1
+Documentation=man:systemd.special(7) man:systemd-getty-generator(8)
ecbff1
+Documentation=http://0pointer.de/blog/projects/serial-console.html
ecbff1
diff --git a/units/getty@.service.m4 b/units/getty@.service.m4
ecbff1
index 46164ab9d..ad4bf2103 100644
ecbff1
--- a/units/getty@.service.m4
ecbff1
+++ b/units/getty@.service.m4
ecbff1
@@ -9,7 +9,7 @@
ecbff1
 Description=Getty on %I
ecbff1
 Documentation=man:agetty(8) man:systemd-getty-generator(8)
ecbff1
 Documentation=http://0pointer.de/blog/projects/serial-console.html
ecbff1
-After=systemd-user-sessions.service plymouth-quit-wait.service
ecbff1
+After=systemd-user-sessions.service plymouth-quit-wait.service getty-pre.target
ecbff1
 m4_ifdef(`HAVE_SYSV_COMPAT',
ecbff1
 After=rc-local.service
ecbff1
 )m4_dnl
ecbff1
diff --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4
ecbff1
index 4522d0d2b..6802333f7 100644
ecbff1
--- a/units/serial-getty@.service.m4
ecbff1
+++ b/units/serial-getty@.service.m4
ecbff1
@@ -10,7 +10,7 @@ Description=Serial Getty on %I
ecbff1
 Documentation=man:agetty(8) man:systemd-getty-generator(8)
ecbff1
 Documentation=http://0pointer.de/blog/projects/serial-console.html
ecbff1
 BindsTo=dev-%i.device
ecbff1
-After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service
ecbff1
+After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service getty-pre.target
ecbff1
 m4_ifdef(`HAVE_SYSV_COMPAT',
ecbff1
 After=rc-local.service
ecbff1
 )m4_dnl