Re: x11/nvidia-driver update from 460.80 to 460.80_1: libglvnd
Date: Thu, 17 Jun 2021 11:53:26 UTC
David Wolfskill <david@catwhisker.org> writes: > On my laptops, I have been using x11/nvidia-driver (quite successfully) > for several years. > > As I update FreeBSD base and installed ports daily on those machines, I > have > > PORTS_MODULES+=x11/nvidia-driver > > in /etc/src.conf, so the kernel modules get rebuilt when the kernel > does; that has all worked quite well. > > This morning, things didn't go according to plan: > > ... > ===> Cleaning for nvidia-driver-460.80_1 > ===> License NVIDIA accepted by the user > ===> nvidia-driver-460.80_1 depends on file: /usr/local/sbin/pkg - found > ===> Fetching all distfiles required by nvidia-driver-460.80_1 for building > ===> Extracting for nvidia-driver-460.80_1 > => SHA256 Checksum OK for NVIDIA-FreeBSD-x86_64-460.80.tar.gz. > ===> Patching for nvidia-driver-460.80_1 > ===> nvidia-driver-460.80_1 depends on executable: gsed - found > ===> Applying extra patch /common/ports/x11/nvidia-driver/files/460-patch-lib-libGLX_nvidia-Makefile > ===> Applying extra patch /common/ports/x11/nvidia-driver/files/460-patch-src-nvidia-nvidia_ctl.c > ===> Applying extra patch /common/ports/x11/nvidia-driver/files/460-patch-src-nvidia-nvidia_linux.c > ===> Applying extra patch /common/ports/x11/nvidia-driver/files/460-patch-src_nvidia-modeset_nvidia-modeset-freebsd.c > ===> Applying extra patch /common/S1/obj/usr/src/amd64.amd64/sys/CANARY/common/ports/x11/nvidia-driver/work/extra-patch-src-Makefile > ===> Applying extra patch /common/S1/obj/usr/src/amd64.amd64/sys/CANARY/common/ports/x11/nvidia-driver/work/extra-patch-src-nv-freebsd.h > ===> Applying extra patch /common/S1/obj/usr/src/amd64.amd64/sys/CANARY/common/ports/x11/nvidia-driver/work/extra-patch-src-nv-misc.h > ===> Applying extra patch /common/S1/obj/usr/src/amd64.amd64/sys/CANARY/common/ports/x11/nvidia-driver/work/extra-patch-src-nvidia_dev.c > ===> Applying extra patch /common/S1/obj/usr/src/amd64.amd64/sys/CANARY/common/ports/x11/nvidia-driver/work/extra-patch-src-nvidia_pci.c > No such line 404 in input file, ignoring > ===> Applying FreeBSD patches for nvidia-driver-460.80_1 from /common/ports/x11/nvidia-driver/files > ===> nvidia-driver-460.80_1 depends on executable: pkg-config - found > ===> nvidia-driver-460.80_1 depends on package: libglvnd>0 - not found > *** [all] Stopped -- signal 22 > > Sure enough: > > g1-55(12.2-S)[9] pkg info -o libglvnd\* > pkg: No package(s) matching libglvnd* > > So I tried building/installing it ... only to find: > > ===> Installing for libglvnd-1.3.2 > ===> Registering installation for libglvnd-1.3.2 > Installing libglvnd-1.3.2... > pkg-static: libglvnd-1.3.2 conflicts with mesa-libs-20.2.3 (installs files into the same place). Problematic file: /usr/local/include/EGL/egl.h > *** Error code 1 > > So... let's see what uses mesa-libs-20.2.3, eh? > > g1-55(12.2-S)[7] pkg info -r mesa-libs\* > mesa-libs-20.2.3: > firefox-89.0.1,2 > iqpuzzle-1.2.5 > libepoxy-1.5.8 > xlockmore-5.66 > cairo-1.17.4,3 > chromium-90.0.4430.212_1 > jasper-2.0.32 > sdl2-2.0.12_4 > nvidia-settings-460.73.01 > xorg-nestserver-1.20.11,2 > xorg-server-1.20.11,1 > qt5-gui-5.15.2_4 > mplayer-1.4.0.20210314 > mesa-dri-20.2.3_1 > pinball-0.3.20201218 > qt5-multimedia-5.15.2_1 > qt5-opengl-5.15.2_1 > qt5-declarative-5.15.2 > freeglut-3.0.0_2 > libGLU-9.0.1 > ftgl-2.4.0,1 > xf86-video-openchrome-0.6.0_4 > xdriinfo-1.0.6_3 > g1-55(12.2-S)[8] > > So... at this point, I am unclear on how to make both x11/nvidia-driver > and things from the above list like ... Web browsers (for example) able > to coexist on the same system. Force-remove mesa-libs then rebuild all its direct dependencies. libGL, libEGL, libGLESv2, etc. moved to libglvnd but libgbm, libglapi remained in mesa-libs, so some of the ports (e.g., mesa-dri, xorg-server, sdl2) would depend on *both* libglvnd and mesa-libs. Can you test the following? $ pkg delete -f mesa-libs $ portmaster -a || portupgrade -a Binary package users have to wait for the package cluster to catch up but poudriere users can just "pkg upgrade" without doing anything special.