---
#description_paragraphs: 3
#no_testing: broken upstream
#patches:
#  foo.patch: -p1
#  bar.patch:
sources:
 - fatunpack
preamble: |-
 # Run-time:
 # Nothing special. The tests are very poor. But we run perl -c at built-time
 # to check for correct unpacking. So we need non-optional run-time
 # dependencies at build-time too:
 BuildRequires:  perl(Config)
 BuildRequires:  perl(aliased)
 BuildRequires:  perl(constant)
 # CPAN::DistnameInfo not needed for compilation
 # CPAN::Meta not needed for copmilation
 # CPAN::Meta::Check not needed for compilation
 # CPAN::Meta::Prereqs not needed for compilation
 BuildRequires:  perl(CPAN::Meta::Requirements)
 # CPAN::Meta::YAML not needed for compilation
 BuildRequires:  perl(Cwd)
 # Digest::SHA not needed for compilation
 # Dumpvalue not needed for compilation
 # ExtUtils::Manifest not needed for compilation
 BuildRequires:  perl(File::Basename)
 BuildRequires:  perl(File::Copy)
 BuildRequires:  perl(File::Find)
 # File::pushd not needed for compilation
 BuildRequires:  perl(File::Temp)
 # HTTP::Tiny not needed for compilation
 # JSON::PP not needed for compilation
 # local::lib not needed for compilation
 # Module::CoreList not needed for compilation
 # Module::CPANfile not needed for compilation
 # Module::Metadata not needed for compilation
 BuildRequires:  perl(Parse::CPAN::Meta)
 # POSIX not needed for compilation
 # Safe not needed for compilation
 BuildRequires:  perl(String::ShellQuote)
 BuildRequires:  perl(Symbol)
 BuildRequires:  perl(version)
 # version::vpp not needed for compilation
 BuildRequires:  perl(warnings::register)
 # YAML not needed for compilation
 # Tests:
 BuildRequires:  perl(Test::More)
 BuildRequires:  perl(Pod::Select)
 # Current dependency generator cannot parse compressed code. Use PPI to find
 # them, and list them manually:
 # Archive::Tar is optional
 # Archive::Zip is optional
 # Compress::Zlib is optional
 Requires:       perl(CPAN::DistnameInfo)
 Requires:       perl(CPAN::Meta)
 Requires:       perl(CPAN::Meta::Check)
 Requires:       perl(CPAN::Meta::Prereqs)
 Requires:       perl(CPAN::Meta::YAML)
 Requires:       perl(Digest::SHA)
 Requires:       perl(ExtUtils::Install) >= 1.46
 Requires:       perl(ExtUtils::MakeMaker) >= 6.31
 Requires:       perl(ExtUtils::Manifest)
 # File::HomeDir is optional
 Requires:       perl(File::pushd)
 # HTTP getter by LWP::UserAgent or wget or curl or HTTP::Tiny
 Requires:       perl(HTTP::Tiny)
 Requires:       perl(Parse::PMFile)
 Requires:       perl(local::lib)
 # LWP::Protocol::https is optional
 # LWP::UserAgent is optional
 Requires:       perl(Module::Build)
 Requires:       perl(Module::CPANfile)
 Requires:       perl(Module::CoreList)
 Requires:       perl(Module::Metadata)
 # Module::Signature is optional
 Requires:       perl(String::ShellQuote)
 # Win32 not used
 Requires:       perl(YAML)
 
 Provides:       cpanm = %{version}-%{release}
 Obsoletes:      cpanm <= 1.5010

post_prep: |-
  # Unbundle fat-packed modules
  podselect lib/App/cpanminus.pm > lib/App/cpanminus.pod

  # https://bugzilla.suse.com/show_bug.cgi?id=1229819 CVE-2024-45321 bsc#1229819
  perl -pi -E 's{http://(cpan\.cpantesters\.org|www\.cpan\.org|backpan\.perl\.org|cpan\.metacpan\.org|fastapi\.metacpan\.org|cpanmetadb\.plackperl\.org)}{https://$2}g' bin/cpanm

  for F in bin/cpanm lib/App/cpanminus/fatscript.pm; do
     perl %{SOURCE1} --libdir lib --filter '^App/cpanminus' "$F" > "${F}.stripped"
     perl -c -Ilib "${F}.stripped"
     mv "${F}.stripped" "$F"
  done
#license: SUSE-NonFree
