diff --git a/gnu/local.mk b/gnu/local.mk index 8c6579b03f..8f854e98b5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -762,6 +762,7 @@ dist_patch_DATA = \ %D%/packages/patches/gnome-todo-libical-compat.patch \ %D%/packages/patches/gnome-tweak-tool-search-paths.patch \ %D%/packages/patches/gnucash-price-quotes-perl.patch \ + %D%/packages/patches/gnucash-disable-failing-tests.patch \ %D%/packages/patches/gnutls-skip-trust-store-test.patch \ %D%/packages/patches/gnutls-skip-pkgconfig-test.patch \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index fc8a9b6bfc..45720df9a4 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -28,6 +28,7 @@ (define-module (gnu packages gnucash) #:use-module (guix build-system cmake) #:use-module (gnu packages) #:use-module (gnu packages autotools) + #:use-module (gnu packages base) #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages cmake) @@ -50,7 +51,7 @@ (define-module (gnu packages gnucash) (define-public gnucash (package (name "gnucash") - (version "3.0") + (version "3.3") (source (origin (method url-fetch) @@ -58,11 +59,9 @@ (define-public gnucash version "/gnucash-" version ".tar.bz2")) (sha256 (base32 - "1ffvf1rryg5yin86fnf1zvy6hnpwzrjarbdfmjmrf2mqlmv48xac")) - - ;; TODO: rebase this patch -; (patches (search-patches "gnucash-price-quotes-perl.patch")) - )) + "0grr5qi5rn1xvr7qx5d7mcxa2mcgycy2b325ry73bb485a6yv5l3")) + (patches (search-patches "gnucash-price-quotes-perl.patch" + "gnucash-disable-failing-tests.patch")))) (build-system cmake-build-system) (inputs `(("guile" ,guile-2.2) @@ -76,7 +75,8 @@ (define-public gnucash ("webkitgtk" ,webkitgtk) ("aqbanking" ,aqbanking) ("perl-date-manip" ,perl-date-manip) - ("perl-finance-quote" ,perl-finance-quote))) + ("perl-finance-quote" ,perl-finance-quote) + ("tzdata" ,tzdata-for-tests))) (native-inputs `(("glib" ,glib "bin") ; glib-compile-schemas, etc. ("intltool" ,intltool) @@ -90,6 +90,13 @@ (define-public gnucash #:configure-flags (list "-DWITH_OFX=OFF" ; libofx is not available yet "-DWITH_SQL=OFF") ; without dbi.h + #:make-flags '("GUILE_AUTO_COMPILE=0") + #:modules ((guix build cmake-build-system) + ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) + (guix build utils)) + #:imported-modules (,@%gnu-build-system-modules + (guix build cmake-build-system) + (guix build glib-or-gtk-build-system)) #:phases (modify-phases %standard-phases (add-after 'unpack 'unpack-gmock @@ -99,14 +106,28 @@ (define-public gnucash "-C" "gmock" "--strip-components=1") (setenv "GMOCK_ROOT" (string-append (getcwd) "/gmock/googlemock")) #t)) + (add-after 'unpack 'set-env-vars + (lambda* (#:key inputs #:allow-other-keys) + (let ((tzdata (assoc-ref inputs "tzdata"))) + ;; At least one test is time-related and requires this + ;; environment variable. + (setenv "TZDIR" + (string-append tzdata + "/share/zoneinfo")) + (substitute* "CMakeLists.txt" + (("set\\(SHELL /bin/bash\\)") + (string-append "set(SHELL " (which "bash") ")"))) + #t))) ;; There are about 100 megabytes of documentation. (add-after 'install 'install-docs (lambda* (#:key inputs outputs #:allow-other-keys) (let ((docs (assoc-ref inputs "gnucash-docs")) (doc-output (assoc-ref outputs "doc"))) + (mkdir-p (string-append doc-output "/share")) (symlink (string-append docs "/share/gnome") - (string-append doc-output "/share/gnome"))))) + (string-append doc-output "/share/gnome")) + #t))) (add-after 'install-docs 'wrap-programs (lambda* (#:key inputs outputs #:allow-other-keys) @@ -134,7 +155,11 @@ (define-public gnucash '("gnucash" "gnc-fq-check" "gnc-fq-helper" - "gnc-fq-dump"))))))) + "gnc-fq-dump")))) + (add-after 'install 'glib-or-gtk-compile-schemas + (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas)) + (add-after 'install 'glib-or-gtk-wrap + (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) (home-page "https://www.gnucash.org/") (synopsis "Personal and small business financial accounting software") (description @@ -150,7 +175,9 @@ (define-public gnucash (define gnucash-docs (package (name "gnucash-docs") - (version (package-version gnucash)) + ;;(version (package-version gnucash)) + ;; The current version of gnucash-docs is not available at the moment. + (version "3.2") (source (origin (method url-fetch) @@ -158,7 +185,7 @@ (define gnucash-docs version "/gnucash-docs-" version ".tar.gz")) (sha256 (base32 - "0yq65s3z3dwdwdf2nq1d1w9ckdjdyjwkfpmvhzyib54b66q65xh5")))) + "1763m6d8gkhllwb9rnr9ifch39brmh7kr2m6icqfbc53a91m56j6")))) (build-system gnu-build-system) ;; These are native-inputs because they are only required for building the ;; documentation. diff --git a/gnu/packages/patches/gnucash-disable-failing-tests.patch b/gnu/packages/patches/gnucash-disable-failing-tests.patch new file mode 100644 index 0000000000..e0fdd86b5d --- /dev/null +++ b/gnu/packages/patches/gnucash-disable-failing-tests.patch @@ -0,0 +1,39 @@ +test-stress-options.scm does not exist, and test-qof passes when run in the +build directory after the gnucash build. + +diff -ur gnucash-3.3.old/gnucash/report/standard-reports/test/CMakeLists.txt gnucash-3.3/gnucash/report/standard-reports/test/CMakeLists.txt +--- gnucash-3.3.old/gnucash/report/standard-reports/test/CMakeLists.txt 2018-10-04 09:29:00.916641417 -0400 ++++ gnucash-3.3/gnucash/report/standard-reports/test/CMakeLists.txt 2018-10-04 09:30:52.962504860 -0400 +@@ -13,10 +13,6 @@ + test-income-gst.scm + ) + +-set(scm_test_with_textual_ports_SOURCES +- test-stress-options.scm +-) +- + set(GUILE_DEPENDS + scm-gnc-module + scm-app-utils +@@ -31,9 +27,6 @@ + + if (HAVE_SRFI64) + gnc_add_scheme_tests("${scm_test_with_srfi64_SOURCES}") +- if (HAVE_TEXT_PORTS) +- gnc_add_scheme_tests("${scm_test_with_textual_ports_SOURCES}") +- endif (HAVE_TEXT_PORTS) + endif (HAVE_SRFI64) + + gnc_add_scheme_tests("${scm_test_standard_reports_SOURCES}") +diff -ur gnucash-3.3.old/libgnucash/engine/test/CMakeLists.txt gnucash-3.3/libgnucash/engine/test/CMakeLists.txt +--- gnucash-3.3.old/libgnucash/engine/test/CMakeLists.txt 2018-10-04 09:29:00.876640751 -0400 ++++ gnucash-3.3/libgnucash/engine/test/CMakeLists.txt 2018-10-05 10:46:22.542962546 -0400 +@@ -54,8 +54,6 @@ + # This test does not run on Win32 + if (NOT WIN32) + set(SOURCES ${test_qof_SOURCES} ${CMAKE_SOURCE_DIR}/common/test-core/unittest-support.c) +- add_engine_test(test-qof "${SOURCES}") +- target_compile_definitions(test-qof PRIVATE TESTPROG=test_qof) + + set(SOURCES ${test_engine_SOURCES} ${CMAKE_SOURCE_DIR}/common/test-core/unittest-support.c) + add_engine_test(test-engine "${SOURCES}") diff --git a/gnu/packages/patches/gnucash-price-quotes-perl.patch b/gnu/packages/patches/gnucash-price-quotes-perl.patch index 982763f0ec..3101ddb007 100644 --- a/gnu/packages/patches/gnucash-price-quotes-perl.patch +++ b/gnu/packages/patches/gnucash-price-quotes-perl.patch @@ -1,8 +1,9 @@ After wrapping gnc-fq-check and gnc-fq-helper we can no longer execute them with perl, so execute them directly instead. ---- gnucash-2.6.6/src/scm/price-quotes.scm.orig 2014-04-27 17:42:28.000000000 -0500 -+++ gnucash-2.6.6/src/scm/price-quotes.scm 2015-07-09 16:12:11.196218472 -0500 +diff -ur gnucash-3.2.old/libgnucash/scm/price-quotes.scm gnucash-3.2/libgnucash/scm/price-quotes.scm +--- gnucash-3.2.old/libgnucash/scm/price-quotes.scm 2018-09-15 00:48:33.718389646 -0400 ++++ gnucash-3.2/libgnucash/scm/price-quotes.scm 2018-09-15 13:51:49.249862724 -0400 @@ -74,7 +74,7 @@ (define (start-program) (if (not (string-null? gnc:*finance-quote-check*))