Difference between revisions of "Windows"

From GnuCash
Jump to: navigation, search
m (Windows moved to Got hacked)
Line 1: Line 1:
== [[GnuCash]] on Microsoft Windows ==
+
that is BAD
 
 
This page collects various notes about compiling [[GnuCash]] on Microsoft Windows. See [[Windows/Old_Notes]] for old, solved issues.
 
 
 
=== Q: Is it possible to compile GnuCash on Windows? ===
 
'''A:''' Well, compiling is possible, and running as well, but so far not everything runs and we still need plenty of feedback.
 
 
 
Note: Testing indicates that the Windows 9x line (Windows 95, 98, ME) does not run GnuCash.
 
 
 
=== Q: Where is the binary? ===
 
'''A:''' Here: https://sourceforge.net/project/showfiles.php?group_id=192&package_id=5582
 
 
 
However, we know compiling is possible, but the runtime testing has just started, and we expect a lot of issues still need to be resolved. This means the source code will change quite quickly and those early testers are expected to follow those source code changes by getting the code from [[SVN]], see below for building from SVN.
 
 
 
====Download numbers====
 
The older revisions are being deleted from sourceforge.net again so that only the latest is accessible. Here are the download numbers for previous revisions: r15308 351; r15309 81; r15330 295;15335 534; 15393 116; 15398 335; 15417 716; 15480 665; 15522 387.
 
 
 
=== Instructions for an (almost) automated build ===
 
Copied from http://lists.gnucash.org/pipermail/gnucash-devel/2006-September/018588.html
 
 
 
Several people have now compiled and run GnuCash on MS Windows by the
 
mingw32/gcc compiler environment. These instructions explain how everyone else can give it
 
a try as well. We would be happy to hear any further feedback about
 
problems or (hopefully) success in this matter.
 
 
 
We've created a shell script that will download, compile, and install
 
all requirements of GnuCash on Windows and eventually GnuCash itself. It
 
will even make sure to retrieve the most up-to-date gnucash source code
 
directly from SVN. Running this script will probably download ~200MB of
 
data (but all downloaded data will be cached) and will take anything
 
between 0.5 through 5 hours of time. That shell script is located in
 
packaging/win32/install.sh of the gnucash [[SVN]] sources.
 
 
 
Before you can execute this shell script (which will do everything else
 
automatically), you have to complete these steps manually:
 
 
 
* Get the contents of the packaging/win32/ directory of gnucash [[SVN]], most up-to-date [http://svn.gnucash.org/repo/gnucash/trunk/packaging/win32/ from SVN], and copy it to some directory on your Windows machine. Do not use a directory that is one of the parent directories of the path you intend to use for the repository in the next step (c:\soft\repos by default). Possible locations are c:\soft\packaging or c:\soft\downloads.
 
 
 
* Adapt the directory name variables in the custom.sh file according to your preferences; the defaults would install everything in subdirectories below c:\soft. (Note that due to shell syntax, every windows-style backslash has to be specified as two backslashes.)
 
 
 
* Download the "MSYS" package from http://www.mingw.org/download.shtml -> Section "Current" -> Subsection "MSYS" -> MSYS-1.0.10.exe [http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe?download Download link]
 
 
 
* Execute this downloaded package to install it into the chosen directory, say, C:\soft\msys (which is the $MSYS_DIR variable in custom.sh)
 
 
 
* Download the "wget" package from http://www.mingw.org/download.shtml -> Current -> mingwPORT -> wget-1.9.1-mingwPORT.tar.bz2 [http://prdownloads.sf.net/mingw/wget-1.9.1-mingwPORT.tar.bz2?download Download link] and place the downloaded file in the $DOWNLOAD_DIR you have set in custom.sh
 
 
 
* Start the MSYS commandline shell by double-clicking the "MSYS" icon on the desktop which should have been created when you installed the MSYS package.
 
 
 
* Let the automated build begin by typing:
 
 
 
  $INSTALLER_DIR/install.sh  (the complete path to the install.sh)
 
 
 
* Some of the downloaded packages are installed through graphical installer dialogs where you can choose an installation directory. In those cases, the install.sh script will tell you in the MSYS window the installation directory that you should choose, according to your settings in custom.sh. Please enter only those installation directory in the installer dialog because otherwise the install.sh script cannot find the newly installed software.
 
 
 
* If there haven't been any errors, you should be able (after several hours of compiling and installing) to start gnucash from the MSYS command line by typing
 
 
 
  c:/soft/gnucash/bin/gnucash
 
 
 
or even without MSYS directly by "Start"-> "Run"-> "c:\soft\gnucash\bin\gnucash.bat"
 
 
 
* If there HAVE been errors, then please report them in the Section [[#Problems, issues, comments|Problems, issues, comments]].
 
 
 
Please spread the word and report back any problems you encounter. It is
 
probably not too difficult anymore to create a full self-contained
 
package of GnuCash on Windows as well! Some more information is also
 
collected here on this wiki page.
 
 
 
=== A bit of history ===
 
This page used to collect random notes from the time when we manually tried to install each and every part of the requirements. They have been moved to [[Windows/Old Notes]].
 
 
 
== Notes ==
 
 
 
=== gdb ===
 
In addition to [[Stack Trace]], here are a few instructions on how to run gnucash under gdb on Windows:
 
* Install "gdb" from mingw.org
 
* Modify the installed "gnucash" script to call "exec gdb gnucash-bin.exe" instead of "exec gnucash-bin.exe" at the end
 
* Then start gnucash, which will give you the gdb prompt
 
* Type "run" at the gdb prompt.
 
* Then provoke the crash and type "backtrace" or shorthand "bt" at the gdb prompt to obtain the backtrace, as explained on [[Stack Trace]] as well.
 
 
 
You can provide even better stack traces if you tell gdb where in memory dynamically loaded modules got mapped to, because otherwise function calls into those are only written as '??'. See [http://lists.gnucash.org/pipermail/gnucash-devel/2006-November/019042.html here] and [http://lists.gnucash.org/pipermail/gnucash-devel/2006-November/019048.html here] for a way to do this.
 
 
 
=== install.sh ===
 
* To debug install.sh, change <tt>set -e</tt> to <tt>set -ex</tt> at the top of it.
 
* Once you have installed Subversion, you might want to checkout and update packaging/win32 as described in [[SVN]].
 
svn checkout <nowiki>http://svn.gnucash.org/repo/gnucash/trunk/packaging/win32</nowiki> packaging
 
 
 
=== Online banking ===
 
The current install.sh automated build already builds GnuCash with Online Banking enabled, including HBCI, OFX DirectConnect, and OFX file import methods.
 
 
 
However, in order to set up the online banking connectivity (HBCI or OFX, which are both handled by aqbanking), you need to run a separate setup program of aqbanking. Because of the high complexity of the various online banking techniques, the setup program is a GUI program which is based on the Qt library. These Qt parts are ''not'' automatically built by install.sh, but you can enable them as described below.
 
 
 
==== aqbanking ====
 
 
 
The GUI installation goes like this for a manual install:
 
 
 
* Install Qt 4.x (Open Source Edition) from http://www.trolltech.com/developer/downloads/qt/windows
 
* Since install.sh already includes the build rules as optional parts, run the following:
 
export aqbanking_with_qt=yes
 
install.sh
 
 
 
This should build and install the qt parts of aqbanking as well.
 
 
 
== Problems, issues, comments ==
 
For any problem that occurs now, you should add a new section below.
 
 
 
=== Outdated statement in mainline FAQ ===
 
 
 
The following FAQ in the mainline documentation http://svn.gnucash.org/docs/guide/appendixb_general.html#appendixb_software_windows would benefit from a reference to this page. This http://wiki.gnucash.org/wiki/FAQ#Q:_Is_there_a_version.2Fport_for_Windows.3F is an up-to-date version of the same FAQ, maybe the repository should be updated from the wiki.
 
 
 
=== Help files not found in the binary distribution ===
 
 
 
I just installed GnuCash from gnucash-2.0.99-svn-r15522-setup.exe and it is working nicely, except for the help that seems to be absent. When help is requested, the following message pops up:
 
 
 
GnuCash could not find the files for the help
 
documentation.  This is likely because the
 
'gnucash-docs' package is not installed.
 
 
 
It would be nice if these can be included in the Windows binary package. Note that my Gtk runtime is configured to work in Dutch, but that should not matter I guess.
 
:You are completely right, it is on our [[Windows#Todo|todo list]], but not at top priority. -- [[User:Andi5|andi5]]
 
::Ah, sorry. I had overseen that. -- [[User:Bastiaan|Bastiaan]]
 
 
 
=== Dates keep changing ===
 
 
 
I started entering information dating back to 1/1/07. Every account I have created I put in an opening balance dated on Jan 1. Now, the dates are all changed, some to 1/2 some to 1/3 and most to 1/4.
 
:Filed at http://bugzilla.gnome.org/show_bug.cgi?id=405391 Can you attach a very simple example data file that shows this problem? In particular, we would like to have a look at the <nowiki><ts:date>...</nowiki> lines of those transactions that seem to be changing dates. Anything unusual there should be noted, like a wrong date zone value or such.
 
:(Side note: As we're all in different countries, using different date formats, you should explicitly say whether "1/4" refers to January 4 vs. April 1. Thanks.)
 
 
 
=== Errors on Windows 98 ===
 
 
 
Hi, I installed SVN r15355 on Windows 98 and got the following error:
 
 
 
"Die Datei LIBGTK-WIN32-2.0.0.DLL ist verknüpft mit dem fehlenden Export-COMDLG32.DLL:PrintDlgExW."
 
Translated this means "the file ... is bound to the missing export ...". GNUcash failed to start.
 
 
 
:As mentioned above ([[Windows#Q: Is it possible to compile GnuCash on Windows?]]), GnuCash will not run on Windows 98. You need at least Windows 2000.
 
 
 
===DLL install error===
 
I get an error like that:
 
 
 
'libgncmodule.la' 'c:/soft/gnucash/lib/libgncmodule.la'
 
/bin/install -c .libs/libgncmodule.dll.a
 
c:/soft/gnucash/lib/libgncmodule.dll.a
 
base_file=`basename ${file}`
 
  dlpath=`/bin/sh 2>&1 -c '. .libs/'${base_file}'i;echo $dlname'`
 
make[5]: *** [install-libLTLIBRARIES] Error 1
 
make[5]: Leaving directory `/c/soft/repos/src/gnc-module'
 
make[4]: *** [install-am] Error 2
 
 
 
This seems to be only an installation problem. Fine compiling it seems.
 
:I saw this at "make install" when I stopped and restarted the preceding compiling several times. So to me this looks like an artifact of DLLs that somehow "don't fit" to each other. The solution was always to run "make clean" in the source directory so that all DLLs are being deleted, and then starting the compiling again. --[[User:Cstim|Cstim]] 05:55, 4 December 2006 (EST)
 
Now I got that: http://rafb.net/p/zYqOJv60.html  (also after removing the whole soft directory (besides the downloads dir).[[User:Calmar|Calmar]]
 
:So you have got these errors in at least three different directories and also in a clean environment. The problem always seems to be a missing .lai file. But surprisingly other directories (among them those that failed in other builds) contain such files. The only solution I know is still to <tt>cd</tt> into the offending directory and to run <tt>make clean && make all install</tt>. I am sorry for the inconvenience. -- [[User:Andi5|andi5]]
 
::I was able to solve the problem, with ./install.sh (repeated) until it comes through. After the 5th try or so, it came through :) Very happy I can satisfy now what I promised to my friend (I mean new year is a good start for him). Thanks again for all your help! Good new year everybody!
 
 
 
Actually I still see this error frequently, even when I completely remove the build/ directory and let it be created from scratch. (?!?) As an alternative, I've now tried a newer libtool version by installing the cvs snapshot libtool-1.5.23a from http://www.gnu.org/software/libtool/ . Maybe the newer version has this bug fixed. --[[User:Cstim|Cstim]] 10:27, 22 January 2007 (EST)
 
:Seems like using libtool-1.5.23a didn't change a thing. I've written a script that should track down potential errors:
 
 
 
<pre>
 
#!/bin/sh
 
ALL_LIBDIR=` find . -name '*.la' | grep '\.libs' `
 
RM_THESE=""
 
 
 
for LIB in $ALL_LIBDIR ; do
 
    DIR=`dirname ${LIB}`
 
    FNAME=`basename ${LIB}`
 
    LIBBASE=`basename ${LIB} .la`
 
    if test ! -f "${LIB}i" -a -f "${DIR}/${LIBBASE}.dll.a" ; then
 
echo "File ${LIB}i missing"
 
PDIR=`dirname ${DIR}`
 
#echo "Do this: rm ${PDIR}/${FNAME}"
 
RM_THESE="${RM_THESE} ${PDIR}/${FNAME}"
 
    fi
 
done
 
 
 
if test "x${RM_THESE}" != "x"; then
 
    echo "Do this:"
 
    echo "rm ${RM_THESE}"
 
fi
 
</pre>
 
 
 
=== GConf/ORBit COMM_FAILURE ===
 
On some computers (Windows 2000/SP4), the following error has been observed, but on other computers GConf runs fine. GConf shows plenty of error messages like these: "Failed to save key /apps/gnucash/window/pages/account_tree/name_visible: Adding client to server's list failed, CORBA error: IDL:omg.org/CORBA/COMM_FAILURE:1.0" and also the "Cannot find default values" dialog is shown on each startup, regardless whether the "setup" is done or not. Also, the startup of GnuCash might open dozens of shell windows one after the other, and the startup of GnuCash is incredibly slow.
 
 
 
This is being reported to the ORBit crew as [http://bugzilla.gnome.org/show_bug.cgi?id=363648 bug#363648]. As a quick workaround, you have to install ORBit2-2.13.3 from [ftp://ftp.gnome.org/pub/gnome/binaries/win32/ORBit2/2.13/ here] instead of 2.14.2, as this seems to fix that problem.
 
 
 
=== Failed to fork ===
 
When starting GNUCash I receive the following message:
 
gnucash: [E] "Failed to fork child process."
 
It is not a fatal error (program continues to load).  Is this something I can safely ignore?  --[[User:Scbash|Scbash]] 17:10, 3 December 2006 (EST)
 
:This is from the file process.scm and it concerned with the Finance::Quote script for stock price retrieval. Chris wrote: "That's process.scm which is run during price-quote retrieval.  Perhaps guile's (primitive-fork) doesn't work on win32." You can ignore this for now. On the other hand, this means Finance::Quote and price retrieval currently doesn't work yet. --[[User:Cstim|Cstim]] 16:07, 4 December 2006 (EST)
 
 
 
=== Reading/writing compressed files===
 
The current win32 SVN code doesn't read or write compressed (gzip'd) files. On Linux, gnucash forks gzip as a child process and pipes the file through it. On windows, there isn't an easy replacement for fork() and pipe(). See src/backend/file/io-gncxml-v2.c:1246 ff.
 
 
 
As a consequence, a linux-stored data file which, by default, is stored in compressed form cannot be read by the Windows version at the moment. If you want to use the linux datafile, you need to switch off file compression beforehand by unticking the option "Compress Files" under Edit->Preferences->General->Files. Or 'mv datafile datafile.gz && gunzip datafile.gz #providing a .gz suffix, and finally unzipping it'
 
 
 
== Todo ==
 
This section is intended mainly for developers to concisely specfiy what issues are open, assigned or closed (and can be removed then).
 
[ ] [[Windows#Reading/writing compressed files|R]]  Compressed files ([http://lists.gnucash.org/pipermail/gnucash-devel/2007-February/019876.html Mail])
 
[/]    AqBanking
 
[X]    LibOFX
 
[ ]    Finance::Quote
 
[ ] [[Windows#Help files not found in the binary distribution|R]]  Documentation
 
[/]    Encoding issues ([http://bugzilla.gnome.org/show_bug.cgi?id=404832 Bug])
 
[ ]    Randomness ([http://lists.gnucash.org/pipermail/gnucash-devel/2006-December/019289.html Mail])
 
[W] [[Windows#GConf/ORBit COMM_FAILURE|R]]  GConf/ORBit2
 
[X] [[Windows#Text reports crash|R]]  Text report crashers (<strike>[http://bugzilla.gnome.org/show_bug.cgi?id=382852 Bug]</strike>, [http://bugzilla.gnome.org/show_bug.cgi?id=378158 Bug])
 
[X] [[Windows#Q: Where is the binary?|R]]  Packaging
 
 
A lot more, fill me
 
X = done; W = workaround; / = in-progress, not-yet-done, needs-testing
 

Revision as of 06:46, 16 February 2007

that is BAD