I've had problems, in the past, getting KMM, with OFX support, to build
and run on FreeBSD.  Since then, I've changed my desktop to OpenBSD, and
I thought I'd give it another try.  It works, but I ran into some
problems on the way.  Oh, just so you know:

  KMyMoney is the Personal Finance Manager for KDE. It operates similar
  to MS-Money and Quicken, supports different account types,
  categorisation of expenses, QIF import/export, multiple currencies and
  initial online banking support.

  KMyMoney is not simply a clone of the commercially-available personal
  finance programs. Although many of the features present in KMyMoney
  can be found in other similar applications, KMyMoney strives to
  present an individual and unique view of your finances.

                                   -- kmymoney2.sourceforge.net

The first task was to get libofx working.  I tried to use the existing
port for sp (James Clark's SGML/XML parser) but it had missing symbols.
The README for libofx recommended OpenSP so I made a port for that.  The
patches made for this port are as follows:

  patch-tests_Makefile_in
    OpenSP has some unfixed bugs that cause some of the tests to always
    fail.  It doesn't look like these bugs will be fixed anytime soon,
    so I disabled them in the port for USE_REGRESS.

  patch-unicode_Makefile_in
  patch-unicode_catalog
  patch-unicode_unicode_soc
    By default OpenSP installs a catalog with only some unicode
    definitions.  This series of patches enhances the catalog to
    include the standard stuff (html.dtd, html.dcl, etc.).

Then found out that there was a collision with some files in the
openjade port.  So I updated the openjade port to a newer version (1.3
to 1.3.2), and got it to use the libraries from opensp.

The libofx port was next, after some minor tweaking (added curl and
xmlpp dependencies to get ofx direct connect), it built fine with the
new opensp port. I added the docbook and xmlto build dependencies to get
the man pages, I hope that's not a problem. The patches made for this
port are as follows:

  patch-Makefile_in
    doc installation directory fix

  patch-ofxconnect_ofxpartner_cpp
    needs unistd.h

Then the kmymoney2 port had lots of problems; libtool issues, static
initialization order, etc.  I'd like to thank Marc Espie for his recent
rant on MKDIR_P issues in autoconf/automake, it saved me a lot of time.
Even though automake is called for, I only modified the .in files.  This
seems to work because automake fails to run for version reasons.  Messy.

  patch-configure_in
    Remove bash'ism to detect if path is relative or absolute, and
    replace with POSIX expr(1).  I think this change is okay, but there
    might be a better more well known way to do this. so let me know.

  patch-kmymoney2_plugins_Makefile_in
    Help libtool understand that plugins library is in the plugins
    directory.

  patch-kmymoney2_plugins_ofximport_Makefile_in
    Remove duplicate plugin library spec, and use absolute path to build
    directory.

  patch-kmymoney2_mymoney_mymoneyreport_cpp
  patch-kmymoney2_mymoney_mymoneyreport_h
  patch-kmymoney2_mymoney_mymoneystatement_cpp
  patch-kmymoney2_mymoney_mymoneytransactionfilter_cpp
  patch-kmymoney2_mymoney_mymoneytransactionfilter_h
    Juggle static initializers to make them follow the "construct on
    first use" idiom.  This is what caused all the core dumps on startup
    when people would build KMM from source on OpenBSD (and FreeBSD?).

These are my first ports, so please let me know what you think. I had a
lot of fun putting them together.  It would have taken a lot longer
without the recent presentation on OpenBSD porting (by Michael Erdely
and Bernd Ahlers at www.openbsd.org/papers/).

I didn't attach patches to existing ports, only full ports.  I am hoping
for some feedback and to contact the maintainers before I try and make
patches.

If you plan on testing, it might be easier if you extracted these in
/usr/ports/mystuff/, as the category path is included in the archive.
For example, devel.libofx.tar.gz would extract as:

  devel/libofx
  devel/libofx/patches
  devel/libofx/patches/patch-Makefile_in
  devel/libofx/patches/patch-ofxconnect_ofxpartner_cpp
  devel/libofx/pkg
  devel/libofx/pkg/DESCR
  devel/libofx/pkg/PLIST
  devel/libofx/pkg/PFRAG.shared
  devel/libofx/Makefile
  devel/libofx/distinfo

Also build and install in this order:

 deinstall openjade (if you have it installed)
 openjade (the one included here)
 opensp
 libofx
 kmymoney2

TESTED:

  build and run on i386 and amd64

-- 
======================================================================
William Karh                           "Now look what you made me do."
[EMAIL PROTECTED]                                          -- Ike Turner

Attachment: textproc.opensp.tar.gz
Description: textproc.opensp.tar.gz

Attachment: textproc.openjade.tar.gz
Description: textproc.openjade.tar.gz

Attachment: devel.libofx.tar.gz
Description: devel.libofx.tar.gz

Attachment: productivity.kmymoney2.tar.gz
Description: productivity.kmymoney2.tar.gz

Reply via email to