From cc0dbbfc3484506c6d49243fe33ebdce6980c815 Mon Sep 17 00:00:00 2001 From: Stefano Ragni Date: Tue, 22 Oct 2019 00:50:52 +0200 Subject: [PATCH] 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. --- .../libGL/patches/no-unlink-megadrivers.patch | 13 ++ srcpkgs/libGL/template | 140 ++++++++++++------ 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 + 8 files changed, 109 insertions(+), 46 deletions(-) create mode 100644 srcpkgs/libGL/patches/no-unlink-megadrivers.patch 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/patches/no-unlink-megadrivers.patch b/srcpkgs/libGL/patches/no-unlink-megadrivers.patch new file mode 100644 index 00000000000..b11e857b9c7 --- /dev/null +++ b/srcpkgs/libGL/patches/no-unlink-megadrivers.patch @@ -0,0 +1,13 @@ +diff --git bin/install_megadrivers.py bin/install_megadrivers.py +index 470137e..7d56def 100644 +--- bin/install_megadrivers.py ++++ bin/install_megadrivers.py +@@ -71,7 +71,7 @@ def main(): + os.chdir(ret) + + # Remove meson-created master .so and symlinks +- os.unlink(master) ++ #os.unlink(master) + name, ext = os.path.splitext(master) + while ext != '.so': + if os.path.lexists(name): diff --git a/srcpkgs/libGL/template b/srcpkgs/libGL/template index 3ce62fe073f..825fc79e460 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,95 @@ 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" + nostrip_files="i915_dri.so i965_dri.so nouveau_vieux_dri.so r200_dri.so + radeon_dri.so" 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" + vmove "usr/lib/xorg/modules/drivers/libmesa_dri_drivers.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" + nostrip_files="radeonsi_dri.so nouveau_dri.so swrast_dri.so + kms_swrast_dri.so r300_dri.so r600_dri.so vmwgfx_dri.so + virtio_gpu_dri.so" + nostrip_files+=" nouveau_drv_video.so r600_drv_video.so + radeonsi_drv_video.so" 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/*_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" + vmove "usr/lib/xorg/modules/drivers/libgallium_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" + nostrip_files="libvdpau_r300.so.1.0.0 libvdpau_r600.so.1.0.0 + libvdpau_radeonsi.so.1.0.0 libvdpau_nouveau.so.1.0.0" 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 ;; - esac + vmove "usr/lib/vdpau/libvdpau_*.so.*" +# case "$XBPS_TARGET_MACHINE" in +# 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" + nostrip_files="libXvMCnouveau.so.1.0.0 libXvMCr600.so.1.0.0" pkg_install() { - vmove "usr/lib/xorg/modules/drivers/vmwgfx*" - vmove usr/lib/gallium-pipe/pipe_vmwgfx.so + vmove "usr/lib/libXvMC*.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 +277,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