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>