|
|
(28 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| this is my own little playground for trying out stuff | | this is my own little playground for trying out stuff |
| | | |
− | == Building (twt scratch) ==
| + | The latest release of Gnucash is {{Version}} |
| | | |
− | This is a place Twt is using collect some ideas to improve [[Gnucash#Building]] page
| + | == Connecting to LibreOffice (twt scratch) == |
| | | |
| + | TWT is collecting some stuff for querying or reporting in GnuCash via Libreoffice. (Based on email discussion "gnucash, sql, and libre office" on gnucash-user starting Feb 18, 2016). |
| | | |
− | == General Instructions ==
| + | Old Gnucash to LibreOffice macro is available at |
| | | |
− | ===ORIGINAL Disclaimer===
| + | https://github.com/cstim/gnucash/blob/master/contrib/gnuc2ooo.py |
− | This page deals with building the '''developers version''' of GnuCash from the ''[[Git]] repository''. If you are searching instructions for the ''stable version'', you should read [[GnuCash#Installation]].
| |
| | | |
− | This page does not cover most optional third-party modules such as the Perl module Finance::Quote.
| + | https://github.com/Gnucash/gnucash/tree/master/contrib |
| | | |
− | ===NEW Disclaimer===
| + | Instructions and examples for this old macro are at |
− | This page deals with building Gnucash in linux. Compiling GnuCash in Windows is possible, but much more difficult than in linux. For details, see [[Windows|GnuCash on Microsoft Windows]].
| |
| | | |
− | Once configured, the linux build process runs automatically. The specific details depend upon how you retrieved the source files, and what linux distribution and version you are using.
| + | http://www.alice-dsl.net/gnuc2ooo/save/gnuc2ooo_en/intro.html |
| + | |
| + | (see the navigation links at the top) |
| | | |
− | ====Get Source Files====
| + | Here's a script for going to mysql: |
− | Create a directory to hold your source files for compilation, such as ~/src , and put the source files there.
| |
| | | |
− | You can get the source files in 3 ways:
| + | http://www.xaprb.com/blog/2006/03/12/gnucash-to-mysql-export-script/ |
− | 1. Download the official tarball
| |
− | 2. Get the sources via git
| |
− | 3. Get a pre-configured source file for your linux distribution
| |
| | | |
− | For the very latest source code, get the sources from [[Git]] or use the latest release source file of type <tt>gnucash-<version>.tar.gz</tt> from [https://sourceforge.net/projects/gnucash/files/ Sourceforge]. '''Do not attempt to use tarballs from GitHub.'''
| |
| | | |
− | You may be able to compile GnuCash using a pre-configured source file, which will bring in all the dependencies and create a binary package ready to install in your system using its package manager. See the distro-specific instructions below.
| + | There's also lots of info about converting GnuCash XML using XSLT, and there are some example xslt in https://github.com/Gnucash/gnucash/tree/master/contrib |
| | | |
− | For example, after you use web browser to download the tarball for GnuCash version 99.9.9 into a ~/Downloads directory:
| |
− | cd ~/src
| |
− | mv ~/Downloads/gnucash-99.9.9.tar.bz2 .
| |
− | tar -xf gnucash-99.9.9.tar.bz2
| |
− | cd gnucash-99.9.9
| |
| | | |
− | OR for example, if you want to use git to retrieve the sources of GnuCash version 99.9.9 into a new gnucash directory:
| |
− | cd ~/src
| |
− | git clone git://github.com/Gnucash/gnucash.git gnucash
| |
− | cd gnucash
| |
− | git checkout 99.9.9
| |
| | | |
− | Important: If you need to use the most up-to-date sources (not necessarily a stable release), use the maint tag:
| + | Connecting GnuCash sqlite to LibreOffice via ODBC |
− | git checkout maint
| |
| | | |
| + | Basic info: https://wiki.openoffice.org/wiki/Documentation/How_Tos/Using_SQLite_With_OpenOffice.org |
| | | |
− | ====Install Dependencies====
| |
− | See the distro-specific instructions below.
| |
| | | |
− | For distros or releases not described below, examine the [[Dependencies]] wiki page and the [https://github.com/Gnucash/gnucash/blob/trunk/README.dependencies README.dependencies] file for the list of build dependencies for your distribution, the [https://github.com/Gnucash/gnucash/blob/trunk/README.git README.git] file for notes on compiling gnucash, and the [https://github.com/Gnucash/gnucash/blob/trunk/HACKING HACKING] file for notes on hacking the code.
| + | Instructions for Ubuntu (based on 14.04 LTS) |
| | | |
− | ====Prepare for Compilation====
| |
− | You can either compile GnuCash in the same directories where you copied the source tree, or in a separate build directory. Many folks prefer to compile using a separate directory.
| |
| | | |
− | If you retrieved the sources via git, you will need to generate the configure script. If you retrieved the tarball from Sourceforge, the script is already included.
| + | 1) Install the packages |
| | | |
− | Generate the configure script using autogen.sh (if you retrieved via git).
| + | $ sudo apt-get install unixodbc unixodbc-bin libsqliteodbc |
| | | |
− | For example, if you're compiling git-retrieved sources in the source tree:
| + | that last libsqliteodbc installs the sqlite to ODBC driver and registers it in the system. The instructions imply you'll also need to install the sqlite3 package but I think you probably don't need it for this. |
− | cd ~/src/gnucash
| |
− | ./autogen.sh
| |
| | | |
− | If you're compiling git-retrieved sources in a separate build directory, you'll switch to the directory and run the autogen script from there.
| + | 2) save A COPY OF your gnucash data as a sqlite3 file |
| | | |
− | For example, if you have the sources in ~/src/gnucash and ~/build for building:
| + | 3) Create the data source (as a regular user NOT sudo) |
− | cd ~/build
| |
− | ../src/gnucash/autogen.sh
| |
− |
| |
− | The autogen script produces some messages as it proceeds.
| |
| | | |
− | ====Configure for Compilation====
| + | $ ODBCManageDataSourcesQ4 |
| | | |
− | If you used the autogen script, stay in the build directory.
| + | Use the tool to create a new sqlite3 data source and connect it to the sqlite3 file you created with gnucash. |
| | | |
− | If you downloaded the tarball, either cd to the top of the source tree or to your build directory.
| + | 4) now you can open LibreOffice Base, create a new Database, connected to an existing ODBC data source, choose the one you created in step 3, and when Base opens you will see the inscrutable tables in GnuCash. |
| | | |
− | From the build directory, you can list your configure options.
| + | 5) [Insert info here about how to make it useful (how to join tables usefully, etc.)] |
| | | |
− | For example:
| + | 6) Presumably you close Base and then save a fresh copy of GnuCash to the same file to update your data again and reopen Base to reconnect to updated data, preserving your queries and joins. |
− | ./configure --help
| |
− | Or for example:
| |
− | ../src/gnucash-99.9.9/configure --help
| |
| | | |
− | Some example options for configure might look as follows
| |
− | ./configure --prefix=/opt/gnucash-devel \
| |
− | --enable-debug --enable-doxygen \
| |
− | --enable-error-on-warning --enable-compile-warnings \
| |
− | [--enable-ofx [...]]
| |
| | | |
− | ;--prefix: Where will the package be installed? If you install for test purposes, you might install it in your home directory to avoid ''sudo''ing. Many installations include ~/bin in your default path, so that might be a logical place to install a local copy for testing. You should never use the same path as you distribution!
| + | == Debian/Getdeb == |
− | ;--enable-debug: Include debugging symbols in the binaries to help locate crashing code.
| + | How about adjusting the Synaptic section to debian's archive or removing it? --[[User:Fell|Fell]] ([[User talk:Fell|talk]]) 16:31, 15 August 2019 (UTC) |
− | ;--enable-compile-warnings: Provide debugging messages to help track down errors that affect compiling.
| |
| | | |
− | :(Note: There are issues with the ''guile'' configuration of ''slib'' which will cause ''configure'' to fail on many distributions. See: [[#slib Issues]]) | + | Hi -- I know that probably wasn't what you were thinking but I restructured the whole section. The lower part of the page needs a similar restructuring but I need to get to something else! [[User:Twt|Twt]] ([[User talk:Twt|talk]]) 17:34, 15 August 2019 (UTC) |
| + | :NP :-) --[[User:Fell|Fell]] ([[User talk:Fell|talk]]) 18:24, 15 August 2019 (UTC) |
| | | |
| + | == Your Change to FAQ == |
| | | |
− | ====Compile====
| + | You entered a change to the FAQ under "How do I get rid of strange unreadable characters or adjust the font size" |
− | After configure completes, you can start the compiler
| |
− | make
| |
− | :optional - if you changed something in the sources:
| |
− | make check
| |
− | :optional -- if your system has multiple cores and you want to use them to speed compiling. Four cores would be j4
| |
− | make -j4
| |
| | | |
− | ====Install====
| + | The question itself is problematic, in that it covers two topics ("strange" characters *and* font size). However, its placement under Localization suggests that its primary purpose is for strange characters, rather than font size. Indeed, there is a separate section just prior to this one in the FAQ that covers altering the appearance of GnuCash in much greater detail. This section refers users to the highly detailed GTK3 page, which provides a much more thorough and accurate description of the font styling question. |
| | | |
− | After make finishes, install
| + | I think if you take a look at the GTK3 page, you will see what I am talking about; I think most of what you've added here is covered there. |
| | | |
− | :If your prefix was below $HOME:
| + | Since you brought this section of the FAQ to my attention, I may in fact further edit this question drastically so that it covers only the issue of strange unreadable characters, and further refers readers to the respective GTK pages for instruction on setting fonts. |
− | make install
| |
− | :else
| |
− | sudo make install
| |
− | :Sudo will ask you for the administrator password so the binaries can be moved to system directories.
| |
| | | |
− | ====Run GnuCash====
| + | I'm writing all this to you so that you don't feel that your efforts are summarily dismissed by some random smartass on the interwebs. |
| | | |
− | :If your prefix was below $HOME | + | [[User:Sunfish62|Sunfish62]] ([[User talk:Sunfish62|talk]]) 04:18, 28 September 2019 (UTC) |
− | ~/bin/gnucash
| |
| | | |
− | :If your prefix was elsewhere:
| + | ==RESPONSE about font size in the FAQ== |
− | /opt/gnucash-devel/bin/gnucash [options]
| |
− | :Add ''--help'' to see a list of options.
| |
| | | |
− | ==== Reverse commands ====
| + | Hey... no problem. After spending a bit of time on it I was no longer very happy with it anyway. I hope what I wrote (and the code changes I made) are helpful anyway. BY THE WAY you can sign your name to comments (as I'm doing below) by typing four tildes ~ on a line |
− | In case you dislike your '''installation''', run from your build directory
| |
− | [sudo] make uninstall
| |
− | to remove it, ''before'' you change relevant options like the prefix. | |
| | | |
− | To clean up your '''build''' directory, run
| + | [[User:Twt|Twt]] ([[User talk:Twt|talk]]) 04:16, 28 September 2019 (UTC) |
− | make clean
| |
− | If you use a separate build directory, you can remove its content instead.
| |
| | | |
− | In some cases, that might not be sufficient, then clean your '''git''' gnucash directory with
| + | == https://wiki.gnucash.org/wiki/index.php?title=Installing_Dependencies&diff=next&oldid=16428 == |
− | git clean -f
| |
| | | |
− | To remove everything not part of the repo, including directories and ignored files, run
| + | This is the ''general'' dependency page, but "-0" is the ''distribution specific'' '''patch level'''. Is it really required, to enter it? If yes, it belongs in the distribution specific page. |
− | git clean -fdx -e /.project -e /.cproject -e /.autotools -e /.settings/
| + | :;Note: There are more occurences of patch levels in the command list. Please review them, too. |
− | '''Note:''' The exceptions are only necessary for Eclipse users. Else all their project information would be lost. | + | --[[User:Fell|Fell]] ([[User talk:Fell|talk]]) 07:34, 18 September 2020 (UTC) |
| | | |
− | In this case you will have to start with ./autogen-sh again.
| + | == https://wiki.gnucash.org/wiki/index.php?title=Installing_Dependencies&diff=next&oldid=16748 == |
| | | |
− | == Distro-specific Information ==
| + | # Is apt really so stupid? In rpm based package managers, if I say "install foo-dev", it will pull the runtime package "foo" as a dependency. |
− | See the [https://github.com/Gnucash/gnucash/blob/trunk/README.dependencies README.dependencies] file for library dependency notes.
| + | #:Can you verfy that and if I am right, change this and other commands in the other direction: <syntaxhighlight lang="sh"> |
− | Also check out [[Dependencies|the dependencies page]].
| + | sudo apt install libgtk-3-dev # will install libgtk-3-bin, too |
− | | + | </syntaxhighlight> |
− | === Slackware ===
| + | # "3.0 >= 3.22.30" is impossible, should be "gtk+3 >= 3.22.30". |
− | | + | --[[User:Fell|Fell]] ([[User talk:Fell|talk]]) 07:46, 18 September 2020 (UTC) |
− | Slackware installation is covered on [[Slackware|this page]].
| |
− | | |
− | === Debian ===
| |
− | | |
− | Running
| |
− | aptitude build-dep gnucash
| |
− | will install all the gnucash dependencies for the current release. You may need others.
| |
− | | |
− | On Debian, the packages you'll probably need are (among many others):
| |
− | | |
− | guile-1.6-dev
| |
− | swig
| |
− | libgnome2-dev
| |
− | libgnomeui-dev
| |
− | goffice-0-dev
| |
− | libgsf-1-dev
| |
− | libgtkhtml3.2-dev (3.6, 3.8, or 3.14 will also do)
| |
− | libofx-dev (to enable ofx support)
| |
− | libaqbanking16-dev (to enable aqbanking support. Don't use the newer libaqbanking20-dev - see [[AqBanking#Compatibility]])
| |
− | postgresql-dev (to enable sql support)
| |
− | | |
− | If you are building from git, you will also need the following installed before running autogen.sh:
| |
− | | |
− | git
| |
− | automake
| |
− | intltool
| |
− | libtool
| |
− | guile-1.6-dev
| |
− | | |
− | For the 2.0-branch of GnuCash you need additionally:
| |
− | libgwrapguile-dev OR
| |
− | guile-g-wrap
| |
− | | |
− | If you see the error "<unnamed port>: no code for module (g-wrap gw standard)" at runtime, see
| |
− | [[FAQ#Q: Running 2.0.x on Debian/Ubuntu crashes with "no code for module (g-wrap gw standard)". What does this mean?|this particular FAQ]].
| |
− | | |
− | === Ubuntu ===
| |
− | | |
− | Ubuntu releases are supported for various lengths of time; Wikipedia has a [http://en.wikipedia.org/wiki/List_of_Ubuntu_releases#Table_of_versions handy chart showing which versions are still supported].
| |
− | | |
− | '''Note:''' Dear Ubunteros, please do not copy and paste whole paragraphs. Instead adjust single sections in the form
| |
− | :Version x and newer:
| |
− | ::do this
| |
− | :Version x-1 and before:
| |
− | ::do that.
| |
− | :Can someone of you clean up this chapter and later remove this note?
| |
− | | |
− | ==== Compiling Newer Ubuntu Packages on an Older Release ("self-backporting") ====
| |
− | | |
− | If you are on an older version of Ubuntu (or Debian for that matter) such as Trusty 14.04 LTS, you may be able to compile a newer Ubuntu or Debian version yourself (essentially backporting it yourself).
| |
− | | |
− | If the newer package is available in Utopic 14.10, add a line in your /etc/apt/sources.list (or for newer versions of Ubuntu, include a new file in the /etc/apt/sources.list.d/ directory) with the correct format. For Utopic, the line would be:
| |
− | | |
− | deb-src <nowiki>http://archive.ubuntu.com/ubuntu</nowiki> utopic main restricted universe
| |
− | | |
− | You want the version (Utopic in above example) to be newer than the system release you have installed. Then you can use the following lines to compile and install whatever software version is in the newer Ubuntu release, "backporting" the newer software to your older release of Ubuntu.
| |
− | | |
− | cd ~/src/
| |
− | sudo aptitude update
| |
− | sudo apt-get install build-essential fakeroot
| |
− | sudo apt-get build-dep gnucash
| |
− | apt-get --compile source gnucash
| |
− | sudo dpkg -i *.deb
| |
− | | |
− | Easy as 1-2-3!*
| |
− | | |
− | * If <code>apt-get build-dep</code> fails on the gnucash packages with a message like "E: Build-Depends dependency for gnucash cannot be satisfied because the package XXXXX cannot be found" then that means you need additional updated libraries on your system in order to backport the software. Unless you know there are only one or two new libraries needed, it's most likely MUCH easier just to build GnuCash from source. (See directions below.)
| |
− | | |
− | * If dpkg -i *.deb fails because it lists a bunch of dependencies (this happens if you've never installed gnucash before) the easiest way to get apt to bring them in is using -f (fix broken) install:
| |
− | sudo apt-get -f install
| |
− | | |
− | ==== Ubuntu 14.04 LTS (Trusty Tahr) ====
| |
− | | |
− | To build from the source tarball download the source code tarball from http://www.gnucash.org/download.phtml and extract to an appropriate directory.
| |
− | | |
− | Next install the build dependencies
| |
− | sudo apt-get build-dep gnucash
| |
− | | |
− | (On a fresh install I also needed to purge guile-2.0 and install these packages as well follow the guide below for issues with slib)
| |
− | sudo apt-get purge guile-2.0
| |
− | sudo apt-get install slib libgnomeui-common libgnomeui-dev guile-1.8 guile-1.8-dev checkinstall
| |
− | | |
− | if want to use the alternative database backends then:
| |
− | sudo apt-get install libdbd-{sqlite3,pgsql,mysql}
| |
− | | |
− | In a terminal cd to the gnucash directory and run | |
− | ./configure --prefix=/path/to/install/gnucash/to --enable-compile-warnings --with-html-engine=webkit
| |
− | make
| |
− | sudo checkinstall
| |
− | | |
− | The prefix might be, for example,
| |
− | --prefix=/usr/bin/gnucash2.4
| |
− | | |
− | Running checkinstall will ask you some options on how the package is named, etc. This will produce a .DEB which you can then simply install (adjust the path/filename accordingly)
| |
− | sudo dpkg -i /path/to/deb/gnucash_2.4.15-1_amd64.deb
| |
− | | |
− | ==== Ubuntu 12.04 LTS (Precise Pangolin) ====
| |
− | | |
− | To build using the git repository first install git
| |
− | sudo apt-get install git
| |
− | then in an appropriate directory run
| |
− | git clone git://github.com/Gnucash/gnucash.git gnucash
| |
− | which will make a git repository in a directory gnucash.
| |
− | | |
− | Next install the build dependencies
| |
− | sudo apt-get build-dep gnucash
| |
− | and a few required or useful tools
| |
− | sudo apt-get install libtool swig git libgnomeui-dev xsltproc libxslt-dev doxygen
| |
− | | |
− | if want to use the alternative database backends then: | |
− | sudo apt-get install libdbd-{sqlite3,pgsql,mysql}
| |
− | | |
− | In a terminal cd to the gnucash directory and checkout the version that you want, so to get the latest 2.4 branch version:
| |
− | git checkout 2.4
| |
− | or to build a released version, for example:
| |
− | git checkout 2.4.9
| |
− | | |
− | Then to build it
| |
− | ./autogen.sh
| |
− | ./configure --prefix=/path/to/install/to/gnucash --enable-compile-warnings --with-html-engine=webkit --disable-error-on-warning
| |
− | make
| |
− | sudo make install
| |
− | | |
− | The prefix might be, for example,
| |
− | --prefix=/usr/bin/gnucash2.4
| |
− | Then to run it, assuming there were no errors
| |
− | /usr/bin/gnucash2.4/bin/gnucash
| |
− | | |
− | ==== Ubuntu 11.10 (Oneiric Ocelot) ====
| |
− | | |
− | To build using the git repository first install git-core
| |
− | sudo apt-get install git-core
| |
− | then in an appropriate directory run
| |
− | git clone git://github.com/Gnucash/gnucash.git gnucash
| |
− | which will make a git repository in a directory gnucash.
| |
− | | |
− | The main branch in git is conventionally named master, whereas in this repository it is named trunk (due to the fact that it is derived from a subversion repository I believe). This is not a problem but if you would rather have it named master then cd into the gnucash directory and
| |
− | | |
− | git branch -t master refs/remotes/origin/trunk
| |
− | git checkout master
| |
− | | |
− | Next install the build dependencies
| |
− | sudo apt-get build-dep gnucash
| |
− | and a few required or useful tools
| |
− | sudo apt-get install libtool swig git
| |
− | | |
− | if want to use the alternative database backends then:
| |
− | sudo apt-get install libdbd-{sqlite3,pgsql,mysql}
| |
− | | |
− | In a terminal cd to the gnucash directory and checkout the version that you want, so to get the latest 2.4 branch version:
| |
− | git checkout 2.4
| |
− | or to build a released version, for example:
| |
− | git checkout 2.4.7
| |
− | | |
− | Then to build it
| |
− | ./autogen.sh
| |
− | ./configure --prefix=/path/to/install/to/gnucash --enable-compile-warnings --with-html-engine=webkit
| |
− | make
| |
− | sudo make install
| |
− | | |
− | The prefix might be, for example,
| |
− | --prefix=/usr/bin/gnucash2.4
| |
− | Then to run it, assuming there were no errors
| |
− | /usr/bin/gnucash2.4/bin/gnucash
| |
− | | |
− | ==== Ubuntu 10.10 (Maverick Meerkat) ====
| |
− | | |
− | Follow the steps described for [[#Ubuntu 10.04 LTS (Lucid Lynx)]].
| |
− | | |
− | ==== Ubuntu 10.04 LTS (Lucid Lynx) ====
| |
− | | |
− | First, we need install all dependencies of building GnuCash.
| |
− | | |
− | sudo aptitude build-dep gnucash
| |
− | sudo aptitude install texinfo git intltool libdbi0-dev libdbd-{sqlite3,pgsql,mysql} guile-1.8 guile-1.8-dev doxygen libwebkit-dev
| |
− | | |
− | Since Ubuntu/Debian doesn't have guile-1.8-slib, which is actually just a softlink to slib, we create the softlink and generate the catalog manually.
| |
− | | |
− | cd /usr/share/guile/1.8
| |
− | sudo ln -s ../../slib slib
| |
− | sudo guile -c "(use-modules (ice-9 slib)) (require 'new-catalog)"
| |
− | | |
− | And then we create the directories for source code and installation, and check out source code from git master
| |
− | | |
− | mkdir -p ~/unstable ~/development
| |
− | rm -rf ~/unstable/gnucash ~/development/gnucash
| |
− | cd ~/development
| |
− | git clone https://github.com/Gnucash/gnucash/ gnucash
| |
− | cd gnucash
| |
− | | |
− | Then, we build it by following commands:
| |
− | | |
− | ./autogen.sh
| |
− | ./configure --prefix=$HOME/unstable/gnucash --enable-debug --enable-doxygen --enable-error-on-warning --enable-compile-warnings
| |
− | make all install
| |
− | | |
− | If there are no errors, we can run it:
| |
− | | |
− | ~/unstable/gnucash/bin/gnucash
| |
− | | |
− | === Gentoo ===
| |
− | | |
− | Gentoo instructions can be found on [[Gentoo|Gnucash-svn installation on Gentoo]].
| |
− | | |
− | === Mac OS X ===
| |
− | | |
− | Mac OS X instructions can be found on [[MacOSX/Quartz]] (This is the procedure used for building the binary packages) or [[MacOSXInstallation| gnucash installation from source on Mac OS X]].
| |
− | | |
− | === Fedora ===
| |
− | ==== Fedora Core 5 ====
| |
− | At least the following packages are required to build GnuCash from source on FC5:
| |
− | libtool-ltdl-devel
| |
− | guile-devel
| |
− | g-wrap-devel
| |
− | libgnomeprint22-devel
| |
− | libgnomeprintui22-devel
| |
− | gtkhtml3-devel
| |
− | | |
− | Suggested way to satify all requirements:
| |
− | # yum install libtool-ltdl-devel guile-devel g-wrap-devel libgnomeprint22-devel \
| |
− | libgnomeprintui22-devel gtkhtml3-devel
| |
− | | |
− | Please note that while the configure script only checks for GtkHTML up to 3.8, recent versions of GtkHTML ship with "libgtkhtml-3.8.pc" so yes, you CAN use gtkhtml3-3.10 on FC5.
| |
− | | |
− | ==== Fedora 13 ====
| |
− | On Fedora 13, the build instructions are very similar to the ones for Ubuntu 10.04 (above). First, we need install all dependencies of building GnuCash.
| |
− | | |
− | sudo yum-builddep gnucash -y
| |
− | sudo yum install texinfo git intltool libdbi-devel libdbi guile guile-devel doxygen gtkhtml3-devel -y
| |
− | | |
− | And then we create the directories for source code, and check out source code from git master
| |
− | | |
− | mkdir -p ~/development
| |
− | cd ~/development
| |
− | git clone https://github.com/Gnucash/gnucash/ gnucash
| |
− | cd gnucash
| |
− | | |
− | Then, we build it by following commands:
| |
− | | |
− | ./autogen.sh
| |
− | ./configure --prefix=$HOME/unstable/gnucash --enable-debug --enable-doxygen --enable-error-on-warning --enable-compile-warnings
| |
− | make all install
| |
− | | |
− | If there are no errors, we can run it:
| |
− | | |
− | ~/unstable/gnucash/bin/gnucash
| |
− | | |
− | === slib Issues ===
| |
− | | |
− | Ubuntu Hardy and Intrepid, and if the mailing lists are to be believed, many other distributions as well, produce the following error when running the ''configure'' script:
| |
− | | |
− | :configure:27495: checking for SLIB support
| |
− | :configure:27509: error:
| |
− | | |
− | ::Cannot find SLIB. Are you sure you have it installed?
| |
− | ::See http://bugzilla.gnome.org/show_bug.cgi?id=347922
| |
− | ::...
| |
− | | |
− | This is '''not''' a problem with gnucash! The issue seems to be that the ''slib'' installation does not properly configure guile. Two items need to be fixed: a guile initialization file has an incorrect path, and the initialization of the slib catalog is not done. On Ubuntu, the initialization file is /usr/share/guile/1.8/ice-9/slib.scm. There is no guarantee that this will be the same on another distribution. This file references the guile.init file supplied by ''slib'' to hook slib into guile. Look in the file to find:
| |
− | | |
− | :(load-from-path "slib/guile.init")
| |
− | | |
− | This line must be changed to reflect the correct location of the guile.init file:
| |
− | | |
− | :(load-from-path "/usr/share/slib/init/guile.init")
| |
− | | |
− | This path is correct for Ubuntu. It will probably not be the same on other distributions. Once this is fixed, slib must be invoked from guile to initialize the catalog:
| |
− | | |
− | :sudo guile -c "(use-modules (ice-9 slib)) (require 'printf)"
| |
− | | |
− | Then, if there were no errors, the returned status will be "0". We can check this by echoing the status variable from the environment:
| |
− | | |
− | :echo $?
| |
− | | |
− | Which should return 0. If it does, then the configure script should now get past the section which checks for ''slib''. Note that since standard users probably do not have write permissions to the slib and guile directories, the catalog initialization will fail unless you sudo! I recently discovered (7/1/09) that upgrading Ubuntu from Hardy to Intrepid silently breaks slib by undoing this change, forcing you to repeat the fix.
| |
− | | |
− | Finally, there are several additional suggestions that can be gleaned from others who have had this problem. I've listed these below in case they are needed on some distributions. As far as I can tell, on Ubuntu at least, all of these additional actions are superfluous.
| |
− | | |
− | :'''Environment Strings:'''
| |
− | | |
− | ::export SCM_INIT_PATH=/usr/share/slib/init/guile.init
| |
− | ::export SCHEME_LIBRARY_PATH=/usr/share/slib
| |
− | ::export GUILE_LOAD_PATH=/usr/share/guile/site /usr/share/guile/1.8 /usr/share/guile
| |
− | | |
− | :'''Symbolic Links:'''
| |
− | | |
− | ::ln -s /usr/share/guile/1.8/ /usr/share/guile/site
| |
− | ::ln -s /usr/share/slib/ /usr/share/guile/1.8/slib
| |
− | | |
− | Obviously, the paths here refer to the Ubuntu install. Yours may differ.
| |
− | | |
− | == Tutorial on Plugins ==
| |
− | This section describes how to build a plugin from scratch.
| |
− | | |
− | A plugin is a runtime loadable module which provides optional functions for GnuCash. There are a couple of plugins plus a skeleton example in src/plugins. To add your own plugin:
| |
− | | |
− | * Copy the example to a new plugin subdirectory:
| |
− | cd src/plugins
| |
− | cp -R example your-plugin-name
| |
− | * edit Makefile.am to add your-plugin-name to the subdirs list
| |
− | * edit configure.ac, inserting the following line near the end just before AC_OUTPUT:
| |
− | AC_CONFIG_FILES(src/plugins/your-plugin-name/Makefile src/plugins/your-plugin-name/ui/Makefile src/plugins/your-plugin-name/glade/Makefile)
| |
− | * edit the source files in your-plugin-name to actually do what you want, rename them to make sense, and adjust the filenames in the three Makefile.am to match.
| |
− | * Rebuild GnuCash:
| |
− | cd ../..
| |
− | ./autogen.sh
| |
− | ./configure --whatever options you usually use
| |
− | make
| |
− | make install
| |
− | * to force GnuCash to load the plugin upon start
| |
− | echo '(gnc:module-load "gnucash/plugins/your-plugin-name" 0)' >> ~/.gnucash/config.user
| |
− | | |
− | The result will be your new plugin being available in the Tools menu, or wherever you added it in the UI file.
| |
− | | |
− | == Building (twt scratch) ==
| |
− | | |
− | This is a place Twt is using collect some ideas to improve [[Gnucash#Building]] page
| |
− | | |
− | | |
− | == General Instructions ==
| |
− | | |
− | ===ORIGINAL Disclaimer===
| |
− | This page deals with building the '''developers version''' of GnuCash from the ''[[Git]] repository''. If you are searching instructions for the ''stable version'', you should read [[GnuCash#Installation]].
| |
− | | |
− | This page does not cover most optional third-party modules such as the Perl module Finance::Quote.
| |
− | | |
− | ===NEW Disclaimer===
| |
− | This page deals with building Gnucash in linux. Compiling GnuCash in Windows is possible, but much more difficult than in linux. For details, see [[Windows|GnuCash on Microsoft Windows]].
| |
− | | |
− | Once configured, the linux build process runs automatically. The specific details depend upon how you retrieved the source files, and what linux distribution and version you are using.
| |
− | | |
− | ====Get Source Files====
| |
− | Create a directory to hold your source files for compilation, such as ~/src , and put the source files there.
| |
− | | |
− | You can get the source files in 3 ways:
| |
− | 1. Download the official tarball
| |
− | 2. Get the sources via git
| |
− | 3. Get a pre-configured source file for your linux distribution
| |
− | | |
− | For the very latest source code, get the sources from [[Git]] or use the latest release source file of type <tt>gnucash-<version>.tar.gz</tt> from [https://sourceforge.net/projects/gnucash/files/ Sourceforge]. '''Do not attempt to use tarballs from GitHub.'''
| |
− | | |
− | You may be able to compile GnuCash using a pre-configured source file, which will bring in all the dependencies and create a binary package ready to install in your system using its package manager. See the distro-specific instructions below.
| |
− | | |
− | For example, after you use web browser to download the tarball for GnuCash version 99.9.9 into a ~/Downloads directory:
| |
− | cd ~/src
| |
− | mv ~/Downloads/gnucash-99.9.9.tar.bz2 .
| |
− | tar -xf gnucash-99.9.9.tar.bz2
| |
− | cd gnucash-99.9.9
| |
− | | |
− | OR for example, if you want to use git to retrieve the sources of GnuCash version 99.9.9 into a new gnucash directory:
| |
− | cd ~/src
| |
− | git clone git://github.com/Gnucash/gnucash.git gnucash
| |
− | cd gnucash
| |
− | git checkout 99.9.9
| |
− | | |
− | Important: If you need to use the most up-to-date sources (not necessarily a stable release), use the maint tag:
| |
− | git checkout maint
| |
− | | |
− | | |
− | ====Install Dependencies====
| |
− | See the distro-specific instructions below.
| |
− | | |
− | For distros or releases not described below, examine the [[Dependencies]] wiki page and the [https://github.com/Gnucash/gnucash/blob/trunk/README.dependencies README.dependencies] file for the list of build dependencies for your distribution, the [https://github.com/Gnucash/gnucash/blob/trunk/README.git README.git] file for notes on compiling gnucash, and the [https://github.com/Gnucash/gnucash/blob/trunk/HACKING HACKING] file for notes on hacking the code.
| |
− | | |
− | ====Prepare for Compilation====
| |
− | You can either compile GnuCash in the same directories where you copied the source tree, or in a separate build directory. Many folks prefer to compile using a separate directory.
| |
− | | |
− | If you retrieved the sources via git, you will need to generate the configure script. If you retrieved the tarball from Sourceforge, the script is already included.
| |
− | | |
− | Generate the configure script using autogen.sh (if you retrieved via git).
| |
− | | |
− | For example, if you're compiling git-retrieved sources in the source tree:
| |
− | cd ~/src/gnucash
| |
− | ./autogen.sh
| |
− | | |
− | If you're compiling git-retrieved sources in a separate build directory, you'll switch to the directory and run the autogen script from there.
| |
− | | |
− | For example, if you have the sources in ~/src/gnucash and ~/build for building:
| |
− | cd ~/build
| |
− | ../src/gnucash/autogen.sh
| |
− |
| |
− | The autogen script produces some messages as it proceeds.
| |
− | | |
− | ====Configure for Compilation====
| |
− | | |
− | If you used the autogen script, stay in the build directory.
| |
− | | |
− | If you downloaded the tarball, either cd to the top of the source tree or your build directory.
| |
− | | |
− | From the build directory, list your configure options. For example:
| |
− | ./configure --help
| |
− | Or for example:
| |
− | ../src/gnucash-99.9.9/configure
| |
− | | |
− | Some example options for configure might look as follows
| |
− | ./configure --prefix=/opt/gnucash-devel \
| |
− | --enable-debug --enable-doxygen \
| |
− | --enable-error-on-warning --enable-compile-warnings \
| |
− | [--enable-ofx [...]]
| |
− | ;--prefix: Where will the package be installed? If you install for test purposes, you might install it in your home directory to avoid ''sudo''ing. Many installations include ~/bin in your default path, so that might be a logical place to install a local copy for testing. You should never use the same path as you distribution!
| |
− | | |
− | :(Note: There are issues with the ''guile'' configuration of ''slib'' which will cause ''configure'' to fail on many distributions. See: [[#slib Issues]])
| |
− | | |
− | | |
− | | |
− | === Using separate build directory ===
| |
− | It is possible, and even preferable, to separate the directories containing source code, build files, and installed files.
| |
− | | |
− | To build GnuCash in another directory, cd to it before starting, then call the configure script by the relative path. For example:
| |
− | cd gnucash
| |
− | ./autogen.sh
| |
− | These steps were identical to the description above. Now the part which is different:
| |
− | mkdir build # Create the separate build directory
| |
− | cd build
| |
− | From within the build directory, you now have to call configure by its relative path. In this example, this is
| |
− | ../configure --prefix... # and all the other options
| |
− | | |
− | Then you can run ''make'', and ''make install'' as normal.
| |
− | | |
− | | |
− | ====Compile and Install====
| |
− | make
| |
− | :optional - if you changed something in the sources:
| |
− | make check
| |
− | :If your prefix was below $HOME:
| |
− | make install
| |
− | :else
| |
− | sudo make install
| |
− | :Sudo will ask you for the administrator password.
| |
− | | |
− | | |
− | ====Run GnuCash==== | |
− | | |
− | For example:
| |
− | /opt/gnucash-devel/bin/gnucash [options]
| |
− | :Again use the option ''--help'' to see a list.
| |
− | | |
− | | |
− | ==== Reverse commands ====
| |
− | In case you dislike your '''installation''', run from your build directory
| |
− | [sudo] make uninstall
| |
− | to remove it, ''before'' you change relevant options like the prefix.
| |
− | | |
− | To clean up your '''build''' directory, run
| |
− | make clean
| |
− | If you use a separate build directory, you can remove its content instead.
| |
− | | |
− | In some cases, that might not be sufficient, then clean your '''git''' gnucash directory with
| |
− | git clean -f
| |
− | | |
− | To remove everything not part of the repo, including directories and ignored files, run
| |
− | git clean -fdx -e /.project -e /.cproject -e /.autotools -e /.settings/
| |
− | '''Note:''' The exceptions are only necessary for Eclipse users. Else all their project information would be lost.
| |
− | | |
− | In this case you will have to start with ./autogen-sh again.
| |
− | | |
− | == Distro-specific Information ==
| |
− | See the [https://github.com/Gnucash/gnucash/blob/trunk/README.dependencies README.dependencies] file for library dependency notes.
| |
− | Also check out [[Dependencies|the dependencies page]].
| |
− | | |
− | === Slackware ===
| |
− | | |
− | Slackware installation is covered on [[Slackware|this page]].
| |
− | | |
− | === Debian ===
| |
− | | |
− | Running
| |
− | aptitude build-dep gnucash
| |
− | will install all the gnucash dependencies for the current release. You may need others.
| |
− | | |
− | On Debian, the packages you'll probably need are (among many others):
| |
− | | |
− | guile-1.6-dev
| |
− | swig
| |
− | libgnome2-dev
| |
− | libgnomeui-dev
| |
− | goffice-0-dev
| |
− | libgsf-1-dev
| |
− | libgtkhtml3.2-dev (3.6, 3.8, or 3.14 will also do)
| |
− | libofx-dev (to enable ofx support)
| |
− | libaqbanking16-dev (to enable aqbanking support. Don't use the newer libaqbanking20-dev - see [[AqBanking#Compatibility]]) | |
− | postgresql-dev (to enable sql support)
| |
− | | |
− | If you are building from git, you will also need the following installed before running autogen.sh:
| |
− | | |
− | git
| |
− | automake
| |
− | intltool
| |
− | libtool
| |
− | guile-1.6-dev
| |
− | | |
− | For the 2.0-branch of GnuCash you need additionally:
| |
− | libgwrapguile-dev OR
| |
− | guile-g-wrap
| |
− | | |
− | If you see the error "<unnamed port>: no code for module (g-wrap gw standard)" at runtime, see
| |
− | [[FAQ#Q: Running 2.0.x on Debian/Ubuntu crashes with "no code for module (g-wrap gw standard)". What does this mean?|this particular FAQ]].
| |
− | | |
− | === Ubuntu === | |
− | | |
− | Ubuntu releases are supported for various lengths of time; Wikipedia has a [http://en.wikipedia.org/wiki/List_of_Ubuntu_releases#Table_of_versions handy chart showing which versions are still supported].
| |
− | | |
− | '''Note:''' Dear Ubunteros, please do not copy and paste whole paragraphs. Instead adjust single sections in the form
| |
− | :Version x and newer:
| |
− | ::do this
| |
− | :Version x-1 and before:
| |
− | ::do that.
| |
− | :Can someone of you clean up this chapter and later remove this note?
| |
− | | |
− | ==== Compiling Newer Ubuntu Packages on an Older Release ("self-backporting") ====
| |
− | | |
− | If you are on an older version of Ubuntu (or Debian for that matter) such as Trusty 14.04 LTS, you may be able to compile a newer Ubuntu or Debian version yourself (essentially backporting it yourself).
| |
− | | |
− | If the newer package is available in Utopic 14.10, add a line in your /etc/apt/sources.list (or for newer versions of Ubuntu, include a new file in the /etc/apt/sources.list.d/ directory) with the correct format. For Utopic, the line would be:
| |
− | | |
− | deb-src <nowiki>http://archive.ubuntu.com/ubuntu</nowiki> utopic main restricted universe
| |
− | | |
− | You want the version (Utopic in above example) to be newer than the system release you have installed. Then you can use the following lines to compile and install whatever software version is in the newer Ubuntu release, "backporting" the newer software to your older release of Ubuntu.
| |
− | | |
− | cd ~/src/
| |
− | sudo aptitude update
| |
− | sudo apt-get install build-essential fakeroot
| |
− | sudo apt-get build-dep gnucash
| |
− | apt-get --compile source gnucash
| |
− | sudo dpkg -i *.deb
| |
− | | |
− | Easy as 1-2-3!*
| |
− | | |
− | * If <code>apt-get build-dep</code> fails on the gnucash packages with a message like "E: Build-Depends dependency for gnucash cannot be satisfied because the package XXXXX cannot be found" then that means you need additional updated libraries on your system in order to backport the software. Unless you know there are only one or two new libraries needed, it's most likely MUCH easier just to build GnuCash from source. (See directions below.)
| |
− | | |
− | * If dpkg -i *.deb fails because it lists a bunch of dependencies (this happens if you've never installed gnucash before) the easiest way to get apt to bring them in is using -f (fix broken) install:
| |
− | sudo apt-get -f install
| |
− | | |
− | ==== Ubuntu 14.04 LTS (Trusty Tahr) ==== | |
− | | |
− | To build from the source tarball download the source code tarball from http://www.gnucash.org/download.phtml and extract to an appropriate directory.
| |
− | | |
− | Next install the build dependencies
| |
− | sudo apt-get build-dep gnucash
| |
− | | |
− | (On a fresh install I also needed to purge guile-2.0 and install these packages as well follow the guide below for issues with slib)
| |
− | sudo apt-get purge guile-2.0
| |
− | sudo apt-get install slib libgnomeui-common libgnomeui-dev guile-1.8 guile-1.8-dev checkinstall
| |
− | | |
− | if want to use the alternative database backends then:
| |
− | sudo apt-get install libdbd-{sqlite3,pgsql,mysql}
| |
− | | |
− | In a terminal cd to the gnucash directory and run
| |
− | ./configure --prefix=/path/to/install/gnucash/to --enable-compile-warnings --with-html-engine=webkit
| |
− | make
| |
− | sudo checkinstall
| |
− | | |
− | The prefix might be, for example,
| |
− | --prefix=/usr/bin/gnucash2.4
| |
− | | |
− | Running checkinstall will ask you some options on how the package is named, etc. This will produce a .DEB which you can then simply install (adjust the path/filename accordingly)
| |
− | sudo dpkg -i /path/to/deb/gnucash_2.4.15-1_amd64.deb
| |
− | | |
− | ==== Ubuntu 12.04 LTS (Precise Pangolin) ====
| |
− | | |
− | To build using the git repository first install git
| |
− | sudo apt-get install git
| |
− | then in an appropriate directory run
| |
− | git clone git://github.com/Gnucash/gnucash.git gnucash
| |
− | which will make a git repository in a directory gnucash.
| |
− | | |
− | Next install the build dependencies
| |
− | sudo apt-get build-dep gnucash
| |
− | and a few required or useful tools
| |
− | sudo apt-get install libtool swig git libgnomeui-dev xsltproc libxslt-dev doxygen
| |
− | | |
− | if want to use the alternative database backends then:
| |
− | sudo apt-get install libdbd-{sqlite3,pgsql,mysql}
| |
− | | |
− | In a terminal cd to the gnucash directory and checkout the version that you want, so to get the latest 2.4 branch version:
| |
− | git checkout 2.4
| |
− | or to build a released version, for example:
| |
− | git checkout 2.4.9
| |
− | | |
− | Then to build it
| |
− | ./autogen.sh
| |
− | ./configure --prefix=/path/to/install/to/gnucash --enable-compile-warnings --with-html-engine=webkit --disable-error-on-warning
| |
− | make
| |
− | sudo make install
| |
− | | |
− | The prefix might be, for example,
| |
− | --prefix=/usr/bin/gnucash2.4
| |
− | Then to run it, assuming there were no errors
| |
− | /usr/bin/gnucash2.4/bin/gnucash
| |
− | | |
− | ==== Ubuntu 11.10 (Oneiric Ocelot) ====
| |
− | | |
− | To build using the git repository first install git-core
| |
− | sudo apt-get install git-core
| |
− | then in an appropriate directory run
| |
− | git clone git://github.com/Gnucash/gnucash.git gnucash
| |
− | which will make a git repository in a directory gnucash.
| |
− | | |
− | The main branch in git is conventionally named master, whereas in this repository it is named trunk (due to the fact that it is derived from a subversion repository I believe). This is not a problem but if you would rather have it named master then cd into the gnucash directory and
| |
− | | |
− | git branch -t master refs/remotes/origin/trunk
| |
− | git checkout master
| |
− | | |
− | Next install the build dependencies
| |
− | sudo apt-get build-dep gnucash
| |
− | and a few required or useful tools
| |
− | sudo apt-get install libtool swig git
| |
− | | |
− | if want to use the alternative database backends then:
| |
− | sudo apt-get install libdbd-{sqlite3,pgsql,mysql}
| |
− | | |
− | In a terminal cd to the gnucash directory and checkout the version that you want, so to get the latest 2.4 branch version:
| |
− | git checkout 2.4
| |
− | or to build a released version, for example:
| |
− | git checkout 2.4.7
| |
− | | |
− | Then to build it
| |
− | ./autogen.sh
| |
− | ./configure --prefix=/path/to/install/to/gnucash --enable-compile-warnings --with-html-engine=webkit
| |
− | make
| |
− | sudo make install
| |
− | | |
− | The prefix might be, for example,
| |
− | --prefix=/usr/bin/gnucash2.4
| |
− | Then to run it, assuming there were no errors
| |
− | /usr/bin/gnucash2.4/bin/gnucash
| |
− | | |
− | ==== Ubuntu 10.10 (Maverick Meerkat) ====
| |
− | | |
− | Follow the steps described for [[#Ubuntu 10.04 LTS (Lucid Lynx)]].
| |
− | | |
− | ==== Ubuntu 10.04 LTS (Lucid Lynx) ====
| |
− | | |
− | First, we need install all dependencies of building GnuCash.
| |
− | | |
− | sudo aptitude build-dep gnucash
| |
− | sudo aptitude install texinfo git intltool libdbi0-dev libdbd-{sqlite3,pgsql,mysql} guile-1.8 guile-1.8-dev doxygen libwebkit-dev
| |
− | | |
− | Since Ubuntu/Debian doesn't have guile-1.8-slib, which is actually just a softlink to slib, we create the softlink and generate the catalog manually.
| |
− | | |
− | cd /usr/share/guile/1.8
| |
− | sudo ln -s ../../slib slib
| |
− | sudo guile -c "(use-modules (ice-9 slib)) (require 'new-catalog)"
| |
− | | |
− | And then we create the directories for source code and installation, and check out source code from git master
| |
− | | |
− | mkdir -p ~/unstable ~/development
| |
− | rm -rf ~/unstable/gnucash ~/development/gnucash
| |
− | cd ~/development
| |
− | git clone https://github.com/Gnucash/gnucash/ gnucash
| |
− | cd gnucash
| |
− | | |
− | Then, we build it by following commands:
| |
− | | |
− | ./autogen.sh
| |
− | ./configure --prefix=$HOME/unstable/gnucash --enable-debug --enable-doxygen --enable-error-on-warning --enable-compile-warnings
| |
− | make all install
| |
− | | |
− | If there are no errors, we can run it:
| |
− | | |
− | ~/unstable/gnucash/bin/gnucash
| |
− | | |
− | === Gentoo ===
| |
− | | |
− | Gentoo instructions can be found on [[Gentoo|Gnucash-svn installation on Gentoo]].
| |
− | | |
− | === Mac OS X ===
| |
− | | |
− | Mac OS X instructions can be found on [[MacOSX/Quartz]] (This is the procedure used for building the binary packages) or [[MacOSXInstallation| gnucash installation from source on Mac OS X]].
| |
− | | |
− | === Fedora ===
| |
− | ==== Fedora Core 5 ====
| |
− | At least the following packages are required to build GnuCash from source on FC5:
| |
− | libtool-ltdl-devel
| |
− | guile-devel
| |
− | g-wrap-devel
| |
− | libgnomeprint22-devel
| |
− | libgnomeprintui22-devel
| |
− | gtkhtml3-devel
| |
− | | |
− | Suggested way to satify all requirements:
| |
− | # yum install libtool-ltdl-devel guile-devel g-wrap-devel libgnomeprint22-devel \
| |
− | libgnomeprintui22-devel gtkhtml3-devel
| |
− | | |
− | Please note that while the configure script only checks for GtkHTML up to 3.8, recent versions of GtkHTML ship with "libgtkhtml-3.8.pc" so yes, you CAN use gtkhtml3-3.10 on FC5.
| |
− | | |
− | ==== Fedora 13 ====
| |
− | On Fedora 13, the build instructions are very similar to the ones for Ubuntu 10.04 (above). First, we need install all dependencies of building GnuCash.
| |
− | | |
− | sudo yum-builddep gnucash -y
| |
− | sudo yum install texinfo git intltool libdbi-devel libdbi guile guile-devel doxygen gtkhtml3-devel -y
| |
− | | |
− | And then we create the directories for source code, and check out source code from git master
| |
− | | |
− | mkdir -p ~/development
| |
− | cd ~/development
| |
− | git clone https://github.com/Gnucash/gnucash/ gnucash
| |
− | cd gnucash
| |
− | | |
− | Then, we build it by following commands:
| |
− | | |
− | ./autogen.sh
| |
− | ./configure --prefix=$HOME/unstable/gnucash --enable-debug --enable-doxygen --enable-error-on-warning --enable-compile-warnings
| |
− | make all install
| |
− | | |
− | If there are no errors, we can run it:
| |
− | | |
− | ~/unstable/gnucash/bin/gnucash
| |
− | | |
− | === slib Issues ===
| |
− | | |
− | Ubuntu Hardy and Intrepid, and if the mailing lists are to be believed, many other distributions as well, produce the following error when running the ''configure'' script:
| |
− | | |
− | :configure:27495: checking for SLIB support
| |
− | :configure:27509: error:
| |
− | | |
− | ::Cannot find SLIB. Are you sure you have it installed?
| |
− | ::See http://bugzilla.gnome.org/show_bug.cgi?id=347922
| |
− | ::...
| |
− | | |
− | This is '''not''' a problem with gnucash! The issue seems to be that the ''slib'' installation does not properly configure guile. Two items need to be fixed: a guile initialization file has an incorrect path, and the initialization of the slib catalog is not done. On Ubuntu, the initialization file is /usr/share/guile/1.8/ice-9/slib.scm. There is no guarantee that this will be the same on another distribution. This file references the guile.init file supplied by ''slib'' to hook slib into guile. Look in the file to find:
| |
− | | |
− | :(load-from-path "slib/guile.init")
| |
− | | |
− | This line must be changed to reflect the correct location of the guile.init file:
| |
− | | |
− | :(load-from-path "/usr/share/slib/init/guile.init")
| |
− | | |
− | This path is correct for Ubuntu. It will probably not be the same on other distributions. Once this is fixed, slib must be invoked from guile to initialize the catalog:
| |
− | | |
− | :sudo guile -c "(use-modules (ice-9 slib)) (require 'printf)"
| |
− | | |
− | Then, if there were no errors, the returned status will be "0". We can check this by echoing the status variable from the environment:
| |
− | | |
− | :echo $?
| |
− | | |
− | Which should return 0. If it does, then the configure script should now get past the section which checks for ''slib''. Note that since standard users probably do not have write permissions to the slib and guile directories, the catalog initialization will fail unless you sudo! I recently discovered (7/1/09) that upgrading Ubuntu from Hardy to Intrepid silently breaks slib by undoing this change, forcing you to repeat the fix.
| |
− | | |
− | Finally, there are several additional suggestions that can be gleaned from others who have had this problem. I've listed these below in case they are needed on some distributions. As far as I can tell, on Ubuntu at least, all of these additional actions are superfluous.
| |
− | | |
− | :'''Environment Strings:'''
| |
− | | |
− | ::export SCM_INIT_PATH=/usr/share/slib/init/guile.init
| |
− | ::export SCHEME_LIBRARY_PATH=/usr/share/slib
| |
− | ::export GUILE_LOAD_PATH=/usr/share/guile/site /usr/share/guile/1.8 /usr/share/guile
| |
− | | |
− | :'''Symbolic Links:'''
| |
− | | |
− | ::ln -s /usr/share/guile/1.8/ /usr/share/guile/site
| |
− | ::ln -s /usr/share/slib/ /usr/share/guile/1.8/slib
| |
− | | |
− | Obviously, the paths here refer to the Ubuntu install. Yours may differ.
| |
− | | |
− | == Tutorial on Plugins ==
| |
− | This section describes how to build a plugin from scratch.
| |
− | | |
− | A plugin is a runtime loadable module which provides optional functions for GnuCash. There are a couple of plugins plus a skeleton example in src/plugins. To add your own plugin:
| |
− | | |
− | * Copy the example to a new plugin subdirectory:
| |
− | cd src/plugins
| |
− | cp -R example your-plugin-name
| |
− | * edit Makefile.am to add your-plugin-name to the subdirs list
| |
− | * edit configure.ac, inserting the following line near the end just before AC_OUTPUT:
| |
− | AC_CONFIG_FILES(src/plugins/your-plugin-name/Makefile src/plugins/your-plugin-name/ui/Makefile src/plugins/your-plugin-name/glade/Makefile)
| |
− | * edit the source files in your-plugin-name to actually do what you want, rename them to make sense, and adjust the filenames in the three Makefile.am to match.
| |
− | * Rebuild GnuCash:
| |
− | cd ../..
| |
− | ./autogen.sh
| |
− | ./configure --whatever options you usually use
| |
− | make
| |
− | make install
| |
− | * to force GnuCash to load the plugin upon start
| |
− | echo '(gnc:module-load "gnucash/plugins/your-plugin-name" 0)' >> ~/.gnucash/config.user
| |
− | | |
− | The result will be your new plugin being available in the Tools menu, or wherever you added it in the UI file.
| |
TWT is collecting some stuff for querying or reporting in GnuCash via Libreoffice. (Based on email discussion "gnucash, sql, and libre office" on gnucash-user starting Feb 18, 2016).
that last libsqliteodbc installs the sqlite to ODBC driver and registers it in the system. The instructions imply you'll also need to install the sqlite3 package but I think you probably don't need it for this.
Use the tool to create a new sqlite3 data source and connect it to the sqlite3 file you created with gnucash.
4) now you can open LibreOffice Base, create a new Database, connected to an existing ODBC data source, choose the one you created in step 3, and when Base opens you will see the inscrutable tables in GnuCash.
5) [Insert info here about how to make it useful (how to join tables usefully, etc.)]
6) Presumably you close Base and then save a fresh copy of GnuCash to the same file to update your data again and reopen Base to reconnect to updated data, preserving your queries and joins.
Hi -- I know that probably wasn't what you were thinking but I restructured the whole section. The lower part of the page needs a similar restructuring but I need to get to something else! Twt (talk) 17:34, 15 August 2019 (UTC)
You entered a change to the FAQ under "How do I get rid of strange unreadable characters or adjust the font size"
The question itself is problematic, in that it covers two topics ("strange" characters *and* font size). However, its placement under Localization suggests that its primary purpose is for strange characters, rather than font size. Indeed, there is a separate section just prior to this one in the FAQ that covers altering the appearance of GnuCash in much greater detail. This section refers users to the highly detailed GTK3 page, which provides a much more thorough and accurate description of the font styling question.
I think if you take a look at the GTK3 page, you will see what I am talking about; I think most of what you've added here is covered there.
Since you brought this section of the FAQ to my attention, I may in fact further edit this question drastically so that it covers only the issue of strange unreadable characters, and further refers readers to the respective GTK pages for instruction on setting fonts.
I'm writing all this to you so that you don't feel that your efforts are summarily dismissed by some random smartass on the interwebs.
Hey... no problem. After spending a bit of time on it I was no longer very happy with it anyway. I hope what I wrote (and the code changes I made) are helpful anyway. BY THE WAY you can sign your name to comments (as I'm doing below) by typing four tildes ~ on a line