File hangover.spec of Package hangover
Name: hangover
Version: 10.9
Release: %{autorelease}
Summary: Hangover
License: GPLv2
%undefine _hardened_build
%undefine _ld_as_needed
%undefine _auto_set_build_flags
%global _lto_cflags %{nil}
%global __os_install_post %{nil}
%global build_type_safety_c 0
BuildRequires: alsa-lib-devel
BuildRequires: alsa-plugins-pulseaudio
BuildRequires: cups-devel
BuildRequires: flac-libs
BuildRequires: fontconfig-devel
BuildRequires: freetype-devel
BuildRequires: glibc-devel
BuildRequires: glibc-headers
BuildRequires: gnutls-devel
BuildRequires: gsm-devel
BuildRequires: gtk3-devel
BuildRequires: json-c
BuildRequires: lcms2-devel
BuildRequires: libasyncns
BuildRequires: libattr-devel
BuildRequires: libcom_err-devel
BuildRequires: libcom_err-devel
BuildRequires: libedit
BuildRequires: liberation-narrow-fonts
BuildRequires: libexif
BuildRequires: libexif-devel
BuildRequires: libFAudio-devel
BuildRequires: libFAudio-devel
BuildRequires: libgcc
BuildRequires: libgphoto2-devel
BuildRequires: libICE
BuildRequires: libieee1284
BuildRequires: libjpeg-turbo-devel
BuildRequires: libogg
BuildRequires: libpcap-devel
BuildRequires: libpng-devel
BuildRequires: libSM
BuildRequires: libsndfile
BuildRequires: libtiff-devel
BuildRequires: libuuid
BuildRequires: libv4l-devel
BuildRequires: libva
BuildRequires: libva-devel
BuildRequires: libvorbis
BuildRequires: libwayland-client
BuildRequires: libwayland-server
BuildRequires: libX11-devel
BuildRequires: libXcomposite-devel
BuildRequires: libXcursor-devel
BuildRequires: libXext-devel
BuildRequires: libXi-devel
BuildRequires: libXinerama-devel
BuildRequires: libxml2-devel
BuildRequires: libXrandr-devel
BuildRequires: pulseaudio
BuildRequires: gcc-c++
BuildRequires: cmake
BuildRequires: switch-kernel-headers
BuildRequires: clang
BuildRequires: git
BuildRequires: cmake
BuildRequires: ninja-build
BuildRequires: pkg-config
BuildRequires: lld
BuildRequires: llvm
BuildRequires: llvm-devel
BuildRequires: SDL2-devel
BuildRequires: libepoxy-devel
BuildRequires: openssl-devel
BuildRequires: nasm
BuildRequires: python3-clang
BuildRequires: python3
BuildRequires: python-setuptools
BuildRequires: flex
BuildRequires: bison
%define mingw 20250613
Source0: hangover.tar.gz
Source1: llvm-mingw-%{mingw}-ucrt-ubuntu-22.04-aarch64.tar.xz
AutoProv: 0
%description
%{summary}.
%prep
%autosetup -n hangover
%build
mkdir -p %{buildroot}/opt %{buildroot}/usr/lib/
tar -xJf %{SOURCE1} -C %{_builddir}
export CC=%{_builddir}/llvm-mingw-%{mingw}-ucrt-ubuntu-22.04-aarch64/bin/clang
export CXX=%{_builddir}/llvm-mingw-%{mingw}-ucrt-ubuntu-22.04-aarch64/bin/clang++
export PATH="%{_builddir}/llvm-mingw-%{mingw}-ucrt-ubuntu-22.04-aarch64/bin/:$PATH"
mkdir -p wine/build
cd wine/build
../configure --disable-tests --with-mingw=clang --enable-archs=arm64ec,i386,aarch64,arm --prefix=/usr
make -j$(nproc)
env PATH=$PATH make install DESTDIR=%{buildroot}
cd ../../
mkdir -p box64/build_pe
cd box64/build_pe
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=aarch64-redhat-linux-gcc -DARM_DYNAREC=ON -DWOW64=ON ..
make -j$(nproc) wowbox64
aarch64-w64-mingw32-strip --strip-unneeded wowbox64-prefix/src/wowbox64-build/wowbox64.dll
cp wowbox64-prefix/src/wowbox64-build/wowbox64.dll %{buildroot}/usr/lib/
cd ../../
rm -rf box64
find %{buildroot} -not -type d | awk -F %{buildroot} '{print $2}' > %{_builddir}/%{name}/hangover.txt
%files -f hangover.txt
%changelog
%{autochangelog}