diff options
author | moonshadow565 | 2023-04-08 20:44:57 +0200 |
---|---|---|
committer | moonshadow565 | 2023-04-08 20:44:57 +0200 |
commit | bd75f5c09e31591cd68bcbd8cb7886e1855ad848 (patch) | |
tree | 8ebecc0dff205aacc83bed7ab4738698f28648ab | |
parent | c4f409a3fcf315f221b388c3afb923f9eca63681 (diff) | |
download | aur-bd75f5c09e31591cd68bcbd8cb7886e1855ad848.tar.gz |
Remove 32bit patches that are useless on 64bit
-rw-r--r-- | .SRCINFO | 58 | ||||
-rw-r--r-- | 0002-LoL-6.17+-syscall-fix.patch | 27 | ||||
-rw-r--r-- | 0003-LoL-abi.vsyscall32-alternative_patch_by_using_a_fake_cs_segment.patch | 148 | ||||
-rw-r--r-- | 0006-LoL-abi-vsyscall32-disable-vDSO.patch | 13 | ||||
-rw-r--r-- | PKGBUILD | 18 | ||||
-rw-r--r--[-rwxr-xr-x] | wine-lol-staging.install | 17 |
6 files changed, 7 insertions, 274 deletions
@@ -1,6 +1,6 @@ pkgbase = wine-lol-staging pkgdesc = A compatibility layer for running Windows programs (staging branch) with LoL patches(abi.vsyscall32=0 version) - pkgver = 8.1 + pkgver = 8.2 pkgrel = 1 url = https://www.wine-staging.com/ install = wine-lol-staging.install @@ -15,24 +15,14 @@ pkgbase = wine-lol-staging makedepends = mingw-w64-gcc 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 @@ -45,8 +35,6 @@ pkgbase = wine-lol-staging makedepends = lib32-libgl makedepends = opencl-icd-loader makedepends = lib32-opencl-icd-loader - makedepends = libxslt - makedepends = lib32-libxslt makedepends = libpulse makedepends = lib32-libpulse makedepends = libva @@ -59,13 +47,10 @@ pkgbase = wine-lol-staging makedepends = lib32-vulkan-icd-loader makedepends = sdl2 makedepends = lib32-sdl2 - makedepends = vkd3d - makedepends = lib32-vkd3d makedepends = libcups makedepends = lib32-libcups makedepends = sane makedepends = libgphoto2 - makedepends = gsm makedepends = ffmpeg makedepends = samba makedepends = opencl-headers @@ -74,45 +59,25 @@ pkgbase = wine-lol-staging 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 = faudio - depends = lib32-faudio 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 @@ -121,16 +86,12 @@ pkgbase = wine-lol-staging 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 @@ -141,11 +102,8 @@ pkgbase = wine-lol-staging optdepends = lib32-vulkan-icd-loader optdepends = sdl2 optdepends = lib32-sdl2 - optdepends = vkd3d - optdepends = lib32-vkd3d optdepends = sane optdepends = libgphoto2 - optdepends = gsm optdepends = ffmpeg optdepends = cups optdepends = samba @@ -153,19 +111,17 @@ pkgbase = wine-lol-staging options = staticlibs options = !lto options = !strip - source = git+https://github.com/wine-staging/wine-staging.git#tag=v8.1 - source = git+https://github.com/wine-mirror/wine.git#tag=wine-8.1 - source = 0002-LoL-6.17+-syscall-fix.patch - source = 0003-LoL-abi.vsyscall32-alternative_patch_by_using_a_fake_cs_segment.patch + source = git+https://github.com/wine-staging/wine-staging.git#tag=v8.2 + source = git+https://github.com/wine-mirror/wine.git#tag=wine-8.2 source = 0004-LoL-broken-client-update-fix.patch source = 0005-LoL-client-slow-start-fix.patch - source = 0006-LoL-abi-vsyscall32-disable-vDSO.patch + source = 0007-ntdll-stub-NtSetInformationThread-ThreadPriority.patch + source = 0008-ntdll-nopguard-call_vectored_handlers.patch sha256sums = SKIP sha256sums = SKIP - sha256sums = c127907db75cd8575da27198c8f46aa19dd2a219324e7491761f206f3ce91601 - sha256sums = c2cb9265567dfe8c9f148e237910792cad7666d9d3cbf68d8717076030cddc92 sha256sums = 7607a84fd357a86bc8fb59d2cf002a3e471bd8ec78ecdb844b0b77b1ae6d11a0 sha256sums = 49dfbf7546c00958e2b426a61371eedf0119471e9998b354595d5c0ce6dab48b - sha256sums = fe33c51d492de4685b515781ac157a5d02f8048a528404b4fd8319cfc7f5cf25 + sha256sums = fc4fba4db2f691e3686fa84dd81935f0eb183d7c5c1215aba33a575b42b38cb5 + sha256sums = 2075ddc417ddd11954f76be753c88e04db28f0b3937e60508f178630dd5763eb pkgname = wine-lol-staging diff --git a/0002-LoL-6.17+-syscall-fix.patch b/0002-LoL-6.17+-syscall-fix.patch deleted file mode 100644 index 7bf74f30ee42..000000000000 --- a/0002-LoL-6.17+-syscall-fix.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/tools/winebuild/import.c b/tools/winebuild/import.c -index c876d51..654c84d 100644 ---- a/tools/winebuild/import.c -+++ b/tools/winebuild/import.c -@@ -1401,19 +1401,9 @@ void output_syscalls( DLLSPEC *spec ) - switch (target.cpu) - { - case CPU_i386: -- if (UsePIC) -- { -- output( "\tcall %s\n", asm_name("__wine_spec_get_pc_thunk_eax") ); -- output( "1:\tmovl %s-1b(%%eax),%%edx\n", asm_name("__wine_syscall_dispatcher") ); -- output( "\tmovl $%u,%%eax\n", id ); -- needs_get_pc_thunk = 1; -- } -- else -- { -- output( "\tmovl $%u,%%eax\n", id ); -- output( "\tmovl $%s,%%edx\n", asm_name("__wine_syscall") ); -- } -- output( "\tcall *%%edx\n" ); -+ output( "\t.byte 0xb8\n" ); /* mov eax, SYSCALL */ -+ output( "\t.long %d\n", id ); -+ output( "\t.byte 0x64,0xff,0x15,0xc0,0x00,0x00,0x00\n" ); /* call dword ptr fs:[0C0h] */ - output( "\tret $%u\n", odp->type == TYPE_STDCALL ? get_args_size( odp ) : 0 ); - break; - case CPU_x86_64: diff --git a/0003-LoL-abi.vsyscall32-alternative_patch_by_using_a_fake_cs_segment.patch b/0003-LoL-abi.vsyscall32-alternative_patch_by_using_a_fake_cs_segment.patch deleted file mode 100644 index 55917702ac29..000000000000 --- a/0003-LoL-abi.vsyscall32-alternative_patch_by_using_a_fake_cs_segment.patch +++ /dev/null @@ -1,148 +0,0 @@ -diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c -index e2a6148..574e74e 100644 ---- a/dlls/ntdll/unix/signal_i386.c -+++ b/dlls/ntdll/unix/signal_i386.c -@@ -386,6 +386,8 @@ static inline int set_thread_area( struct modify_ldt_s *ptr ) - - static ULONG first_ldt_entry = 32; - -+static int wine_cs; -+ - enum i386_trap_code - { - #if defined(__FreeBSD__) || defined (__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) -@@ -502,6 +504,11 @@ static inline WORD get_cs(void) { WORD res; __asm__( "movw %%cs,%0" : "=r" (res) - static inline WORD get_ds(void) { WORD res; __asm__( "movw %%ds,%0" : "=r" (res) ); return res; } - static inline WORD get_fs(void) { WORD res; __asm__( "movw %%fs,%0" : "=r" (res) ); return res; } - static inline WORD get_gs(void) { WORD res; __asm__( "movw %%gs,%0" : "=r" (res) ); return res; } -+static CDECL void __attribute((naked)) set_cs( DWORD val ) { -+ asm ( "movl 4(%esp),%eax\n\t" -+ "xchg 0(%esp),%eax\n\t" -+ "push %eax\n\t" -+ "lret"); } - static inline void set_fs( WORD val ) { __asm__( "mov %0,%%fs" :: "r" (val)); } - static inline void set_gs( WORD val ) { __asm__( "mov %0,%%gs" :: "r" (val)); } - -@@ -679,7 +686,8 @@ static inline void *init_handler( const ucontext_t *sigcontext ) - } - #endif - -- if (!ldt_is_system(CS_sig(sigcontext)) || !ldt_is_system(SS_sig(sigcontext))) /* 16-bit mode */ -+ if ((CS_sig(sigcontext) != wine_cs && !ldt_is_system(CS_sig(sigcontext))) || -+ !ldt_is_system(SS_sig(sigcontext))) /* 16-bit mode */ - { - /* - * Win16 or DOS protected mode. Note that during switch -@@ -1170,7 +1178,7 @@ static inline DWORD is_privileged_instr( CONTEXT *context ) - BYTE instr[16]; - unsigned int i, len, prefix_count = 0; - -- if (!ldt_is_system( context->SegCs )) return 0; -+ if (context->SegCs != wine_cs && !ldt_is_system( context->SegCs )) return 0; - len = virtual_uninterrupted_read_memory( (BYTE *)context->Eip, instr, sizeof(instr) ); - - for (i = 0; i < len; i++) switch (instr[i]) -@@ -1237,7 +1245,7 @@ static inline BOOL check_invalid_gs( ucontext_t *sigcontext, CONTEXT *context ) - WORD system_gs = x86_thread_data()->gs; - - if (context->SegGs == system_gs) return FALSE; -- if (!ldt_is_system( context->SegCs )) return FALSE; -+ if (context->SegCs != wine_cs && !ldt_is_system( context->SegCs )) return FALSE; - /* only handle faults in system libraries */ - if (virtual_is_valid_code_address( instr, 1 )) return FALSE; - -@@ -1478,7 +1486,7 @@ C_ASSERT( (offsetof(struct stack_layout, xstate) == sizeof(struct stack_layout)) - EIP_sig(sigcontext) = (DWORD)pKiUserExceptionDispatcher; - /* clear single-step, direction, and align check flag */ - EFL_sig(sigcontext) &= ~(0x100|0x400|0x40000); -- CS_sig(sigcontext) = get_cs(); -+ CS_sig(sigcontext) = wine_cs; - DS_sig(sigcontext) = get_ds(); - ES_sig(sigcontext) = get_ds(); - FS_sig(sigcontext) = get_fs(); -@@ -2143,6 +2151,36 @@ static void ldt_set_entry( WORD sel, LDT_ENTRY entry ) - LDT_FLAGS_ALLOCATED); - } - -+static WORD internal_ldt_alloc_entry(void) -+{ -+ for (int idx = first_ldt_entry; idx < LDT_SIZE; idx++) -+ { -+ if (__wine_ldt_copy.flags[idx] & LDT_FLAGS_ALLOCATED) continue; -+ -+ /* mark selector as allocated */ -+ __wine_ldt_copy.flags[idx] |= LDT_FLAGS_ALLOCATED; -+ return (idx << 3) | 7; -+ } -+ return 0; -+} -+ -+static inline void cs_init( int first_thread ) -+{ -+ LDT_ENTRY entry; -+ sigset_t sigset; -+ -+ /* no locking for first thread */ -+ if (!first_thread) server_enter_uninterrupted_section( &ldt_mutex, &sigset ); -+ if (!wine_cs) -+ wine_cs = internal_ldt_alloc_entry(); -+ -+ entry = ldt_make_entry( 0, (UINT_PTR)-1, LDT_FLAGS_CODE|LDT_FLAGS_32BIT ); -+ ldt_set_entry( wine_cs, entry ); -+ -+ if (!first_thread) server_leave_uninterrupted_section( &ldt_mutex, &sigset ); -+ set_cs( wine_cs ); -+} -+ - static void ldt_set_fs( WORD sel, TEB *teb ) - { - if (sel == gdt_fs_sel) -@@ -2260,38 +2298,35 @@ void signal_init_threading(void) - NTSTATUS signal_alloc_thread( TEB *teb ) - { - struct x86_thread_data *thread_data = (struct x86_thread_data *)&teb->GdiTebBatch; -+ static int first_thread = 1; - - if (!gdt_fs_sel) - { -- static int first_thread = 1; - sigset_t sigset; -- int idx; -+ WORD sel; - LDT_ENTRY entry = ldt_make_entry( teb, page_size - 1, LDT_FLAGS_DATA | LDT_FLAGS_32BIT ); - - if (first_thread) /* no locking for first thread */ - { - /* leave some space if libc is using the LDT for %gs */ - if (!is_gdt_sel( get_gs() )) first_ldt_entry = 512; -- idx = first_ldt_entry; -- ldt_set_entry( (idx << 3) | 7, entry ); -- first_thread = 0; -+ sel = (first_ldt_entry << 3) | 7; -+ ldt_set_entry( sel, entry ); - } - else - { - server_enter_uninterrupted_section( &ldt_mutex, &sigset ); -- for (idx = first_ldt_entry; idx < LDT_SIZE; idx++) -- { -- if (__wine_ldt_copy.flags[idx]) continue; -- ldt_set_entry( (idx << 3) | 7, entry ); -- break; -- } -+ sel = internal_ldt_alloc_entry(); -+ if (sel) ldt_set_entry( sel, entry ); - server_leave_uninterrupted_section( &ldt_mutex, &sigset ); -- if (idx == LDT_SIZE) return STATUS_TOO_MANY_THREADS; -+ if (!sel) return STATUS_TOO_MANY_THREADS; - } -- thread_data->fs = (idx << 3) | 7; -+ thread_data->fs = sel; - } - else thread_data->fs = gdt_fs_sel; - -+ cs_init( first_thread ); -+ first_thread = 0; - teb->WOW32Reserved = __wine_syscall_dispatcher; - return STATUS_SUCCESS; - } diff --git a/0006-LoL-abi-vsyscall32-disable-vDSO.patch b/0006-LoL-abi-vsyscall32-disable-vDSO.patch deleted file mode 100644 index 33c993a82382..000000000000 --- a/0006-LoL-abi-vsyscall32-disable-vDSO.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/loader/preloader.c b/loader/preloader.c -index d88964e9c4b..1ac8b9bd16b 100644 ---- a/loader/preloader.c -+++ b/loader/preloader.c -@@ -1460,7 +1460,7 @@ void* wld_start( void **stack ) - - i = 0; - /* delete sysinfo values if addresses conflict */ -- if (is_in_preload_range( av, AT_SYSINFO ) || is_in_preload_range( av, AT_SYSINFO_EHDR )) -+ if (1) - { - delete_av[i++].a_type = AT_SYSINFO; - delete_av[i++].a_type = AT_SYSINFO_EHDR; @@ -14,22 +14,16 @@ options=('staticlibs' '!lto' '!strip') source=("git+https://github.com/wine-staging/wine-staging.git#tag=v${_winever}" "git+https://github.com/wine-mirror/wine.git#tag=wine-${_winever}" - "0002-LoL-6.17+-syscall-fix.patch" - "0003-LoL-abi.vsyscall32-alternative_patch_by_using_a_fake_cs_segment.patch" "0004-LoL-broken-client-update-fix.patch" "0005-LoL-client-slow-start-fix.patch" - "0006-LoL-abi-vsyscall32-disable-vDSO.patch" "0007-ntdll-stub-NtSetInformationThread-ThreadPriority.patch" "0008-ntdll-nopguard-call_vectored_handlers.patch" ) sha256sums=('SKIP' 'SKIP' - 'c127907db75cd8575da27198c8f46aa19dd2a219324e7491761f206f3ce91601' - 'c2cb9265567dfe8c9f148e237910792cad7666d9d3cbf68d8717076030cddc92' '7607a84fd357a86bc8fb59d2cf002a3e471bd8ec78ecdb844b0b77b1ae6d11a0' '49dfbf7546c00958e2b426a61371eedf0119471e9998b354595d5c0ce6dab48b' - 'fe33c51d492de4685b515781ac157a5d02f8048a528404b4fd8319cfc7f5cf25' 'fc4fba4db2f691e3686fa84dd81935f0eb183d7c5c1215aba33a575b42b38cb5' '2075ddc417ddd11954f76be753c88e04db28f0b3937e60508f178630dd5763eb' ) @@ -115,14 +109,6 @@ prepare() { cd "${srcdir}/wine" - # Reverts syscall thunks so leagues stub.dll can hook them properly(?) - printf 'Apply 0002-LoL-6.17+-syscall-fix\n' - patch -Np1 < "${srcdir}/0002-LoL-6.17+-syscall-fix.patch" - - # Fakes cs segment, needs "sudo sysctl -w abi.vsyscall32=0" - printf 'Apply 0003-LoL-abi.vsyscall32\n' - patch -Np1 < "${srcdir}/0003-LoL-abi.vsyscall32-alternative_patch_by_using_a_fake_cs_segment.patch" - # Something with resolving long paths and symlinks, might not be needed if you keep your install in sane place ??? printf 'Apply 0004-LoL-broken-client-update-fix\n' patch -Np1 < "${srcdir}/0004-LoL-broken-client-update-fix.patch" @@ -131,10 +117,6 @@ prepare() { printf 'Apply 0005-LoL-client-slow-start-fix.patch\n' patch -Np1 < "${srcdir}/0005-LoL-client-slow-start-fix.patch" - # Disables vDSO in preelink, no need for "sudo sysctl -w abi.vsyscall32=0" - printf 'Apply 0006-LoL-abi-vsyscall32-disable-vDSO.patch\n' - patch -Np1 < "${srcdir}/0006-LoL-abi-vsyscall32-disable-vDSO.patch" - # Properly stub ThreadPriority for NtSetInformationThread printf 'Apply 0007-ntdll-stub-NtSetInformationThread-ThreadPriority.patch\n' patch -Np1 < "${srcdir}/0007-ntdll-stub-NtSetInformationThread-ThreadPriority.patch" diff --git a/wine-lol-staging.install b/wine-lol-staging.install index 8612960b4134..e69de29bb2d1 100755..100644 --- a/wine-lol-staging.install +++ b/wine-lol-staging.install @@ -1,17 +0,0 @@ -post_install() -{ - echo "+-----------------------------------------------------------------------------------+" - echo "| IMPORTANT! [x] |" - echo "+-----------------------------------------------------------------------------------+" - echo "| |" - echo "| 1. run 'sudo sysctl -w abi.vsyscall32=0' on each reboot before starting a game |" - echo "| |" - echo "| 2. run '/opt/wine-lol-staging/bin/wine' instead of regular 'wine' or add to PATH |" - echo "| |" - echo "+-----------------------------------------------------------------------------------+" -} - -post_upgrade() -{ - post_install -} |