From fb9cc86cc393bd0d39dc55583d405e2b82abace3 Mon Sep 17 00:00:00 2001 From: Stefano Ragni Date: Tue, 22 Oct 2019 00:44:41 +0200 Subject: [PATCH 1/2] xbps-src: strip hard links once --- common/hooks/post-install/06-strip-and-debug-pkgs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/hooks/post-install/06-strip-and-debug-pkgs.sh b/common/hooks/post-install/06-strip-and-debug-pkgs.sh index a15dd1a96c3..34ed3553aef 100644 --- a/common/hooks/post-install/06-strip-and-debug-pkgs.sh +++ b/common/hooks/post-install/06-strip-and-debug-pkgs.sh @@ -65,7 +65,7 @@ hook() { STRIPCMD=/usr/bin/$STRIP - find ${PKGDESTDIR} -type f | while read f; do + find ${PKGDESTDIR} -type f -printf '%p %i\n' | awk '!seen[$2]++' | cut -d ' ' -f1 | while read f; do if [[ $f =~ ^${PKGDESTDIR}/usr/lib/debug/ ]]; then continue fi From 23c44f0afc6da0730ecbbae4605e39f893909a82 Mon Sep 17 00:00:00 2001 From: Stefano Ragni Date: Tue, 22 Oct 2019 00:50:52 +0200 Subject: [PATCH 2/2] libGL: reorganize subpackages by megadrivers Many Mesa libraries are hard links to the same file, called a `megadriver`, so they should be grouped in the same subpackage. --- srcpkgs/libGL/template | 110 ++++++++++-------- srcpkgs/{mesa-ati-dri => mesa-dri} | 0 srcpkgs/{mesa-intel-dri => mesa-gallium-dri} | 0 .../{mesa-nouveau-dri => mesa-vulkan-intel} | 0 .../{mesa-vmwgfx-dri => mesa-vulkan-radeon} | 0 5 files changed, 63 insertions(+), 47 deletions(-) rename srcpkgs/{mesa-ati-dri => mesa-dri} (100%) rename srcpkgs/{mesa-intel-dri => mesa-gallium-dri} (100%) rename srcpkgs/{mesa-nouveau-dri => mesa-vulkan-intel} (100%) rename srcpkgs/{mesa-vmwgfx-dri => mesa-vulkan-radeon} (100%) diff --git a/srcpkgs/libGL/template b/srcpkgs/libGL/template index 3ce62fe073f..55581de5dd1 100644 --- a/srcpkgs/libGL/template +++ b/srcpkgs/libGL/template @@ -1,7 +1,7 @@ # Template file for 'libGL' pkgname=libGL version=19.2.1 -revision=1 +revision=2 wrksrc="mesa-${version}" build_style=meson configure_args="-Dshared-glapi=true -Dgbm=true -Degl=true @@ -33,6 +33,7 @@ subpackages="libglapi libgbm libEGL libGLES libOSMesa" case "$XBPS_TARGET_MACHINE" in i686*|x86_64*) # Enable all x86 drivers. +# TODO: Why not the gallium version of i915? configure_args+=" -Dgallium-drivers=r300,r600,radeonsi,svga,swrast,nouveau,virgl" configure_args+=" -Ddri-drivers=i915,i965,r100,r200,nouveau" configure_args+=" -Dgallium-xa=true -Ddri3=true -Dgallium-nine=true" @@ -40,8 +41,8 @@ i686*|x86_64*) configure_args+=" -Dgallium-opencl=icd" hostmakedepends+=" clang" makedepends+=" libclc-git" - subpackages+=" libxatracker mesa-ati-dri mesa-intel-dri mesa-nouveau-dri" - subpackages+=" mesa-vmwgfx-dri mesa-opencl" + subpackages+=" libxatracker mesa-dri mesa-gallium-dri" + subpackages+=" mesa-vulkan-intel mesa-vulkan-radeon mesa-opencl" ;; ppc*) # Enable all ppc drivers. @@ -56,21 +57,21 @@ ppc*) esac hostmakedepends+=" clang" makedepends+=" libclc-git" - subpackages+=" mesa-ati-dri mesa-nouveau-dri" - subpackages+=" mesa-opencl" + subpackages+=" mesa-dri mesa-gallium-dri" + subpackages+=" mesa-vulkan-radeon mesa-opencl" ;; aarch64*) configure_args+=" -Dgallium-drivers=nouveau,tegra,swrast,vc4" configure_args+=" -Dvulkan-drivers= -Ddri-drivers=" configure_args+=" -Dgallium-xa=false -Ddri3=true" - subpackages+=" mesa-tegra-dri mesa-nouveau-dri mesa-vc4-dri" + subpackages+=" mesa-tegra-dri mesa-gallium-dri mesa-vc4-dri" ;; armv7l*) # Enable Videocore IV and swrast for RaspberryPi configure_args+=" -Dgallium-drivers=swrast,vc4" configure_args+=" -Dvulkan-drivers= -Ddri-drivers= -Dgallium-xvmc=false" configure_args+=" -Dgallium-xa=false -Dgallium-vdpau=false -Dgallium-va=false" - subpackages+=" mesa-vc4-dri" + subpackages+=" mesa-gallium-dri mesa-vc4-dri" ;; *) # Enable swrast driver. @@ -78,6 +79,7 @@ armv7l*) configure_args+=" -Ddri-drivers= -Dvulkan-drivers= -Dgallium-va=false" configure_args+=" -Dgallium-vdpau=false -Dgallium-xvmc=false" configure_args+=" -Dgallium-xa=false" + subpackages+=" mesa-gallium-dri" ;; esac @@ -106,6 +108,7 @@ esac post_install() { vlicense docs/license.html vmkdir usr/lib/xorg/modules/extensions +# TODO: This file is not installed in musl ln -s libglx-xorg.so ${DESTDIR}/usr/lib/xorg/modules/extensions/libglx.so case "$XBPS_TARGET_MACHINE" in i686*) @@ -175,59 +178,65 @@ libxatracker_package() { } } -mesa-ati-dri_package() { - short_desc="Mesa DRI drivers for ATI GPUs" - lib32files="/usr/share/vulkan/icd.d/radeon_icd.i686.json" - pkg_install() { - vmove "usr/lib/libXvMCr[36]00.so.*" - vmove "usr/lib/vdpau/libvdpau_r[36]00.so*" - vmove "usr/lib/vdpau/libvdpau_radeon*.so*" - vmove "usr/lib/xorg/modules/drivers/radeon*" - vmove "usr/lib/xorg/modules/drivers/r[236]00*" - vmove usr/lib/dri/r* - vmove "usr/share/vulkan/icd.d/radeon_icd*.json" - vmove "usr/lib/libvulkan_radeon.so" - vmove "usr/lib/gallium-pipe/pipe_r[36]00.so" - vmove usr/lib/gallium-pipe/pipe_radeonsi.so - } -} - -mesa-intel-dri_package() { - short_desc="Mesa DRI drivers for Intel GPUs" - lib32files="/usr/share/vulkan/icd.d/intel_icd.i686.json" +mesa-dri_package() { + short_desc="Mesa classic DRI drivers" pkg_install() { - vmove "usr/lib/xorg/modules/drivers/i9[16]5_dri.*" - vmove "usr/share/vulkan/icd.d/intel_icd*.json" - vmove "usr/lib/libvulkan_intel.so" + vmove "usr/lib/xorg/modules/drivers/i9[16]5_dri.so" + vmove "usr/lib/xorg/modules/drivers/nouveau_vieux_dri.so" + vmove "usr/lib/xorg/modules/drivers/r200_dri.so" + vmove "usr/lib/xorg/modules/drivers/radeon_dri.so" } } -mesa-nouveau-dri_package() { - short_desc="Mesa DRI drivers for NVIDIA GPUs (nouveau dri)" +mesa-gallium-dri_package() { + short_desc="Mesa Gallium DRI drivers" pkg_install() { - vmove "usr/lib/libXvMCnouveau.so.*" - vmove "usr/lib/vdpau/libvdpau_nouveau.so*" - vmove "usr/lib/xorg/modules/drivers/nouveau*" - vmove "usr/lib/dri/nouveau*" case "$XBPS_TARGET_MACHINE" in - aarch64*) ;; - *) vmove usr/lib/gallium-pipe/pipe_nouveau.so ;; + i686*|x86_64*) +# TODO: XvMCr and vdpau probably belong to another subpackage + vmove "usr/lib/libXvMCr[36]00.so.*" + vmove "usr/lib/libXvMCnouveau.so.*" + vmove "usr/lib/vdpau/libvdpau_r[36]00.so*" + vmove "usr/lib/vdpau/libvdpau_radeon*.so*" + vmove "usr/lib/vdpau/libvdpau_nouveau.so*" + vmove "usr/lib/xorg/modules/drivers/radeonsi_dri.so" + vmove "usr/lib/xorg/modules/drivers/r[36]00*" + vmove "usr/lib/xorg/modules/drivers/nouveau_dri.so" + vmove "usr/lib/xorg/modules/drivers/virtio_gpu_dri.so" + vmove "usr/lib/xorg/modules/drivers/vmwgfx*" + vmove usr/lib/dri/r* + vmove "usr/lib/dri/nouveau*" + vmove "usr/lib/gallium-pipe/" + ;; + aarch64*) + vmove "usr/lib/libXvMCnouveau.so.*" + vmove "usr/lib/vdpau/libvdpau_nouveau.so*" + vmove "usr/lib/xorg/modules/drivers/nouveau_dri.so" + vmove "usr/lib/dri/nouveau*" + ;; +# TODO: the ppc*) case esac +# TODO: brace expansion doesn't work? + vmove "usr/lib/xorg/modules/drivers/swrast_dri.so" + vmove "usr/lib/xorg/modules/drivers/kms_swrast_dri.so" } } -mesa-vmwgfx-dri_package() { - short_desc="Mesa DRI drivers for VMware" +mesa-vulkan-radeon_package() { + short_desc="Mesa Radeon Vulkan driver" + lib32files="/usr/share/vulkan/icd.d/radeon_icd.i686.json" pkg_install() { - vmove "usr/lib/xorg/modules/drivers/vmwgfx*" - vmove usr/lib/gallium-pipe/pipe_vmwgfx.so + vmove "usr/share/vulkan/icd.d/radeon_icd*.json" + vmove "usr/lib/libvulkan_radeon.so" } } -mesa-vc4-dri_package() { - short_desc="Mesa DRI drivers for Videocore IV GPU" +mesa-vulkan-intel_package() { + short_desc="Mesa Intel Vulkan driver" + lib32files="/usr/share/vulkan/icd.d/intel_icd.i686.json" pkg_install() { - vmove "usr/lib/xorg/modules/drivers/vc4*" + vmove "usr/share/vulkan/icd.d/intel_icd*.json" + vmove "usr/lib/libvulkan_intel.so" } } @@ -240,9 +249,16 @@ mesa-opencl_package() { } } +mesa-vc4-dri_package() { + short_desc="Mesa DRI drivers for Videocore IV GPU" + pkg_install() { + vmove "usr/lib/xorg/modules/drivers/vc4*" + } +} + mesa-tegra-dri_package() { - short_desc="Mesa DRI drivers for Tegra GPU" - depends="mesa-nouveau-dri" + short_desc="Mesa Gallium DRI drivers for Tegra GPU" + depends="mesa-gallium-dri" pkg_install() { vmove "usr/lib/xorg/modules/drivers/tegra*" } diff --git a/srcpkgs/mesa-ati-dri b/srcpkgs/mesa-dri similarity index 100% rename from srcpkgs/mesa-ati-dri rename to srcpkgs/mesa-dri diff --git a/srcpkgs/mesa-intel-dri b/srcpkgs/mesa-gallium-dri similarity index 100% rename from srcpkgs/mesa-intel-dri rename to srcpkgs/mesa-gallium-dri diff --git a/srcpkgs/mesa-nouveau-dri b/srcpkgs/mesa-vulkan-intel similarity index 100% rename from srcpkgs/mesa-nouveau-dri rename to srcpkgs/mesa-vulkan-intel diff --git a/srcpkgs/mesa-vmwgfx-dri b/srcpkgs/mesa-vulkan-radeon similarity index 100% rename from srcpkgs/mesa-vmwgfx-dri rename to srcpkgs/mesa-vulkan-radeon