Bug#1051371: debian-policy: stop referring to legacy filesystem paths for script interpreters

2023-09-08 Thread Luca Boccassi
On Fri, 8 Sept 2023 at 05:22, Russ Allbery  wrote:
>
> Luca Boccassi  writes:
>
> > And I am more than a bit sad that sensible, clear-cut, binding and
> > already-implemented decisions taken by our constitutional bodies get
> > constantly second-guessed and belittled because of an irrational
> > attachment to inconsequential accidents of history. But what can we do,
> > we'll just have to be sad together, I guess.
>
> > Aside from that, in the future please avoid using the word 'minorities'
> > when talking about silly things such as liking or disliking symlinks, as
> > in common English it is used to refer to much more serious matters.
>
> Okay, stop.  We are not going to have a Policy conversation like this.
> Nothing about this discussion style helps in making a good decision.
>
> Luca, you have asked repeatedly what you can do to advance the status of
> your open Policy bugs.  Most of the answer to that question is that a lot
> of it is outside of your control; I've been having a spectacularly
> annoying summer in a bunch of minor ways and, frankly, simply haven't done
> much of anything I'm responsible for in Debian.  But the most helpful
> thing that you could possibly do would be to stop being utterly
> emotionally exhausting to deal with.

I hope you will fare better in autumn, and take all the time you need.
If I inquire about status on the other open bugs is only because I am
unsure of whether I have missed something on my side, and want to
double check that nobody is waiting on new revisions or so, because I
find it hard to track things in long email threads, and I easily miss
stuff, especially as when I asked if I missed something, someone else
said "Yes, Russ posted some comments on your most recent revision, I
believe.", but I couldn't find it. I wouldn't have thought that
sending a reply with "Anything I can do to unblock this?" once a month
or so would be classed as abusive, but given it exhausts you, I'll
stop and just hope I got everything right as-is.

> Case in point: now I'm writing this email message rather than doing any of
> the other things that I am quite sure you would rather that I be doing and
> that you would consider a much higher priority.
>
> In this bug, about a point that from the Policy perspective is mostly not
> even normative, which appears to partly be a bug report against Lintian by
> proxy (the Policy Editors do not maintain Lintian), you started at an
> emotional level of eight out of ten before anyone even disagreed with you.
> Let me quote the start of this bug:
>
> I heard many times the policy maintainers mention something along the
> lines of 'policy should not be a hammer to beat other maintainers
> with'. Today I saw policy being used to force a maintainer to re-add
> support for the deprecated and unsupported split-usr filesystem
> layout, as 'policy only mentions /bin/sh, not /usr/bin/sh'.
>
> So let's update the policy to refer to modern and supported filesystem
> paths as adopted by Debian de-facto and de-jure, and stop other
> maintainers from getting beaten with it.
>
> So right from the first message, you're saying that the goal of this
> proposal is to stop other people from doing something socially you don't
> like that Policy doesn't even tell them to do.  And you're using phrasing
> that you know is loaded and contentious and that you know the people
> you've been arguing with all over Debian will disagree with.

No. The point of this proposal is to fix something that is
self-evidently unclear - non-normative (as I've been told, I thought
it was normative when I opened the bug) language being used as if it
were normative, both by Lintian (yes, the issue has been raised
separately and a fix provided) and by bug reporters. Given, again,
I've been told many times (I believe by yourself, too) that policy
should not be used as a tool to bash developers with, and given I have
witnessed precisely that the other day, I hence decided to spend some
of my time to try and fix that.
As already discussed earlier on this thread, I am fine with changing
the wording of the patch however it fits best, as long as it improves
clarity for this purpose.

> I have no idea why.  Because you like making them mad?  Because you're mad
> and you want to keep rubbing in their face the fact you disagree with
> them?  Maybe you think this is your strongest argument?  (It is not.)
>
> This is pretty much guaranteed to turn the bug into a fight regardless of
> its technical merits, because this presentation essentially says that
> you're spoiling for a fight and want someone to attack you.
>
> I cannot remember the last time I have seen someone who is this unwilling
> to win an argument.  It's driving me nuts.  You are winning your technical
> arguments in Debian!  The technical design that you support is being
> implemented because you and others have convinced people that it is a good
> idea, even though some people are very upset about this!  T

Bug#1051371: debian-policy: stop referring to legacy filesystem paths for script interpreters

2023-09-08 Thread Sam Hartman
> "Luca" == Luca Boccassi  writes:
Luca> Secondly, and less importantly, while I appreciate it's not
Luca> how you handle policy changes, the way the rest of the
Luca> distribution works is by 'building consensus' on mailing
Luca> lists. Now I don't particularly like it, but it is what it
Luca> is. And that means if somebody comes up with the most
Luca> egregious nonsense like, to pick a completely fictional
Luca> example, "hey folks, usr-merge broke docker, rsync and
Luca> ansible, we need to revert it", and it is left unchallenged,
Luca> then it becomes doxa.  So it has to be challenged. Every
Luca> time. After half a decade, you don't think _that_ is
Luca> exhausting?


Thanks for sharing this.
I understand what you've been doing a lot better now.  And if it is
actually true that you need to challenge these assertions every time,
your behavior makes more sense to me.

However, it's been my experience that challenging these assertions every
time is unnecessary.  It actually makes it harder to judge consensus and
keeps discussions alive longer than they need to.
I actually think that there are cases where if you had said less, a
consensus you would have liked just fine would have emerged faster  than
has happened.
Often when someone says something rediculous in a consensus discussion
it is best to let it fall into a void of silence.
Challenging it can sometimes just give it energy.

I would be very open to helping you (or anyone) explore how to work more
efficiently in a consensus environment and how to espace from a
consensus discussion when consensus is the wrong tool.
I realized that I focused a lot on consensus during my term as DPL.  A
lot of that was that I was hoping to help people explore how to approach
consensus discussions better (and because it was the right tool for some
of those discussions).
But there are a lot of discussions where consensus is the wrong tool.
And now that we've leveled up how we approach consensus discussions,
perhaps we should level up how not to have them:-)


signature.asc
Description: PGP signature


Processed: Re: Bug#1051371: debian-policy: stop referring to legacy filesystem paths for script interpreters

2023-09-08 Thread Debian Bug Tracking System
Processing control commands:

> retitle -1 debian-policy: stop referring to specific paths in scripts shebang 
> examples
Bug #1051371 [debian-policy] debian-policy: stop referring to legacy filesystem 
paths for script interpreters
Changed Bug title to 'debian-policy: stop referring to specific paths in 
scripts shebang examples' from 'debian-policy: stop referring to legacy 
filesystem paths for script interpreters'.

-- 
1051371: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1051371
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems



Bug#1051371: debian-policy: stop referring to legacy filesystem paths for script interpreters

2023-09-08 Thread Luca Boccassi
Control: retitle -1 debian-policy: stop referring to specific paths in scripts 
shebang examples

On Thu, 7 Sep 2023 08:09:12 +0200 Helmut Grohne 
wrote:
> Would you agree to repurpose this bug to propose the former change?
> While my variant is weaker, it still prevents people from using
policy
> to require supporting split-/usr.

I have rewritten the patch and the commit message. Now it simply
removes the full paths where it is not necessary, as the text simply
talks about the different types of interpreters, and in two occasions
where a shebang is specified, a note is added to mention that other
valid paths are also acceptable (without saying what they are), taking
in both your and Sam's suggestions as I've understood them.

This thus doesn't encourage nor suggest any changes, but simply removes
the ambiguity over what is and is not allowed by norm.

Does this look more amenable?

From  Mon Sep 17 00:00:00 2001
From: Luca Boccassi 
Date: Wed, 6 Sep 2023 22:41:58 +0100
Subject: [PATCH] Stop referring to specific paths in scripts shebang examples

These are being mistaken for normative languages, but they are just
examples. Remove full paths where not needed, and specify that other
valid paths (without mentioning them explicitly) are also acceptable
in other places.
---
 policy/ch-files.rst | 20 +++-
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/policy/ch-files.rst b/policy/ch-files.rst
index b34c183..593d586 100644
--- a/policy/ch-files.rst
+++ b/policy/ch-files.rst
@@ -211,8 +211,8 @@ may instead be easier to check the exit status of commands 
directly. See
 Every script should use ``set -e`` or check the exit status of *every*
 command.
 
-Scripts may assume that ``/bin/sh`` implements the POSIX.1-2017 Shell Command
-Language  [#]_ plus the following additional features not mandated by
+Scripts may assume that the ``sh`` executable implements the POSIX.1-2017 Shell
+Command Language  [#]_ plus the following additional features not mandated by
 POSIX.1-2017.. [#]_
 
 -  ``echo -n``, if implemented as a shell built-in, must not generate a
@@ -248,16 +248,16 @@ POSIX.1-2017.. [#]_
 
 If a shell script requires non-POSIX.1-2017 features from the shell interpreter
 other than those listed above, the appropriate shell must be specified
-in the first line of the script (e.g., ``#!/bin/bash``) and the package
-must depend on the package providing the shell (unless the shell package
-is marked "Essential", as in the case of ``bash``).
+in the first line of the script (e.g., ``#!/bin/bash`` or other valid paths)
+and the package must depend on the package providing the shell (unless the 
shell
+package is marked "Essential", as in the case of ``bash``).
 
 You may wish to restrict your script to POSIX.1-2017 features plus the above
-set when possible so that it may use ``/bin/sh`` as its interpreter.
+set when possible so that it may use ``sh`` as its interpreter.
 Checking your script with ``checkbashisms`` from the devscripts package
 or running your script with an alternate shell such as ``posh`` may help
 uncover violations of the above requirements. If in doubt whether a
-script complies with these requirements, use ``/bin/bash``.
+script complies with these requirements, use ``bash``.
 
 Perl scripts should check for errors when making any system calls,
 including ``open``, ``print``, ``close``, ``rename`` and ``system``.
@@ -266,7 +266,9 @@ including ``open``, ``print``, ``close``, ``rename`` and 
``system``.
 Programming Considered Harmful*, one of the ``comp.unix.*`` FAQs, which
 can be found at http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/. If
 an upstream package comes with ``csh`` scripts then you must make sure
-that they start with ``#!/bin/csh`` and make your package depend on the
+that they start with the path of a csh interpreter, such as ``#!/bin/csh`` or
+other valid paths, and make your package depend on the
+
 ``c-shell`` virtual package.
 
 Any scripts which create files in world-writeable directories (e.g., in
@@ -780,7 +782,7 @@ restricted to ASCII when it is possible to do so.
 .. [#]
These features are in widespread use in the Linux community and are
implemented in all of bash, dash, and ksh, the most common shells
-   users may wish to use as ``/bin/sh``.
+   users may wish to use as ``sh``.
 
 .. [#]
This is necessary to allow top-level directories to be symlinks. If



signature.asc
Description: This is a digitally signed message part