# Maintainer: Florian Pritz <bluewind@xinu.at>

pkgname=cpanminus
pkgver=1.7048
pkgrel=2
pkgdesc='get, unpack, build and install modules from CPAN'
arch=(any)
license=(PerlArtistic GPL)
options=(!emptydirs)
depends=('perl>=5.8.1' curl)
provides=("perl-app-cpanminus=$pkgver")
url=https://metacpan.org/release/App-cpanminus
source=("https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-$pkgver.tar.gz")
md5sums=('bec3cf07e8d184b0814f89bae8ef95f2')
sha512sums=('71cd7c494ede9e7759ac4ddaf7ad922313a3ec96bee654600bf494cc9188a44a3ae398bc5f5e4fe2e6ee13df740fc54ed9f789f6098618ea56ed241fc39813d5')
_ddir="App-cpanminus-$pkgver"

prepare()
(
  cd "$srcdir/$_ddir"

  # Patch for CVE-2024-45321
  # https://security.metacpan.org/2024/08/26/cpanminus-downloads-code-using-insecure-http.html
  #
  /usr/bin/perl -pi -E \
    's{http://(www\.cpan\.org|backpan\.perl\.org|cpan\.metacpan\.org|fastapi\.metacpan\.org|cpanmetadb\.plackperl\.org)}{https://$1}g' \
    bin/cpanm

  # Don't use LWP::UserAgent. It will fail if LWP::Protocol::https is not
  # installed. This makes cpanm use curl instead
  # https://github.com/Perl/docker-perl/issues/169
  #
  /usr/bin/perl -pi -E 's{try_lwp=>1}{try_lwp=>0}g' bin/cpanm
)

build()
(
  cd "$srcdir/$_ddir"
  export PERL_MM_USE_DEFAULT=1 PERL_AUTOINSTALL=--skipdeps
  unset PERL5LIB PERL_MM_OPT
  /usr/bin/perl Makefile.PL
  make
)

check()
(
  cd "$srcdir/$_ddir"
  export PERL_MM_USE_DEFAULT=1
  unset PERL5LIB
  make test
)

package()
(
  cd "$srcdir/$_ddir"
  make install INSTALLDIRS=vendor DESTDIR="$pkgdir"
)

# Local Variables:
# mode: shell-script
# sh-basic-offset: 2
# End:
# vim:set ts=2 sw=2 et:
