Add mirror 'wine-ge-custom' at '3e10124'

This commit is contained in:
Nathan 2022-10-05 14:55:08 -05:00
parent c69eed3db0
commit 7c5158738d
8 changed files with 483 additions and 0 deletions

View File

@ -11,6 +11,11 @@
"branch": "master",
"revision": "4ebb83232bc4d7bc16399c5ae49c0a512dcdea95"
},
"wine-ge-custom": {
"url": "https://aur.archlinux.org/wine-ge-custom.git",
"branch": "master",
"revision": "3e101247f521a7f75825d165613ca406b3f41d41"
},
"zfs-dkms": {
"url": "https://aur.archlinux.org/zfs-dkms.git",
"branch": "master",

166
wine-ge-custom/.SRCINFO Normal file
View File

@ -0,0 +1,166 @@
pkgbase = wine-ge-custom
pkgdesc = A compatibility layer for running Windows programs - GloriousEggroll branch
pkgver = GE.Proton7.29
pkgrel = 1
epoch = 1
url = https://github.com/GloriousEggroll/wine-ge-custom
install = wine.install
arch = x86_64
arch = x86_64_v3
license = LGPL
makedepends = autoconf
makedepends = bison
makedepends = perl
makedepends = fontforge
makedepends = flex
makedepends = mingw-w64-gcc
makedepends = git
makedepends = giflib
makedepends = lib32-giflib
makedepends = libpng
makedepends = lib32-libpng
makedepends = gnutls
makedepends = lib32-gnutls
makedepends = libxinerama
makedepends = lib32-libxinerama
makedepends = libxcomposite
makedepends = lib32-libxcomposite
makedepends = libxmu
makedepends = lib32-libxmu
makedepends = libxxf86vm
makedepends = lib32-libxxf86vm
makedepends = libldap
makedepends = lib32-libldap
makedepends = mpg123
makedepends = lib32-mpg123
makedepends = openal
makedepends = lib32-openal
makedepends = v4l-utils
makedepends = lib32-v4l-utils
makedepends = alsa-lib
makedepends = lib32-alsa-lib
makedepends = libxcomposite
makedepends = lib32-libxcomposite
makedepends = mesa
makedepends = lib32-mesa
makedepends = mesa-libgl
makedepends = lib32-mesa-libgl
makedepends = opencl-icd-loader
makedepends = lib32-opencl-icd-loader
makedepends = libxslt
makedepends = lib32-libxslt
makedepends = libpulse
makedepends = lib32-libpulse
makedepends = libva
makedepends = lib32-libva
makedepends = gtk3
makedepends = lib32-gtk3
makedepends = gst-plugins-base-libs
makedepends = lib32-gst-plugins-base-libs
makedepends = vulkan-icd-loader
makedepends = lib32-vulkan-icd-loader
makedepends = sdl2
makedepends = lib32-sdl2
makedepends = vkd3d
makedepends = lib32-vkd3d
makedepends = libgphoto2
makedepends = gsm
makedepends = ffmpeg
makedepends = opencl-headers
depends = attr
depends = lib32-attr
depends = fontconfig
depends = lib32-fontconfig
depends = lcms2
depends = lib32-lcms2
depends = libxml2
depends = lib32-libxml2
depends = libxcursor
depends = lib32-libxcursor
depends = libxrandr
depends = lib32-libxrandr
depends = libxdamage
depends = lib32-libxdamage
depends = libxi
depends = lib32-libxi
depends = gettext
depends = lib32-gettext
depends = freetype2
depends = lib32-freetype2
depends = glu
depends = lib32-glu
depends = libsm
depends = lib32-libsm
depends = gcc-libs
depends = lib32-gcc-libs
depends = libpcap
depends = lib32-libpcap
depends = desktop-file-utils
optdepends = giflib
optdepends = lib32-giflib
optdepends = libpng
optdepends = lib32-libpng
optdepends = libldap
optdepends = lib32-libldap
optdepends = gnutls
optdepends = lib32-gnutls
optdepends = mpg123
optdepends = lib32-mpg123
optdepends = openal
optdepends = lib32-openal
optdepends = v4l-utils
optdepends = lib32-v4l-utils
optdepends = libpulse
optdepends = lib32-libpulse
optdepends = alsa-plugins
optdepends = lib32-alsa-plugins
optdepends = alsa-lib
optdepends = lib32-alsa-lib
optdepends = libjpeg-turbo
optdepends = lib32-libjpeg-turbo
optdepends = libxcomposite
optdepends = lib32-libxcomposite
optdepends = libxinerama
optdepends = lib32-libxinerama
optdepends = opencl-icd-loader
optdepends = lib32-opencl-icd-loader
optdepends = libxslt
optdepends = lib32-libxslt
optdepends = libva
optdepends = lib32-libva
optdepends = gtk3
optdepends = lib32-gtk3
optdepends = gst-plugins-base-libs
optdepends = lib32-gst-plugins-base-libs
optdepends = vulkan-icd-loader
optdepends = lib32-vulkan-icd-loader
optdepends = sdl2
optdepends = lib32-sdl2
optdepends = vkd3d
optdepends = lib32-vkd3d
optdepends = libgphoto2
optdepends = gsm
optdepends = ffmpeg
optdepends = dosbox
provides = wine=7.0
provides = wine-wow64=7.0
conflicts = wine
conflicts = wine-wow64
options = !staticlibs
options = !lto
source = wine-ge-custom::git+https://github.com/GloriousEggroll/wine-ge-custom.git#tag=GE-Proton7-29
source = proton-wine-ge::git+https://github.com/GloriousEggroll/proton-wine.git
source = wine-wmclass.patch
source = wine-isolate_home.patch
source = 30-win32-aliases.conf
source = wine-binfmt.conf
validpgpkeys = 5AC1A08B03BD7A313E0A955AF5E6E9EEB9461DD7
validpgpkeys = DA23579A74D4AD9AF9D3F945CEFAC8EAAF17519D
sha512sums = SKIP
sha512sums = SKIP
sha512sums = 30437d8ee92c5741fa50a7fe346ccfc48ba809dad0d740903a05a67781d23ea38a5094038a070a253e3fdd8046783b46a5420df6361bdd30cb229d3d88107569
sha512sums = 3dcdbd523fcbe79b9e9e9b026b9d0a5edf296514c7b48bd465d2dc05a8ca08e23ba8817e2de08edfe52286a2a2f81db42b65f71254cabe496752b9d45131d282
sha512sums = 6e54ece7ec7022b3c9d94ad64bdf1017338da16c618966e8baf398e6f18f80f7b0576edf1d1da47ed77b96d577e4cbb2bb0156b0b11c183a0accf22654b0a2bb
sha512sums = bdde7ae015d8a98ba55e84b86dc05aca1d4f8de85be7e4bd6187054bfe4ac83b5a20538945b63fb073caab78022141e9545685e4e3698c97ff173cf30859e285
pkgname = wine-ge-custom

View File

@ -0,0 +1,20 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias binding="same">
<family>MS Shell Dlg</family>
<accept><family>Microsoft Sans Serif</family></accept>
<default><family>sans-serif</family></default>
</alias>
<alias binding="same">
<family>MS Shell Dlg 2</family>
<accept><family>Tahoma</family></accept>
<default><family>sans-serif</family></default>
</alias>
<alias binding="same">
<family>MS Sans Serif</family>
<prefer><family>Microsoft Sans Serif</family></prefer>
<default><family>sans-serif</family></default>
</alias>
</fontconfig>

242
wine-ge-custom/PKGBUILD Normal file
View File

@ -0,0 +1,242 @@
# Maintainer: loathingkernel <loathingkernel _a_ gmail _d_ com>
# Contributor: Felix Yan <felixonmars@archlinux.org>
# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: Eduardo Romero <eduardo@archlinux.org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
pkgname=wine-ge-custom
_srctag=GE-Proton7-29
pkgver=${_srctag//-/.}
pkgrel=1
epoch=1
#_winever=${pkgver%.*}
#_winever=$pkgver
_pkgbasever=${pkgver/rc/-rc}
_winever=$_pkgbasever
source=(wine-ge-custom::git+https://github.com/GloriousEggroll/wine-ge-custom.git#tag=${_srctag}
proton-wine-ge::git+https://github.com/GloriousEggroll/proton-wine.git
wine-wmclass.patch
wine-isolate_home.patch
30-win32-aliases.conf
wine-binfmt.conf)
sha512sums=('SKIP'
'SKIP'
'30437d8ee92c5741fa50a7fe346ccfc48ba809dad0d740903a05a67781d23ea38a5094038a070a253e3fdd8046783b46a5420df6361bdd30cb229d3d88107569'
'3dcdbd523fcbe79b9e9e9b026b9d0a5edf296514c7b48bd465d2dc05a8ca08e23ba8817e2de08edfe52286a2a2f81db42b65f71254cabe496752b9d45131d282'
'6e54ece7ec7022b3c9d94ad64bdf1017338da16c618966e8baf398e6f18f80f7b0576edf1d1da47ed77b96d577e4cbb2bb0156b0b11c183a0accf22654b0a2bb'
'bdde7ae015d8a98ba55e84b86dc05aca1d4f8de85be7e4bd6187054bfe4ac83b5a20538945b63fb073caab78022141e9545685e4e3698c97ff173cf30859e285')
validpgpkeys=(5AC1A08B03BD7A313E0A955AF5E6E9EEB9461DD7
DA23579A74D4AD9AF9D3F945CEFAC8EAAF17519D)
pkgdesc="A compatibility layer for running Windows programs - GloriousEggroll branch"
url="https://github.com/GloriousEggroll/wine-ge-custom"
arch=(x86_64 x86_64_v3)
options=(!staticlibs !lto)
license=(LGPL)
depends=(
attr lib32-attr
fontconfig lib32-fontconfig
lcms2 lib32-lcms2
libxml2 lib32-libxml2
libxcursor lib32-libxcursor
libxrandr lib32-libxrandr
libxdamage lib32-libxdamage
libxi lib32-libxi
gettext lib32-gettext
freetype2 lib32-freetype2
glu lib32-glu
libsm lib32-libsm
gcc-libs lib32-gcc-libs
libpcap lib32-libpcap
desktop-file-utils
)
makedepends=(autoconf bison perl fontforge flex mingw-w64-gcc
git
giflib lib32-giflib
libpng lib32-libpng
gnutls lib32-gnutls
libxinerama lib32-libxinerama
libxcomposite lib32-libxcomposite
libxmu lib32-libxmu
libxxf86vm lib32-libxxf86vm
libldap lib32-libldap
mpg123 lib32-mpg123
openal lib32-openal
v4l-utils lib32-v4l-utils
alsa-lib lib32-alsa-lib
libxcomposite lib32-libxcomposite
mesa lib32-mesa
mesa-libgl lib32-mesa-libgl
opencl-icd-loader lib32-opencl-icd-loader
libxslt lib32-libxslt
libpulse lib32-libpulse
libva lib32-libva
gtk3 lib32-gtk3
gst-plugins-base-libs lib32-gst-plugins-base-libs
vulkan-icd-loader lib32-vulkan-icd-loader
sdl2 lib32-sdl2
vkd3d lib32-vkd3d
libgphoto2
gsm
ffmpeg
opencl-headers
)
optdepends=(
giflib lib32-giflib
libpng lib32-libpng
libldap lib32-libldap
gnutls lib32-gnutls
mpg123 lib32-mpg123
openal lib32-openal
v4l-utils lib32-v4l-utils
libpulse lib32-libpulse
alsa-plugins lib32-alsa-plugins
alsa-lib lib32-alsa-lib
libjpeg-turbo lib32-libjpeg-turbo
libxcomposite lib32-libxcomposite
libxinerama lib32-libxinerama
opencl-icd-loader lib32-opencl-icd-loader
libxslt lib32-libxslt
libva lib32-libva
gtk3 lib32-gtk3
gst-plugins-base-libs lib32-gst-plugins-base-libs
vulkan-icd-loader lib32-vulkan-icd-loader
sdl2 lib32-sdl2
vkd3d lib32-vkd3d
libgphoto2
gsm
ffmpeg
dosbox
)
provides=("wine=7.0" "wine-wow64=7.0")
conflicts=('wine' 'wine-wow64')
install=wine.install
prepare() {
pushd $pkgname
git submodule init proton-wine
git submodule set-url proton-wine "$srcdir"/proton-wine-ge
git submodule update proton-wine
pushd proton-wine
patch -p1 -i "$srcdir"/wine-wmclass.patch
patch -p1 -i "$srcdir"/wine-isolate_home.patch
git config user.email "makepkg@aur.not"
git config user.name "makepkg aur"
git tag wine-ge-7.0 --annotate -m "$pkgver"
dlls/winevulkan/make_vulkan
tools/make_requests
autoreconf -f
popd
popd
sed 's|OpenCL/opencl.h|CL/opencl.h|g' -i $pkgname/proton-wine/configure*
# Fix openldap 2.5+ detection
sed 's/-lldap_r/-lldap/' -i $pkgname/proton-wine/configure
# Get rid of old build dirs
rm -rf $pkgname-{32,64}-build
mkdir $pkgname-{32,64}-build
}
build() {
cd "$srcdir"
# Doesn't compile without remove these flags as of 4.10
export CFLAGS="${CFLAGS/-fno-plt/}"
export CXXFLAGS="${CXXFLAGS/-fno-plt/}"
export LDFLAGS="${LDFLAGS/,-z,now/}"
# MingW Wine builds fail with relro
export LDFLAGS="${LDFLAGS/,-z,relro/}"
export CFLAGS="-O2 -march=nocona -mtune=core-avx2 -pipe"
export CXXFLAGS="-O2 -march=nocona -mtune=core-avx2 -pipe"
export LDFLAGS="-Wl,-O1,--sort-common,--as-needed"
export CFLAGS+=" -mno-avx2 -mfpmath=sse -fwrapv -fno-strict-aliasing -gdwarf-2 -gstrict-dwarf"
export CXXFLAGS+=" -mno-avx2 -mfpmath=sse -fwrapv -fno-strict-aliasing -gdwarf-2 -gstrict-dwarf -std=c++17"
export CROSSCFLAGS="$CFLAGS"
export CROSSCXXFLAGS="$CXXFLAGS"
export CROSSLDFLAGS="$LDFLAGS -Wl,--file-alignment,4096"
msg2 "Building Wine-64..."
cd "$srcdir/$pkgname-64-build"
../$pkgname/proton-wine/configure \
--prefix=/usr \
--libdir=/usr/lib \
--with-x \
--with-gstreamer \
--with-mingw \
--with-alsa \
--without-oss \
--disable-winemenubuilder \
--disable-win16 \
--disable-tests \
--enable-win64 \
--with-xattr
make
msg2 "Building Wine-32..."
# Disable AVX instead of using 02, for 32bit
export CFLAGS+=" -mstackrealign -mno-avx"
export CXXFLAGS+=" -mstackrealign -mno-avx"
export CROSSCFLAGS="$CFLAGS"
export CROSSCXXFLAGS="$CXXFLAGS"
export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
cd "$srcdir/$pkgname-32-build"
../$pkgname/proton-wine/configure \
--prefix=/usr \
--with-x \
--with-gstreamer \
--with-mingw \
--with-alsa \
--without-oss \
--disable-winemenubuilder \
--disable-win16 \
--disable-tests \
--with-xattr \
--libdir=/usr/lib32 \
--with-wine64="$srcdir/$pkgname-64-build"
make
}
package() {
msg2 "Packaging Wine-32..."
cd "$srcdir/$pkgname-32-build"
make prefix="$pkgdir/usr" \
libdir="$pkgdir/usr/lib32" \
dlldir="$pkgdir/usr/lib32/wine" install
msg2 "Packaging Wine-64..."
cd "$srcdir/$pkgname-64-build"
make prefix="$pkgdir/usr" \
libdir="$pkgdir/usr/lib" \
dlldir="$pkgdir/usr/lib/wine" install
# Font aliasing settings for Win32 applications
install -d "$pkgdir"/usr/share/fontconfig/conf.{avail,default}
install -m644 "$srcdir/30-win32-aliases.conf" "$pkgdir/usr/share/fontconfig/conf.avail"
ln -s ../conf.avail/30-win32-aliases.conf "$pkgdir/usr/share/fontconfig/conf.default/30-win32-aliases.conf"
install -Dm 644 "$srcdir/wine-binfmt.conf" "$pkgdir/usr/lib/binfmt.d/wine.conf"
i686-w64-mingw32-strip --strip-unneeded "$pkgdir"/usr/lib32/wine/i386-windows/*.{dll,exe}
x86_64-w64-mingw32-strip --strip-unneeded "$pkgdir"/usr/lib/wine/x86_64-windows/*.{dll,exe}
find "$pkgdir"/usr/lib{,32}/wine -iname "*.a" -delete
find "$pkgdir"/usr/lib{,32}/wine -iname "*.def" -delete
}
# vim:set ts=8 sts=2 sw=2 et:

View File

@ -0,0 +1,2 @@
# Start WINE on Windows executables
:DOSWin:M::MZ::/usr/bin/wine:

View File

@ -0,0 +1,17 @@
diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c
index 7bfa504a62f..4896bbad88f 100644
--- a/dlls/shell32/shellpath.c
+++ b/dlls/shell32/shellpath.c
@@ -3007,7 +3007,12 @@ HRESULT WINAPI SHGetFolderPathAndSubDirW(
/* create symbolic links rather than directories for specific
* user shell folders */
+ const WCHAR *sandbox = _wgetenv( L"WINEUSERSANDBOX" );
+ int isolate = 0;
+ isolate = sandbox && !strcmp(sandbox, "1");
+ if(!isolate) {
_SHCreateSymbolicLink(folder, szBuildPath);
+ }
/* create directory/directories */
ret = SHCreateDirectoryExW(hwndOwner, szBuildPath, NULL);

View File

@ -0,0 +1,24 @@
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index 221f4392aa9..5485eb0f8e8 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -1034,8 +1034,17 @@ static void set_initial_wm_hints( Display *display, Window window )
/* class hints */
if ((class_hints = XAllocClassHint()))
{
- class_hints->res_name = process_name;
- class_hints->res_class = process_name;
+ const char *wine_wmclass = getenv("WINE_WMCLASS");
+ char window_class[128];
+
+ if (wine_wmclass && *wine_wmclass){
+ snprintf(window_class, sizeof(window_class), "%s", wine_wmclass);
+ class_hints->res_name = window_class;
+ class_hints->res_class = window_class;
+ } else {
+ class_hints->res_name = process_name;
+ class_hints->res_class = process_name;
+ }
XSetClassHint( display, window, class_hints );
XFree( class_hints );
}

View File

@ -0,0 +1,7 @@
post_install() {
echo "Run 'systemctl restart systemd-binfmt' in order to make the wine binfmt available on your system."
}
post_remove() {
echo "binfmt binary formats will be updated at reboot"
}