Update to 4.6

This commit is contained in:
survolog (Andrey Grigorev) 2019-04-15 21:04:21 +03:00
parent 91306ee478
commit 917af2acb1
5 changed files with 170 additions and 101 deletions

View file

@ -1,8 +1,8 @@
sources:
wine-4.4.tar.xz: c08501490e7f819aa4704ad8c3f820997fe64391
wine-4.4.tar.xz.sign: 211919177cd80576b7dbfdbb0a7e9a1f66c3f9d2
wine-staging-4.4.tar.gz: b95d1bb8a66299428549bfc1aa38a6fe354752af
wine-nine-standalone-0.3.tar.gz: bf2225f974b3430e779683fafa33239b889ce2c3
wine-4.6.tar.xz: f14ac09fa86feebabfd9f0f3ac021f2c5447314a
wine-4.6.tar.xz.sign: 0291f4fd175597d6164f7cdff7c61fda9184ebe4
wine-staging-4.6.tar.gz: 17092d5ce78916928cb4bd7f3ddface8f6fc6664
wine-nine-standalone-0.4.tar.gz: 68f0dac73205650f839189c676183e5c4dff7cf5
winetricks-20190310.tar.gz: e48303a7c3153dc679228595ae400a8954445fa4
icons-4.0.tar.xz: 3063b6fcf8d9aeedcb9ecaab9c522bed88a21c0a
rosa-wine-desktop-4.4.1.tar.xz: 299d6a589af1e4db705f0e09190a8b388bb74b95

View file

@ -0,0 +1,5 @@
It is Wine with Staging patches for running Win32 applications.
=== Russian ===
Это Wine с патчами Staging для запуска Win32 приложений.

View file

@ -0,0 +1,11 @@
This is Wine with Staging patches for running Win64 applications.
This version can only be used to run 64-bit Windows applications as is.
For running 32-bit Windows applications, you need to also install
the 'wine32' package from the 32-bit repository.
=== Russian ===
Это Wine с патчами Staging для запуска Win64 приложений.
Эта версия может запускать только 64-bit Windows приложения.
Для запуска 32-bit Windows приложений Вам требуется
установить также и пакет 'wine32' из 32-bit репозитория.

View file

@ -1,6 +1,6 @@
diff -ur wine-staging-4.4/patches/gitapply.sh wine-staging-4.4_patched/patches/gitapply.sh
--- wine-staging-4.4/patches/gitapply.sh 2019-03-17 09:12:16.000000000 +0300
+++ wine-staging-4.4_patched/patches/gitapply.sh 2019-03-24 18:21:37.417987367 +0300
diff -ur wine-staging-4.5/patches/gitapply.sh wine-staging-4.5_patched/patches/gitapply.sh
--- wine-staging-4.5/patches/gitapply.sh 2019-03-30 08:02:54.000000000 +0300
+++ wine-staging-4.5_patched/patches/gitapply.sh 2019-03-31 14:34:17.458722634 +0300
@@ -309,6 +309,7 @@
patch_binary_size=""
@ -19,12 +19,10 @@ diff -ur wine-staging-4.4/patches/gitapply.sh wine-staging-4.4_patched/patches/g
# Remove first path components, which are always a/ and b/ for git patches
if [[ "$patch_oldname" =~ ^a/(.*)$ ]]; then
@@ -425,7 +427,8 @@
@@ -426,6 +428,7 @@
patch_binary_complete=0
patch_binary_destsize=0
-
+
+ hexdump -v -e '32/1 "%02X" "\n"' "$delta_tmpfile" | gawk "$awk_decode_binarypatch" > patch_export.txt
while read cmd arg1 arg2; do
if [ "$cmd" == "S" ]; then

235
wine.spec
View file

@ -5,22 +5,27 @@
# Switch between systemd-binfmt and sysvinit support
%define with_systemd 1
%define winetricks_ver 20190310
%define winenine_ver 0.3
%define winetricks_ver 20190310
%define winenine_ver 0.4
Summary: WINE Is Not An Emulator - runs MS Windows programs
Name: wine
Version: 4.4
Release: 3
Version: 4.6
Release: 1
Epoch: 2
License: LGPLv2+
Group: Emulators
Url: http://www.winehq.com/
Source0: http://mirrors.ibiblio.org/wine/source/%(echo %{version} |cut -d. -f1-2)/%{name}-%{version}.tar.xz
Source1: http://mirrors.ibiblio.org/wine/source/%(echo %{version} |cut -d. -f1-2)/%{name}-%{version}.tar.xz.sign
# Old RH stuff for %%{mdvver} <= 201410
Source2: wine.init
# New solution for %%{mdvver} >= 201610
# See: https://wiki.archlinux.org/index.php/wine (Using Wine as an interpreter for Win16/Win32 binaries)
Source3: wine.systemd
# New wine-staging from github by tag
Source4: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz?/wine-staging-%{version}.tar.gz
# Wine Gallium Nine on https://github.com/iXit/wine-nine-standalone/ now
Source5: https://github.com/iXit/wine-nine-standalone/archive/v%{winenine_ver}.tar.gz?/wine-nine-standalone-%{winenine_ver}.tar.gz
Source6: https://github.com/Winetricks/winetricks/archive/%{winetricks_ver}.tar.gz?/winetricks-%{winetricks_ver}.tar.gz
Source7: http://kegel.com/wine/wisotool
@ -30,7 +35,17 @@ Source10: wine.rpmlintrc
Source11: rosa-wine-desktop-4.4.1.tar.xz
Source12: icons-4.0.tar.xz
Source20: README.urpmi
Source21: README.install.urpmi.x86_64.staging
Source22: README.install.urpmi.i586.staging
# (Anssi 05/2008) Adds:
# a: => /media/floppy (/mnt/floppy on 2007.1 and older)
# d: => $HOME (at config_dir creation time, not refreshed if $HOME changes;
# note that Wine also provides $HOME in My Documents)
# com4 => /dev/ttyUSB0 (replaces /dev/ttyS3)
# We have to substitute @MDKVERSION@ in dlls/ntdll/server.c
Patch0: wine-3.16-mdkconf.patch
# Russian localization
Patch1: wine-3.6-staging-ru-localization.patch
# Working workaround for Steam troubles
# Also fixed by passing -no-cef-sandbox to the cmd line
@ -38,8 +53,9 @@ Patch2: crossover_hack.patch
# Configure searches for %%{_includedir}/OpenAL/al.h and %%{_includedir}/OpenCL/opencl.h,
# while we have them in %%{_includedir}/AL/ and %%{_includedir}/CL/
Patch3: wine-4.0-fix-openal-opencl-headers-detection.patch
Patch4: wine-staging-4.4-mock-urpm-broken-pipe.patch
Patch4: wine-staging-4.5-mock-urpm-broken-pipe.patch
Patch5: wine-nine-standalone-0.3-ru-localization.patch
BuildRequires: bison
BuildRequires: chrpath
BuildRequires: desktop-file-utils
@ -48,22 +64,30 @@ BuildRequires: docbook-utils
BuildRequires: flex
BuildRequires: fontforge
BuildRequires: imagemagick
# This is needed to build nine-standalone
BuildRequires: meson
BuildRequires: prelink
BuildRequires: sgml-tools
BuildRequires: valgrind
BuildRequires: cups-devel
#Future BuildRequires: faudio-devel
BuildRequires: gettext-devel
BuildRequires: glibc-static-devel
BuildRequires: gpm-devel
BuildRequires: gsm-devel
#Contrib BuildRequires: hal-devel
BuildRequires: isdn4k-utils-devel
BuildRequires: meson
BuildRequires: openldap-devel
BuildRequires: pcap-devel
BuildRequires: perl-devel
BuildRequires: ungif-devel
BuildRequires: unixODBC-devel
# For wine-nine standalone
%ifarch x86_64
BuildRequires: wine64-devel
%else
BuildRequires: wine-devel
%endif
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(d3d)
BuildRequires: pkgconfig(dbus-1)
@ -74,6 +98,7 @@ BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(gnutls)
BuildRequires: pkgconfig(gstreamer-1.0)
BuildRequires: pkgconfig(gstreamer-base-1.0)
BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(jack)
@ -90,6 +115,7 @@ BuildRequires: pkgconfig(libva)
BuildRequires: pkgconfig(libvkd3d)
BuildRequires: pkgconfig(libxslt)
BuildRequires: pkgconfig(ncursesw)
BuildRequires: pkgconfig(netapi)
BuildRequires: pkgconfig(openal)
BuildRequires: pkgconfig(OpenCL)
BuildRequires: pkgconfig(osmesa)
@ -108,15 +134,6 @@ BuildRequires: pkgconfig(xinerama)
BuildRequires: pkgconfig(xpm)
BuildRequires: pkgconfig(xrandr)
BuildRequires: pkgconfig(xrender)
# wine-nine
%ifarch x86_64
BuildRequires: wine64-devel
%else
BuildRequires: wine-devel
%endif
ExclusiveArch: %{ix86}
ExclusiveArch: x86_64
%ifarch %{ix86}
Requires: wine32 = %{EVRD}
@ -145,12 +162,18 @@ Conflicts: wine < %{EVRD}
%endif
%description
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.
Wine is a program which allows running Microsoft Windows programs (including
DOS, Windows 3.x, Win32 and Win64 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.
#####################################################################
##
## Start of 32bit packages descriptions
##
#####################################################################
%ifarch %{ix86}
%files
@ -201,8 +224,11 @@ be used for porting Win32 code into native Unix executables.
#----------------------------------------------------------------------------
%package -n wine32
Summary: 32-bit support for wine and wine64 packages
Summary: 32-bit support for Wine and Wine64 packages
Group: Emulators
# This is not an EVR-specific requirement, as otherwise on x86_64 urpmi could
# resolve the dependency to wine64 even on upgrades, and therefore replace
# wine+wine32 installation with a wine32+wine64 installation. - Anssi
Requires: wine-bin
# wine dlopen's these, so let's add the dependencies ourself
Requires: alsa-plugins-pulseaudio
@ -220,20 +246,21 @@ Suggests: libncurses5
Suggests: libncurses6
Suggests: libncursesw5
Suggests: libncursesw6
# This one is in Restricted repository so only suggest it
Suggests: libtxc-dxtn
# This one is now integrated in Mesa
Suggests: libtxc_dxtn.so
Suggests: libvulkan1
# Download wine-gecko from internet, when start wine
# (Anssi) If wine-gecko is not installed, wine pops up a dialog on first
# start proposing to download wine-gecko from sourceforge, while recommending
# to use distribution packages instead. Therefore suggest wine-gecko here:
#Suggests: wine-gecko
%description -n wine32
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.
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.
%files -n wine32
%doc AUTHORS README.install.urpmi
%{_bindir}/wine
%{_bindir}/wine-preloader
%dir %{_libdir}/%{name}
@ -258,22 +285,20 @@ programs.
#----------------------------------------------------------------------------
%package -n wine-devel
Summary: Static libraries and headers for %{name}
Summary: Static libraries, headers and programs for %{name}
Group: Development/C
Requires: wine = %{EVRD}
%rename %{devname}
Conflicts: wine64-devel
%description -n wine-devel
Wine is a program which allows running Microsoft Windows programs
(including DOS, Windows 3.x and Win32 executables) on Unix.
wine-devel contains the libraries and header files needed to
develop programs which make use of wine.
Wine is often updated.
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, the headers and the program files needed
to develop programs running on Wine.
%files -n wine-devel
%doc AUTHORS README.install.urpmi
%{_bindir}/widl
%{_bindir}/winebuild
%{_bindir}/winecpp
@ -299,8 +324,19 @@ Wine is often updated.
%{_mandir}/man1/wrc.1*
%endif
#####################################################################
##
## End of 32bit packages descriptions
##
#####################################################################
#----------------------------------------------------------------------------
#----------------------------------------------------------------------------
#####################################################################
##
## Start of 64bit packages descriptions
##
#####################################################################
%ifarch x86_64
%package -n wine64
@ -346,15 +382,14 @@ Conflicts: wine
Conflicts: wine64 < %{EVRD}
%description -n wine64
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.
This package contains the Win64 version of Wine. You need the wine32
package from the 32-bit repository to be able to run 32-bit applications.
Wine is a program which allows running Microsoft Windows programs (including
DOS, Windows 3.x, Win32 and Win64 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.
This package contains the Win64 version of Wine. You need the wine32 package
from the 32-bit repository to be able to run 32-bit applications.
%files -n wine64
%doc ANNOUNCE AUTHORS README README.install.urpmi README.urpmi
@ -418,22 +453,20 @@ package from the 32-bit repository to be able to run 32-bit applications.
#----------------------------------------------------------------------------
%package -n wine64-devel
Summary: Static libraries and headers for %{name}
Summary: Static libraries, headers and programs for %{name}
Group: Development/C
Requires: wine64 = %{EVRD}
%rename %{devname}
Conflicts: wine-devel
%description -n wine64-devel
Wine is a program which allows running Microsoft Windows programs
(including DOS, Windows 3.x and Win32 executables) on Unix.
wine64-devel contains the libraries and header files needed to
develop programs which make use of wine.
Wine is often updated.
Wine is a program which allows running Microsoft Windows programs (including
DOS, Windows 3.x, Win32 and Win64 executables) on Unix.
This package contains the libraries, the headers and the program files needed
to develop programs running on Wine.
%files -n wine64-devel
%doc AUTHORS README.install.urpmi
%{_bindir}/widl
%{_bindir}/winebuild
%{_bindir}/winecpp
@ -459,10 +492,15 @@ Wine is often updated.
%{_mandir}/man1/wrc.1*
%endif
#----------------------------------------------------------------------------
#####################################################################
##
## End of 64bit packages descriptions
##
#####################################################################
#----------------------------------------------------------------------------
%ifarch x86_64
%ifarch x86_64
%define wine wine64
%else
%define wine wine
@ -471,20 +509,21 @@ Wine is often updated.
%package -n %{wine}-binfmt
Summary: Support for launching Windows executables directly
Group: Emulators
# Avoid dependency loop
Requires: %{wine} = %{EVRD}
Requires(post): rpm-helper
Requires(post): %{wine} = %{EVRD}
%if %{with_systemd}
Requires(pre,post,preun,postun): systemd
%endif
Conflicts: %{wine} < 2:2.21-2
%description -n %{wine}-binfmt
Wine is a program which allows running Microsoft Windows programs
(including DOS, Windows 3.x and Win32 executables) on Unix.
(including DOS, Windows 3.x, Win32 and Win64 executables) on Unix.
This package provides support for launching Windows executables directly.
%files -n %{wine}-binfmt
%doc README
%if %{with_systemd}
%{_binfmtdir}/%{name}.conf
%else
@ -499,7 +538,6 @@ systemctl stop systemd-binfmt.service
%binfmt_apply %{name}.conf
%postun -n %{wine}-binfmt
%_postun_unit systemd-binfmt.service
%else
# Old sysvinit
%post -n %{wine}-binfmt
@ -516,69 +554,93 @@ systemctl stop systemd-binfmt.service
%patch1 -p1 -b .staging-localization
%patch2 -p1 -b .crossover_hack
%patch3 -p1 -b .fix-headers
pushd ../wine-nine-standalone-%{winenine_ver}
%patch5 -p1 -b .wine-nine-localization
popd
# Wine-staging
gzip -dc "%{SOURCE4}" | /bin/tar -xf - --strip-components=1
%patch4 -p1 -b .for-mock-urpm-build
./patches/patchinstall.sh DESTDIR="%{_builddir}/wine-%{version}" --all
pushd ../wine-nine-standalone-%{winenine_ver}
%patch5 -p1 -b .wine-nine-localization
popd
sed -i 's,@MDKVERSION@,%{mdvver},' dlls/ntdll/server.c
%build
%ifarch %{ix86}
# fix "debugger detected"
# (Anssi 04/2008) bug #39604
# Some protection systems complain "debugger detected" with our
# -fomit-frame-pointer flag, so disable it.
export CFLAGS="%{optflags} -fno-omit-frame-pointer"
%endif
# icoutils in contrib
# (Anssi 04/2008)
# If icotool is present, it is used to rebuild icon files. It is in Contrib
# so we do not do that; this is here to ensure that installed icoutils does
# not change build behaviour.
export ICOTOOL=false
# 1. Build wine
autoreconf -vfi
# HAL is obsolete, then don't ask for it
# our OSS is too old (< 4), also don't ask for it
# some sound cards need in without-pulse
%configure2_5x \
%ifarch x86_64
--enable-win64 \
%endif
--without-pulse
--without-pulse \
--without-hal \
--with-xattr \
--with-gstreamer \
--without-oss
%make depend
%make
# wine-nine-standalone
# 2. Next, build wine-nine-standalone
pushd ../wine-nine-standalone-%{winenine_ver}
export PKG_CONFIG_PATH=%{_libdir}/pkgconfig
mkdir -p ./tmp
sed -i "s/@PKG_CONFIG@/i586-unknown-linux-gnu-pkg-config/g" ./tools/cross-wine32.in
sed -i "s/@PKG_CONFIG@/x86_64-unknown-linux-gnu-pkg-config/g" ./tools/cross-wine64.in
cp ./tools/cross-wine32.in ./tools/cross-wine32
cp ./tools/cross-wine32.in ./tools/cross-wine32
cp ./tools/cross-wine64.in ./tools/cross-wine64
meson \
%ifarch x86_64
--cross-file "./tools/cross-wine64" \
--cross-file "./tools/cross-wine64" \
%else
--cross-file "./tools/cross-wine32" \
--cross-file "./tools/cross-wine32" \
%endif
--buildtype "release" \
--bindir bin \
--libdir lib \
$MESONARGS \
"./tmp/build"
--buildtype "release" \
--bindir bin \
--libdir lib \
$MESONARGS \
"./tmp/build"
ninja -C "./tmp/build"
find -L .
popd
%install
%makeinstall_std LDCONFIG=/bin/true
# Install wisotool
install -m 0755 %{SOURCE7} %{buildroot}%{_bindir}/
# Add winetricks
# Install winetricks
install -m 0755 winetricks-%{winetricks_ver}/src/winetricks %{buildroot}%{_bindir}/
# Note: binfmt is insecure (see https://nixtux.ru/450),
# so we will put it in a separate package
# Allow users to launch Windows programs by just clicking on the .exe file...
%if %{with_systemd}
install -m 0644 %{SOURCE3} -D %{buildroot}%{_binfmtdir}/%{name}.conf
# ... using systemd (>= 230)
install -m 644 %{SOURCE3} -D %{buildroot}%{_binfmtdir}/%{name}.conf
%else
install -m 0755 %{SOURCE2} -D %{buildroot}%{_initrddir}/%{name}
# ... using the old sysvinit way
install -m755 %{SOURCE2} -D %{buildroot}%{_initrddir}/%{name}
%endif
mkdir -p %{buildroot}%{_sysconfdir}/xdg/menus/applications-merged
@ -598,7 +660,7 @@ desktop-file-install --vendor="" \
--dir %{buildroot}%{_datadir}/applications %{buildroot}%{_datadir}/applications/wine.desktop
%ifarch x86_64
# fix the binary name
# fix the binary name in the .desktop file
sed -i 's,Exec=wine ,Exec=wine64 ,' %{buildroot}%{_datadir}/applications/wine.desktop
%endif
@ -609,7 +671,7 @@ chrpath -d %{buildroot}%{_bindir}/{wine64,wineserver,wmc,wrc} %{buildroot}%{_lib
chrpath -d %{buildroot}%{_bindir}/{wine,wineserver,wmc,wrc} %{buildroot}%{_libdir}/%{name}/*.so
%endif
# wine-nine-standalone
# Install wine-nine-standalone stuff
pushd ../wine-nine-standalone-%{winenine_ver}
install -m 755 ./tmp/build/ninewinecfg/ninewinecfg.exe.so %{buildroot}/%{_libdir}/wine/ninewinecfg.exe.so
install -m 755 ./tmp/build/ninewinecfg/ninewinecfg.exe.fake %{buildroot}/%{_libdir}/wine/fakedlls/ninewinecfg.exe
@ -620,15 +682,8 @@ popd
# Some advices to user
cp %{SOURCE20} .
%ifarch x86_64
cat > README.install.urpmi <<EOF
This is the Win64 version of Wine with Staging but not limited to it.
This version can only be used to run 64-bit Windows applications as is.
For running 32-bit Windows applications, you need to also
install the 'wine32' package from the 32-bit repository.
EOF
cp %{SOURCE21} README.install.urpmi
%else
cat > README.install.urpmi <<EOF
This is the Win32 version of Wine with Staging but not limited to it.
EOF
cp %{SOURCE22} README.install.urpmi
%endif