Re: git: 171cdaf295e3 - main - graphics/mesa-libs: Fix LIB_DEPENDS
Date: Mon, 22 Apr 2024 07:36:01 UTC
On Sat 20 Apr 18:55, Emmanuel Vadot wrote: > On Sat, 20 Apr 2024 02:12:18 +0200 > Jan Beich <jbeich@FreeBSD.org> wrote: > > > Emmanuel Vadot <manu@FreeBSD.org> writes: > > > > > The branch main has been updated by manu: > > > > > > URL: https://cgit.FreeBSD.org/ports/commit/?id=171cdaf295e37c781f9a4999b05ea74da0bcd0f0 > > > > > > commit 171cdaf295e37c781f9a4999b05ea74da0bcd0f0 > > > Author: Emmanuel Vadot <manu@FreeBSD.org> > > > AuthorDate: 2024-04-18 08:54:08 +0000 > > > Commit: Emmanuel Vadot <manu@FreeBSD.org> > > > CommitDate: 2024-04-18 12:22:27 +0000 > > > > > > graphics/mesa-libs: Fix LIB_DEPENDS > > > > > > Mesa itself does not depend on libOpenGL.so from libglvnd but it needs > > > libglvnd at build stage. > > > Also it doesn't not depend on libwayland-egl.so but on libwayland-server.so > > > and libwayland-client.so > > > > > > Differential Revision: https://reviews.freebsd.org/D44831 > > > PR: 278324 > > > Reported by: autodep > > > Reviewed by: bapt > > > Sponsored by: Beckhoff Automation GmbH & Co. KG > > > > This partial revert of https://cgit.freebsd.org/ports/commit/?id=1a86bea35222 > > introduces inconsistency with other OpenGL providers. Also, consumers may[1] > > depend on mesa-libs but not libglvnd, breaking minimalistic jails e.g., > > > > $ trap 'poudriere jails -kj 132amd64' EXIT INT TERM > > $ poudriere jails -sj 132amd64 > > $ jail=132amd64-default > > $ prefix=$(jls -j $jail path) > > # prefer local packages > > $ sed -i '' -Ee '/url/s,".*","file:///packages",' \ > > -e '/mirror|signat|finger/d' \ > > $prefix/etc/pkg/FreeBSD.conf > > # Vulkan/OpenGL/OpenCL acceleration > > $ for p in 'dr[im]' 'dr[im]/*' 'pci'; do > > devfs -m $prefix/dev rule apply path $p unhide; > > done > > # pass through Wayland socket > > $ mkdir -p $prefix/$XDG_RUNTIME_DIR > > $ mount -t nullfs $XDG_RUNTIME_DIR $prefix/$XDG_RUNTIME_DIR > > # mirror local user > > $ jexec $jail pw user add $(id -un) -m -G wheel,video > > $ jexec $jail login -fp $(id -un) > > $ su root -c 'pkg install -qy glmark2 mesa-dri' > > $ glmark2-wayland > > Error: Error loading EGL library > > Error: main: Could not initialize canvas > > Isn't the problem that glmark2 does dlopen on libEGL ? > https://github.com/glmark2/glmark2/blob/master/src/gl-state-egl.cpp#L316 > I think that in this case libglvnd should be added to RUN_DEPENDS, > maybe we could add a USE_GL= egl:run or something like that. > The autodep features shows a lot of problem like that in the ports > tree. It does cause problems for example like you showed but in reality > most of this problem will be hidden because not having libglvnd on a > system is very rare. > Bapt, do you think I should revert this one or should we start fixing > ports for the autodep feature ? > > Cheers, > > > [1] $ comm -13 <(pkg rquery %ro libglvnd | sort) <(pkg rquery %ro mesa-libs | sort) > > benchmarks/glmark2 > > benchmarks/vkmark > > emulators/qemu-devel > > graphics/libosmesa > > graphics/mesa-dri > > multimedia/wf-recorder > > net-im/tg_owt > > net/neatvnc > > net/waypipe > > net/wayvnc > > x11-drivers/xf86-video-amdgpu > > x11-wm/cosmic-comp > > x11-wm/niri > > x11/virglrenderer > > x11/xdg-desktop-portal-hyprland > > x11/xdg-desktop-portal-hyprland > > x11/xdg-desktop-portal-wlr My view on it is LIB_DEPENDS is not for dlopened depencencies those should be provided via RUN_DEPENDS (and BUILD_DEPENDS if tested at build time) USE_GL=egl:run sounds like a good idea to me. Best regards, Bapt