Date: Wed, 14 Mar 2001 07:57:36 +0200 From: Mark Murray <mark@grondar.za> To: Anton Berezin <tobez@tobez.org> Cc: Josef Karthauser <joe@tao.org.uk>, Will Andrews <will@FreeBSD.org>, "Vanilla I . Shu" <vanilla@FreeBSD.org>, ports@FreeBSD.org Subject: Re: BSDPAN, ready with perl build Message-ID: <200103140556.f2E5uef01764@gratis.grondar.za> In-Reply-To: <20010314035149.B620@heechee.tobez.org> ; from Anton Berezin <tobez@tobez.org> "Wed, 14 Mar 2001 03:51:50 %2B0100." References: <20010314035149.B620@heechee.tobez.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This looks rather good! :-) I'd like to take until at least the end of this coming weekend to look at it properly, but I think the chances of bringing it in are extremely high. Good work! :-) :-) M > Hi, > > This time it is ready for commit, of course as long as it will satisfy > your review. > > This version is for -current only. I've tested it with a make world, > and with numerous make depend/all/install circles for the > gnu/usr.bin/perl subtree. > > The diffs are below. > > Cheers, > $Anton. > -- > May the tuna salad be with you. > > > --- etc/mtree/BSD.usr.dist.before.BSDPAN Wed Mar 14 01:11:58 2001 > +++ etc/mtree/BSD.usr.dist Wed Mar 14 01:13:06 2001 > @@ -171,6 +171,12 @@ > warnings > .. > .. > + BSDPAN > + BSDPAN > + .. > + ExtUtils > + .. > + .. > .. > stallion > .. > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/BSDPAN/BSDPAN/Override.pm gnu/usr.bin/perl/BSDPAN/BSDPAN/Override.pm > --- gnu/usr.bin/perl.before.BSDPAN/BSDPAN/BSDPAN/Override.pm Thu Jan 1 01:00:00 1970 > +++ gnu/usr.bin/perl/BSDPAN/BSDPAN/Override.pm Wed Mar 14 02:18:44 2001 > @@ -0,0 +1,140 @@ > +# ---------------------------------------------------------------------------- > +# "THE BEER-WARE LICENSE" > +# <tobez@tobez.org> wrote this file. As long as you retain this notice you > +# can do whatever you want with this stuff. If we meet some day, and you think > +# this stuff is worth it, you can buy me a beer in return. Anton Berezin > +# ---------------------------------------------------------------------------- > +# > +# $FreeBSD$ > +# > +package BSDPAN::Override; > +use strict; > +use Carp; > +require Exporter; > +require SelfLoader; # XXX 2nd-order magic over SelfLoader's magic :-) > +# require AutoLoader; # XXX do we need to do similar hoop-la with it? > +use vars qw(@ISA @EXPORT); > +@ISA = qw(Exporter); > +@EXPORT = qw(override); > + > +# sub BSDPAN::Override::import > +sub import > +{ > + my $pkg = caller; > + croak("BSDPAN::Override can only operate for other BSDPAN modules") > + unless $pkg =~ s/^BSDPAN:://; > + > + # make sure the BSDPAN module will not stay on the way > + my @oinc = @INC; > + my $bsdpan_path = BSDPAN->path; > + my @ninc; > + for my $inc_component (@INC) { > + push @ninc, $inc_component unless $inc_component eq $bsdpan_path; > + } > + @INC = @ninc; > + my $pm = $pkg; > + $pm =~ s|::|/|g; > + delete $INC{"$pm.pm"}; > + > + # try to load the original module > + eval "require $pkg;" or die("Cannot load $pkg: $@"); > + > + @INC = @oinc; > + > + # do the traditional `sub import' job > + BSDPAN::Override->export_to_level(1, @_); > + > + # and prepare `sub import' functionality for the original module > + my $pkg_isa = eval "*$pkg\::ISA\{ARRAY}"; > + if ($pkg_isa && grep { /Exporter/ } @$pkg_isa) { > + eval "package $pkg; sub import { $pkg->export_to_level(2,\@_); }"; > + die $@ if $@; > + } > +} > + > +my %overridden; > + > +# sub BSDPAN::Override::override > +sub override ($$) > +{ > + my ($name, $replacement_sub) = @_; > + > + # if name is unqualified, try to guess the right namespace > + unless ($name =~ /::/) { > + my $pkg = caller; > + croak("BSDPAN::Override can only operate for other BSDPAN modules") > + unless $pkg =~ s/^BSDPAN:://; > + $name = "$pkg\::$name"; > + } > + > + return if $overridden{$name}; > + > + my $pkg = $name; $pkg =~ s/::[^:]*$//; > + > + # do we need to protect against SelfLoader? > + my $sl_autoload = eval "*$pkg\::AUTOLOAD{CODE}"; > + $sl_autoload = 0 if $sl_autoload && $sl_autoload != \&SelfLoader::AUTOLOAD; > + > + # substitute the symbol table entry with the replacement sub > + my $name_addr = eval "*$name\{CODE}"; > + > + if ($name_addr) { > + local $SIG{__WARN__} = sub {}; > + if ($sl_autoload) { > + # Ouch! Don't ask. :-) > + eval <<EOF; > +*$name = sub { > + \$replacement_sub->( sub { > + \$SelfLoader::AUTOLOAD = "$name"; > + local \$SIG{__WARN__} = sub {}; > + my \@r = \$sl_autoload->(\@_); > + my \$real_addr = "*$name\{CODE}"; > + *$name = sub { \$replacement_sub->( > + \$real_addr, \@_) }; > + }, \@_) > +}; > +EOF > + } else { > + eval "*$name = sub { \$replacement_sub->(\$name_addr, \@_) };"; > + } > + die "$@\n" if $@; > + $overridden{$name} = 1; > + } else { > + croak("Cannot override `$name': there is no such thing"); > + } > +} > + > +1; > +__END__ > +=head1 NAME > + > +BSDPAN::Override - Perl module for overriding subs in other modules > + > +=head1 SYNOPSIS > + > + package BSDPAN::Some::Perl::Module; > + use BSDPAN::Override; > + ... > + sub my_sub { > + my $orig = shift; > + ... > + &$orig; > + ... > + } > + ... > + BEGIN { override 'some_sub', \&my_sub; } > + > +=head1 DESCRIPTION > + > +BSDPAN::Override provides a way for other BSDPAN modules to override the > +functionality of arbitrary Perl modules. > + > +=head1 AUTHOR > + > +Anton Berezin, tobez@tobez.org > + > +=head1 SEE ALSO > + > +perl(1), L<BSDPAN(1)>. > + > +=cut > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/BSDPAN/BSDPAN.pm gnu/usr.bin/perl/BSDPAN/BSDPAN.pm > --- gnu/usr.bin/perl.before.BSDPAN/BSDPAN/BSDPAN.pm Thu Jan 1 01:00:00 1970 > +++ gnu/usr.bin/perl/BSDPAN/BSDPAN.pm Wed Mar 14 02:09:42 2001 > @@ -0,0 +1,117 @@ > +# ---------------------------------------------------------------------------- > +# "THE BEER-WARE LICENSE" > +# <tobez@tobez.org> wrote this file. As long as you retain this notice you > +# can do whatever you want with this stuff. If we meet some day, and you think > +# this stuff is worth it, you can buy me a beer in return. Anton Berezin > +# ---------------------------------------------------------------------------- > +# > +# $FreeBSD$ > +# > +package BSDPAN; > +use Config; > + > +my $bsdpan_path; > + > +BEGIN { > + for (keys %::) { > + $bsdpan_path = $1 if /^_<(.*\/|)BSDPAN.pm$/; > + } > + $bsdpan_path = '.' if $bsdpan_path eq ''; > + $bsdpan_path =~ tr|/|/|s; > + $bsdpan_path =~ s|/$||; > +} > + > +sub path > +{ > + return $bsdpan_path; > +} > + > +sub perl_version > +{ > + return $Config{version}; > +} > + > +sub perl_ver > +{ > + return $Config{apiversion} if exists $Config{apiversion}; > + return $Config{version}; > +} > + > +sub perl_arch > +{ > + if (exists $Config{apiversion}) { > + # for older perls: `i386-freebsd', for example > + return $Config{archname}; > + } else { > + return 'mach'; > + } > +} > + > +sub builds_port > +{ > + # are we building a p5 port at the moment? > + # XXX there must be a more reliable way to check this > + if (defined $ENV{ARCH} || > + defined $ENV{OPSYS} || > + defined $ENV{OSREL} || > + defined $ENV{OSVERSION} || > + defined $ENV{PORTOBJFORMAT} || > + defined $ENV{SYSTEMVERSION}) { > + return 1; > + } else { > + return 0; > + } > +} > + > +sub builds_standalone > +{ > + return !BSDPAN->builds_port; > +} > + > +1; > +__END__ > +=head1 NAME > + > +BSDPAN - Symbiogenetic tool for Perl & BSD > + > +=head1 SYNOPSIS > + > + use BSDPAN; > + $path = BSDPAN->path; > + $ver = BSDPAN->perl_version; > + $ver = BSDPAN->perl_ver; > + $arch = BSDPAN->perl_arch; > + $port = BSDPAN->builds_port; > + $noport = BSDPAN->builds_standalone; > + > +=head1 DESCRIPTION > + > +BSDPAN is the collection of modules that provides tighter than ever > +integration of Perl into BSD Unix. > + > +Currently, BSDPAN does the following: > + > +=over 4 > + > +=item o makes p5- FreeBSD ports PREFIX-clean; > + > +=item o registers Perl modules with FreeBSD package database. > + > +=back > + > +BSDPAN achieves this by overriding certain functionality of the core > +Perl modules, ExtUtils::MM_Unix, and ExtUtils::Packlist. > + > +BSDPAN B<module> itself just provides useful helper functions for the > +rest of the modules in BSDPAN collection. > + > +=head1 AUTHOR > + > +Anton Berezin, tobez@tobez.org > + > +=head1 SEE ALSO > + > +perl(1), ExtUtils::MakeMaker(1), L<BSDPAN::Override(1)>, > +L<BSDPAN::ExtUtils::MM_Unix(1)>, L<BSDPAN::ExtUtils::Packlist(1)>. > + > +=cut > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/BSDPAN/ExtUtils/MM_Unix.pm gnu/usr.bin/perl/BSDPAN/ExtUtils/MM_Unix.pm > --- gnu/usr.bin/perl.before.BSDPAN/BSDPAN/ExtUtils/MM_Unix.pm Thu Jan 1 01:00:00 1970 > +++ gnu/usr.bin/perl/BSDPAN/ExtUtils/MM_Unix.pm Wed Mar 14 02:30:42 2001 > @@ -0,0 +1,92 @@ > +# ---------------------------------------------------------------------------- > +# "THE BEER-WARE LICENSE" > +# <tobez@tobez.org> wrote this file. As long as you retain this notice you > +# can do whatever you want with this stuff. If we meet some day, and you think > +# this stuff is worth it, you can buy me a beer in return. Anton Berezin > +# ---------------------------------------------------------------------------- > +# > +# $FreeBSD$ > +# > +package BSDPAN::ExtUtils::MM_Unix; > +use strict; > +use Carp; > +use BSDPAN; > +use BSDPAN::Override; > + > +# sub BSDPAN::ExtUtils::MM_Unix::init_main > +sub init_main > +{ > + my $orig = shift; > + my $him = $_[0]; > + > + my @r = &$orig; > + > + # MakeMaker insist to use perl system path first; > + # free it of this misconception, since we know better. > + $him->{PERL_LIB} = BSDPAN->path; > + > + # MakeMaker is pretty lame when the user specifies PREFIX. > + # It has too fine granularity regarding the various places > + # it installs things in. So in order to make a port PREFIX- > + # clean we modify some parameters it does not usually touch. > + # > + # XXX MakeMaker does some `clever' tricks depending whether > + # PREFIX contains the `perl' substring or not. This severely > + # confuses port's PLIST, so we avoid such things here. > + # > + # This code should arguably do what it does even in the > + # case we are not installing a port, but let's be conservative > + # here and not violate Perl's own POLA. > + if ($him->{PREFIX} ne '/usr/local' && BSDPAN->builds_port) { > + my $site_perl = "lib/perl5/site_perl"; > + my $perl_ver = BSDPAN->perl_ver; > + my $perl_version = BSDPAN->perl_version; > + my $perl_arch = BSDPAN->perl_arch; > + my $perl_man = "lib/perl5/$perl_version/man"; > + $him->{INSTALLSITELIB} = "\$(PREFIX)/$site_perl/$perl_ver"; > + $him->{INSTALLSITEARCH} = "\$(PREFIX)/$site_perl/$perl_ver/$perl_arch"; > + $him->{INSTALLBIN} = "\$(PREFIX)/bin"; > + $him->{INSTALLSCRIPT} = "\$(PREFIX)/bin"; > + # these strange values seem to be default > + $him->{INSTALLMAN1DIR} = "\$(PREFIX)/man/man1"; > + $him->{INSTALLMAN3DIR} = "\$(PREFIX)/$perl_man/man3"; > + } > + > + @r; > +} > + > +BEGIN { > + override 'init_main', \&init_main; > +} > + > +1; > +=head1 NAME > + > +BSDPAN::ExtUtils::MM_Unix - Override ExtUtils::MM_Unix functionality > + > +=head1 SYNOPSIS > + > + None > + > +=head1 DESCRIPTION > + > +BSDPAN::ExtUtils::MM_Unix overrides init_main() sub of the standard perl > +module ExtUtils::MM_Unix. > + > +The overridden init_main() first calls the original init_main(). Then, > +if the Perl port build is detected, and the PREFIX stored in the > +ExtUtils::MM_Unix object is not F</usr/local/>, it proceeds to change > +various installation paths ExtUtils::MM_Unix maintains, to match PREFIX. > + > +Thus, BSDPAN::ExtUtils::MM_Unix is responsible for making p5- ports > +PREFIX-clean. > + > +=head1 AUTHOR > + > +Anton Berezin, tobez@tobez.org > + > +=head1 SEE ALSO > + > +perl(1), L<BSDPAN(1)>, L<BSDPAN::Override(1)>, ports(7). > + > +=cut > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/BSDPAN/ExtUtils/Packlist.pm gnu/usr.bin/perl/BSDPAN/ExtUtils/Packlist.pm > --- gnu/usr.bin/perl.before.BSDPAN/BSDPAN/ExtUtils/Packlist.pm Thu Jan 1 01:00:00 1970 > +++ gnu/usr.bin/perl/BSDPAN/ExtUtils/Packlist.pm Wed Mar 14 02:41:34 2001 > @@ -0,0 +1,309 @@ > +# ---------------------------------------------------------------------------- > +# "THE BEER-WARE LICENSE" > +# <tobez@tobez.org> wrote this file. As long as you retain this notice you > +# can do whatever you want with this stuff. If we meet some day, and you think > +# this stuff is worth it, you can buy me a beer in return. Anton Berezin > +# ---------------------------------------------------------------------------- > +# > +# $FreeBSD$ > +# > +package BSDPAN::ExtUtils::Packlist; > +use strict; > +use Carp; > +use Fcntl; > +use BSDPAN; > +use BSDPAN::Override; > + > +# sub BSDPAN::ExtUtils::Packlist::write > +sub write > +{ > + my $orig = shift; > + my $him = $_[0]; > + $him = tied(%$him) || $him; > + > + &$orig; > + > + return if BSDPAN->builds_port; > + > + print "FreeBSD: Registering installation in the package database\n"; > + > + my ($pkg_name,$pkg_comment,$pkg_descr) = gather_pkg_info($him); > + > + my ($ok, $comment_file, $descr_file, $packinglist_file); > + TRY: { > + last TRY unless $pkg_name; > + $comment_file = write_tmp_file($him, $pkg_comment); > + last TRY unless $comment_file; > + my $descr_file = write_tmp_file($him, $pkg_descr); > + last TRY unless $descr_file; > + my @files = sort { $a cmp $b } get_file_list($him); > + my @dirs = sort { length($b) <=> length ($a) } > + get_dir_list($him, @files); > + my @packinglist; > + push @packinglist, "\@name $pkg_name\n", "\@cwd /\n"; > + push @packinglist, "\@comment This package was generated by BSDPAN\n"; > + push @packinglist, "$_\n" for @files; > + push @packinglist, "\@unexec rmdir $_ 2>/dev/null || true\n" for @dirs; > + my $packinglist_file = write_tmp_file($him, join '', @packinglist); > + last TRY unless $packinglist_file; > + my $contents = `/usr/sbin/pkg_create -O -f $packinglist_file -c $comment_file -d $descr_file $pkg_name`; > + unless (($? >> 8) == 0) { > + warn("pkg_create exited with code " . int($? >> 8) . "\n"); > + last TRY; > + } > + my $pkg_db_dir = $ENV{PKG_DBDIR} || "/var/db/pkg"; > + my $pkg_dir = "$pkg_db_dir/$pkg_name"; > + unless (mkdir($pkg_dir, 0777)) { > + warn("Cannot create directory $pkg_dir: $!\n"); > + last TRY; > + } > + write_file($him, "$pkg_dir/+CONTENTS", $contents) or last TRY; > + write_file($him, "$pkg_dir/+COMMENT", $pkg_comment) or last TRY; > + write_file($him, "$pkg_dir/+DESC", $pkg_descr) or last TRY; > + $ok = 1; > + } > + unlink $descr_file if $descr_file; > + unlink $comment_file if $comment_file; > + unlink $packinglist_file if $packinglist_file; > +} > + > +sub write_file > +{ > + my ($him, $pathname, $contents) = @_; > + my $fh = ExtUtils::Packlist::mkfh(); > + unless (open($fh, "> $pathname")) { > + carp("Cannot create file $pathname: $!"); > + return; > + } > + print $fh $contents; > + close($fh); > + return 1; > +} > + > +sub write_tmp_file > +{ > + my ($him, $contents) = @_; > + my $fh = ExtUtils::Packlist::mkfh(); > + my $cnt = 0; > + my $pathname; > + until (defined(fileno($fh)) || $cnt > 20) { > + my $rnd = int(1000000*rand); > + my $file = sprintf("packlist.%06d", $rnd); > + if (exists($ENV{PKG_TMPDIR}) && > + $ENV{PKG_TMPDIR} =~ "^/" && > + -d $ENV{PKG_TMPDIR}) { > + $pathname = "$ENV{PKG_TMPDIR}/$file"; > + sysopen($fh, $pathname, O_WRONLY|O_EXCL|O_CREAT); > + } > + if (!defined(fileno($fh)) && > + exists($ENV{TMPDIR}) && > + $ENV{TMPDIR} =~ "^/" && > + -d $ENV{TMPDIR}) { > + $pathname = "$ENV{TMPDIR}/$file"; > + sysopen($fh, $pathname, O_WRONLY|O_EXCL|O_CREAT); > + } > + if (!defined(fileno($fh)) && > + -d "/var/tmp") { > + $pathname = "/var/tmp/$file"; > + sysopen($fh, $pathname, O_WRONLY|O_EXCL|O_CREAT); > + } > + if (!defined(fileno($fh)) && + -d "/tmp") { > + $pathname = "/tmp/$file"; > + sysopen($fh, $pathname, O_WRONLY|O_EXCL|O_CREAT); > + } > + if (!defined(fileno($fh)) && > + -d "/usr/tmp") { > + $pathname = "/usr/tmp/$file"; > + sysopen($fh, $pathname, O_WRONLY|O_EXCL|O_CREAT); > + } > + $cnt++; > + } > + unless (defined fileno $fh) { > + carp("Can't create temporary file\n"); > + return; > + } > + print $fh $contents; > + close($fh); > + return $pathname; > +} > + > +sub get_file_list > +{ > + my ($him) = @_; > + my @files = ($him->{packfile}); > + > + foreach my $key (keys(%{$him->{data}})) { > + push @files, $key if -f $key; > + } > + > + return @files; > +} > + > +sub get_dir_list > +{ > + my ($him,@files) = @_; > + my %alldirs; > + for my $file (@files) { > + $file =~ s|/[^/]+$||; > + $alldirs{$file}++ if -d $file; > + } > + delete $alldirs{'/'}; > + return keys %alldirs; > +} > + > +# sub BSDPAN::ExtUtils::Packlist::gather_pkg_info > +sub gather_pkg_info > +{ > + my ($him) = @_; > + my ($distname, $version, $main_module) = get_makefile_pieces($him); > + return unless $distname; > + my $pkg_name = "bsdpan-$distname-$version"; > + my ($comment, $descr) = get_description($him,$main_module); > + return ($pkg_name,$comment,$descr); > +} > + > +# sub BSDPAN::ExtUtils::Packlist::get_makefile_pieces > +sub get_makefile_pieces > +{ > + my ($him) = @_; > + my $fh = ExtUtils::Packlist::mkfh(); > + unless (open($fh, "< Makefile")) { > + carp("Can't open file Makefile: $!"); > + return; > + } > + > + my ($distname,$version,$main_module); > + while (<$fh>) { > + /^DISTNAME\s*=\s*(\S+)\s*$/ and $distname = $1; > + /^VERSION\s*=\s*(\S+)\s*$/ and $version = $1; > + /^VERSION_FROM\s*=\s*(\S+)\s*$/ and $main_module = $1; > + } > + > + close($fh); > + > + $main_module = guess_main_module($him) unless defined $main_module; > + > + if (defined $distname && > + defined $version && > + defined $main_module) { > + return ($distname,$version,$main_module); > + } > +} > + > +sub guess_main_module > +{ > + my ($him) = @_; > + my @pm; > + > + foreach my $key (keys(%{$him->{data}})) { > + push @pm, $key if $key =~ /\.pm$/; > + } > + > + if (@pm == 0) { > + return undef; > + } elsif (@pm == 1) { > + return $pm[0]; > + } else { > + return (sort { length($a) <=> length($b) } @pm)[0]; > + } > +} > + > +sub get_description > +{ > + my ($him,$file) = @_; > + > + my $fh = ExtUtils::Packlist::mkfh(); > + unless (open($fh, "< $file")) { > + carp("Can't open file $file: $!"); > + return; > + } > + > + my ($comment, $descr); > + $descr = ''; > + my $state = 'seek-head'; > + while (<$fh>) { > + if (/^=head1\s+(.*)$/) { > + if ($1 eq 'NAME') { > + $state = 'get-comment'; > + } elsif ($1 eq 'DESCRIPTION') { > + $state = 'get-description'; > + } else { > + $state = 'seek-head'; > + } > + next; > + } > + if ($state eq 'get-comment') { > + next if /^$/; > + next if /^=/; > + $comment = $_; > + $state = 'seek-head'; > + } elsif ($state eq 'get-description') { > + next if /^=/; > + next if /^$/ && $descr eq ''; > + if (/^$/) { > + $state = 'seek-head'; > + } else { > + $descr .= $_; > + } > + } > + } > + > + close($fh); > + unless ($comment) { > + print "FreeBSD: Cannot determine short module description\n"; > + $comment = 'Unknown perl module'; > + } > + unless ($descr) { > + print "FreeBSD: Cannot determine module description\n"; > + $descr = 'There is no description for the perl module'; > + } > + > + return ($comment,$descr); > +} > + > +BEGIN { > + override 'write', \&write; > +} > + > +1; > +=head1 NAME > + > +BSDPAN::ExtUtils::Packlist - Override ExtUtils::Packlist functionality > + > +=head1 SYNOPSIS > + > + None > + > +=head1 DESCRIPTION > + > +BSDPAN::ExtUtils::Packlist overrides write() sub of the standard perl > +module ExtUtils::Packlist. > + > +The overridden write() first calls the original write(). Then, > +if the Perl port build is detected, it returns quietly. > + > +If, however, the Perl module being built is not a port, write() > +obtains the list of installed files that ExtUtils::Packlist internally > +maintains. Then it tries to deduce the distname, the version, and the > +name of the main F<.pm> file. Then it scans the F<*.pm> files that > +constite the module, trying to find what to use as the module comment > +(short description) and the description. > + > +After gathering all this information, the overridden write() invokes > +pkg_create(1), hereby registering the module with FreeBSD package > +database. > + > +If any of the above steps is unsuccessful, BSDPAN::ExtUtils::Packlist > +quietly returns, with the result which is equivalent to pre-BSDPAN > +functionality. > + > +=head1 AUTHOR > + > +Anton Berezin, tobez@tobez.org > + > +=head1 SEE ALSO > + > +perl(1), L<BSDPAN(1)>, L<BSDPAN::Override(1)>, pkg_create(1). > + > +=cut > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/BSDPAN/Makefile gnu/usr.bin/perl/BSDPAN/Makefile > --- gnu/usr.bin/perl.before.BSDPAN/BSDPAN/Makefile Thu Jan 1 01:00:00 1970 > +++ gnu/usr.bin/perl/BSDPAN/Makefile Wed Mar 14 00:55:57 2001 > @@ -0,0 +1,18 @@ > +# $FreeBSD$ > +# > +# Doing a make install builds /usr/libdata/perl/BSDPAN > + > +DDIR= ${DESTDIR}/usr/libdata/perl/BSDPAN > + > +NOOBJ= noobj > + > +all clean cleandir depend lint tags: > + > +FILES= BSDPAN.pm BSDPAN/Override.pm ExtUtils/MM_Unix.pm ExtUtils/Packlist.pm > + > +.for file in ${FILES} > +beforeinstall:: > + ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 644 ${file} ${DDIR}/${file} > +.endfor > + > +.include <bsd.prog.mk> > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/Makefile gnu/usr.bin/perl/Makefile > --- gnu/usr.bin/perl.before.BSDPAN/Makefile Tue Mar 13 23:10:33 2001 > +++ gnu/usr.bin/perl/Makefile Tue Mar 13 23:13:52 2001 > @@ -1,6 +1,6 @@ > # $FreeBSD: src/gnu/usr.bin/perl/Makefile,v 1.13 2000/11/20 02:17:31 marcel Exp $ > > -SUBDIR= libperl perl suidperl library pod utils x2p > +SUBDIR= libperl perl suidperl library pod utils x2p BSDPAN > > MAINTAINER=markm@freebsd.org > > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/Makefile.inc gnu/usr.bin/perl/Makefile.inc > --- gnu/usr.bin/perl.before.BSDPAN/Makefile.inc Tue Mar 13 23:10:33 2001 > +++ gnu/usr.bin/perl/Makefile.inc Wed Mar 14 03:25:40 2001 > @@ -87,6 +87,8 @@ > PERL=${MINIPERL} FULLPERL=perl DEFINE=-I${DESTDIR}/usr/include \ > DEFINE=-DPERL_CORE > > +CFLAGS+= '-DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > + > .if defined(PERL_THREADED) && ${PERL_THREADED} == "true" > CFLAGS+= -pthread > THREAD= threads- > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-elf.alpha gnu/usr.bin/perl/libperl/config.SH-elf.alpha > --- gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-elf.alpha Tue Mar 13 23:10:32 2001 > +++ gnu/usr.bin/perl/libperl/config.SH-elf.alpha Wed Mar 14 03:26:44 2001 > @@ -52,7 +52,7 @@ > cc='cc' > cccdlflags='-DPIC -fpic' > ccdlflags=' -Wl,-R/usr/lib' > -ccflags='-fno-strict-aliasing' > +ccflags='-fno-strict-aliasing -DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > ccsymbols='__FreeBSD__=5 __FreeBSD_cc_version=500001 __GNUC_MINOR__=95 __alpha_ev4__=1 __unix=1 __unix__=1 cpu=alpha cpu=ev4 machine=alpha system=FreeBSD system=unix' > cf_by='markm' > cf_email='markm@FreeBSD.org' > @@ -70,7 +70,7 @@ > cpp='cpp' > cpp_stuff='42' > cppccsymbols='__ELF__=1 __GNUC__=2 __alpha=1 __alpha__=1 unix=1' > -cppflags='-fno-strict-aliasing' > +cppflags='-fno-strict-aliasing -DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > cpplast='-' > cppminus='-' > cpprun='cc -E' > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-elf.arm32 gnu/usr.bin/perl/libperl/config.SH-elf.arm32 > --- gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-elf.arm32 Tue Mar 13 23:10:32 2001 > +++ gnu/usr.bin/perl/libperl/config.SH-elf.arm32 Wed Mar 14 03:27:18 2001 > @@ -46,7 +46,7 @@ > cc='cc' > cccdlflags='-DPIC -fpic' > ccdlflags=' -Wl,-R/usr/lib' > -ccflags='' > +ccflags='-DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > ccsymbols='__ELF__=1 __FreeBSD__=4 __FreeBSD_cc_version=400004 __GNUC_MINOR__=95 __GNUC__=2 cpu=arm32 machine=arm32 system=FreeBSD system=unix' > cf_by='markm' > cf_email='markm@FreeBSD.org' > @@ -62,7 +62,7 @@ > cpio='' > cpp='cpp' > cpp_stuff='42' > -cppflags='' > +cppflags='-DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > cpplast='-' > cppminus='-' > cpprun='cc -E' > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-elf.i386 gnu/usr.bin/perl/libperl/config.SH-elf.i386 > --- gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-elf.i386 Tue Mar 13 23:10:32 2001 > +++ gnu/usr.bin/perl/libperl/config.SH-elf.i386 Wed Mar 14 03:27:29 2001 > @@ -52,7 +52,7 @@ > cc='cc' > cccdlflags='-DPIC -fpic' > ccdlflags=' -Wl,-R/usr/lib' > -ccflags='-fno-strict-aliasing' > +ccflags='-fno-strict-aliasing -DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > ccsymbols='__FreeBSD__=5 __FreeBSD_cc_version=500001 __GNUC_MINOR__=95 __i386=1 __i386__=1 __unix=1 __unix__=1 cpu=i386 machine=i386 system=FreeBSD system=unix' > cf_by='markm' > cf_email='markm@FreeBSD.org' > @@ -70,7 +70,7 @@ > cpp='cpp' > cpp_stuff='42' > cppccsymbols='__ELF__=1 __GNUC__=2 i386=1 unix=1' > -cppflags='-fno-strict-aliasing' > +cppflags='-fno-strict-aliasing -DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > cpplast='-' > cppminus='-' > cpprun='cc -E' > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-elf.ia64 gnu/usr.bin/perl/libperl/config.SH-elf.ia64 > --- gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-elf.ia64 Tue Mar 13 23:10:32 2001 > +++ gnu/usr.bin/perl/libperl/config.SH-elf.ia64 Wed Mar 14 03:27:43 2001 > @@ -46,7 +46,7 @@ > cc='cc' > cccdlflags='-DPIC -fpic' > ccdlflags=' -Wl,-R/usr/lib' > -ccflags='' > +ccflags='-DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > ccsymbols='__ELF__=1 __FreeBSD__=4 __FreeBSD_cc_version=400004 __GNUC_MINOR__=95 __GNUC__=2 cpu=ia64 machine=ia64 system=FreeBSD system=unix' > cf_by='markm' > cf_email='markm@FreeBSD.org' > @@ -62,7 +62,7 @@ > cpio='' > cpp='cpp' > cpp_stuff='42' > -cppflags='' > +cppflags='-DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > cpplast='-' > cppminus='-' > cpprun='cc -E' > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-elf.ppc gnu/usr.bin/perl/libperl/config.SH-elf.ppc > --- gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-elf.ppc Tue Mar 13 23:10:32 2001 > +++ gnu/usr.bin/perl/libperl/config.SH-elf.ppc Wed Mar 14 03:27:55 2001 > @@ -46,7 +46,7 @@ > cc='cc' > cccdlflags='-DPIC -fpic' > ccdlflags=' -Wl,-R/usr/lib' > -ccflags='' > +ccflags='-DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > ccsymbols='__ELF__=1 __FreeBSD__=4 __FreeBSD_cc_version=400004 __GNUC_MINOR__=95 __GNUC__=2 cpu=ppc machine=ppc system=FreeBSD system=unix' > cf_by='markm' > cf_email='markm@FreeBSD.org' > @@ -62,7 +62,7 @@ > cpio='' > cpp='cpp' > cpp_stuff='42' > -cppflags='' > +cppflags='-DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > cpplast='-' > cppminus='-' > cpprun='cc -E' > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-elf.sparc gnu/usr.bin/perl/libperl/config.SH-elf.sparc > --- gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-elf.sparc Tue Mar 13 23:10:32 2001 > +++ gnu/usr.bin/perl/libperl/config.SH-elf.sparc Wed Mar 14 03:28:00 2001 > @@ -46,7 +46,7 @@ > cc='cc' > cccdlflags='-DPIC -fpic' > ccdlflags=' -Wl,-R/usr/lib' > -ccflags='' > +ccflags='-DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > ccsymbols='__ELF__=1 __FreeBSD__=4 __FreeBSD_cc_version=400004 __GNUC_MINOR__=95 __GNUC__=2 cpu=sparc machine=sparc system=FreeBSD system=unix' > cf_by='markm' > cf_email='markm@FreeBSD.org' @@ -62,7 +62,7 @@ > cpio='' > cpp='cpp' > cpp_stuff='42' > -cppflags='' > +cppflags='-DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > cpplast='-' > cppminus='-' > cpprun='cc -E' > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-elf.sparc64 gnu/usr.bin/perl/libperl/config.SH-elf.sparc64 > --- gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-elf.sparc64 Tue Mar 13 23:10:32 2001 > +++ gnu/usr.bin/perl/libperl/config.SH-elf.sparc64 Wed Mar 14 03:28:06 2001 > @@ -46,7 +46,7 @@ > cc='cc' > cccdlflags='-DPIC -fpic' > ccdlflags=' -Wl,-R/usr/lib' > -ccflags='' > +ccflags='-DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > ccsymbols='__ELF__=1 __FreeBSD__=4 __FreeBSD_cc_version=400004 __GNUC_MINOR__=95 __GNUC__=2 cpu=sparc64 machine=sparc64 system=FreeBSD system=unix' > cf_by='markm' > cf_email='markm@FreeBSD.org' > @@ -62,7 +62,7 @@ > cpio='' > cpp='cpp' > cpp_stuff='42' > -cppflags='' > +cppflags='-DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > cpplast='-' > cppminus='-' > cpprun='cc -E' > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-threads-elf.alpha gnu/usr.bin/perl/libperl/config.SH-threads-elf.alpha > --- gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-threads-elf.alpha Tue Mar 13 23:10:32 2001 > +++ gnu/usr.bin/perl/libperl/config.SH-threads-elf.alpha Wed Mar 14 03:28:13 2001 > @@ -52,7 +52,7 @@ > cc='cc' > cccdlflags='-DPIC -fpic' > ccdlflags=' -Wl,-R/usr/lib' > -ccflags='-fno-strict-aliasing -pthread' > +ccflags='-fno-strict-aliasing -pthread -DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > ccsymbols='__FreeBSD__=5 __FreeBSD_cc_version=500001 __GNUC_MINOR__=95 __alpha=1 __alpha__=1 __unix=1 __unix__=1 cpu=alpha machine=alpha system=FreeBSD system=unix' > cf_by='markm' > cf_email='markm@FreeBSD.org' > @@ -70,7 +70,7 @@ > cpp='cpp' > cpp_stuff='42' > cppccsymbols='__ELF__=1 __GNUC__=2 __alpha=1 __alpha__=1 unix=1' > -cppflags='-fno-strict-aliasing' > +cppflags='-fno-strict-aliasing -DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > cpplast='-' > cppminus='-' > cpprun='cc -E' > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-threads-elf.arm32 gnu/usr.bin/perl/libperl/config.SH-threads-elf.arm32 > --- gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-threads-elf.arm32 Tue Mar 13 23:10:32 2001 > +++ gnu/usr.bin/perl/libperl/config.SH-threads-elf.arm32 Wed Mar 14 03:28:17 2001 > @@ -46,7 +46,7 @@ > cc='cc' > cccdlflags='-DPIC -fpic' > ccdlflags=' -Wl,-R/usr/lib' > -ccflags='-pthread' > +ccflags='-pthread -DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > ccsymbols='__ELF__=1 __FreeBSD__=4 __FreeBSD_cc_version=400004 __GNUC_MINOR__=95 __GNUC__=2 cpu=arm32 machine=arm32 system=FreeBSD system=unix' > cf_by='markm' > cf_email='markm@FreeBSD.org' > @@ -64,7 +64,7 @@ > cpio='' > cpp='cpp' > cpp_stuff='42' > -cppflags='' > +cppflags='-DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > cpplast='-' > cppminus='-' > cpprun='cc -E' > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-threads-elf.i386 gnu/usr.bin/perl/libperl/config.SH-threads-elf.i386 > --- gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-threads-elf.i386 Tue Mar 13 23:10:32 2001 > +++ gnu/usr.bin/perl/libperl/config.SH-threads-elf.i386 Wed Mar 14 03:28:22 2001 > @@ -52,7 +52,7 @@ > cc='cc' > cccdlflags='-DPIC -fpic' > ccdlflags=' -Wl,-R/usr/lib' > -ccflags='-fno-strict-aliasing -pthread' > +ccflags='-fno-strict-aliasing -pthread -DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > ccsymbols='__FreeBSD__=5 __FreeBSD_cc_version=500001 __GNUC_MINOR__=95 __i386=1 __i386__=1 __unix=1 __unix__=1 cpu=i386 machine=i386 system=FreeBSD system=unix' > cf_by='markm' > cf_email='markm@FreeBSD.org' > @@ -70,7 +70,7 @@ > cpp='cpp' > cpp_stuff='42' > cppccsymbols='__ELF__=1 __GNUC__=2 i386=1 unix=1' > -cppflags='-fno-strict-aliasing' > +cppflags='-fno-strict-aliasing -DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > cpplast='-' > cppminus='-' > cpprun='cc -E' > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-threads-elf.ia64 gnu/usr.bin/perl/libperl/config.SH-threads-elf.ia64 > --- gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-threads-elf.ia64 Tue Mar 13 23:10:32 2001 > +++ gnu/usr.bin/perl/libperl/config.SH-threads-elf.ia64 Wed Mar 14 03:28:27 2001 > @@ -46,7 +46,7 @@ > cc='cc' > cccdlflags='-DPIC -fpic' > ccdlflags=' -Wl,-R/usr/lib' > -ccflags=' -pthread' > +ccflags='-pthread -DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > ccsymbols='__ELF__=1 __FreeBSD__=4 __FreeBSD_cc_version=400004 __GNUC_MINOR__=95 __GNUC__=2 cpu=ia64 machine=ia64 system=FreeBSD system=unix' > cf_by='markm' > cf_email='markm@FreeBSD.org' > @@ -62,7 +62,7 @@ > cpio='' > cpp='cpp' > cpp_stuff='42' > -cppflags='' > +cppflags='-DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > cpplast='-' > cppminus='-' > cpprun='cc -E' > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-threads-elf.ppc gnu/usr.bin/perl/libperl/config.SH-threads-elf.ppc > --- gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-threads-elf.ppc Tue Mar 13 23:10:32 2001 > +++ gnu/usr.bin/perl/libperl/config.SH-threads-elf.ppc Wed Mar 14 03:28:32 2001 > @@ -46,7 +46,7 @@ > cc='cc' > cccdlflags='-DPIC -fpic' > ccdlflags=' -Wl,-R/usr/lib' > -ccflags=' -pthread' > +ccflags='-pthread -DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > ccsymbols='__ELF__=1 __FreeBSD__=4 __FreeBSD_cc_version=400004 __GNUC_MINOR__=95 __GNUC__=2 cpu=ppc machine=ppc system=FreeBSD system=unix' > cf_by='markm' > cf_email='markm@FreeBSD.org' > @@ -62,7 +62,7 @@ > cpio='' > cpp='cpp' > cpp_stuff='42' > -cppflags='' > +cppflags='-DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > cpplast='-' > cppminus='-' > cpprun='cc -E' > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-threads-elf.sparc gnu/usr.bin/perl/libperl/config.SH-threads-elf.sparc > --- gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-threads-elf.sparc Tue Mar 13 23:10:32 2001 > +++ gnu/usr.bin/perl/libperl/config.SH-threads-elf.sparc Wed Mar 14 03:28:39 2001 > @@ -46,7 +46,7 @@ > cc='cc' > cccdlflags='-DPIC -fpic' > ccdlflags=' -Wl,-R/usr/lib' > -ccflags=' -pthread' > +ccflags='-pthread -DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > ccsymbols='__ELF__=1 __FreeBSD__=4 __FreeBSD_cc_version=400004 __GNUC_MINOR__=95 __GNUC__=2 cpu=sparc machine=sparc system=FreeBSD system=unix' > cf_by='markm' > cf_email='markm@FreeBSD.org' > @@ -62,7 +62,7 @@ > cpio='' > cpp='cpp' > cpp_stuff='42' > -cppflags='' > +cppflags='-DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > cpplast='-' > cppminus='-' > cpprun='cc -E' > diff -u -ruN gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-threads-elf.sparc64 gnu/usr.bin/perl/libperl/config.SH-threads-elf.sparc64 > --- gnu/usr.bin/perl.before.BSDPAN/libperl/config.SH-threads-elf.sparc64 Tue Mar 13 23:10:32 2001 > +++ gnu/usr.bin/perl/libperl/config.SH-threads-elf.sparc64 Wed Mar 14 03:28:44 2001 > @@ -46,7 +46,7 @@ > cc='cc' > cccdlflags='-DPIC -fpic' > ccdlflags=' -Wl,-R/usr/lib' > -ccflags=' -pthread' > +ccflags='-pthread -DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > ccsymbols='__ELF__=1 __FreeBSD__=4 __FreeBSD_cc_version=400004 __GNUC_MINOR__=95 __GNUC__=2 cpu=sparc64 machine=sparc64 system=FreeBSD system=unix' > cf_by='markm' > cf_email='markm@FreeBSD.org' > @@ -62,7 +62,7 @@ > cpio='' > cpp='cpp' > cpp_stuff='42' > -cppflags='' > +cppflags='-DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"' > cpplast='-' > cppminus='-' > cpprun='cc -E' > -- Mark Murray Warning: this .sig is umop ap!sdn To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200103140556.f2E5uef01764>