# Problem upgrading (perl)



## myha (Feb 2, 2009)

Hi,

I have come upon some problems with upgrading my system... It seems like the problem is in perl modules - I have installed some through cpan and some manually.


```
[root@server ~]# portupgrade -ai
--->  Session started at: Mon, 02 Feb 2009 11:42:42 +0100
--->  Skipping 'bsdpan-Time-Format-1.09' because it is held by user (specify -f to force)
--->  ** Upgrade tasks 13: 0 done, 1 ignored, 0 skipped and 0 failed
--->  Skipping 'bsdpan-Net-Traceroute-PurePerl-0.10' because it is held by user (specify -f to force)
--->  ** Upgrade tasks 13: 0 done, 2 ignored, 0 skipped and 0 failed
--->  Skipping 'bsdpan-B-Debug-1.11' because it is held by user (specify -f to force)
--->  ** Upgrade tasks 13: 0 done, 3 ignored, 0 skipped and 0 failed
--->  Skipping 'textproc/p5-XML-NamespaceSupport' because it is held by user (specify -f to force)
--->  ** Upgrade tasks 13: 0 done, 4 ignored, 0 skipped and 0 failed
--->  Skipping 'devel/p5-Test-Harness' because it is held by user (specify -f to force)
--->  ** Upgrade tasks 13: 0 done, 5 ignored, 0 skipped and 0 failed
--->  Skipping 'bsdpan-Pod-Perldoc-3.15' because it is held by user (specify -f to force)
--->  ** Upgrade tasks 13: 0 done, 6 ignored, 0 skipped and 0 failed
--->  Skipping 'textproc/p5-Pod-Simple' because it is held by user (specify -f to force)
--->  ** Upgrade tasks 13: 0 done, 7 ignored, 0 skipped and 0 failed
--->  Skipping 'bsdpan-autodie-1.998' because it is held by user (specify -f to force)
--->  ** Upgrade tasks 13: 0 done, 8 ignored, 0 skipped and 0 failed
--->  Skipping 'textproc/p5-Text-Balanced' because it is held by user (specify -f to force)
--->  ** Upgrade tasks 13: 0 done, 9 ignored, 0 skipped and 0 failed
--->  Skipping 'bsdpan-libwww-perl-5.823' because it is held by user (specify -f to force)
--->  ** Upgrade tasks 13: 0 done, 10 ignored, 0 skipped and 0 failed
--->  Skipping 'devel/p5-Devel-Symdump' because it is held by user (specify -f to force)
--->  ** Upgrade tasks 13: 0 done, 11 ignored, 0 skipped and 0 failed
--->  Skipping 'lang/p5-Switch' because it is held by user (specify -f to force)
--->  ** Upgrade tasks 13: 0 done, 12 ignored, 0 skipped and 0 failed
--->  Skipping 'devel/p5-Time-HiRes' because it is held by user (specify -f to force)
--->  ** Upgrade tasks 13: 0 done, 13 ignored, 0 skipped and 0 failed
--->  Listing the results (+:done / -:ignored / *:skipped / !:failed)
	-  (bsdpan-Time-Format-1.09)
	-  (bsdpan-Net-Traceroute-PurePerl-0.10)
	-  (bsdpan-B-Debug-1.11)
	- textproc/p5-XML-NamespaceSupport (bsdpan-XML-NamespaceSupport-1.09)
	- devel/p5-Test-Harness (bsdpan-Test-Harness-3.14)
	-  (bsdpan-Pod-Perldoc-3.15)
	- textproc/p5-Pod-Simple (bsdpan-Pod-Simple-3.07)
	-  (bsdpan-autodie-1.998)
	- textproc/p5-Text-Balanced (bsdpan-Text-Balanced-undef)
	-  (bsdpan-libwww-perl-5.823)
	- devel/p5-Devel-Symdump (bsdpan-Devel-Symdump-2.08)
	- lang/p5-Switch (bsdpan-Switch-2.14)
	- devel/p5-Time-HiRes (bsdpan-Time-HiRes-1.9719)
--->  Packages processed: 0 done, 13 ignored, 0 skipped and 0 failed
--->  Session ended at: Mon, 02 Feb 2009 11:42:57 +0100 (consumed 00:00:14)
[root@server ~]#
```


```
[root@server ~]# cpan
Can't locate AutoLoader.pm in @INC (@INC contains: /usr/local/lib/perl5/5.8.9/BSDPAN /usr/local/lib/perl5/site_perl/5.8.9/mach /usr/local
/lib/perl5/site_perl/5.8.9 /usr/local/lib/perl5/5.8.9/mach /usr/local/lib/perl5/5.8.9 /root) at /usr/local/lib/perl5/5.8.9/mach/Sys
/Hostname.pm line 8.
Compilation failed in require at /usr/local/lib/perl5/5.8.9/CPAN.pm line 39.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/5.8.9/CPAN.pm line 39.
Compilation failed in require at /usr/local/bin/cpan line 175.
BEGIN failed--compilation aborted at /usr/local/bin/cpan line 175.
[root@server ~]#
```


----------



## hydra (Feb 2, 2009)

Have you considered installing them from ports ?


----------



## DutchDaemon (Feb 2, 2009)

I was just about to suggest that, but I can't find equivalents for most of the bsdpan modules in the ports tree. I think they must have changed name over time, or they were included in other (meta)ports. 

I'd suggest trying a *portupgrade -f* on each and every of the skipped packages first, one by one. This should solve the non-bsdpan stuff. 

After that, consider a *pkg_delete -f* on the remaing modules, followed by a *pkgdb -F* to restore lost dependencies. 

As a last resort (i.e. if that doesn't produce a result), you could try a *portupgrade -rRf perl-5.8.9* to rebuild the entire Perl infrastructure from scratch.


----------



## myha (Feb 2, 2009)

Hi,

well I tried to do portupgrade -fa but it failes with some errors... Also If I try to isntall it through portupgrade nothing happens, manuall build fails:

```
[root@server /usr/ports/lang/p5-Switch]# portupgrade -f p5-Switch
[root@server /usr/ports/lang/p5-Switch]# 
[root@server /usr/ports/lang/p5-Switch]# make deinstall
===>  Deinstalling for lang/p5-Switch
[root@server /usr/ports/lang/p5-Switch]# make install
===>   p5-Switch-2.14_1 depends on package: p5-Filter>0 - not found
===>    Verifying install for p5-Filter>0 in /usr/ports/devel/p5-Filter
===>  Building for p5-Filter-1.34
Can't locate AutoSplit.pm in @INC (@INC contains: /usr/local/lib/perl5/5.8.9/BSDPAN /usr/local/lib/perl5/site_perl/5.8.9/mach /usr/local
/lib/perl5/site_perl/5.8.9 /usr/local/lib/perl5/5.8.9/mach /usr/local/lib/perl5/5.8.9 .) at /usr/local/lib/perl5/5.8.9/ExtUtils/Install.pm 
line 6.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/5.8.9/ExtUtils/Install.pm line 6.
Compilation failed in require.
BEGIN failed--compilation aborted.
*** Error code 2

Stop in /usr/ports/devel/p5-Filter/work/Filter-1.34.
*** Error code 1

Stop in /usr/ports/devel/p5-Filter.
*** Error code 1

Stop in /usr/ports/lang/p5-Switch.
[root@server /usr/ports/lang/p5-Switch]#
```

Otherwise I would like to remove all modules installed via cpan and reinstall them from ports as soon as I manage to solve this.


----------



## DutchDaemon (Feb 2, 2009)

First try *perl-after-upgrade*, followed by *portupgrade -f p5**. Then see if you can do what I suggested earlier. Your current perl infrastructure is out of sync with its modules. That has to be fixed first.


----------



## myha (Feb 2, 2009)

Hi,

well I removed all bsdpan-* modules (through pkg_delete) that were duplicated and were causing problems, I had to recompile the perl and then I ran portupgrade -f p5*. Now everything seems fine...

Thanks for support,
brm


----------



## kasse (Feb 2, 2009)

I also have a question relating to problems upgrading perl.
After upgrading the ports tree I run portmaster perl and I get the following apparently endless loop


```
===>>> Waiting on fetch & checksum for lang/perl5.8 <<<===
BSDPAN-5.8.9.tar.bz2                                  8171  B   20 kBps
=> defined-or-5.8.9.bz2 doesn't seem to exist in /usr/ports/distfiles/perl.
=> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/skv/.
defined-or-5.8.9.bz2                                    35 kB   40 kBps
=> MD5 Checksum OK for perl/perl-5.8.9.tar.bz2.
=> SHA256 Checksum OK for perl/perl-5.8.9.tar.bz2.
=> MD5 Checksum OK for perl/BSDPAN-5.8.9.tar.bz2.
=> SHA256 Checksum OK for perl/BSDPAN-5.8.9.tar.bz2.
=> MD5 Checksum OK for perl/defined-or-5.8.9.bz2.
=> SHA256 Checksum OK for perl/defined-or-5.8.9.bz2.
```

this same text is repeated and repeated down the screen. I have tried to remove the distfiles and redo portmaster but nothing changes.


----------



## DutchDaemon (Feb 2, 2009)

Though I normally use portupgrade, 'portmaster perl' produced no errors here. In other words: it started to build after the checksums were found to be OK. What does a 'make clean && make' in /usr/ports/lang/perl5.8 produce? If there are no errors (and you're running perl-5.8.x already), try 'make deinstall clean && make reinstall clean' from there. If that works, do 'perl-after-upgrade' and a forced upgrade of all p5* ports.


----------



## DutchDaemon (Feb 2, 2009)

myha said:
			
		

> Hi,
> 
> well I removed all bsdpan-* modules (through pkg_delete) that were duplicated and were causing problems, I had to recompile the perl and then I ran portupgrade -f p5*. Now everything seems fine...
> 
> ...



Don't forget to run a *pkgdb -F* to make sure that any missing CPAN Perl modules are replaced by their ports counterparts.


----------



## kasse (Feb 2, 2009)

DutchDaemon said:
			
		

> Though I normally use portupgrade, 'portmaster perl' produced no errors here. In other words: it started to build after the checksums were found to be OK. What does a 'make clean && make' in /usr/ports/lang/perl5.8 produce? If there are no errors (and you're running perl-5.8.x already), try 'make deinstall clean && make reinstall clean' from there. If that works, do 'perl-after-upgrade' and a forced upgrade of all p5* ports.



Thank you for your help, it seems like you have had to answer quite a few threads about perl upgrades lately. I am sorry that I had to be another person asking again, but I was worried about reinstalling perl outside of the comfort with portmaster. (Though I had no problems upgrading perl with portmaster on another almost identical computer, just to double check)

Anyhow.
So far it worked with no problems up to, and including, perl-after-upgrade.
Following the guide http://people.freebsd.org/~tobez/pau.html it says that you should use "pkgdb -F", from what I understand "pkgdb" is part of portupgrade. As I am using portmaster could I use "portmaster --check-depends" instead or should I install portupgrade?


----------



## kasse (Feb 2, 2009)

oops(I'm sorry that I cannot find where to edit my posts)
 from pkgdb(1):

```
Actually, pkgdb and pkg_which are the same command, and are equivalent.
```


----------



## DutchDaemon (Feb 2, 2009)

These files are one and the same binary (their inodes match):

ls -ali /usr/local/sbin/pkg_which /usr/local/sbin/pkgdb


----------



## DutchDaemon (Feb 2, 2009)

And yes, I guess portmaster --check-depends does the same thing as pkgdb -F as far as checking (severed) dependencies goes. I don't know whether portmaster presents you with a dialog to fix these dependencies on the fly, like pkgdb does.


----------



## kasse (Feb 2, 2009)

Thanks I believe it is working now. It seems like you are the real "portmaster"!
I am sorry that this turned into another perl&portupgrade thread, but I thought portmaster was safer and less prone to fail.


----------



## DutchDaemon (Feb 2, 2009)

You're welcome. Hope this thread benefits all who ran/run into Perl upgrade woes.


----------



## Ravage (Jun 18, 2009)

Can't get past this error... not compiling
Any ideas? Using 7.0-CURRENT FreeBSD


```
`Makefile' is up to date.
`DynaLoader.xs' is up to date.
rm -f libperl.so
cc -o libperl.so -shared  -L/usr/local/lib   gv.o toke.o perly.o op.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o hv.o av.o perl.o run.o 
pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o xsutils.o globals.o perlio.o perlapi.o 
numeric.o mathoms.o locale.o pp_pack.o pp_sort.o  DynaLoader.o -lm -lcrypt -lutil
cc: DynaLoader.o: No such file or directory
*** Error code 1
touch uni.data
1 error
*** Error code 1

Stop in /usr/ports/lang/perl5.10.
*** Error code 1

Stop in /usr/ports/lang/perl5.10.
```


----------



## SirDice (Jun 18, 2009)

Ravage said:
			
		

> Using 7.0-CURRENT FreeBSD


This is either a very old system, or you actually meant 8.0-CURRENT.

I see you're installing perl 5.10. Is 5.8 still installed?


----------



## Ravage (Jun 18, 2009)

result is always same trying portupgrading 5.9 or to 5.10
yea system is a lil old, but can't upgrade it, cause i'm out of country, if something breaks then... ehemmm


----------



## SirDice (Jun 18, 2009)

7.0-CURRENT went RELEASE quite a some time ago (feb. 2008), -STABLE is currently at 7.2 and -CURRENT is 8.0. Also there's no Perl 5.9. Please post the correct versions.

When trying to install perl, try removing the old one first.


----------



## Ravage (Jun 18, 2009)

oh my bad...
trying to portupgrade perl-5.8.9_2 to perl-5.8.9_3 or 5.10


```
cc -o libperl.so -shared  -L/usr/local/lib  gv.o toke.o perly.o op.o pad.o regcomp.o dump.o util.o mg.o reentr.o hv.o av.o perl.o run.o 
pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o xsutils.o globals.o perlio.o perlapi.o 
numeric.o mathoms.o locale.o pp_pack.o pp_sort.o  DynaLoader.o -lm -lcrypt -lutil
cc: DynaLoader.o: No such file or directory
*** Error code 1
touch uni.data
1 error
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade20090618-87599-1oo2c6y-0 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=perl-
5.8.9_2 UPGRADE_PORT_VER=5.8.9_2 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
        ! lang/perl5.8 (perl-5.8.9_2)   (unknown build error)
```


----------



## SirDice (Jun 19, 2009)

The failure is somewhere before that. Please post the entire output.


----------



## DutchDaemon (Jun 19, 2009)

Also post the output of [cmd=]pkg_info | grep perl-[/cmd]. It's getting unclear which version you have installed. Have you tried a straight upgrade, e.g. portupgrade(1)/portmaster(8) *-o*?


----------



## Ravage (Jun 20, 2009)

*problem fixed*

updated to 7.2-RELEASE and rebuilt all ports... now everything ok... lucky me


----------



## reily_tump (Jul 27, 2009)

Ravage said:
			
		

> oh my bad...
> trying to portupgrade perl-5.8.9_2 to perl-5.8.9_3 or 5.10
> 
> 
> ...



same problem here. on a 7.0 system.


```
cc -o libperl.so -shared  -L/usr/local/lib malloc.o gv.o toke.o perly.o op.o pad.o regcomp.o dump.o util.o mg.o reentr.o hv.o av.o 
perl.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o xsutils.o globals.o 
perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o  DynaLoader.o -lm -lcrypt -lutil
cc: DynaLoader.o: No such file or directory
*** Error code 1
1 error
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade.28631.0 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=perl-5.8.9_2 UPGRADE_PORT_VER=5.8.9_2 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
	! lang/perl5.8 (perl-5.8.9_2)	(unknown build error)
```

any solutions so far?


----------

