Re: Alternative proposal: focus on term limits rather than turnover

2014-11-21 Thread Josh Triplett
On Fri, Nov 21, 2014 at 08:54:31AM +0100, Raphael Hertzog wrote:
> On Thu, 20 Nov 2014, Josh Triplett wrote:
> > > I would suggest introducing a transitional clause that would state 
> > > something like:
> > > 
> > > As a transitional measure, the terms of all current members that 
> > > exceed 4 years will only expire every 6 months, in order of 
> > > seniority.
> > > 
> > > This would need some refining, but I hope you get the point.
> > 
> > Seems reasonable, yes.  I think that having the simplest possible
> > functional expression of term limits seems like a feature, with a
> > transitional measure *solely* to stage the turnover of the *current* TC
> > over time (and thus set up for future staged term expiry as well).  That
> > makes more sense to me than baking in a "2 members" or "2-R members"
> > rule going forward.
> 
> Well, even if you bootstrap correctly, the TC members are free to resign
> before their term and you can't ensure that the turnover rate will remain
> constant.

That's precisely the point of my proposal: I'm not attempting to ensure
that the turnover rate will remain constant.  As the subject line
suggests, this proposal simply establishes a term limit, which
guarantees a certain minimum rate of turnover.  The turnover rate may
exceed that minimum if people resign.  (It might do so with the '2'
proposal as well, as long as the committee size remains over the
minimum.)

I actually wonder if the various families of '2' proposals might work as
a second clause added to a common term limit clause like this one.
First state the term limits to establish a minimum rate of turnover,
then define a maximum number of expirations applied per unit time.
Common language on the term limits seems like a feature here, and I'd be
happy to work towards that.

> What happens if we have a GR that contradicts a TC decision and that half
> the TC resigns because they no longer feel empowered to take more
> decisions? You're back to your initial situation and we will have regular
> large batches of changes.

That case seems neither likely nor particularly problematic (from a term
expiry point of view, I mean; from a project point of view it'd be a
sign of something awful going on).  We could choose to appoint only a
couple of TC members at a time if we want to rate-limit things; we don't
*have* to have a full 8 members on the committee at all times.  Or we
could appoint half the committee at once.  I don't see it as terrible if
we replace half the committee every 4-5 years; we'd still have
significant continuity.

> I think that I prefer a rule where we target a regular turnover of the
> longest-serving members.

Fair enough.  However, I'd still like to see the simple term-limits-only
proposal available as an option.

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141121173215.GB901@jtriplet-mobl1



Re: Alternative proposal: focus on term limits rather than turnover

2014-11-21 Thread Josh Triplett
Andrei POPESCU wrote:
> On Jo, 20 nov 14, 13:23:04, Josh Triplett wrote:
> > As a transitional measure, the terms of the current members of the Technical
> > Committee shall instead expire every 6 months starting on 2015-01-01, in
> > descending order of seniority; term limits then apply to them as normal.
> 
> Since I've already messed up with the private/public replies I'll just 
> make one more post and then shut up.

On the contrary, please keep providing valuable input. :)

> IMVHO:
> 
> 1. hard-coding a date (any date) might provide "interesting" side 
> effects, probably easier to just use the date of the adoption of the GR, 
> with some grace period (e.g. one month), to allow planing for the first 
> expiry.

Fair enough.  That seems fine to me.

> 2. The above reads to me (as a non-native speaker) like it would apply 
> to *all* TC members, not only those with terms longer than imposed by 
> the (amended) Constitution.

...it reads that way to a native speaker too; good catch. :)

> Slightly more complicated, needs review from a native speaker:
> 
> As a transitional measure, the terms of any current members of the 
> Technical Committee that exceed the limit above at the time of 
> adoption of this General Resolution shall instead expire every 6 
> months, starting one month after adoption of this General 
> Resolution, in descending order of seniority.

That definitely fixes both issues.  I'd simplify the language a bit,
given that text in a GR by definition only takes effect when the GR
passes:

As a transitional measure, the terms of any members of the Technical
Committee that already exceed the limit shall instead expire every 6
months in descending order of seniority, starting one month from now.

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141121163903.GA1566@jtriplet-mobl1



Re: Alternative proposal: focus on term limits rather than turnover

2014-11-20 Thread Josh Triplett
Anthony Towns wrote:
> On Thu, Nov 20, 2014 at 11:25:10AM -0800, Josh Triplett wrote:
> > This approach seems like it focuses too much on aggregate committee
> > turnover, rather than just setting a term limit.
> 
> Term limits rather than turnover was what I proposed originally; the
> response to that was that people were concerned about it risking too
> much churn.
> 
>  https://lists.debian.org/debian-project/2014/05/msg00054.html
>  https://lists.debian.org/debian-project/2014/05/msg00057.html
>  https://lists.debian.org/debian-project/2014/05/msg00059.html

>From the second mail you linked:
> I like Russ' approach here too, assign a random term start so we don't
> suddenly have a large number of people being forced to resign and be
> reappointed.  Maybe just do it as a FIFO with a fixed distribution over
> whatever we end up as the term limit?

>From the third:
> - in this kind of "reform" discussions I find generally useful to
>   distinguish two aspects: 1) the ideal model we want to have, 2) how to
>   migrate from the current model to that. Entangling the two aspects
>   usually make the status quo win over everything else, just because
>   migration is hard.
> 
>   For the migration in this specific case, random assigning start term
>   dates as suggested by Russ seems to be a brilliant idea.

Distinguishing those two aspects is precisely what I'm trying to do
here; the second proposal I sent incorporates a transition measure
inspired by Andrei's suggestion, which is effectively the FIFO suggested
above.

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141120213114.GA7172@jtriplet-mobl1



Re: Alternative proposal: focus on term limits rather than turnover

2014-11-20 Thread Josh Triplett
Andrei POPESCU wrote:
> [private reply on purpose, since I'm not a DD]

[Neither am I; replying publically since your reply was actually public.]

> On Jo, 20 nov 14, 11:25:10, Josh Triplett wrote:
> > 
> > """
> > No Developer may serve on the Technical Committee for more than 4 years
> > out of any 6 year period.  A Developer's term on the Technical Committee
> > expires if they would exceed this limit.
> > """
> > 
> > Exact numbers open for bikeshedding, but does the principle seem sound?
> 
> It does to me, but given the current "age" of the TC members[1] the 
> practical effect would be that the terms of all TC members except Keith 
> Packard would expire as soon as the GR passes and assuming no member 
> ever retires the same will happen every 4 years (as per your suggest 
> numbers).
> 
> [1] https://lists.debian.org/debian-vote/2014/11/msg00199.html

(And https://lists.debian.org/debian-project/2014/05/msg00054.html in
particular for the specific term lengths.)

I'd forgotten that Colin was the only other member with less than a 4
year term (and he's leaving the TC); I'd thought there was one more.

> I would suggest introducing a transitional clause that would state 
> something like:
> 
> As a transitional measure, the terms of all current members that 
> exceed 4 years will only expire every 6 months, in order of 
> seniority.
> 
> This would need some refining, but I hope you get the point.

Seems reasonable, yes.  I think that having the simplest possible
functional expression of term limits seems like a feature, with a
transitional measure *solely* to stage the turnover of the *current* TC
over time (and thus set up for future staged term expiry as well).  That
makes more sense to me than baking in a "2 members" or "2-R members"
rule going forward.

Stefano Zacchiroli wrote:
> On Thu, Nov 20, 2014 at 11:25:10AM -0800, Josh Triplett wrote:
> > That also eliminates any issues of relative seniority, since we
> > evaluate each member's term limit in isolation.  It also eliminates
> > any transitional issues, both because we don't link the expiry to any
> > particular calendar date, and because by the time we pass this we'll
> > have enough developers on the committee whose terms will *not*
> > immediately expire that we won't have to appoint more in a rush.
> 
> I wonder how you could be so sure about that.

We just had three people leave the committee, and the TC put out a call
for nominations; they plan to start evaluating nominated candidates on
December 1st, so it seems fairly likely that we'll have at least three
more new members roughly by the end of the year.  I'd had the impression
there were a couple more members with terms less than 4 years, but even
a 4-person committee is enough to function and appoint more members.
However, it seems easy enough to add a simple transition mechanism, and
in particular (as stated above in reply to Andrei), it seems preferable
to have a very simple term limit rule applied to *individual* members
orthogonally rather than a rule applied to the committee as a whole.

> But even if that is the case, replacing the whole (or mostly of) the
> current CTTE with a freshly appointed one at the same time is very
> likely to induce the problem that after another full term period (4
> years or whatever else the bikeshed says) from now you'll have another
> large wave of batch replacements.  Yes, that could happen anyhow, but is
> much more likely to happen if you start enforcing a strict term limit
> abruptly to all members, instead of doing so gradually.
> 
> So, while your proposal is appealing in the abstract for its simplicity,
> it is not really practical (in the current situation) without a
> relatively complex transitional measure that make its initial
> application gradual.
> 
> > So, the complete diffstat of this proposal is +3-0, rather than +15-1.
> > :)
> 
> Yes, but to achieve a similar effect you'll have a much larger diff to
> apply to the transitional measure, that you're trying to sweep under the
> carpet :-)

Not particularly.  Incorporating a transitional measure like Andrei's
suggestion:

-8<-
The Constitution is amended as follows:

--- constitution.txt.orig   2014-11-20 13:14:40.018610438 -0800
+++ constitution.txt2014-11-20 13:15:23.714844659 -0800
@@ -301,6 +301,9 @@
appointment.
 5. If the Technical Committee and the Project Leader agree they may
remove or replace an existing member of the Technical Committee.
+6. No Developer may serve on the Technical Committee for more than 4
+   years out of any 6 year period.  A Developer's term on th

Alternative proposal: focus on term limits rather than turnover

2014-11-20 Thread Josh Triplett
Stefano Zacchiroli wrote:
> -5. If the Technical Committee and the Project Leader agree they may
> +5. A Developer is not eligible to be (re)appointed to the Technical
> +   Committee if they have been a member within the previous 12 months.
> +6. If the Technical Committee and the Project Leader agree they may
> remove or replace an existing member of the Technical Committee.
> +7. Term limit:
> + 1. Membership of the Technical Committee is automatically
> +reviewed on the 1st of January of each year. At this time, the
> +terms of members who were appointed at least four and a half
> +years (54 months) ago automatically expire. Expiry occurs in
> +order of seniority, most senior members first, and is limited
> +to at most 2 members per year.
> + 2. A member of the Technical Committee is said to be more senior
> +than another if they were appointed earlier, or were appointed
> +at the same time and have been a member of the Debian Project
> +longer. In the event that a member has been appointed more
> +than once, only the most recent appointment is relevant.

This approach seems like it focuses too much on aggregate committee
turnover, rather than just setting a term limit.  In particular, I don't
see any obvious reason to limit expiry to 2 members per year (given that
we have a process for appointing new members, and that we're about to do
so), or to tie expiry to the calendar year (rather than the member's
appointment), and I think the break before re-election could be
incorporated into the term limit.  What about something like this:

"""
No Developer may serve on the Technical Committee for more than 4 years
out of any 6 year period.  A Developer's term on the Technical Committee
expires if they would exceed this limit.
"""

Exact numbers open for bikeshedding, but does the principle seem sound?

We can leave it implicit that a developer whose term would immediately
expire is not eligible for appointment, since doing so would be
pointless.  We don't need rules allowing a developer to stay on the
committee despite their term expiring; we can easily predict such dates
and plan on appointing new members by that time, just as we do for DPLs.
That also eliminates any issues of relative seniority, since we evaluate
each member's term limit in isolation.  It also eliminates any
transitional issues, both because we don't link the expiry to any
particular calendar date, and because by the time we pass this we'll
have enough developers on the committee whose terms will *not*
immediately expire that we won't have to appoint more in a rush.

So, the complete diffstat of this proposal is +3-0, rather than +15-1.
:)

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141120192253.GA6120@jtriplet-mobl1



Re: "done with consensus decisionmaking", "war", "rearguard battles" [was: Re: REISSUED CfV: General Resolution: Init system coupling]

2014-11-10 Thread Josh Triplett
Sam Hartman wrote:
> Matthew> Josh Triplett  writes:
> >> On Sun, Nov 09, 2014 at 12:22:07PM -0800, Josh Triplett wrote:
> >> > What's the procedure for removing someone from the technical
> >> committee?
> >> 
> >> Someone pointed out to me privately that there's a much easier
> >> way of handling this.  See the "Maximum term for tech ctte
> >> members" thread.  Such a proposal would deal with this without
> >> singling anyone out and without explicitly censuring any
> >> particular actions, and would furthermore establish an ongoing
> >> procedure that seems more broadly useful.
> 
> Matthew> I'm not sure encouraging "if you hate Ian, vote for a
> Matthew> maximum term for committee members" is very constructive.
> 
> Hi Matthew, I feel that I at least haven't been heard very well when I
> read the above and would like to be heard differently.
> 
> I do not hate Ian.  I do not think anything Josh has said implies that
> Josh hates Ian.
> I disagree with some of the actions Ian has chosen to take very
> strongly.  I believe that they tend to create a community that
> discourages a form of compassionate, constructive discussion I value
> strongly.
> I value that form of discussion strongly enough that I believe it is
> appropriate to take steps to exclude people who are not acting with
> compassion and respect.  Such steps can include talking to those people
> and asking them to step back until they are ready, as well as more
> formal procedures.
> For me, nothing about this involves hate.
> I can sometimes really understand a deep hurt that someone is feeling
> that motivates them to act in a manner I disagree with.  Often, that
> understanding is sufficient that I can connect with them and find a
> place where we can meet with compassion and respect.
> Sometimes, the greatest understanding does not bridge that gap.
> 
> Obviously, I cannot speak for Josh, but I hope I at least am heard
> differently than you imply above.

Speaking for myself: I agree completely with Sam's words here.  This is
not about hate.  I simply care about the project and the people involved
in it too much to keep accepting a continued pattern of harmful behavior
against them.

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/2014023248.GA24450@thin



Re: "done with consensus decisionmaking", "war", "rearguard battles" [was: Re: REISSUED CfV: General Resolution: Init system coupling]

2014-11-10 Thread Josh Triplett
On Sun, Nov 09, 2014 at 12:22:07PM -0800, Josh Triplett wrote:
> What's the procedure for removing someone from the technical committee?

Someone pointed out to me privately that there's a much easier way of
handling this.  See the "Maximum term for tech ctte members" thread.
Such a proposal would deal with this without singling anyone out and
without explicitly censuring any particular actions, and would
furthermore establish an ongoing procedure that seems more broadly
useful.

With that in mind, rather than encouraging the initiation of any kind of
one-off process for this case, I would instead encourage anyone who
feels strongly about this issue to participate in the
drafting/sponsorship process of that GR, which at the moment needs one
or more people to help work out exact wording, and which is likely
suffering from current -vote/-ctte fatigue.

[I'd like to thank the numerous developers who have responded either
publically or privately.  In particular, I'm glad that I was able to
give a voice to concerns that many people did not feel comfortable
raising themselves.]

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141110100935.GG1085@thin



Re: "done with consensus decisionmaking", "war", "rearguard battles" [was: Re: REISSUED CfV: General Resolution: Init system coupling]

2014-11-10 Thread Josh Triplett
On Mon, Nov 10, 2014 at 11:01:46AM +0200, Aigars Mahinovs wrote:
> On 10 November 2014 07:14, Josh Triplett  wrote:
> > For the sake of clarity, I'd like to point out that I didn't start this
> > thread solely because of a single IRC log, but rather because of a
> > pattern of behavior over the last year that shows no signs of changing.
> 
> I do find it quite alarming that this discussion has now divulged into
> a discussion of the behavior one of the initiators of the discussion
> and has completely abandoned the actual issues. Regardless of who
> started what and when, attacking personal credibility of your opponent
> is not a winning argument.

I am not in any way attacking personal credibility.  I am expressing
concern with observed actions, which seems entirely appropriate.

> Even if person X feels that he is "at war", that alone does not make
> his technical arguments invalid.

Which is why I continue to engage with the technical arguments,
separately.

It does, however, call both his objectivity and his ability to
effectively serve on a *dispute-resolution* body into question.

> If you do not liek where Ian is coming from with his point of view -
> do not argue with him. Argue with other people. Or, better yet, argue
> with the facts.

I've done that as well, for the last year.  This has nothing to do with
his point of view on specific technical topics; there are plenty of
people on both sides of various topics (init systems and otherwise) who
seem quite capable of doing an effective job on the TC.

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141110094506.GF1085@thin



Re: "done with consensus decisionmaking", "war", "rearguard battles" [was: Re: REISSUED CfV: General Resolution: Init system coupling]

2014-11-09 Thread Josh Triplett
For the sake of clarity, I'd like to point out that I didn't start this
thread solely because of a single IRC log, but rather because of a
pattern of behavior over the last year that shows no signs of changing.

On Mon, Nov 10, 2014 at 01:48:42AM +0100, Bas Wijnen wrote:
> On Sun, Nov 09, 2014 at 12:22:07PM -0800, Josh Triplett wrote:
> > [CCed to a wider audience, but reply-to and mail-followup-to set to
> > avoid a prolonged cross-list thread.]
> 
> > Sune Vuorela wrote:
> > > I have a hard time assuming good faith from people who are at war.
> > 
> > Thank you for calling attention to that very disturbing IRC log.  I'd
> > recommend reading the whole thing,
> 
> I did, and I fail to see what is disturbing about it.  I see a TC which
> has a good discussion over an emotional subject.  And they succeed very
> well in keeping it civil almost all of the time.
> 
> > 17:14:02  bdale: The GR is going to be another 3 weeks.
> > 17:14:09  We should decide on the automatic switch before then IMO
> 
> What is disturbing about this?  We were about to enter a freeze.
> Waiting 3 weeks before deciding on an issue which directly impacts the
> release doesn't sound like a good idea.  How is that controversial?

Partly quoting for context, partly showing a general feel of charging
ahead, in this case without even respecting the GR process.  We can
afford to wait for the project to decide how it wants to proceed; if
some change needs to happen to deal with this issue, I doubt we'd have
significant trouble getting a freeze exception for it.

> > 17:15:30  I don't think it's reasonable to say that we need a 
> > tested alternative given how bad the situation is right now.
> 
> If you think the situation right now is not so bad, of course you
> disagree with this.  But from his point of view, that this situation is
> indeed very bad, there is nothing unreasonable about "let's do
> something, anything at all, to make sure this stops; problems we cause
> can be fixed".

First of all, bear in mind that I helped to revise the draft proposal to
flip the libpam-systemd dependencies around (see discussion in bug
746578), and now agree with the finished proposal to do so, so no,
that's not why I disagree with that.

I also advocated actually testing the result, which Christian Seiler
did.  I proposed the change in
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765101#38 to make
systemd-shim safer on systemd systems (by not shipping its own dbus
policy), which Steve Langasek agreed with and implemented in
systemd-shim 8-4, and someone else noted that cgmanager already avoids
running automatically on systemd systems.

I do indeed think that there's something extremely unreasonable about
charging ahead with an attempted solution without even testing the
result.  ("We must do something. This is something. Therefore, we must
do it.")

> > 17:34:12  Diziet: I don't think that stating that we don't 
> > want to swap on upgrades is something we can agree on
> > 17:34:25  Diziet: at least, not while the GR is happening 
> > which seems to directly address this part of the question
> > 
> > 17:34:28  dondelelcaro: That's not the question.  The question is 
> > whether it's something that would pass a TC vote.
> > 17:34:32  I'm done with consensus decisionmaking.
> > 17:35:34  That's not to say I'm not open to convincing.  But 
> > everything done by my opponents in this whole war has been done on a 
> > majoritarian basis and I see no reason to limit myself to consensual acts.
> > 
> > 17:36:48  Diziet: we can always go to majoritarian, but if we 
> > can agree, so much the better.
> > 17:37:17  dondelelcaro: I and my allies have been being shat on by 
> > the majoritarians since February.  It's too late for that.
> 
> Fair enough, this is a part where the level of civility is lower.

And this was the main set of items I wanted to call attention to from
the log, including the one that Sune originally pointed out.

> But
> Ian doesn't make an unreasonable point.  If those who oppose him are
> forcing their side with an overruling vote, why should he refrain from
> doing the same?  Consensus is great, but if we can't get there, we do
> want a decision.  And majority is better than nothing.

No, majority is not necessarily better than nothing; "nothing" is often
a desirable result.  You've forgotten to ask whether the TC should be
deciding something *at all*.  The TC is an arbitration body of *last
resort*, not a body that should be frequently acting of its own volition
or that of one of its members.

Seeking consensus (whether successful or not) is a process that can hel

Re: "done with consensus decisionmaking", "war", "rearguard battles" [was: Re: REISSUED CfV: General Resolution: Init system coupling]

2014-11-09 Thread Josh Triplett
[Please CC me on replies.]

Don Armstrong wrote:
> On Sun, 09 Nov 2014, Josh Triplett wrote:
> > (After repetition of the exact wording of the "We aren't convinced"
> > wording that ended up passing, and people pointing out that it *will* be
> > interpreted as TC opposition to the switch, which sure enough it did...)
> 
> The "we are currently skeptical" wording was not present in the passed
> resolution; it was amended in 7a000[1].

I stand corrected; thank you.  However, I don't think that changes the
point.  The resulting decision had effectively the same tone.

Linking to the resolution announcement for reference:
https://lists.debian.org/debian-devel-announce/2014/11/msg0.html

> That paragraph 4 of that decision could be interpreted as deciding the
> switching issue was only clear to me in retrospect, and was certainly
> not my intention (and I don't believe it reflects the intention of
> anyone else on the CTTE.)

I completely believe that it was not the intention of most of the people
voting for the resolution that passed.  However, the combination of item
1 (explicitly narrowing the scope of the previous TC decision), item 4
(inviting proposals towards one specific approach), and item 5 ("After
the result of the General Resolution is known, we intend to formally
resolve the question", as though the TC *should* continue to take action
after the GR) comes across as both threatening and interminable, and
makes it fairly clear what action the TC wants to take.

Furthermore, the very top of the announcement in
https://lists.debian.org/debian-devel-announce/2014/11/msg0.html is
a lie of omission as well: "The technical committee was asked".  As Joey
Hess put it in
https://lists.debian.org/debian-ctte/2014/11/msg00045.html:
> I am astounded that, in #762194, the technical committe has
> 
> 1. Decided it should make a decision, when no disagreement
>between maintainers of affected packages is involved.
> 2. Ignored evidence of ongoing work.
>(specifically, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=762194#25)
> 3. Plowed ahead with a vote that decides a massively complicated
>issue with a grand total of 3 days of discussion.
> 
> This is not a decision-making process that will yeild a high-quality
> distibution. Or one that I can be proud to be involved with. Or one
> that, frankly, gives me any confidence in the technical committee's
> current membership or indeed reason to continue to exist.

I agree almost completely with Joey's thoughts above, with one
exception.  Personally, I still have plenty of confidence in almost all
of the technical committee's current membership, including those on
*both* sides of the current debate, with one very glaring exception.

I would also suggest that it's a bad idea to let a single member of an
arbitration body refer in a pile of issues, write up draft resolutions
for those issues, push for rapid discussion and votes on those issues,
and send out the resulting decisions.  Those do not seem like signs of a
healthy process, and they certainly contribute to the impression of the
TC being used as a weapon.

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141109220125.GA1457@thin



Re: "done with consensus decisionmaking", "war", "rearguard battles" [was: Re: REISSUED CfV: General Resolution: Init system coupling]

2014-11-09 Thread Josh Triplett
[CCed to a wider audience, but reply-to and mail-followup-to set to
avoid a prolonged cross-list thread.]

Sune Vuorela wrote:
> I have a hard time assuming good faith from people who are at war.
> 
> /Sune
> 
> [17:35:34]
> http://meetbot.debian.net/debian-ctte/2014/debian-ctte.2014-10-30-17.00.log.html

Sune,

Thank you for calling attention to that very disturbing IRC log.  I'd
recommend reading the whole thing, but I've called out a few
particularly disturbing quotes below that make me quite done with
assuming anything even remotely close to good faith anymore.  (Note that
"Diziet" is Ian's IRC nick.)

17:14:02  bdale: The GR is going to be another 3 weeks.
17:14:09  We should decide on the automatic switch before then IMO

17:15:30  I don't think it's reasonable to say that we need a tested 
alternative given how bad the situation is right now.

(After repetition of the exact wording of the "We aren't convinced"
wording that ended up passing, and people pointing out that it *will* be
interpreted as TC opposition to the switch, which sure enough it did...)

17:34:12  Diziet: I don't think that stating that we don't want 
to swap on upgrades is something we can agree on
17:34:25  Diziet: at least, not while the GR is happening which 
seems to directly address this part of the question

17:34:28  dondelelcaro: That's not the question.  The question is 
whether it's something that would pass a TC vote.
17:34:32  I'm done with consensus decisionmaking.
17:35:34  That's not to say I'm not open to convincing.  But everything 
done by my opponents in this whole war has been done on a majoritarian basis 
and I see no reason to limit myself to consensual acts.

17:36:48  Diziet: we can always go to majoritarian, but if we can 
agree, so much the better.
17:37:17  dondelelcaro: I and my allies have been being shat on by the 
majoritarians since February.  It's too late for that.

(I'll also point out the pile of #action items Ian self-assigned, as
well as the pile of times Ian has effectively self-referred items to the
TC in the first place.)

I've already felt from the more public portions of the TC discussions
that Ian has been using the TC as a personal stick to hit people with.
This makes it even more clear.  See also Joey Hess's near-final mail at
https://lists.debian.org/debian-ctte/2014/11/msg00045.html , pointing
out the same issues.

Calling this a war, being "done with consensus decisionmaking", "bitter
rearguard battles" indeed...

To put it bluntly: I don't believe this is even remotely acceptable
behavior from a member of the TC (or a member of the project in general,
but in the latter case someone has less potential to cause damage).

Does anyone, in light of the above, feel even remotely comfortable
having Ian continue to wield^Wserve on the technical committee?  I don't
care *how* you feel about init systems or any other issue; the above
actions, tactics, and statements, and similarly consistent ones
elsewhere are not even remotely acceptable on any side.  The
frothing-mad rampage and the battle-on-every-possible-front needs to
end.  I think it's safe to say that there's a substantial number of
people hoping that the current GR will actually *settle* this question,
with the project having spoken.

We clearly have a pile of people who want to discuss and deal with the
init system issue, many of whom are still capable of productive
discussion and consensus-building.  Many people are actively developing
solutions to make the situation better.  I've seen very impressive
reasoning and careful judgement by various people in this and other
issues.  Russ Allbery comes to mind as the high standard we should
expect from our TC members.  And every other member of the TC, on *both*
sides, seems quite reasoned and reasonable.

So, at the risk of making things worse before they get better, since
nobody else seems willing to explicitly say it:

What's the procedure for removing someone from the technical committee?


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141109202203.GA1700@thin



Re: `systemd --system` as a viable way out of the systemd debate?

2014-11-04 Thread Josh Triplett
Dimitri John Ledkov wrote:
> On 4 November 2014 16:25, Gerrit Pape  wrote:
> > On Mon, Nov 03, 2014 at 04:37:45PM -0800, Josh Triplett wrote:
> >> Russ Allbery wrote:
> >> > Gerrit Pape  writes:
> >> > > On Sat, Nov 01, 2014 at 10:41:54PM +0100, Josselin Mouette wrote:
> >> > > > Real problems? Apart from a couple of more reasonable people, I have
> >> > > > yet to see systemd criticism in factual terms, rather than entirely
> >> > > > made-up claims or vague accusations of destroying the Unix way of
> >> > > > life.
> >> > >
> >> > > What is the reason that one can't easily run logind, or even better a
> >> > > systemd process running logind and possibly other services, under the
> >> > > runsv program from the runit init scheme, or through /etc/inittab?
> >> >
> >> > I believe it's that logind relies on the cgroups setup that's done by
> >> > systemd, and that's what systemd-shim takes care of.
> >>
> >> Right.  Specifically, logind uses the org.freedesktop.systemd1 DBus API
> >> to configure "slices" and "scopes", which act like runtime-creatable and
> >> runtime-configurable systemd units, including cgroup management.  (Among
> >> many other APIs.)
> >
> > To the best of my knowledge, neither cgroups nor d-bus require pid 1.
> >
> > Is this after all the root cause, a rather complex API implemented in
> > pid 1 although it doesn't require any pid 1 capabilities?
> > If so, I can understand why people might feel it's not "the Unix way of
> > life."
> >
> > Is this the "coupling" the proposal talks about?
> 
> I believe so, yes.
> 
> And despite the complex implementation of the org.freedesktop.systemd1
> DBus APIs, it doesn't give full sub-cgroups access to the unprivileged
> processes.
> Whereas, cgmanager implementation provides a much simplier API, yet
> allows unprivileged process to contain themselfs in sub-cgroups using
> all available kernel cgroups stanzas.

That's an intentional design choice in systemd: it provides a high-level
API for process grouping and supervision, *not* a low-level interface to
to the Linux kernel cgroup mechanism.  Both potentially make sense
depending on what you want.

> I believe cgmanager is technically better cgroups implementation than
> currently present in systemd upstream, and as an added benefit it's
> implemented as a non-pid-1 daemon

cgmanager is "better" at exposing the full details of cgroups; systemd
is "better" at abstracting them.

Also, handling cgroup management in a separate daemon would not work for
systemd's purposes.  PID 1 in systemd handles process grouping and
supervision as a core part of its functionality, and uses cgroups to do
so.  However else you might feel about systemd's range of functionality,
it'd be hard to argue that process supervision is not its primary job.
It wouldn't make sense to launch and depend on a separate daemon for
that; among other problems, how exactly would systemd manage cgmanager
itself then?

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141104175036.GA6450@jtriplet-mobl1



Re: `systemd --system` as a viable way out of the systemd debate?

2014-11-03 Thread Josh Triplett
Russ Allbery wrote:
> Gerrit Pape  writes:
> > What is the reason that one can't easily run logind, or even better a
> > systemd process running logind and possibly other services, under the
> > runsv program from the runit init scheme, or through /etc/inittab?
> 
> I believe it's that logind relies on the cgroups setup that's done by
> systemd, and that's what systemd-shim takes care of.

Right.  Specifically, logind uses the org.freedesktop.systemd1 DBus API
to configure "slices" and "scopes", which act like runtime-creatable and
runtime-configurable systemd units, including cgroup management.  (Among
many other APIs.)

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141104003742.GA28949@thin



Re: Legitimate exercise of our constitutional decision-making processes [Was, Re: Tentative summary of the amendments]

2014-11-02 Thread Josh Triplett
[I agree wholeheartedly with Russ's points regarding systemd and logind.
One tangential response to a different point:]

Russ Allbery wrote:
> There are a ton, but because Debian architectures encode choice of kernel,
> they're represented in the archive as packages that are not available for
> kFreeBSD or Hurd, or only available for kFreeBSD, or only available for
> Hurd.

That said, dependencies on specific kernel versions or features have no
representation at all in Debian package metadata, which proves rather
painful to deal with in packages that need specific kernel features
enabled in order to function.

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141103024643.GA20402@thin



Re: Legitimate exercise of our constitutional decision-making processes [Was, Re: Tentative summary of the amendments]

2014-10-30 Thread Josh Triplett
Aigars Mahinovs wrote:
> Fedora actually is not that decisive, as far as I read here -
> https://fedorahosted.org/fpc/ticket/243

That ticket turned down the suggested policy of "packages MUST NOT
support sysvinit".  That doesn't mean "packages MUST support sysvinit",
or "packages MUST NOT depend on systemd".

The Fedora policy: "Packages may also provide a SysV initscript file,
but are not required to do so."

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141030140403.GA498@thin



Re: Legitimate exercise of our constitutional decision-making processes [Was, Re: Tentative summary of the amendments]

2014-10-29 Thread Josh Triplett
Ian Jackson wrote:
> Marco d'Itri writes ("Re: Legitimate exercise of our constitutional 
> decision-making processes [Was, Re: Tentative summary of the amendments]"):
> > ijack...@chiark.greenend.org.uk wrote:
> > >I don't want to be having this conversation again in a year's time,
> >
> > And still, I am ready to bet that we will...
> 
> If my GR passes we will only have to have this conversation if those
> who are outvoted do not respect the project's collective decision.
> 
> If my GR fails I expect a series of bitter rearguard battles over
> individual systemd dependencies.

In other words, if you win, everyone should just shut up and "respect
the project's collective decision", but if you lose, you intend to keep
fighting over every systemd feature you possibly can rather than
"respecting the project's collective decision"?

If you do not expect the vote on this GR and its collective amendments
to actually *end* this interminable issue and let people get back to
work, whichever outcome the project determines, what collective action
*would* have that effect, and could we get that on the ballot?

I tend to agree with Charles Plessy's simple statement that everything
is working just fine, but now I'm starting to wonder if Luca Falavigna's
proposal to *explicitly* say "go ahead and depend on an init system if
needed" would provide more closure on this issue.

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141029221821.GA17894@jtriplet-mobl1



Re: `systemd --system` as a viable way out of the systemd debate?

2014-10-28 Thread Josh Triplett
mically launch a specific
systemd unit.  However, that would completely break the ability to use
systemd dependencies, so I don't think that makes sense going forward.

I'd be happy to help work on a coexistence solution like this, *if* it
would actually end the interminable arguments over running systemd as
PID 1.  Any chance of it doing so?

- Josh Triplett


--
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141028135809.GA5927@thin



Running systemd with PID != 1, coexisting with other inits

2014-10-25 Thread Josh Triplett
Matthias Urlichs wrote:
> j...@joshtriplett.org:
> > Personally, I'd actually love to see a port of systemd (a *complete*
> > port of systemd) to be capable of running in system mode without being
> > PID 1.
> 
> Why would you need to port it?
> You can do that today quite easily; just say "systemd --system".
> 
> I have no idea what that does WRT cgroups management, and obviously it
> won't be able to cleanly shut down the system, but AFAIK everything else
> should work.

Well, *that's* useful; thanks!  I previously had the impression that
systemd did not support this at all.

If this *does* actually handle cgroup management properly, acts as a
subreaper, and otherwise behaves as much like PID 1 as possible, then it
ought to be possible to prepare a package that can coexist with
sysvinit.  That package could either install itself to /etc/inittab for
supervision, or just supervise itself and launch from an early init
script.  (It would need to disable several of the default generators,
most notably the one handling init.d scripts for obvious reasons, as
well as many system units, but that seems doable.) The manpage does say
"it is not supported booting and maintaining a full system with systemd
running in --system mode, but PID not 1", but in this case, systemd
wouldn't be doing the booting, just service supervision.

Alternatively, I wonder how easily systemd could run as a single-service
supervisor using --unit=, to run a single service or socket unit?  Given
an appropriate init script invoking systemd (probably via a wrapper to
also handle the various init script arguments), that would allow writing
an /etc/init.d/foo script that just runs a .service or .socket unit,
supervised under a standalone instance of systemd.  I don't know if
multiple such invocations of systemd for different daemons could sanely
coexist, though.  I suspect a single system-wide instance would work
better.

Might also work to use --user for a systemwide instance, which would
already disable most of the "system" functionality that would conflict
with running another init.

Using any of those approaches, it seems possible to build a daemon
package that could then depend (directly or via a helper package) on
systemd but *not* on systemd-sysv, and transparently work on whatever
init system ran as PID 1.  The first of the three approaches could also
potentially support running logind and other such services.

This seems like a sensible, sustainable, long-term solution for
supporting multiple init systems as PID 1, while still allowing services
to make use of systemd-specific functionality.  (Much like services
today could depend on runit.)  Thoughts?

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141025155847.GA16223@thin



Re: Tentative summary of the amendments

2014-10-25 Thread Josh Triplett
On Sat, Oct 25, 2014 at 03:21:51PM +0200, Jonas Smedegaard wrote:
> Quoting Josh Triplett (2014-10-25 11:52:28)
> > Jonas Smedegaard wrote:
> >> Quoting Josh Triplett (2014-10-24 16:27:27)
> >>> Aigars Mahinovs wrote:
> >>>> On 24 October 2014 13:33, Ansgar Burchardt  
> >>>> wrote:
> >>>>> I don't like some software too, but am sometimes required to use 
> >>>>> it without an alternative. Can I demand that I can use packages 
> >>>>> without said software? Like demanding libraries having to provide 
> >>>>> language bindings for at least two languages so I don't have to 
> >>>>> use PHP[1]? :)
> >>>> Init system is special because there can be only one active in the 
> >>>> system. If app1 depends on systemd (as PID 1) and app2 depends on 
> >>>> runit (as PID 1) then it becomes impossible to use both apps 
> >>>> (without changing init system and rebooting). Also IMHO init system 
> >>>> should be a user choice and not dictated by other, unrelated, 
> >>>> software.
> >>>
> >>> Kernels are special because there can be only one active in the 
> >>> system. If app1 depends on Linux and app2 depends on FreeBSD, then 
> >>> it becomes impossible to use both apps (without changing kernels and 
> >>> rebooting).
> >>
> >> Can you provide any concrete examples of that actually being an 
> >> issue?
> >
> > Yes, in both directions.
> >
> > For the more common "depends on Linux" case: portions of FUSE 
> > (partially addressed by a FUSE port for BSD, but not all filesystems 
> > work with that), ALSA (and indirectly anything using it for sound), 
> > BlueZ (Bluetooth support), more recent inotify-like interfaces, many 
> > networking and wireless tools, cell modem support, many filesystem 
> > tools, various hardware access libraries, some backup tools, some 
> > build tools, systemd and systemd-shim, and until not too long ago 
> > sysvinit. (That's only the software that *explicitly* only runs on 
> > Linux, as opposed to software which says "any" but doesn't build or 
> > run on FreeBSD, which I'd assume applies to a non-zero number of 
> > packages.)
> > 
> > For the fairly rare (at least in Debian) "depends on FreeBSD" case, I 
> > only know one example off the top of my head: ZFS (since Linux only 
> > has the low-performance zfs-fuse).
> 
> I meant examples not only of arch-constraints, but of arch-constraints 
> being an *issue*.  Seems you provide only the former above.
> 
> Existence of arch-constraints is analogous to existence of init systems 
> with different ABI.  What we are talking about here is issues it causes 
> - whether those are mostly theoretical or actually occuring in Debian, 
> and whether they are treated as problems for package maintainers to deal 
> with (Policy "forcing maintainers to do "extra work" as some put it) or 
> not.

Any missing functionality or packages on kernel or architecture A
compared to B certainly is an issue for the people wanting to run A, and
presumably the users, developers, and maintainers of A would like to see
more packages and more functionality run on A.  Policy certainly doesn't
force package maintainers to do extra work in this case, because it
places no hard requirements on architecture support.  Porters write
patches, and as I understand it the FreeBSD architecture maintainers do
spend a significant amount of time making things work on FreeBSD and
removing Linux-specific assumptions from code.  FreeBSD developers
upstream also work to provide kernel functionality to help support a
broader range of software (e.g. linprocfs).

Beyond that, I don't see what distinction you're drawing by about this
being or not being an "issue".  As mentioned below, the world certainly
hasn't ended over it.  Likewise, I don't know of any current "issues"
caused by init-system-specific software that haven't already been fixed,
and the world hasn't ended over that either.

For architectures, kernels, *and* init systems, I personally agree with
Charles' statement that "the procedures for decision making and conflict
resolution are working adequately and thus a General Resolution is not
required."  Though for the purposes of curtailing further FUD and
doomsaying, I'd personally rank Lucas's and Luca's statements higher.

> > So, in a situation rather analogous to the init systems: Linux runs 
> > just about everything, FreeBSD runs most things but has 

Re: Tentative summary of the amendments

2014-10-25 Thread Josh Triplett
cerns have concrete
answers.

> I still don't like the tightly integrated design,
> but that in itself is just an irrelelvant opinion.

There are people who still dislike Linux for not being a microkernel. :)

And I wouldn't call your opinion *irrelevant*.  It's a valid opinion,
with some arguments in its favor; it happens to disagree with the
direction and architecture of several widely used pieces of software,
but that doesn't make your opinion *irrelevant*, just difficult to get
support for.

> >> Applications have never
> >> been calling init system before. Try the same assumption with: bash,
> >> Metacity, gnome-shell. "When you application is started, it might be
> >> started by gnome-shell, in that case you may give gnome-shell an
> >> indication about your startup animation, but you may be started by
> >> something else, in that case you should still start, but it is fine
> >> not to provide the correct startup animation."
> >
> > Talking about "startup animation" dismisses features and integration as
> > trivial frivolities.  Since you mentioned gnome-shell and metacity,
> > let's talk about an analogous situation to the systemd case.  Formerly,
> > in GNOME 2, you could run a "panel applet" on top of gnome-panel, and
> > run gnome-panel within any desktop environment and window manager you
> > liked.  Neither gnome-panel nor those applets exist in GNOME 3
> 
> Even though those were clearly understood to be plugins of the panel
> and not actual applications, there was quite passionate discussion
> about both porting them to Gnome 3 and about making a freedesktop.org
> common ground specification. Basically system notification area came
> out of that as far as I rememeber.

I'm aware.  The situation still stands, though, and the existence of
ways to write more-portable, less-capable extensions (such as tray icons
or notifications) does not negate the substantial ecosystem of
gnome-shell-specific extensions.  The same holds for init systems.  Yet
I don't see anyone clamoring to *prohibit* dependencies on specific
desktop environments.  Nor do I think an attempt to do so would be any
more productive or effective.

> > You're also implying that, out of a clear blue sky, the TC would declare
> > a new default, as though they weren't asked specifically to decide an
> > already contentious issue caused by a huge number of people *wanting* to
> > support a new init system and being FUDded away from doing so.
> 
> Actually I am suggesting that TC would make a trivial decision on what
> is to be the *default* architecture, while other people would choose
> to understand that this decision means that all other architectures no
> longer matter.

I think you've reversed cause and effect.  There are a large number of
people pushing to use systemd, and *because* of that systemd became the
new default, as well as separately growing a set of software that
depends on it.  The TC's decision to make systemd the default is not the
reason why people want to build software that uses systemd features.

> > Finally, you're suggesting that code already exists that would be
> > "cleaned up" and removed, and assuming that's the only reason to limit
> > architecture (or init system) support.  The common case here, however,
> > would be *new* code to implement some new feature, depending on some new
> > support provided by (for instance) a new service.
> 
> That is exactly what I am suggesting - the reason for the clean up
> would be to reduce maintenance burden and add new features by using
> features easily available on the default architecture (both perfectly
> fine reasons), but the side effect is loss of support for other
> architectures (which is no longer considered to be important by the
> upstream or maintainers).

You're still conflating two separate items there, as though the software
would just work on all init systems if only it didn't delete the
pre-existing code to do so.  As I said, the common case is either
writing new software and not writing that extra code in the first place,
or adding new functionality to existing software that depends on
functionality or services provided by an init system.  In the latter
case, that functionality and those services are *not* trivial to
duplicate.

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141025100526.GB1402@thin



Re: Tentative summary of the amendments

2014-10-25 Thread Josh Triplett
[Please CC me on replies; I'm not subscribed to -vote, so for mails not
CCed to me, I end up responding via the archives and manually quoting
via copy/paste.]

Jonas Smedegaard wrote:
> Quoting Josh Triplett (2014-10-24 16:27:27)
> > Aigars Mahinovs wrote:
> >> On 24 October 2014 13:33, Ansgar Burchardt  wrote:
> >>> I don't like some software too, but am sometimes required to use it 
> >>> without an alternative. Can I demand that I can use packages without 
> >>> said software? Like demanding libraries having to provide language 
> >>> bindings for at least two languages so I don't have to use PHP[1]? 
> >>> :)
> >> Init system is special because there can be only one active in the 
> >> system. If app1 depends on systemd (as PID 1) and app2 depends on 
> >> runit (as PID 1) then it becomes impossible to use both apps (without 
> >> changing init system and rebooting). Also IMHO init system should be 
> >> a user choice and not dictated by other, unrelated, software.
> >
> > Kernels are special because there can be only one active in the 
> > system. If app1 depends on Linux and app2 depends on FreeBSD, then it 
> > becomes impossible to use both apps (without changing kernels and 
> > rebooting).
> 
> Can you provide any concrete examples of that actually being an issue?

Yes, in both directions.

For the more common "depends on Linux" case: portions of FUSE (partially
addressed by a FUSE port for BSD, but not all filesystems work with
that), ALSA (and indirectly anything using it for sound), BlueZ
(Bluetooth support), more recent inotify-like interfaces, many
networking and wireless tools, cell modem support, many filesystem
tools, various hardware access libraries, some backup tools, some build
tools, systemd and systemd-shim, and until not too long ago sysvinit.
(That's only the software that *explicitly* only runs on Linux, as
opposed to software which says "any" but doesn't build or run on
FreeBSD, which I'd assume applies to a non-zero number of packages.)

For the fairly rare (at least in Debian) "depends on FreeBSD" case, I
only know one example off the top of my head: ZFS (since Linux only has
the low-performance zfs-fuse).

So, in a situation rather analogous to the init systems: Linux runs just
about everything, FreeBSD runs most things but has little that
specifically depends on it.  Which makes this a fairly small problem for
Linux users, and a noticeable lack if you want to run FreeBSD.  However,
the FreeBSD folks have done an impressive job keeping up, and many
packages have been willing to add FreeBSD support.

(Processor architectures have a similar situation, most notably with
packages that generate code and the packages that build-depend on
those.)

> Reason for this GR is concrete examples (thankfully believed solved by 
> now) of it actually being an issue regarding init systems.

I have no reason to believe that the situation with init systems is
drastically different than those for kernels or for architectures.  In
both cases, I think the right answer is for package maintainers to
declare appropriate dependencies to reflect reality, for upstreams to
consider carefully the tradeoffs of portability, and for port / init
system supporters to continue writing and submitting patches or
developing alternatives.  Neither case justifies a GR or a policy
"must".

> > And yet we don't stop applications from declaring "Architecture: 
> > linux-any".  And the world has not ended.  People who maintain 
> > non-Linux kernels have a substantial amount of work to do, and I find 
> > it very impressive how much they've gotten working.  Yet nobody has 
> > proposed a GR forcing support for kFreeBSD or the Hurd; the people 
> > working on them have simply *done the work*, and in some cases 
> > successfully convinced others to do the same.
> 
> We do strongly discourage that, as codified in Debian Policy ยง5.6.8:
> 
> > Specifying a list of architectures or architecture wildcards other 
> > than `any' is for the minority of cases where a program is not 
> > portable or is not useful on some architectures.  Where possible, the 
> > program should be made portable instead.
> 
> Notice the "should" near the end of above.

Notice as well that it doesn't say "must".  We've already had TC
decisions that explicitly gave the equivalent of a "should"; this GR
would effectively enforce a "must", making it RC to depend on an init
system.  The equivalent would be making it RC to not support all
architectures.  And while portability can potentially be a desirable
feature, that doesn't make it RC to build architecture-specifi

Re: Tentative summary of the amendments

2014-10-24 Thread Josh Triplett
Aigars Mahinovs wrote:
> On 24 October 2014 17:14, Josh Triplett  wrote:
> >> The key difference is that until this year all packages worked on all
> >> init systems (as in you could start any service or application with
> >> any init system as PID 1, even with "init=/bin/sh").
> >
> > Until recently, it was a painful endeavor to be the upstream of a daemon
> > package, because init scripts were not portable between Linux
> > distributions; each distribution tended to have to write their own.
> > systemd actually viewed that as a *problem*, and *fixed* it; it *is*
> > fairly reasonable now to ship a .service or .socket or other unit file
> > upstream and expect distributions to not need to change it.
> 
> That is *not* what the discussion is about. It is *not* about init
> scripts. Forget about init scripts. Imagine booting up a system with
> "init=/bin/sh" - it should be possible to run a command to start your
> service from there (without any init system at all). If you depend on
> other services, then those should be startable with simple commands
> too. If that is possible, then all is fine.

"exec /lib/systemd/systemd". ;)

More seriously, no, your expectations are no longer realistic or
reasonable.  It is already not possible *today* to run "simple commands"
and end up with a working system; many services depend on other running
services, and the thing gluing them together is an init system.  You
cannot, for instance, just run "foo-daemon" or even
"/etc/init.d/foo-daemon start" for an arbitrary foo, not least of which
because that won't enforce the starting of things foo depends on.  In
turn, those dependencies may include DBus services, or udev-managed
devices and device events.  You can't run DBus services without DBus
(though systemd is actually working to fix that), and you can't generate
udev events without udev.  Without such mechanisms, software may well
fail to launch or operate correctly.  The world is more complex than
your model, and has been for far longer than systemd has existed.

Your init=/bin/sh system may well depend on an initramfs to successfully
boot.  You may not be able to type on your keyboard without running a
daemon (e.g. for a Bluetooth keyboard).  You might not even have a text
console without running a daemon.  Those daemons themselves may depend
on other services.

It's perfectly reasonable, for instance, for a daemon to expect to be
run as a non-root user, and be handed a low-numbered socket that it
could not itself open.  It's not reasonable to require every daemon to
reimplement that code itself, with all associated security requirements.

It's also reasonable for you to reimplement that functionality in some
other system, and convince upstreams to use your version instead.  For
instance, you might adapt a piece of software to work with inetd rather
than a .socket file.

> If systemd adds socket activation and you daemon uses it it is fine
> for the start up of that daemon to use socket activation.  If a user
> is running another init system it is fine for socket activation not to
> work, but a problem would be for your daemon to crash or hang on
> startup because of this.

Expect an increasing number of new upstream daemons to lack any code to
daemonize themselves, or to start as root and drop privileges, when a
perfectly reasonable and better-audited implementation already exists to
launch the daemon as non-root with no forking.  And that's two of
several hundred features.  You cannot expect all upstreams to
*duplicate* functionality that already exists, nor to maintain such
duplication indefinitely.

> > In practice, demanding that packages work with all init systems, or even
> > with *two* init systems, demands that they support the
> > least-common-denominator of functionality provided by those init
> > systems.  That effectively makes any new feature added to an init system
> > useless until duplicated.
> 
> Yes - the demand is to make sure that the least-common-denominator
> does actually minimally work.

I appreciate that you actually acknowledge this rather than avoiding it,
but nonetheless, no, arrogant demand refused; systemd, like the Linux
kernel and many other pieces of software, provides useful functionality
that other implementations do not have.  Ask others nicely with
convincing arguments and see if they'll do the work for you (many seem
willing to), or do it yourself, or create other upstream software with
different requirements that does not need systemd and package that
software.

> You may use the advanced features, if they are available, but can't
> just assume that they will be. On the other hand it is fine to not
> provide some functionality if the advanced init system features a

Re: Tentative summary of the amendments

2014-10-24 Thread Josh Triplett
king all those very useful features unavailable to users
> of all other init systems. Like the upcoming wifi management changes -
> those sound great, but there doesn't seem to be a reason why it
> couldn't have been designed in such way that users of other init
> systems could simply call some executable with some params and have
> their wifi configured with those tools.

I'm going to assume you're not particularly interested in hearing the
Nth iteration of someone explaining reasons for such a design.

> Being the default init system should not be the mandate to
> break/rewrite everything else. In fact being the default init system
> should bring great responsibility *not* to break stuff.

First of all, software that does not work with systemd is not "broken";
it works just fine with its dependencies installed.  If you want it to
work with other software, that's a wishlist request, not a bug.

In the more conventional sense of "break", systemd has in fact taken an
extraordinary amount of care not to break stuff, frequently succeeding;
I find it quite impressive how painless the transition has managed to be
given the magnitude of the change.

I would suggest directing your concerns either at upstreams to convince
them to not use systemd functionality (good luck), or better yet into
the development of alternatives that people want to use *more* than the
versions in systemd.  Absolutely nothing stops you.  If you (and the
entire set of people who agree with you) do not collectively have the
time to keep up with the astonishingly rapid development pace of
systemd, the right answer is *not* to hobble systemd or shout "wait up"
at it, nor is it to hobble other software that wishes to use systemd
until a duplicate implementation exists.

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141024142725.GA16732@thin



Re: Tentative summary of the amendments

2014-10-24 Thread Josh Triplett
On Fri, Oct 24, 2014 at 03:50:48PM +0300, Aigars Mahinovs wrote:
> On 24 October 2014 15:40, Josh Triplett  wrote:
> > What makes the systemd case so drastically different that those who care
> > about alternative init systems cannot follow the same procedure?
> 
> The key difference is that until this year all packages worked on all
> init systems (as in you could start any service or application with
> any init system as PID 1, even with "init=/bin/sh").

Until recently, it was a painful endeavor to be the upstream of a daemon
package, because init scripts were not portable between Linux
distributions; each distribution tended to have to write their own.
systemd actually viewed that as a *problem*, and *fixed* it; it *is*
fairly reasonable now to ship a .service or .socket or other unit file
upstream and expect distributions to not need to change it.

And when functionality is missing, it's possible to get that
functionality added; how long has it been since sysvinit added a new
useful feature that daemons could use?

Until recently, if you wanted your service to be restarted if it
crashed, you had to use one of various separate packages to do so;
sysvinit simply didn't *do* that.  It *could* have; I'd love to know
where we'd be a decade ago if sysvinit had had an /etc/inittab.d.  A
quick search turns up people asking for that in *1999*.

There's a reason that systemd has had a meteoric adoption rate: it
provides a huge number of features people not only want, but have wanted
for years.

In practice, demanding that packages work with all init systems, or even
with *two* init systems, demands that they support the
least-common-denominator of functionality provided by those init
systems.  That effectively makes any new feature added to an init system
useless until duplicated.

> The fact that the regression is introduced by an architectural
> decision of systemd developers to tightly integrate system level
> services into the init system (and not by a decision in Debian) causes
> the feeling of loss of control.

That's a very legitimate and accurate feeling.  The people not doing the
work don't have control.  The people who are doing work on alternative
implementations do have control of those implementations, and can make
them as loosely coupled as they like.

> Then asking others to implement
> init-system-neutral versions of systemd-invented services just to keep
> using software that used to work before is ... raising some hackles.

"asking" for such alternative implementations isn't raising hackles;
*demanding* is raising hackles.  Even worse yet are the folks instead
demanding that upstreams simply not use such services, or who insist
that no possible use exists for such services.

And in many cases, the systemd-invented services and features fill a gap
for which no previously implementation existed, so "used to work before"
is quite inaccurate.  Not all features are optional; not every feature
needs fallback code to cope with its lack.  Doubly so if such fallback
code does not already exist.

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141024141435.GA16989@thin



Re: Tentative summary of the amendments

2014-10-24 Thread Josh Triplett
On Fri, Oct 24, 2014 at 05:40:28AM -0700, Josh Triplett wrote:
> Ansgar Burchardt wrote:

My apologies, that should have been:

> Aigars Mahinovs wrote:

(The web archives on lists.debian.org have reply-to links, but those
links don't include quoted mail text as the BTS links do; I copy-pasted
the wrong name when constructing the attribution.)

> > The root of the problem is coming from upstream not caring about
> > alternative init systems. To take the logind case as an example - each
> > of the dependencies from GDM to systemd make perfect sense in
> > isolation. However, the end result (was) that GDM only worked with
> > systemd almost by accident. No developer in that chain was compelled
> > to run this under other init systems.
> 
> We have not, historically, banned packages from introducing dependencies
> on specific (FOSS) software they use, particularly in the absence of
> patches implementing alternative dependencies.  Imagine if we said "The
> root of the problem is coming from upstream not caring about alternative
> libc implementations.", and started complaining at packages that won't
> build with newlib?  Sure, many people have very legitimate reasons to
> want to run some packages with a smaller libc implementation; however,
> the burden remains firmly on them to make that work, and the project
> cannot force maintainers of arbitrary packages to care about non-glibc.
> 
> We have a substantial number of packages in Debian that depend
> specifically on a Linux kernel, or even on specific architectures.
> While there are people working to port those packages to alternative
> kernels such as the Hurd and *BSD, I don't see anyone calling for a GR
> to force packages to support alternative kernels; instead, I see the
> people who care about running those kernels actually doing an impressive
> amount of work to write patches.  Similarly, even for packages that do
> code generation (such as compiled programming languages), and thus only
> support specific architectures, people have actually done the
> substantial amount of work to add additional architecture support.
> 
> What makes the systemd case so drastically different that those who care
> about alternative init systems cannot follow the same procedure?
> 
> > However these choices heavily impact our users who (for whatever
> > reasons) want or need to use another init system. Such users are used
> > to having to write an odd init script for some service - that is an
> > acceptable extra work for using a non-default init system. However it
> > is a much harder task to have to implement a new API introduced by
> > systemd or creating something like systemd-shim. We should not be
> > pushing such burdens to our users. That is too hard a punishment for
> > using an alternative init system and also upstream (or maintainer) are
> > far better positioned to implement some workaround to make the
> > software work with alternative inits.
> 
> Upstream and the maintainer don't necessarily *care*.  A GR will not
> make them care.  As a user, if you want something that does not exist,
> you file a wishlist bug and you hope to find someone willing to
> implement it for you, or you work to convince people to care.
> 
> (And to provide a bit of contrast here, several upstreams are making a
> substantial effort to continue supporting alternate init systems even
> when not doing so would be far easier and more fun.  The near-complete
> absence of any real examples in Debian of packages that currently
> *don't* support sysvinit or that refuse to accept patches makes the
> arguments surrounding this issue ring rather hollow.)
> 
> - Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141024124252.GA16760@thin



Re: Tentative summary of the amendments

2014-10-24 Thread Josh Triplett
Ansgar Burchardt wrote:
> The root of the problem is coming from upstream not caring about
> alternative init systems. To take the logind case as an example - each
> of the dependencies from GDM to systemd make perfect sense in
> isolation. However, the end result (was) that GDM only worked with
> systemd almost by accident. No developer in that chain was compelled
> to run this under other init systems.

We have not, historically, banned packages from introducing dependencies
on specific (FOSS) software they use, particularly in the absence of
patches implementing alternative dependencies.  Imagine if we said "The
root of the problem is coming from upstream not caring about alternative
libc implementations.", and started complaining at packages that won't
build with newlib?  Sure, many people have very legitimate reasons to
want to run some packages with a smaller libc implementation; however,
the burden remains firmly on them to make that work, and the project
cannot force maintainers of arbitrary packages to care about non-glibc.

We have a substantial number of packages in Debian that depend
specifically on a Linux kernel, or even on specific architectures.
While there are people working to port those packages to alternative
kernels such as the Hurd and *BSD, I don't see anyone calling for a GR
to force packages to support alternative kernels; instead, I see the
people who care about running those kernels actually doing an impressive
amount of work to write patches.  Similarly, even for packages that do
code generation (such as compiled programming languages), and thus only
support specific architectures, people have actually done the
substantial amount of work to add additional architecture support.

What makes the systemd case so drastically different that those who care
about alternative init systems cannot follow the same procedure?

> However these choices heavily impact our users who (for whatever
> reasons) want or need to use another init system. Such users are used
> to having to write an odd init script for some service - that is an
> acceptable extra work for using a non-default init system. However it
> is a much harder task to have to implement a new API introduced by
> systemd or creating something like systemd-shim. We should not be
> pushing such burdens to our users. That is too hard a punishment for
> using an alternative init system and also upstream (or maintainer) are
> far better positioned to implement some workaround to make the
> software work with alternative inits.

Upstream and the maintainer don't necessarily *care*.  A GR will not
make them care.  As a user, if you want something that does not exist,
you file a wishlist bug and you hope to find someone willing to
implement it for you, or you work to convince people to care.

(And to provide a bit of contrast here, several upstreams are making a
substantial effort to continue supporting alternate init systems even
when not doing so would be far easier and more fun.  The near-complete
absence of any real examples in Debian of packages that currently
*don't* support sysvinit or that refuse to accept patches makes the
arguments surrounding this issue ring rather hollow.)

- Josh Triplett


-- 
To UNSUBSCRIBE, email to debian-vote-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141024124026.GA16686@thin