The Unofficial Ameol-Wine HOWTO Martin Rodgers v0.16, 2003-02-19 (your index root) This is a late draft of an unofficial Ameol Wine HOWTO. Introduction

(your index root)!introduction

For various reasons this draft release is codenamed the seed release.

This early version won't say much... 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 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. News

(your index root)!news on This is the seventh draft! It looks just about complete. The latest version number of this document is available from my . Also, the latest version of this document will be available in a number of formats: 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. 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: . What are CIX, Ameol and Wine? 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, .

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. 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. 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.) Getting started 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 . 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." Where to get it all

Here are the links to stuff that you'll need. Download a recent version of Wine and read the Wine HOWTO. Download Ameol.

The following sections will explain in more details. Installing and Configuring Wine Installing Wine

Installing is described in the Wine HOWTO. 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 section, at the end of this document. 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. Installing Ameol under Wine

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. 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 section. Using Ameol under Wine

The first thing Ameol will do is ask you to configure it. There are a few things to be be aware of. 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. Known Security risk

Ameol's telnet sends plain text over the network. Anyone sniffing your packets may discover your CIX password.

The offers a neat solution. 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. SSH and Ameol 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 .

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. 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 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! Troubleshooting

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). 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. Concluding Remarks Winding up

Obviously a lot more work needs to be done! Appendix A: Bits and Pieces Reasons for running Ameol under Windows

Many CIX and Unix users prefer to run Ameol under Windows. See the 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. Further reading

Some recommended reading for the curious reader. 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.) As an alternative to Ameol, Clink will feed Cix posts into a local news server. 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... Theory and practice of secure tunneling. General theory and practice of proxy servers. Suggestions for how the Linux community can effectively advocate the use of Linux. Cygwin

is a UNIX environment for Windows. It consists of two parts: A DLL (cygwin1.dll) which acts as a UNIX emulation layer providing substantial UNIX API functionality. A collection of tools, ported from UNIX, which provide UNIX/Linux look and feel.

The explains how Ameol under Windows can use Cygwin to securely connect to CIX. Appendix B: Examples

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"