Bug#727708: systemd vs. binfmt-support

2013-12-29 Thread Colin Watson
On Sun, Dec 29, 2013 at 05:56:30AM +0200, Uoti Urpala wrote:
 On Thu, 2013-12-26 at 21:42 +, Colin Watson wrote:
  The first reason is, I suppose, rather selfish: I've been working on
  this on and off for fourteen years and it seems a bit rude for systemd
  to turn up and declare that it's now the standard on the strength of an
  underpowered implementation, without even mentioning it to me (I'll
  accept that this is irrational since the systemd authors probably
  weren't aware of the prior art, but it's certainly my gut reaction).  I
 
 I don't think systemd authors have made any declarations about binfmt in
 particular. The only thing they've actually done is add a very simple
 implementation (src/binfmt/binfmt.c, less than 200 lines of code, much
 of it argument parsing). I consider having a basic implementation to be
 a useful batteries included feature: systemd supports lots of
 different setups from embedded to desktop, and it's useful to have at
 least a basic implementation ready when building a system. It's easy
 enough to override if you want something different.

I agree with this part.  My comments above were imprecisely phrased,
sorry (though I did flag them as a gut reaction); I'm mainly referring
to the end result for Debian.

 Thus I consider any opinions saying systemd should not include a tool
 for setting binfmt, or that adding it was somehow objectionable
 behavior, to be wrong.

I was referring more to Tollef's position, really.  Debian systemd
maintenance ought to take into account matters of Debian integration,
which includes whether it fits well into best-of-breed Debian practice.

If it's easy enough to override, then given that we have a better
implementation in Debian then we should simply continue to use it.

 I think this has been proven false by experience - systemd has innovated
 a lot in things where smaller projects were stagnant. And there's a
 fairly clear reason why this would be so: something like binfmt-support
 is too small a unit for independent development, both to design
 independently and to sell to every user individually.

It's simply not true that it's too small a unit for independent
development (what on earth gives you the authority to pronounce on this,
please, given that I've been independently developing it and working
with the people who consume it directly for much longer than systemd's
been around?).  Besides, this is a red herring; there's no need to sell
it to every user individually, only to distributions complex enough for
it to be worth it, maybe half a dozen conversations.  Typical users get
it by way of dependencies or similar.

 Binfmt support is not that complex a task in itself. In practice, a lot
 of the usability will depend on consistency with other system parts.
 Designing APIs for it only is too narrow a view; you need to consider
 other tools, and if you can do better, then it's quite likely you should
 change the other tools too (things like adding udev rules etc).

However, I've been thinking about this for rather a long time, and I'm
actually quite familiar with the design issues.  binfmt-support is
specifically designed to be suitable for distributions (not just Debian)
shipping binfmt integration; in particular I have put much more effort
than systemd has into how it fits into packaging.

 Convincing every distro builder out there individually that your binfmt
 support code is best wastes effort, both yours and theirs. It's more
 efficient to have systemd upstream decide what is a reasonable default
 implementation, and then have only people with specific needs or
 opinions change it.

This sounds very much like an argument from authority, and I'm afraid I
don't subscribe to it.  I don't consider my effort wasted, and I don't
consider it wasted effort for other distributions to take improved code
either; nor do I think that something really not particularly tied to
the init system needs to be developed under the systemd umbrella.

Cheers,

-- 
Colin Watson   [cjwat...@debian.org]


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#727708: systemd vs. binfmt-support

2013-12-29 Thread Tollef Fog Heen
]] Colin Watson 

 On Thu, Dec 26, 2013 at 08:49:11AM +0100, Tollef Fog Heen wrote:
   As I explain in the bug [1], I think that the facilities provided by
   binfmt-support are objectively superior; and even if they were broadly
   equivalent, I'd still question the utility of converting packages from
   an interface that's been well-established in Debian for over ten years.
   
   What is the systemd maintainers' position on this bug?  I bring it up
   here mainly because it's an interesting example of integration.  Tollef
   said during the committee's last meeting on IRC that he hadn't thought
   much about binfmt before, so perhaps this is just a loose end.
  
  binfmt-support is, AFAIK, only used in Debian and derivatives and in
  general, I think having tools that are used across the ecosystem is more
  valuable than having tools that are only used for parts of the
  ecosystem.
 
 Arch uses binfmt-support as well, I believe (and now I search for it I
 see that it also ships systemd configuration for it, which will be
 useful).  I admit that I haven't put much effort into evangelising it,
 but there's nothing especially Debian-specific about binfmt-support and
 it ought to be trivial to make it work elsewhere.

Correction wrt Arch accepted, and I wasn't trying to imply it was
Debian-specific, merely that it is used in Debian and derivatives.

[...]

 Given that binfmt-support is doing a better job, my preference would be
 to put a small amount of work into making it more clearly an independent
 upstream project, and simply get more distributions using it.  Doing
 Fedora, Gentoo, and openSUSE would cover most of the bases.  Now that
 I'm aware of the effort being wasted on reinvention, I can move that
 sort of thing further up my list.

Great, if it becomes the standard in all those distros, I'm fairly sure
systemd will deprecate or drop the binfmt support there.  I'll hold off
on asking upstream for any support for the more advanced features that
binfmt-support offers, then.

-- 
Tollef Fog Heen
UNIX is user friendly, it's just picky about who its friends are


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#727708: systemd vs. binfmt-support

2013-12-29 Thread Uoti Urpala
On Sun, 2013-12-29 at 14:02 +, Colin Watson wrote:
 I was referring more to Tollef's position, really.  Debian systemd
 maintenance ought to take into account matters of Debian integration,
 which includes whether it fits well into best-of-breed Debian practice.
 
 If it's easy enough to override, then given that we have a better
 implementation in Debian then we should simply continue to use it.

I think Tollef's post was a reasonable first reaction at least -
minimizing Debian-specific code (even if it's used somewhere else,
Tollef was apparently not aware of that).


  I think this has been proven false by experience - systemd has innovated
  a lot in things where smaller projects were stagnant. And there's a
  fairly clear reason why this would be so: something like binfmt-support
  is too small a unit for independent development, both to design
  independently and to sell to every user individually.
 
 It's simply not true that it's too small a unit for independent
 development (what on earth gives you the authority to pronounce on this,

  Binfmt support is not that complex a task in itself. In practice, a lot
  of the usability will depend on consistency with other system parts.
  Designing APIs for it only is too narrow a view; you need to consider
  other tools, and if you can do better, then it's quite likely you should
  change the other tools too (things like adding udev rules etc).
 
 However, I've been thinking about this for rather a long time, and I'm
 actually quite familiar with the design issues.  binfmt-support is
 specifically designed to be suitable for distributions (not just Debian)
 shipping binfmt integration; in particular I have put much more effort
 than systemd has into how it fits into packaging.

I'm not saying that it would be too small to do anything useful with.
But is it really different enough from other cases of setting kernel
parameters to justify a completely unique approach? My gut feeling is
that either binfmt-support should be closer to other tools, or the other
tools should be changed to take into account lessons from
binfmt-support.


  Convincing every distro builder out there individually that your binfmt
  support code is best wastes effort, both yours and theirs. It's more
  efficient to have systemd upstream decide what is a reasonable default
  implementation, and then have only people with specific needs or
  opinions change it.
 
 This sounds very much like an argument from authority, and I'm afraid I
 don't subscribe to it.  I don't consider my effort wasted, and I don't

It's not an argument from authority - I'm not saying that
implementation is best, because systemd upstream chose it; in fact I
was not trying to argue the benefits of any implementation. What I meant
was that I think it's beneficial to have default choices, and that
choices made by systemd upstream are more likely to be correct than the
collective average of people who would make such choices individually
(plus everyone making individual choices would use more effort).
Accepting this as true does not require accepting systemd upstream as an
authority whose opinion would automatically decide an issue.

It's also beneficial to use shared standard methods as much as possible,
and systemd upstream is probably about as close as you'll get to a
shared standard in an actively developing area in practice (I certainly
don't believe that any committee could do better). I think avoiding
unnecessary deviations from the shared code has benefits similar to
doing things according to POSIX when possible; that does not mean that I
would consider POSIX authors to be authorities who could dictate how
things should be done.


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#727708: systemd vs. binfmt-support

2013-12-28 Thread Uoti Urpala
On Thu, 2013-12-26 at 21:42 +, Colin Watson wrote:
 On Thu, Dec 26, 2013 at 08:49:11AM +0100, Tollef Fog Heen wrote:
  In this particular case, as you write, I hadn't really given it any
  consideration before, but what I think would make sense is to extend
  systemd to support the same interface as binfmt-support and then people
  who don't use systemd can use binfmt-support and those who use systemd
  (on Debian or elsewhere) can use systemd-binfmt.  I'm guessing the

 afraid it leaves me rather cold, though.
 
 The first reason is, I suppose, rather selfish: I've been working on
 this on and off for fourteen years and it seems a bit rude for systemd
 to turn up and declare that it's now the standard on the strength of an
 underpowered implementation, without even mentioning it to me (I'll
 accept that this is irrational since the systemd authors probably
 weren't aware of the prior art, but it's certainly my gut reaction).  I

I don't think systemd authors have made any declarations about binfmt in
particular. The only thing they've actually done is add a very simple
implementation (src/binfmt/binfmt.c, less than 200 lines of code, much
of it argument parsing). I consider having a basic implementation to be
a useful batteries included feature: systemd supports lots of
different setups from embedded to desktop, and it's useful to have at
least a basic implementation ready when building a system. It's easy
enough to override if you want something different. Thus I consider any
opinions saying systemd should not include a tool for setting binfmt, or
that adding it was somehow objectionable behavior, to be wrong. Whether
it would be preferable for the tool to support more complex
functionality is another question.


 suppose I'm concerned what the incentive is for people to innovate on
 this sort of thing in the future (and binfmt-support absolutely was
 innovative in terms of making the packaging of the underlying kernel
 technology trivially accessible) if they can be steamrollered at any
 time; in the long term I have more faith in the flexibility of many
 small projects than one big one.

I think this has been proven false by experience - systemd has innovated
a lot in things where smaller projects were stagnant. And there's a
fairly clear reason why this would be so: something like binfmt-support
is too small a unit for independent development, both to design
independently and to sell to every user individually.

Binfmt support is not that complex a task in itself. In practice, a lot
of the usability will depend on consistency with other system parts.
Designing APIs for it only is too narrow a view; you need to consider
other tools, and if you can do better, then it's quite likely you should
change the other tools too (things like adding udev rules etc).

Convincing every distro builder out there individually that your binfmt
support code is best wastes effort, both yours and theirs. It's more
efficient to have systemd upstream decide what is a reasonable default
implementation, and then have only people with specific needs or
opinions change it.


 The second is that it seems like makework for the sake of aggrandising
 systemd.  systemd isn't bringing anything new to the table here; right
 now it's just exposing the raw underlying kernel interface in the form
 that's existed since 1997, and in a way that (AIUI) only works properly
 at boot time rather than doing sensible things when packages are
 installed or removed.  Of course you can put all the pieces together,
 but that was the point of binfmt-support.  This is straight
 wheel-reinvention and it seems like a total waste of everyone's time.

As above, I certainly disagree about including binfmt code being a waste
of time; having to look at a separate project to get any support at all
for something so simple would be a waste of time. Most likely supporting
more features from binfmt-support would be an improvement, but that
doesn't make having the current code a negative thing.

I'm not sure whether including exact binfmt-support functionality would
have been a reasonable option for systemd (GPL vs LGPL probably
precludes code copy). At least the API would not be very consistent with
other tools.


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#727708: systemd vs. binfmt-support

2013-12-26 Thread Colin Watson
On Thu, Dec 26, 2013 at 08:49:11AM +0100, Tollef Fog Heen wrote:
  As I explain in the bug [1], I think that the facilities provided by
  binfmt-support are objectively superior; and even if they were broadly
  equivalent, I'd still question the utility of converting packages from
  an interface that's been well-established in Debian for over ten years.
  
  What is the systemd maintainers' position on this bug?  I bring it up
  here mainly because it's an interesting example of integration.  Tollef
  said during the committee's last meeting on IRC that he hadn't thought
  much about binfmt before, so perhaps this is just a loose end.
 
 binfmt-support is, AFAIK, only used in Debian and derivatives and in
 general, I think having tools that are used across the ecosystem is more
 valuable than having tools that are only used for parts of the
 ecosystem.

Arch uses binfmt-support as well, I believe (and now I search for it I
see that it also ships systemd configuration for it, which will be
useful).  I admit that I haven't put much effort into evangelising it,
but there's nothing especially Debian-specific about binfmt-support and
it ought to be trivial to make it work elsewhere.

 In this particular case, as you write, I hadn't really given it any
 consideration before, but what I think would make sense is to extend
 systemd to support the same interface as binfmt-support and then people
 who don't use systemd can use binfmt-support and those who use systemd
 (on Debian or elsewhere) can use systemd-binfmt.  I'm guessing the
 file format of binfmt-support is stable and unlikely to change
 substantially in the future.

I think the last non-trivial file format change was in 2010, but there
are other interfaces (e.g. update-binfmts --find, plus of course the
various ones used by humans) which are in use.

 This is the longer-term view. Short term, if there's any harm in having
 both enabled, having binfmt-support disable systemd-binfmtd (by masking
 it) would be fine.

I don't think there's much harm in having both enabled as long as their
files are disjoint, but it would probably be unwise to have them both
try to process imports from /usr/share/binfmts/ into /var/lib/binfmts/.
Some thought would be involved in terms of how the two approaches to
site-specific configuration (creating files in /etc/ vs. running
update-binfmts --install etc.) would interact.

 Does this sound like a reasonable plan, or do you have a preference to
 move in another direction?

Thanks for your reply.  I can certainly see why you would have this
preference, and I suppose we both have fairly predictable biases.  I'm
afraid it leaves me rather cold, though.

The first reason is, I suppose, rather selfish: I've been working on
this on and off for fourteen years and it seems a bit rude for systemd
to turn up and declare that it's now the standard on the strength of an
underpowered implementation, without even mentioning it to me (I'll
accept that this is irrational since the systemd authors probably
weren't aware of the prior art, but it's certainly my gut reaction).  I
suppose I'm concerned what the incentive is for people to innovate on
this sort of thing in the future (and binfmt-support absolutely was
innovative in terms of making the packaging of the underlying kernel
technology trivially accessible) if they can be steamrollered at any
time; in the long term I have more faith in the flexibility of many
small projects than one big one.

The second is that it seems like makework for the sake of aggrandising
systemd.  systemd isn't bringing anything new to the table here; right
now it's just exposing the raw underlying kernel interface in the form
that's existed since 1997, and in a way that (AIUI) only works properly
at boot time rather than doing sensible things when packages are
installed or removed.  Of course you can put all the pieces together,
but that was the point of binfmt-support.  This is straight
wheel-reinvention and it seems like a total waste of everyone's time.
Given that binfmt-support is doing a better job, my preference would be
to put a small amount of work into making it more clearly an independent
upstream project, and simply get more distributions using it.  Doing
Fedora, Gentoo, and openSUSE would cover most of the bases.  Now that
I'm aware of the effort being wasted on reinvention, I can move that
sort of thing further up my list.

Cheers,

-- 
Colin Watson   [cjwat...@debian.org]


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#727708: systemd vs. binfmt-support

2013-12-25 Thread Colin Watson
#716812 asks for binfmt-support to be disabled when systemd is present,
because systemd-binfmt exists.  The two have a sort of soft conflict;
I'm sure it's possible to run both, but having two programs configure
the same kernel facility is bound to be confusing sooner or later, so it
would certainly be good to come up with a coherent resolution.

As I explain in the bug [1], I think that the facilities provided by
binfmt-support are objectively superior; and even if they were broadly
equivalent, I'd still question the utility of converting packages from
an interface that's been well-established in Debian for over ten years.

What is the systemd maintainers' position on this bug?  I bring it up
here mainly because it's an interesting example of integration.  Tollef
said during the committee's last meeting on IRC that he hadn't thought
much about binfmt before, so perhaps this is just a loose end.

For what it's worth, it doesn't look terribly difficult to make
binfmt-support also support the path names used by systemd-binfmt, since
the configuration is essentially a subset of what binfmt-support can
handle; it would require a bit of thought to do well, of course.  If
people think it's important (e.g. because upstream packages are starting
to ship files in the systemd-binfmt paths) then I can certainly look
into that.  And as I said in the bug I'd be happy to include systemd
configuration in the same way that I've already included Upstart
configuration; if I get time over Christmas I may manage to do this
myself in the VM that Steve provided, as part of gaining practical
experience with systemd.

[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=716812#15

-- 
Colin Watson   [cjwat...@debian.org]


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org