ports/142110: [PATCH] lang/perl5.10 / BSDPAN-5.10.1_20090303: P5PORTER mode update

Alex Deiter alex.deiter at gmail.com
Mon Dec 28 21:20:03 UTC 2009


>Number:         142110
>Category:       ports
>Synopsis:       [PATCH] lang/perl5.10 / BSDPAN-5.10.1_20090303: P5PORTER mode update
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Dec 28 21:20:02 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Alex Deiter
>Release:        9.0-CURRENT
>Organization:
N/A
>Environment:
FreeBSD blackbox.deiter.net.ru 9.0-CURRENT FreeBSD 9.0-CURRENT #0: Sat Dec 19 19:24:58 MSK 2009     root at blackbox.deiter.net.ru:/usr/obj/usr/src/sys/BLACKBOX  i386

>Description:
Please review patch for lang/perl5.10 and BSDPAN-5.10.1_20090303: P5PORTER mode update:

1. handling man1 and man3 correctly
2. cut $PREFIX from bin files
3. creates a list of dependencies, using the names and versions of packages:

BUILD_DEPENDS=  p5-Algorithm-Diff>=1.1901:${PORTSDIR}/devel/p5-Algorithm-Diff \
                p5-Algorithm-Merge>=0:${PORTSDIR}/devel/p5-Algorithm-Merge

instead of:

BUILD_DEPENDS=  {SITE_PERL}/IO/String.pm:${PORTSDIR}/devel/p5-IO-String \
                ${SITE_PERL}/Text/EtText.pm:${PORTSDIR}/textproc/p5-Text-EtText


Example Makefile.skeleton:

# New ports collection makefile for:	XXX/p5-[% portname %]
# Date created:				[% today %]
# Whom:					Alex Deiter <Alex.Deiter at Gmail.COM>
#
# $FreeBSD$
#
 
PORTNAME=	[% portname %]
PORTVERSION=	[% portversion %]
CATEGORIES=	XXX perl5
MASTER_SITES=	${MASTER_SITE_PERL_CPAN}
MASTER_SITE_SUBDIR=	[% subdir %]
PKGNAMEPREFIX=	p5-
 
MAINTAINER=	Alex.Deiter at Gmail.COM
COMMENT=	[% comment %]
 
[% IF has_dependencies %]BUILD_DEPENDS=	[% freebsd_dependencies %]
RUN_DEPENDS=	${BUILD_DEPENDS}
[% END %]

PERL_CONFIGURE=	yes
 
[% IF has_man1 %]MAN1=	[% man1 %]
[% END %]

[% IF has_man3 %]MAN3=	[% man3 %]
[% END %]
 
.include <bsd.port.mk>

>How-To-Repeat:

>Fix:


Patch attached with submission follows:

--- ExtUtils/Packlist.pm.orig	2009-12-28 23:28:34.394379548 +0300
+++ ExtUtils/Packlist.pm	2009-12-28 23:34:26.781293701 +0300
@@ -13,6 +13,7 @@
 #
 use strict;
 use Carp;
+use Config;
 use Fcntl;
 use BSDPAN;
 use BSDPAN::Override;
@@ -332,16 +333,19 @@
 {
 	my ($C) = @_;
 
-	my (@files, @man3, @dirs);
+	my (@files, @man1, @man3, @dirs);
 
 	# massage files
 	for my $file (@{$C->{files}}) {
 		$_ = $file;
-		if (m!/man/man3/([^/]+\.3)$!) {
+		if (m!/man/man1/([^/]+\.1)$!) {
+			push @man1, $1;
+		} elsif (m!/man/man3/([^/]+\.3)$!) {
 			push @man3, $1;
 		} else {
 			s|^.*/perl5/site_perl/[\d.]+/|%%SITE_PERL%%/|;
 			s|(_PERL%%)/mach/|$1/%%PERL_ARCH%%/|;
+			s|^$Config{prefix}\/*||;
 			push @files, $_;
 		}
 	}
@@ -349,7 +353,7 @@
 	# massage dirs
 	for my $dir (@{$C->{dirs}}) {
 		$_ = $dir;
-		if (m!/man/man3$!) {
+		if (m!/man/man[13]$!) {
 			# skip
 		} else {
 			s|^.*/perl5/site_perl/[\d.]+/|%%SITE_PERL%%/|;
@@ -384,6 +388,9 @@
 	require Template;
 	my $tt = Template->new(ABSOLUTE => 1);
 	my $tt_vars = {%$C};
+	$tt_vars->{has_man1} = @man1 > 0;
+	$tt_vars->{has_man3} = @man3 > 0;
+	$tt_vars->{man1} = join " \\\n\t", sort @man1;
 	$tt_vars->{man3} = join " \\\n\t", sort @man3;
 	my $output = "";
 	$tt->process("$ENV{P5PORTER}/Makefile.skeleton", $tt_vars, \$output) or $output = "ERROR: " . $tt->error;
--- ExtUtils/MakeMaker.pm.orig	2009-12-28 23:11:34.733069989 +0300
+++ ExtUtils/MakeMaker.pm	2009-12-28 23:13:45.647510916 +0300
@@ -15,6 +15,7 @@
 use Carp;
 use BSDPAN;
 use BSDPAN::Override;
+use File::Basename;
 
 sub WriteMakefile
 {
@@ -65,6 +66,7 @@
 					print "BSDPAN: Found $req in base perl\n";
 				} else {
 					my $cand = $req;
+					my $req_ver = ${$p{PREREQ_PM}}{$req};
 					$cand =~ s/::.*$//;
 					my @cand = `ls $PORTSDIR/*/p5-$cand*/pkg-plist`;
 					my @ports;
@@ -105,9 +107,10 @@
 					while (@ports) {
 						my $p = shift @ports;
 						my $f = shift @files;
-						push @{$C->{dependencies}}, "$f:$p";
+						my $pn = basename $p;
+						push @{$C->{dependencies}}, "$pn>=$req_ver:$p";
 					}
-					$C->{freebsd_dependencies} = join " \\\n\t\t", @{$C->{dependencies}};
+					$C->{freebsd_dependencies} = join " \\\n\t\t", sort @{$C->{dependencies}};
 				}
 			}
 		}


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list