From owner-freebsd-ports Thu Dec 4 10:26:05 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id KAA13325 for ports-outgoing; Thu, 4 Dec 1997 10:26:05 -0800 (PST) (envelope-from owner-freebsd-ports) Received: from florence.pavilion.net (florence.pavilion.net [194.242.128.25]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id KAA13310 for ; Thu, 4 Dec 1997 10:25:58 -0800 (PST) (envelope-from joe@florence.pavilion.net) Received: (from joe@localhost) by florence.pavilion.net (8.8.7/8.8.7) id SAA19565; Thu, 4 Dec 1997 18:25:52 GMT Message-ID: <19971204182551.23329@pavilion.net> Date: Thu, 4 Dec 1997 18:25:51 +0000 From: Josef Karthauser To: ports@freebsd.org Cc: Sam Eaton Subject: Re: A change in the way we port perl anyone? References: <199711231601.IAA22224@baloon.mimi.com> <19971201175341.20837@pavilion.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.81 In-Reply-To: <19971201175341.20837@pavilion.net>; from Josef Karthauser on Mon, Dec 01, 1997 at 05:53:41PM +0000 X-NCC-RegID: uk.pavilion Sender: owner-freebsd-ports@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Mon, Dec 01, 1997 at 05:53:41PM +0000, Josef Karthauser wrote: > > On Sun, Nov 23, 1997 at 08:01:47AM -0800, Satoshi Asami wrote: > > * I _WISH_ that there had been a p5 category made, because without that, > > * it's really hard not to do duplicates on Perl stuff. There too darn many! > > > > There is a "perl5" virtual category. It shows up in the ports index > > page and ports/INDEX. :) > > > > Satoshi > > Why don't we integrate the p5 stuff with mod-CPAN. The perl code > changes so often and they've already got an update mechanism for their stuff. > Seems like we're reinventing the wheel, badly, here. Let me clarify, to stimulate a reply. Perl5 contains a module that allows it to integrate to the CPAN archive. If it's setup it can perform updates of perl modules automagically. Here's an example of the interactive shell, although it can be invoked via code as well: ================ Fire up CPAN ================ # /usr/local/bin/perl -MCPAN -eshell cpan shell -- CPAN exploration and modules installation (v1.3101) ReadLine support enabled ================ Ask it to check to see what should be upgraded ============ cpan> r Going to read /root/.cpan/sources/01mailrc.gz Going to read /root/.cpan/sources/02packag.gz There's a new CPAN.pm version (v1.3102) available! You might want to try install CPAN reload cpan without quitting the current session. It should be a seamless upgrade while we are running... Going to read /root/.cpan/sources/03mlist.gz Package namespace installed latest in CPAN file Apache 1.16 1.20 DOUGM/mod_perl-1.07.tar.gz CGI 2.37b5 2.37010 LDS/CGI.pm-2.37b10.tar.gz CPAN 1.3101 1.3102 TIMB/perl5.004_04.tar.gz DBD::mysql 2.004 2.006 JWIED/Msql-Mysql-modules-1.1820.tar.gz DB_File 1.54 1.55 PMQS/DB_File-1.55.tar.gz HTML::Element 1.35 1.37 GAAS/libwww-perl-5.17.tar.gz IO 1.17 1.18 GBARR/IO-1.1802.tar.gz MIME::Base64 2.03 2.04 GAAS/MIME-Base64-2.04.tar.gz Net::Cmd 2.0801 2.10 GBARR/libnet-1.0603.tar.gz 131 installed modules have no parseable version number ================ I want to to upgrade the IO module to the current one ====== cpan> install IO Running make for GBARR/IO-1.1802.tar.gz CPAN: LWP loaded ok Fetching with LWP: ftp://ftp.flirble.org/pub/languages/perl/CPAN/authors/id/GBARR/IO-1.1802.tar.gz CPAN: MD5 loaded ok Fetching with LWP: ftp://ftp.flirble.org/pub/languages/perl/CPAN/authors/id/GBARR/CHECKSUMS Checksum for /root/.cpan/sources/authors/id/GBARR/IO-1.1802.tar.gz ok IO-1.1802/ IO-1.1802/t/ IO-1.1802/t/io_sel.t IO-1.1802/t/io_const.t IO-1.1802/t/io_udp.t IO-1.1802/t/io_dup.t IO-1.1802/t/io_xs.t IO-1.1802/t/io_pipe.t IO-1.1802/t/io_sock.t IO-1.1802/t/io_tell.t IO-1.1802/t/io_poll.t IO-1.1802/t/io_dir.t IO-1.1802/IO/ IO-1.1802/IO/Pipe.pm IO-1.1802/IO/Poll.pm IO-1.1802/IO/Seekable.pm IO-1.1802/IO/Socket/ IO-1.1802/IO/Socket/UNIX.pm IO-1.1802/IO/Socket/INET.pm IO-1.1802/IO/Dir.pm IO-1.1802/IO/File.pm IO-1.1802/IO/Select.pm IO-1.1802/IO/Socket.pm IO-1.1802/IO/Handle.pm IO-1.1802/IO.pm IO-1.1802/poll.c IO-1.1802/Makefile.PL IO-1.1802/ChangeLog IO-1.1802/poll.h IO-1.1802/README IO-1.1802/IO.xs IO-1.1802/MANIFEST CPAN.pm: Going to build GBARR/IO-1.1802.tar.gz Checking for Socket...ok Checking if your kit is complete... Looks good Writing Makefile for IO mkdir ./blib mkdir ./blib/lib cp IO/Pipe.pm ./blib/lib/IO/Pipe.pm cp IO/Dir.pm ./blib/lib/IO/Dir.pm cp IO/File.pm ./blib/lib/IO/File.pm cp IO/Select.pm ./blib/lib/IO/Select.pm cp IO.pm ./blib/lib/IO.pm cp IO/Poll.pm ./blib/lib/IO/Poll.pm cp IO/Socket/INET.pm ./blib/lib/IO/Socket/INET.pm cp IO/Socket.pm ./blib/lib/IO/Socket.pm cp IO/Seekable.pm ./blib/lib/IO/Seekable.pm cp IO/Socket/UNIX.pm ./blib/lib/IO/Socket/UNIX.pm cp IO/Handle.pm ./blib/lib/IO/Handle.pm /usr/local/bin/perl -I/usr/local/lib/perl5/i386-freebsd/5.00403 -I/usr/local/lib/perl5 /usr/local/lib/perl5/ExtUtils/xsubpp -typemap /usr/local/lib/perl5/ExtUtils/typemap IO.xs >IO.tc && mv IO.tc IO.c cc -c -I/usr/local/include -O -DVERSION=\"1.18\" -DXS_VERSION=\"1.18\" -DPIC -fpic -I/usr/local/lib/perl5/i386-freebsd/5.00403/CORE -DI_POLL IO.c cc -c -I/usr/local/include -O -DVERSION=\"1.18\" -DXS_VERSION=\"1.18\" -DPIC -fpic -I/usr/local/lib/perl5/i386-freebsd/5.00403/CORE -DI_POLL poll.c mkdir ./blib/arch mkdir ./blib/arch/auto mkdir ./blib/arch/auto/IO Running Mkbootstrap for IO () chmod 644 IO.bs LD_RUN_PATH="" ld -o ./blib/arch/auto/IO/IO.so -Bshareable -L/usr/local/lib IO.o poll.o chmod 755 ./blib/arch/auto/IO/IO.so cp IO.bs ./blib/arch/auto/IO/IO.bs chmod 644 ./blib/arch/auto/IO/IO.bs mkdir ./blib/lib/auto/IO mkdir ./blib/man3 Manifying ./blib/man3/IO::Pipe.3 Manifying ./blib/man3/IO::Dir.3 Manifying ./blib/man3/IO::Select.3 Manifying ./blib/man3/IO::File.3 Manifying ./blib/man3/IO.3 Manifying ./blib/man3/IO::Poll.3 Manifying ./blib/man3/IO::Socket::INET.3 Manifying ./blib/man3/IO::Socket.3 Manifying ./blib/man3/IO::Handle.3 Manifying ./blib/man3/IO::Socket::UNIX.3 Manifying ./blib/man3/IO::Seekable.3 /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 /usr/local/bin/perl -I./blib/arch -I./blib/lib -I/usr/local/lib/perl5/i386-freebsd/5.00403 -I/usr/local/lib/perl5 -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t t/io_const..........ok t/io_dir............ok t/io_dup............ok t/io_pipe...........ok t/io_poll...........ok t/io_sel............ok t/io_sock...........ok t/io_tell...........ok t/io_udp............ok t/io_xs.............ok All tests successful. Files=10, Tests=85, 4 secs ( 2.41 cusr 0.64 csys = 3.05 cpu) /usr/bin/make test -- OK Running make install Installing /usr/local/lib/perl5/i386-freebsd/5.00403/./auto/IO/IO.so Skipping /usr/local/lib/perl5/i386-freebsd/5.00403/./auto/IO/IO.bs (unchanged) Installing /usr/local/lib/perl5/./IO/Pipe.pm Skipping /usr/local/lib/perl5/./IO/Dir.pm (unchanged) Skipping /usr/local/lib/perl5/./IO/File.pm (unchanged) Installing /usr/local/lib/perl5/./IO/Select.pm Skipping /usr/local/lib/perl5/./IO/Poll.pm (unchanged) Skipping /usr/local/lib/perl5/./IO/Socket/INET.pm (unchanged) Skipping /usr/local/lib/perl5/./IO/Socket/UNIX.pm (unchanged) Installing /usr/local/lib/perl5/./IO/Socket.pm Skipping /usr/local/lib/perl5/./IO/Seekable.pm (unchanged) Installing /usr/local/lib/perl5/./IO/Handle.pm Installing /usr/local/lib/perl5/./IO.pm Installing /usr/local/lib/perl5/man/man3/./IO::Pipe.3 Installing /usr/local/lib/perl5/man/man3/./IO::Dir.3 Installing /usr/local/lib/perl5/man/man3/./IO::Select.3 Skipping /usr/local/lib/perl5/man/man3/./IO::File.3 (unchanged) Installing /usr/local/lib/perl5/man/man3/./IO.3 Skipping /usr/local/lib/perl5/man/man3/./IO::Poll.3 (unchanged) Skipping /usr/local/lib/perl5/man/man3/./IO::Socket::INET.3 (unchanged) Installing /usr/local/lib/perl5/man/man3/./IO::Socket.3 Installing /usr/local/lib/perl5/man/man3/./IO::Handle.3 Skipping /usr/local/lib/perl5/man/man3/./IO::Socket::UNIX.3 (unchanged) Skipping /usr/local/lib/perl5/man/man3/./IO::Seekable.3 (unchanged) Writing /usr/local/lib/perl5/i386-freebsd/5.00403/auto/IO/.packlist Appending installation info to /usr/local/lib/perl5/i386-freebsd/5.00403/perllocal.pod /usr/bin/make install -- OK ================ Check to see that it's done it ================ cpan> r Package namespace installed latest in CPAN file Apache 1.16 1.20 DOUGM/mod_perl-1.07.tar.gz CGI 2.37b5 2.37010 LDS/CGI.pm-2.37b10.tar.gz CPAN 1.3101 1.3102 TIMB/perl5.004_04.tar.gz DBD::mysql 2.004 2.006 JWIED/Msql-Mysql-modules-1.1820.tar.gz DB_File 1.54 1.55 PMQS/DB_File-1.55.tar.gz HTML::Element 1.35 1.37 GAAS/libwww-perl-5.17.tar.gz MIME::Base64 2.03 2.04 GAAS/MIME-Base64-2.04.tar.gz Net::Cmd 2.0801 2.10 GBARR/libnet-1.0603.tar.gz 131 installed modules have no parseable version number cpan> quit # Cool uh? Because it does all this, including updating the CPAN module itself and the core perl5 code this it seems a waste of labout making individual packages of p5 stuff that do anything other than invoke the CPAN module. With the current way that perl modules are handled in the ports one of two things happen: 1. A port/package that depends upon a perl module fails even though the module is installed because there's not a relevent pkg entry for it. 2. Existing pkg entries get out of date easily when a new version is installed using CPAN. What it seems to me is that the ports handling needs to be expanded to integrate with CPAN, which can even hot update the core perl5 code. Is anyone interested in working on this development. I'd love to do it myself but unfortunately I haven't got the resources to do so currently. Joe -- Josef Karthauser Technical Manager Email: joe@pavilion.net Pavilion Internet plc. [Tel: +44 1273 607072 Fax: +44 1273 607073]