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 ec8d90e5ba7ca0b1777514b8132b01cbb8f17f2f 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 | 122 +++++++++++------- srcpkgs/{mesa-ati-dri => mesa-dri} | 0 srcpkgs/{mesa-intel-dri => mesa-gallium-XvMC} | 0 .../{mesa-nouveau-dri => mesa-gallium-dri} | 0 .../{mesa-vmwgfx-dri => mesa-gallium-vdpau} | 0 srcpkgs/mesa-vulkan-intel | 1 + srcpkgs/mesa-vulkan-radeon | 1 + 7 files changed, 80 insertions(+), 44 deletions(-) rename srcpkgs/{mesa-ati-dri => mesa-dri} (100%) rename srcpkgs/{mesa-intel-dri => mesa-gallium-XvMC} (100%) rename srcpkgs/{mesa-nouveau-dri => mesa-gallium-dri} (100%) rename srcpkgs/{mesa-vmwgfx-dri => mesa-gallium-vdpau} (100%) create mode 120000 srcpkgs/mesa-vulkan-intel create mode 120000 srcpkgs/mesa-vulkan-radeon diff --git a/srcpkgs/libGL/template b/srcpkgs/libGL/template index 3ce62fe073f..c129a34c656 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 @@ -40,8 +40,9 @@ 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-gallium-vdpau mesa-gallium-XvMC" + subpackages+=" mesa-vulkan-intel mesa-vulkan-radeon mesa-opencl" ;; ppc*) # Enable all ppc drivers. @@ -56,21 +57,23 @@ 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-gallium-vdpau mesa-gallium-XvMC" + 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-gallium-dri mesa-gallium-vdpau mesa-gallium-XvMC" + subpackages+=" mesa-tegra-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 +81,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 +110,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 +180,81 @@ libxatracker_package() { } } -mesa-ati-dri_package() { - short_desc="Mesa DRI drivers for ATI GPUs" - lib32files="/usr/share/vulkan/icd.d/radeon_icd.i686.json" +mesa-dri_package() { + short_desc="Mesa classic DRI drivers" 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 + 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-intel-dri_package() { - short_desc="Mesa DRI drivers for Intel GPUs" - lib32files="/usr/share/vulkan/icd.d/intel_icd.i686.json" +mesa-gallium-dri_package() { + short_desc="Mesa Gallium 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" + case "$XBPS_TARGET_MACHINE" in + i686*|x86_64*) + vmove "usr/lib/dri/*_drv_video.so" + vmove "usr/lib/gallium-pipe/pipe_*.so" + vmove "usr/lib/xorg/modules/drivers/nouveau_dri.so" + vmove "usr/lib/xorg/modules/drivers/r[36]00_dri.so" + vmove "usr/lib/xorg/modules/drivers/radeonsi_dri.so" + vmove "usr/lib/xorg/modules/drivers/virtio_gpu_dri.so" + vmove "usr/lib/xorg/modules/drivers/vmwgfx_dri.so" + ;; + aarch64*) + vmove "usr/lib/dri/nouveau_drv_video.so" + vmove "usr/lib/xorg/modules/drivers/nouveau_dri.so" + ;; +# TODO: the ppc*) case + esac + vmove "usr/lib/xorg/modules/drivers/*swrast_dri.so" } } -mesa-nouveau-dri_package() { - short_desc="Mesa DRI drivers for NVIDIA GPUs (nouveau dri)" +mesa-gallium-vdpau_package() { + short_desc="Mesa Gallium VDPAU" 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*) + vmove "usr/lib/vdpau/libvdpau_*.so.*" + ;; + aarch64*) + vmove "usr/lib/vdpau/libvdpau_nouveau.so.*" + ;; esac } } -mesa-vmwgfx-dri_package() { - short_desc="Mesa DRI drivers for VMware" +mesa-gallium-XvMC_package() { + short_desc="Mesa Gallium XvMC" pkg_install() { - vmove "usr/lib/xorg/modules/drivers/vmwgfx*" - vmove usr/lib/gallium-pipe/pipe_vmwgfx.so + case "$XBPS_TARGET_MACHINE" in + i686*|x86_64*) + vmove "usr/lib/libXvMC*.so.*" + ;; + aarch64*) + vmove "usr/lib/libXvMCnouveau.so.*" + esac } } -mesa-vc4-dri_package() { - short_desc="Mesa DRI drivers for Videocore IV GPU" +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/vc4*" + vmove "usr/share/vulkan/icd.d/radeon_icd*.json" + vmove "usr/lib/libvulkan_radeon.so" + } +} + +mesa-vulkan-intel_package() { + short_desc="Mesa Intel Vulkan driver" + lib32files="/usr/share/vulkan/icd.d/intel_icd.i686.json" + pkg_install() { + vmove "usr/share/vulkan/icd.d/intel_icd*.json" + vmove "usr/lib/libvulkan_intel.so" } } @@ -236,13 +263,20 @@ mesa-opencl_package() { depends="libclc libOpenCL" pkg_install() { vmove etc/OpenCL - vmove "usr/lib/libMesaOpenCL*" + vmove "usr/lib/libMesaOpenCL.so.*" + } +} + +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-XvMC similarity index 100% rename from srcpkgs/mesa-intel-dri rename to srcpkgs/mesa-gallium-XvMC diff --git a/srcpkgs/mesa-nouveau-dri b/srcpkgs/mesa-gallium-dri similarity index 100% rename from srcpkgs/mesa-nouveau-dri rename to srcpkgs/mesa-gallium-dri diff --git a/srcpkgs/mesa-vmwgfx-dri b/srcpkgs/mesa-gallium-vdpau similarity index 100% rename from srcpkgs/mesa-vmwgfx-dri rename to srcpkgs/mesa-gallium-vdpau diff --git a/srcpkgs/mesa-vulkan-intel b/srcpkgs/mesa-vulkan-intel new file mode 120000 index 00000000000..5ef01dc565e --- /dev/null +++ b/srcpkgs/mesa-vulkan-intel @@ -0,0 +1 @@ +libGL \ No newline at end of file diff --git a/srcpkgs/mesa-vulkan-radeon b/srcpkgs/mesa-vulkan-radeon new file mode 120000 index 00000000000..5ef01dc565e --- /dev/null +++ b/srcpkgs/mesa-vulkan-radeon @@ -0,0 +1 @@ +libGL \ No newline at end of file