Am 2023-08-18 11:26, schrieb Felix Palmen:
Hi Alexander,
thanks for commenting!
* Alexander Leidinger <alexan...@leidinger.net> [20230818 11:02]:
As the person who switched the linuxulator from redhat 4 or 5 to
fedora and
mentored the people which moved forward to linux-c6 I have some info
about
the design principles of the linux_base ports which you may or may not
know
already:
https://www.leidinger.net/blog/2011/08/29/howto-create-a-new-linux_base-port/
https://www.leidinger.net/blog/2011/09/01/howto-add-linux-infrastructure-ports-for-a-new-linux_base-port/
This might certainly be useful to check against. I think I do have some
understanding, but so far only from looking at what existing ports are
doing.
If it shall not be much of a moving target, I associate "not much
work" with
it. This is somehow contradicting your approach with building from
source in
my opinion. It also opens up the question if any issue is because of
what we
do with it, or because of upstream. And this additionally to the
complexity
if the issue is in our linuxulator (kernel side). This doesn't sound
much
like "not much work".
Yes, I see how "bug hunting" could be an issue. So far, I could stay
*very* close to upstream in my ports, but yep, it's only the GNU
toolchain, I will have to see where it leads.
> - Provide the newest GNU libs (glibc, libstdc++, ...) built against
> exactly the Linux version emulated by the FreeBSD version this will
> run on. This should make it possible to run a lot more Linux binaries
> without relying on e.g. Linux jails.
I see a mismatch here. You want to have the newest ones, while the
distribution itself shall not be a much of a moving target.
This seems to be a misunderstanding though. IMHO, for repackaging some
distribution, this should not be a moving target, because otherwise you
could have some unpleasant surprise like some glibc update suddenly
requiring a newer Linux version that the FreeBSD kernel offers.
With building from source, at least *this* can't be a problem, because
the base libs will always be built with the "correct" version of the
Linux headers.
> - When binaries don't work for missing Linux libraries, make it somewhat
> easy to add them, maybe based on already existing FreeBSD ports.
This may be harder than you think. Or more easy than I think. The
FreeBSD
ports will have stuff specific to FreeBSD which may not be needed for
the
linux-on-FreeBSD-build. The building part may involve more hackery
than the
FreeBSD port.
Yes, I'm aware of that. It might require quite some work on the
framework to make it actually easy. TBH, this is just an idea so far, I
didn't really think about come concrete concept yet.
USE=linux is suited for the needs of a linux_base port. A linux_base
port is
designed to integrate with the FreeBSD system (= fallthrough so
FreeBSD
config if the config is a drop-in replacement for the linux config,
e.g.
krb5.conf or hosts and such). What you need for building is on the
other
hand a "pure" linux system without any fallthrough to FreeBSD, to make
sure
you don't pollute the linux-build with FreeBSD stuff. This means at
least a
chroot into some linux_dist-style port instead of a linux_base style
port.
1.) Of course, Uses/linux.mk would need quite some switching to handle
c7 as well as something new that works completely differently (maybe
call it src). All still open issues.
I suggest to write a new Uses/xxx.mk for this. Much more easy for you to
do what you want, and less error prone and less QA to do for the
existing linux_base stuff.
2.) Could you please elaborate how e.g. some config file "visible" to
the Linux processes could "pollute" a Linux build? Besides, this could
only affect files from base /etc I think...
Well... the config part was more to highlight what the linux_base ports
use the fallthrough for. In case of building I worry more that some
includes from /usr/local are used than anything else. Also some other
stuff configure-runs might pick-up from the installed FreeBSD ports.
Bye,
Alexander.
--
http://www.Leidinger.net alexan...@leidinger.net: PGP 0x8F31830F9F2772BF
http://www.FreeBSD.org netch...@freebsd.org : PGP 0x8F31830F9F2772BF