Solved: Problems building from ports

Mike Clarke jmc-freebsd2 at
Tue Jan 12 10:10:45 UTC 2010

On Saturday 02 January 2010, Mike Clarke wrote:

> After successfully moving from 6.4 to 8.0 by doing a clean install
> I've embarked on the task of rebuilding OpenOffice from ports :-(
> I'm getting a confusing error in the config stage:
> ------------------------------------------------------------
> ===>  Configuring for
> <snip>
> checking for
> gperf...
> /backup/tmp/ports/work/usr/ports/editors/
>_m19/solenv/bin/gperf checking gperf version... /libexec/
> Shared
> object "" not found, required by "gperf"
> test: : bad number
> configure: error: too old, you need at least 3.0.0
> ===>  Script "configure" failed unexpectedly.
> ------------------------------------------------------------

and on Sunday 03 January 2010, Matthew Seaman wrote:

> Mike Clarke wrote:
> > After pondering a bit more over this problem I think I know where
> > the 6.4 stuff may have come from. After I built the base system I
> > copied various useful files from /root on the 6.4 system,
> > including /root/.cshrc which contained a line setting PACKAGESITE
> > to
> >
> >se/All/ and it's quite possible that I ran portinstall -P for some
> > ports before I got round to changing this to point to packages-8.
> Yep.  This would stick a fairly hefty spanner in the works.
> > Considering the vast number of files in /usr/local/bin with links
> > to missing libraries I think my best approach now will be to
> > deinstall ALL my ports and reinstall them again from scratch after
> > deleting everything in /usr/ports/packages and checking that all
> > directories in /usr/local (except etc) have been emptied.
> This also is a good move.  Don't forget to treat /compat/linux
> similarly to /usr/local if you have any linux stuff installed --
> there have been a lot of changes to the linuxulator newly available
> in 8.0 which you really want if you're going to run linux stuff under
> emulation.  If you strip out /compat/linux completely, then under 8.0
> you'll get the latest linux-base-f10 by default when you re-install.
> When reinstalling ported software, it's a good idea to adopt the
> following strategies:
>     * Install whatever ports management software you prefer
> (portupgrade(1), portmaster(1)) pretty much straight away -- you'll
> need this to build everything.
>     * Look at the list of installed packages on your 6.4 install, and
> pick out the packages that are your end-use applications.  These will
> mostly be leaf packages, but not always.
>     * You only need to reinstall just those packages -- everything
> else should be installed automatically as dependencies.  This will
> help you avoid installing and outdated build dependencies or
> otherwise orphaned packages which otherwise tend to accumulate on an
> actively updated system. * For the end-use packages you choose, run
> 'make config-recursive' before you start building anything to ensure
> you've selected all the required options.  Or use portmanager(1)
> which runs you through the config stage first of all.  You need to be
> a bit careful doing this, as toggling an option in a port can
> radically change its dependency list, and may bring new sets of
> options into play.  To resolve that, you'll need to re-run 'make
> config-recursive' until it no longer prompts you to make any OPTIONS
> settings.  [There's a PR to fix this behaviour in the works, but it
> hasn't been committed yet.]
>     * Where there are ports that have compilation flags or knobs that
> aren't controlled through OPTIONS dialogues, then be sure to record
> any non- default settings in /etc/make.conf.  You can use a construct
> like this to only apply settings to specific ports:
> .if ${.CURDIR:M*/mail/dkim-milter}
> WITH_STATS=             yes
> WITH_DNS_UPGRADE=       yes
> .endif
>       Well known KNOBS should be set globally where you aren't using
> the default setting, eg:
> WITH_BDB_VER=           47
> WITH_MYSQL_VER=         51
> WITH_GECKO=             libxul
> WITH_APACHE2=           yes
> APACHE_PORT=            www/apache22
> WITH_MODPERL2=          yes
> PERL_VERSION=		5.10.1
>       Again, changing these settings can affect the dependency tree
> and potentially bring new sets of OPTIONS into play, so test
> repeatedly with 'make config-recursive'
>     * It's a good idea to run 'make fetch-recursive' or 'portinstall
> -RF ...' or 'portmaster -F ...' after sorting out configuration to
> download any distfiles before trying to build everything, as this is
> another place where a big build session can blow up while you aren't
> looking.  It's not mandatory though.
>     * Once everything is configured nicely, it should be possible to
> just run a massive portupgrade(1) or portmaster(1) session unattended
> to build and install everything, without finding that 10 minutes
> after you went home the build stopped at an OPTIONS screen and sat
> there all night... In fact, it is well worth temporarily defining
> BATCH in make.conf or the environment to just accept the defaults for
> anything not yet configured during a big build job like this. (But
> not otherwise. BATCH isn't a good idea for an incremental upgrade
> IMHO.)
> If you follow these guidelines when installing the system you should
> find that not only does it make your initial install run smoothly,
> but it sets you up well for managing updates to the installed system
> in the future.

Thanks very much for your help. I've followed your guidelines and 
totally removed and re-installed all my ports. Although the rebuild ran 
for about 13 hours it went very smoothly and was time well spent. I was 
then able to build OpenOffice without any problems in a further 6 

An additional benefit is that a number of apparently inexplicable minor 
problems have now gone away, I can even use the latest Nvidia driver 
now, previously I'd had to downgrade to nvidia-driver-96.43.13 because 
all the later Nvidia drivers just froze on start-up with a black 

Mike Clarke

More information about the freebsd-questions mailing list