Package Details: gnucash 2.6.19-1

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: 86
Popularity: 21.919626
First Submitted: 2017-06-30 07:39
Last Updated: 2017-12-20 09:41

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-7-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 2018-01-08 21:44

@h_asdf: Please read the whole release notification you just linked to me before you flag this package out of date.

To quote: "This release is UNSTABLE and SHOULD NOT BE USED in production.

This release changes file locations, binding APIs, report options, and can make your data file no longer compatible with previous versions. See the Update Notes Page for details. "

This package follows the stable branch of gnucash, which currently is the 2.6.x version. The next stable version will currently be the 3.0 release according to the devs.

If you want to risk your bookkeeping data with an unstable release you are free to consider switching to the gnucash-git package instead.

PEAR commented on 2018-01-08 18:38

Ok, I'll try rebuildung the package. Thanks anyway

Schmeidenbacher commented on 2018-01-08 17:46

@PEAR: That is interesting. Since this version of gnucash does not use boost at all.

Neither is it using it during the build process, which i made sure of by building it again and checking the build log for any mention of boost, nor is it using it on startup, which i made sure of by running an strace of it while it started and me using it a bit. No call on any of the boost libraries whatsoever.

The unstable 2.7.x branch, or the gnucash-git packages do though.

Chances are, that your gnucash will start again if you rebuild the package and reinstall it. That usually get's the calls to the newer libraries in, if they are used.

Btw, my last build of gnucash was build on the 18th of December of 2017, and boost-libs updated on the 6th of January of 2018 to version 1.66.0-1 and my gnucash runs fine, so i can't reproduce that problem at all.

PEAR commented on 2018-01-08 14:34

Gnucash doesn't start in my system, because its searching for a boost-lib which got updated a couple of days ago.

gnucash: error while loading shared libraries: libboost_regex.so.1.65.1: cannot open shared object file: No such file or directory

boost-libs is installed, but "to new" for my gnucash instance.

I think at least libboost_filesystem.so is affected, too.

Schmeidenbacher commented on 2018-01-06 01:33

@kaptoxic: When you say "installed the newest webkitgtk2", did you build it on the same system? And i just rebuild gnucash in a clean chroot. It builds all the way through.

Additionally i checked the library causing the error (/usr/lib/libwebkitgtk-1.0.so.0) mine doesn't call the functions in your error anymore. I'm on a (self built) version 2.4.11-7 of webkitgtk2. The last version i had in my pacman cache calling these functions was 2.4.11-4 (can't speak for 2.4.11-5. that wasn't in my cache). So yeah, it's not a dependency issue, looks like you have outdated libraries. You need to either rebuild webkitgtk2, or …

check the pinned comment in https://aur.archlinux.org/packages/webkitgtk2/ . If you decide to trust the maintainer of the repo yan12125 is announcing there, you don't have to build it yourself. They also have goffice0.8 and gnucash in there.

As with all unofficial repos: Use with caution.

kaptoxic commented on 2018-01-05 17:43

I was getting the error mentioned in one of the previous posts, I did install the newest webkitgtk2 afterwards, but still having an issue installing the package:

/usr/lib/libwebkitgtk-1.0.so.0: undefined reference to `cairo_gl_surface_get_width'
/usr/lib/libwebkitgtk-1.0.so.0: undefined reference to `cairo_egl_device_create'
/usr/lib/libwebkitgtk-1.0.so.0: undefined reference to `cairo_glx_device_create'
/usr/lib/libwebkitgtk-1.0.so.0: undefined reference to `cairo_gl_surface_get_height'
/usr/lib/libwebkitgtk-1.0.so.0: undefined reference to `cairo_gl_device_set_thread_aware'
/usr/lib/libwebkitgtk-1.0.so.0: undefined reference to `cairo_gl_surface_create_for_texture'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:701: gnucash] Error 1
make[4]: Leaving directory '/tmp/yaourt-tmp-user/aur-gnucash/src/gnucash-2.6.19/src/bin'
make[3]: *** [Makefile:801: all-recursive] Error 1
make[3]: Leaving directory '/tmp/yaourt-tmp-user/aur-gnucash/src/gnucash-2.6.19/src/bin'
make[2]: *** [Makefile:578: all-recursive] Error 1
make[2]: Leaving directory '/tmp/yaourt-tmp-user/aur-gnucash/src/gnucash-2.6.19/src'
make[1]: *** [Makefile:806: all-recursive] Error 1
make[1]: Leaving directory '/tmp/yaourt-tmp-user/aur-gnucash/src/gnucash-2.6.19'
make: *** [Makefile:660: all] Error 2

Is it the case that some dependency is missing?

xdegaye commented on 2018-01-02 15:55

Works like a charm. Thanks a lot :-)

Schmeidenbacher commented on 2017-12-29 08:29

@karl.m: First things first: this package needs a recent (re-)build of webkitgtk2 to build correctly. If you haven't had the latest one build before building gnucash, it will fail.

Sadly the webkitgtk2 build will take several hours. If it still fails afterwards, then you might need to build it in a clean chroot. There's a sticky comment with a guide on this aur page.

karl.m commented on 2017-12-29 02:16

Can't compile.

Was absent from book keeping a couple of weeks. Starting gnucash failed because of libenchant1.6 missing ....................... ok let's update.

Download and "makepkg" .. too easy.

But then:

/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 (file)="" 28cd680="" at="" compile.scm:187:14="" scripts=""> #] In scripts/compile.scm: 190: 17 [#<procedure (file)="" 28cd680="" at="" compile.scm:187:14="" scripts=""> "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 ()="" 28f3940="" at="" base="" compile.scm:56:5="" system="">] In ice-9/boot-9.scm: 174: 13 [with-throw-handler #t ...] In system/base/compile.scm: 59: 12 [#<procedure ()="" 28f3900="" at="" base="" compile.scm:58:9="" system="">] 155: 11 [#<procedure (port)="" 28f3980="" at="" base="" compile.scm:153:8="" system=""> #<closed: 0="" file="">] 218: 10 [read-and-compile #<input: 9="" report-gnome.scm=""> #:from ...] 234: 9 [lp (# # # # ...) #<directory #="" 2a4ea00=""> #<directory #="" 2a4ea00="">] 182: 8 [lp (#<procedure (x="" compile-tree-il="" e="" opts)="">) (cond-expand # #) ...] In ice-9/boot-9.scm: 2412: 7 [save-module-excursion #<procedure ()="" 2f435a0="" at="" compile-tree-il.scm:29:3="" language="" scheme="">] In language/scheme/compile-tree-il.scm: 31: 6 [#<procedure ()="" 2f435a0="" at="" compile-tree-il.scm:29:3="" language="" scheme="">] 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 (thrown-k="" .="" 28f38c0="" args)="" at="" boot-9.scm:100:6="" ice-9=""> misc-error ...]</procedure></procedure></procedure></procedure></directory></directory></input:></closed:></procedure></procedure></procedure></procedure></procedure>

ice-9/boot-9.scm:109:20: In procedure #<procedure (thrown-k="" .="" 28f38c0="" args)="" at="" boot-9.scm:100:6="" ice-9="">: ice-9/boot-9.scm:109:20: In procedure dynamic-link: file: "libgncmod-report-gnome", message: "file not found" make[5]: [Makefile:1157: report-gnome.go] Error 1 make[5]: Leaving directory '/home/user/Downloads/gnucash/src/gnucash-2.6.19/src/report/report-gnome' make[4]: [Makefile:851: all-recursive] Error 1 make[4]: Leaving directory '/home/user/Downloads/gnucash/src/gnucash-2.6.19/src/report/report-gnome' make[3]: [Makefile:516: all-recursive] Error 1 make[3]: Leaving directory '/home/user/Downloads/gnucash/src/gnucash-2.6.19/src/report' make[2]: [Makefile:578: all-recursive] Error 1 make[2]: Leaving directory '/home/user/Downloads/gnucash/src/gnucash-2.6.19/src' make[1]: [Makefile:806: all-recursive] Error 1 make[1]: Leaving directory '/home/user/Downloads/gnucash/src/gnucash-2.6.19' make: [Makefile:660: all] Error 2</procedure>

I tried goolge, but it seems that only 32bit people had this problem. Any idea !!??? (Need to get into the books soon).

Thanks

Update:

Does not compile from source either. Error message is the same.

cortopy commented on 2017-12-19 16:06

Removing enchant1.6 with "pacaur -Se gnucash" worked for me

All comments