Hello,
On Sat, 04 Apr 2020, [email protected] wrote:
>On 04/04 08:36, David Haller wrote:
[..]
>> Looking at the ebuild, it seems that it only installs libnvoptix when
>> multilib enabled is *and* if it's on amd64:
>>
>> ==== x11-drivers/nvidia-drivers/nvidia-drivers-440.64.ebuild ====
>> if use kernel_linux && has_multilib_profile && [[ ${ABI} ==
>> "amd64" ]];
>a
>> then
>> NV_GLX_LIBRARIES+=(
>> "libnvidia-cbl.so.${NV_SOVER}"
>> "libnvidia-rtcore.so.${NV_SOVER}"
>> "libnvoptix.so.${NV_SOVER}"
>> )
>> fi
>> ====
>>
>> And that's the only occurrence of optix in the ebuild. In driver,
>> there's only a 64-bit libnvoptix.so.440.64 included, it's missing from
>> the ./32 subfolder, so I guess that optix stuff it's 64bit only.
>> But that dep on has_multilib_profile seems buggish to me. Test /
>> workaround: Just add 'multilib' to your package.use flags of
>> x11-drivers/nvidia-drivers (and _do not set_ e.g. abi_x86_32), just
>> switch on the 'multilib'. If that works and libnvoptix.so is then
>> installed and Blender works with it, I'd say it's a bug that those
>> libs should only be installed with multilib on. My guess is, that the
>> intent and/or right way would be to just omit that multilib dep. Apart
>> from other useflags that could be used. I.e. it should be:
>>
>> ====
>> if use kernel_linux && [[ ${ABI} == "amd64" ]];
>> then
>> NV_GLX_LIBRARIES+=(
>> "libnvidia-cbl.so.${NV_SOVER}"
>> "libnvidia-rtcore.so.${NV_SOVER}"
>> "libnvoptix.so.${NV_SOVER}"
>> )
>> fi
>> ====
[..]
>ooouuuhhhh...now things are becoming really weird...:
Not really ;)
>After reading your post (thanks for the indepth analysis!!!)m I set this:
>>=x11-drivers/nvidia-drivers-396.24-r2 X static-libs uvm compat driver acpi
>>multilib
>
>and got this:
>[I] x11-drivers/nvidia-drivers
> Available versions: (~)304.137-r1(0/304)^md[1]
> (~)340.107-r2(0/340)^md[1] 340.108(0/340)^mtd (~)375.82-r2(0/375)^md[1]
> (~)378.13-r5(0/378)^md[1] (~)381.22-r3(0/381)^md[1]
> (~)384.130-r1(0/384)^md[1] (~)387.34-r1(0/387)^md[1]
> (~)390.77-r1(0/390)^md[1] (~)390.87(0/390)^md[1] 390.132-r1(0/390)^mtd
> (~)390.132-r2(0/390)^mtd (~)396.24-r2(0/396)^md[1]
> (~)396.24.10-r1(0/396.24)^md[1] (~)396.45-r1(0/396)^md[1]
> (~)396.51-r1(0/396)^md[1] (~)396.51.02(0/396.51)^md[1] (~)396.54(0/396)^md[1]
> 430.64-r1(0/430)^mtd 435.21-r1(0/435)^mtd 440.64(0/440)^mtd {+X acpi compat
> +driver gtk3 +kms +libglvnd multilib pax_kernel static-libs +tools uvm
> wayland ABI_MIPS="n32 n64 o32" ABI_RISCV="lp64 lp64d" ABI_S390="32 64"
> ABI_X86="32 64 x32" KERNEL="FreeBSD linux"}
> Installed versions: 440.64(0/440)^mtd(09:06:52 AM 04/04/2020)(X acpi
> compat driver kms libglvnd static-libs tools uvm -gtk3 -multilib -wayland
> ABI_MIPS="-n32 -n64 -o32" ABI_RISCV="-lp64 -lp64d" ABI_S390="-32 -64"
> ABI_X86="64 -32 -x32" KERNEL="linux -FreeBSD")
> Homepage: https://www.nvidia.com/
> Description: NVIDIA Accelerated Graphics Driver
>
>...multilib is ignored....
Did you reemerge x11-drivers/nvidia-drivers? If so your profile might
have switched if off and then read on ;)
>...because I am on a 64bit-only system???
Possibly, I'm not firm about all that profile stuff. If you've
selected a no-multilib profile (e.g.
default/linux/amd64/17.1/no-multilib), I guess that -multilib might be
switched off by the profile, even overriding your useflag in
package.use[0].
In that case, try this (create dirs/files as neccessary):
==== /etc/portage/profile/package.use.force ===
x11-drivers/nvidia-drivers multilib
====
If that does not work, try:
==== /etc/portage/profile/package.use.mask ===
x11-drivers/nvidia-drivers -multilib
====
(it's a matter of how it's switched off via the profile, AFAIK).
BTW: you do not have to emerge the package to see the effect of those
edits, an 'emerge --pretend ...' will show you if the 'multilib' flag
will be honored or not.
>By the way: For testing purposes, I installed the nvidia-drivers as
>they are provided by nvidia and can activate Optix in blender then.
>I prefer the "Gentoo-way", though.
Yeah, I do too, even though I do mess with it quite a bit :)
>Hmmmm...
>
>And: ABI_X86="64 -32 -x32" does not include "amd64" but only "64"...
ABI_X86 is a USE_EXPAND and so ABI_X86="64" expands to abi_x86_64 and
_that_ in effect sets the ABI multibuild environment variable to "amd64"
if you're building for x86_64 and not if building for e.g. x86_32 or
ppc or whatnot.
Dunno where that's documented though. Search 'ABI site:gentoo.org'?
HTH,
-dnh
[0] Which BTW makes no sense to me. Who does not set useflags in
package.use out of a reason? Why do useflags from the profile
override those in package.use?
[1] on my box and in other cases I'd just copy stuff to my local
overlay and adjust the ebuild as suggested (and see if it works) ;)
As I do with many dozens of others (most adjustments are just
personal taste, cosmetic and not worthy of any upstreaming ;)
--
Bored? Want hours of entertainment? Just set the initdefault to 6! Whee!