On 5/12/25 12:31 AM, Florian Weimer wrote:
> * Nikita Popov:
> 
>> In f42 the main llvm package switched to installing all files under a 
>> /usr/lib{64}/llvmN prefix and
>> providing symlinks in the default prefix, to align the contents between the 
>> versioned and unversioned
>> packages. What we were not aware of at the time is that rpm's support for 
>> symlinks is very bad.
>>
>> The latest issue we've run into is multilib installations. On f42, it's no 
>> longer possible to install
>> llvm-devel.x86_64 and llvm-devel.i686 at the same time, because they have 
>> conflicts at paths like
>> /usr/bin/opt. These conflicts previously existed as well, but while rpm will 
>> happily ignore multilib file
>> conflicts (resolving in favor of x86_64), having a symlink conflict is a 
>> hard error. (The symlink will point
>> to /usr/lib/llvmN/bin/opt on i686 and /usr/lib64/llvmN/bin/opt on x86_64.)
> 
> I think you should install executables into /usr/libexec/llvmN.  These
> paths will be identical across architectures.  cthe symbolic link
> targets will be the same, and the multilib conflicts should be gone.

This seems plausible to me, but it might cause issues if the versioned
llvm root doesn't look the same as expected on other systems.

Another possibility is to flip the symlinks, i.e. move the binaries back
to %_bindir and put symlinks in %_libdir/llvmN/bin. Then multilib
installs will go back to preferring the 64-bit bin files, and the
symlinks won't conflict.

-- 
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to