smaller version of Gnucash

Ryan Schmidt ryandesign at macports.org
Tue Dec 23 00:16:23 PST 2008


On Dec 22, 2008, at 18:00, Lenore Horner wrote:

> I made this mistake today of upgrading Gnucash from 2.2.5 to 2.2.7  
> without using any variants.  So far it's taken 6 hours  and it's  
> not done yet.  Plus I have to go back and deal with a couple of  
> errors.  (most
>
> I'm pretty sure the only thing I'm using Macports for is to install  
> Gnucash.  Everything else I can find binaries for which is much,  
> much faster!  What I'm wondering is how much extra stuff I'm  
> installing because I didn't think to do +without_quotes  
> +without_hbci +without_ofx.  How am I supposed to know based on  
> port info (A) what the variants do and (B) how much extra time  
> putting them in will cost me?

Hi Lenore.

Via "port info gnucash", all you'll learn is the names of the  
variants. If those aren't clear enough to tell you what they're for,  
use "port variants gnucash" to read the variant descriptions. If the  
descriptions aren't clear enough (or are absent), you can read the  
portfile with "port cat gnucash" or (if your EDITOR environment  
variable is set suitably) with "port edit gnucash" to see what it  
does. For many ports you could also ask the maintainer, but gnucash  
has none. You could look through the commit messages for gnucash and  
see if they explain anything:

http://trac.macports.org/log/trunk/dports/gnome/gnucash

As to how much time it will cost to install a port, MacPorts doesn't  
tell you that. The download time for the distfile varies based on  
your network, and the compile time varies based on the speed of your  
computer's processor and hard drive and how much memory it has.  
Variants may bring in dependencies, and those dependencies may bring  
in other dependencies, and so on, and there isn't a MacPorts command  
that will tell you all of that at once. You can piece it together  
manually, for example:

$ port deps gnucash
gnucash has build dependencies on:
         libtool
gnucash has library dependencies on:
         p5-xml-parser
         glib2
         gconf
         guile16
         slib
         slib-guile16
         popt
         libgnomeui
         libgnomeprintui
         libgtkhtml3
         libgsf
         goffice
         aqbanking
         libofx
         p5-finance-quote
gnucash has runtime dependencies on:
         evince

$ port deps gnucash +without_hbci
gnucash has build dependencies on:
         libtool
gnucash has library dependencies on:
         p5-xml-parser
         glib2
         gconf
         guile16
         slib
         slib-guile16
         popt
         libgnomeui
         libgnomeprintui
         libgtkhtml3
         libgsf
         goffice
         libofx
         p5-finance-quote
gnucash has runtime dependencies on:
         evince

So we see that if we add the +without_hbci variant, it causes the  
aqbanking library dependency to be deleted. We can see the same thing  
by reading the gnucash Portfile, which says, in part:

variant without_hbci description {Disables HBCI support} {
     depends_lib-delete  port:aqbanking
     configure.args-delete   --enable-hbci
     configure.args-append   --disable-hbci
}

Then we could ask what the dependencies of aqbanking are:

$ port deps aqbanking
aqbanking has build dependencies on:
         libtool
aqbanking has library dependencies on:
         gwenhywfar
         qt3
         ktoblzcheck
         libglade2
         libofx
         gmp

libtool and libofx are already needed by gnucash itself, but  
gwenhywfar, qt3, ktoblzcheck, libglade2 and gmp are new dependencies.  
Then we could ask what the dependencies of each of those are. You get  
the idea.

I wrote a PHP web page to create a graph of a port's dependencies  
which I find useful for researching these kinds of things. Here are  
the dependencies of aqbanking and libofx graphed:

http://ryandesign.com/tmp/aqbanking.png

http://ryandesign.com/tmp/libofx.png

Filled ovals represent ports I already have installed on my system;  
hollow ones are not installed. This would obviously vary on your  
system if you ran the script there. The different line styles are not  
terribly important to pay attention to: Solid lines are library  
dependencies, dotted lines are build dependencies, and dashed lines  
are runtime dependencies. The script does not take into account that  
some dependencies can be satisfied by other than the specified port  
(so, not all the ports shown will necessarily end up being installed).


> I'm also curious, though at this point it would I think be a waste  
> of time, whether I could
> sudo port deactivate all
> sudo port install gnucash +without_quotes +without_hbci +without_ofx
> sudo port uninstall inactive
>
> and have the lighter version in place without recompiling  
> everything and also see how much extra work I've had to wait for my  
> computer to do.

Good idea! With MacPorts 1.7.0 I think this should work correctly.


> Wasn't there a +without_docs variant?  Is this gone because docs  
> don't work so they aren't being installed anyhow?

I see the +without_docs variant was removed here:

http://trac.macports.org/changeset/35197

The reason given for its removal ("Remove variant without-docs. No  
hyphen allowed.") does not seem to match since the variant name  
didn't have a hyphen but an underscore (which is legal). In any case,  
the documentation is in a separate port, gnucash-docs, so if you want  
the docs, you install that port; if you don't, you don't.




More information about the macports-users mailing list