From 3d1c703562f978f769493853205250a65265b080 Mon Sep 17 00:00:00 2001 From: Timothy Legge Date: Sat, 29 Feb 2020 23:53:29 +0000 Subject: apkbuild-cpan.in: fixes #9990, #9991 and #9992 --- apkbuild-cpan.in | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) mode change 100644 => 100755 apkbuild-cpan.in diff --git a/apkbuild-cpan.in b/apkbuild-cpan.in old mode 100644 new mode 100755 index 3757c57..c023deb --- a/apkbuild-cpan.in +++ b/apkbuild-cpan.in @@ -25,7 +25,7 @@ my $package_mappings = { }; our $packager = ""; my $template = <<'EOF'; -# Automatically generated by apkbuild-cpan, template 2 +# Automatically generated by apkbuild-cpan, template 3 [% authors %] pkgname=[% pkgname %] _pkgreal=[% pkgreal %] @@ -35,12 +35,9 @@ pkgdesc="Perl module for [% pkgreal %]" url="https://metacpan.org/release/[% pkgreal %]/" arch="noarch" license="GPL-1.0-or-later OR Artistic-1.0-Perl" -cpandepends="" -cpanmakedepends="" -cpancheckdepends="" -depends="$cpandepends" -makedepends="perl-dev $cpanmakedepends" -checkdepends="$cpancheckdepends" +depends="" +makedepends="perl-dev" +checkdepends="" subpackages="$pkgname-doc" source="[% source %]" builddir="$srcdir/$_pkgreal-$pkgver" @@ -140,17 +137,17 @@ sub parse_deps { $response->is_success or die $response->status_line; my $moddata = $json->decode($response->decoded_content); $moddata->{error} and die "Error trying to locate $module: $moddata->{error}\n"; - $distfiles->{$moddata->{distribution}} = $moddata; + $distfiles->{$module} = $moddata->{distribution}; } # map package names to alpine packages foreach ( keys %{ $distfiles } ) { - $response = $ua->get("https://fastapi.metacpan.org/release/$_"); + $response = $ua->get("https://fastapi.metacpan.org/module/$_"); $response->is_success or die $response->status_line; my $distdata = $json->decode($response->decoded_content); $distdata->{error} and die "Error trying to locate $_: $distdata->{error}\n"; - my $pkgname = map_cpan_to_apk($distdata->{name}); + my $pkgname = map_cpan_to_apk($distdata->{distribution}); $deps .= "$pkgname "; } $deps =~ s/\h+/ /g; @@ -258,15 +255,15 @@ sub do_depends { ); say "CPAN build deps: $makedeps"; say "CPAN requires: " . parse_deps($meta->effective_prereqs->requirements_for('configure', 'requires'), $meta->effective_prereqs->requirements_for('build', 'requires')); - say "CPAN recommds: " . parse_deps($meta->effective_prereqs->requirements_for('configure', 'recommends'), $meta->effective_prereqs->requirements_for('build', 'recommends')); + say "CPAN recommends: " . parse_deps($meta->effective_prereqs->requirements_for('configure', 'recommends'), $meta->effective_prereqs->requirements_for('build', 'recommends')); my $checkdeps = parse_deps($meta->effective_prereqs->requirements_for('test', 'requires'), $meta->effective_prereqs->requirements_for('test', 'recommends')); - say "CPAN check deps: $makedeps"; + say "CPAN check deps: $checkdeps"; my $text = read_file "APKBUILD"; if ($abstract && $abstract ne 'unknown') { $text =~ s/^pkgdesc=\"([^\"]*)\"$/pkgdesc=\"$abstract\"/mg or - die "Can't find cpandepends line in APKBUILD"; + die "Can't find pkgdesc line in APKBUILD"; } if (length(`find $metaprefix -name '*.xs'`)) { $text =~ s/^arch=\"([^\"]*)\"$/arch="all"/mg or @@ -276,12 +273,12 @@ sub do_depends { $text =~ s/^license=\"([^\"]*)\"$/license=\"$license\"/mg or die "Can't find license line in APKBUILD"; } - $text =~ s/^cpandepends=\"([^\"]*)\"$/cpandepends=\"$deps\"/mg or - die "Can't find cpandepends line in APKBUILD"; - $text =~ s/^cpanmakedepends=\"([^\"]*)\"$/cpanmakedepends=\"$makedeps\"/mg or - die "Can't find cpanmakedepends line in APKBUILD"; - $text =~ s/^cpancheckdepends=\"([^\"]*)\"$/cpancheckdepends=\"$checkdeps\"/mg or - die "Can't find cpancheckdepends line in APKBUILD"; + $text =~ s/^depends=\"([^\"]*)\"$/depends=\"$deps\"/mg or + die "Can't find depends line in APKBUILD"; + $text =~ s/^makedepends=\"([^\"]*)\"$/makedepends=\"perl-dev $makedeps\"/mg or + die "Can't find makedepends line in APKBUILD"; + $text =~ s/^checkdepends=\"([^\"]*)\"$/checkdepends=\"$checkdeps\"/mg or + die "Can't find checkdepends line in APKBUILD"; open my $fh, '>', "APKBUILD" or die; print $fh $text; -- cgit v1.2.3