Frontier on Wine
Following the lead of Chris Double who got Radio Userland to run on Wine, I have now gotten the basic windows install of Frontier to run on Linux using Wine. It’s currently something that takes a bit of patience to do and should not be relied upon to serve anything important.
***How to do it
- Install a recent build of wine. Anything since the 2003-04-08 release is probably new enough. If there’s a package for your distro, you probably want that. If not build from source. To be difficult, I wanted a packaged version for my Debian Woody (stable – read not really bleeding edge) machine, so I ended up grabbing the latest nightly debian source package from http://people.debian.org/~andreas/ and hacking at it till it built. If you’re using debian, you’ll need the winesetup package as well. Frontier doesn’t seem terribly particular about wine’s settings.
- Get the windows Frontier installer from frontier.userland.com and run it using “wine Frontier90Setup.exe”. I chose all of the default options. Launch Frontier from the final dialog box.
- When Frontier launches, you will just see a Wine-Systray window. Right click on it to bring up Frontier in a window. At least that’s what I’m seeing, since I’m running Afterstep, an old NextStep inspired desktop. In something a little more modern like KDE, the Frontier icon actually shows up in the app tray. (I’m getting the distinct feeling that Afterstep is a little 1995 ish in its capabilities.)
- Let the startup script run long enough to open the guest databases and enter their info in user.databases. Then make the change to system.startup.startScript reported by Chris:
if system.environment.isWindows user.webBrowser.winDefaultBrowserApp = "notepad.exe"
I suspect that we may be able to fix this by the addition of registry keys in the wine user registry.
- Complile this, save Frontier.root and all of the other databases, and quit Frontier.
- Make sure you’re in the Userland directory and start Frontier from the command line using “wine Frontier.exe 2>&1 >/dev/null &” (this is a bash command that supresses all the error output). Frontier should run through the entire startup script now, and at some point go to 5 threads and be ready to serve hits on the admin (port 5336) website.
- Since the first run of Frontier ‘failed’, we need to add an admin user. Jump to the admin membership group (cmd-j admin) and add a user:
users foo@example.com hitcount 0 number lastVisit clock.now() password pw binary personalInfo name foo string
You should now be able to log into http://127.0.0.1/setupFrontier with the email and password that you supplied. Run through the setup as normal.
- The final tweak is to get the port 80 webserver running. Since we’re running this on unix, non-root users can’t listen on the webserver port. This is the same problem as has been solved by Frontier-OSX users. You can either setup apache to proxy requests or use the kernel ipchains/iptables service to portforward for you. I set user.inetd.config.http.port to 8000 and user.inetd.config.http.apparentPort to 80, then set apache to forward all traffic for http://wine.wiredfool.com to Frontier.
***Bugs and other issues
This is certainly not a production system yet. I’ve noticed issues ranging from cosmetic to data loss.
- [modifier]-double click sometimes hangs wine or the X server.
- Sometimes clicking on a window close box for user.databases or system.temp generates an attempt to save the table. That fails, then the table is deleted. Deleting system.temp generally causes frontier to Function very badly.
- 2 way dialogs that should be ok/cancel are cancel/retry.
- Outline/table display has lots of artifacts and dirty redraws.
- Font handling is very tempermental. The same line sometimes has multiple fonts per character.
- Performance is decent for webserving, not all that good for console access. I don’t think I’d want to use it all day, but it’s certainly better than timbuktu/vnc.