Package Details: gnucash 2.6.18-3

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: 48
Popularity: 16.179508
First Submitted: 2017-06-30 07:39
Last Updated: 2017-10-09 19:20

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-10-16 15:24

@ArnaudNux: As already stated in the comments you get if you click the "All Comments" button for, this problem is known and that the only cure for it is to rebuild webkitgtk2 and goffice0.8.
There is a pinned comment right on top of the comment thread which has the complete way to build the package in it. As an additional note: Yaourt or any other AUR helper will not help you in this case, you will have to build it by hand.

ArnaudNux commented on 2017-10-15 22:57

/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:688: gnucash] Error 1
make[4]: Leaving directory '/home/arnaud/tempo/yaourt-tmp-arnaud/aur-gnucash/src/gnucash-2.6.18/src/bin'
make[3]: *** [Makefile:788: all-recursive] Error 1
make[3]: Leaving directory '/home/arnaud/tempo/yaourt-tmp-arnaud/aur-gnucash/src/gnucash-2.6.18/src/bin'
make[2]: *** [Makefile:565: all-recursive] Error 1
make[2]: Leaving directory '/home/arnaud/tempo/yaourt-tmp-arnaud/aur-gnucash/src/gnucash-2.6.18/src'
make[1]: *** [Makefile:794: all-recursive] Error 1
make[1]: Leaving directory '/home/arnaud/tempo/yaourt-tmp-arnaud/aur-gnucash/src/gnucash-2.6.18'
make: *** [Makefile:647: all] Error 2
==> ERROR: A failure occurred in build().
Aborting...
==> ERROR: Makepkg was unable to build gnucash.
==> Restart building gnucash ? [y/N]

cortopy commented on 2017-10-15 11:58

@entodoays solution worked for me. Recompile both webkitgtk2 and goffice0.8

piedro commented on 2017-10-11 11:10

Thank you very, very much!

I wish we could make that a sticky here...

Haven't tried yet but I will work through this, just quickly wanted to compliment you on your efforts!

Cheers, p.

entodoays commented on 2017-10-11 06:37

After recompiling webkitgtk2 and goffice0.8 gnucash updated normally.

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.

piedro commented on 2017-10-10 00:27

Hmm,

- the cairo trick doesn*t work anymore,
- building webkitgtk2 fails,
- using a prebuild webkitgtk2 version (via "downgrade" doesn't work)

PLease could you provide a step by step how to get the latest stable gnucash package build out of your pkgbuild?

thx for your efforts, p.

amish commented on 2017-10-09 04:46

Sorry Schmeidenbacher, to keep bothering you but changing from guild2.0 to guild needs pkgrel update from 2 to 3! (as the update influences the resulting package)

https://wiki.archlinux.org/index.php/PKGBUILD#pkgrel

Thank you

amish commented on 2017-10-07 09:05

guild should be auto-detected so there is no need to specify it.
i.e. just "make" should be enough instead of "make GUILD=/usr/bin/guild"

entodoays commented on 2017-10-05 09:35

I installed the dependencies and tried compiling webkitgtk2. It took for hours on end and had to interrupt it, 'cause I have work to do and the compiling process has using lots of RAM and processing power, slowing my PC, but I do have the package installed according to pacman (version: 2.4.11-6).

Schmeidenbacher commented on 2017-10-04 17:57

@entodoays: I assume you have not yet read this wiki page yet: https://wiki.archlinux.org/index.php/makepkg#Usage

Especially the part concerning itself with what console flag to use if you have dependencies missing.

Also: I'm not the maintainer of webkitgtk2.

entodoays commented on 2017-10-04 17:40

I still cannot update Gnucash. When I tried to rebuild webkitgtk2 I got:
Edit webkitgtk.install with $EDITOR? [Y/n] n
==> Making package: webkitgtk 2.4.11-6 (Wed Oct 4 19:39:24 CEST 2017)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Missing dependencies:
-> gperf
-> gobject-introspection
==> ERROR: Could not resolve all dependencies.

amish commented on 2017-09-28 05:25

I have not tested it but if you switched from guile2.0 to guile then you probably also need to remove: GUILD=/usr/bin/guild2.0 (in build)

DenBrahe commented on 2017-09-27 16:01

The SHA-su is SHA256 instead of SHA1 too.

kingcreole commented on 2017-09-27 10:59

if i have to adjust this sha-sum to the github version then i can't really trust the file integrity, i feel a bit uncomfortable using this at the moment anyway since it's outside of the official repositories as a security relevant thing and fiddeling with Sha-sums in this package is not something i like to risk, so i hope this will all get settled soon :/

colinkeenan commented on 2017-09-27 01:31

@Schmeidenbacher,

I tried to build gnucash 2.6.18-2 just now and it failed because it couldn't download the github source. In order to fix it, I had to add a "-1" to the source line and updpkgsums:

source=(https://github.com/Gnucash/${pkgname}/releases/download/${pkgver}/${pkgname}-${pkgver}-1.tar.bz2)

Notice ...-1.tar.bz2

colinkeenan commented on 2017-09-27 01:17

I've been building this successfully in a clean chroot with updated dependencies as @Schmeidenbacher has been doing. I've then been uploading the package to the archlinuxcn repo: https://github.com/archlinuxcn/repo

Scroll to the bottom of the page to see how to add the repo and keys. Then you can install and get updates of gnucash just using pacman.

Schmeidenbacher commented on 2017-09-26 20:47

@entodoays: The error referring to the undefined reference to `cairo_gl_surface_create_for_texture` points towards the problem with the cairo update. Either downgrade your cairo version and try again or rebuild the webkitgtk2 package.

@Rivabanks: All i can say is, that i did test build the package in a clean chroot with the current cairo and a webkitgtk2 package rebuilt after the cairo update. That one went through smoothly. I never put up untested PKGBUILDs.
And going through the comments, the very first ones right after this package was put up on the AUR show the errors you're getting. The solution back then was to rebuild goffice0.8 and webkitgtk2. Seems to be the solution after all.

entodoays commented on 2017-09-26 20:10

I'm having build problems too. The last part of the output is as follows:

/usr/lib/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../lib/libwebkitgtk-1.0.so: undefined reference to `cairo_gl_surface_create_for_texture'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:699: gnucash] Error 1
make[4]: Leaving directory '/tmp/packerbuild-1000/gnucash/gnucash/src/gnucash-2.6.18/src/bin'
make[3]: *** [Makefile:799: all-recursive] Error 1
make[3]: Leaving directory '/tmp/packerbuild-1000/gnucash/gnucash/src/gnucash-2.6.18/src/bin'
make[2]: *** [Makefile:576: all-recursive] Error 1
make[2]: Leaving directory '/tmp/packerbuild-1000/gnucash/gnucash/src/gnucash-2.6.18/src'
make[1]: *** [Makefile:804: all-recursive] Error 1
make[1]: Leaving directory '/tmp/packerbuild-1000/gnucash/gnucash/src/gnucash-2.6.18'
make: *** [Makefile:658: all] Error 2
==> ERROR: A failure occurred in build().
Aborting...

Rivabanks commented on 2017-09-26 17:46

After the switch to github, I'm getting some crazy compile errors with this package. I did downgrade cairo to version 1.14.8-1, so I know that's not the issue:

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 1a24680 at scripts/compile.scm:187:14 (file)> #]
In scripts/compile.scm:
190: 17 [#<procedure 1a24680 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 1a49940 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 1a49900 at system/base/compile.scm:58:9 ()>]
155: 11 [#<procedure 1a49980 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 # 1cd2a00> #<directory # 1cd2a00>]
182: 8 [lp (#<procedure compile-tree-il (x e opts)>) (cond-expand # #) ...]
In ice-9/boot-9.scm:
2412: 7 [save-module-excursion #<procedure 22f7e70 at language/scheme/compile-tree-il.scm:29:3 ()>]
In language/scheme/compile-tree-il.scm:
31: 6 [#<procedure 22f7e70 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 1a498c0 at ice-9/boot-9.scm:100:6 (thrown-k . args)> misc-error ...]

ice-9/boot-9.scm:109:20: In procedure #<procedure 1a498c0 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:1155: report-gnome.go] Error 1
make[5]: Leaving directory '/home/josh/Downloads/gnucash/src/gnucash-2.6.18/src/report/report-gnome'
make[4]: *** [Makefile:849: all-recursive] Error 1
make[4]: Leaving directory '/home/josh/Downloads/gnucash/src/gnucash-2.6.18/src/report/report-gnome'
make[3]: *** [Makefile:514: all-recursive] Error 1
make[3]: Leaving directory '/home/josh/Downloads/gnucash/src/gnucash-2.6.18/src/report'
make[2]: *** [Makefile:576: all-recursive] Error 1
make[2]: Leaving directory '/home/josh/Downloads/gnucash/src/gnucash-2.6.18/src'
make[1]: *** [Makefile:804: all-recursive] Error 1
make[1]: Leaving directory '/home/josh/Downloads/gnucash/src/gnucash-2.6.18'
make: *** [Makefile:658: all] Error 2
==> ERROR: A failure occurred in build().
Aborting...

There doesn't seem to be a coherent error anywhere in this mess, so I have no idea where the problem even is.

Schmeidenbacher commented on 2017-09-26 16:25

Changed the sources to github.

Thah commented on 2017-09-26 15:30

Alternatively, you can fetch the source code from here:

https://github.com/Gnucash/gnucash/releases

p.s.: Use the gnucash-*, not the "Source code" files.

Schmeidenbacher commented on 2017-09-26 15:19

Neither a problem of this package nor the cairo version this time. It's sourceforge having a problem it seems.

I just redownloaded the source files to check mine up and noted a significant size difference. The ones i used are 19MiB in size while the one downloaded just now is just about 600Byte. I checked what was downloaded and lo-and-behold it's this:

<html><head>
<title>SourceForge</title>
<!-- <script src="/js/jquery.com/jquery-1.11.0.min.js"></script> -->
<script src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="https://sourceforge.net/js/mirrors.js"></script>
<script src="/js/sf.js"></script>
<script>
var DR_loc = DR_parse_hash_url();
if (DR_loc) {
DR_sf_main(DR_loc);
} else {
window.location.href = 'https://sourceforge.net/home.html';
}
</script>
</head><body>
<noscript>
We're sorry -- the Sourceforge site is currently in Disaster Recovery mode, and currently requires
the use of javascript to function. Please check back later.
</noscript>
</body></html>


Can't do anything about it. Until they change the hosting spot for their source tarball or sourceforge works again, there's nothing that can be done for now.

alonzemog commented on 2017-09-26 15:05

gnucash-2.6.18-1 failed to build, with either current or downgraded version on cairo:



AUR Packages (1) gnucash-2.6.18-1

:: Proceed with installation? [Y/n]

:: Retrieving package(s)...
:: gnucash build files are up-to-date -- skipping
:: Checking gnucash integrity...
==> Making package: gnucash 2.6.18-1 (Tue Sep 26 10:36:47 EDT 2017)
==> Retrieving sources...
-> Found gnucash-2.6.18.tar.gz
==> Validating source files with sha1sums...
gnucash-2.6.18.tar.gz ... FAILED
==> ERROR: One or more files did not pass the validity check!
:: failed to verify gnucash integrity



It does not say what file(s) are invalid.

Suggestions?

Schmeidenbacher commented on 2017-09-24 11:02

@kubrick: Will be done once the new stable version is out.

For this package i will only use stable sources. And sadly, for now, we just have to deal with that.

You're free to create an unstable version package if you want to though.

@ArnaudNux: Please read the comments of a package first. This problem has already been addressed. You either need to do piedro's workaround or rebuild webkitgtk2 with the newes cairo version installed. This is not a problem with this package.

amish commented on 2017-09-24 10:17

2.7 is unstable branch. 2.8 is actual stable target.

Please see NEWS here:
https://github.com/Gnucash/gnucash/blob/0004a44f5f188d910cf7ab155ed1f0ce7fa1949a/NEWS

kubrick commented on 2017-09-24 09:43

Since 2.7, goffice is no longer a dependency, please remove. Also gnucash does not longer depend on flawed webkit 1 gtk2, update the dependency to webkit2gtk (from extra).
This package can then go back to the main repository instead of being in AUR.

ArnaudNux commented on 2017-09-23 23:10

libtool: link: gcc -Wdeclaration-after-statement -Wno-pointer-sign -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -std=gnu99 -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wno-unused -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z -Wl,relro -Wl,-z -Wl,now -o .libs/gnucash gnucash-bin.o -pthread -Wl,--export-dynamic -pthread ../../src/register/ledger-core/.libs/libgncmod-ledger-core.so ../../src/report/report-gnome/.libs/libgncmod-report-gnome.so ../../src/gnome/.libs/libgnc-gnome.so ../../src/gnome-utils/.libs/libgncmod-gnome-utils.so ../../src/app-utils/.libs/libgncmod-app-utils.so ../../src/engine/.libs/libgncmod-engine.so ../../src/gnc-module/.libs/libgnc-module.so ../../src/core-utils/.libs/libgnc-core-utils.so ../../src/libqof/qof/.libs/libgnc-qof.so ../../src/report/report-system/.libs/libgncmod-report-system.so -lguile-2.0 -lgc -lgthread-2.0 -lgmodule-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -lm -pthread -Wl,-rpath -Wl,/usr/lib/gnucash
/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:687: gnucash] Error 1
make[4]: Leaving directory '/home/arnaud/tempo/yaourt-tmp-arnaud/aur-gnucash/src/gnucash-2.6.17/src/bin'
make[3]: *** [Makefile:787: all-recursive] Error 1
make[3]: Leaving directory '/home/arnaud/tempo/yaourt-tmp-arnaud/aur-gnucash/src/gnucash-2.6.17/src/bin'
make[2]: *** [Makefile:550: all-recursive] Error 1
make[2]: Leaving directory '/home/arnaud/tempo/yaourt-tmp-arnaud/aur-gnucash/src/gnucash-2.6.17/src'
make[1]: *** [Makefile:784: all-recursive] Error 1
make[1]: Leaving directory '/home/arnaud/tempo/yaourt-tmp-arnaud/aur-gnucash/src/gnucash-2.6.17'
make: *** [Makefile:637: all] Error 2
==> ERROR: A failure occurred in build().
Aborting...
==> ERROR: Makepkg was unable to build gnucash.
==> Restart building gnucash ? [y/N]
==> --------------------------------

piedro commented on 2017-09-22 10:24

Best solution I found in the gnucash forum:

1. downgrade cairo like this

sudo pacman -U https://archive.archlinux.org/packages/c/cairo/cairo-1.14.8-1-$(uname -m).pkg.tar.xz

2. install gnucash from the AUR (from here...:-))

3. upgrade cairo with
pacman -S cairo

This should work quickly and without the whole unreliable webkitgtk2 compiling
shenanigans... cheers, p.

Schmeidenbacher commented on 2017-09-19 16:05

Sorry for the inconveniences. It's now back to the original make dependencies. As a reminder: The build errors stemmed from the newer cairo version, which require a re-build and re-installation of the webkitgtk2 package.

Personally i would also prefer this package to get back into the official repos, but that will only happen, if the devs move away from webkitgtk2. Which, as far as i'm aware off, they're working on.

Sadly webkitgtk2 is a so immense package that it takes forever to get build.

dreamersbrow commented on 2017-09-19 15:35

Hi @amish

I also really rely upon gnucash. When it wouldn't start over the weekend I went looking for an alternative until things got squared away. I was able to find it as a flatpak on https://flathub.org/

The flatpak worked great and got me through in a pinch.

amish commented on 2017-09-19 15:24

I so much depend on this package for day to day activity. Ever since this package moved to AUR I am having hard time.(more due to AUR dependencies)

Hope its moved back to official repo soon.(instead of never!)

Schmeidenbacher commented on 2017-09-19 11:36

So. Now that i had more time on hand i rebuilt the webkitgtk2 package (https://aur.archlinux.org/packages/webkitgtk2/) and reinstalled that one.

Turns out that the gnucash package was fine, but due to the cairo update you'll need to recompile webkitgtk2 to get this package to compile again.

Depending on the machine you compile it on, that's a couple of hours. Have fun with that. As soon as i get home, this package will get it's makedeps reverted back to the previous form.

Schmeidenbacher commented on 2017-09-18 21:22

Thanks for the heads-up @Plexcon.

Note: As of the latest update of the cairo package, gnucash fails to build. We now have a build dependency on cairo <= 1.14.8 because of that.

I've tried several things for the last couple of hours, but the only solution i could came up with to build this package is in a clean chroot with a copy of the previous cairo version (1.14.8) installed via the -I parameter. Or in other words: cairo 1.15.8 broke this package for now.

Plexcon commented on 2017-09-18 15:50

pe -lm -pthread -Wl,-rpath -Wl,/usr/lib/gnucash
/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_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_egl_device_create'
/usr/lib/libwebkitgtk-1.0.so.0: undefined reference to `cairo_gl_surface_create_for_texture'
/usr/lib/libwebkitgtk-1.0.so.0: undefined reference to `cairo_glx_device_create'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:687: gnucash] Error 1
make[4]: se sale del directorio '/tmp/yaourt-tmp-kantergos/aur-gnucash/src/gnucash-2.6.17/src/bin'
make[3]: *** [Makefile:787: all-recursive] Error 1
make[3]: se sale del directorio '/tmp/yaourt-tmp-kantergos/aur-gnucash/src/gnucash-2.6.17/src/bin'
make[2]: *** [Makefile:550: all-recursive] Error 1
make[2]: se sale del directorio '/tmp/yaourt-tmp-kantergos/aur-gnucash/src/gnucash-2.6.17/src'
make[1]: *** [Makefile:784: all-recursive] Error 1
make[1]: se sale del directorio '/tmp/yaourt-tmp-kantergos/aur-gnucash/src/gnucash-2.6.17'
make: *** [Makefile:637: all] Error 2

Plexcon commented on 2017-09-18 15:17

uf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -lm -pthread -Wl,-rpath -Wl,/usr/lib/gnucash
/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_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_egl_device_create'
/usr/lib/libwebkitgtk-1.0.so.0: undefined reference to `cairo_gl_surface_create_for_texture'
/usr/lib/libwebkitgtk-1.0.so.0: undefined reference to `cairo_glx_device_create'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:687: gnucash] Error 1
make[4]: se sale del directorio '/tmp/pamac-build-kantergos/gnucash/src/gnucash-2.6.17/src/bin'
make[3]: *** [Makefile:787: all-recursive] Error 1
make[3]: se sale del directorio '/tmp/pamac-build-kantergos/gnucash/src/gnucash-2.6.17/src/bin'
make[2]: *** [Makefile:550: all-recursive] Error 1
make[2]: se sale del directorio '/tmp/pamac-build-kantergos/gnucash/src/gnucash-2.6.17/src'
make[1]: *** [Makefile:784: all-recursive] Error 1
make[1]: se sale del directorio '/tmp/pamac-build-kantergos/gnucash/src/gnucash-2.6.17'
make: *** [Makefile:637: all] Error 2
==> ERROR: Se produjo un fallo en build().
Cancelando...

Schmeidenbacher commented on 2017-07-13 19:48

@corecode: I would rather not do it directly in this package, as python2 is a relatively large dependency for that, which probably not everybody using this package wants.

Before the switch to AUR4 there was a gnucash-python file, which enabled the python 2 bindings.

So i (re)created the gnucash-python package. If you want the python bindings enabled you can just install that other one. It has it's conflict field set to gnucash, so that you just need to install it and it will cleanly remove the non-python version by itself. Same is true for the other way around. If you install this package it will replace the gnucash-python one as well.

(Link the the other package: https://aur.archlinux.org/packages/gnucash-python/)

If you want, in can orphan the python-gnucash package and let you maintain it. Just let me know if you want to.

corecode commented on 2017-07-13 13:31

could you include python scripting? I use

PYTHON=`which python2` ./configure ... --enable-python

dxu commented on 2017-07-10 02:05

With regards to the manual build, the gnucash developers are aware that the webkitgtk2 dependency needs to be dropped (in favor of webkit2gtk). It looks like they are confident work will be done soon [0].

This means this package should be able to return to the official repositories within a few months.

[0]: https://bugzilla.gnome.org/show_bug.cgi?id=751635

Schmeidenbacher commented on 2017-07-07 18:52

@dtbaumann: Interestingly enough … that doesn't seem to be the case. I just built it with both dependencies. Both went through. And both packages worked after installation. So i checked which guile libraries are actually used by both build versions of gnucash.

Turns out both were using /usr/lib/libguile.so.17.4.0 and /usr/lib/libguile-srfi-srfi-1-v-3.so.3.0.2 both being found in guile1.8 and being installed as a secondary dependency via gnucash's slib dependency.

So for now i won't change the package again. Unless it really fails to work for someone. I might change it in a future version though.

dtbaumann commented on 2017-07-07 17:32

@Schmeidenbacher ... and in this case the dependency probably has to be changed back to guile2.0 (which is what gnucash and the compilation uses)

Schmeidenbacher commented on 2017-07-07 14:09

Here as well @dtbaumann. The build ran through on my normal system without the need for a clean chroot. Added the change in the PKGBUILD.

dtbaumann commented on 2017-07-07 12:39

gnucash still uses guile2.0 but during compilation guile 2.2 is used if available. This results in the described error messages

;;; WARNING: loading compiled file /usr/lib/gnucash/scm/ccache/2.0/gnucash/engine.go failed:
;;; ERROR: In procedure make_objcode_from_file: bad header on object file: "\x7fELF\x02\x01\x01ÿ\x00\x00\x00\x00\x00\x00\x00\x00"

and possibly in the segfaults.

Adding

make GUILD=/usr/bin/guild2.0

in the build() resolves the error messages. Gnucash then compiles and starts clean here (2.6.17-2)

Schmeidenbacher commented on 2017-07-05 19:33

Now i got the segfault reproduced. But only if i try to compile it on my "messy" system. So something i have installed on my machine interferes with the build process.

It works perfectly in a clean chroot on the same machine though, which also means that AUR-helpers won't do you any good with this package it seems.

For more information about clean chroots: https://wiki.archlinux.org/index.php/DeveloperWiki:Building_in_a_Clean_Chroot

Here are my build steps.

I ensure that my /tmp (which is a RAM disk in my case) is suitable

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

Then i create a folder to keep the chroot in

mkdir /tmp/chroot/ -p

Then i create the clean chroot with only the base-devel group in it

mkarchroot /tmp/chroot/root base-devel

And then i do the build in a temporary copy of the clean chroot with the two prebuild dependencies added which aren't in the official repos and need to be added in by hand :

makechrootpkg -T -r /tmp/chroot/ -I goffice0.8-0.8.17-4-x86_64.pkg.tar.xz -I webkitgtk2-2.4.11-6-x86_64.pkg.tar.xz -- -s

This builds without any segfault on several of my machines.

uhoso commented on 2017-07-05 18:56

I got the same segmantation fault as kingcreole.

pacman -S base-devel --needed said "There is nothing to do"

Schmeidenbacher commented on 2017-07-05 10:23

If you're missing pkg-config then you haven't installed the full base-devel group.

Please do a

pacman -S base-devel --needed

before you build a package. That will install only the missing packages from the base-devel group if any are missing.

I tested the package in a clean chroot with only the base-devel group in addition to the defined dependencies installed. And that built as expected.

kingcreole commented on 2017-07-04 21:04

Hey, uhm, i'm sorry to bother you, i got a Segmentation fault, sorry for my german locale, but the german stuff is basically saying segmentationfault

/usr/bin/guild compile -o customer-summary.go customer-summary.scm
make[4]: *** [Makefile:755: customer-summary.go] Speicherzugriffsfehler (Speicherauszug erstellt)

oddly enough, 2.6.17-1 seems to have worked

update: seems like pkgconfig was necessary

Schmeidenbacher commented on 2017-07-04 19:01

@Brinox: Done

I hadn't even had time to really look at the package. Since it just came from extra i only made sure that it built in a clean chroot and that it would run.

Brinox commented on 2017-07-04 15:58

You can remove gcc and pkgconfig from makedepends as they're already part of the base-devel group and therefore don't need to be stated explicitly.

Schmeidenbacher commented on 2017-07-03 18:31

Released Version 2.6.17-1.

dajoe commented on 2017-07-02 18:35

@kubrick
Thank you, your comment pointed me into the right direction. I was trying to build gnucash against existing webkitgtk2 and goffice0.8. I had to remove both and build them again from aur (webkitgtk2 almost took the day). Then gnucash built just fine.

kubrick commented on 2017-07-02 09:33

@dajoe: did you try removing exiting gnucash & goffice0.8 before building the aur package?

dajoe commented on 2017-07-02 08:34

build fails (using yaourt):

/usr/bin/guild compile -o report-gnome.go report-gnome.scm
Backtrace:
In ice-9/eval.scm:
619:8 19 (_ #(#(#<directory (guile-user) e6f140>)))
In /usr/bin/guild:
72:17 18 (main _)
In srfi/srfi-1.scm:
640:9 17 (for-each #<procedure d3e080 at scripts/compile.scm:24…> …)
In scripts/compile.scm:
251:26 16 (_ _)
In system/base/target.scm:
57:6 15 (with-target _ _)
In system/base/compile.scm:
152:6 14 (compile-file _ #:output-file _ #:from _ #:to _ #:env _ …)
43:4 13 (call-once _)
In ice-9/boot-9.scm:
849:4 12 (with-throw-handler _ _ _)
In system/base/compile.scm:
59:11 11 (_)
155:11 10 (_ #<closed: file fb6e00>)
235:18 9 (read-and-compile #<input: report-gnome.scm 13> #:from _ …)
183:32 8 (compile-fold (#<procedure compile-tree-il (x e opts)>) …)
In ice-9/boot-9.scm:
2316:4 7 (save-module-excursion #<procedure 1874080 at language/…>)
In language/scheme/compile-tree-il.scm:
31:15 6 (_)
In ice-9/psyntax.scm:
1234:36 5 (expand-top-sequence ((cond-expand (guile-2 (# …)) #)) _ …)
1181:24 4 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)
1181:24 3 (parse _ (("placeholder" placeholder)) (()) _ c (# # #) #)
284:10 2 (parse _ (("placeholder" placeholder)) ((top) #(# …) #) …)
In unknown file:
1 (load-extension "libgncmod-report-gnome" "scm_init_sw_r…")
In ice-9/boot-9.scm:
760:25 0 (dispatch-exception _ _ _)

ice-9/boot-9.scm:760:25: In procedure dispatch-exception:
ice-9/boot-9.scm:760:25: In procedure dynamic-link: file: "libgncmod-report-gnome", message: "file not found"

City-busz commented on 2017-07-01 10:27

Because it depends on insecure libwebkitgtk-1.0:
https://bugzilla.gnome.org/show_bug.cgi?id=751635

See also:
https://lists.archlinux.org/pipermail/arch-dev-public/2017-June/028900.html

kubrick commented on 2017-07-01 10:09

Hello. Why has this package been moved from extra?