gnome-print

Robert Graham Merkel rgmerk@mira.net
Sat, 20 Jan 2001 18:26:54 +1100


Jonathan David Wheelhouse writes:
 > Hi
 > 
 > First, thanks for a great app; I use it daily (and drive my wife nuts
 > asking for receipts after she's done the shopping).
 > 
I'm glad you like it!  

 > I'm a programmer and am interested in hacking on gnucash (although I have
 > a mainframe background (Cobol, JCL, database stuff) so C, automake,
 > make, autoconf, etc confuse me but I'm trying).
 > 
Don't worry, automake etc confuse a lot of people (macro languages are
a pain), but for somebody who copes with JCL they should be masterable
:)

If you check the list archives, you'll see that there's been a fair
bit of stuff about database backends recently, so your experience
would probably be quite valuable.

 > Anyhow, I recently checked out the development source from CVS and
 > attempted to do a autogen.sh.
 > 
 > After fixing up missing libraries (I run Debian unstable) I got the
 > following error:
 > 
 > 
 > checking for GNOME-PRINT - version >= 0.1.0... no
 > *** Could not run GNOME-PRINT test program, checking why...
 > *** The test program failed to compile or link. See the file config.log for the
 > *** exact error that occured. This usually means GNOME-PRINT was incorrectly installed
 > *** or that you have moved GNOME-PRINT since it was installed. In the latter case, you
 > *** may want to edit the gnome-config script: /usr/bin/gnome-config
 > configure: error: GNOME-PRINT not found
 > 
 > A quick search on the Debian site reveals that gnome-print is there as
 > part of the stable distribution.  However, I run pure Debian unstable
 > (ie. no Helix gnome etc.) and the closest thing it's got is
 > libgnomeprint-dev.
 
In Debian (and most Linux distributions), the files necessary to *run*
a program compiled against a shared library are stored in a lib<foo>
package, and the header files and so on are in a lib<foo>-dev
package.  However, Linux supports you simultaneously installing
different versions of shared libraries - for example

<trell> /lib :ls -l libc.so*
lrwxrwxrwx    1 root     root           14 Jul 14  2000 libc.so.5 -> libc.so.5.4.46
-rw-r--r--    1 root     root       586720 Feb  9  1999 libc.so.5.4.46
lrwxrwxrwx    1 root     root           11 Jan  9 17:58 libc.so.6 -> libc-2.2.so
<trell> /lib : 

Here, libc.so.5 and libc.so.6 happily coexist (no DLL hell for Linux
:).  

However, for *compiling* programs, it's a different story.  You
(almost always) can have one version of the "development files"
(header files etc.) for a library for a particular machine (anything I
compile on my machine, for instance, is compiled and libc.so.6).

Anyway, the upshot of all this is that Debian libraries are often
packaged in to several packages as follows:

lib<foo><major-version>
lib<foo>-dev

so as to allow the continued installation of older versions of libfoo
for running older programs.

The specific packages you need for debian are 
libgnomeprint11 (containing the latest libraries)
libgnomeprint-dev (containing the latest headers).

note that if you install libgnomeprint-dev with dselect or apt-get,
the debian package tools will automatically fetch and install the
appropriate libgnomeprint<major-version> package for you.

Anyway, after all that, I think that should help you compile the
latest development version of gnucash.  Make sure you have the very
latest g-wrap, as g-wrap and gnucash development are very closely
interwoven.

Good luck!


------------------------------------------------------------
Robert Merkel	                           rgmerk@mira.net

"We are excited and optimistic about its usage going 
forward and, yes, we can teach penguins the military 
close-order drill", Mark Norton, US Department of Defense. 
------------------------------------------------------------