Situation: I removed macports and reinstalled using the macports wiki recommended methods.
I installed perl5.8 and only perl5.8 using all variants.
I looked for and found a p5 that thought would not activate without using -f. Seeing as threads along these lines are current I'm going to assume the readers of this message know something about what I'm talking about.

Profession: I believe there is a problem with some port p5 modules that conflict with perl5.8 installed modules.

Acknowledgments: I don't beleive I'm qualified to offer a solution for the p5 conflicts with perl5.8.

Problems: Without the user adding another env var it appears the port perl5.8 modules may not be found. Some port p5 modules seem to collide with port pelr5.8 installed modules.

Goal: Build consensus that there is a problem with port perl5.8 base modules not being available without adding another env var. Build consensus that some port p5 modules collide with port perl5.8 base modules. Move toward a solution.

My comments:
Listening to Vincent Lefèvre, who must know more then me about perl, I added PERL5LIB to my env and I think this is good way to go.

I am going to suggest we add a port "macports-env" for setting macports env shell vars that are necessary for port and other software to run. If a port installs files that should be in env PATH then the Portfile could have a var like "macports-path /opt/local/bin/somepath" and this path would be added to the macports-env config file at /opt/local/etc/ macports/env.conf. I think some kind of a structure like ini might be nice for this file so items can be removed when a port is deactivated.

Ok, that's my idea for env.

Now for the perl5.8 p5 collisions. I have written three short scripts to try to find where the problems are. They are not pretty and probably not all that useful. I am going to add them here so people smarter then me can comment. Not being that familiar with perl and it's modules I will need to spend some time trying to match port perl5.8 module names with port p5 module names. Maybe some others can try these scripts and notice some obvious p5 ports that are not needed. I think some were added because without a proper PERL5LIB env other ports that were being submitted wouldn't run.

If I'm way off on my presumptions I'll probably just give in to -f but if I'm not and others are interested in fixing this I want to help.

BlackBook: root# cat *.sh
#!/bin/sh
# file name: porl5.8_installed_modules.sh
# purpose: remove port p5 modules that are installed as part of perl5.8 base

startdir=`pwd`
p5dir=/opt/local/lib/perl5/5.8.9

cd $p5dir

for p5_perl in $( ls *.pm | sed 's|.pm||g' ); do
                echo "${p5_perl}"
                if [ -d $p5_perl ]; then
                        cd $p5_perl
                        for p5_perl_file in $( ls *.pm | sed 's|.pm||g' ); do
                                echo "${p5_perl},${p5_perl_file}"
                        done
                        cd $p5dir
                fi
done

cd $startdir

# file name: porl5.8_installed_modules.sh

#!/bin/sh
# file name: port_p5_module_deps.sh
# purpose: remove port p5 modules that are installed as part of perl5.8 base

for p5_ports in $( ls /opt/local/var/macports/sources/ rsync.macports.org/release/ports/perl ); do
        for p5_deps in $( port deps $p5_ports | tail +2 ); do
                echo "${p5_ports},${p5_deps}"
        done
done

# file name: port_p5_module_deps.sh

#!/bin/sh
# file name: port_p5_modules.sh
# purpose: remove port p5 modules that are installed as part of perl5.8 base

startdir=`pwd`
p5dir=/opt/local/var/macports/sources/rsync.macports.org/release/ports/ perl

cd $p5dir

for p5_perl in $( ls | sed 's|p5-||g' | sed 's|-|,|g' ); do
        echo "${p5_perl}"
done

cd $startdir

# file name: port_p5_modules.sh

BlackBook: root#

_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Reply via email to