Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Feb 2006 17:41:59 +0000
From:      Spadge <spadge@fromley.net>
To:        Eric Schuele <e.schuele@computer.org>
Cc:        Jeff Cross <jeff.cross@averageadmins.com>, freebsd-ports@freebsd.org
Subject:   Re: Trouble Upgrading Ports
Message-ID:  <440096E7.1000806@fromley.net>
In-Reply-To: <4400917C.4010808@computer.org>
References:  <44008ED7.6050406@averageadmins.com> <4400917C.4010808@computer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Eric Schuele wrote:
> Jeff Cross wrote:
> 
>> I have been upgrading my ports using portupgrade -varR but have run
>> across a few that are giving me fits.
>>
>> When trying to update scrollkeeper I get the following:
>>
>> You must have XML::Parser installed to run ../../intltool-merge
>>
> 
> I ran into this.  I did a `make deinstall` and `make reinstall` on 
> p5-XML-Parser.  it did the trick.
> 
> But Now I have other problems see "Trouble building gnomeprint".  I do 
> not know if they are related in any way.

I found that with the recent update of perl5, an awful lot of perl5's 
little wizards are failing to portupgrade as the system tries to install 
them as dependancies even though (or because) they are already installed.

I once wrote a shell script to combat this sort of behaviour, as it is 
something I have run up against time and time again with the perl5 port. 
It looks something like this (I fully expect my email to kill the 
formatting of this, with like linewrap and everything, so beware):

~
#!/usr/local/bin/bash

# IMPORTANT!!!!1 - requires 'where' script ... see end of file.
# Also depends on portinstall.

PERLIST="/usr/home/spadge/perl.list" # file to hold the names of your 
installed perl5 crap
PERLDEL=`where perl-5.8 | awk '{print $1}'`
PERLINST=`where perl-5.8 | awk '{print $4}'`
# If you use a different version of perl, you'll want to change the above
# PERLDEL and PERLINST lines to match it.


touch $PERLIST

pkgdb -Fu

pkgdb -Fu

# ok, this is the line that populates $PERLIST
for i in `(pkg_info -R perl-5\* |tail +4; find 
/usr/local/lib/perl5/site_perl/5.[68].[1245] -type f -print0 | xargs -0 
pkg_which -fv | sed -e '/: ?/d' -e 's/.*: //')|sort -u`; do where $i >> 
$PERLIST; done

# from here on the actual (un)installing is done
for i in `sort -u $PERLIST | awk '{print $1}'`; do pkg_delete -f $i; done

pkg_delete -f $PERLDEL

cd /usr/ports/$PERLINST; make install

for i in `sort -u $PERLIST | awk '{print $4}'`; do portinstall $i; done
#and that's it.

echo "perl (and all it's little wizards) has been updated."
echo "Before running this script again, either:"
echo "a) delete " $PERLIST ", or"
echo "b) comment out the line that populates it"

################################################################################
# 
        #
# As mentioned earlier, you need to have 'where' on your path. 
        #
# 
        #
# Get it from http://www.ramblingwaffles.net/where or create an 
executable     #
# file called 'where' on your path, and paste the following into it: 
        #
# 
        #
# #! /usr/local/bin/bash 
        #
# for i in `ls /var/db/pkg | grep $1`; do echo $i "is in" `pkgdb -o $i`; 
done  #
# 
        #
################################################################################
#
# That's all folks. Written by spadge@fromley.net
# thanks to the perl port maintainer for the horrible xargs.
~

As to the bash3 upgrade problem, I found that getting the 
bash-3.1.tar.gz source and bash31-010 patch from 
http://ftp.wayne.edu/pub/gnu/bash/ and manually putting them in 
/path/to/ports/distfiles/bash/ fixed it for me.

-- 
Spadge
"Intoccabile"
www.fromley.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?440096E7.1000806>