Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index Assistance Portage & Programming
  • Search

GnuCash and AqBanking: fix SEPA transactions

Problems with emerge or ebuilds? Have a basic programming question about C, PHP, Perl, BASH or something else?
Post Reply
Advanced search
8 posts • Page 1 of 1
Author
Message
catch22
n00b
n00b
Posts: 22
Joined: Sun Mar 18, 2007 11:39 pm

GnuCash and AqBanking: fix SEPA transactions

  • Quote

Post by catch22 » Mon Nov 18, 2019 11:18 am

Hi all!
I was having trouble to get GnuCash and AqBanking to work with my Bank (in Germany) since they switched to PSD2. I'm using HBCI with chipcard to communicate with the bank. But I was able to get it running with current unstable version of GnuCash and AqBanking.

Code: Select all

ᐅ emerge -pv gnucash aqbanking gwenhywfar libchipcard
 
These are the packages that would be merged, in order:
 
Calculating dependencies... done!
[ebuild   R   ~] sys-libs/gwenhywfar-4.99.25_rc9:0/78::gentoo  USE="gtk -debug -designer -doc -fox -libressl -qml -qt5 -sensors -serialport -test -webkit" 0 KiB
[ebuild   R   ~] net-libs/aqbanking-5.99.44_beta::gentoo  USE="-debug -doc -ebics -examples -ofx" 0 KiB
[ebuild   R    ] sys-libs/libchipcard-5.0.4::gentoo  USE="-doc -examples" 0 KiB
[ebuild   R   ~] app-office/gnucash-3.7-r1::x-portage  USE="aqbanking gui nls python -debug -doc -examples -gnome-keyring -mysql -ofx -postgres -quotes -register2 -smartcard -sqlite -test" PYTHON_SINGLE_TARGET="python3_6 -python3_5" PYTHON_TARGETS="python3_6 -python3_5" 0 KiB
I'm able to get the balance and the transactions from my account. But I wasn't able to issue any new SEPA transaction. Doing some research on that matter I found that this bug is already listed at the GnuCash bug tracker: https://bugs.gnucash.org/show_bug.cgi?id=797430 and that there is already a patch: https://bugs.gnucash.org/attachment.cgi?id=373404.

So I adapted the patch into my local portage overlay:
app-office/gnucash/files/gnucash-3.7-avoid-double-init-gui.patch

Code: Select all

--- a/gnucash/import-export/aqb/gnc-ab-transfer.c
+++ b/gnucash/import-export/aqb/gnc-ab-transfer.c
@@ -142,6 +142,7 @@ gnc_ab_maketrans(GtkWidget *parent, Account *gnc_acc,
         GNC_AB_JOB_STATUS job_status;
         GncABImExContextImport *ieci = NULL;

+#ifndef AQBANKING6
         /* Get a GUI object */
         gui = gnc_GWEN_Gui_get(parent);
         if (!gui)
@@ -150,6 +151,7 @@ gnc_ab_maketrans(GtkWidget *parent, Account *gnc_acc,
             aborted = TRUE;
             goto repeat;
         }
+#endif

         /* Let the user enter the values */
         result = gnc_ab_trans_dialog_run_until_ok(td);
And created a new GnuCash package that applies the patch:
app-office/gnucash/gnucash-3.7-r1.ebuild

Code: Select all

# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=6

PYTHON_COMPAT=( python3_{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"

SLOT="0"
LICENSE="GPL-2"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"

IUSE="aqbanking debug doc examples gnome-keyring +gui mysql nls ofx postgres
	  python quotes -register2 smartcard sqlite test"

REQUIRED_USE="
	python? ( ${PYTHON_REQUIRED_USE} )
	smartcard? ( aqbanking )"

# 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
	dev-libs/boost:=[icu,nls]
	dev-libs/icu:=
	dev-libs/libxslt
	>=dev-scheme/guile-2.2.0:12=[deprecated,regex]
	>=sys-libs/zlib-1.1.4
	aqbanking? (
		>=net-libs/aqbanking-5[ofx?]
		sys-libs/gwenhywfar
		smartcard? ( 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
		aqbanking? ( >=sys-libs/gwenhywfar-4.20.2[gtk] )
	)
	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}
	>=sys-devel/gettext-0.19.6
	dev-lang/perl
	dev-perl/XML-Parser
	sys-devel/libtool
	virtual/pkgconfig
	test? ( >=dev-cpp/gtest-1.8.0 )
"

PDEPEND="doc? (
	~app-doc/gnucash-docs-${PV}
	gnome-extra/yelp
)"

PATCHES=(
	"${FILESDIR}"/${PN}-3.2-no-gui.patch
	"${FILESDIR}"/${PN}-3.7-include-checksymbolexists.patch
	"${FILESDIR}"/${PN}-3.7-avoid-double-init-gui.patch
)

pkg_setup() {
	use python && python-single-r1_pkg_setup
}

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_prepare() {
	cmake-utils_src_prepare
	xdg_environment_reset

	# Fix tests writing to /tmp
	local fixtestfiles=(
		"${S}"/gnucash/report/report-system/test/test-commodity-utils.scm
		"${S}"/gnucash/report/report-system/test/test-extras.scm
		"${S}"/gnucash/report/report-system/test/test-report-html.scm
		"${S}"/gnucash/report/report-system/test/test-report-system.scm
		"${S}"/libgnucash/backend/xml/test/test-xml-pricedb.cpp
		"${S}"/libgnucash/backend/dbi/test/test-backend-dbi-basic.cpp
	)
	for x in "${fixtestfiles[@]}"; do
		sed -i -e "s|\"/tmp/|\"${T}/|g" "${x}" || die "sed of "${x}" failed"
	done
}

src_configure() {
	export GUILE_AUTO_COMPILE=0

	local sql_on_off="OFF"
	if use mysql || use postgres || use sqlite ; then
		sql_on_off="ON"
	fi

	local mycmakeargs=(
		-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

	LOCALE_TESTS=
	if type locale >/dev/null 2>&1; then
		MY_LOCALES="$(locale -a)"
		if [[ "${MY_LOCALES}" != *en_US* ||
				"${MY_LOCALES}" != *en_GB* ||
				"${MY_LOCALES}" != *fr_FR* ]] ; then
			ewarn "Missing one or more of en_US, en_GB, or fr_FR locales."
		else
			LOCALE_TESTS=true
		fi
	else
		ewarn "'locale' not found."
	fi

	if [[ ! ${LOCALE_TESTS} ]]; then
		ewarn "Disabling test-qof and test-gnc-numeric."
		echo 'set(CTEST_CUSTOM_TESTS_IGNORE test-qof test-gnc-numeric)' \
			> "${BUILD_DIR}"/CTestCustom.cmake || 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
		xdg_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
		xdg_icon_cache_update
		gnome2_schemas_update
	fi
	xdg_desktop_database_update
	xdg_mimeinfo_database_update
}
I recompiled GnuCash, and it works! I can issue SEPA transactions once more. No problem. :)

Maybe someone finds this information useful.

Have fun!
Top
lefsha
Veteran
Veteran
Posts: 1235
Joined: Mon Aug 30, 2004 5:02 pm
Location: Burgas, Bulgaria

  • Quote

Post by lefsha » Thu Nov 21, 2019 6:13 pm

What that is useful for? - Automatic transactions from company account or better management of private finances?

Could you please share info on the use case scenario? - Why one would want it to work?
What are the advantages comparing to usual internet banking?

Thanks in advance!
Lefsha
Top
charles17
Advocate
Advocate
Posts: 3686
Joined: Sun Mar 02, 2008 3:20 pm

  • Quote

Post by charles17 » Thu Nov 21, 2019 6:39 pm

lefsha wrote:What are the advantages comparing to usual internet banking?
Sending payment media files to the banks and receiving the account statements without web browser or silly baking apps?
Top
lefsha
Veteran
Veteran
Posts: 1235
Joined: Mon Aug 30, 2004 5:02 pm
Location: Burgas, Bulgaria

  • Quote

Post by lefsha » Sun Dec 01, 2019 7:29 pm

Well, I do understand what it does, but why it is better, than silly banking web apps?

So far I just understand it is personal preference, nothing else. It's also fine.

Others might dream ncurses based baking app... why not. :D
Lefsha
Top
Hu
Administrator
Administrator
Posts: 24403
Joined: Tue Mar 06, 2007 5:38 am

  • Quote

Post by Hu » Sun Dec 01, 2019 8:15 pm

If you want a consolidated view of all your assets, including non-bank assets like property, it's convenient to have it in a locally managed accounting program. If you want to do historical research, such as ask "How much investment income have I recorded receiving from stocks in the first 5 months of this tax year?", your institution may not provide that in a form that answers your question, or may not provide it with the time granularity you want. A locally controlled program with all the transactions recorded can do that, or if it can't, you can extend it until it can. Whether that program is an ncurses application, a GUI, a webapp running in your network, or a webapp on the Internet is less important. Many people would not want to trust entering all that data into an Internet application, so local tools are the dominant topic.
Top
lefsha
Veteran
Veteran
Posts: 1235
Joined: Mon Aug 30, 2004 5:02 pm
Location: Burgas, Bulgaria

  • Quote

Post by lefsha » Wed Dec 04, 2019 9:11 am

Thanks Hu,

I am interested in that topic, because I am also affected. I am aware of PSD2 and what it brings, but was not aware about a local app, which
can manage my account and run locally, while performing transactions remotely.

In case of a single banking account I do still have a difficulty to understand the problem with web banking.
One can't avoid it anyway. One can't not share info with the own bank etc. So it's like hiding toys from mama.

If a local app gives you better options to make statistics or combine 2+ accounts etc it might be a good option.
But it depends a lot whether your online-banking has a good interface or not. I was lucky to had a good one,
although I saw bad interfaces too.

In regard to PSD2 there might be a different company/service which you might use to deal with your banking account.
I believe Google Pay, Apple Pay, Ali Pay etc they all fall into that group.

Also I do believe PSD2 affects only banks in the EU, not across the pound.
Lefsha
Top
charles17
Advocate
Advocate
Posts: 3686
Joined: Sun Mar 02, 2008 3:20 pm

  • Quote

Post by charles17 » Wed Dec 04, 2019 9:21 am

lefsha wrote:Also I do believe PSD2 affects only banks in the EU, not across the pound.
See https://en.wikipedia.org/wiki/Payment_S ... %28PSD2%29
Top
lefsha
Veteran
Veteran
Posts: 1235
Joined: Mon Aug 30, 2004 5:02 pm
Location: Burgas, Bulgaria

  • Quote

Post by lefsha » Wed Dec 04, 2019 8:26 pm

charles17 wrote:
lefsha wrote:Also I do believe PSD2 affects only banks in the EU, not across the pound.
See https://en.wikipedia.org/wiki/Payment_S ... %28PSD2%29
I missed the point. I have mentioned, that I am aware of PSD2 existence. What is new here? No EU rules can be applied to US or other
foreign banks. Unfortunately even within the EU no every country follow those rules. For example Bulgaria totally ignores ANY banking
rules which are valid in Germany or other countries. I do believe there are more than 1 country like that.

And its not only in banking sector. I know Directives which are ignored by Belgium, although few of us know, that Brussel is still
in Belgium...

Even here you can see, that PSD2 actually "went into full effect on 14 September 2019", although it should be a 1 January 2018.
People and Banks are too late for school... (c) McFly.

P.S. Es ist alles hier mit dem Vorsicht zu genießen.
Lefsha
Top
Post Reply

8 posts • Page 1 of 1

Return to “Portage & Programming”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy

 

 

magic