add emulators/wine (WIP)
This commit is contained in:
commit
6ed82ef87d
78
emulators/wine/Makefile
Normal file
78
emulators/wine/Makefile
Normal file
@ -0,0 +1,78 @@
|
||||
V = 7.2
|
||||
COMMENT = compatibility layer to run Windows applications
|
||||
DISTNAME = wine-${V}
|
||||
|
||||
SHARED_LIBS += wine 1.0 # 1.0
|
||||
|
||||
CATEGORIES = emulators
|
||||
|
||||
HOMEPAGE = https://www.winehq.org/
|
||||
|
||||
MAINTAINER = Jan Klemkow <j.klemkow@wemelug.de>
|
||||
|
||||
# LGPL
|
||||
PERMIT_PACKAGE = Yes
|
||||
|
||||
WANTLIB += ${COMPILER_LIBCXX} X11 Xau c c++abi m pthread xcb xcb-render
|
||||
WANTLIB += xcb-shm Xdmcp
|
||||
|
||||
MASTER_SITES = https://dl.winehq.org/wine/source/7.x/
|
||||
EXTRACT_SUFX = .tar.xz
|
||||
|
||||
#COMPILER = ports-gcc
|
||||
#MODULES = ???
|
||||
|
||||
#BUILD_DEPENDS = devel/bison
|
||||
#RUN_DEPENDS = ???
|
||||
BUILD_DEPENDS = devel/bison
|
||||
|
||||
#TEST_DEPENDS = ???
|
||||
|
||||
#MAKE_FLAGS = ???
|
||||
#MAKE_ENV = ???
|
||||
#FAKE_FLAGS = ???
|
||||
#TEST_FLAGS = ???
|
||||
|
||||
USE_GMAKE = Yes
|
||||
|
||||
CONFIGURE_STYLE = gnu
|
||||
|
||||
#CONFIGURE_SCRIPT = ??? (if other than configure)
|
||||
CONFIGURE_ARGS = --verbose \
|
||||
--disable-kerberos \
|
||||
--enable-win64 \
|
||||
--with-pthread \
|
||||
--without-capi \
|
||||
--without-coreaudio \
|
||||
--without-dbus \
|
||||
--without-gettext \
|
||||
--without-gettextpo \
|
||||
--without-gphoto \
|
||||
--without-gssapi \
|
||||
--without-gstreamer \
|
||||
--without-inotify \
|
||||
--without-krb5 \
|
||||
--without-ldap \
|
||||
--without-mingw \
|
||||
--without-netapi \
|
||||
--without-openal \
|
||||
--without-opencl \
|
||||
--without-osmesa \
|
||||
--without-oss \
|
||||
--without-pcap \
|
||||
--without-pulse \
|
||||
--without-sane \
|
||||
--without-udev \
|
||||
--without-usb \
|
||||
--without-v4l2 \
|
||||
--without-vkd3d \
|
||||
--without-vulkan
|
||||
|
||||
EXTRALIBS = -lX11 -lXau -lc -lc++abi -lm -lpthread -lxcb -lxcb-render -lxcb-shm -lXdmcp
|
||||
CONFIGURE_ENV = LDFLAGS="${LDFLAGS} -L${LOCALBASE}/lib -L${X11BASE}/lib ${EXTRALIBS} -Wl" \
|
||||
CPPFLAGS="${CFLAGS} -I${LOCALBASE}/include -I${X11BASE}/include" \
|
||||
CFLAGS="${CFLAGS} -I${LOCALBASE}/include -I${X11BASE}/include" \
|
||||
CPPBIN="$(CC)"
|
||||
|
||||
.include <bsd.port.mk>
|
||||
|
2
emulators/wine/distinfo
Normal file
2
emulators/wine/distinfo
Normal file
@ -0,0 +1,2 @@
|
||||
SHA256 (wine-7.2.tar.xz) = 38ZBUjyNvGZBaLYXREFjPZcSdUVr9n3i3KqZyNql7hU=
|
||||
SIZE (wine-7.2.tar.xz) = 27191032
|
11
emulators/wine/patches/patch-dlls_nsiproxy_sys_ip_c
Normal file
11
emulators/wine/patches/patch-dlls_nsiproxy_sys_ip_c
Normal file
@ -0,0 +1,11 @@
|
||||
Index: dlls/nsiproxy.sys/ip.c
|
||||
--- dlls/nsiproxy.sys/ip.c.orig
|
||||
+++ dlls/nsiproxy.sys/ip.c
|
||||
@@ -60,6 +60,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_NETINET_IF_ETHER_H
|
||||
+#include <net/if_arp.h>
|
||||
#include <netinet/if_ether.h>
|
||||
#endif
|
||||
|
21
emulators/wine/patches/patch-dlls_nsiproxy_sys_tcp_c
Normal file
21
emulators/wine/patches/patch-dlls_nsiproxy_sys_tcp_c
Normal file
@ -0,0 +1,21 @@
|
||||
Index: dlls/nsiproxy.sys/tcp.c
|
||||
--- dlls/nsiproxy.sys/tcp.c.orig
|
||||
+++ dlls/nsiproxy.sys/tcp.c
|
||||
@@ -43,6 +43,8 @@
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_NETINET_IN_PCB_H
|
||||
+#include <net/route.h>
|
||||
+#include <netinet/ip.h>
|
||||
#include <netinet/in_pcb.h>
|
||||
#endif
|
||||
|
||||
@@ -55,6 +57,8 @@
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_NETINET_TCP_VAR_H
|
||||
+#include <netinet/tcp.h>
|
||||
+#include <netinet/tcp_timer.h>
|
||||
#include <netinet/tcp_var.h>
|
||||
#endif
|
||||
|
12
emulators/wine/patches/patch-dlls_nsiproxy_sys_udp_c
Normal file
12
emulators/wine/patches/patch-dlls_nsiproxy_sys_udp_c
Normal file
@ -0,0 +1,12 @@
|
||||
Index: dlls/nsiproxy.sys/udp.c
|
||||
--- dlls/nsiproxy.sys/udp.c.orig
|
||||
+++ dlls/nsiproxy.sys/udp.c
|
||||
@@ -53,6 +53,8 @@
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_NETINET_IN_PCB_H
|
||||
+#include <net/route.h>
|
||||
+#include <netinet/ip.h>
|
||||
#include <netinet/in_pcb.h>
|
||||
#endif
|
||||
|
16
emulators/wine/patches/patch-dlls_ntdll_unix_loader_c
Normal file
16
emulators/wine/patches/patch-dlls_ntdll_unix_loader_c
Normal file
@ -0,0 +1,16 @@
|
||||
Force preloader to be built
|
||||
Index: dlls/ntdll/unix/loader.c
|
||||
--- dlls/ntdll/unix/loader.c.orig
|
||||
+++ dlls/ntdll/unix/loader.c
|
||||
@@ -367,11 +367,7 @@ SYSTEM_SERVICE_TABLE KeServiceDescriptorTable[4];
|
||||
static void fatal_error( const char *err, ... ) __attribute__((noreturn, format(printf,1,2)));
|
||||
#endif
|
||||
|
||||
-#if defined(linux) || defined(__APPLE__)
|
||||
static const BOOL use_preloader = TRUE;
|
||||
-#else
|
||||
-static const BOOL use_preloader = FALSE;
|
||||
-#endif
|
||||
|
||||
static char *argv0;
|
||||
static const char *bin_dir;
|
66
emulators/wine/patches/patch-dlls_ntdll_unix_signal_x86_64_c
Normal file
66
emulators/wine/patches/patch-dlls_ntdll_unix_signal_x86_64_c
Normal file
@ -0,0 +1,66 @@
|
||||
Index: dlls/ntdll/unix/signal_x86_64.c
|
||||
--- dlls/ntdll/unix/signal_x86_64.c.orig
|
||||
+++ dlls/ntdll/unix/signal_x86_64.c
|
||||
@@ -206,6 +206,39 @@ __ASM_GLOBAL_FUNC( alloc_fs_sel,
|
||||
#define FPU_sig(context) ((XMM_SAVE_AREA32 *)((context)->uc_mcontext.__fpregs))
|
||||
#define XState_sig(context) NULL
|
||||
|
||||
+#elif defined(__OpenBSD__)
|
||||
+
|
||||
+#include <amd64/trap.h>
|
||||
+
|
||||
+#define RAX_sig(context) ((context)->sc_rax)
|
||||
+#define RBX_sig(context) ((context)->sc_rbx)
|
||||
+#define RCX_sig(context) ((context)->sc_rcx)
|
||||
+#define RDX_sig(context) ((context)->sc_rdx)
|
||||
+#define RSI_sig(context) ((context)->sc_rsi)
|
||||
+#define RDI_sig(context) ((context)->sc_rdi)
|
||||
+#define RBP_sig(context) ((context)->sc_rbp)
|
||||
+#define R8_sig(context) ((context)->sc_r8)
|
||||
+#define R9_sig(context) ((context)->sc_r9)
|
||||
+#define R10_sig(context) ((context)->sc_r10)
|
||||
+#define R11_sig(context) ((context)->sc_r11)
|
||||
+#define R12_sig(context) ((context)->sc_r12)
|
||||
+#define R13_sig(context) ((context)->sc_r13)
|
||||
+#define R14_sig(context) ((context)->sc_r14)
|
||||
+#define R15_sig(context) ((context)->sc_r15)
|
||||
+#define CS_sig(context) ((context)->sc_cs)
|
||||
+#define DS_sig(context) ((context)->sc_ds)
|
||||
+#define ES_sig(context) ((context)->sc_es)
|
||||
+#define FS_sig(context) ((context)->sc_fs)
|
||||
+#define GS_sig(context) ((context)->sc_gs)
|
||||
+#define SS_sig(context) ((context)->sc_ss)
|
||||
+#define EFL_sig(context) ((context)->sc_rflags)
|
||||
+#define RIP_sig(context) ((context)->sc_rip)
|
||||
+#define RSP_sig(context) ((context)->sc_rsp)
|
||||
+#define TRAP_sig(context) ((context)->sc_trapno)
|
||||
+#define ERROR_sig(context) ((context)->sc_err)
|
||||
+#define FPU_sig(context) ((XMM_SAVE_AREA32 *)((context)->sc_fpstate))
|
||||
+#define XState_sig(context) NULL
|
||||
+
|
||||
#elif defined (__APPLE__)
|
||||
|
||||
#define RAX_sig(context) ((context)->uc_mcontext->__ss.__rax)
|
||||
@@ -258,8 +291,13 @@ enum i386_trap_code
|
||||
TRAP_x86_PAGEFLT = T_PAGEFLT, /* Page fault */
|
||||
TRAP_x86_ARITHTRAP = T_ARITHTRAP, /* Floating point exception */
|
||||
TRAP_x86_ALIGNFLT = T_ALIGNFLT, /* Alignment check exception */
|
||||
+#if defined(__OpenBSD__)
|
||||
+ TRAP_x86_MCHK = T_MCA, /* Machine check exception */
|
||||
+ TRAP_x86_CACHEFLT = T_XMM /* Cache flush exception */
|
||||
+#else
|
||||
TRAP_x86_MCHK = T_MCHK, /* Machine check exception */
|
||||
TRAP_x86_CACHEFLT = T_XMMFLT /* Cache flush exception */
|
||||
+#endif
|
||||
#else
|
||||
TRAP_x86_DIVIDE = 0, /* Division by zero exception */
|
||||
TRAP_x86_TRCTRAP = 1, /* Single-step exception */
|
||||
@@ -2931,6 +2969,8 @@ void signal_init_thread( TEB *teb )
|
||||
amd64_set_gsbase( teb );
|
||||
#elif defined(__NetBSD__)
|
||||
sysarch( X86_64_SET_GSBASE, &teb );
|
||||
+#elif defined(__OpenBSD__)
|
||||
+ sysarch( 0, &teb ); /* XXX: TODO */
|
||||
#elif defined (__APPLE__)
|
||||
__asm__ volatile (".byte 0x65\n\tmovq %0,%c1"
|
||||
:
|
47
emulators/wine/patches/patch-dlls_ntdll_unix_socket_c
Normal file
47
emulators/wine/patches/patch-dlls_ntdll_unix_socket_c
Normal file
@ -0,0 +1,47 @@
|
||||
Index: dlls/ntdll/unix/socket.c
|
||||
--- dlls/ntdll/unix/socket.c.orig
|
||||
+++ dlls/ntdll/unix/socket.c
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/ioctl.h>
|
||||
+#include <stdint.h>
|
||||
#include <unistd.h>
|
||||
#ifdef HAVE_IFADDRS_H
|
||||
# include <ifaddrs.h>
|
||||
@@ -1696,11 +1697,13 @@ NTSTATUS sock_ioctl( HANDLE handle, HANDLE event, PIO_
|
||||
case IOCTL_AFD_WINE_SET_IP_ADD_MEMBERSHIP:
|
||||
return do_setsockopt( handle, io, IPPROTO_IP, IP_ADD_MEMBERSHIP, in_buffer, in_size );
|
||||
|
||||
+#ifndef __OpenBSD__
|
||||
case IOCTL_AFD_WINE_SET_IP_ADD_SOURCE_MEMBERSHIP:
|
||||
return do_setsockopt( handle, io, IPPROTO_IP, IP_ADD_SOURCE_MEMBERSHIP, in_buffer, in_size );
|
||||
|
||||
case IOCTL_AFD_WINE_SET_IP_BLOCK_SOURCE:
|
||||
return do_setsockopt( handle, io, IPPROTO_IP, IP_BLOCK_SOURCE, in_buffer, in_size );
|
||||
+#endif
|
||||
|
||||
case IOCTL_AFD_WINE_GET_IP_DONTFRAGMENT:
|
||||
{
|
||||
@@ -1764,8 +1767,10 @@ NTSTATUS sock_ioctl( HANDLE handle, HANDLE event, PIO_
|
||||
case IOCTL_AFD_WINE_SET_IP_DROP_MEMBERSHIP:
|
||||
return do_setsockopt( handle, io, IPPROTO_IP, IP_DROP_MEMBERSHIP, in_buffer, in_size );
|
||||
|
||||
+#ifndef __OpenBSD__
|
||||
case IOCTL_AFD_WINE_SET_IP_DROP_SOURCE_MEMBERSHIP:
|
||||
return do_setsockopt( handle, io, IPPROTO_IP, IP_DROP_SOURCE_MEMBERSHIP, in_buffer, in_size );
|
||||
+#endif
|
||||
|
||||
#ifdef IP_HDRINCL
|
||||
case IOCTL_AFD_WINE_GET_IP_HDRINCL:
|
||||
@@ -1899,8 +1904,10 @@ NTSTATUS sock_ioctl( HANDLE handle, HANDLE event, PIO_
|
||||
case IOCTL_AFD_WINE_SET_IP_TTL:
|
||||
return do_setsockopt( handle, io, IPPROTO_IP, IP_TTL, in_buffer, in_size );
|
||||
|
||||
+#ifndef __OpenBSD__
|
||||
case IOCTL_AFD_WINE_SET_IP_UNBLOCK_SOURCE:
|
||||
return do_setsockopt( handle, io, IPPROTO_IP, IP_UNBLOCK_SOURCE, in_buffer, in_size );
|
||||
+#endif
|
||||
|
||||
#ifdef IP_UNICAST_IF
|
||||
case IOCTL_AFD_WINE_GET_IP_UNICAST_IF:
|
12
emulators/wine/patches/patch-dlls_ws2_32_unixlib_c
Normal file
12
emulators/wine/patches/patch-dlls_ws2_32_unixlib_c
Normal file
@ -0,0 +1,12 @@
|
||||
Index: dlls/ws2_32/unixlib.c
|
||||
--- dlls/ws2_32/unixlib.c.orig
|
||||
+++ dlls/ws2_32/unixlib.c
|
||||
@@ -109,6 +109,8 @@ static pthread_mutex_t host_mutex = PTHREAD_MUTEX_INIT
|
||||
|
||||
#define MAP(x) {WS_ ## x, x}
|
||||
|
||||
+#define AI_ALL 0x00000100 /* XXX Why do we need this here? */
|
||||
+
|
||||
static const int addrinfo_flag_map[][2] =
|
||||
{
|
||||
MAP( AI_PASSIVE ),
|
1
emulators/wine/pkg/DESCR
Normal file
1
emulators/wine/pkg/DESCR
Normal file
@ -0,0 +1 @@
|
||||
Run windows stuff on OpenBSD
|
3492
emulators/wine/pkg/PLIST
Normal file
3492
emulators/wine/pkg/PLIST
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user