# Disable automatic debuginfo generation to avoid conflicts %global debug_package %{nil} # DKMS package support - build optional %bcond_without dkms Name: mvgal Version: 0.5.9 Release: 1%{?dist} Summary: Multi-Vendor GPU Aggregation Layer for Linux License: GPL-3.0-only URL: https://github.com/TheCreateGM/mvgal Source0: mvgal-%{version}.tar.gz BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: make BuildRequires: cmake >= 3.20 BuildRequires: ninja-build BuildRequires: libdrm-devel BuildRequires: systemd-devel BuildRequires: pciutils-devel BuildRequires: pkgconfig(pciaccess) BuildRequires: vulkan-headers BuildRequires: pkgconfig(vulkan) BuildRequires: opencl-headers BuildRequires: ocl-icd-devel BuildRequires: rust BuildRequires: cargo BuildRequires: kernel-devel %if 0%{?rhel} == 8 BuildRequires: elfutils-libelf-devel %endif %if %{with dkms} BuildRequires: dkms %endif Requires: libdrm Requires: systemd Requires: vulkan-loader Obsoletes: mvgallibs <= 0.1.0 Provides: libmvgal = %{version} %description MVGAL (Multi-Vendor GPU Aggregation Layer) enables heterogeneous GPUs (AMD, NVIDIA, Intel, Moore Threads) to function as a single logical compute and rendering device. %package -n mvgal-user-space Summary: Userspace libraries and daemon for MVGAL Requires: %{name}-dkms = %{version}-%{release} Requires: libdrm Requires: systemd Requires: vulkan-loader %description -n mvgal-user-space Userspace components of MVGAL including the Vulkan implicit layer, OpenCL interception, daemon, and CLI tools. %package -n mvgal-dkms Summary: DKMS kernel modules for MVGAL %if %{with dkms} Requires: dkms %endif Requires: kernel-devel %description -n mvgal-dkms DKMS-based kernel modules for MVGAL that provide DMA-BUF P2P memory sharing, page-table grafting, and kernel-level synchronization. %prep %autosetup -n mvgal-%{version} mkdir -p .cargo cat > .cargo/config.toml << 'CARGOEOF' [source.crates-io] replace-with = "vendored-sources" [source.vendored-sources] directory = "vendor" CARGOEOF %build export CARGO_HOME="%{_builddir}/%{name}-%{version}/target" mkdir -p "$CARGO_HOME" cmake -S . -B redhat-linux-build \ -G Ninja \ -DCMAKE_C_FLAGS_RELEASE:STRING="-DNDEBUG" \ -DCMAKE_CXX_FLAGS_RELEASE:STRING="-DNDEBUG" \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ -DCMAKE_INSTALL_DO_STRIP:BOOL=OFF \ -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \ -DCMAKE_INSTALL_SBINDIR:PATH=%{_bindir} \ -DCMAKE_INSTALL_FULL_SBINDIR:PATH=%{_bindir} \ -DCMAKE_BUILD_TYPE=Release \ -DMVGAL_BUILD_KERNEL=OFF \ -DMVGAL_BUILD_RUNTIME=ON \ -DMVGAL_BUILD_TOOLS=ON \ -DMVGAL_BUILD_TESTS=ON \ -DWITH_VULKAN=ON cmake --build redhat-linux-build %install rm -rf %{buildroot} cmake --install redhat-linux-build --prefix=%{buildroot}%{_prefix} %files %doc README.md LICENSE.* %{_prefix}/bin/mvgal-config %{_prefix}/bin/mvgal-info %{_prefix}/bin/mvgal-bench %{_prefix}/bin/mvgal-status %{_prefix}/bin/mvgal-compat %{_prefix}/bin/mvgal-enum %{_prefix}/bin/mvgal-hw-validate %{_prefix}/bin/mvgal-dmabuf-matrix %{_prefix}/bin/mvgal-probe %{_prefix}/bin/mvgal-steam-setup %{_prefix}/bin/mvgal %{_libdir}/libmvgal_*.so* %{_unitdir}/mvgal-daemon.service %files -n mvgal-user-space %doc README.md %{_prefix}/bin/mvgal-config %{_prefix}/bin/mvgal-info %{_prefix}/bin/mvgal-bench %{_prefix}/bin/mvgal-status %{_prefix}/bin/mvgal-compat %{_prefix}/bin/mvgal-enum %{_prefix}/bin/mvgal-hw-validate %{_prefix}/bin/mvgal-dmabuf-matrix %{_prefix}/bin/mvgal-probe %{_prefix}/bin/mvgal-steam-setup %{_prefix}/bin/mvgal %{_libdir}/libmvgal_*.so* %{_unitdir}/mvgal-daemon.service %files -n mvgal-dkms %doc kernel/LICENSE.GPL-2.0 %{_libdir}/dkms/mvgal/ %{_libdir}/dkms/mvgal-dkms.conf %changelog * Thu Jun 27 2026 Poolside AI Agent - 0.5.9-1 - Initial local build for testing - Disabled kernel module building (requires kernel-devel)