Subject: Linux Word Perfect Office 2000 on NetBSD?
To: None <port-i386@netbsd.org>
From: Duncan McEwan <duncan@mcs.vuw.ac.nz>
List: port-i386
Date: 11/01/2001 11:10:13
We've had WordPerfect 8.0 running quite happily on our NetBSD systems, mostly
so that people could deal with the inevitable MS-Word documents that management
insist on sending around :-(

Unfortunately importation of .doc files broke with the passing of 1B seconds
since the epoch back in September.  As best as we can tell the problem is
something to do with the licencing of the conversion software - we don't know
anything about this licensing, so presumably it must have been bundled with the
purchace of WP8 for linux.

Rather than spend time trying to work around that problem we decided to upgrade
to WP Office 2000.  My strategy was to install it on a linux box and then copy
the files that were installed over to our NetBSD systems.

So I was ... surprised ... when I noticed that as part of the installation of
WPO 2000 for Linux, a version of Wine got installed :-( It appears that this
new WPO is simply the windows version bundled together with a version of wine
"tuned for wpo".

Does anyone have any idea how likely it is that I can make this work on NetBSD?
I note that the versions of wine in the NetBSD package source are marked as not
working on ELF systems.  I also vaguely recall reading of some problems with a
native wine due to lack of native kernel threads in NetBSD but maybe I'm
misremembering.

I have no idea whether a linux wine binary can be made to work under linux
emulation.  When I run wordperfect, it exits very quickly with the error
message

     sendmsg: Bad address

I've tracked this message to the wine that gets run by the wordperfect script
If I ktrace the wine process the end of the kdump output looks like this.  I
can make the full ktrace output (only 60K) available if anyone has some clues
and would like to see more.

  ...
  6542 wine     CALL  socketcall(0x11,0xbfbfd370)
  6544 wineserver CALL  gettimeofday(0xbfbfd17c,0)
  6544 wineserver RET   gettimeofday 0
  6544 wineserver CALL  getpid
  6544 wineserver RET   getpid 6544/0x1990
  6544 wineserver CALL  stat(0xbfbfd208,0xbfbfd0fc)
  6544 wineserver NAMI  "/emul/linux/tmp/filecx9xFV"
  6544 wineserver NAMI  "/tmp/filecx9xFV"
  6544 wineserver RET   stat -1 errno -2 No such file or directory
  6544 wineserver CALL  open(0x481bfc10,0xc2,0x180)
  6544 wineserver NAMI  "/emul/linux/tmp"
  6544 wineserver NAMI  "/tmp/filecx9xFV"
  6544 wineserver RET   open 7
  6544 wineserver CALL  unlink(0x481bfc10)
  6544 wineserver NAMI  "/emul/linux/tmp/filecx9xFV"
  6544 wineserver NAMI  "/tmp/filecx9xFV"
  6544 wineserver RET   unlink 0
  6544 wineserver CALL  ftruncate(0x7,0x2000)
  6544 wineserver RET   ftruncate 0
  6544 wineserver CALL  old_mmap(0xbfbfd220)
  6544 wineserver RET   old_mmap 1208418304/0x48070000
  6544 wineserver CALL  fcntl(0x4,0x3,0)
  6544 wineserver RET   fcntl 2
  6544 wineserver CALL  fcntl(0x4,0x4,0x802)
  6544 wineserver RET   fcntl 0
  6544 wineserver CALL  socketcall(0x10,0xbfbfd208)
  6544 wineserver RET   socketcall -1 errno -14 Bad address
  6544 wineserver CALL  write(0x2,0xbfbfa7a8,0x15)
  6544 wineserver GIO   fd 2 wrote 21 bytes
       "sendmsg: Bad address
       "
  6544 wineserver RET   write 21/0x15
  6544 wineserver CALL  gettimeofday(0x805e1b0,0)
  6544 wineserver RET   gettimeofday 0
  6544 wineserver CALL  close(0x5)
  6544 wineserver RET   close 0
  6544 wineserver CALL  close(0x6)
  6544 wineserver RET   close 0
  6544 wineserver CALL  close(0x3)
  6544 wineserver RET   close 0
  6544 wineserver CALL  munmap(0x48070000,0x2000)
  6544 wineserver RET   munmap 0
  6544 wineserver CALL  close(0x4)
  6544 wineserver RET   close 0
  6542 wine     RET   socketcall 0
  6544 wineserver CALL  unlink(0x805a26a)
  6544 wineserver NAMI  "socket"
  6542 wine     CALL  close(0x3)
  6542 wine     RET   close 0
  6544 wineserver RET   unlink 0
  6542 wine     CALL  exit(0)
  6544 wineserver CALL  exit(0)

I'm not that confident that this can be made to work, but NetBSD's linux
emulation capabilities have surprised/delighted me in the past, so I thought it
would be worth asking...!

Thanks,

Duncan