perl5.8 fixup

Bradley Giesbrecht brad at pixilla.com
Sat Mar 7 18:25:43 PST 2009


On Mar 7, 2009, at 5:00 PM, Marcus Calhoun-Lopez wrote:

> Ryan Schmidt <ryandesign at ...> writes:
>
>> On Mar 7, 2009, at 15:49, Bradley Giesbrecht wrote:
>>
>>> I don't know how useful perl is with no modules but it sounds good
>>> to me to be able to install perl without them.
>>> perl5.8-core sounds appealing.
>>
>> I don't think there's a desire to allow perl5 to be installed without
>> the modules,
> If I understand http://trac.macports.org/ticket/12710#comment:10
> correctly, some modules are required.
>
> Please forgive me, but I am having a little trouble understanding
> what is being proposed with this meta-port suggestion.
>
>> but there is a desire to have each of those modules
>> represented by its own port where it can be separately updated and
>> maintained and depended upon.
> Isn't that what we have now?

No, that's the problem.
I removed and reinstalled macports.
I only installed perl5.8.
There are somewhere near a hundred perl pm files installed before  
installing one p5.
Some of those modules are evidently too to work with other modules so  
people have added same module as a p5 port.
But these p5 installs write to the same pm files and/or man pages and  
those files are registered to perl5.8 so you have to -f the p5 install.

Then a bunch of other p5 ports put dependencies on these conflicting  
p5 ports so it because most common to have to -f p5 installs.

At least thats been my experience .

>>
>> There will of course be pain in switching from a perl5.8 port which
>> installs perl to a perl5.8 port which installs no files and depends
>> on a perl5.8-core port which installs the same files that perl5.8
>> used to install.
>
> If I understand what is being discussed (please correct me if I'm  
> wrong),
> we would
>   * copy perl5.8 -> perl5.8-core.
>   * create a port which installs all the core p5 ports.
>   * make perl5.8 do nothing except depend on perl5.8-core and the  
> new p5 umbrella port.
>
> It seems that this does not buy us anything, so I fear I am missing  
> something.

It buys us perl modules as p5 ports that used to be part of perl5.
This allows us to update those p5 ports to newer required versions  
without having to have a perl5 revision increment and upgrade perl5.

I suppose getting rid of all the conflicting p5 ports and just  
updating perl5 everytime someone needs a newer version of a p5 could  
work.

Here is an example I believe is true and common.

Looks like these p5 ports depend on p5-test-simple which appears to be  
part of perl5.8 base. So all of these p5 modules require -f to install.
p5-calendar-simple
p5-curses-ui
p5-dbix-class
p5-gearman-client-async
p5-html-scrubber
p5-log-dispatch
p5-mac-errors
p5-math-bigint
p5-moose
p5-return-value
p5-test-exception
p5-test-longstring
p5-test-memory-cycle
p5-test-object
p5-test-pod
p5-test-pod-coverage
p5-test-www-mechanize
p5-text-wikiformat

Going from the file system /opt/local/lib/perl5 and globbing *.pm and  
*.pm/*.pm I came up with this.
I'm sure it's not entirely accurate but I've found a number of  
conflicting p5's using this list. I put it in sql and also loaded the  
list of p5 and joined them to get the p5-test conflicts.

p5-AnyDBM_File
p5-AutoLoader
p5-AutoSplit
p5-Benchmark
p5-CGI
p5-CGI-Apache
p5-CGI-Carp
p5-CGI-Cookie
p5-CGI-Fast
p5-CGI-Pretty
p5-CGI-Push
p5-CGI-Switch
p5-CGI-Util
p5-CPAN
p5-CPAN-Debug
p5-CPAN-DeferedCode
p5-CPAN-Distroprefs
p5-CPAN-FirstTime
p5-CPAN-HandleConfig
p5-CPAN-Kwalify
p5-CPAN-Nox
p5-CPAN-Queue
p5-CPAN-Tarzip
p5-CPAN-Version
p5-Carp
p5-Carp-Heavy
p5-DB
p5-DBM_Filter
p5-DBM_Filter-compress
p5-DBM_Filter-encode
p5-DBM_Filter-int32
p5-DBM_Filter-null
p5-DBM_Filter-utf8
p5-Digest
p5-Digest-base
p5-Digest-file
p5-DirHandle
p5-Dumpvalue
p5-English
p5-Env
p5-Exporter
p5-Exporter-Heavy
p5-Fatal
p5-FileCache
p5-FileHandle
p5-FindBin
p5-Memoize
p5-Memoize-AnyDBM_File
p5-Memoize-Expire
p5-Memoize-ExpireFile
p5-Memoize-ExpireTest
p5-Memoize-NDBM_File
p5-Memoize-SDBM_File
p5-Memoize-Storable
p5-NEXT
p5-PerlIO
p5-SelectSaver
p5-SelfLoader
p5-Shell
p5-Switch
p5-Symbol
p5-Test
p5-Test-Builder
p5-Test-Harness
p5-Test-More
p5-Test-Simple
p5-Thread
p5-Thread-Queue
p5-Thread-Semaphore
p5-UNIVERSAL
p5-attributes
p5-autouse
p5-base
p5-bigint
p5-bignum
p5-bigrat
p5-blib
p5-bytes
p5-charnames
p5-constant
p5-diagnostics
p5-fields
p5-filetest
p5-if
p5-integer
p5-less
p5-locale
p5-locale-Constants
p5-locale-Country
p5-locale-Currency
p5-locale-Language
p5-locale-Maketext
p5-locale-Script
p5-open
p5-overload
p5-sigtrap
p5-sort
p5-strict
p5-subs
p5-utf8
p5-vars
p5-vmsish
p5-warnings
p5-warnings-register

Some of these may not actually be perl modules but they do end  
with .pm. Like I have said repeatedly, I'm no perl expert but I AM  
willing to help make p5 -f a thing of the past.

//Brad


More information about the macports-dev mailing list