Re: Proposal: Rethink Fedora multilib support (Take Two!)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jan 12, 2017 at 9:26 AM, Brendan Conoboy <blc@xxxxxxxxxx> wrote:
> On 01/11/2017 08:23 PM, Kevin Kofler wrote:
>>
>> you must absolutely split the binaries (which would conflict with the
>> native
>> binaries) and the libraries (which you need to do your cross-compilation
>> or
>> to run your non-native binaries) into separate subpackages wherever
>> packages
>> currently ship both, or modify RPM's ELF coloring heuristics to be a lot
>> more complex and also to take the system's actual native architecture into
>> account.
>>
>> FHS multilib is designed only for binaries that can be natively executed,
>> where there is a clear, fixed preference on one architecture over another.
>> (If you can run both i686 and x86_64 binaries, you automatically want the
>> x86_64 one in case of conflicts.) Debian multiarch attempts to support use
>> cases that fail that assumption hardcoded deep into RPM and into Fedora
>> packaging practices.

While it is true that RPM does assume native across the board at the
build stage, it does have some support for not assuming that at
install time. There is a tiny bit of scaffolding for supporting a
cross-compile/multi-arch build case in RPM, though it definitely would
need work. Some time ago, I had filed a bug upstream about this[1],
but depending on where we want to go with this, it might become even
more important.

But most of the problems are not at the RPM level, they are at
Fedora's packaging level. That being said, just changing from
/lib<qual> to /lib/<triple> is somewhat of an improvement in its own
right, as people who are building but not necessarily packaging can
leverage libraries to run arbitrary foreign architectures.

[1]: https://github.com/rpm-software-management/rpm/issues/103

>
>
> Yes, multiarch requires changing things.
>

Using platform libdirs is admittedly a half-step (as Kevin points out,
fully implementing Debian-style multiarch requires a lot more
splitting than what Fedora is used to, though I think this is
basically second nature for the majority of RPM-based distributions).

>> Those use cases are much better served by full GNU
>> sysroots (/usr/target, not /usr/lib/target).
>
>
> Hey, I can agree to that.  Can you agree that /usr/bin could then be a
> symlink or linkfarm to /usr/target/usr/bin?
>

So you're instead proposing that we move fully to sysroot style for
everything? Not that it's necessarily a bad thing, but we'll have to
bend quite a lot of things to make that work, especially since
sysroots are designed to host their own full FHS (including /etc,
/var, and /share). The tricky part the comes with how do we handle
maintaining a shared configuration state with multiarch configurations
(i686 on x86_64, armv7hl on aarch64, riscv on riscv, etc.). Currently,
we can make the assumption that directories like /etc, /var,
/usr/share, etc. contain common data. But sysroots, by definition,
cannot make that assumption.

What do we do then?


-- 
真実はいつも一つ!/ Always, there's only one truth!
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux