summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/genpkg10
-rwxr-xr-xlib/metas/perl14
-rwxr-xr-xlib/metas/perl.d/perl-dist31
-rwxr-xr-xlib/templ/pbfields12
-rw-r--r--tweaks/perl-anyevent9
-rw-r--r--tweaks/perl-guard1
-rw-r--r--tweaks/perl-package-stash1
7 files changed, 45 insertions, 33 deletions
diff --git a/bin/genpkg b/bin/genpkg
index afd1f49..e17b984 100755
--- a/bin/genpkg
+++ b/bin/genpkg
@@ -40,15 +40,11 @@ do
METABIN=$libd/metas PKGVAR=$vard makepkgmeta "$pkg" >PKGMETA
case $? in
- 1) cd ..
- rm -r "$pkgd/$pkg"
- echo "$prog: aborting." 1>&2
- exit 1
+ 0) echo "Generated $pkgd/$pkg/PKGMETA" ;;
+ *) exit $?
esac
- echo "Generated $pkgd/$pkg/PKGMETA"
-
- twk=$libd/tweakd/$pkg
+ twk=$tweakd/$pkg
if [ -f "$twk" -a -r "$twk" ]
then
if ! tweakmeta >PKGMETA.new <$twk
diff --git a/lib/metas/perl b/lib/metas/perl
index 4d310a6..961084d 100755
--- a/lib/metas/perl
+++ b/lib/metas/perl
@@ -7,7 +7,8 @@ use File::Fetch;
use IO::Handle; # for autoflush
use Cwd;
-my $PROG = 'metas/perl';
+my $PROG = 'perl';
+my %BADNAMES = ('perl-libwww' => 'libwww-perl');
sub err
{
@@ -65,12 +66,11 @@ sub fetchdist
sub main
{
- my $pkg = shift or die "Usage: $PROG [package name]\n";
- my $dist = $pkg;
+ my $dist = shift or die "Usage: $PROG [package name]\n";
- my $forcechk;
- if($dist =~ s/^perl-// == 0){
- $forcechk = 1;
+ if($BADNAMES{$dist}){
+ $dist = $BADNAMES{$dist};
+ }elsif($dist =~ s/^perl-// == 0){
$dist = "app-$dist";
}
@@ -94,7 +94,7 @@ http://search.cpan.org/CPAN/authors/id/$cpath
END_META
- my $file = $cpath; $file =~ s{^.*/}{};
+ my $file = $cpath; $file =~ s{.*/}{};
system('perl-dist', $file);
return $?;
}
diff --git a/lib/metas/perl.d/perl-dist b/lib/metas/perl.d/perl-dist
index 36a7b60..3259fd8 100755
--- a/lib/metas/perl.d/perl-dist
+++ b/lib/metas/perl.d/perl-dist
@@ -48,7 +48,7 @@ sub dist_pkgname
# Package names should be lowercase and consist of alphanumeric
# characters only (and hyphens!)...
- $distname = lc($distname);
+ $distname = lc($distname);
$distname =~ tr/_+/--/;
$distname =~ tr/-a-z0-9//cd; # Delete all other chars
$distname =~ tr/-/-/s;
@@ -103,7 +103,7 @@ sub _merge
MERGE_LOOP:
while(my ($pkg, $ver) = each(%$right_deps)) {
if($left_deps->{$pkg}) {
- my $leftver = version->parse($left_deps->{$pkg});
+ my $leftver = version->parse($left_deps->{$pkg});
my $rightver = version->parse($ver);
next MERGE_LOOP if $leftver > $rightver;
}
@@ -122,8 +122,8 @@ sub _mergedups
for my $name (keys %$left) {
my $rver = delete($right->{$name}) or next;
my $lver = $left->{$name};
- my $lvo = ($lver ? version->parse($lver) : 0);
- my $rvo = ($rver ? version->parse($rver) : 0);
+ my $lvo = ($lver ? version->parse($lver) : 0);
+ my $rvo = ($rver ? version->parse($rver) : 0);
$left->{$name} = ($lvo > $rvo ? $lvo : $rvo);
}
@@ -174,14 +174,19 @@ sub _reqs2deps
my ($prereqs) = @_;
my (@mods, %pkgdeps);
- CPAN_DEP_LOOP:
+ # Filter out deps on 'perl' and any core modules that we can.
while(my ($name, $ver) = each(%$prereqs)) {
- # Sometimes a perl version is given as a prerequisite
+ my $cver = $Module::CoreList::version{$]}{$name};
if($name eq 'perl') {
$pkgdeps{'perl'} = _perldepver($ver);
- next CPAN_DEP_LOOP;
+ }elsif($cver && !$ver
+ || version->parse($ver) > version->parse($cver)){
+ # Only add deps for core modules if we need a higher
+ # version than what is in the core for our perl interpreter.
+ ;
+ }else{
+ push @mods, $name;
}
- push @mods, $name;
}
my %dists = _distsofmods(@mods);
@@ -343,7 +348,7 @@ use Digest::SHA ();
sub main
{
my $distpath = shift() or die "Usage: $PROG [path to cpan dist file]\n";
- my $dir = dirname($distpath);
+ my $dir = dirname($distpath);
my $file = basename($distpath);
my $info = distinfo($file);
@@ -352,7 +357,7 @@ sub main
my $meta = loadmeta($dir);
my $desc = $meta->{'abstract'};
- if(!$desc || $desc eq '~') {
+ if(!$desc || $desc eq '~' || $desc eq 'unknown') {
$meta->{'abstract'} = distdesc($dir, $info->{'mod'});
}
@@ -453,9 +458,9 @@ sub loadmeta
my $meta = do { local $/; <$metafh> };
close($metafh);
- $meta = ($metaext eq 'json' ? decode_json($meta) :
- $metaext eq 'yml' ? YAML::XS::Load($meta) :
- die "internal error: unknown \$metaext: $metaext");
+ $meta = ($metaext eq 'json' ? decode_json($meta) :
+ $metaext eq 'yml' ? YAML::XS::Load($meta) :
+ die "internal error: unknown \$metaext: $metaext");
upgrademeta($meta);
return $meta;
diff --git a/lib/templ/pbfields b/lib/templ/pbfields
index 247b18c..5e7844c 100755
--- a/lib/templ/pbfields
+++ b/lib/templ/pbfields
@@ -29,6 +29,8 @@ $1 == "pkgdesc" {
$2 = sprintf("\"%s\"", $2)
}
+$1 == "pkgverfmt" { pkgverfmt = $2 }
+
strfield[$1] { output[$1] = $2 }
arrfield[$1] {
@@ -36,15 +38,21 @@ arrfield[$1] {
}
END {
+ if(pkgverfmt){
+ output["pkgver"] = sprintf(pkgverfmt, output["pkgver"])
+ }
+
if(!maintainer && !packager) { packager = "Anonymous" }
if(maintainer) print "# Maintainer: " maintainer
else if(packager) print "# Packager: " packager
print ""
OFS = "="; ORS = "\n";
- for(i=1; i<=max; i++) {
+ for(i=1; i<=max; i++){
name = fields[i]
- if(name in output) print name, output[name]
+ if(name in output){
+ print name, output[name]
+ }
}
}
diff --git a/tweaks/perl-anyevent b/tweaks/perl-anyevent
index 8eea46d..2cbf10c 100644
--- a/tweaks/perl-anyevent
+++ b/tweaks/perl-anyevent
@@ -1,6 +1,7 @@
-! perl-cpan AnyEvent
-+ optdepends perl-async-interrupt: Faster signal handling for some event loops.
++ optdepends perl-async-interrupt: signal handling for other event loops
++ optdepends perl-net-ssleay: TLS/SSL connections with AnyEvent::Handle
++ optdepends perl-json-xs: send or receive JSON with AnyEvent::Handle
+ depends perl-ev>=4.00
+ depends perl-guard>=1.02
-+ depends perl-json-xs>=2.2
-+ depends perl-net-ssleay>=1.33
++ depends perl-async-interrupt>=1.0
+= pkgverfmt %.02f
diff --git a/tweaks/perl-guard b/tweaks/perl-guard
new file mode 100644
index 0000000..1fe8888
--- /dev/null
+++ b/tweaks/perl-guard
@@ -0,0 +1 @@
+= license custom:unknown
diff --git a/tweaks/perl-package-stash b/tweaks/perl-package-stash
new file mode 100644
index 0000000..fd218f7
--- /dev/null
+++ b/tweaks/perl-package-stash
@@ -0,0 +1 @@
++ depends perl-package-stash-xs>=0.24