%global asahi_mesa_ver 20241204 %global git_tag asahi-%{asahi_mesa_ver} %global basever 25.0.0 %global ver %{basever}-asahipre%{asahi_mesa_ver} %global sdk_ver 24.08 %global llvm_major 18 %global libclc_ver llvmorg-18.1.8 %global spirv_tools_ver v2024.2 %global spirv_headers_ver vulkan-sdk-1.3.283.0 %global spirv_llvm_translator_ver v18.1.2 %global pyyaml_ver 6.0.2 %global wl_procols_ver 1.38 Name: mesa-asahi-%{sdk_ver}-flatpak Summary: Mesa graphics libraries Flatpak overlay Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)} Release: 2 License: MIT URL: http://www.mesa3d.org Source0: org.freedesktop.Platform.GL.host.yml Source1: bwrapwrapper Source10: https://gitlab.freedesktop.org/asahi/mesa/-/archive/%{git_tag}/mesa-%{git_tag}.tar.gz Source11: https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/%{spirv_llvm_translator_ver}.tar.gz Source12: https://github.com/KhronosGroup/SPIRV-Headers/archive/refs/tags/%{spirv_headers_ver}.tar.gz Source13: https://github.com/KhronosGroup/SPIRV-Tools/archive/refs/tags/%{spirv_tools_ver}.tar.gz Source14: https://github.com/llvm/llvm-project/archive/refs/tags/%{libclc_ver}.tar.gz Source15: https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-%{pyyaml_ver}.tar.gz Source17: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/%{wl_procols_ver}/downloads/wayland-protocols-%{wl_procols_ver}.tar.xz Requires: flatpak BuildRequires: patchelf BuildRequires: flatpak-builder BuildRequires: fdo-runtime-%{sdk_ver}-flatpak BuildRequires: fdo-sdk-%{sdk_ver}-flatpak BuildRequires: fdo-sdk-extension-llvm%{llvm_major}-%{sdk_ver}-flatpak BuildRequires: fdo-sdk-extension-rust-stable-%{sdk_ver}-flatpak # Missing from the Flatpak rust SDK extension, but the Fedora one works BuildRequires: bindgen-cli # We don't want any automatic provides/requires since this is a Flatpak, not a system app %global __provides_exclude_from ^.*$ %global __requires_exclude_from ^.*$ %description %{summary}. %prep sed \ -e "s,\%SRC_MESA,%SOURCE10,g" \ -e "s,\%SRC_SPIRV_LLVM_TRANSLATOR,%SOURCE11,g" \ -e "s,\%SRC_SPIRV_HEADERS,%SOURCE12,g" \ -e "s,\%SRC_SPIRV_TOOLS,%SOURCE13,g" \ -e "s,\%SRC_LIBCLC,%SOURCE14,g" \ -e "s,\%SRC_PYYAML,%SOURCE15,g" \ -e "s,\%SRC_WL_PROTOCOLS,%SOURCE17,g" \ %SOURCE0 > org.freedesktop.Platform.GL.host.yml cp %SOURCE1 . cat << EOF > mesa-asahi-version.patch --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -%{basever}-devel +%{basever}-asahi%{asahi_mesa_ver} EOF chmod +x bwrapwrapper flatpak remote-add --user flathub https://0.0.0.0 flatpak remote-modify --user --collection-id=org.flathub.Stable flathub flatpak install --assumeyes --user flathub --sideload-repo=/usr/share/flatpak-sideload/fdo-sdk-%{sdk_ver}/ org.freedesktop.Sdk//%{sdk_ver} flatpak install --assumeyes --user flathub --sideload-repo=/usr/share/flatpak-sideload/fdo-runtime-%{sdk_ver}/ org.freedesktop.Platform//%{sdk_ver} flatpak install --assumeyes --user flathub --sideload-repo=/usr/share/flatpak-sideload/fdo-sdk-extension-llvm%{llvm_major}-%{sdk_ver}/ org.freedesktop.Sdk.Extension.llvm%{llvm_major}//%{sdk_ver} flatpak install --assumeyes --user flathub --sideload-repo=/usr/share/flatpak-sideload/fdo-sdk-extension-rust-stable-%{sdk_ver}/ org.freedesktop.Sdk.Extension.rust-stable//%{sdk_ver} %build FLATPAK_BWRAP=$PWD/bwrapwrapper flatpak-builder --disable-rofiles-fuse --extra-sources=%{_sourcedir} build org.freedesktop.Platform.GL.host.yml # add DT_RUNPATH to ensure that libgallium-*.so is found even with a stale ld.so.cache # https://github.com/flatpak/flatpak/issues/5948 patchelf --add-rpath /usr/lib/%{_arch}-linux-gnu/GL/host/lib/ build/files/lib/libEGL_mesa.so.0.0.0 patchelf --add-rpath /usr/lib/%{_arch}-linux-gnu/GL/host/lib/ build/files/lib/libGLX_mesa.so patchelf --add-rpath /usr/lib/%{_arch}-linux-gnu/GL/host/lib/ build/files/lib/gbm/dri_gbm.so patchelf --add-rpath /usr/lib/%{_arch}-linux-gnu/GL/host/lib/ build/files/lib/libRusticlOpenCL.so.1.0.0 patchelf --add-rpath /usr/lib/%{_arch}-linux-gnu/GL/host/lib/ build/files/lib/libclang-cpp.so.18.1 # Make icd lib path absolute so it can be found without the ld.so cache update sed -i -e "s,^,/usr/lib/%{_arch}-linux-gnu/GL/host/lib/," build/files/etc/OpenCL/vendors/rusticl.icd %install mkdir -p %{buildroot}%{_sharedstatedir}/flatpak/extension/org.freedesktop.Platform.GL.host/$(flatpak --default-arch)/ mv build/files %{buildroot}%{_sharedstatedir}/flatpak/extension/org.freedesktop.Platform.GL.host/$(flatpak --default-arch)/%{sdk_ver} ln -s share/glvnd share/vulkan etc/OpenCL %{buildroot}%{_sharedstatedir}/flatpak/extension/org.freedesktop.Platform.GL.host/$(flatpak --default-arch)/%{sdk_ver}/ %files %{_sharedstatedir}/flatpak/extension/org.freedesktop.Platform.GL.host/ %changelog * Fri Dec 06 2024 Asahi Lina - 25.0.0~asahipre20241204-2 - Enable RustiCL - Fix paths in the x86_64 build * Wed Dec 04 2024 Asahi Lina - 25.0.0~asahipre20241204-1 - Bump to mesa-asahi-20241204 * Mon Dec 02 2024 Janne Grunau - 25.0.0~asahipre20241202.2-1 - Bump to mesa-asahi-20241202.2 * Sun Dec 01 2024 Janne Grunau - 25.0.0~asahipre20241201-1 - Bump to mesa-asahi-20241201 * Mon Nov 11 2024 Asahi Lina - 24.3.0~asahipre20241111-1 - Bump to mesa-asahi-20241111 * Mon Nov 11 2024 Asahi Lina - 24.3.0~asahipre20241109-1 - Bump to mesa-asahi-20241109 * Mon Nov 04 2024 Asahi Lina - 24.3.0~asahipre20241104-1 - Bump to mesa-asahi-20241104 * Wed Oct 09 2024 Janne Grunau - 24.3.0~asahipre20241006-1 - Bump to mesa-asahi-20241006 * Fri Oct 04 2024 Janne Grunau - 24.3.0~asahipre20241004-1 - Bump to mesa-asahi-20241004 - Use the asahi tag as mesa version * Mon Sep 30 2024 Janne Grunau - 24.3.0~asahipre20240930-1 - Bump to mesa-asahi-20240930 - Remove 'bin/' from the packaged extension - Fix stale ld.so.cache issue with DT_RUNPATH * Thu Sep 26 2024 Janne Grunau - 24.3.0~asahipre20240925-1 - Bump mesa to asahi-20240925 * Wed Sep 25 2024 Janne Grunau - 24.2.0~asahipre20240727-2 - Build for 24.08 freedesktop SDK * Sun Jul 28 2024 Janne Grunau - 24.2.0~asahipre20240727-1 - Bump to 24.2.0~asahipre20240727-1 (using asahi UAPI to 10011) * Thu Jul 25 2024 Hector Martin - 24.2.0~asahipre20240725-1 - Bump to 24.2.0~asahipre20240725-1 * Tue Jul 16 2024 Hector Martin - 24.2.0~asahipre20240527-2 - Rename extension to `host`, drop env override, drop libdrm * Mon Jul 15 2024 Hector Martin - 24.2.0~asahipre20240527-1 - Initial release