GnuCash Portable ================ Copyright 2007-2008 Shawn Faucher GnuCash copyright 2001-2008 The GnuCash Project PortableApps.com launcher and installer copyright 2004-2008 John T. Haller. Website: http://GnuCashPortable.Sourceforge.net This software is OSI Certified Open Source Software. OSI Certified is a certification mark of the Open Source Initiative. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ABOUT GNUCASH ============= GnuCash is personal and small-business financial-accounting software, freely licensed under the GNU GPL and available for GNU/Linux, BSD, Solaris, Mac OS X and Microsoft Windows. Designed to be easy to use, yet powerful and flexible, GnuCash allows you to track bank accounts, stocks, income and expenses. As quick and intuitive to use as a checkbook register, it is based on professional accounting principles to ensure balanced books and accurate reports. Double-Entry Accounting Stock/Bond/Mutual Fund Accounts Small-Business Accounting Customers, Vendors, Jobs, Invoices, A/P, A/R Feature Highlights QIF/OFX/HBCI Import, Transaction Matching Reports, Graphs Scheduled Transactions Financial Calculations See http://www.GnuCash.org for more information. ABOUT GNUCASH PORTABLE ====================== GnuCash Portable provides a launcher which allows you to run GnuCash from a removable drive. The program is installed only on the drive and can then be used on any Windows computer. LICENSE ======= This code is released under the GPL. The source code for the launcher and installer is included with this package as NSIS scripts. The open source NSIS (Nullsoft Scriptable Install System) compiler is needed to compile these scripts into Windows executables. This is available at http://nsis.sourceforge.net. INSTALLATION / DIRECTORY STRUCTURE ================================== By default, the program expects the following directory structure: -\ <--- Directory with GnuCashPortable.exe +\App\ +\AppInfo\ +\DefaultData\ +\GnuCash\ +\Data\ +\Profile\ +\Settings\ It can be used in other directory configurations by including the GnuCashPortable.ini file in the same directory as GnuCashPortable.exe and configuring it as detailed in the INI file section below. GNUCASHPORTABLE.INI CONFIGURATION ================================= The GnuCash Portable Launcher will look for an ini file called GnuCashPortable.ini within its base directory. It is not necessary, however, if you are happy with the default options. There is an example INI included with this package to get you started. The INI file is formatted as follows (shown with default settings): [GnuCashPortable] GnuCashDirectory=App\GnuCash ProfileDirectory=Data\Profile SettingsDirectory=Data\Settings GnuCashExecutable=gnucash-bin.exe LogFile= AdditionalParameters= WaitForGnuCash=true DisableSplashScreen=false DeleteTransactionLog=true DisableIntelligentStart=false RunLocally=false The GnuCashDirectory, ProfileDirectory and SettingsDirectory entry should be set to the *relative* path to the appropriate directories from the current directory. Both must be a subdirectory (or multiple subdirectories) of the directory containing GnuCashPortable.exe. These entries must exist or the ini file is ignored. The default entries for these are described in the installation section above. The GnuCashExecutable entry allows you to set the GnuCash Portable Launcher to use an alternate EXE call to launch GnuCash. This is helpful if you are using a machine that is set to deny gnucash-bin.exe from running. You'll need to rename the GnuCash-bin.exe file and then enter the name you gave it on the GnuCashExecutable= line of the INI. The LogFile entry allows you to set the path and filename of the error log for GnuCash. If this option is blank, logging will be turned off. GnuCash automatically appends a random string to the end of the given filename and starts a new logfile each time the program is run. The AdditionalParameters entry allows you to pass additional commandline parameter entries to the executable. Whatever you enter here will be appended to the call to the exe. Note that invalid parameters may prevent GnuCash from starting correctly. The WaitForGnuCash entry allows you to set the launcher to remain active until GnuCash has closed. This is useful if you wish to have another process wait until GnuCash Portable has closed. The launcher will automatically wait for GnuCash to close in cases where it needs to clean up after gnucash-bin.exe (for instance, this option is necessary for the DeleteTransactionLog options to work, see below). The DeleteTransactionLog entry instructs the Launcher to automatically delete any transaction log files automatically created by GnuCash after it exits. This requires WaitForGnuCash to also be set. If GnuCash exits because of a crash (leaving the lock file in the profile) the log entries will not be deleted. The DisableIntelligentStart entry allows you to to have GnuCash Portable run necessary fixes to enable portable use on every start. Normally, it tracks when you've moved to a new path or new OS (switching PCs for instance) and only processes these fixes when you do. By skipping it when the path and OS are the same, GnuCash Portable starts up faster. But, if you copy a profile into GnuCash Portable between sessions (it handles a copy in on first run automatically), it won't know to process these. This usually happens if you copy a profile into GnuCash Portable from a GnuCash install on your local PC on a regular basis. Setting this to true causes GnuCash Portable to process fixes on every start. The RunLocally entry allows you to set GnuCash Portable to copy your profile, plugins and the GnuCash application directory to the local machine's temp directory. This can be useful for instances where you'd like to run GnuCash Portable from a CD (aka GnuCash Portable Live) or when you're working on a machine that may have spyware or viruses and you'd like to keep your device set to read-only mode. The only caveat is, of course, that any changes you make that session (cookies, bookmarks, etc) aren't saved back to your device. When done running, the local temp directories used by GnuCash Portable are removed. Note that this entry automatically enables WaitForGnuCash in order to clean up these temp directories. The PerlPath entry allows you to set the path to the Perl binaries on your system. By default this path is C:\Perl\bin. Perl is necessary to enable online banking features. NSIS PLUGINS ============ The following NSIS plugins are necessary to compile the source: FindProcDLL - http://nsis.sourceforge.net/FindProcDLL_plug-in MoreInfo - http://nsis.sourceforge.net/MoreInfo_plug-in Registry - http://nsis.sourceforge.net/Registry_plug-in UserInfo - pre-installed by NSIS ABOUT THE AUTHORS ================= The launcher was modified by me (Shawn Faucher aka Rayven01) from the Firefox Portable launcher by John T. Haller of PortableApps.com. Portions relating to changes necessary to run GnuCash portably were also gleaned from another GnuCash Portable implementation by IllusionofDemise of Sagemedia.net. PROGRAM HISTORY =============== 3/14/2008 - 2.2.4.1 - Updated to Pre-Release status. - Integrated official splash screen. - Changed all web references to PortableApps.com. 3/3/2008 - 2.2.4.0 - Updated Multi installer to 0.9.9.1. - Updated GnuCash to 2.2.4. - Changed portable version numbering to be based upon GnuCash version. 2/13/2008 - 0.2.5 - Changed access level request to user from admin (affects Vista only). - Changed PortableAppName from 'GnuCash, Portable Edition' to 'GnuCash Portable'. The former is only necessary on Mozilla apps. - Changed to 'Multi' installer which allows the choice to not install translation files. This saves 40MB from the install, bringing it down below 100MB. 1/29/2008 - 0.2.4 - Changed check for still-running launcher to use a mutex instead of a lock file. - Completely rewrote UPXGnc.cmd, the script for UPX compression of all exe and dll files in the App folder. This now verifies that the resultant compressed files can be correctly decompressed and reverts them if not. - GnuCash binaries are now compressed (using the above script). It's been tested extensively and everything appears to work fine. This shaves approximately 67MB from the installed footprint. - Removed logging from launcher since bugs have been few and far between and the app is nearing release. - appinfo.ico updated to include 24bit alpha versions. 1/17/2008 - 0.2.3 - Fixed a bug with history profile directory updating causing infinite loops if DisableIntelligentStart was true. - Removed newadvsplash splash screen. Splash image is now injected directly into the appropriate GnuCash directory to integrate with the GnuCash loading window (thanks ZGitRDun8705). - Added splash image to settings directory and updated fixes check to add to existing Data directories on update for use during splash injection. - Removed redundant DisableSplashScreen ini option. - Added checks to clean up temporary registry entries potentially left around by previous incomplete (process killed) launcher. - Removed liborbit fix code in launcher, as well as files in DefaultData\Fixes\orbitfix. Updated installer and updater to remove from existing Data directories. - Removed Fixes directory and moved remaining fixes to Settings directory. 1/14/2008 - 0.2.2 - Fixed bug with Profile write permissions test failing when it shouldn't. - Fixed bug with RunLocally setting a bad profile path causing it to fail. - Fixed bug with LauncherLog failing to write to $TEMP when GnuCashPortable directory is not writeable. - Added lock file for the launcher and a check to make sure the launcher is not still running from a previous launch (cleaning up). 1/9/2008 - 0.2.1 - Updated GnuCash to version 2.2.3. - Changed newadvsplash::wait to newadvsplash::stop /WAIT for compatibility with newest plugin version. 12/21/2007 - 0.2.0 - Updated GnuCash to version 2.2.2. - Commented out the liborbit fix. GnuCash 2.2.2 uses a patched liborbit that is intended to fix previous issues. The liborbit fix will be removed completely in a future release if this works as intended. - History settings are now updated to reflect the current profile directory on startup. This fixes bugs with GnuCash not being able to locate and automatically open the last accounts file if the drive letter changed or the profile was moved. - Updated source text, help file/images, appinfo.ini and splash screen to reflect change in status to official PortableApps.com application (test-release). 11/30/2007 - 0.1.5 - Fixed bug where local temp files were not being deleted after running locally. - Added PerlPath to ini options to specify the path to the Perl binaries, needed for online banking support. By default the path is set to 'C:\Perl\bin'. - Reworked how PATH environment variable is used. Existing path is no longer prepended to the GnuCash binary paths. Instead the path is overwritten with the GnuCash binary paths and the Perl binary path. Use of the PerlPath ini option is necessary to enable online banking support if Perl binaries are not located at C:\Perl\bin. This fixes the following two bugs: - Fixed bug with PATH environment variable being set to null when the existing path contained quotes. This was causing GnuCash to fail to execute on affected systems. - Fixed bug with PATH environment variable being truncated when the existing path is near the maximum PATH size (1024/2048 bytes). - Added localization strings to launcher. English only for now. - Cosmetic changes to launcher source to reflect changes in latest PAF sources (modelled after Firefox Portable 2.0.0.10). 11/26/2007 - 0.1.4 - Fixed bug with Win2k liborbit fix. Non-win2k OS will now no longer use the older liborbit files. - Changed TMP directory to PROFILEDIRECTORY\Temp. This directory is now removed on exit. - Changed launcher to wait for gconfd-2.exe to exit before cleaning up since it hangs around after gnucash-bin.exe exits and has temp files locked. - Added environment variables check to debug log - Updated findprocDLL to newest version. Old version was used in previous binaries and would not properly detect running processes due to different return values. - Updated App\AppInfo\appinfo.ini to version 0.9.8. - Changed installer and updater to use App\AppInfo\appicon.ico as icon. Removed installer.ico from source. 11/14/2007 - 0.1.3 - Added registry entry handling for aqbanking & gwenhywfar. These are HKLM keys, so they require admin access. Online banking wizard should work correctly now if you have admin rights. GnuCash itself will still work without admin rights. Aqbanking version 3 will work without admin rights, so in future GnuCash releases this may not be necessary. - Changed Wait & Admin warnings to mention online banking dependencies. - Added version check to "intelligent start". Fixes are re-applied if version has changed since last run. - Combined GnuCashPortableSource & GnuCashSource folders to a single Source folder. - Changed program icon to one with 16, 32 & 48 sizes. - Fixed typos in Readme.txt. - Changed installer source to look in separate folders under "Files" for PortableApp and App files in preparation for a separate updater. - Added "updater" source which is basically an installer that doesn't include the App files. This allows distribution of a 360KB update rather than a 39MB full install when a new PAF release does not contain an updated version of the App. - Added help.html and related files. 11/12/2007 - 0.1.2 - Added launcher status logging. On by default during development testing. Log saved to EXE directory as LauncherLog.txt 11/9/2007 - 0.1.1 - Added option to continue running when GnuCash registry entries are discovered and user has no admin rights to disable them. - UPXGnc.cmd script added in source directory. When complete this script will compress all exe and dll files in the GnuCash binary directories. Currently causes crashes as not all files have been found that don't work correctly when compressed. Use at your own risk. 11/9/2007 - 0.1 - Test-release. - Utilized GnuCash 2.2.1