[Toybox] sed -e '$a\'

Andy Chu andychup at gmail.com
Fri Mar 25 23:36:19 PDT 2016


> The problem to solve here is that Debian is currently broken when using
> toybox. That's a real problem that needs to be fixed, but there's more
> than one way to fix it. Debian introduced this bug within the past few
> years and maybe we can convince them to fix it on their end, that's one
> possible fix.

What's the goal of toybox with respect to Debian?  I looked through
the design and roadmap pages and didn't see much about Debian
specifically.

Do you mean that when you replace all of Debian's builtin commands
(coreutils, etc.) with toybox, things should work?  What is the test
for working -- all packages, or required Debian packages, etc.?  Or
building Debian packages?

Aboriginal Linux is its own distro, so I thought that was the primary
use case of toybox, along with Android and building distros like the
ones that are based on busybox (which don't look much like Debian
AFAIK.)

> Also, even if I patch stuff when _I_ build it, but I want _other_ people
> to be able to build the vanilla versions, without needing my patches. If
> buildroot or gentoo or something has toybox commands in the $PATH during
> its build, I want them to _work_.

OK so I guess you're aiming for a much higher level of compatibility
than I thought.  Is this true for busybox?  I'm pretty sure that if
you replace the vanilla Debian or Gentoo tools with busybox, TONS of
things will break, like building packages and running daemons and all
that... but I guess you have a better intuition here than me.

Are you only talking about build time, and excluding runtime?  i.e.
using toybox to bootstrap the builds of other distros?

> Sometimes I respond with "ew, no" even when evaluating the standard.
> (I'm not implementing EBCDIC in dd. It's just not happening.) But again,
> case by case basis, judgement calls, and I can be argued out of my
> position. (Elliott's done that several times. He represents the final
> word for Android, and has a billion seats behind him. I did NOT want to
> open the selinux can of worms, but... it's in there now.)

The sed thing made me go "ew" but I guess that ship has sailed.
Though I would judge special cases by the size of the diff, and it
doesn't fair all that badly in that respect.

> But anyway, that's part of my judgement on whether or not to implement
> extensions and corner cases. Is this documentable cleanly?

I think that is a good litmus test.  Thanks for the detailed explanation.

> Yes. But somebody is using it to do something specific. It would be nice
> if they stopped, and if people want to send patches to debian to that
> effect I'm all for it. But are they the ONLY user of this "trick"?
>
> At the moment, what I can fix right now is toybox. If I can find
> something that qualifies as a "fix".

Yeah I guess I am wondering where the line is drawn... do you care
more about Debian than other distros, or is anything in the Linux
world up for grabs?  (I already figure that you don't care about BSD
compatibility)

> (P.S. If debian didn't build with bsd's sed, would either debian or bsd
> care? If not, bsd sed's behavior does not give a good indication of what
> a Linux sed's behavior should be.)

Yes, an interesting point.  And I agree about the monolithic design of
BSDs and adoption.  Linux is ... "postmodern", but that appears to be
the only way the job gets done.  Git to me is very much the same
aesthetic -- it doesn't make sense globally, but it works for diverse
groups of people with their own idiosyncratic use cases, and thus has
high adoption.

Andy

 1458974179.0


More information about the Toybox mailing list