Slackware

From GnuCash
Revision as of 07:34, 1 April 2015 by Botzko (talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Gnucash on Slackware

With Gnucash having evolved into a Gnome 2 application, and Slackware Gnome support being picked up by Dropline Gnome, it has become much easier to install Gnucash on a Slackware system. In fact, we may even hope for the day when Gnucash itself is distributed with Dropline Gnome. In the meantime, here are some success stories.

See also Building for a discussion of building GnuCash from source code. These pages could be better integrated.

Prebuilt packages / multi-version

  • pre-built GnuCash packages for Slackware, including packages for Slack 7 and 8. Haven't tried these - perhaps someone could comment on them.
  • GNOME SlackBuild version 2.22 for Slackware 12.1 provides GnuCash version 2.2.5 when you install gsb-complete. This is a full install of gnome. (Haven't checked to see which smaller meta-package includes GnuCash.)
  • GNOME SlackBuild version 2.26 for Slackware 13.0 similarly provides GnuCash version 2.2.9 when you install gsb-complete. If you didn't want the whole Gnome desktop, you can do the following: Follow the instructions on GNOME SlackBuild Download & Installation sections "Manual slapt-get installation" and "Configuring package manager." Then "slapt-get --update" "slapt-get --add-keys" "slapt-get --install glib2 gtk+2" (be advised that this step replaces the official slackware packages with modified gnomeslackbuild packages for these two libraries) "slapt-get --install libgsf" "slapt-get --install gnucash". You can also optionally install gnucash-docs.

Slack 14.1 + GnuCash 2.6.X

Requirements

Requirements are:

  • libgnomecanvas
  • goffice 0.8 - on slackbuild.org search for goffice0.8 not goffice
  • webkitgtk
  • libofx - if you enable ofx by --enable-ofx switch
  • libdbi and libdbi-drivers - if you enable dbi (database storage) by --enable-dbi (use --disable-dbi otherwise)

Installation

Install from slackbuild.org

GnuCash exists as a package on slackbuild.org. At the moment of writting scripts are for version 2.6.1. You can find all requirements there.

Manual

You can use these instructions to compile it manually (all requirements must be installed)

 mkdir /tmp/gnucash
 cd /tmp/gnucash
 wget -O gnucash-2.6.5.tar.bz2 "http://downloads.sourceforge.net/project/gnucash/gnucash%20%28stable%29/2.6.5/gnucash-2.6.5.tar.bz2"
 tar -xjf gnucash-2.6.5.tar.bz2
 cd gnucash-2.6.5
 ./configure \
   --prefix=/usr \
   --libdir=/usr/lib${LIBDIRSUFFIX} \
   --sysconfdir=/etc \
   --localstatedir=/var \
   --mandir=/usr/man \
   --docdir=/usr/doc/$PRGNAM-$VERSION \
   --build=$ARCH-slackware-linux \
   --enable-static=libgoffice \
   --disable-dbi \
   --enable-html-docs \
 make
 make install
 /usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas >/dev/null 2>&1

Please execute the last command after installation or you will receive error like: <GLib-GIO> Settings schema 'org.gnucash.general' is not installed

Slack 14 + GnuCash 2.4.13

I'll be darned, got Gnucash and required Gnome dependencies to compile from source on a rather fresh Slack 14 install. No Dropline Gnome, no GSB, no prebuilt anything. My notes are sketchy but here's the general idea:

First, slib: Downloaded slib 3b4 from csail.mit.edu. More helpful than install instructions that come with SLIB was this Guile page. Then it went approximately like this:

 cd /usr/share && unzip slib-3b4.zip
 cd slib
 make infoz
 make install
 ln -s /usr/local/lib/slib /usr/share/guile/1.8/slib
 ln -s /usr/local/lib/slib /usr/share/slib

This is ugly so if anyone can explain the proper way to install slib, please let me know. One thing about doing it this way: it was not necessary to set SCHEME_LIBRARY_PATH

I put (use-modules (ice-9 slib)) in my ~/.guile

In guile, ran

 (use-modules (ice-9 slib))
 (require 'new-catalog)
 (quit)

Checked that the following runs without errors (or indeed, without any error at all) from the command line:

 guile -c "(use-modules (ice-9 slib)) (require 'printf)"

After that, it was a matter of installing the Gnome libraries. Each was downloaded from ftp.gnome.org along with its checksum. Each install was pretty much ./configure && make && make install, with the exceptions noted below. Here's a list of what I installed (in order installed):

NB: pretty early on I had to set PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig (I'm running a 64 bit system).

  • ORBit2-2.14.19 (installs ORBit-CosNaming-2.0 too)
  • libbonobo-2.32.1
  • gnome-mime-data-2.18.0
  • gnome-vfs-2.24.4
  • gnome-libs-1.4.2
  • libgnome-2.32.1
  • libgnomecanvas-2.30.3
  • libbonoboui-2.24.5
  • goffice-0.8.17 (NB not the latest - the GnuCash configure script wouldn't take 0.10.5)
  • gtkhtml-3.16.3 (not the latest, and a royal pain, see below)
  • libgnomeui-2.24.5

Then finally, gnucash-2.4.13 from gnucash.org and ./configure --disable-dbi && make && make install. You could install libdbi but I didn't.

Gnucash installs gconf files to /usr/local/etc/gconf so you will probably have to tell gconfd where to find them (or else get repeated configuration warning popups on startup). I added this line to /etc/gconf/2/local-defaults.path:

xml:readonly:/usr/local/etc/gconf/gconf.xml.defaults

And then you have to kill gconfd-2 (just sending it a HUP didn't seem to work). gconfd-2 evidently restarts on its own when you start gnucash.

- J. Milgram

PS, here's how I got gtkhtml-3.16.3 to compile in Slack 14, as a patch:

 diff -ru gtkhtml-3.16.3/a11y/Makefile.in gtkhtml-3.16.3-jm/a11y/Makefile.in
 --- gtkhtml-3.16.3/a11y/Makefile.in 2008-01-06 07:01:37.000000000 -0500
 +++ gtkhtml-3.16.3-jm/a11y/Makefile.in 2013-09-08 20:18:50.706156910 -0400
 @@ -244,7 +244,7 @@
  top_srcdir = @top_srcdir@
  END = 
  INCLUDES = -I$(top_srcdir)/src $(GTKHTML_CFLAGS) $(I18N_LIB_CFLAGS)
 -AM_CFLAGS = $(GAIL_CFLAGS) -DGTK_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DG_DISABLE_DEPRECATED=1 -DGNOME_DISABLE_DEPRECATED=1
 +AM_CFLAGS = $(GAIL_CFLAGS)
  noinst_LTLIBRARIES = libgtkhtml-a11y.la
  libgtkhtml_a11y_la_SOURCES = \
   cell.h      \
 diff -ru gtkhtml-3.16.3/a11y/text.c gtkhtml-3.16.3-jm/a11y/text.c
 --- gtkhtml-3.16.3/a11y/text.c 2007-10-12 02:36:54.000000000 -0400
 +++ gtkhtml-3.16.3-jm/a11y/text.c 2013-09-08 20:19:36.994578223 -0400
 @@ -27,7 +27,7 @@
  #include <atk/atkhypertext.h>
  #include <atk/atkhyperlink.h>
  #include <glib/gi18n-lib.h>
 -#include <glib/gmacros.h>
 +#include <glib.h>
  #include <pango/pango.h>
  #include "gtkhtml.h"
  #include "htmlengine.h"
 diff -ru gtkhtml-3.16.3/components/html-editor/Makefile.in gtkhtml-3.16.3-jm/components/html-editor/Makefile.in
 --- gtkhtml-3.16.3/components/html-editor/Makefile.in 2008-01-06 07:01:37.000000000 -0500
 +++ gtkhtml-3.16.3-jm/components/html-editor/Makefile.in 2013-09-08 20:18:32.130389139 -0400
 @@ -328,13 +328,10 @@
   -DGTKHTML_DATADIR=\""$(gtkhtml_data)"\"  \
   -DGNOMELOCALEDIR=\""$(prefix)/$(DATADIRNAME)/locale"\"\
   -DGLADE_DATADIR=\"$(gladedir)\"   \
 - -DGDK_DISABLE_DEPRECATED=1   \
 - -DG_DISABLE_DEPRECATED=1   \
   -DPREFIX=\""$(prefix)"\"   \
   -DSYSCONFDIR=\""$(sysconfdir)"\"  \
   -DDATADIR=\""$(datadir)"\"   \
 - -DLIBDIR=\""$(datadir)"\"   \
 - -DBONOBO_DISABLE_DEPRECATED=1
 + -DLIBDIR=\""$(datadir)"\"
  
  
  # CORBA stuff
 diff -ru gtkhtml-3.16.3/src/Makefile.in gtkhtml-3.16.3-jm/src/Makefile.in
 --- gtkhtml-3.16.3/src/Makefile.in 2008-01-06 07:01:37.000000000 -0500
 +++ gtkhtml-3.16.3-jm/src/Makefile.in 2013-09-08 20:18:00.986778485 -0400
 @@ -383,9 +383,6 @@
   -DG_LOG_DOMAIN=\"gtkhtml\"
  
  AM_CFLAGS = \
 - -DGDK_DISABLE_DEPRECATED=1   \
 - -DG_DISABLE_DEPRECATED=1   \
 - -DGNOME_DISABLE_DEPRECATED=1   \
   -DPREFIX=\""$(prefix)"\"   \
   -DLIBDIR=\""$(datadir)"\"   \
   -DDATADIR=\""$(datadir)"\"   \
 @@ -395,7 +392,6 @@
   -DGLADE_DATADIR=\"$(gladedir)\"   \
          -DGNOMELOCALEDIR=\""$(prefix)/$(DATADIRNAME)/locale"\"
  
 -# -DGTK_DISABLE_DEPRECATED=1
  lib_LTLIBRARIES = libgtkhtml-3.14.la
  libgtkhtmldir = $(includedir)/libgtkhtml-@GTKHTML_API_VERSION@/gtkhtml
  
 diff -ru gtkhtml-3.16.3/src/htmlobject.c gtkhtml-3.16.3-jm/src/htmlobject.c
 --- gtkhtml-3.16.3/src/htmlobject.c 2007-11-25 21:29:58.000000000 -0500
 +++ gtkhtml-3.16.3-jm/src/htmlobject.c 2013-09-08 20:21:04.866479673 -0400
 @@ -23,8 +23,7 @@
  
  #include <config.h>
  #include <string.h>
 -#include <glib/gdataset.h>
 -#include <glib/gquark.h>
 +#include <glib.h>
  
  #include "htmlclue.h"
  #include "htmlclueflow.h"
 diff -ru gtkhtml-3.16.3/src/test-stress.c gtkhtml-3.16.3-jm/src/test-stress.c
 --- gtkhtml-3.16.3/src/test-stress.c 2007-10-12 02:36:37.000000000 -0400
 +++ gtkhtml-3.16.3-jm/src/test-stress.c 2013-09-08 20:22:37.274324416 -0400
 @@ -1,7 +1,7 @@
  #include <string.h>
  #include <stdio.h>
  #include <stdlib.h>
 -#include <glib/gstring.h>
 +#include <glib.h>
  #include <gtk/gtkmain.h>
  #include <gtk/gtkscrolledwindow.h>
  #include <gtk/gtkwindow.h>
 diff -ru gtkhtml-3.16.3/src/test-suite.c gtkhtml-3.16.3-jm/src/test-suite.c
 --- gtkhtml-3.16.3/src/test-suite.c 2007-10-12 02:36:37.000000000 -0400
 +++ gtkhtml-3.16.3-jm/src/test-suite.c 2013-09-08 20:22:04.306736568 -0400
 @@ -1,6 +1,6 @@
  #include <string.h>
  #include <stdio.h>
 -#include <glib/gstring.h>
 +#include <glib.h>
  #include <gtk/gtkmain.h>
  #include <gtk/gtkscrolledwindow.h>
  #include <gtk/gtkwindow.h>


Slack 12 or Slamd64 12 + GnuCash 2.2.4

Success! A minimal install of gnome dependencies to get GnuCash installed on slackware!

Install the following packages from GWARE Rev H gnome 2.20.3

- libgsf-gnome

  o libORbit2
  o libbonobo
  o libgnomevfs2
     + gnome-mime-data-2.0
     + libconf2

- libgnomeui

  o libbonoboui
     + libgnomecanvas
        -libgnome
        - gail
     + glib 2.14.4 - replaces stock slackware package to fix an error durring compile and because you will need it anyway
  o gnome-keyring
  o gtk 2.12.5 - replaces stock slackware package to fill the gdk-pixbuf version dependency
     + pango 1.18.4 - replaces stock slackware package.

- libgtkhtml 3


Note, glib gtk and pango updates are only if you are using GWARE 2.20.3 packages. You can probably find older versions that work with the default slackware packages.

Install the following packages from slackbuilds.org

- libgoffice 0.4.0 at least - there is no gware package for this. The package listed slackbuilds.org is current and works after installing the mentioned Gware 2.20.3 packages and leaving all other packages as stock slackware.

- slib - slackbuilds.org is not accepting packages until the release of slackware 12.1 at the time of this writing. However, there is plenty of information already listed to getting slib installed. I used slib3a1.

- swig - whatever is listed and slackbuilds.org works for this install.


Optional dependencies

aqbanking - only if you want to do online banking and you have your bank's server information

OFX - only if you install aqbanking


TO Build your own package! Slackbuilds will hopefully accept the script I wrote after slackware 12.1 is released. In the mean time here is the core of the packageing

 CFLAGS="$SLKCFLAGS" \
 CXXFLAGS="$SLKCFLAGS" \
 LDFLAGS="$SLKLDFLAGS$LIBSUFFIX" \
 ./configure \
   --libdir="$LIBDIR$LIBSUFFIX" \
   --prefix=/usr \
   --sysconfdir=/etc \
   --localstatedir=/var \
   --mandir=/usr/man
 
 cd $PKG
 /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz

Slack 11 + GnuCash 2

Outline follows. See this page with more details.

  1. Start with a fresh Slack 11 installation
  2. Do a full dropline install. Probably only a few Dropline packages are required - if someone has time it would be a great contribution to figure out what the minimum set of packages is.
  3. removepkg guile-1.8.0-i486-1
  4. Install guile 1.6.8 from sources
  5. Install g-wrap 1.3.4 from sources
  6. Install slib 2d6
  7. ./configure && make && make install.


Slack 11 + GWARE Rev H. - Sorry for the length. The following are a guide lines to using GWARE and trying to stick with the original versions of packages that come with slackware. Please read ALL the steps and ALL the notes before begining the install process.

Outline:

  1. Fresh Slackware 11.0 install
  2. Full GWARE Rev. H install
  3. install libgsf-1.14.1 from the slackware sources *I
  4. Guile Does not need to be reinstalled... I think... if you have problems use the same trick as libgsf *II
  5. ln -s /usr/share/guile/1.8 /usr/share/guile/site
  6. install Slib3a1 and set guile up to use it *III
  7. install guile-lib 0.1.3 with prefix /usr *IV
  8. install g-wrap 1.9.6 with prefix /usr *V
  9. install gnucash-2.0.4 *VI

I - the libgsf-1.14.1 that comes with slackware is missing the libgsf-gnome lib files that are required by gnucash. Also, GWARE Rev H. does not include a libgsf package.

To install libgsf automagically as a slackware package:

  1. download the libgsf files from a slackware mirror
  2. edit the BUILD variable in libgsf.SlackBuild to be something like '1gca' so that you know it is different than the one installed with slackware.
  3. upgradepkg /location/of/libgsf-1.14.1-i486-1gca.tgz

II - guile-lib and g-wrap need to be installed with the prefix /usr because they will install files into /prefix/share/guile/site.

III - I didn't try slib 3a2. However, 3a3 and 3a4 were not setting up correctly.

To install slib3a1:

  1. tar xvzf /path/to/slib3a1.tar.gz -C /usr/local/lib/slib
  2. cd /usr/local/lib/slib
  3. make
  4. make install

NOTE: slib3a1 makefile appears to only install the documentation where as slib3a3 and 3a4 install slib into /usr/local/lib/slib

To set up guile to use slib3a1 (IE: create the slibcat file):

  1. ln -s /usr/local/lib/slib /usr/share/guile/site/slib
  2. guile -l /usr/share/guile/site/slib/
  3. guile> (require 'new-catalog)
  4. guile> (quit)

NOTE: we can test the guile/slib set up with:

guile -c "(use-modules (ice-9 slib)) (require 'printf)"

the output should be nothing. If it says something, then I can't help you.


IV - g-wrap's testsuite will fail if guile-lib is not installed. I do not know if this is requiered by anything other than to pass g-wraps tests

To install guile-lib:

./configure --prefix=/usr && make && make install

The test suite might have one or two fails arround os.process.scm


V - newer versions can produce an error when gnucash loads.

To install g-wrap:

./configure --prefix=/usr && make && make check && make install

There were no problems.


VI - This takes a while:

./configure && make && make check && make install

I recieved "FAILURE end of quarter test-freq-spec.c" and a few ** CRITICAL ** messages for qof_class_get_parameter, xaccSplitSetAccount, FindCommonExclSCurrency.

Slack 10.2

Slack 10.1 + GnuCash 1.8

See this writeup by J. Milgram and also this writeup provided by Amigo Linux.

Slack 9.0/9.1 + GnuCash 1.8

See this writeup by RJ Marquette. RJ has also provided directions for installing the help files.

--Milgram 19:28, 7 January 2007 (EST)