From 5f2192f6cb0dd7089807dcc12bb9c2aa46755855 Mon Sep 17 00:00:00 2001 From: Helmut Pozimski Date: Sun, 25 Jan 2026 09:22:34 +0100 Subject: [PATCH] wine: update to 11.1. enable new wow64 architecture on x84_64 glibc by default. --- srcpkgs/wine/INSTALL.msg | 6 +++++ srcpkgs/wine/files/wine | 51 ----------------------------------- srcpkgs/wine/files/wineserver | 18 ------------- srcpkgs/wine/template | 32 ++++++++-------------- 4 files changed, 17 insertions(+), 90 deletions(-) create mode 100644 srcpkgs/wine/INSTALL.msg delete mode 100644 srcpkgs/wine/files/wine delete mode 100644 srcpkgs/wine/files/wineserver diff --git a/srcpkgs/wine/INSTALL.msg b/srcpkgs/wine/INSTALL.msg new file mode 100644 index 00000000000..03e0d65424b --- /dev/null +++ b/srcpkgs/wine/INSTALL.msg @@ -0,0 +1,6 @@ +With the update to 11.1 the glibc x86_64 wine build has been converted to the +new wow64 mode. This means that 32 bit applications can now be executed without +requiring a 32 bit wine build oder separate 32 bit libraries. + +Please also notice the announcement in the wine 11.0 release notes: +https://gitlab.winehq.org/wine/wine/-/releases/wine-11.0#wow64 diff --git a/srcpkgs/wine/files/wine b/srcpkgs/wine/files/wine deleted file mode 100644 index 05fe33cc9e5..00000000000 --- a/srcpkgs/wine/files/wine +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh -e -# Based on the Debian wrapper script written by Jens Reyer and Michael Gilbert -# SPDX-License-Identifier: LGPL-2.1-or-later - -wine32=/usr/bin/wine32 -wine64=/usr/bin/wine64 - -wine32_hint () { - if [ "$(xbps-uhelper arch)" = "x86_64-musl" ]; then - echo "wine under musl supports both 64bit & 32bit under the new experimental WoW64 mode" - else - echo "it looks like wine-32bit is missing, you should install it." - if uname -a | grep "x86_64" > /dev/null && xbps-query -l | grep void-repo-multilib > /dev/null; then - echo "the multilib repository needs to be enabled first. as root, please" - echo "execute \"xbps-install -S void-repo-multilib && xbps-install -S wine-32bit\"" - else - echo "as root, please execute \"xbps-install -S wine-32bit\"" - fi - fi -} - -if test -x $wine64; then - wine=$wine64 - if test -z "$WINELOADER"; then - export WINELOADER=$wine64 - fi - case "x$WINEDEBUG" in - x-all*|x*,-all*|x*err-all*) - ;; - *) - if ! test -x $wine32; then - wine32_hint >&2 - fi - ;; - esac -elif test -x $wine32; then - wine=$wine32 -else - echo "error: unable to find wine executable. this shouldn't happen." >&2 - exit 1 -fi - -if test -z "$WINEDEBUG"; then - export WINEDEBUG=fixme-all -fi - -appname=$(basename "$0") -case "$appname" in - wine|wine32|wine64) exec $wine "$@" ;; - *) exec $wine "$appname.exe" "$@" ;; -esac diff --git a/srcpkgs/wine/files/wineserver b/srcpkgs/wine/files/wineserver deleted file mode 100644 index eff4582dbe1..00000000000 --- a/srcpkgs/wine/files/wineserver +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -e -# Based on the Debian wrapper script written by Jens Reyer and Michael Gilbert -# SPDX-License-Identifier: LGPL-2.1-or-later - -wineserver32=/usr/bin/wineserver32 -wineserver64=/usr/bin/wineserver64 - -if test -x "$wineserver64"; then - wineserver=$wineserver64 -elif test -x "$wineserver32"; then - wineserver=$wineserver32 -else - echo "error: unable to find wineserver executable." >&2 - echo "wine and/or wine-32bit must be installed." >&2 - exit 1 -fi - -exec $wineserver -p0 "$@" diff --git a/srcpkgs/wine/template b/srcpkgs/wine/template index a9478786b33..7ad74c6f859 100644 --- a/srcpkgs/wine/template +++ b/srcpkgs/wine/template @@ -1,6 +1,6 @@ # Template file for 'wine' pkgname=wine -version=11.0 +version=11.1 revision=1 _pkgver=${version/r/-r} create_wrksrc=yes @@ -12,12 +12,13 @@ maintainer="Helmut Pozimski " license="LGPL-2.1-or-later" homepage="http://www.winehq.org/" # For non-zero subversions -# distfiles="https://dl.winehq.org/wine/source/${version%.*}.x/wine-${_pkgver}.tar.xz -# For zero subversions -distfiles="https://dl.winehq.org/wine/source/${version%.*}.0/wine-${_pkgver}.tar.xz +distfiles="https://dl.winehq.org/wine/source/${version%.*}.x/wine-${_pkgver}.tar.xz https://github.com/wine-staging/wine-staging/archive/v${_pkgver}.tar.gz" -checksum="c07a6857933c1fc60dff5448d79f39c92481c1e9db5aa628db9d0358446e0701 - ae4f711922c45252252a565e85b7f011c85387be1deb5acddca587364d5a2620" +# For zero subversions +#distfiles="https://dl.winehq.org/wine/source/${version%.*}.0/wine-${_pkgver}.tar.xz +# https://github.com/wine-staging/wine-staging/archive/v${_pkgver}.tar.gz" +checksum="bf4c7c8fb5d8c1f656f30a2bea93870c85f13ff8311ab2f61ddef900eb28cb8f + 157fd6fb0c3ea825f2ccaef768f04edb1ed80d914241b94cceead66f2f34db2b" # NOTE: wine depends on specific versions of wine-mono and wine-gecko, # check for updates to these packages when updating wine @@ -30,11 +31,6 @@ desc_option_xshm="Enable support for the X Shared Memory Extension" desc_option_wow64="Run 32-bit Windows apps on a purely 64-bit Unix installation" -if [ "$XBPS_TARGET_LIBC" = "musl" ]; then - build_options_default+=" wow64" -fi - -lib32mode=full archs="i686* x86_64*" patch_args="-Np1 --directory=${build_wrksrc}" @@ -72,23 +68,22 @@ make_check=extended if [ "$XBPS_TARGET_WORDSIZE" != 32 ]; then configure_args+=" --enable-win64 --libdir=/usr/lib" - _wine_suffix="64" + build_options_default+=" wow64" + replaces="wine-32bit>=0" else - _wine_suffix="32" CFLAGS=" -D_LARGE_FILE_SOURCE=1 -D_FILE_OFFSET_BITS=64" CPPFLAGS=" -D_LARGE_FILE_SOURCE=1 -D_FILE_OFFSET_BITS=64" fi -_wineserver_suffix=${_wine_suffix} if [ "${build_option_wow64}" ]; then configure_args+=" --enable-archs=i386,x86_64" makedepends+=" cross-i686-w64-mingw32" fi -nopie_files="/usr/bin/wine${_wine_suffix}" +nopie_files="/usr/bin/wine" if [ "${_nopie}" = yes ]; then - nopie_files+=" /usr/bin/wineserver${_wineserver_suffix}" + nopie_files+=" /usr/bin/wineserver" fi post_patch() { @@ -117,11 +112,6 @@ post_install() { install -m644 ${FILESDIR}/30-win32-aliases.conf ${DESTDIR}/etc/fonts/conf.avail ln -s ../conf.avail/30-win32-aliases.conf ${DESTDIR}/etc/fonts/conf.d/30-win32-aliases.conf - mv ${DESTDIR}/usr/bin/wine ${DESTDIR}/usr/bin/wine${_wine_suffix} - mv ${DESTDIR}/usr/bin/wineserver ${DESTDIR}/usr/bin/wineserver${_wineserver_suffix} - vbin ${FILESDIR}/wine - vbin ${FILESDIR}/wineserver - # install man page for wine executable for f in tools/wine/wine*.man; do vman "$f" "${f//man/1}"