File wine-osu-Fedora_39.spec of Package wine-osu
%define __find_provides %{nil}
%define realver 9.0
%define _lto_cflags %{nil}
%define stagingver %{realver}
%define packagever %{realver}
%global flavor @BUILD_FLAVOR@%nil
# defaults ..
%define pkg wine-osu
%define compat_package winehq-staging
%define _prefix /opt/wine-osu
%define ver %packagever
%define lib_major 1
%define lib_name lib%{pkg}1
%define lib_name_devel lib%{pkg}-devel
%undefine _hardened_build
Name: %pkg
Version: %(echo %ver | sed 's/-/~/g')
Release: 0
Epoch: 1
Summary: WINE Is Not An Emulator - runs MS Windows programs
License: LGPLv2+
Group: Emulators
URL: https://www.winehq.org/
%ifarch x86_64
%define wine %{name}64
%define mark64 ()(64bit)
%else
%define wine %{name}
%define mark64 %{nil}
%endif
Source0: https://dl.winehq.org/wine/source/8.x/wine-%{realver}.tar.xz
Source1: https://dl.winehq.org/wine/source/8.x/wine-%{realver}.tar.xz.sign
Source999: wine-osu.debian.tar.xz
#Source100: https://github.com/wine-staging/wine-staging/archive/v%{realver}.tar.gz#/wine-staging-%{stagingver}.tar.xz
# Alexandres key
Source99: wine.keyring
# These are all the Fedora only packages, which are not present on Centos, RHEL or Scientific Linux
%if 0%{?fedora_version}
BuildRequires: mingw32-gcc
BuildRequires: mingw64-gcc
BuildRequires: SDL2-devel
# BuildRequires: openal-soft-devel
BuildRequires: opencl-headers
BuildRequires: ocl-icd-devel
# BuildRequires: libFAudio-devel
# BuildRequires: libvkd3d-devel
# BuildRequires: libvkd3d-shader-devel
# BuildRequires: jxrlib-devel
BuildRequires: samba-devel
%endif
%if 0%{?fedora_version} != 34
BuildRequires: libgcrypt-devel
%endif
%if 0%{?fedora_version} > 28
BuildRequires: libvkd3d-devel
%endif
# Fedora and SL 7.0 packages
%if 0%{?fedora_version} || 0%{?scientificlinux_version} >= 700 || 0%{?centos_version} >= 700
BuildRequires: icoutils
BuildRequires: vulkan-devel
# BuildRequires: lcms2-devel
BuildRequires: gstreamer1-devel
BuildRequires: gstreamer1-plugins-base-devel
# BuildRequires: libmpg123-devel
BuildRequires: gtk3-devel
BuildRequires: libva-devel
%endif
# On all Redhat based versions except RHEL...
%if 0%{?fedora_version} || 0%{?scientificlinux_version} || 0%{?centos_version}
BuildRequires: autotrace
BuildRequires: fontforge
BuildRequires: fontpackages-devel
# BuildRequires: gsm-devel
# BuildRequires: libjpeg-turbo-devel
BuildRequires: libudev-devel
BuildRequires: libv4l-devel
BuildRequires: pulseaudio-libs-devel
BuildRequires: lzma
BuildRequires: audiofile-devel
BuildRequires: giflib-devel
BuildRequires: ImageMagick-devel
BuildRequires: libpcap-devel
BuildRequires: libXxf86dga-devel
BuildRequires: mesa-libOSMesa-devel
BuildRequires: libgphoto2-devel
%endif
%if 0%{?fedora_version} < 37
BuildRequires: libusb-devel
%else
BuildRequires: libusb1-devel
%endif
BuildRequires: alsa-lib-devel
BuildRequires: autoconf
BuildRequires: bison
BuildRequires: coreutils
BuildRequires: cups-devel
BuildRequires: dbus-devel
BuildRequires: desktop-file-utils
BuildRequires: flex
BuildRequires: fontconfig-devel
BuildRequires: freetype-devel
BuildRequires: freeglut-devel
BuildRequires: gawk
BuildRequires: xz
BuildRequires: gettext-devel
BuildRequires: gnutls-devel
BuildRequires: krb5-devel libverto-libevent
BuildRequires: libattr-devel
BuildRequires: libieee1284-devel
# BuildRequires: libpng-devel
BuildRequires: librsvg2
BuildRequires: librsvg2-devel
BuildRequires: libstdc++-devel
# BuildRequires: libtiff-devel
BuildRequires: libX11-devel
BuildRequires: libXcomposite-devel
BuildRequires: libXcursor-devel
BuildRequires: libXext-devel
BuildRequires: libXi-devel
BuildRequires: libXinerama-devel
# BuildRequires: libxml2-devel
BuildRequires: libXmu-devel
BuildRequires: libXrandr-devel
BuildRequires: libXrender-devel
# BuildRequires: libxslt-devel
BuildRequires: libXxf86vm-devel
BuildRequires: mesa-libGL-devel
BuildRequires: mesa-libGLU-devel
BuildRequires: ncurses-devel
# BuildRequires: openldap-devel
BuildRequires: sane-backends-devel
BuildRequires: unixODBC-devel
BuildRequires: unzip
BuildRequires: util-linux
# BuildRequires: zlib-devel
BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(wayland-protocols)
BuildRequires: pkgconfig(xkbcommon)
%ifarch x86_64
%package -n %{wine}
%endif
Summary: WINE Is Not An Emulator - runs MS Windows programs
Group: Emulators
%ifarch x86_64
Conflicts: %{name}
%else
Conflicts: %{name}64
%endif
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: %{lib_name} = %{epoch}:%{version}-%{release}
Obsoletes: %{lib_name} <= %{epoch}:%{version}-%{release}
Provides: %{name}-bin = %{epoch}:%{version}-%{release}
%ifarch %{ix86}
%package -n %{name}-common
Summary: WINE Is Not An Emulator - runs MS Windows programs (32-bit common files)
Group: Emulators
Requires: %{name}-bin = %{epoch}:%{version}-%{release}
%endif
%define dlopenreq() %(F=/usr/%{_lib}/lib%{1}.so;[ -e $F ] && (file $F|grep -q ASCII && grep -o 'lib[^ ]*' $F|sed -e "s/\$/%{mark64}/"||objdump -p $F | grep SONAME | awk '{ print $2 "%{mark64}" }') || echo "wine-missing-buildrequires-on-%{1}")
Requires: %dlopenreq asound
Requires: %dlopenreq attr
Requires: %dlopenreq cups
Requires: %dlopenreq dbus-1
Requires: %dlopenreq fontconfig
Requires: %dlopenreq freetype
Requires: %dlopenreq gnutls
# Requires: %dlopenreq gsm
# Requires: %dlopenreq jpeg
Requires: %dlopenreq krb5
Requires: %dlopenreq ncurses
Requires: %dlopenreq odbc
Requires: %dlopenreq OSMesa
# Requires: %dlopenreq png
Requires: %dlopenreq sane
Requires: %dlopenreq SDL2
# Requires: %dlopenreq tiff
Requires: %dlopenreq v4l1
Requires: %dlopenreq vulkan
Requires: %dlopenreq Xcomposite
Requires: %dlopenreq Xcursor
Requires: %dlopenreq Xi
Requires: %dlopenreq Xinerama
Requires: %dlopenreq Xrandr
Requires: %dlopenreq Xrender
# Requires: %dlopenreq xslt
Requires: %dlopenreq Xxf86vm
%if 0%{?fedora_version}
Suggests: sane-frontends
%endif
Requires(post): desktop-file-utils
Requires(postun): desktop-file-utils
%define desc Wine is a program which allows running Microsoft Windows programs \
(including DOS, Windows 3.x and Win32 executables) on Unix. It \
consists of a program loader which loads and executes a Microsoft \
Windows binary, and a library (called Winelib) that implements Windows \
API calls using their Unix or X11 equivalents. The library may also \
be used for porting Win32 code into native Unix executables.
%description
%desc
%ifarch x86_64
%description -n %{wine}
%desc
%else
%description -n %{name}-common
Wine is a program which allows running Microsoft Windows programs
(including DOS, Windows 3.x and Win32 executables) on Unix.
This package contains the files needed to support 32-bit Windows
programs, and is used by both %{name} and %{name}64.
%endif
%package -n %{wine}-devel
Summary: Static libraries and headers for %{name} (64-bit)
Group: Development/C
Requires: %{wine} = %{epoch}:%{version}-%{release}
%ifarch x86_64
Conflicts: %{name}-devel
%else
Conflicts: %{name}64-devel
%endif
Provides: %{lib_name_devel} = %{epoch}:%{version}-%{release}
Obsoletes: %{lib_name_devel} <= %{epoch}:%{version}-%{release}
%description -n %{wine}-devel
Wine is a program which allows running Microsoft Windows programs
(including DOS, Windows 3.x and Win32 executables) on Unix.
This package contains the libraries and header files needed to
develop programs which make use of Wine.
%prep
# unpack tarball SOURCE0
%setup -a 0 -a 999 -n wine-%realver -q -T -b0
for patch in $(cat debian/patches/series); do
patch --no-backup-if-mismatch -Np1 -i debian/patches/$patch
done
# apply wine staging patch set on top of the wine release.
#tar xf %{SOURCE100}
#bash ./wine-staging-%{stagingver}/patches/patchinstall.sh --all
./tools/make_requests
autoreconf -f
%build
%if 0%{?fedora_version} > 34
%define debug_package %{nil}
%endif
%if 0%{?fedora_version} == 36
export LDFLAGS="$(echo "%{build_ldflags}" | sed -e 's/-Wl,-z,relro//' -e 's/-Wl,--build-id=sha1//' -e 's/-Wl,-dT,\/home\/abuild\/rpmbuild\/BUILD\/wine.*//')"
%else
export LDFLAGS="$(echo "%{build_ldflags}" | sed -e 's/-Wl,-z,relro//' -e 's/-Wl,--build-id=sha1//' -e 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-package-notes//')"
%endif
%ifarch x86_64
export CFLAGS="$(echo "%{optflags}" | sed -e 's/-O2//' -e 's/-Wp,-D_FORTIFY_SOURCE=2//' -e 's/-fcf-protection//' -e 's/-fstack-protector-strong//' -e 's/-fstack-clash-protection//') -O2"
%else
export CFLAGS="$(echo "%{optflags}" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//' -e 's/-fcf-protection//' -e 's/-fstack-protector-strong//' -e 's/-fstack-clash-protection//')"
%endif
autoreconf -i -f
%configure \
%if 0%{?fedora_version} || 0%{?scientificlinux_version} >= 700 || 0%{?centos_version} >= 700
--with-gstreamer \
%endif
--disable-tests \
--with-xattr \
%ifarch x86_64
--enable-win64 \
%endif
--with-x \
--with-wayland
make -j4
%install
%makeinstall LDCONFIG=/bin/true
# from openSUSE wine spec
%ifarch %ix86 x86_64
# Use plain strip, which unlike the MinGW variant preserves the wine builtin marker
find %{buildroot}%{_prefix}/lib*/wine/*-windows/ -type f -exec strip --strip-debug {} +
%endif
%files -n %{wine}
%doc ANNOUNCE.md AUTHORS README.md
%ifarch x86_64
%{_bindir}/wine64
%{_bindir}/wine64-preloader
%endif
%{_bindir}/function_grep.pl
%{_bindir}/msidb
%{_bindir}/msiexec
%{_bindir}/notepad
%{_bindir}/regedit
%{_bindir}/regsvr32
%{_bindir}/widl
%{_bindir}/wineboot
%{_bindir}/winebuild
%{_bindir}/winecfg
%{_bindir}/wineconsole*
%{_bindir}/winecpp
%{_bindir}/winedbg
%{_bindir}/winedump
%{_bindir}/winefile
%{_bindir}/wineg++
%{_bindir}/winegcc
%{_bindir}/winemaker
%{_bindir}/winemine
%{_bindir}/winepath
%{_bindir}/wineserver
%{_bindir}/wmc
%{_bindir}/wrc
%lang(de) %{_mandir}/de.UTF-8/man?/winemaker.?*
%lang(de) %{_mandir}/de.UTF-8/man?/wineserver.?*
%lang(fr) %{_mandir}/fr.UTF-8/man?/winemaker.?*
%lang(fr) %{_mandir}/fr.UTF-8/man?/wineserver.?*
%{_mandir}/man?/widl.1*
%{_mandir}/man?/winebuild.1*
%{_mandir}/man?/winecpp.1*
%{_mandir}/man?/winedbg.1*
%{_mandir}/man?/winedump.1*
%{_mandir}/man?/wineg++.1*
%{_mandir}/man?/winegcc.1*
%{_mandir}/man?/winemaker.1*
%{_mandir}/man?/wmc.1*
%{_mandir}/man?/wrc.1*
%{_mandir}/man?/msiexec.?*
%{_mandir}/man?/notepad.?*
%{_mandir}/man?/regedit.?*
%{_mandir}/man?/regsvr32.?*
%{_mandir}/man?/wineboot.?*
%{_mandir}/man?/winecfg.?*
%{_mandir}/man?/wineconsole.?*
%{_mandir}/man?/winefile.?*
%{_mandir}/man?/winemine.?*
%{_mandir}/man?/winepath.?*
%{_mandir}/man?/wineserver.?*
%dir %{_datadir}/wine
%{_datadir}/wine/wine.inf
%{_datadir}/wine/nls/*.nls
%{_datadir}/applications/*.desktop
%dir %{_datadir}/wine/fonts
%{_datadir}/wine/fonts/*
# %{_datadir}/wine/color/*
%ifarch %{ix86}
%files -n %{name}-common
%{_bindir}/wine
%{_bindir}/wine-preloader
%{_mandir}/man?/wine.?*
%lang(de) %{_mandir}/de.UTF-8/man?/wine.?*
%lang(fr) %{_mandir}/fr.UTF-8/man?/wine.?*
%lang(pl) %{_mandir}/pl.UTF-8/man?/wine.?*
%endif
%ifarch %{ix86}
%{_libdir}/wine/i386-unix/*.*
%{_libdir}/wine/i386-windows/*.*
%endif
%ifarch x86_64
%{_libdir}/wine/x86_64-unix/*.*
%{_libdir}/wine/x86_64-windows/*.*
%endif
%files -n %{wine}-devel
%{_includedir}/*