The Unofficial Ameol-Wine HOWTO
Martin Rodgers
v0.16, 2003-02-19
This is a late draft of an unofficial Ameol Wine HOWTO.
______________________________________________________________________
Table of Contents
1. Introduction
1.1 Copyright and License
1.2 Disclaimer
1.3 News
1.4 Credits
1.5 Feedback
2. What are CIX, Ameol and Wine?
2.1 What is CIX?
2.2 What is Ameol?
2.3 What is Wine?
3. Getting started
3.1 Platform specific details
3.2 A few words about risk
3.3 Where to get it all
4. Installing and Configuring Wine
4.1 Installing Wine
4.2 Configuring Wine
4.3 Directory structure
5. Installing Ameol under Wine
5.1 Choosing Ameol versions
5.2 Installing Ameol
6. Using Ameol under Wine
6.1 Configuring Ameol
6.2 Modem access
6.3 Known Security risk
6.4 Apart from that...
7. SSH and Ameol
7.1 The ssh-ameol conference
7.2 The login script
7.3 Almost there...
8. Troubleshooting
8.1 (SQOscput)SQ appears in the terminal window
8.2 Tabbed dialogs
9. Concluding Remarks
9.1 Winding up
10. Appendix A: Bits and Pieces
10.1 Reasons for running Ameol under Windows
10.2 Further reading
10.3 Cygwin
11. Appendix B: Examples
11.1 A sample Wine configuration
______________________________________________________________________
1. Introduction
For various reasons this draft release is codenamed the seed release.
This early version won't say much...
1.1. Copyright and License
This document is Copyright (c) 2001 by Martin Rodgers. Permission is
granted to copy, distribute and/or modify this document under the
terms of the GNU Free Documentation License, Version 1.1 or any later
version published by the Free Software Foundation; with no Invariant
Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A
copy of the license is available at
http://www.gnu.org/copyleft/fdl.html
1.2. Disclaimer
Use the information in this document at your own risk. I disavow any
potential liability for the contents of this document. Use of the
concepts, examples, and/or other content of this document is entirely
at your own risk.
All copyrights are owned by their owners, unless specifically noted
otherwise. Use of a term in this document should not be regarded as
affecting the validity of any trademark or service mark.
Naming of particular products or brands should not be seen as
endorsements.
You are strongly recommended to take a backup of your system before
major installation and backups at regular intervals.
1.3. News
This is the seventh draft! It looks just about complete.
The latest version number of this document is available from my
homepage .
Also, the latest version of this document will be available in a
number of formats:
o HTML
o plain ASCII text
o LaTeX
o Postscript
o PDF
o Rich Text
o SGML source
1.4. Credits
In this version I have the pleasure of acknowledging the members of
the linux conference on CIX. In particular, Mark Morgan Lloyd and
Steve Lockhart.
Thanks also to Rebecca Downey for her helpful comments on my technical
writing. This document would be much smaller (i.e. terse) and less
clear without her constructive criticism.
1.5. Feedback
Feedback is most certainly welcome for this document. Without your
submissions and input, this document wouldn't exist. Please send your
additions, comments and criticisms to the following email address:
mcr@wildcard.demon.co.uk.
2. What are CIX, Ameol and Wine?
2.1. What is CIX?
CIX is the service provider for an on-line conferencing system. The
name CIX is short for "Compulink Information eXchange".
For rather obscure reasons, the CIX pages have moved to the parent
company's website, Nextra UK.
You'll need an account. As CIX is a commercial service, you'll have
to pay to signup and for the time that you're logged in. CIX charges
are by the minute, with monthly billing.
2.2. What is Ameol?
Ameol is the offical offline reader (OLR for short) for CIX. Working
offline allows you to create, read, reply to conferencing/email
messages, while not connected to the Internet.
This will minimise time connected to CIX, and so reduce the size of
your CIX bills. Since the introduction of CIX offline line readers,
in the early 1990s, OLRs have become very popular on CIX.
The sourcecode to Ameol isn't available. Until that changes, which is
unlikely, only Ameol binaries will be available.
The name is short for A Most Excellent Offline Reader.
2.3. What is Wine?
Wine is an implementation of the Windows 3.x and Win32 APIs on top of
X and Unix. Wine provides both a development toolkit (Winelib) for
porting Windows sources to Unix and a program loader, allowing
unmodified Windows 3.1/95/NT binaries to run under Intel Unixes. Wine
works on most popular Intel Unixes, including Linux, FreeBSD, and
Solaris.
Wine does not require Microsoft Windows, as it is a completely
alternative implementation consisting of 100% Microsoft-free code, but
it can optionally use native system DLLs if they are available. Wine
comes with complete sources, documentation and examples and is freely
redistributable. (The licensing terms are similar to X11.)
3. Getting started
3.1. Platform specific details
While the advice given here isn't specific to Linux, that's the only
OS with which it has been tested. If you use something else that can
run Wine, then the same advice should apply.
If you've used Ameol with Wine for some other OS, please let me know
and I'll update this document. See the ``feedback section''.
3.2. A few words about risk
Please note that the Wine version may be significant. Try to use a
relatively recent version of Wine, but be aware that not all versions
of Wine may run Ameol equally well, if at all. I've sometimes
upgraded from a version of Wine that could run Ameol to a more recent
version which failed to run Ameol.
For example, at the time of writing I'm using codeweavers-
wine-20010626-4.rpm. Ameol installed and initially ran smoothly, but
the next time I booted my machine I found that tabbed dialogs didn't
work. I've not had that problem before, and the upgrading to next
version of Wine might fix it. However, I might then find another
problem, and it might not be so small.
This is a general risk with reverse engineering anything as complex as
the MS Windows API. Ameol is also complex software, so the two may
interact in unexpected ways.
You should consider this before installing and running a sensitive
application like Ameol on a platform which isn't directly supported.
At best, Ameol misbehaving could be inconvenient. At worst, it could
scramble your Ameol data, cause havoc online, embarrass you before all
your peers, or perhaps even violate the CIX Terms and Conditions and
result in the termination of your CIX account.
As someone once put it, "To err is human, but it takes a computer to
really cock things up."
3.3. Where to get it all
Here are the links to stuff that you'll need.
o Wine Download a recent version of Wine and
read the Wine HOWTO.
o Ameol Download Ameol.
o Cix
The following sections will explain in more details.
4. Installing and Configuring Wine
4.1. Installing Wine
Installing is described in the Wine HOWTO.
4.2. Configuring Wine
Please note that this setup doesn't rely on any existing Windows
files. Everything is created under Linux.
You can find my configuration file in the ``examples'' section, at the
end of this document.
4.3. Directory structure
Your Wine root directory can be placed almost anywhere, but for the
sake of simplicity, this document will refer to a single directory.
This will be called "/wine". This could even be a symbolic link to
the true location. If you prefer, you can replace any reference in
this document to "/wine" with the true path to the root of your Wine
directory.
A few directories must be created.
______________________________________________________________________
mkdir -p /wine/windows/system
mkdir -p /wine/windows/system32
mkdir -p /wine/temp
______________________________________________________________________
The resemblance to the MS Windows directory heirarchy is intentional.
5. Installing Ameol under Wine
5.1. Choosing Ameol versions
I've been able to install and run both the 16bit and 32bit versions of
Ameol. (Not both at the same time, of course!)
So the next step is to decide which version to download and use.
Download either a214_16.exe or a252_32.exe, store in "/wine/temp".
For convenience, this document will assume that you're using
a214_16.exe. I expect this version to be more likely to work with
Wine, but that'll depend on the version of Wine that you use.
Downloaded messages are stored in a database and whilst this is
compatible between 16-bit and 32-bit variants, in most versions it's
probably a good idea to verify this if you intend to run both variants
on the same messagebase.
5.2. Installing Ameol
Apart from one important warning (see below), installing Ameol is
pretty standard.
The installer must be run from a directory that Wine can see, so make
sure that the "/wine/temp" directory is included in the path, in the
configuration.
______________________________________________________________________
cd /wine/temp
wine ./a214_16.exe &
______________________________________________________________________
Caution!
When the Ameol installer asks you to install the verdana font, just
say no. This is the most critical part of the install, and if you
answer this question incorrectly the install will fail.
This isn't a problem when the installer runs under MS Windows, but it
is a problem when using Wine. See the ``Risks'' section.
6. Using Ameol under Wine
6.1. Configuring Ameol
The first thing Ameol will do is ask you to configure it. There are a
few things to be be aware of.
6.2. Modem access
You'll probably find that Ameol under Wine can't use your modem. This
appears to be a Wine issue, so it may change, but at the time of
writing, Wine doesn't appear to as support TAPI features that Ameol
expects.
The simple solution to this is to use telnet instead. Disable the
Use dial-up networking
options in the various Settings->Communications dialog tabs.
6.3. Known Security risk
Ameol's telnet sends plain text over the network. Anyone sniffing
your packets may discover your CIX password.
The ``ssh-ameol conference'' offers a neat solution.
6.4. Apart from that...
Apart from the above warning, using Ameol under Wine should be just
like using Ameol under MS Windows.
If you're new to Ameol, then you should read the tutorial. Ameol will
have installed this for you, in the Ameol message base.
Signup for CIX if you don't already have an account. Ameol can
automate this and will ask you, during the configuration procedure,
whether or not to do this.
7. SSH and Ameol
7.1. The ssh-ameol conference
I should mention the ssh-ameol conference here. You can telnet direct
to CIX, but using SSH is more secure. Unfortunately, Ameol doesn't
support the SSH protocol.
However, once logged in, you can join the ssh-ameol conference and
download the tools that'll allow Ameol to use SSH indirectly. Some
work will need to be done as the tools are designed for Windows and
the ``Cygwin tools''.
Perhaps a similar technique could be used with Unix-like systems, but
nobody appears to have done this - yet. Anyway, the standard Ameol
login script should be replaced with a script for SSH.
7.2. The login script
Here's the unmodified script for Cygwin from the ssh-ameol conference.
______________________________________________________________________
status "Executing Login Script"
pause 1000
waitfor "gin:"
status "Connected to Local Daemon"
putnocr "username^M"
waitfor "word:"
putnocr "password^M"
waitfor "$"
status "Connecting to Cix via SSH2"
putnocr "/bin/ssh -2 -e none qix@cix.co.uk^M"
if waitfor("user)","(yes/no)?")==1
status "ERROR Host Key not known!"
putnocr "no^M)"
status "Aborting Blink"
pause 1000
putnocr "exit^M"
status ""
end
hangup
endif
status "Sending Conferencing login name"
put name
waitfor "Password:"
status "Sending Conferencing password"
put password
______________________________________________________________________
7.3. Almost there...
I won't reproduce the ssh-ameol install instructions, as they're
specific to Cygwin. However, creating an account under Linux is a
standard administrative task.
One word of warning: Do not install your old Ameol data just by
copying the data over. This will upset the terminal part of Ameol.
Instead, selectively copy parts of your old data. I've found that
just copying the Data and Resumes directories works.
Unfortunately, there may be further obstacles. The next step should
configuring Ameol to telnet instead of direct dial, but this is only
possible if/when tabbed dialogs work perfectly. As you might suspect,
this is not always the case with Wine!
If you have more success than this, please let me know how!
8. Troubleshooting
8.1. "Oscput" appears in the terminal window
Mark Morgan Lloyd offers the following solution.
Oscput appears in the terminal window rather than scput, after which
the upload is screwed. It's a known problem when connecting via telnet
and presumably could occur on other types of link- the consensus is
that it's caused by a slow connection but allowing for the increase in
modem speed etc. over the last few years I think it's more likely to
be caused by a jerky one, or to be a bug in the telnet code in Ameol.
I don't know why, but the debugging profile cures the message-upload
problem. However, I've on one occasion seen an Oscput in a different
context that wasn't caught by the same hack- I can't remember the
details but it may have been when I was sending email with an
attachment (i.e. as distinct from binmail).
8.2. Tabbed dialogs
I've yet to see a version of Wine in which tabbed dialogs work. This
is inconvenient for Ameol users, as Ameol uses a number of such
dialogs for configuration.
However, Steve Lockhart has a solution:
Settings, Customise,
then click on the font tab, then select
Settings, Customise
again.
9. Concluding Remarks
9.1. Winding up
Obviously a lot more work needs to be done!
10. Appendix A: Bits and Pieces
10.1. Reasons for running Ameol under Windows
Many CIX and Unix users prefer to run Ameol under Windows. See the
``Risks'' section.
However, there are a few who are happy enough with Ameol and Wine.
This is a personal choice. Please read the Linux Advocacy HOWTO if
you disagree.
10.2. Further reading
Some recommended reading for the curious reader.
o Kestrel's Perch Mac
Jordan used to be a member of the CIX support team and was one of
the three cixen who assessed the practicality of porting Ameol to
the Mac. (The port was judged to be possible but of insufficient
commercial value.)
o Clink As an alternative to
Ameol, Clink will feed Cix posts into a local news server.
o CoSy This is the
conferencing system that Cix is based upon. You could, in theory,
use it as an alternative to Cix. However, getting Ameol to work
with it would have to be the subject of another HOWTO...
o Secure POP via SSH mini-HOWTO Theory and practice
of secure tunneling.
o Firewall and Proxy Server HOWTO General theory and
practice of proxy servers.
o Linux Advocacy mini-HOWTO Suggestions for how the
Linux community can effectively advocate the use of Linux.
10.3. Cygwin
Cygwin is a UNIX environment for Windows. It
consists of two parts:
o A DLL (cygwin1.dll) which acts as a UNIX emulation layer providing
substantial UNIX API functionality.
o A collection of tools, ported from UNIX, which provide UNIX/Linux
look and feel.
The ``ssh-ameol conference'' explains how Ameol under Windows can use
Cygwin to securely connect to CIX.
11. Appendix B: Examples
11.1. A sample Wine configuration
Here is my Wine configuration file. It works on my system, but you'll
need to tweak a few things, like the directories and filesystems. I
don't recommend changing too much, in case it breaks. It was
constructed by reading various tips in the linux conference on CIX,
and by a degree of trial and error.
I wish I could explain more, but I barely understand it myself!
______________________________________________________________________
WINE REGISTRY Version 2
;; All keys relative to \\Machine\\Software\\Wine\\Wine\\Config
;;
;; MS-DOS drives configuration
;;
;; Each section has the following format:
;; [Drive X]
;; "Path"="xxx" (Unix path for drive root)
;; "Type"="xxx" (supported types are 'floppy', 'hd', 'cdrom' and 'network')
;; "Label"="xxx" (drive label, at most 11 characters)
;; "Serial"="xxx" (serial number, 8 characters hexadecimal number)
;; "Filesystem"="xxx" (supported types are 'msdos'/'dos'/'fat', 'win95'/'vfat', 'unix')
;; This is the FS Wine is supposed to emulate on a certain
;; directory structure.
;; Recommended:
;; - "win95" for ext2fs, VFAT and FAT32
;; - "msdos" for FAT16 (ugly, upgrading to VFAT driver strongly recommended)
;; DON'T use "unix" unless you intend to port programs using Winelib !
;; "Device"="/dev/xx" (only if you want to allow raw device access)
;;
[Drive A]
"Path" = "/mnt/floppy"
"Type" = "floppy"
"Label" = "Floppy"
"Device" = "/dev/sdb"
[Drive C]
"Path" = "/wine"
"Type" = "hd"
"Label" = "MS-DOS"
"Filesystem" = "unix"
[Drive D]
"Path" = "/mnt/cdrom"
"Type" = "cdrom"
"Label" = "CD-Rom"
"Filesystem" = "win95"
; make sure that device is correct and has proper permissions !
"Device" = "/dev/cdrom"
[Drive E]
"Path" = "/usr/X11R6/bin"
"Type" = "hd"
"Label" = "Wine Drive"
"Filesystem" = "win95"
;[Drive F]
;"Path" = "/mnt/zip"
;"Type" = "floppy"
;"Label" = "ZIP"
;"Filesystem" = "win95"
[wine]
"Windows" = "c:\\windows"
"System" = "c:\\windows\\system"
"Temp" = "c:\\temp"
"Path" = "c:\\windows;c:\\windows\\system;c:\\windows\\system32;c:\\temp;e\\;c:\\Program Files\\Ameol2"
"Profile" = "c:\\windows\\Profiles\\Administrator"
"GraphicsDriver" = "x11drv"
; Wine doesn't pass directory symlinks to Windows programs by default.
; Enabling this may crash some programs that do recursive lookups of a whole
; subdir tree in case of a symlink pointing back to itself.
;"ShowDirSymlinks" = "1"
"ShellLinker" = "wineshelllink"
#
[DllDefaults]
"DefaultLoadOrder" = "native, builtin, so"
[DllOverrides]
"commdlg" = "builtin, native"
"comdlg32" = "builtin, native"
"ver" = "builtin, native"
"version" = "builtin, native"
"shell" = "builtin, native"
"shell32" = "builtin, native"
"lzexpand" = "builtin, native"
"lz32" = "builtin, native"
"comctl32" = "builtin, native"
"commctrl" = "builtin, native"
"wsock32" = "builtin"
"winsock" = "builtin"
"advapi32" = "builtin, native"
"crtdll" = "builtin, native"
"mpr" = "builtin, native"
"winspool.drv" = "builtin, native"
"ddraw" = "builtin, native"
"dinput" = "builtin, native"
"dsound" = "builtin, native"
"mmsystem" = "builtin"
"winmm" = "builtin"
"msvcrt" = "native, builtin"
"msvideo" = "builtin, native"
"msvfw32" = "builtin, native"
"mcicda.drv" = "builtin, native"
"mciseq.drv" = "builtin, native"
"mciwave.drv" = "builtin, native"
"mciavi.drv" = "native, builtin"
"mcianim.drv" = "native, builtin"
"msacm.drv" = "builtin, native"
"msacm" = "builtin, native"
"msacm32" = "builtin, native"
"midimap.drv" = "builtin, native"
"wnaspi32" = "builtin"
"icmp" = "builtin"
[x11drv]
; Number of colors to allocate from the system palette
"AllocSystemColors" = "100"
; Use a private color map
"PrivateColorMap" = "N"
; Favor correctness over speed in some graphics operations
"PerfectGraphics" = "N"
; Color depth to use on multi-depth screens
;;"ScreenDepth" = "16"
; Name of X11 display to use
;;"Display" = ":0.0"
; Allow the window manager to manage created windows
"Managed" = "N"
; Use a desktop window of 640x480 for Wine
;"Desktop" = "640x480"
; Use XFree86 DGA extension if present
; (make sure /dev/mem is accessible by you !)
"UseDGA" = "Y"
; Use XShm extension if present
"UseXShm" = "Y"
; Enable DirectX mouse grab
"DXGrab" = "N"
; Create the desktop window with a double-buffered visual
; (useful to play OpenGL games)
"DesktopDoubleBuffered" = "N"
; Code page used for captions in managed mode
; 0 means default ANSI code page (CP_ACP == 0)
"TextCP" = "0"
; Use this if you have more than one port for video on your setup
; (Wine uses for now the first 'input image' it finds).
;; "XVideoPort" = "43"
[fonts]
;Read documentation/fonts before adding aliases
"Resolution" = "96"
"Default" = "-adobe-times-"
[serialports]
"Com1" = "/dev/modem"
;"Com2" = "/dev/ttyS1"
;"Com3" = "/dev/ttyS2"
;"Com4" = "/dev/modem"
[parallelports]
"Lpt1" = "/dev/lp0"
[spooler]
"LPT1:" = "|xpp"
"LPT2:" = "|gs -sDEVICE=bj200 -sOutputFile=/tmp/fred -q -"
"LPT3:" = "/dev/lp3"
[ports]
;"read" = "0x779,0x379,0x280-0x2a0"
; "write" = "0x779,0x379,0x280-0x2a0"
[spy]
"Exclude" = "WM_SIZE;WM_TIMER;"
[registry]
;These are all booleans. Y/y/T/t/1 are true, N/n/F/f/0 are false.
;Defaults are read all, write to Home
; Global registries (stored in /etc)
"LoadGlobalRegistryFiles" = "Y"
; Home registries (stored in ~user/.wine/)
"LoadHomeRegistryFiles" = "Y"
; Load Windows registries from the Windows directory
"LoadWindowsRegistryFiles" = "Y"
; TRY to write all changes to home registries
"WritetoHomeRegistryFiles" = "Y"
; Registry periodic save timeout in seconds
; "PeriodicSave" = "600"
; Save only modified keys
"SaveOnlyUpdatedKeys" = "Y"
[Tweak.Layout]
;; supported styles are 'Win31'(default), 'Win95', 'Win98'
"WineLook" = "Win98"
[Console]
;"Drivers" = "tty"
;"XtermProg" = "nxterm"
;"InitialRows" = "25"
;"InitialColumns" = "80"
;"TerminalType" = "nxterm"
[Clipboard]
"ClearAllSelections" = "0"
"PersistentSelection" = "1"
[WinMM]
"Drivers" = "wineoss.drv"
"WaveMapper" = "msacm.drv"
"MidiMapper" = "midimap.drv"
______________________________________________________________________