[mkroot] Contribution

Rob Landley rob at landley.net
Mon Mar 5 08:36:06 PST 2018


On 03/02/2018 04:56 AM, Ruhollah Majdoddin wrote:
> Hello,
> I have spent the past month over mkroot (and native build with QEMU),

What do you think of it so far? (It's a newish project I haven't gotten too much
feedback on yet...)

> now I have
> free time for one or two months. Where can I contribute?
> If toybox has more priority now (I see more activity there)  please tell me
> where can I contribute there (I have browsed through the roadmap and other
> documentation).

Mkroot needs a lot of work. I haven't got the native toolchain working under it
yet (partly for design reasons, there's no non-gpl make, and should ninja or
cmake be in there too?), the old build control image infrastructure at
https://landley.net/aboriginal/control-images needs to be redone in the new
context, the old Linux From Scratch build image there needs to be recreated
using current LFS... But I'm not sure any of that's a good starting place for a
new developer?

Reproducing the existing build with other toolchains might be nice too (android
NDK, bootlin's toolchains, the crosstool images on kernel.org, https://ellcc.org
and so on), but none of them provide native compilers, but they might start and
it would be very nice to have an llvm build baseline.

For toybox I want to use mkroot as a way to run tests requiring root access and
a known build environment, but again that's not necessarily a good starting
point for new developers. (How you do proper "top" tests is a hard problem.)
Fixing existing test failures might be, though? (Or at least diagnosing them, I
haven't had time to even sort which test scripts pass and which fail, and which
ones are actually providing reasonable test coverage and which aren't yet. It's
on the todo list...)

Something I've hit that might be worth a look is actually a qemu issue. I test
new mkroot builds with something like:

for i in $(./cross.sh); do (sleep 5; echo date; sleep 1; echo ifconfig; sleep 1;
echo tail /dev/?da; sleep 1; echo exit; sleep 2) | ./run.sh qemu-$i |
smokelog-$i.txt; done

But when I do that, qemu often _hangs_ with current -git. Something about qemu's
stdio console handling is wonky when dealing with pipes instead of pty
instances, and I'm not sure what.

Thanks for your interest,

Rob




More information about the mkroot mailing list