[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#835520: Seconding nine patches & seeking seconds for two more



On Thu, Aug 03, 2017 at 10:55:30AM -0400, Sean Whitton wrote:
> I second all of Andreas' patches except the 5th and 8th.  I've attached
> the diff to which my second applies.
> 
> The 5th and 8th patches introduce a normative requirement to use
> debhelper.  This is a first for policy, which up to now only comments
> that using debhelper is "easiest".

thanks again for spotting this, Sean!
 
> I've spoken to h01ger and gregoa IRL and they say that they missed the
> magic word "should" which is what makes debhelper required by these
> patches.  So I'm seeking seconds for the following replacement for
> Andreas' 5th and 8th patches:
> 
> diff --git a/policy.xml b/policy.xml
> index 3daa532..c6c7412 100644
> --- a/policy.xml
> +++ b/policy.xml
> @@ -8525,6 +8525,14 @@ fi</programlisting>
>              <literal>update-rc.d</literal>, please consult its man page
>              <citerefentry><refentrytitle>update-rc.d</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
>            </para>
> +          <para>
> +            It is easiest for packages not to call
> +            <command>update-rc.d</command> directly, but instead use
> +            debhelper programs that add the required
> +            <command>update-rc.d</command> calls automatically.  See
> +            <command>dh_installinit</command>,
> +            <command>dh_systemd_enable</command>, etc.
> +          </para>
>          </section>
>  
>          <section id="s9.3.3.2">
> @@ -8573,6 +8581,14 @@ invoke-rc.d <replaceable>package</replaceable> <replaceable>action</replaceable>
>              <command>invoke-rc.d</command>, please consult its man page
>              <citerefentry><refentrytitle>invoke-rc.d</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
>            </para>
> +          <para>
> +            It is easiest for packages not to call
> +            <command>invoke-rc.d</command> directly, but instead use
> +            debhelper programs that add the required
> +            <command>invoke-rc.d</command> calls automatically.  See
> +            <command>dh_installinit</command>,
> +            <command>dh_systemd_start</command>, etc.
> +          </para>
>          </section>
>  
>        </section>
> 
> -- 
> Sean Whitton

> diff --git a/policy.sgml b/policy.sgml
> index 9cd182b..2b37df8 100644
> --- a/policy.sgml
> +++ b/policy.sgml
> @@ -7053,12 +7053,6 @@ Built-Using: grub2 (= 1.99-9), loadlin (= 1.6e-1)
>  		  in <file>/run</file> should be stored on a temporary
>  		  file system.
>  		</p>
> -		<p>
> -		  Packages must not assume the <file>/run</file>
> -		  directory exists or is usable without a dependency
> -		  on <tt>initscripts (>= 2.88dsf-13.3)</tt> until the
> -		  stable release of Debian supports <file>/run</file>.
> -		</p>
>  	      </item>
>  	      <item>
>  		<p>
> @@ -7654,7 +7648,7 @@ test -f <var>program-executed-later-in-script</var> || exit 0
>  	</sect1>
>  
>  	<sect1>
> -	  <heading>Interfacing with the initscript system</heading>
> +	  <heading>Interfacing with init systems</heading>
>  
>  	  <p>
>  	    Maintainers should use the abstraction layer provided by
> @@ -7697,19 +7691,6 @@ test -f <var>program-executed-later-in-script</var> || exit 0
>  	    </p>
>  
>  	    <p>
> -	      By default <prgn>update-rc.d</prgn> will start services in
> -	      each of the multi-user state runlevels (2, 3, 4, and 5)
> -	      and stop them in the halt runlevel (0), the single-user
> -	      runlevel (1) and the reboot runlevel (6).  The system
> -	      administrator will have the opportunity to customize
> -	      runlevels by simply adding, moving, or removing the
> -	      symbolic links in <file>/etc/rc<var>n</var>.d</file> if
> -	      symbolic links are being used, or by modifying
> -	      <file>/etc/runlevel.conf</file> if the <tt>file-rc</tt> method
> -	      is being used.
> -	    </p>
> -
> -	    <p>
>  	      To get the default behavior for your package, put in your
>  	      <prgn>postinst</prgn> script
>  	      <example compact="compact">
> @@ -7727,15 +7708,6 @@ test -f <var>program-executed-later-in-script</var> || exit 0
>  	    </p>
>  
>  	    <p>
> -	      This will use a default sequence number of 20.  If it does
> -	      not matter when or in which order the <file>init.d</file>
> -	      script is run, use this default.  If it does, then you
> -	      should talk to the maintainer of the <prgn>sysvinit</prgn>
> -	      package or post to <tt>debian-devel</tt>, and they will
> -	      help you choose a number.
> -	    </p>
> -
> -	    <p>
>  	      For more information about using <tt>update-rc.d</tt>,
>  	      please consult its man page <manref name="update-rc.d"
>  		section="8">.
> @@ -7756,8 +7728,8 @@ test -f <var>program-executed-later-in-script</var> || exit 0
>  	    <p>
>  	      The package maintainer scripts must use
>  	      <prgn>invoke-rc.d</prgn> to invoke the
> -	      <file>/etc/init.d/*</file> initscripts, instead of
> -	      calling them directly.
> +	      <file>/etc/init.d/*</file> initscripts or equivalent,
> +	      instead of calling them directly.
>  	    </p>
>  
>  	    <p>
> @@ -7769,17 +7741,11 @@ test -f <var>program-executed-later-in-script</var> || exit 0
>  	    </p>
>  
>  	    <p>
> -	      Most packages will simply need to change:
> -	      <example compact="compact">/etc/init.d/&lt;package&gt;
> -	      &lt;action&gt;</example> in their <prgn>postinst</prgn>
> -	      and <prgn>prerm</prgn> scripts to:
> +	      Most packages will simply use:
>  	      <example compact="compact">
> -	if which invoke-rc.d >/dev/null 2>&1; then
>  		invoke-rc.d <var>package</var> &lt;action&gt;
> -	else
> -		/etc/init.d/<var>package</var> &lt;action&gt;
> -	fi
>  	      </example>
> +	      in their <prgn>postinst</prgn> and <prgn>prerm</prgn> scripts.
>  	    </p>
>  
>  	    <p>
> @@ -7798,226 +7764,19 @@ test -f <var>program-executed-later-in-script</var> || exit 0
>  	</sect1>
>  
>  	<sect1>
> -	  <heading>Boot-time initialization</heading>
> -
> -          <p>
> -            There used to be another directory, <file>/etc/rc.boot</file>,
> -            which contained scripts which were run once per machine
> -            boot. This has been deprecated in favour of links from
> -            <file>/etc/rcS.d</file> to files in <file>/etc/init.d</file> as
> -            described in <ref id="/etc/init.d">.  Packages must not
> -            place files in <file>/etc/rc.boot</file>.
> -	  </p>
> -	</sect1>
> -
> -	<sect1>
>  	  <heading>Example</heading>
>  
>  	  <p>
>  	    An example on which you can base your
>  	    <file>/etc/init.d</file> scripts is found in
>  	    <file>/etc/init.d/skeleton</file>.
> +	    Examples on which you can base your systemd integration on
> +	    is available in the man page <manref name="systemd.unit" section="8">.
>  	  </p>
>  
>  	</sect1>
>        </sect>
>  
> -      <sect>
> -	<heading>Console messages from <file>init.d</file> scripts</heading>
> -
> -	<p>
> -	  This section describes the formats to be used for messages
> -	  written to standard output by the <file>/etc/init.d</file>
> -	  scripts.  The intent is to improve the consistency of
> -	  Debian's startup and shutdown look and feel.  For this
> -	  reason, please look very carefully at the details.  We want
> -	  the messages to have the same format in terms of wording,
> -	  spaces, punctuation and case of letters.
> -	</p>
> -
> -	<p>
> -	  Here is a list of overall rules that should be used for
> -	  messages generated by <file>/etc/init.d</file> scripts.  
> -	</p>
> -
> -	<p>
> -	  <list>
> -	    <item>
> -		The message should fit in one line (fewer than 80
> -		characters), start with a capital letter and end with
> -		a period (<tt>.</tt>) and line feed (<tt>"\n"</tt>).
> -	    </item>
> -
> -	    <item>
> -              If the script is performing some time consuming task in
> -              the background (not merely starting or stopping a
> -              program, for instance), an ellipsis (three dots:
> -              <tt>...</tt>) should be output to the screen, with no
> -              leading or tailing whitespace or line feeds.
> -	    </item>
> -
> -	    <item>
> -              The messages should appear as if the computer is telling
> -              the user what it is doing (politely :-), but should not
> -                mention "it" directly.  For example, instead of:
> -		<example compact="compact">
> -I'm starting network daemons: nfsd mountd.
> -		</example>
> -		the message should say
> -		<example compact="compact">
> -Starting network daemons: nfsd mountd.
> -		</example>
> -	    </item>
> -	  </list>
> -	</p>
> -
> -	<p>
> -          <tt>init.d</tt> script should use the following  standard
> -          message formats for the situations enumerated below.
> -	</p>
> -
> -	<p>
> -	  <list>
> -	    <item>
> -	      <p>When daemons are started</p>
> -
> -	      <p>
> -		If the script starts one or more daemons, the output
> -		should look like this (a single line, no leading
> -		spaces):
> -		<example compact="compact">
> -Starting <var>description</var>: <var>daemon-1</var> ... <var>daemon-n</var>.
> -		</example>
> -		The <var>description</var> should describe the
> -		subsystem the daemon or set of daemons are part of,
> -		while <var>daemon-1</var> up to <var>daemon-n</var>
> -		denote each daemon's name (typically the file name of
> -		the program).
> -	      </p>
> -
> -	      <p>
> -		For example, the output of <file>/etc/init.d/lpd</file>
> -		would look like:
> -		<example compact="compact">
> -Starting printer spooler: lpd.
> -		</example>
> -	      </p>
> -
> -	      <p>
> -		This can be achieved by saying
> -		<example compact="compact">
> -echo -n "Starting printer spooler: lpd"
> -start-stop-daemon --start --quiet --exec /usr/sbin/lpd
> -echo "."
> -		</example>
> -		in the script. If there are more than one daemon to
> -		start, the output should look like this:
> -		<example compact="compact">
> -echo -n "Starting remote file system services:"
> -echo -n " nfsd"; start-stop-daemon --start --quiet nfsd
> -echo -n " mountd"; start-stop-daemon --start --quiet mountd
> -echo -n " ugidd"; start-stop-daemon --start --quiet ugidd
> -echo "."
> -		</example>
> -		This makes it possible for the user to see what is
> -		happening and when the final daemon has been started.
> -		Care should be taken in the placement of white spaces:
> -		in the example above the system administrators can
> -		easily comment out a line if they don't want to start
> -		a specific daemon, while the displayed message still
> -		looks good.
> -	      </p>
> -	    </item>
> -
> -	    <item>
> -	      <p>When a system parameter is being set</p>
> -
> -	      <p>
> -		If you have to set up different system parameters
> -		during the system boot, you should use this format:
> -		<example compact="compact">
> -Setting <var>parameter</var> to "<var>value</var>".
> -		</example>
> -	      </p>
> -
> -	      <p>
> -		You can use a statement such as the following to get
> -		the quotes right:
> -		<example compact="compact">
> -echo "Setting DNS domainname to \"$domainname\"."
> -		</example>
> -	      </p>
> -
> -	      <p>
> -                Note that the same symbol (<tt>"</tt>) <!-- " --> is used
> -                for the left and right quotation marks.  A grave accent
> -                (<tt>`</tt>) is not a quote character; neither is an
> -                apostrophe (<tt>'</tt>).
> -	      </p>
> -	    </item>
> -
> -	    <item>
> -	      <p>When a daemon is stopped or restarted</p>
> -
> -	      <p>
> -		When you stop or restart a daemon, you should issue a
> -		message identical to the startup message, except that
> -		<tt>Starting</tt> is replaced with <tt>Stopping</tt>
> -		or <tt>Restarting</tt> respectively.
> -	      </p>
> -
> -	      <p>
> -		For example, stopping the printer daemon will look like
> -		this:
> -		<example compact="compact">
> -Stopping printer spooler: lpd.
> -		</example>
> -	      </p>
> -	    </item>
> -
> -	    <item>
> -	      <p>When something is executed</p>
> -
> -	      <p>
> -		There are several examples where you have to run a
> -		program at system startup or shutdown to perform a
> -		specific task, for example, setting the system's clock
> -		using <prgn>netdate</prgn> or killing all processes
> -		when the system shuts down.  Your message should look
> -		like this:
> -		<example compact="compact">
> -Doing something very useful...done.
> -		</example>
> -		You should print the <tt>done.</tt> immediately after
> -		the job has been completed, so that the user is
> -		informed why they have to wait.  You can get this
> -		behavior by saying
> -		<example compact="compact">
> -echo -n "Doing something very useful..."
> -do_something
> -echo "done."
> -		</example>
> -		in your script.
> -	      </p>
> -	    </item>
> -
> -	    <item>
> -	      <p>When the configuration is reloaded</p>
> -
> -	      <p>
> -		When a daemon is forced to reload its configuration
> -		files you should use the following format:
> -		<example compact="compact">
> -Reloading <var>description</var> configuration...done.
> -		</example>
> -		where <var>description</var> is the same as in the
> -		daemon starting message.
> -	      </p>
> -	    </item>
> -	  </list>
> -	</p>
> -      </sect>
> -
>        <sect id="cron-jobs">
>  	<heading>Cron jobs</heading>
>  

seconded.


-- 
cheers,
	Holger

Attachment: signature.asc
Description: Digital signature


Reply to: