summaryrefslogtreecommitdiff
path: root/user/wine
diff options
context:
space:
mode:
authorCyberLeo <cyberleo@cyberleo.net>2020-03-28 05:45:52 -0500
committerCyberLeo <cyberleo@cyberleo.net>2020-03-28 05:45:52 -0500
commit9297468fa579836e3a6a381b798feb6b78217c2d (patch)
tree53168212f427afbcf0693b534530a4af803152e9 /user/wine
parenta63cc05c53a6f4c22422dc8c69808b14d87a6f6e (diff)
parentda5a69b65a8791fffa6e93366ee585f87eff136d (diff)
downloadpackages-9297468fa579836e3a6a381b798feb6b78217c2d.tar.gz
packages-9297468fa579836e3a6a381b798feb6b78217c2d.tar.bz2
packages-9297468fa579836e3a6a381b798feb6b78217c2d.tar.xz
packages-9297468fa579836e3a6a381b798feb6b78217c2d.zip
Merge branch 'master' into zfs
Diffstat (limited to 'user/wine')
-rw-r--r--user/wine/APKBUILD23
-rw-r--r--user/wine/dlclose.patch66
-rw-r--r--user/wine/printer.patch13
3 files changed, 87 insertions, 15 deletions
diff --git a/user/wine/APKBUILD b/user/wine/APKBUILD
index ea9384603..87590ebb9 100644
--- a/user/wine/APKBUILD
+++ b/user/wine/APKBUILD
@@ -16,27 +16,25 @@ subpackages="$pkgname-libs $pkgname-dev $pkgname-doc"
depends_dev="$pkgname perl"
makedepends="fontconfig-dev openldap-dev libxslt-dev libxxf86dga-dev
libxcursor-dev libxrandr-dev libxdamage-dev mesa-dev flex-dev bison
- libpng-dev libjpeg-turbo-dev freetype-dev ncurses-dev libressl-dev
+ libpng-dev libjpeg-turbo-dev freetype-dev ncurses-dev openssl-dev
libxcomposite-dev libxrender-dev libxinerama-dev zlib-dev
cups-dev alsa-lib-dev libxml2-dev dbus-dev libxi-dev
gnutls-dev tiff-dev v4l-utils-dev udisks2-dev autoconf automake
openal-soft-dev pulseaudio-dev sane-dev eudev-dev mpg123-dev
- "
+ autoconf automake libtool"
source="http://dl.winehq.org/$pkgname/source/${pkgver%.[1-9]}/$pkgname-$pkgver.tar.xz
+ dlclose.patch
no-pie.patch
+ printer.patch
winhlp32-flex.patch
"
prepare() {
- cd "$builddir"
-
default_prepare
aclocal && autoheader && autoreconf
}
build() {
- cd "$builddir"
-
case "$CARCH" in
x86_64) _win64=--enable-win64;;
esac
@@ -70,13 +68,10 @@ build() {
}
check() {
- cd "$builddir"
make test
}
package() {
- local file
- cd "$builddir"
make -j1 DESTDIR="$pkgdir" install
case "$CARCH" in
@@ -88,21 +83,18 @@ package() {
"$pkgdir"/usr/bin/wineapploader
for file in msiexec notepad regedit regsvr32 wineboot \
- winecfg wineconsole winefile winemine winepath
- do
+ winecfg wineconsole winefile winemine winepath; do
rm "$pkgdir"/usr/bin/$file
ln -sf /usr/bin/wineapploader "$pkgdir"/usr/bin/$file
done
}
dev() {
- local file
default_dev
install -d "$subpkgdir"/usr/bin
for file in widl wmc wrc winebuild winedump function_grep.pl \
- winedbg winemaker winegcc winecpp wineg++
- do
+ winedbg winemaker winegcc winecpp wineg++; do
mv "$pkgdir"/usr/bin/$file "$subpkgdir"/usr/bin/
done
@@ -116,7 +108,6 @@ doc() {
}
libs() {
- local file ext
default_libs
install -d "$subpkgdir"/usr/lib/wine/fakedlls
@@ -131,5 +122,7 @@ libs() {
}
sha512sums="dd240525e389f841123a569fd2f9b8da698b7707bc0de408dfd60ae73c5e24d522abb42b76571c840df52c686fdeae56e0a9c69db2cd31f04cdb345feeacf1dc wine-4.0.1.tar.xz
+7e68ffc953f8858538b03d79b78b53b46e33dc01a474cf2eadaa726ff04918eb8675e80da1c82d2d61b12753f10fd6eda9114c5bc263fe373b6900f174bc246f dlclose.patch
a96b1e248447912ba522067b67fc920063f355f326eaf3fec760c79a1c6e46019fbdcfa8b95b9d389959a7e3d3ab794f9aaf78913ad6a73be32b5d34ca8a2267 no-pie.patch
+05dcc931a3bf5569f0314e3ede9df11a6f2a5806ed9ed66da094f3ee811af316046f177d5190c09007227a455e402b4dc747098fc82cd410574fb241cc5d53ba printer.patch
522a94a31fc459e80ea7dd05f7aee64f6ae666ec05236d06614acde118d5c60002e0f253ae75edb5f02164f22937ca89578504b690d1a5611bd60f703c8f0c00 winhlp32-flex.patch"
diff --git a/user/wine/dlclose.patch b/user/wine/dlclose.patch
new file mode 100644
index 000000000..a9844ff68
--- /dev/null
+++ b/user/wine/dlclose.patch
@@ -0,0 +1,66 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -1123,6 +1123,12 @@ then
+
+ dnl *** End of X11/Xlib.h check
+
++ dnl Check for the unload_after_dlclose libc
++ AC_RUN_IFELSE(
++ [AC_LANG_PROGRAM([[#include <dlfcn.h>]], [[dlclose(dlopen("./conftest", 0)); return 0;]])],
++ ac_save_CPPFLAGS="$ac_save_CPPFLAGS -DNO_UNLOAD_AFTER_DLCLOSE",
++ [])
++
+ dnl Check for the presence of OpenGL
+ opengl_msg=""
+ if test "x$with_opengl" != "xno"
+--- a/dlls/ntdll/loader.c
++++ b/dlls/ntdll/loader.c
+@@ -2289,6 +2289,13 @@
+ if (mod->Flags & LDR_WINE_INTERNAL && mod->SectionHandle == handle)
+ {
+ info.wm = CONTAINING_RECORD(mod, WINE_MODREF, ldr);
++#ifdef NO_UNLOAD_AFTER_DLCLOSE
++ if (info.wm->ldr.LoadCount == 0) {
++ RtlEnterCriticalSection( &loader_section );
++ info.wm->ldr.LoadCount = 1;
++ RtlLeaveCriticalSection( &loader_section );
++ }
++#endif
+ TRACE( "Found %s at %p for builtin %s\n",
+ debugstr_w(info.wm->ldr.FullDllName.Buffer), info.wm->ldr.BaseAddress, debugstr_w(path) );
+ break;
+@@ -3199,6 +3199,9 @@
+ * LdrShutdownProcess (NTDLL.@)
+ *
+ */
++#ifdef NO_UNLOAD_AFTER_DLCLOSE
++static void MODULE_FlushModrefs(void);
++#endif
+ void WINAPI LdrShutdownProcess(void)
+ {
+ TRACE("()\n");
+@@ -3194,6 +3203,12 @@
+ TRACE("()\n");
++#ifdef NO_UNLOAD_AFTER_DLCLOSE
++ RtlEnterCriticalSection( &loader_section );
++ process_detach();
++ MODULE_FlushModrefs();
++ RtlLeaveCriticalSection( &loader_section );
++#endif
+ process_detaching = TRUE;
+ process_detach();
+ }
+
+
+@@ -3384,7 +3398,11 @@
+ if ( free_lib_count <= 1 )
+ {
++#ifdef NO_UNLOAD_AFTER_DLCLOSE
++ TRACE("apply no-op dlclose hacks on this platform\n");
++#else
+ process_detach();
+ MODULE_FlushModrefs();
++#endif
+ }
+
+ TRACE("END\n");
diff --git a/user/wine/printer.patch b/user/wine/printer.patch
new file mode 100644
index 000000000..4910e4726
--- /dev/null
+++ b/user/wine/printer.patch
@@ -0,0 +1,13 @@
+ dlls/winspool.drv/info.c | 1 +
+ 1 file changed, 1 insertion(+)
+--- a/dlls/winspool.drv/info.c
++++ a/dlls/winspool.drv/info.c
+@@ -1620,6 +1620,7 @@ void WINSPOOL_LoadSystemPrinters(void)
+ #endif
+
+ /* FIXME: The init code should be moved to spoolsv.exe */
++ SetLastError(0);
+ init_mutex = CreateMutexW( NULL, TRUE, winspool_mutex_name );
+ if (!init_mutex)
+ {
+--