Running TurboCash on Linux
When most businesses look to migrate part or all of their business across to Linux, the first thing they want to know is whether their financial systems will survive the move. And apart from a few notable exceptions (for example the SA-developed Cubit and others which come with a hefty price tag) the answer is no.
Over the 18 years of its existence TurboCash has established itself in a number of global markets including those of the UK and the Netherlands. Today its features include a point-of-sale system, asset tracking and all the standard accounting features you would expect. The only problem, for us however, is that it is written almost entirely in Delphi and doesn\’t run on Linux.
There is, however, a way to get TurboCash to run on Linux and although it is (for the moment) based on the use of the commercial CrossOver Office work is already been done to get it to run under Wine.
For those not familiar with TurboCash, it is an accounting program written almost completely in Delphi. TurboCash was originally developed by Pink Software, the same company that developed the very popular TurboCad.
Started in 1992, Wine is a Win32 application compatibility layer for Intel i386 UNIXes (Linux and BSD, for example). It implements the Win32 API, which means you can run an application without changing the binaries on Linux.
Wine was originally licensed under a BSD-type licence and a number of spinoffs of Wine have since been developed, most notably the commercial CodeWeavers\’ CrossOver Office (at work on porting office apps to Linux) and Transgaming\’s Cedega (at work on porting DirectX games to Linux). Wine subsequently switched to the Left-GPL or Library GPL licence.
Porting TurboCash to Linux
When it was initally planned to port TurboCash to Linux, Borland\’s Kylix was the first possible candidate. Unfortunately Kylix is very bug-ridden and memory-leak prone, so TurboCash on Linux was put to hold (especially after Borland\’s decision not to update and maintain Kylix).
At the time the to port TurboCash to Linux included Freepascal. But porting the Delphi code to Freepascal would be ardious. Another drawback was that you could only develop Freepascal applications through third party applications like Kdevelop. Unfortunately not a lot of those third party applications are available on Windows, the main — if not the only — TurboCash development base).
The other option was to look at using Wine and CrossOver Office.
The process of porting TurboCash to Wine (here) is somewhat strained because of Wine\’s incompatibility with BDE, the database normally used by Delphi applications. TurboCash uses BDE so porting to Wine was a considerable stumbling block until TurboCash uses another database.
With these issues in mind Mike van Niekerk and Pieter Valentijn, the main Dutch developer for TurboCash, started working on a CrossOver Office version that would work until a native Linux version of TurboCash is available.
Step-by-step to running TurboCash using CrossOver Office:
This uses CodeWeavers\’ CrossOver Office. It is a commercial application that you will need to pay for.
1. A Linux compiled with gcc2.9+
2. A running X-server.
3. CodeWeavers CrossOver Office. At least vertsion 2.1. Version 3 is recommended. Obtain it here. It will be referred to in the rest of this document as \”CXOffice\”. A 30 day trial is obtainable here
4. TurboCash 3.74 installer files. Obtain them here.
TurboCash will be referred to in the rest of this document as \”TC\”.
5. WineTestMenus.exe update program. Get it here
6. Be sure to install Internet Explorer 6 SP1 through CXOffice\’s setup program (we need those dlls installed by the IE-setup). If you do not know how to do this go to here.
7. Get the install script here.
8. Get the run script here.
The following is taken for granted:
You have already installed Linux with a running X-server. You have already installed CXOffice. You have already installed Internet Explorer. You know how to open a filebrowser. You know how to make a new text document, and to save it properly.
1. Edit the TCInstall.sh file with your editor of choice.
2. Change \”pathtowine=\”, \”binrootwinedir=\”, \”downloaddir=\”, \”tcexe=.//TCASH373aFullProgram.exe\”, \”mnuexe=.//WineTestMenu.exe\” to something more appropriate to your setup. To know which is which and see the comments in the text file.
3. Save the file.
4. Run the TCInstall.sh by executing it in a filebrowser, or in a console application.
5. Follow the on-screen instructions.
Setting up the run script
1. Edit the TurboCash.sh file with your editor of choice.
2. Change \”pathtowine=\” and \”instplace\” to something that is more appropriate to your setup
3. Save the file.
1. Run the TurboCash.sh by executing it in a filebrowser, or in a console application.
There is a known bug, however, which is caused by a Delphi \”undocumented feature\” (read bug) with regard to creating and destroying menus which results in non-working menus. The bug has been documented here and here.
This bug was on CodeWeavers and normal Wine. It is now fixed on Wine but not on CXOffice.
To circumvent this bug you have to destroy and recreate the menus yourself. See discussion and solutions here