apkbuild-cpan.in: fixes #9990, #9991 and #9992

This commit is contained in:
Timothy Legge 2020-02-29 23:53:29 +00:00
parent 7d75f85847
commit 3d1c703562
1 changed files with 16 additions and 19 deletions

35
apkbuild-cpan.in Normal file → Executable file
View File

@ -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;