Package Details: gnucash 2.6.18-4

Git Clone URL: https://aur.archlinux.org/gnucash.git (read-only)
Package Base: gnucash
Description: A personal and small-business financial-accounting application
Upstream URL: http://www.gnucash.org
Licenses: GPL
Submitter: City-busz
Maintainer: Schmeidenbacher
Last Packager: Schmeidenbacher
Votes: 56
Popularity: 14.969607
First Submitted: 2017-06-30 07:39
Last Updated: 2017-11-02 22:08

Pinned Comments

Schmeidenbacher commented on 2017-10-10 16:48

All right. This is how i do it. Some things up front. This is a complete version. Meaning it will describe the whole process from point zero.

Please read the whole thing first!

**You will most certainly have to adjust it to your setup!**

Additionally any packages you have already build and know they are working, you skip the build process of and just include them where needed.

You should have the following installed: base-devel, git and devtools.

$ sudo pacman -S base-devel git devtools --needed

Take note that aur-helpers will do nothing for you. Sometimes other installed packages on your system interfere with a build, in that case you'll have to do a clean build. Any specifics to the process can be found here (https://wiki.archlinux.org/index.php/DeveloperWiki:Building_in_a_Clean_Chroot) if there are any questions.

Additionally, i have a tmpfs RAM-Disk mounted in /tmp, which i usually use to build.

The filesystem you build on will need to be mounted with the suid and the exec flag on, or it won't work. So in my case, since i usually don't have /tmp mounted that way i have to do this:

$ sudo mount -o remount,exec,suid /tmp

Then i prepare the chroot as follows:

$ mkdir /tmp/source/chroot -p
$ cd /tmp/source
$ sudo mkarchroot chroot/root base-devel

With the chroot in place it's time to get the needed package sources. (Again, skip what's already build and working).

$ git clone "https://aur.archlinux.org/goffice0.8.git"
$ git clone "https://aur.archlinux.org/webkitgtk.git"
$ git clone "https://aur.archlinux.org/gnucash.git"

First off: goffice0.8

$ cd goffice0.8/
$ makechrootpkg -T -r ../chroot/

For a quick explanation:
The -T flag tells it to create a temporary copy of the original chroot, allowing for the same basic installation to be reused. and the -r flag points it to the the base dir in which the actual chroot we earlier created resides.

This usually builds pretty fast.
I keep the build packages around, so that i don't have to rebuild them in the same place the system keeps em:

$ sudo cp *.pkg.tar.xz /var/cache/pacman/pkg/.

Now it's time for the big one. webkitgtk2 takes hours to build. For me it's something between 5 to 6 hours. It's sadly needed until the next stable branch of gnucash is released which won't need this anymore.
Basically it's the exact same as with goffice0.8. Again: if you have a working version, you won't need to build this. But since the cairo update, you probably will.

$ cd ../webkitgtk/
$ makechrootpkg -T -r ../chroot/
$ sudo cp *.pkg.tar.xz /var/cache/pacman/pkg/.

Now we have every package to actually build gnucash.

$ cd ../gnucash/

Gnucash needs the aforementioned packages to get built, you use the -I flag with makechrootpkg to install it in the build copy of your chroot for that one build. Note, again, that you might need to adjust the paths to those packages.

$ makechrootpkg -T -r ../chroot/ -I ../goffice0.8/goffice0.8-0.8.17-4-x86_64.pkg.tar.xz -I ../webkitgtk/webkitgtk2-2.4.11-6-x86_64.pkg.tar.xz
$ sudo cp *.pkg.tar.xz /var/cache/pacman/pkg/.

Now that all packages are built, it's time to install them.

$ sudo pacman -U gnucash*.pkg.tar.xz ../webkitgtk/webkitgtk2*.pkg.tar.xz ../goffice0.8/goffice0.8*.pkg.tar.xz

And that's how i do it.

Note that this should only be neccessary if there are any changes that affect webkitgtk2 or if you have some obscure packages installed i don't know about. Otherwise gnucash should build normally even with an AUR helper.

Hope that helped.

Latest Comments

Schmeidenbacher commented on 2017-11-19 12:09

I see that i am late to the party. But yes it's our old foe webkitgtk2 … again. Man i will be so glad if that dependency vanishes once the get to the new stable version.

As an aside: If you've gone through the trouble of rebuilding webkitgtk2, it seems like you don't need to rebuild gnucash. Gnucash worked on my machine without installing the rebuild package after i installed the rebuild webkitgtk2. So … yay, i guess?

colinkeenan commented on 2017-11-19 05:28

It worked for me too after rebuilding webkitgtk2.

djmoch commented on 2017-11-19 01:52

@colinkeenan The gnucash rebuild works after re-building webkitgtk. It's a bit unfortunate because that build takes closer to 12 hours on my 8-year-old machine, but it would have been worse to go throught that trouble and still have it be broken!

colinkeenan commented on 2017-11-18 17:10

Edit: I finally looked at the PKGBUILD for webkitgtk and it depends on harfbuzz-icu, so it's necessary to rebuild webkitgtk once again. I will update tomorrow if that worked.

I have been successfully building this in a chroot ever since gnucash was dropped from the standard packages. Today, I needed to build it again due to the update in icu. I was not able to build it. Here's the error:

.
.
.
mkdir -p gnucash/report
( cd gnucash/report; for A in report-gnome.scm ; do ln -s -f ../../$A . ; done )
touch .scm-links
GNC_UNINSTALLED=yes \
GNC_BUILDDIR=../../.. \
GNC_MODULE_PATH="../../../src/app-utils/.libs:../../../src/engine/.libs:${GNC_MODULE_PATH}" GUILE_LOAD_PATH="../../../src/app-utils:../../../src/core-utils:../../../src/engine:../../../src/gnc-module:../../../src/gnome-utils:../../../src/scm:${GUILE_LOAD_PATH}" GUILE_LOAD_COMPILED_PATH="../../../src/app-utils:../../../src/core-utils:../../../src/engine:../../../src/gnc-module:../../../src/gnome-utils:../../../src/scm:${GUILE_LOAD_COMPILED_PATH}" LD_LIBRARY_PATH="../../../src/engine/.libs:../../../src/libqof/qof/.libs:../../../src/app-utils/.libs:../../../src/core-utils/.libs:../../../src/gnc-module/.libs:../../../src/gnome-utils/.libs:../../../src/backend/xml/.libs:../../../src/backend/sql/.libs:../../../src/html/.libs:../../../src/report/report-system/.libs:../../../src/report/report-gnome/.libs:${LD_LIBRARY_PATH}" DYLD_LIBRARY_PATH="../../../src/engine/.libs:../../../src/libqof/qof/.libs:../../../src/app-utils/.libs:../../../src/core-utils/.libs:../../../src/gnc-module/.libs:../../../src/gnome-utils/.libs:../../../src/backend/xml/.libs:../../../src/backend/sql/.libs:../../../src/html/.libs:../../../src/report/report-system/.libs:../../../src/report/report-gnome/.libs:${DYLD_LIBRARY_PATH}" \
/usr/bin/guild2.0 compile -o report-gnome.go report-gnome.scm
Backtrace:
In /usr/bin/guild2.0:
72: 19 [main ("/usr/bin/guild2.0" "compile" "-o" ...)]
In srfi/srfi-1.scm:
616: 18 [for-each #<procedure 18f5680 at scripts/compile.scm:187:14 (file)> #]
In scripts/compile.scm:
190: 17 [#<procedure 18f5680 at scripts/compile.scm:187:14 (file)> "report-gnome.scm"]
In system/base/target.scm:
59: 16 [with-target "x86_64-unknown-linux-gnu" ...]
In system/base/compile.scm:
152: 15 [compile-file "report-gnome.scm" #:output-file ...]
43: 14 [call-once #<procedure 1a27c40 at system/base/compile.scm:56:5 ()>]
In ice-9/boot-9.scm:
174: 13 [with-throw-handler #t ...]
In system/base/compile.scm:
59: 12 [#<procedure 1a27c00 at system/base/compile.scm:58:9 ()>]
155: 11 [#<procedure 1a27c80 at system/base/compile.scm:153:8 (port)> #<closed: file 0>]
218: 10 [read-and-compile #<input: report-gnome.scm 9> #:from ...]
234: 9 [lp (# # # # ...) #<directory # 1a74a00> #<directory # 1a74a00>]
182: 8 [lp (#<procedure compile-tree-il (x e opts)>) (cond-expand # #) ...]
In ice-9/boot-9.scm:
2412: 7 [save-module-excursion #<procedure 21eaf30 at language/scheme/compile-tree-il.scm:29:3 ()>]
In language/scheme/compile-tree-il.scm:
31: 6 [#<procedure 21eaf30 at language/scheme/compile-tree-il.scm:29:3 ()>]
In ice-9/psyntax.scm:
1107: 5 [expand-top-sequence ((cond-expand (guile-2 #) (else))) () ...]
990: 4 [scan ((cond-expand (guile-2 #) (else))) () ...]
990: 3 [scan (#(syntax-object (eval-when # # ...) (#) ...)) () ...]
279: 2 [scan (#) () (#) ...]
In unknown file:
?: 1 [load-extension "libgncmod-report-gnome" "scm_init_sw_report_gnome_module"]
In ice-9/boot-9.scm:
109: 0 [#<procedure 1a27bc0 at ice-9/boot-9.scm:100:6 (thrown-k . args)> misc-error ...]

ice-9/boot-9.scm:109:20: In procedure #<procedure 1a27bc0 at ice-9/boot-9.scm:100:6 (thrown-k . args)>:
ice-9/boot-9.scm:109:20: In procedure dynamic-link: file: "libgncmod-report-gnome", message: "file not found"
make[5]: *** [Makefile:1142: report-gnome.go] Error 1
make[5]: Leaving directory '/build/gnucash/src/gnucash-2.6.18/src/report/report-gnome'
make[4]: *** [Makefile:838: all-recursive] Error 1
make[4]: Leaving directory '/build/gnucash/src/gnucash-2.6.18/src/report/report-gnome'
make[3]: *** [Makefile:503: all-recursive] Error 1
make[3]: Leaving directory '/build/gnucash/src/gnucash-2.6.18/src/report'
make[2]: *** [Makefile:565: all-recursive] Error 1
make[2]: Leaving directory '/build/gnucash/src/gnucash-2.6.18/src'
make[1]: *** [Makefile:794: all-recursive] Error 1
make[1]: Leaving directory '/build/gnucash/src/gnucash-2.6.18'
make: *** [Makefile:647: all] Error 2
==> ERROR: A failure occurred in build().
Aborting...
==> ERROR: Build failed, check /home/colin/.SSD-232.9G/Games/chroot/colin/build

muon commented on 2017-11-09 02:28

For anyone else curious about the stock quotes, it's a known issue resulting from Yahoo shutting down their public API. There is quite a lot of discussion on the gnucash mailing list:
https://lists.gnucash.org/pipermail/gnucash-user/2017-November/thread.html

muon commented on 2017-11-08 02:04

@Schmeidenbacher
Okay, I'll follow up either with the Arch Linux forums or Gnucash devs. Many thanks for your efforts and suggestion.

Schmeidenbacher commented on 2017-11-07 12:38

Ok. I just compiled and installed the gnucash package on a new system, without any prior gnucash installation present.

I tried

gnc-fq-dump -v yahoo GOOG

and received an error that some perl modules could not be found and that i should run

sudo gnc-fq-update

Which i did. It did some perl compiling after which i ran the first command again, resulting in the same message as you got. I did the same test you did and also got the #f error.

The package perl-mozilla-ca is not installed on my system and was not needed. I did not receive any certificate errors.

I must admit, that i haven't used these gnucash feature so far. I'm not sure if the recent pearl update and it's change of the pearl library paths has something to do with it. It may be that the update command will rebuild the required modules in a way that they work again. Worth a try.

If that doesn't work you could try to file a bug report via gnucash's bugtracker. Information about that can be found on gnucash.org.

Alternatively you can try the archlinux forums. Maybe someone there has any more insight.

muon commented on 2017-11-07 02:53

Thanks for maintaining this while it's in the AUR.

If this sounds more like an upstream thing, feel free to redirect me. Using 2.6.18-4, I'm no longer able to retrieve online quotes. Running from the GUI, I get "There was an unknown error while retrieving the price quotes." From the command line,
$ gnc-fq-dump -v yahoo GOOG
Can't locate Mozilla/CA.pm in @INC (you may need to install the Mozilla::CA module) (@INC contains: /usr/lib/perl5/5.26/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/5.26/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/5.26/core_perl /usr/share/perl5/core_perl) at /usr/share/perl5/vendor_perl/Finance/Quote/Tiaacref.pm line 33.
Compilation failed in require at (eval 328) line 1.
BEGIN failed--compilation aborted at (eval 328) line 1.
at /usr/bin/gnc-fq-dump line 148.
No results found for stock GOOG.

and after installing perl-mozilla-ca that error went away (should this be another optional dependency for stock information lookups?), but the command still fails:
$ gnc-fq-dump -v yahoo GOOG
No results found for stock GOOG.
and following the troubleshooting on https://wiki.gnucash.org/wiki/FAQ#Q:_How_do_I_fix_a_system_error_when_getting_stock_quotes.3F
I tried
$ echo '(yahoo "CSCO" "JDSU" "^IXIC")' | gnc-fq-helper
which returned the error "#f". And then I wasn't sure where to go anymore, as the lookups still don't work. Any guidance would be appreciated.

Schmeidenbacher commented on 2017-11-02 22:09

@p.houska: You are right. I could reproduce that. Something must've changed since the last time i built this. It worked fine back then. Well then. Changed the dependcies to guile2.0. We will stick with this one then.

Anonymous comment on 2017-11-02 19:36

@Schmeidenbacher
First of all thanks a lot. I was struggling in the past with webkit, which didn't want to build on my system. Building in clean chroot did the trick.

Interestingly I get following error while building gnucash:


checking for guile-2.0 >= 2.0.0... no
checking for guile-1.8 >= 1.8.5... no
configure: error:
guile does not appear to be installed correctly, or is not in the
correct version range. Perhaps you have not installed the guile
development packages? Gnucash requires at least version 1.8.5 to
build.

But guile 2.2 is installed on my system:
extra/guile 2.2.2-1 [installed]

My solution was to add it to the chroot:

makechrootpkg -T -r ../chroot/ -I /var/cache/pacman/pkg/guile2.0-2.0.14-1-x86_64.pkg.tar.xz -I ../goffice0.8/goffice0.8-0.8.17-4-x86_64.pkg.tar.xz -I ../webkitgtk/webkitgtk2-2.4.11-6-x86_64.pkg.tar.xz


After this everything compiles perfectly and installs fine. BUT I can run gnucash only if I install guile2.0 in my system.

I am not sure, but shouldn't guile2.0 be as dependency in the MAKEPKG?


@ArnaudNux
I had this problem, too. This line tells you what happened:
Source/WebCore/crypto/keys/.deps/libWebCore_la-CryptoKeyHMAC.Tpo: No space left on device

My solution was to build in my user directory. I do not know if I break some rules by that, but it works in my case. Check the tmpfs drive size with "df -h".

All comments