diff options
author | Stefan Eßer <se@FreeBSD.org> | 1999-11-14 20:49:34 +0000 |
---|---|---|
committer | Stefan Eßer <se@FreeBSD.org> | 1999-11-14 20:49:34 +0000 |
commit | b0f8db3b556afaa63b3a5cddb46cb530934f4346 (patch) | |
tree | ebf1255ed0fdbdfe83d2470b5fa3f14fb3413c1f /emulators/wine | |
parent | 5d479405d6d201cc90da3fa49f66d918b5ea4eda (diff) | |
download | ports-b0f8db3b556afaa63b3a5cddb46cb530934f4346.tar.gz ports-b0f8db3b556afaa63b3a5cddb46cb530934f4346.zip |
Notes
Diffstat (limited to 'emulators/wine')
-rw-r--r-- | emulators/wine/Makefile | 31 | ||||
-rw-r--r-- | emulators/wine/distinfo | 2 | ||||
-rw-r--r-- | emulators/wine/files/README.patch | 40 | ||||
-rw-r--r-- | emulators/wine/files/install-patch-3.3-sys-sigtrap | 30 | ||||
-rw-r--r-- | emulators/wine/files/patch-ad | 24 | ||||
-rw-r--r-- | emulators/wine/files/patch-ba | 25 | ||||
-rw-r--r-- | emulators/wine/pkg-message | 4 | ||||
-rw-r--r-- | emulators/wine/pkg-plist | 9 |
8 files changed, 141 insertions, 24 deletions
diff --git a/emulators/wine/Makefile b/emulators/wine/Makefile index 1c459095f436..7c6db2e5e50e 100644 --- a/emulators/wine/Makefile +++ b/emulators/wine/Makefile @@ -6,9 +6,9 @@ # $FreeBSD$ # -DATE= 990426 +DATE= 991031 DISTNAME= Wine-${DATE} -PKGNAME= wine-99.04.26 +PKGNAME= wine-99.10.31 CATEGORIES= emulators MASTER_SITES= ${MASTER_SITE_SUNSITE} MASTER_SITE_SUBDIR= ALPHA/wine/development @@ -20,21 +20,32 @@ LIB_DEPENDS= Xpm.4:${PORTSDIR}/graphics/xpm WRKSRC= ${WRKDIR}/wine-${DATE} GNU_CONFIGURE= yes MAN1= wine.1 +MAN1= wine.conf.5 ONLY_FOR_ARCHS= i386 -pre-configure: - @${ECHO} "WINE_INI_GLOBAL \"${PREFIX}/etc/wine.conf\"" \ - >> ${WRKSRC}/autoconf.h +STRIP= +CFLAGS+= -g post-configure: cd ${WRKSRC} && make depend do-install: - ${INSTALL} -c ${WRKSRC}/wine ${PREFIX}/bin - -@${MKDIR} ${PREFIX}/etc 2>/dev/null + ${INSTALL_PROGRAM} ${WRKSRC}/wine ${PREFIX}/bin + ${INSTALL_PROGRAM} ${WRKSRC}/tools/fnt2bdf ${PREFIX}/bin + ${INSTALL_PROGRAM} ${WRKSRC}/windows/x11drv/wineclipsrv ${PREFIX}/bin + ${INSTALL_DATA} ${WRKSRC}/wine.ini ${PREFIX}/etc/wine.conf.sample [ -f ${PREFIX}/etc/wine.conf ] \ - || ${CP} ${WRKSRC}/wine.ini ${PREFIX}/etc/wine.conf - ${CP} ${WRKSRC}/wine.sym ${PREFIX}/etc - ${CP} ${WRKSRC}/documentation/wine.man ${PREFIX}/man/man1/wine.1 + || ${INSTALL_DATA} ${WRKSRC}/wine.ini ${PREFIX}/etc/wine.conf + ${INSTALL_DATA} ${WRKSRC}/wine.sym ${PREFIX}/etc + ${INSTALL_DATA} ${WRKSRC}/documentation/wine.man ${PREFIX}/man/man1/wine.1 + ${INSTALL_DATA} ${WRKSRC}/documentation/wine.conf.man ${PREFIX}/man/man5/wine.conf.5 + -@${MKDIR} ${PREFIX}/lib/wine 2>/dev/null + ${INSTALL_DATA} ${FILESDIR}/README.patch \ + ${FILESDIR}/patch-3.3-sys-ldtshare \ + ${FILESDIR}/patch-3.3-sys-sigtrap \ + ${PREFIX}/lib/wine + ${INSTALL_DATA} ${WRKSRC}/winedefault.reg ${PREFIX}/lib/wine/ + ${ECHO} + @${SED} s+%%PREFIX%%+${PREFIX}+g <${PKGMESSAGE} .include <bsd.port.mk> diff --git a/emulators/wine/distinfo b/emulators/wine/distinfo index 321880cea3c6..c54ccdcd7eb5 100644 --- a/emulators/wine/distinfo +++ b/emulators/wine/distinfo @@ -1 +1 @@ -MD5 (Wine-990426.tar.gz) = ddc5561393b7fedb02b933889658eb7f +MD5 (Wine-991031.tar.gz) = 80904e8933ac1a72fdf4c0a05f36d6be diff --git a/emulators/wine/files/README.patch b/emulators/wine/files/README.patch new file mode 100644 index 000000000000..1b9184b82c46 --- /dev/null +++ b/emulators/wine/files/README.patch @@ -0,0 +1,40 @@ +Here are two patches for FreeBSD's kernel that are necessary for wine +(well not strictly _necessary_ but without them parts of it won't work.) +They unfortunately didn't make it into the base distribution in time +for the 3.3 release code freeze... + +patch-3.3-sys-ldtshare: +make kernel threads (rfork(), which wine uses) share one LDT instead of +each having its own. this fixes the same problem that wine also had on +linux kernels before 2.2. + +patch-3.3-sys-sigtrap: +stop wine's SIGTRAP handler from being called in the sigreturn syscall, +causing problems for wine's internal debugger. (it would still +correctly show a crash backtrace but all commands that use single- +stepping failed.) + +Apply as follows: + + (cd /usr/src/sys && patch ) <patch-3.3-sys-ldtshare + (cd /usr/src/sys && patch ) <patch-3.3-sys-sigtrap + +then build a new kernel. (don't forget to include the options USER_LDT, +SYSVSHM, SYSVSEM, and SYSVMSG, wine needs these.) + +-current users: +someone of you :) needs to implement a runtime check in wine for the +FreeBSD version and based on that use/set the sc_gs and sc_fs values +in the sigcontext struct in signal handlers for versions >= 4.0. +(see the `wine signal handlers lose %fs on FreeBSD' thread on the +wine-devel list for details, can be read at +http://www.integrita.com/cgi-local/lwgate.pl/WINE-DEVEL/archives/1999-09/Subject/article-15.html +at least i ended up there when i searched it today. yes you could also +simply define FS_sig and GS_sig in wine's include/sig_context.h and be +done with it but the resulting wine would only work on 4.0 and +Alexandre (wine maintainer) didn't like that idea...) + +A LDT patch for -current is at http://www.freebsd.org/~luoqi +(not included since i don't know if it still applies), the sigtrap +patch looks like it could also apply to -current but i haven't tried. +(and if not, i guess a similar fix will be committed soon anyway.) diff --git a/emulators/wine/files/install-patch-3.3-sys-sigtrap b/emulators/wine/files/install-patch-3.3-sys-sigtrap new file mode 100644 index 000000000000..e3004884fd29 --- /dev/null +++ b/emulators/wine/files/install-patch-3.3-sys-sigtrap @@ -0,0 +1,30 @@ +Index: i386/i386/trap.c +=================================================================== +RCS file: /home/cvs/cvs/src/sys/i386/i386/trap.c,v +retrieving revision 1.133.2.1 +diff -u -u -r1.133.2.1 trap.c +--- trap.c 1999/08/29 16:05:56 1.133.2.1 ++++ trap.c 1999/09/10 14:42:21 +@@ -1041,6 +1084,7 @@ + int error; + int args[8]; + u_int code; ++ int tracedsyscall = ((frame.tf_eflags & PSL_T) && !(frame.tf_eflags & PSL_VM)); + + #ifdef DIAGNOSTIC + if (ISPL(frame.tf_cs) != SEL_UPL) +@@ -1135,10 +1179,12 @@ + break; + } + +- if ((frame.tf_eflags & PSL_T) && !(frame.tf_eflags & PSL_VM)) { ++ if (tracedsyscall) { + /* Traced syscall. */ + frame.tf_eflags &= ~PSL_T; +- trapsignal(p, SIGTRAP, 0); ++ /* tell the signal handler this is a trace trap */ ++ frame.tf_trapno = T_TRCTRAP; ++ trapsignal(p, SIGTRAP, T_TRCTRAP); + } + + userret(p, &frame, sticks); diff --git a/emulators/wine/files/patch-ad b/emulators/wine/files/patch-ad index 4dd01c257b50..a66a526cfef1 100644 --- a/emulators/wine/files/patch-ad +++ b/emulators/wine/files/patch-ad @@ -1,32 +1,32 @@ -*** wine.ini.orig Wed Jul 17 22:00:24 1996 ---- wine.ini Mon Aug 12 19:51:38 1996 +*** wine.ini.orig Sun Oct 31 03:23:49 1999 +--- wine.ini Sat Nov 13 13:36:18 1999 *************** -*** 35,39 **** +*** 53,57 **** Temp=e:\ Path=c:\windows;c:\windows\system;e:\;e:\test;f:\ ! SymbolTableFile=./wine.sym - [options] ---- 35,39 ---- + # <wineconf> +--- 53,57 ---- Temp=e:\ Path=c:\windows;c:\windows\system;e:\;e:\test;f:\ ! SymbolTableFile=/usr/local/etc/wine.sym - [options] + # <wineconf> *************** -*** 54,64 **** +*** 107,117 **** [serialports] -! Com1=/dev/cua0 -! Com2=/dev/cua1 +! Com1=/dev/ttyS0 +! Com2=/dev/ttyS1 Com3=/dev/modem,38400 Com4=/dev/modem [parallelports] ! Lpt1=/dev/lp0 - [spy] ---- 54,64 ---- + [spooler] +--- 107,117 ---- [serialports] ! Com1=/dev/ttyd0 @@ -37,4 +37,4 @@ [parallelports] ! Lpt1=/dev/lpt0 - [spy] + [spooler] diff --git a/emulators/wine/files/patch-ba b/emulators/wine/files/patch-ba new file mode 100644 index 000000000000..aa646a301660 --- /dev/null +++ b/emulators/wine/files/patch-ba @@ -0,0 +1,25 @@ +Index: Make.rules.in +=================================================================== +RCS file: /home/wine/wine/Make.rules.in,v +retrieving revision 1.17 +diff -u -u -r1.17 Make.rules.in +--- Make.rules.in 1999/08/15 12:45:53 1.17 ++++ Make.rules.in 1999/09/24 23:39:10 +@@ -21,7 +21,7 @@ + CC = @CC@ + CPP = @CPP@ + CFLAGS = @CFLAGS@ +-OPTIONS = @OPTIONS@ -D_REENTRANT ++OPTIONS = @OPTIONS@ -D_REENTRANT -D_THREAD_SAFE + X_CFLAGS = @X_CFLAGS@ + X_LIBS = @X_LIBS@ + XLIB = @X_PRE_LIBS@ @XLIB@ @X_EXTRA_LIBS@ +@@ -81,7 +81,7 @@ + + # Implicit rules + +-.SUFFIXES: ++#.SUFFIXES: + .SUFFIXES: .rc .res .spec .spec.c .spec.o .glue.c $(SUFFIXES) + + .c.o: diff --git a/emulators/wine/pkg-message b/emulators/wine/pkg-message new file mode 100644 index 000000000000..e0bfeba20b92 --- /dev/null +++ b/emulators/wine/pkg-message @@ -0,0 +1,4 @@ +In order to use wine you need to build and install a new kernel with +options USER_LDT, SYSVSHM, SYSVSEM, and SYSVMSG. Before you do that, +you may want to apply the patches in %%PREFIX%%/lib/wine to your +kernel sources, see the README.patch there. diff --git a/emulators/wine/pkg-plist b/emulators/wine/pkg-plist index 8489a54c41a8..3658135db9cd 100644 --- a/emulators/wine/pkg-plist +++ b/emulators/wine/pkg-plist @@ -1,3 +1,10 @@ bin/wine -etc/wine.conf +bin/fnt2bdf +bin/wineclipsrv +etc/wine.conf.sample etc/wine.sym +lib/wine/README.patch +lib/wine/patch-3.3-sys-ldtshare +lib/wine/patch-3.3-sys-sigtrap +lib/wine/winedefault.reg +@dirrm lib/wine |