diff options
author | dreadsend | 2019-11-20 19:56:01 +0100 |
---|---|---|
committer | Manuel Reimer | 2019-11-20 19:56:01 +0100 |
commit | c46d872622b2516dbaa3c346d609f50828412d0f (patch) | |
tree | fc0095d3589e9311a09d2cebba726e2c706ea121 | |
parent | 9f443d50f448de2e10dbe6281389425b65e7596b (diff) | |
download | aur-c46d872622b2516dbaa3c346d609f50828412d0f.tar.gz |
Update to 4.20 (#37)
* Updated to wine 4.18
* Removed Mouse Capture Bug fix, since it is no longer necessary
* Reverted overzealous patch deletion...
* Removed Patch for 4.20 since it is already Staged
* Removed missed Patch call
* Update to wine 4.19
No Improvements for League
* Created first Version
* Fixed overlooked Plus Signs....
* Updated SHA512sums
-rw-r--r-- | .SRCINFO | 20 | ||||
-rw-r--r-- | 420CustomPatch1.diff | 93 | ||||
-rw-r--r-- | PKGBUILD | 24 |
3 files changed, 109 insertions, 28 deletions
@@ -1,7 +1,7 @@ pkgbase = wine-lol pkgdesc = A compatibility layer for running Windows programs - Staging branch with League Of Legends fixes - pkgver = 4.17 - pkgrel = 2 + pkgver = 4.20 + pkgrel = 1 url = http://www.wine-staging.com install = wine.install arch = x86_64 @@ -149,18 +149,14 @@ pkgbase = wine-lol optdepends = samba optdepends = dosbox options = staticlibs - source = https://dl.winehq.org/wine/source/4.x/wine-4.17.tar.xz - source = wine-staging-v4.17.tar.gz::https://github.com/wine-staging/wine-staging/archive/v4.17.tar.gz + source = https://dl.winehq.org/wine/source/4.x/wine-4.20.tar.xz + source = wine-staging-v4.20.tar.gz::https://github.com/wine-staging/wine-staging/archive/v4.20.tar.gz source = 30-win32-aliases.conf - source = wine-lol-poc1-wine.diff::https://bugs.winehq.org/attachment.cgi?id=64481 - source = wine-lol-patch-stub.diff::https://bugs.winehq.org/attachment.cgi?id=64496 - source = wine-lol-bug47915.diff::https://bugs.winehq.org/attachment.cgi?id=65424 - sha512sums = f762aab2596a4b5cf73d3282be561d25a2fe69e5d4a5ec2e29db47b3eda7496ca9eb7e57ff7765853d258422898bfa775bf9b458e61eef837b213e422bd748b8 - sha512sums = 1f27511c8ff6619f4138eb3b2cd0cc1cdf42c0cd4206c68bdf792ae17c339611016e32babad121f0decf20331f7ce4400033be03c4db26cb6a4dc601c9c4b14d + source = 420CustomPatch1.diff + sha512sums = c01af88106b8a808fbceb6ace45882c300656a47913142ba7052283b358d6d5b4379895804e15a2ca1870a4e955ea3ca857ec042a8070ea4ffaefa0c7a84e701 + sha512sums = 2ce4f6fa83fc275c83bc7f7bbd4b1a4ca65f7e55e16af40958635b8b2efc2b174baa79ed576ed09c4c13b572756fb6262f19281e5b72797c7e0f1f6c4dd1a4ee sha512sums = 6e54ece7ec7022b3c9d94ad64bdf1017338da16c618966e8baf398e6f18f80f7b0576edf1d1da47ed77b96d577e4cbb2bb0156b0b11c183a0accf22654b0a2bb - sha512sums = ed9c36aee756ee8fba0b08a3ff895893df1c771077964cbe5ce1a23f66addf7212c8ca8e601cf14e5dae82af4b275d0a11c7207acd7dc4f48fdb1216d819f9dd - sha512sums = 159b075f11607114ee81ef801c77969c7b630b024a8a698b5f20a208f2cf780a2109f055d420e4292b774f3e5524a05b4c05d446d5217f1c050adb12b7409e45 - sha512sums = 56213f38a9f6cd9272a86e4defabc3b88453d160f2043db909b0f7b329ff93238a6dfe0cf19213372793171a2ac909f8c09e21d91fc685deb2b65cf98ad0a234 + sha512sums = a17db33ba5d6114bd71d1b013adc8e5ca0c3cedf856301cba59f95dadf643d2ee0e5a2d7abb2daedd5ed7c45cdbe93c78527f4d962bedc54776bb21cfc7e8b0b pkgname = wine-lol diff --git a/420CustomPatch1.diff b/420CustomPatch1.diff new file mode 100644 index 000000000000..504eff1e76fc --- /dev/null +++ b/420CustomPatch1.diff @@ -0,0 +1,93 @@ +diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c +index c5b2008e44..96ca266921 100644 +--- a/dlls/ntdll/thread.c ++++ b/dlls/ntdll/thread.c +@@ -268,6 +268,77 @@ static void set_process_name( int argc, char *argv[] ) + } + + ++#ifdef __i386__ ++#include <asm/ldt.h> ++#include <linux/audit.h> ++#include <linux/filter.h> ++#include <linux/seccomp.h> ++#include <linux/unistd.h> ++#include <sys/prctl.h> ++#include <errno.h> ++ ++static void sigsys_handler( int signal, siginfo_t *siginfo, void *sigcontext ) ++{ ++ ucontext_t *ctx = sigcontext; ++ ++ WINE_ERR( "SIGSYS (%d)\n", ctx->uc_mcontext.gregs[REG_EAX] ); ++ ++ // FIXME Relay to actual Nt syscall. ++ ++ ctx->uc_mcontext.gregs[REG_EAX] = 0; ++} ++ ++// FIXME All of this code is i386 Linux-specific. It may want to live in ++// signal_i386.c. ++void seccomp_init(void) ++{ ++ int ret; ++ char *tcbhead; ++ struct sigaction sig_act; ++ // FIXME Allocate a range of syscall numbers for Wine, e.g. 1024+. This ++ // will be necessary to distinguish Linux syscall numbers from Wine ++ // syscall numbers. ++ struct sock_filter filter[] = { ++ { BPF_LD | BPF_W | BPF_ABS, 0, 0, 0 }, ++ { BPF_JMP | BPF_JEQ, 1, 0, 173 }, ++ { BPF_RET, 0, 0, SECCOMP_RET_ALLOW }, ++ { BPF_LD | BPF_W | BPF_ABS, 0, 0, 4 }, ++ { BPF_JMP | BPF_JEQ, 1, 0, AUDIT_ARCH_X86_64 }, ++ { BPF_RET, 0, 0, SECCOMP_RET_ALLOW }, ++ { BPF_RET, 0, 0, SECCOMP_RET_TRAP } ++ }; ++ struct sock_fprog prog = { 7, filter }; ++ ++ // FIXME There is no way to remove a seccomp upon execve. This should not ++ // have bad effects on non-Wine programs, provided we fix the syscall ++ // numbering, but we may be adding the same seccomp filter multiple ++ // times unnecessarily. ++ ret = prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0); ++ TRACE( "prctl(SET_NO_NEW_PRIVS) = %d, %d\n", ret, errno ); ++ prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &prog, 0, 0); ++ TRACE( "prctl(SET_SECCOMP) = %d, %d\n", ret, errno ); ++ ++ sig_act.sa_mask = server_block_set; ++ sig_act.sa_flags = SA_SIGINFO | SA_RESTART; ++#ifdef SA_ONSTACK ++ sig_act.sa_flags |= SA_ONSTACK; ++#endif ++ sig_act.sa_sigaction = sigsys_handler; ++ ret = sigaction( SIGSYS, &sig_act, NULL ); ++ TRACE( "sigaction(SIGSYS) = %d\n", ret ); ++ ++ asm ("mov %%gs:0, %0" : "=r" (tcbhead)); ++ TRACE( "gs:0 = %p\n", tcbhead ); ++ ++ // FIXME Requires a patched version of glibc to expand the reserved size ++ // at the top of (struct pthread). Upstream glibc only reserves 0x60 ++ // bytes on i386, and we require at least 0x68 bytes. The code below ++ // assumes at least 0x6C bytes are reserved. ++ *(uint64_t *)(tcbhead + 0x60) = (uintptr_t)(tcbhead + 0x68); ++} ++#endif ++ ++ + /*********************************************************************** + * thread_init + * +@@ -370,6 +441,10 @@ TEB *thread_init(void) + __wine_user_shared_data(); + fill_cpu_info(); + ++#ifdef __i386__ ++ seccomp_init(); ++#endif ++ + return teb; + } + @@ -11,26 +11,21 @@ # Some history: # Primary bug report: https://bugs.winehq.org/show_bug.cgi?id=47198 # Additional crash fix: https://bugs.winehq.org/show_bug.cgi?id=45667#c5 -# Fix for version 9.20: https://bugs.winehq.org/show_bug.cgi?id=47915#c2 pkgname=wine-lol -pkgver=4.17 -pkgrel=2 +pkgver=4.20 +pkgrel=1 _pkgbasever=${pkgver/rc/-rc} source=(https://dl.winehq.org/wine/source/4.x/wine-$_pkgbasever.tar.xz "wine-staging-v$_pkgbasever.tar.gz::https://github.com/wine-staging/wine-staging/archive/v$_pkgbasever.tar.gz" 30-win32-aliases.conf - wine-lol-poc1-wine.diff::https://bugs.winehq.org/attachment.cgi?id=64481 - wine-lol-patch-stub.diff::https://bugs.winehq.org/attachment.cgi?id=64496 - wine-lol-bug47915.diff::https://bugs.winehq.org/attachment.cgi?id=65424) -sha512sums=('f762aab2596a4b5cf73d3282be561d25a2fe69e5d4a5ec2e29db47b3eda7496ca9eb7e57ff7765853d258422898bfa775bf9b458e61eef837b213e422bd748b8' - '1f27511c8ff6619f4138eb3b2cd0cc1cdf42c0cd4206c68bdf792ae17c339611016e32babad121f0decf20331f7ce4400033be03c4db26cb6a4dc601c9c4b14d' + 420CustomPatch1.diff) +sha512sums=('c01af88106b8a808fbceb6ace45882c300656a47913142ba7052283b358d6d5b4379895804e15a2ca1870a4e955ea3ca857ec042a8070ea4ffaefa0c7a84e701' + '2ce4f6fa83fc275c83bc7f7bbd4b1a4ca65f7e55e16af40958635b8b2efc2b174baa79ed576ed09c4c13b572756fb6262f19281e5b72797c7e0f1f6c4dd1a4ee' '6e54ece7ec7022b3c9d94ad64bdf1017338da16c618966e8baf398e6f18f80f7b0576edf1d1da47ed77b96d577e4cbb2bb0156b0b11c183a0accf22654b0a2bb' - 'ed9c36aee756ee8fba0b08a3ff895893df1c771077964cbe5ce1a23f66addf7212c8ca8e601cf14e5dae82af4b275d0a11c7207acd7dc4f48fdb1216d819f9dd' - '159b075f11607114ee81ef801c77969c7b630b024a8a698b5f20a208f2cf780a2109f055d420e4292b774f3e5524a05b4c05d446d5217f1c050adb12b7409e45' - '56213f38a9f6cd9272a86e4defabc3b88453d160f2043db909b0f7b329ff93238a6dfe0cf19213372793171a2ac909f8c09e21d91fc685deb2b65cf98ad0a234') + 'a17db33ba5d6114bd71d1b013adc8e5ca0c3cedf856301cba59f95dadf643d2ee0e5a2d7abb2daedd5ed7c45cdbe93c78527f4d962bedc54776bb21cfc7e8b0b') pkgdesc="A compatibility layer for running Windows programs - Staging branch with League Of Legends fixes" url="http://www.wine-staging.com" @@ -130,15 +125,12 @@ prepare() { # apply wine-staging patchset pushd wine-staging-$_pkgbasever/patches - # disable user32-rawinput patchset (https://bugs.winehq.org/show_bug.cgi?id=47834) - ./patchinstall.sh DESTDIR="$srcdir/$pkgname" --all -W user32-rawinput + ./patchinstall.sh DESTDIR="$srcdir/$pkgname" --all popd # Apply League Of Legends fixes pushd "$srcdir/$pkgname" - patch -p1 -i "$srcdir/wine-lol-poc1-wine.diff" - patch -p1 -i "$srcdir/wine-lol-patch-stub.diff" - patch -p1 -i "$srcdir/wine-lol-bug47915.diff" + patch -p1 -i "$srcdir/420CustomPatch1.diff" popd # Fix opencl header path |