# ==================================================================== # CONFIGURATION AUTOMATIQUE DES PACKAGES ET NETTOYAGE # ==================================================================== %define _enable_debug_packages 0 %global debug_package %{nil} %global __strip /bin/true Name: winehq-11.19 Version: 11.19 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}.x/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 # Gestion de Flex / Bison (Changement de nom de paquet sur RHEL 6) %if 0%{?rhel} == 6 BuildRequires: flex bison %else BuildRequires: flex bison %endif # Dépendances graphiques et fondamentales 64-bits BuildRequires: freetype-devel libX11-devel libxcb-devel zlib-devel # Étape critique : Gestion de l'architecture 32-bit (Natif vs Cross-compilation MinGW) %if %{wine_major} >= 9 # WINE MODERNES (9+) : Utilisation de MinGW (WoW64 pur) %if 0%{?rhel} >= 10 || 0%{?fedora} >= 40 # RHEL 10 / Fedora récents BuildRequires: mingw32-gcc mingw64-gcc clang llvm %else # RHEL 7 / 8 / 9 BuildRequires: mingw32-gcc mingw64-gcc %endif %else # WINE ANCIENS (1.x à 8.x) : Multilib natif obligatoire # Note : Ne fonctionnera pas sur RHEL 9/10 sans dépôts i686 externes. %if 0%{?rhel} <= 8 || 0%{?fedora} BuildRequires: glibc-devel(x86-32) freetype-devel(x86-32) libX11-devel(x86-32) %endif %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).