[gnucash-de] Re: Einstieg zum GnuCash-Programmieren (war: Sammelüberweisungen )

Christian Stimming stimming at tuhh.de
Mit Nov 12 23:26:05 CST 2003


-----BEGIN PGP SIGNED MESSAGE-----

Hallo Wolfgang, hallo Andreas [ähnliche Anfragen],

On Dienstag, 11. November 2003 09:56, Wolfgang Herfter wrote:
> >  Anschließend muß gnucash angepasst werden. Wenn da jemand helfen würde,
>
> wie könnte denn eine Hilfe aussehen ?
> Bin selber Entwickler und würde gerne an dem Projekt teilnehmen. Und als
> Helferlein wäre das ein guter Einstieg.

Wow, tolle Rückmeldung. Unterstützung nehmen wir/ich liebend gerne entgegen. 
Hilfe wird folgendermaßen benötigt: Die aktuellen HBCI-Features von GnuCash 
funktionieren mit dem bisherigen OpenHBCI (also Version 0.9.13). Nun hat sich 
mit OpenHBCI-TNG aber die API davon komplett geändert. Es müssen in GnuCash 
also nun alle HBCI-Funktionen auf die neue API umgestellt werden.

Betroffen ist in GnuCash der Code im Verzeichnis src/import-export/hbci/ (ca. 
7000 Codezeilen in C; GnuCash hat 300 000 Codezeilen). Zuerst muß dort die 
Erstellung eines neuen Benutzers (in druid-hbci-initial.c) umgestellt werden 
und anschließend die HBCI-Geschäftsvorfälle (von gnc-hbci-actions.c aus 
aufgerufen in jeweils eigenen files). Diese Arbeit müsste *ohne* jede 
GUI-Bearbeitung auskommen können, denn das GUI ist ja gerade nicht durch die 
API-Änderung betroffen. Dies ist also wahrscheinlich ein relativ einfacher 
Einstieg.

Danach können weitere HBCI-Geschäftsvorfälle (GV) in GnuCash eingebaut werden, 
jeweils immer analog zu den bereits existierenden (in gnc-hbci-actions.c). 
Dabei werden weitere GV allerdings dann auch immer ein bißchen GUI benötigen. 
Aber in gnucash wird das GUI-Tool glade verwendet, daß einem dabei echt eine 
Menge Arbeit abnimmt.

Einstieg jetzt: Von gnucash das CVS auschecken, Hinweise  
http://linuxwiki.de/GnuCash/SourceInstall und 
http://www.gnucash.org/en/hacking.phtml (den unstabilen HEAD branch, also 
ohne branch-Angabe beim auschecken). Compilieren. Dort dann auch die 
Sourcecode-Dokumentation erstellen lassen ('make doc'), die dann im 
Verzeichnis src/doc/html steht. Dann den sourcecode in src/import-export/hbci 
angucken. 

Und bei druid-hbci-initial.c (und druid-hbci-utils.c und gnc-hbci-utils.c) 
anfangen, alle relevanten Aufrufe von HBCI_irgendwas_blabla() an OpenHBCI-TNG 
anzupassen. Oder alternativ als ersten GV den Saldoabruf angucken in 
gnc-hbci-getbalance.c (und gnc-hbci-utils.c). Und bei fertigen 
Änderungsvorschlägen dann emails mit patches an gnucash-patches und CC an 
mich. 

Wenn man mal nicht weiß, wie der Code aussehen soll, kann man für gewöhnlich 
bei aqmoney abgucken. Und wenn eine C Funktion in openhbci-tng fehlt, macht 
man dafür eben auch noch ein patch fertig.

Nochwas zu den CVS-branches: Die stabilen releases sind aus dem 
gnucash-1-8-branch. Entwicklung soll aber immer erstmal auf dem HEAD branch 
(also ohne Angabe) geschehen. Das HBCI-Modul hat nun die Besonderheit, daß 
die allermeisten Änderungen auf HEAD auch zeitgleich von mir auf den 
gnucash-1-8-branch eingebaut wurden. Der Code in src/import-export/hbci/ ist 
also bei gnucash-1-8-branch und HEAD *fast* identisch (aber nicht ganz). 
Entwicklung trotzdem immer erstmal auf HEAD.

Gruß und großes Dankeschön im voraus,

Christian
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux)

iQCVAwUBP7KzfWXAi+BfhivFAQH6UwQAltyZyyCH19l2tbgVveggFnHOcO11e0cc
pfs0GKPZm/RvshbVp64JQpiJbNya1y8XYtOct6JEQtz9uCNIrJ/6dJImBKWbY9SV
5YGGWzVKkQAYqbDrmKVVzutyxO+At6ALRKLn12NA4aFNtou3iu32jbM1afIRCZIw
lEic+hO+cfc=
=8YCe
-----END PGP SIGNATURE-----