mirror of
https://github.com/terrapkg/packages.git
synced 2026-05-31 17:11:56 +00:00
423 lines
12 KiB
RPMSpec
423 lines
12 KiB
RPMSpec
# Terra WINE Development branch
|
|
# Based on WineHQ's WINE builds with changes for our repos and update system
|
|
|
|
|
|
%define _lto_cflags %{nil}
|
|
%global flavor %nil
|
|
%global compat_package terra-wine-dev
|
|
# Cannot use the _datadir macro here or it will cause mass macro recursion
|
|
%global _prefix /usr/share/wine-dev
|
|
%global srcmajor 11.x
|
|
# Make this as a variable instead in case of WINE RCs
|
|
%global ver wine-11.9
|
|
%global cleanver %(echo %{ver} | sed 's/v//g;s/wine-//g')
|
|
|
|
# This is unfortunate but a lot of Fedora's/SUSE's hardening flags break WINE
|
|
%undefine _hardened_build
|
|
|
|
# Upstream WineHQ names this -devel, I have renamed it dev to signify it is the dev branch
|
|
# Also less confusing because it has a devel package
|
|
Name: wine-dev
|
|
Version: %(echo %{cleanver} | sed 's/-/~/g')
|
|
Release: 1%{?dist}
|
|
Epoch: 1
|
|
Summary: WINE Is Not An Emulator - runs MS Windows programs
|
|
License: LGPL-2.0-or-later
|
|
Group: Emulators
|
|
URL: https://www.winehq.org
|
|
|
|
%define lib_major 1
|
|
%define lib_name lib%{name}1
|
|
%define lib_name_devel lib%{name}-devel
|
|
|
|
%if 0%{?fedora} < 40
|
|
%ifarch x86_64
|
|
%define wine %{name}64
|
|
%define mark64 ()(64bit)
|
|
%else
|
|
%define wine %{name}
|
|
%define mark64 %{nil}
|
|
%endif
|
|
%endif
|
|
|
|
%if 0%{?fedora} >= 40
|
|
%define wine %{name}
|
|
%ifarch x86_64
|
|
%define mark64 ()(64bit)
|
|
%else
|
|
%define mark64 %{nil}
|
|
%endif
|
|
%endif
|
|
|
|
Source0: https://dl.winehq.org/wine/source/%{srcmajor}/wine-%{cleanver}.tar.xz
|
|
Source1: https://dl.winehq.org/wine/source/%{srcmajor}/wine-%{cleanver}.tar.xz.sign
|
|
|
|
# Alexandres key
|
|
Source99: wine.keyring
|
|
|
|
BuildRequires: alsa-lib-devel
|
|
BuildRequires: audiofile-devel
|
|
BuildRequires: autoconf
|
|
BuildRequires: bison
|
|
BuildRequires: coreutils
|
|
BuildRequires: cups-devel
|
|
BuildRequires: dbus-devel
|
|
BuildRequires: desktop-file-utils
|
|
BuildRequires: flex
|
|
BuildRequires: fontconfig-devel
|
|
BuildRequires: fontforge
|
|
BuildRequires: fontpackages-devel
|
|
BuildRequires: freeglut-devel
|
|
BuildRequires: freetype-devel
|
|
BuildRequires: gawk
|
|
BuildRequires: gcc
|
|
BuildRequires: gettext-devel
|
|
BuildRequires: giflib-devel
|
|
BuildRequires: gnupg2
|
|
BuildRequires: gnutls-devel
|
|
BuildRequires: gstreamer1-devel
|
|
BuildRequires: gstreamer1-plugins-base-devel
|
|
BuildRequires: icoutils
|
|
BuildRequires: ImageMagick-devel
|
|
BuildRequires: krb5-devel
|
|
BuildRequires: lcms2-devel
|
|
BuildRequires: libattr-devel
|
|
BuildRequires: libavcodec-free-devel
|
|
BuildRequires: libavformat-free-devel
|
|
BuildRequires: libavutil-free-devel
|
|
BuildRequires: libgphoto2-devel
|
|
BuildRequires: libieee1284-devel
|
|
BuildRequires: libnetapi-devel
|
|
BuildRequires: libpcap-devel
|
|
BuildRequires: librsvg2
|
|
BuildRequires: librsvg2-devel
|
|
BuildRequires: libstdc++-devel
|
|
BuildRequires: libudev-devel
|
|
BuildRequires: libusb1-devel
|
|
BuildRequires: libv4l-devel
|
|
BuildRequires: libX11-devel
|
|
BuildRequires: libXcomposite-devel
|
|
BuildRequires: libXcursor-devel
|
|
BuildRequires: libXext-devel
|
|
BuildRequires: libXi-devel
|
|
BuildRequires: libXinerama-devel
|
|
BuildRequires: libxkbcommon-devel
|
|
BuildRequires: libXmu-devel
|
|
BuildRequires: libXrandr-devel
|
|
BuildRequires: libXrender-devel
|
|
BuildRequires: libXxf86dga-devel
|
|
BuildRequires: libXxf86vm-devel
|
|
BuildRequires: lzma
|
|
BuildRequires: mesa-compat-libOSMesa-devel
|
|
BuildRequires: mesa-libGL-devel
|
|
BuildRequires: mesa-libGLU-devel
|
|
BuildRequires: mingw32-gcc
|
|
BuildRequires: mingw64-gcc
|
|
BuildRequires: ncurses-devel
|
|
BuildRequires: ocl-icd-devel
|
|
BuildRequires: opencl-headers
|
|
BuildRequires: pcsc-lite-devel
|
|
BuildRequires: pulseaudio-libs-devel
|
|
BuildRequires: samba-devel
|
|
BuildRequires: sane-backends-devel
|
|
BuildRequires: SDL2-devel
|
|
BuildRequires: unixODBC-devel
|
|
BuildRequires: unzip
|
|
BuildRequires: util-linux
|
|
BuildRequires: vulkan-devel
|
|
BuildRequires: xz
|
|
|
|
%if 0%{?fedora} < 40
|
|
%ifarch x86_64
|
|
%package -n %{wine}
|
|
%endif
|
|
%endif
|
|
|
|
Summary: WINE Is Not An Emulator - runs MS Windows programs
|
|
Group: Emulators
|
|
%ifarch x86_64
|
|
Conflicts: %{name}
|
|
%else
|
|
Conflicts: %{name}64
|
|
%endif
|
|
%if 0%{?fedora} < 40
|
|
Requires: %{name}-common = %{epoch}:%{version}-%{release}
|
|
%endif
|
|
Requires: %{compat_package} = %{epoch}:%{version}-%{release}
|
|
Provides: %{lib_name} = %{epoch}:%{version}-%{release}
|
|
Provides: %{name}-bin = %{epoch}:%{version}-%{release}
|
|
Obsoletes: %{lib_name} <= %{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}
|
|
|
|
%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
|
|
|
|
%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 krb5
|
|
Requires: %dlopenreq ncurses
|
|
Requires: %dlopenreq odbc
|
|
Requires: %dlopenreq OSMesa
|
|
Requires: %dlopenreq sane
|
|
Requires: %dlopenreq SDL2
|
|
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 Xxf86vm
|
|
%if 0%{?fedora}
|
|
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
|
|
%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.
|
|
|
|
%package -n %compat_package
|
|
Summary: WINE Is Not An Emulator - runs MS Windows programs
|
|
Group: Emulators
|
|
Requires: %{wine} = %{epoch}:%{version}-%{release}
|
|
%if 0%{?fedora} < 40
|
|
Conflicts: wine wine64 wine-core wine-common wine-desktop wine-devel
|
|
%else
|
|
Conflicts: wine wine64 wine-core wine-common wine-desktop
|
|
%endif
|
|
|
|
%description -n %compat_package
|
|
Wine is a program which allows running Microsoft Windows programs
|
|
(including DOS, Windows 3.x and Win32 executables) on Unix.
|
|
|
|
This compatibility package allows to use %{wine} system-wide as
|
|
the default Wine version.
|
|
|
|
%prep
|
|
# Pull key from key server, if this fails import local copy and then refresh it to make sure it is up to date
|
|
gpg --keyserver hkp://keys.gnupg.net --recv-keys CEFAC8EAAF17519D || { gpg --with-fingerprint --import %{SOURCE99} && gpg --refresh-keys; }
|
|
gpg --update-trustdb
|
|
gpg --verify --with-fingerprint %{SOURCE1} %{SOURCE0}
|
|
%setup -n wine-%{version} -q -T -b0
|
|
|
|
%build
|
|
# MinGW GCC does not support these options
|
|
%define debug_package %{nil}
|
|
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//')"
|
|
%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
|
|
%configure \
|
|
--with-gstreamer \
|
|
--disable-tests \
|
|
%if 0%{?fedora} >= 40
|
|
--enable-archs=i386,x86_64 \
|
|
%else
|
|
%ifarch x86_64
|
|
--enable-win64 \
|
|
%endif
|
|
%endif
|
|
--with-x
|
|
make -j4
|
|
|
|
%install
|
|
%makeinstall LDCONFIG=/bin/true
|
|
|
|
# Compat symlinks for bindir
|
|
mkdir -p "%{buildroot}/usr/bin"
|
|
for _file in $(ls "%{buildroot}%{_bindir}"); do \
|
|
ln -s "%{_bindir}/$_file" "%{buildroot}/usr/bin/$_file"; \
|
|
done
|
|
%if 0%{?fedora} < 40
|
|
%ifarch x86_64
|
|
for _file in wine wine-preloader; do \
|
|
ln -s "%{_prefix}/bin/$_file" "%{buildroot}/usr/bin/$_file"; \
|
|
done
|
|
%endif
|
|
%endif
|
|
|
|
# Compat symlinks for desktop file
|
|
mkdir -p "%{buildroot}/usr/share/applications"
|
|
for _file in $(ls "%{buildroot}%{_datadir}/applications"); do \
|
|
ln -s "%{_datadir}/applications/$_file" "%{buildroot}/usr/share/applications/$_file"; \
|
|
done
|
|
|
|
# Compat manpages
|
|
%if 0%{?fedora} || 0%{?scientificlinux} || 0%{?centos} >= 700 || 0%{?rhel} >= 700
|
|
for _dir in man1 de.UTF-8/man1 fr.UTF-8/man1 pl.UTF-8/man1; do \
|
|
if [ -d "%{buildroot}%{_mandir}/$_dir" ]; then \
|
|
mkdir -p "$(dirname "%{buildroot}/usr/share/man/$_dir")"; \
|
|
cp -pr "%{buildroot}%{_mandir}/$_dir" "%{buildroot}/usr/share/man/$_dir"; \
|
|
else \
|
|
mkdir -p "%{buildroot}/usr/share/man/$_dir"; \
|
|
fi; \
|
|
done
|
|
%else
|
|
for _dir in man1 de.UTF-8/man1 fr.UTF-8/man1 pl.UTF-8/man1; do \
|
|
mkdir -p "%{buildroot}/usr/share/man/$_dir"; \
|
|
done
|
|
%endif
|
|
|
|
%ifarch x86_64
|
|
#install -p -m 0644 loader/wine.man "%{buildroot}/usr/share/man/man1/wine.1"
|
|
#install -p -m 0644 loader/wine.de.UTF-8.man "%{buildroot}/usr/share/man/de.UTF-8/man1/wine.1"
|
|
#install -p -m 0644 loader/wine.fr.UTF-8.man "%{buildroot}/usr/share/man/fr.UTF-8/man1/wine.1"
|
|
#install -p -m 0644 loader/wine.pl.UTF-8.man "%{buildroot}/usr/share/man/pl.UTF-8/man1/wine.1"
|
|
%endif
|
|
|
|
%files -n %{wine}
|
|
%doc ANNOUNCE.md AUTHORS README.md
|
|
%license LICENSE
|
|
|
|
%if 0%{?fedora} < 40
|
|
%ifarch x86_64
|
|
%{_bindir}/wine64
|
|
%{_bindir}/wine64-preloader
|
|
%endif
|
|
%endif
|
|
%{_bindir}/function_grep.pl
|
|
%{_bindir}/msiexec
|
|
%{_bindir}/msidb
|
|
%{_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/*
|
|
|
|
%if 0%{?fedora} < 40
|
|
%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
|
|
%else
|
|
%{_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
|
|
|
|
%if 0%{?fedora} < 40
|
|
%ifarch %ix86 x86_64
|
|
%{_libdir}/wine/%{_arch}-unix/*.*
|
|
%{_libdir}/wine/%{_arch}-windows/*.*
|
|
%endif
|
|
%else
|
|
%{_libdir}/wine/%{_arch}-unix/*
|
|
%{_libdir}/wine/i386-windows/*.*
|
|
%{_libdir}/wine/x86_64-windows/*.*
|
|
%endif
|
|
|
|
%files -n %{wine}-devel
|
|
%{_includedir}/*
|
|
|
|
%files -n %compat_package
|
|
/usr/bin/*
|
|
/usr/share/applications/*.desktop
|
|
/usr/share/man/man?/*
|
|
%lang(de) /usr/share/man/de.UTF-8/man?/*
|
|
%lang(fr) /usr/share/man/fr.UTF-8/man?/*
|
|
%lang(pl) /usr/share/man/pl.UTF-8/man?/*
|