aboutsummaryrefslogtreecommitdiffstats
path: root/community/perl-app-cpanminus/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/perl-app-cpanminus/APKBUILD')
-rw-r--r--community/perl-app-cpanminus/APKBUILD83
1 files changed, 65 insertions, 18 deletions
diff --git a/community/perl-app-cpanminus/APKBUILD b/community/perl-app-cpanminus/APKBUILD
index a5bb62e6be3..4863079b7bb 100644
--- a/community/perl-app-cpanminus/APKBUILD
+++ b/community/perl-app-cpanminus/APKBUILD
@@ -1,32 +1,70 @@
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: rubicon <rubicon@mailo.com>
pkgname=perl-app-cpanminus
-_pkgname=App-cpanminus
-pkgver=1.7044
-pkgrel=1
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=App-cpanminus
+pkgver=1.7047
+pkgrel=0
pkgdesc="Get, unpack, build and install modules from CPAN"
-url="https://metacpan.org/release/App-cpanminus"
+url="https://metacpan.org/release/App-cpanminus/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl"
-makedepends="perl-dev"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+depends="perl wget"
+options="net" # needed to ensure cpanminus is able to access CPAN
+subpackages="$pkgname-doc $pkgname-https"
+source="https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-$pkgver.tar.gz
+ app-cpanminus-https.patch
+ busybox-wget-compat.patch
+ cpanms
+ "
+builddir="$srcdir/$_pkgreal-$pkgver"
+_blibdir="$builddir/blib"
+
+# secfixes:
+# 1.7045-r0:
+# - CVE-2020-16154
prepare() {
- default_prepare
+ install -Dvm644 lib/App/cpanminus.pm \
+ lib/App/cpanminus/https.pm
+ install -Dvm644 lib/App/cpanminus/fatscript.pm \
+ -t lib/App/cpanminus/https/
- CFLAGS=$(_ccflags) PERL_MM_USE_DEFAULT=1 \
- perl Makefile.PL INSTALLDIRS=vendor
+ default_prepare
}
build() {
- CFLAGS=$(_ccflags) make
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+
+ # Generate manpage for cpanms
+ pod2man -u "$srcdir"/cpanms "$builddir"/cpanms.1
+
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
+
+ install -Dvm755 "$srcdir"/cpanms -t "$_blibdir"/script/
+ install -Dvm644 "$builddir"/cpanms.1 -t "$_blibdir"/man1/
}
check() {
- CFLAGS=$(_ccflags) make test
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+
+ msg "Testing cpanm with GNU wget"
+ perl -I "$_blibdir"/lib \
+ "$_blibdir"/script/cpanm \
+ --verbose --no-lwp \
+ --from https://cpan.metacpan.org \
+ --showdeps App::cpanminus
+
+ msg "Testing cpanms with Busybox wget"
+ ln -sv "$(which busybox)" "$srcdir"/wget
+ export PATH="$srcdir:$PATH"
+ perl -I "$_blibdir"/lib \
+ "$_blibdir"/script/cpanms \
+ --verbose --no-lwp \
+ --showdeps App::cpanminus
}
package() {
@@ -34,8 +72,17 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-_ccflags() {
- perl -MConfig -E 'say $Config{ccflags}'
+https() {
+ pkgdesc="$pkgdesc via HTTPS"
+ depends="perl ssl_client ca-certificates-bundle"
+
+ amove usr/bin/cpanms
+ amove usr/share/perl5/vendor_perl/App/cpanminus/https*
}
-sha512sums="85e88de8fbefabdfd84fe8aeaa8294d58d63e27276cd6d8b8dfc5dc4cd6c30c12f5859f30e4930842d6d06af50c88d71358dee49c93821234c811aa39de822d7 App-cpanminus-1.7044.tar.gz"
+sha512sums="
+c58b58773b5cd06f346228af46136beffcf07cf49dd51c6d914e2fe4c2a592b5c94901510da8c7ff55795e6beb25bf5344ac798d817ab0a1f2450ff75cbaa17d App-cpanminus-1.7047.tar.gz
+947530e269342427580be2f5700c6a86edbd8c5b51e54a1fb9244fe57f27e292e77d7535b7199a5f5e2d0406a25c7a567d7fef8e0fe772bed23d9b62cbb1a8c8 app-cpanminus-https.patch
+ccdc214d914197f5336c93faa0e9db12b62c026c3fee5e699a2cec7ea7a6d14f2becb9d8777f165de18200c50d85109bc14f83539d52e4dd8bca45b072097f81 busybox-wget-compat.patch
+f5bddb41b2192b43ddf8565a7ff9549ae8f8c9779c1fd36a80010dae9b130d203c9c66207c0045f78140167c3384d62c534a7e05849a912819d0d50c5f174327 cpanms
+"