Future of cashutil. (was Re: Radically improve autogen.sh)

Neil Williams linux at codehelp.co.uk
Mon Nov 7 06:58:53 EST 2005


On Monday 07 November 2005 12:56 am, Derek Atkins wrote:
> Neil Williams <linux at codehelp.co.uk> writes:
> > My only problem with that on Debian is this build-within-a-build in
> > cashutil branch. I need to be able to hook cashutil/configure onto the
> > end of ./configure in a wrapper script that passes on the --prefix and
> > nothing else.
>
> You shouldn't use a build-within-a-build.  You should integrate
> the cashutil dirs into the main configure script.

But then I can't have a separate po directory. How can gnucash and cashutil be 
packaged separately if they use the same translation files? I also use a 
different manpage system, have vastly reduced numbers of dependencies and 
currently retain the ability to package cashutil as a separate tarball with 
it's own ./configure. Documentation should also be separate, hence 
[branch]/cashutil/doc/doxygen.cfg.in as well as 
[branch]src/doc/doxygen.cfg.in amongst other differences.

Currently, the build creates cashutil.mo and gnucash.mo - one ten times 
smaller than the other. This is ideal because it allows me to package 
cashutil separately so that it can be installed without gnucash.

> -derek

Christian wrote:
> In the long run I agree with Derek: If the command line tool "cashutil" 
> is supposed to be distributed together with gnucash

No, it's not - it can be but it is not essential. It shares some of the 
codebase but is designed explicitly to be installable without gnucash (or Gtk 
or any GUI component). It has a much shorter dependency list and that's how I 
want it to stay.

It does currently go into the gnucash make dist tarball but it doesn't have 
to. If the shared codebase can be made available, cashutil can still be a 
completely separate project.

Users should have the choice to install cashutil only, gnucash only or both. 
If installing only cashutil, there must be NO GUI dependencies of any kind 
and definitely no guile.

CashUtil, like QOF, is going onto platforms that cannot support gnucash or 
even Gtk.

> (which is implied by  
> the fact that it's in the same CVS^H^H^H SVN module),

I disagree. It's in the same SVN repository because it shares the QOF objects 
and the gnc-backend-file sections of the codebase. That is the only reason.

> then it should be  
> built by the very same top-level ./configure.

It can be, providing the cashutil/configure is chained on!
:-)

> No need for an extra  
> build-within-a-build.

Well, the alternative is that gnucash explicitly packages libcashobjects, 
libcashbusobjects, libgnc-backend-bus and libgnc-backend-file (preferably as 
one shared package). (See the current cashutil branch for what goes into 
those libraries). At a later date, gnucash would share a logic library that I 
would create within cashutil and package into the one shared package. Then 
I'll simply link cashutil against the objects and load the backend as a 
GModule. I'd move cashutil over to SourceForge and remove the cashutil 
branch.

I want to have the option to extend cashutil in the future into an embedded 
application using the same objects (probably not using gnc-backend-file 
though). I want cashutil to be installable on systems that could never dream 
of installing gnucash. It's about data accessibility, data freedom, 
portability and maximum platform support.

I can't see how this can be done if cashutil is absorbed into the 
gnucash ./configure - if there is a way, I'm happy to use it but I won't 
sacrifice the ability to install cashutil on a system with no Gtk, gconf, 
guile or bonobo. GnuCash is too big, too complex and there is a clear need 
for a simpler, faster interface that does not demand anything like the 
requirements of a gnucash install. That's why there are apps like FreeCoins, 
PCash and brinance.

Cashutil started as a simple QOF example with gnucash objects. That simplicity 
is it's main strength and it should not be seen as a "component of gnucash" 
but as a separate utility that shares gnucash code. I'm building cashutil to 
have a generic user interface - an embedded UI could be bolted on as easily 
as the CLI.

-- 

Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.gnucash.org/pipermail/gnucash-devel/attachments/20051107/2232f725/attachment-0001.bin


More information about the gnucash-devel mailing list