So, I went to install GnuCash on a machine running FreeBSD 6.1 Prerelease (“cd /usr/ports/finance/gnucash; sudo make install”) a couple of days back (19-03-2006). Just as I was rejoicing at all the dependencies being handled automatically (and goodness knows there were many), the install died.
===> gnucash-1.8.12_1 depends on executable: gmake – found
===> gnucash-1.8.12_1 depends on file: /usr/local/bin/perl5.8.8 – found
===> gnucash-1.8.12_1 depends on file: /usr/local/bin/intltool-extract – found
===> gnucash-1.8.12_1 depends on executable: pkg-config – found
===> gnucash-1.8.12_1 depends on shared library: guile.15 – found
===> gnucash-1.8.12_1 depends on shared library: guppi.16 – found
===> gnucash-1.8.12_1 depends on shared library: popt.0 – found
===> gnucash-1.8.12_1 depends on shared library: ofx.2 – found
===> gnucash-1.8.12_1 depends on shared library: gw-standard.0 – not found
===> Verifying install for gw-standard.0 in /usr/ports/devel/g-wrap
===> g-wrap-1.3.4_8 depends on file: /usr/local/share/guile/slibcat – not found
===> Verifying install for /usr/local/share/guile/slibcat in /usr/ports/lang/slib-guile
===> slib-guile-3a1 is marked as broken: Does not install.
*** Error code 1Stop in /usr/ports/lang/slib-guile.
*** Error code 1Stop in /usr/ports/devel/g-wrap.
*** Error code 1Stop in /usr/ports/finance/gnucash.
Sure enough, the makefile (“/usr/ports/lang/slib-guile/Makefile”) for slib-guile in the ports tree identified the port as BROKEN.
BROKEN= Does not install
A quick search of the FreeBSD ports mailing list archives, and there was a recent post pointing to the following workaround.
1) Use portdowngrade to grab the slib-3a1_2 version, and install it.
gnucash/guile does not like 3a3.
2) Use pkgtools.conf to ‘hold’ slib-*.
3) remove the “BROKEN” status from slib-guile-3a1Attempt ‘make install clean’ of gnucash.
(Note: The use of “sudo” proceeding these commands is not necessary if you are root, of course.)
I thought “slib-3a3″ was automatically installed as a dependency of GNUCash, but, before I removed it, I checked to make sure that was the case and there were no dependencies on “slib-3a3″.
- pkg_info -R slib-3a3
No packages were listed as depending on “slib-3a3,” so I removed it.
- sudo pkg_delete slib-3a3
I did not have “portdowngrade” installed, so I needed to install that.
- cd /usr/ports/sysutils/portdowngrade
- sudo make install
I tried using “portdowngrade” with SSH, but it fails as unsupported, which meant the USA anoncvs mirrors were out. I then tried the French anoncvs server, but this failed with some sort of read error for lang/slib. So, then I went to Japan.
- sudo portdowngrade -o -s:pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs lang/slib$
When prompted, I entered the password “anoncvs” (without quotes).
During step 3 of the 6 step process, a list of previous versions was provided, from which you could select one to downgrade to. I selected the number corresponding to “3a1_2″ (#3 when I was performing these steps), confirmed that I wanted to downgrade, and was downgraded.
As instructed by “portdowngrade,” I updated my ports database since I use “portupgrade” (this could have been performed later).
- sudo portsdb -Uu
With that completed, I installed the downgraded port, “slib-3a1_2″.
- cd /usr/ports/lang/slib
- sudo make install
I then edited “/usr/local/etc/pkgtools.conf” to hold “slib” and “slib-guile” by adding “slib-*” to the “HOLD_PKGS” array.
- sudo vi /usr/local/etc/pkgtools.conf
My HOLD_PKGS ending up looking as follows.
HOLD_PKGS = [
'bsdpan-*',
'slib-*',
]
I then edited the Makefile for “slib-guile” and commented out the “BROKEN= Does not install” line.
- sudo vi /usr/ports/lang/slib-guile/Makefile
With that all set, I was ready to build and install GNUCash.
- cd /usr/ports/finance/gnucash
- sudo make install clean
Perfect.
(Completely unrelated, this is quite interesting.
With new technologies constantly being invented in corporate and academic labs around the world, identifying which ones will transform computing, medicine, telecommunications and business always is a challenge. In “10 Emerging Technologies,” a special package in the March/April issue of Technology Review, MIT’s magazine of technology, the editors name those that they feel will soon have a significant impact. The ten technologies are also featured at www.technologyreview.com/special/emerging.
via Infectious Greed)