summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron W. Swenson <titanofold@gentoo.org>2019-01-09 08:05:16 -0500
committerAaron W. Swenson <titanofold@gentoo.org>2019-01-09 08:06:11 -0500
commit935fed447ee5a63e63e6a82ab5889be407de30b4 (patch)
tree7ea146410ad35478df296bb26ae5e1d090dd748a /app-office/gnucash
parentapp-doc/gnucash-docs: Bump to 3.4 (diff)
downloadgentoo-935fed447ee5a63e63e6a82ab5889be407de30b4.tar.gz
gentoo-935fed447ee5a63e63e6a82ab5889be407de30b4.tar.bz2
gentoo-935fed447ee5a63e63e6a82ab5889be407de30b4.zip
app-office/gnucash: Bump to 3.4
Manually insert test-stress-options.scm as it is missing from the source tarball, which causes the test-stress-options unit test to fail. Add patch to fix test-transaction unit test failure. Package-Manager: Portage-2.3.51, Repoman-2.3.11 Signed-off-by: Aaron W. Swenson <titanofold@gentoo.org>
Diffstat (limited to 'app-office/gnucash')
-rw-r--r--app-office/gnucash/Manifest1
-rw-r--r--app-office/gnucash/files/gnucash-3.4-test-stress-options.scm315
-rw-r--r--app-office/gnucash/files/gnucash-3.4-test-transaction.patch25
-rw-r--r--app-office/gnucash/gnucash-3.4.ebuild178
4 files changed, 519 insertions, 0 deletions
diff --git a/app-office/gnucash/Manifest b/app-office/gnucash/Manifest
index c2508be77204..6bd42515824e 100644
--- a/app-office/gnucash/Manifest
+++ b/app-office/gnucash/Manifest
@@ -1,3 +1,4 @@
DIST gnucash-3.2.tar.bz2 13383942 BLAKE2B ce4beb9eab290bbc85c4b3bf68b205a8ebb274056bf10ef1721bce48ec18e4df4b488ce885dc767b4f1e951dabcdc2ba702cb5fe239f249ec50c8d2d1d12a434 SHA512 ef74cbf396096a71316e14500a5b4e57670f9e9c0c5d46f3afe051ccbae2e46a5f14edd8dd805dfb61276b934db286d48ae044160699df82689e2718ed2f7573
DIST gnucash-3.3.tar.bz2 13440713 BLAKE2B a308af90d8a8e50eb732d29c7eadac1fb75b63006da5bbaa9044039c43c1c17976c6b6fdb1706a08a527b75b1300df3a8ed469151370097b0308a173a170e41b SHA512 4bf0369ca9b3c91c98a0d916f0befc7e5675a246559a6a72dba6592b64f56f3cbd1885b0711e44e8d9cca290be742812763691ae2f639ea31ec534e52e17b3f9
+DIST gnucash-3.4.tar.bz2 13564432 BLAKE2B 478d8e2e4acbd0725ceaf997a1e62ba3875e9d4a003e8a3e69111a9d29118447fb2da8ef3e5dd5274d83a3adef1ee9f4a153cdfd17cabe69864b53bab8c7e813 SHA512 4cebef0ba70e59a82d3b2b7b0b138ddb22e8866dc761e156ff1f15920145d12923719effef21ad4c65ccd62fbd14a1529cf0bfcaab70c5b33d103761d08062e0
DIST gtest-1.8.0.tar.gz 1281617 BLAKE2B ac052b4d0eb0d8ded03a8c7dff05177818627b8a51f2dbc2c162b2ee2a5d1323539e7d0d02236d9ebb799995e018f0171c2fdaeb4de3bb339548265e50de79e6 SHA512 1dbece324473e53a83a60601b02c92c089f5d314761351974e097b2cf4d24af4296f9eb8653b6b03b1e363d9c5f793897acae1f0c7ac40149216035c4d395d9d
diff --git a/app-office/gnucash/files/gnucash-3.4-test-stress-options.scm b/app-office/gnucash/files/gnucash-3.4-test-stress-options.scm
new file mode 100644
index 000000000000..e85cd61a8efe
--- /dev/null
+++ b/app-office/gnucash/files/gnucash-3.4-test-stress-options.scm
@@ -0,0 +1,315 @@
+(use-modules (ice-9 textual-ports))
+(use-modules (ice-9 popen))
+(use-modules (gnucash utilities))
+(use-modules (gnucash gnc-module))
+(gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
+(use-modules (gnucash engine test test-extras))
+(use-modules (gnucash report standard-reports))
+(use-modules (gnucash report business-reports))
+(use-modules (gnucash report view-column))
+(use-modules (gnucash report stylesheets))
+(use-modules (gnucash report taxinvoice))
+(use-modules (gnucash report report-system))
+(use-modules (gnucash report report-system test test-extras))
+(use-modules (srfi srfi-64))
+(use-modules (srfi srfi-98))
+(use-modules (gnucash engine test srfi64-extras))
+(use-modules (sxml simple))
+(use-modules (sxml xpath))
+
+;; NOTE
+;; ----
+;; SIMPLE stress tests by default
+;;
+;; PAIRWISE COMBINATORICS are enabled by setting environment variable COMBINATORICS
+;; to the fullpath for the compiled jenny from http://burtleburtle.net/bob/math/jenny.html
+;;
+;; e.g. COMBINATORICS=/home/user/jenny/jenny ninja check
+
+(define optionslist '())
+
+(define (generate-optionslist)
+ (gnc:report-templates-for-each
+ (lambda (report-id template)
+ (let* ((options-generator (gnc:report-template-options-generator template))
+ (name (gnc:report-template-name template))
+ (options (options-generator)))
+ (set! optionslist
+ (cons (list (cons 'report-id report-id)
+ (cons 'report-name (gnc:report-template-name template))
+ (cons 'options (let ((report-options-tested '()))
+ (gnc:options-for-each
+ (lambda (option)
+ (when (memq (gnc:option-type option)
+ '(multichoice boolean))
+ (set! report-options-tested
+ (cons (vector
+ (gnc:option-section option)
+ (gnc:option-name option)
+ (gnc:option-type option)
+ (case (gnc:option-type option)
+ ((multichoice) (map (lambda (d) (vector-ref d 0))
+ (gnc:option-data option)))
+ ((boolean) (list #t #f))))
+ report-options-tested))))
+ options)
+ report-options-tested)))
+ optionslist))))))
+
+;; Explicitly set locale to make the report output predictable
+(setlocale LC_ALL "C")
+
+(define (run-test)
+ (test-runner-factory gnc:test-runner)
+ (test-begin "stress options")
+ (generate-optionslist)
+ (tests)
+ (test-end "stress options"))
+
+(define jennypath
+ (get-environment-variable "COMBINATORICS"))
+
+(define jenny-exists?
+ ;; this is a simple test for presence of jenny - will check
+ ;; COMBINATORICS env exists, and running it produces exit-code of
+ ;; zero, and tests the first few letters of its output.
+ (and (string? jennypath)
+ (zero? (system jennypath))
+ (string=? (string-take (get-string-all (open-input-pipe jennypath)) 6)
+ "jenny:")))
+
+(define (set-option! options section name value)
+ (let ((option (gnc:lookup-option options section name)))
+ (if option
+ (gnc:option-set-value option value))))
+
+(define (mnemonic->commodity sym)
+ (gnc-commodity-table-lookup
+ (gnc-commodity-table-get-table (gnc-get-current-book))
+ (gnc-commodity-get-namespace (gnc-default-report-currency))
+ sym))
+
+(define structure
+ (list "Root" (list (cons 'type ACCT-TYPE-ASSET))
+ (list "Asset"
+ (list "Bank")
+ (list "GBP Bank" (list (cons 'commodity (mnemonic->commodity "GBP"))))
+ (list "Wallet"))
+ (list "Income" (list (cons 'type ACCT-TYPE-INCOME)))
+ (list "Income-GBP" (list (cons 'type ACCT-TYPE-INCOME)
+ (cons 'commodity (mnemonic->commodity "GBP"))))
+ (list "Expenses" (list (cons 'type ACCT-TYPE-EXPENSE)))
+ (list "Liabilities" (list (cons 'type ACCT-TYPE-LIABILITY)))
+ (list "Equity" (list (cons 'type ACCT-TYPE-EQUITY)))
+ ))
+
+(define (simple-stress-test report-name uuid report-options)
+ (let ((options (gnc:make-report-options uuid)))
+ (test-assert (format #f "basic test ~a" report-name)
+ (gnc:options->render uuid options (string-append "stress-" report-name) "test"))
+ (format #t "Testing SIMPLE combinations for:\n~a" report-name)
+ (for-each
+ (lambda (option)
+ (format #t ",~a/~a"
+ (vector-ref option 0)
+ (vector-ref option 1)))
+ report-options)
+ (newline)
+ (for-each
+ (lambda (idx)
+ (display report-name)
+ (for-each
+ (lambda (option)
+ (let* ((section (vector-ref option 0))
+ (name (vector-ref option 1))
+ (value (list-ref (vector-ref option 3)
+ (modulo idx (length (vector-ref option 3))))))
+ (set-option! options section name value)
+ (format #t ",~a"
+ (cond
+ ((boolean? value) (if value 't 'f))
+ (else value)))))
+ report-options)
+ (catch #t
+ (lambda ()
+ (gnc:options->render uuid options "stress-test" "test")
+ (display "[pass]\n"))
+ (lambda (k . args)
+ (format #t "[fail]... error: (~s . ~s) options-list are:\n~a"
+ k args
+ (gnc:html-render-options-changed options #t))
+ (test-assert "logging test failure as above..."
+ #f))))
+ (iota
+ (apply max
+ (map (lambda (opt) (length (vector-ref opt 3)))
+ report-options)))
+ )))
+
+(define (combinatorial-stress-test report-name uuid report-options)
+ (let* ((options (gnc:make-report-options uuid))
+ (render #f))
+ (test-assert (format #f "basic test ~a" report-name)
+ (set! render
+ (gnc:options->render
+ uuid options (string-append "stress-" report-name) "test")))
+ (if render
+ (begin
+ (format #t "Testing n-tuple combinatorics for:\n~a" report-name)
+ (for-each
+ (lambda (option)
+ (format #t ",~a/~a"
+ (vector-ref option 0)
+ (vector-ref option 1)))
+ report-options)
+ (newline)
+ ;; generate combinatorics
+ (let* ((option-lengths (map (lambda (report-option)
+ (length (vector-ref report-option 3)))
+ report-options))
+ (jennyargs (string-join (map number->string option-lengths) " "))
+ (n-tuple (min
+ ;; the following is the n-tuple
+ 2
+ (length report-options)))
+ (cmdline (format #f "~a -n~a ~a"
+ jennypath n-tuple jennyargs))
+ (jennyout (get-string-all (open-input-pipe cmdline)))
+ (test-cases (string-split jennyout #\newline)))
+ (for-each
+ (lambda (case)
+ (unless (string-null? case)
+ (let* ((choices-str (string-filter char-alphabetic? case))
+ (choices-alpha (map char->integer (string->list choices-str)))
+ (choices (map (lambda (n)
+ (- n (if (> n 96) 97 39))) ; a-z -> 0-25, and A-Z -> 26-51
+ choices-alpha)))
+ (let loop ((option-idx (1- (length report-options)))
+ (option-summary '()))
+ (if (negative? option-idx)
+ (catch #t
+ (lambda ()
+ (gnc:options->render uuid options "stress-test" "test")
+ (format #t "[pass] ~a:~a \n"
+ report-name
+ (string-join option-summary ",")))
+ (lambda (k . args)
+ (format #t "[fail]... error (~s . ~s) options-list are:\n~a"
+ k args
+ (gnc:html-render-options-changed options #t))
+ (test-assert "logging test failure as above..."
+ #f)))
+ (let* ((option (list-ref report-options option-idx))
+ (section (vector-ref option 0))
+ (name (vector-ref option 1))
+ (value (list-ref (vector-ref option 3)
+ (list-ref choices option-idx))))
+ (set-option! options section name value)
+ (loop (1- option-idx)
+ (cons (format #f "~a"
+ (cond
+ ((boolean? value) (if value 't 'f))
+ (else value)))
+ option-summary))))))))
+ test-cases)))
+ (display "...aborted due to basic test failure"))))
+
+(define test
+ ;; what strategy are we using here? simple stress test (ie tests as
+ ;; many times as the maximum number of options) or combinatorial
+ ;; tests (using jenny)
+ (if jenny-exists?
+ combinatorial-stress-test
+ simple-stress-test))
+
+(define (create-test-data)
+ (let* ((env (create-test-env))
+ (account-alist (env-create-account-structure-alist env structure))
+ (bank (cdr (assoc "Bank" account-alist)))
+ (gbp-bank (cdr (assoc "GBP Bank" account-alist)))
+ (wallet (cdr (assoc "Wallet" account-alist)))
+ (income (cdr (assoc "Income" account-alist)))
+ (gbp-income (cdr (assoc "Income-GBP" account-alist)))
+ (expense (cdr (assoc "Expenses" account-alist)))
+ (liability (cdr (assoc "Liabilities" account-alist)))
+ (equity (cdr (assoc "Equity" account-alist))))
+ ;; populate datafile with old transactions
+ (env-transfer env 01 01 1970 bank expense 5 #:description "desc-1" #:num "trn1" #:memo "memo-3")
+ (env-transfer env 31 12 1969 income bank 10 #:description "desc-2" #:num "trn2" #:void-reason "void" #:notes "notes3")
+ (env-transfer env 31 12 1969 income bank 29 #:description "desc-3" #:num "trn3"
+ #:reconcile (cons #\c (gnc-dmy2time64 01 03 1970)))
+ (env-transfer env 01 02 1970 bank expense 15 #:description "desc-4" #:num "trn4" #:notes "notes2" #:memo "memo-1")
+ (env-transfer env 10 01 1970 liability expense 10 #:description "desc-5" #:num "trn5" #:void-reason "any")
+ (env-transfer env 10 01 1970 liability expense 11 #:description "desc-6" #:num "trn6" #:notes "notes1")
+ (env-transfer env 10 02 1970 bank liability 8 #:description "desc-7" #:num "trn7" #:notes "notes1" #:memo "memo-2"
+ #:reconcile (cons #\y (gnc-dmy2time64 01 03 1970)))
+ (let ((txn (xaccMallocTransaction (gnc-get-current-book)))
+ (split-1 (xaccMallocSplit (gnc-get-current-book)))
+ (split-2 (xaccMallocSplit (gnc-get-current-book)))
+ (split-3 (xaccMallocSplit (gnc-get-current-book))))
+ (xaccTransBeginEdit txn)
+ (xaccTransSetDescription txn "$100bank -> $80expenses + $20wallet")
+ (xaccTransSetCurrency txn (xaccAccountGetCommodity bank))
+ (xaccTransSetDate txn 14 02 1971)
+ (xaccSplitSetParent split-1 txn)
+ (xaccSplitSetParent split-2 txn)
+ (xaccSplitSetParent split-3 txn)
+ (xaccSplitSetAccount split-1 bank)
+ (xaccSplitSetAccount split-2 expense)
+ (xaccSplitSetAccount split-3 wallet)
+ (xaccSplitSetValue split-1 -100)
+ (xaccSplitSetValue split-2 80)
+ (xaccSplitSetValue split-3 20)
+ (xaccSplitSetAmount split-1 -100)
+ (xaccSplitSetAmount split-2 80)
+ (xaccSplitSetAmount split-3 20)
+ (xaccTransSetNotes txn "multisplit")
+ (xaccTransCommitEdit txn))
+ (let ((closing-txn (env-transfer env 31 12 1977 expense equity 111 #:description "Closing")))
+ (xaccTransSetIsClosingTxn closing-txn #t))
+ (env-transfer-foreign env 15 01 2000 gbp-bank bank 10 14 #:description "GBP 10 to USD 14")
+ (env-transfer-foreign env 15 02 2000 bank gbp-bank 9 6 #:description "USD 9 to GBP 6")
+ (for-each (lambda (m)
+ (env-transfer env 08 (1+ m) 1978 gbp-income gbp-bank 51 #:description "#51 income")
+ (env-transfer env 03 (1+ m) 1978 income bank 103 #:description "$103 income")
+ (env-transfer env 15 (1+ m) 1978 bank expense 22 #:description "$22 expense")
+ (env-transfer env 09 (1+ m) 1978 income bank 109 #:description "$109 income"))
+ (iota 12))
+ (let ((mid (floor (/ (+ (gnc-accounting-period-fiscal-start)
+ (gnc-accounting-period-fiscal-end)) 2))))
+ (env-create-transaction env mid bank income 200))))
+
+(define (run-tests prefix)
+ (for-each
+ (lambda (option-set)
+ (let ((report-name (assq-ref option-set 'report-name))
+ (report-guid (assq-ref option-set 'report-id))
+ (report-options (assq-ref option-set 'options)))
+ (if (member report-name
+ ;; these reports seem to cause problems when running...
+ '(
+ ;; eguile-based reports
+ "Tax Invoice"
+ "Receipt"
+ "Australian Tax Invoice"
+ "Balance Sheet (eguile)"
+
+ ;; tax-schedule - locale-dependent?
+ "Tax Schedule Report/TXF Export"
+
+ ;; unusual reports
+ "Welcome to GnuCash"
+ "Hello, World"
+ "Multicolumn View"
+ "General Journal"
+ ))
+ (format #t "\nSkipping ~a ~a...\n" report-name prefix)
+ (begin
+ (format #t "\nTesting ~a ~a...\n" report-name prefix)
+ (test report-name report-guid report-options)))))
+ optionslist))
+
+(define (tests)
+ (run-tests "with empty book")
+ (create-test-data)
+ (run-tests "on a populated book"))
diff --git a/app-office/gnucash/files/gnucash-3.4-test-transaction.patch b/app-office/gnucash/files/gnucash-3.4-test-transaction.patch
new file mode 100644
index 000000000000..bf7180e664fd
--- /dev/null
+++ b/app-office/gnucash/files/gnucash-3.4-test-transaction.patch
@@ -0,0 +1,25 @@
+From 95bee405cf5568f5899287ba62058cf894361676 Mon Sep 17 00:00:00 2001
+From: Christopher Lam <christopher.lck@gmail.com>
+Date: Wed, 2 Jan 2019 00:00:56 +0800
+Subject: [PATCH] [test-transaction] fix a test which was hardcoded to 2018.
+
+This test was hard-coded to pass in 2018. Fix.
+---
+ gnucash/report/standard-reports/test/test-transaction.scm | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gnucash/report/standard-reports/test/test-transaction.scm b/gnucash/report/standard-reports/test/test-transaction.scm
+index 755aba2983..2f428e24e9 100644
+--- a/gnucash/report/standard-reports/test/test-transaction.scm
++++ b/gnucash/report/standard-reports/test/test-transaction.scm
+@@ -652,8 +652,8 @@
+ (list "Grand Total" "$2,280.00" "$2,280.00")
+ (get-row-col sxml -1 #f))
+ (test-equal "dual amount column, first transaction correct"
+- (list "01/03/18" "$103 income" "Root.Asset.Bank" "$103.00" "$103.00")
+- (get-row-col sxml 1 #f)))
++ (list "$103 income" "Root.Asset.Bank" "$103.00" "$103.00")
++ (cdr (get-row-col sxml 1 #f))))
+ )
+
+ (test-end "display options")
diff --git a/app-office/gnucash/gnucash-3.4.ebuild b/app-office/gnucash/gnucash-3.4.ebuild
new file mode 100644
index 000000000000..970c9bf9bf22
--- /dev/null
+++ b/app-office/gnucash/gnucash-3.4.ebuild
@@ -0,0 +1,178 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# google{test,mock} version
+GV="1.8.0"
+PYTHON_COMPAT=( python3_{4,5,6} )
+
+inherit cmake-utils gnome2-utils python-single-r1 xdg-utils
+
+DESCRIPTION="A personal finance manager"
+HOMEPAGE="http://www.gnucash.org/"
+SRC_URI="https://github.com/Gnucash/${PN}/releases/download/${PV}/${P}.tar.bz2
+ https://github.com/google/googletest/archive/release-${GV}.tar.gz -> gtest-${GV}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+
+IUSE="aqbanking chipcard debug doc examples gnome-keyring +gui mysql nls ofx
+ postgres python quotes -register2 sqlite"
+
+REQUIRED_USE="
+ chipcard? ( aqbanking )
+ python? ( ${PYTHON_REQUIRED_USE} )"
+
+# libdbi version requirement for sqlite taken from bug #455134
+#
+# dev-libs/boost must always be built with nls enabled.
+# guile[deprecated] because of SCM_LIST*() use
+RDEPEND="
+ >=dev-libs/glib-2.46.0:2
+ >=dev-libs/libxml2-2.7.0:2
+ >=sys-libs/zlib-1.1.4
+ >=dev-scheme/guile-2.2.0:12=[deprecated,regex]
+ dev-libs/boost:=[icu,nls]
+ dev-libs/icu:=
+ dev-libs/libxslt
+ aqbanking? (
+ >=net-libs/aqbanking-5[gtk,ofx?]
+ sys-libs/gwenhywfar[gtk]
+ chipcard? ( sys-libs/libchipcard )
+ )
+ gnome-keyring? ( >=app-crypt/libsecret-0.18 )
+ gui? (
+ gnome-base/dconf
+ net-libs/webkit-gtk:4=
+ >=x11-libs/gtk+-3.14.0:3
+ )
+ mysql? (
+ dev-db/libdbi
+ dev-db/libdbi-drivers[mysql]
+ )
+ ofx? ( >=dev-libs/libofx-0.9.1 )
+ postgres? (
+ dev-db/libdbi
+ dev-db/libdbi-drivers[postgres]
+ )
+ python? ( ${PYTHON_DEPS} )
+ quotes? (
+ >=dev-perl/Finance-Quote-1.11
+ dev-perl/Date-Manip
+ dev-perl/HTML-TableExtract
+ )
+ sqlite? (
+ >=dev-db/libdbi-0.9.0
+ >=dev-db/libdbi-drivers-0.9.0[sqlite]
+ )
+"
+
+DEPEND="${RDEPEND}
+ ~dev-cpp/gtest-${GV}
+ >=sys-devel/gettext-0.19.6
+ dev-lang/perl
+ dev-perl/XML-Parser
+ sys-devel/libtool
+ virtual/pkgconfig
+"
+
+PDEPEND="doc? (
+ ~app-doc/gnucash-docs-${PV}
+ gnome-extra/yelp
+)"
+
+PATCHES=( "${FILESDIR}"/${PN}-3.2-no-gui.patch
+ # Fixed in 3.5
+ "${FILESDIR}"/${PN}-3.4-test-transaction.patch )
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+ xdg_environment_reset
+}
+
+src_unpack() {
+ default
+ cp "${FILESDIR}"/gnucash-3.4-test-stress-options.scm \
+ ${PN}-${PV}/${PN}/report/standard-reports/test/test-stress-options.scm \
+ || die "Failed copying scm"
+}
+
+src_configure() {
+ local sql_on_off="OFF"
+ if use mysql || use postgres || use sqlite ; then
+ sql_on_off="ON"
+ fi
+
+ local mycmakeargs=(
+ -DGMOCK_ROOT="${WORKDIR}"/googletest-release-${GV}/googlemock
+ -DGTEST_ROOT="${WORKDIR}"/googletest-release-${GV}/googletest
+ # Disable fallback to guile-2.0
+ -DCMAKE_DISABLE_FIND_PACKAGE_GUILE2=ON
+ -DCOMPILE_GSCHEMAS=OFF
+ -DDISABLE_NLS=$(usex !nls)
+ -DENABLE_REGISTER2=$(usex register2)
+ -DWITH_AQBANKING=$(usex aqbanking)
+ -DWITH_OFX=$(usex ofx)
+ -DWITH_PYTHON=$(usex python)
+ -DWITH_SQL=${sql_on_off}
+ -DWITH_GNUCASH=$(usex gui)
+ )
+
+ cmake-utils_src_configure
+}
+
+src_test() {
+ if use python ; then
+ cp common/test-core/unittest_support.py \
+ "${BUILD_DIR}"/common/test-core/ || die
+ fi
+
+ cd "${BUILD_DIR}" || die
+ XDG_DATA_HOME="${T}/$(whoami)" emake check
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ rm "${ED%/}"/usr/share/doc/${PF}/README.dependencies || die
+
+ if use examples ; then
+ mv "${ED%/}"/usr/share/doc/gnucash \
+ "${ED%/}"/usr/share/doc/${PF}/examples || die
+ pushd "${ED%/}"/usr/share/doc/${PF}/examples/ > /dev/null || die
+ rm AUTHORS DOCUMENTERS LICENSE NEWS projects.html ChangeLog* \
+ *win32-bin.txt || die
+ popd > /dev/null || die
+ docompress -x /usr/share/doc/${PF}/examples/
+ else
+ rm -r "${ED%/}"/usr/share/doc/gnucash || die
+ fi
+
+ use aqbanking && dodoc doc/README.HBCI
+ use ofx && dodoc doc/README.OFX
+}
+
+pkg_postinst() {
+ if use gui ; then
+ gnome2_icon_cache_update
+ gnome2_schemas_update
+ fi
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+
+ ewarn "Backup all financial files or databases before using GnuCash >=2.7.0!"
+ ewarn
+ ewarn "GnuCash 2.7.0 introduced large changes in its file format and database"
+ ewarn "schema that WILL prevent you from reverting back to GnuCash 2.6."
+}
+
+pkg_postrm() {
+ if use gui ; then
+ gnome2_icon_cache_update
+ gnome2_schemas_update
+ fi
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+}