# ==================================================================== # CONFIGURATION AUTOMATIQUE DES PACKAGES ET NETTOYAGE # ==================================================================== %define _enable_debug_packages 0 %global debug_package %{nil} %global __strip /bin/true Name: winehq-7.0 Version: 7.0 Release: 1%{?dist} Summary: Couche de compatibilité Wine (Build Universel Multi-Version) Group: Applications/Emulators License: LGPLv2+ URL: https://winehq.org # Détection dynamique des branches majeures de Wine %global wine_major %(echo %{version} | cut -d. -f1) Source0: https://dl.winehq.org/wine/source/%{wine_major}.0/wine-%{version}.tar.xz # ==================================================================== # DÉPENDANCES DE COMPILATION CONDITIONNELLES (RHEL 6 À 10 / FEDORA) # ==================================================================== # Outils de base présents sur toutes les époques BuildRequires: make gcc gcc-c++ glibc-devel BuildRequires: flex bison BuildRequires: freetype-devel libX11-devel libxcb-devel zlib-devel %if %{wine_major} >= 9 BuildRequires: mingw32-gcc mingw64-gcc %if 0%{?rhel} >= 10 || 0%{?fedora} >= 40 BuildRequires: clang llvm %endif %endif %if %{wine_major} < 9 BuildRequires: glibc-devel(x86-32) freetype-devel(x86-32) libX11-devel(x86-32) %endif %description Ce paquet Wine a été généré via un script RPM Spec adaptatif capable de basculer son architecture de build selon l'ancienneté du système hôte et des sources de Wine. %prep %setup -q -n wine-%{version} %build # Désactivation globale des pilotes conflictuels selon les OS %global conf_flags --without-ldap --without-alsa --disable-tests %if %{wine_major} >= 10 # --------------------------------================---------------- # MÉTHODE A : WINE 10+ (WoW64 unifié en une seule passe) # --------------------------------================---------------- mkdir build && cd build ../configure --prefix=/opt/winehq/%{version} --enable-archs=i386,x86_64 %{conf_flags} make -j$(nproc) cd .. %elif %{wine_major} == 9 # --------------------------------================---------------- # MÉTHODE B : WINE 9.0 (Double build WoW64 expérimental sans libs 32-bit) # ---------------------------------------------------------------- mkdir build64 && cd build64 ../configure --prefix=/opt/winehq/%{version} --enable-win64 %{conf_flags} make -j$(nproc) cd .. mkdir build32 && cd build32 ../configure --prefix=/opt/winehq/%{version} --with-wine64=../build64 %{conf_flags} make -j$(nproc) cd .. %else # --------------------------------================---------------- # MÉTHODE C : WINE 1.x à 8.x (Dual-build standard ou Mono-arch RHEL6) # --------------------------------================================ %if 0%{?rhel} == 6 # RHEL 6 gère mal le dual-build moderne dans un seul RPM, on fait du 32-bit par défaut ../configure --prefix=/opt/winehq/%{version} %{conf_flags} make -j$(nproc) %else # RHEL 7, 8, Fedora : Double build classique 32/64 bits natifs mkdir build64 && cd build64 ../configure --prefix=/opt/winehq/%{version} --enable-win64 %{conf_flags} make -j$(nproc) cd .. mkdir build32 && cd build32 ../configure --prefix=/opt/winehq/%{version} --with-wine64=../build64 %{conf_flags} make -j$(nproc) cd .. %endif %endif %install rm -rf %{buildroot} %if %{wine_major} >= 10 cd build make install DESTDIR=%{buildroot} cd .. %elif %{wine_major} == 9 || ( %{wine_major} < 9 && 0%{?rhel} != 6 ) cd build32 make install DESTDIR=%{buildroot} cd .. cd build64 make install DESTDIR=%{buildroot} cd .. %else make install DESTDIR=%{buildroot} %endif %files /opt/winehq/%{version}/* %changelog * Sun Oct 11 2026 AI Collaborator - Universal-1 - Création de la matrice RPM Spec polymorphe (RHEL 6->10 / Wine 1.x->11.x).