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: 57
Popularity: 15.553003
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

troncoso commented on 2017-11-21 17:27

@Schmeidenbacher: Thanks for you answer, but I don't think my mirrorlist or my package sync database is out of date, as I've got a newer version of python-setuptools: 1:37.0.0-1.

Thanks for your welcome, too. In fact, I'm a veteran user of Arch and even had an AUR account back in 2010 but it must have expired because I've just had to create a new one.

troncoso commented on 2017-11-21 17:14

It looks like I got around the missing file 'python-setuptools-1:36.8.0-1-any.pkg.tar.xz' by installing python-setuptools first into the chroot environment:

# arch-nspawn $CHROOT/root pacman -S python-setuptools

Schmeidenbacher commented on 2017-11-21 17:13

@troncoso:
Either your mirrorlist or your package sync database is out of date. And by never having seen this error before: Welcome to archlinux, you must be new here.


Do a

$ sudo pacman -Sy

before you try to setup the chroot. That will get your system the newest info about packages in the repos. You're welcome.

troncoso commented on 2017-11-21 16:41

@Schmeidenbacher

I followed your explanations and got this error when building webkitgtk2:

error: failed retrieving file 'python-setuptools-1:36.8.0-1-any.pkg.tar.xz' from arch.yourlabs.org : The requested URL returned error: 404

Current version of 'python-setuptools' is 1:37.0.0 and it looks like version 1:36.8.0-1 is no longer in the repositorios.

piedro commented on 2017-11-20 22:35

OK, thx for looking into this.

I am stuck at the moment, rebuilding webkitgtk accidently instead of webkitgtk2... what a waste of time but after running it for 5 hours now I might as well let it finish...

One question, you mentioned the lib32 libraries also... do you imply that with every system using multiarch packages I have to rebuild or downgrade both?

I thought gnucash is 64bit and uses these libs exclusively?

Btw, is there still a binary version compatible with the gnucash save file?

(Have to do taxes like yesterday...) It's actually the first time that regression in opensource cost me real money... I know this is not the place to discuss, sry for that.)

Keeping this package up to date here in the AUR has to be a nightmare!
Many thanks for your efforts and explanations, Schmeidenbacher!

p.



vinieich commented on 2017-11-20 21:28

Sorry. It seems that I missed the comment from below.
I thought it was that guile( ? ) update that made us rebuild webkitgtk2 recently.
I'll rebuild it again this night because I'm at an older computer with too little processing power and it will take time.
Tomorrow I'll edit this comment but probably it will be fixed.
Thanks.

EDIT: Annndd it's working. Rebuilding webkitgtk2 ~again~ solved the issue.
Thanks guys.

Schmeidenbacher commented on 2017-11-20 18:27

Just for clarification, did you two already rebuild webkitgtk2 ? That behaviour might stem from the fact that webkitgtk2 expects the icu v59 components in place, while after you downgraded something else expected the icu v60 components resulting in both error messages respectively.

What the downgraders may try, if you didn't already is not only to downgrade icu to version 59.1.1-1 (and if you use them the lib32 versions as well) , but also harfbuzz-icu (and harfbuzz, while we're at it, also if you use them additionally the lib32 versions) to version 1.6.1-1 respectively.

Check your /var/log/pacman.log for the recent version changes in the packages to make sure that i didn't accidentally gave the wrong ones.

But you probably have to rebuild webkitgtk2 to get a permanent fix.

Tharbad commented on 2017-11-20 18:27

The webkitgtk saga:
https://bugzilla.gnome.org/show_bug.cgi?id=751635

vinieich commented on 2017-11-20 17:24

@piedro
I'm trying to figure it out too but I can't seem to figure out.
Have you got any luck?

piedro commented on 2017-11-20 14:09

That's strange:

gnucash has been working in the latest version here... until this weekend...

trying to start I get

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

so I downgrade icu to version 59... but now:

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

How can gnucash depend on two versions?

Sigh, what am I missing.... any hints, have I misbuilt it?
But as mentioned, it worked last week...

sad, p.

All comments