Currently, linux-firmware ebuild specifies insinto /lib/firmware. This is true for most other firmware e-builds.
The insinto location should however be dependent on profile. For example, for 2017.1 profiles, the insinto location should be /usr/lib/firmware instead.
This doesn't sound practical. The kernel has /lib/firmware hardcoded.
Please explain what you mean with "2017.1" profile -- we don't have anything like that. Do you mean 17.1?
And why do you believe profile expects firmware in /usr/lib/firmware?
This had more to do w/ usrmerge than profile itself. Iirc, 17.x used to be called 2017.1 profile when it was just added and brought in usrmerge support.
(In reply to Amit Prakash Ambasta from comment #3)
> This had more to do w/ usrmerge than profile itself. Iirc, 17.x used to be
> called 2017.1 profile when it was just added and brought in usrmerge support.
no profile has ever had the full YYYY nomenclature.
/usr merge happened prior even to 17.0 profiles (13.0 era) and was distant history when 17.1 profiles were introduced. The reason for 17[.1] profiles was to adjust the lib/lib64 and /usr/lib64 paths/symlinks as multilib support changed when 64-bit libraries became available.
(In reply to Michael 'veremitz' Everitt from comment #4)
> /usr merge happened prior even to 17.0 profiles (13.0 era) and was distant
> history when 17.1 profiles were introduced. The reason for 17[.1] profiles
> was to adjust the lib/lib64 and /usr/lib64 paths/symlinks as multilib
- support changed when 64-bit libraries became available.
+ support change from when 64-bit libraries first became available.
Well, I am not sure at this point then. What I can definitely say, is when usrmerge was originally introduced as a flag, it allowed a gentoo system without /lib entirely (on no-multilib at least). However, some packages broke this and linux-firmware was one of them.
Feel free to resolve this as INVALID
No, this bug is valid.
I can't find anywhere in the kernel that let's you change the /lib/firmware directory to somewhere else. Absent that, modifying this ebuild to install into a different location would not make a lot of sense. Can anyone provide some kernel info about how to make it check a different location?
I'm pretty sure the kernel's firmware search path is a non-issue. I checked today on a 5.15.29-gentoo-dist-hardened kernel by turning /lib/firmware itself into a symlink:
mv /lib/firmware /usr/lib/firmware
ln -s /usr/lib/firmware /lib/firmware
Rebooted, and dmesg shows firmware is loading just fine. So I think it's enough to install into /usr/lib/firmware for the "-split-usr" case.
The kernel's search paths are defined in drivers/base/firmware_loader/main.c, but I don't see much reason to change them because the default paths work for both split and merged /usr.
I think linux firmware should continue installing to /lib/firmware, regardless of usrmerge status. There's no need to update the ebuild for this.
If /lib happens to be a symlink to /usr/lib, then the files will end up in /usr/lib/firmware.