#!/usr/bin/bash
# JOBoRun		: Jwm OpenBox Obarun RUNit
# Maintainer		: Joe Bo Run <joborun@disroot.org>
# PkgSource		: url="https://gittea.disroot.org/joborun-pkg/jobcore/$pkgname"
#-----------------------------------------| DESCRIPTION |---------------------------------------

pkgname=perl
pkgver=5.36.0
_baseversion="${pkgver%.*}"
pkgrel=01
pkgdesc="A highly capable, feature-rich programming language"
arch=(x86_64)
groups=( jobbot )
url="https://www.perl.org"
depends=('gdbm>=1.17' 'db' 'glibc' 'libxcrypt' 'libcrypt.so')
checkdepends=('procps-ng')
# NOTE: This array is automatically generated by `./patchprov`.
#       If you want to add entries, do so in the next array.
provides=('perl-archive-tar=2.40'
          'perl-attribute-handlers=1.02'
          'perl-autodie=2.34'
          'perl-autoloader=5.74'
          'perl-autouse=1.11'
          'perl-base=2.27'
          'perl-bignum=0.65'
          'perl-carp=1.52'
          'perl-compress-raw-bzip2=2.103'
          'perl-compress-raw-zlib=2.105'
          'perl-config-perl-v=0.33'
          'perl-constant=1.33'
          'perl-cpan-meta-requirements=2.140'
          'perl-cpan-meta-yaml=0.018'
          'perl-cpan-meta=2.150010'
          'perl-cpan=2.33'
          'perl-data-dumper=2.184'
          'perl-db_file=1.857'
          'perl-devel-ppport=3.68'
          'perl-devel-selfstubber=1.06'
          'perl-digest-md5=2.58'
          'perl-digest-sha=6.02'
          'perl-digest=1.20'
          'perl-dumpvalue=1.21'
          'perl-encode=3.17'
          'perl-encoding-warnings=0.13'
          'perl-env=1.05'
          'perl-experimental=0.028'
          'perl-exporter=5.77'
          'perl-extutils-cbuilder=0.280236'
          'perl-extutils-constant=0.25'
          'perl-extutils-install=2.20'
          'perl-extutils-makemaker=7.64'
          'perl-extutils-manifest=1.73'
          'perl-extutils-parsexs=3.45'
          'perl-extutils-pl2bat=0.004'
          'perl-file-fetch=1.04'
          'perl-file-path=2.18'
          'perl-file-temp=0.2311'
          'perl-filter-simple=0.96'
          'perl-filter-util-call=1.60'
          'perl-findbin=1.53'
          'perl-getopt-long=2.52'
          'perl-http-tiny=0.080'
          'perl-i18n-collate=1.02'
          'perl-i18n-langtags=0.45'
          'perl-if=0.0610'
          'perl-io-compress=2.106'
          'perl-io-socket-ip=0.41'
          'perl-io-zlib=1.11'
          'perl-io=1.50'
          'perl-ipc-cmd=1.04'
          'perl-ipc-sysv=2.09'
          'perl-json-pp=4.07'
          'perl-lib=0.65'
          'perl-libnet=3.13'
          'perl-locale-maketext-simple=0.21_01'
          'perl-locale-maketext=1.31'
          'perl-math-bigint-fastcalc=0.5012'
          'perl-math-bigint=1.999830'
          'perl-math-bigrat=0.2621'
          'perl-math-complex=1.5902'
          'perl-memoize=1.03_01'
          'perl-mime-base64=3.16'
          'perl-module-corelist=5.20220520'
          'perl-module-load-conditional=0.74'
          'perl-module-load=0.36'
          'perl-module-loaded=0.08'
          'perl-module-metadata=1.000037'
          'perl-net-ping=2.74'
          'perl-params-check=0.38'
          'perl-parent=0.238'
          'perl-pathtools=3.84'
          'perl-perl-ostype=1.010'
          'perl-perlfaq=5.20210520'
          'perl-perlio-via-quotedprint=0.09'
          'perl-pod-checker=1.74'
          'perl-pod-escapes=1.07'
          'perl-pod-perldoc=3.2801'
          'perl-pod-simple=3.43'
          'perl-pod-usage=2.01'
          'perl-podlators=5.008'
          'perl-safe=2.43'
          'perl-scalar-list-utils=1.62'
          'perl-search-dict=1.07'
          'perl-selfloader=1.26'
          'perl-socket=2.033'
          'perl-storable=3.26'
          'perl-sys-syslog=0.36'
          'perl-term-ansicolor=5.01'
          'perl-term-cap=1.17'
          'perl-term-complete=1.403'
          'perl-term-readline=1.17'
          'perl-test-harness=3.44'
          'perl-test-simple=1.302190'
          'perl-test=1.31'
          'perl-text-abbrev=1.02'
          'perl-text-balanced=2.04'
          'perl-text-parsewords=3.31'
          'perl-text-tabs=2021.0814'
          'perl-thread-queue=3.14'
          'perl-thread-semaphore=2.13'
          'perl-threads-shared=1.64'
          'perl-threads=2.27'
          'perl-tie-file=1.06'
          'perl-tie-refhash=1.40'
          'perl-time-hires=1.9770'
          'perl-time-local=1.30'
          'perl-time-piece=1.3401'
          'perl-unicode-collate=1.31'
          'perl-unicode-normalize=1.31'
          'perl-version=0.9929'
          'perl-xsloader=0.31')
# Add your own provides here
provides=("${provides[@]}")
source=(https://www.cpan.org/src/5.0/perl-${pkgver}.tar.xz
        config.over
        perlbin.sh
        perlbin.csh
        perlbin.fish
        detect-old-perl-modules.sh
        detect-old-perl-modules.hook)
options=('makeflags' '!purge' 'emptydirs')

prepare() {
  cd "${srcdir}/${pkgname}-${pkgver}"

  # reproducible patchlevel_date
  [ -n "${SOURCE_DATE_EPOCH}" ] && touch -h -d @$SOURCE_DATE_EPOCH patchlevel.h
}

build() {
  cd "${srcdir}/${pkgname}-${pkgver}"

  if [ "${CARCH}" = "x86_64" ]; then
    # for x86_64
    arch_opts="-Dcccdlflags='-fPIC'"
  else
    # for i686
    arch_opts=""
  fi

  # reproducible builds overrides are only fully effective when loaded from file
  cp ../config.over .

  export TZ=UTC
  ./Configure -des -Dusethreads -Duseshrplib -Doptimize="${CFLAGS}" \
    -Dprefix=/usr -Dvendorprefix=/usr \
    -Dprivlib=/usr/share/perl5/core_perl \
    -Darchlib=/usr/lib/perl5/$_baseversion/core_perl \
    -Dsitelib=/usr/share/perl5/site_perl \
    -Dsitearch=/usr/lib/perl5/$_baseversion/site_perl \
    -Dvendorlib=/usr/share/perl5/vendor_perl \
    -Dvendorarch=/usr/lib/perl5/$_baseversion/vendor_perl \
    -Dscriptdir=/usr/bin/core_perl \
    -Dsitescript=/usr/bin/site_perl \
    -Dvendorscript=/usr/bin/vendor_perl \
    -Dinc_version_list=none \
    -Dman1ext=1perl -Dman3ext=3perl ${arch_opts} \
    -Dlddlflags="-shared ${LDFLAGS}" -Dldflags="${LDFLAGS}"
  make
}

check() {
  cd "${srcdir}/${pkgname}-${pkgver}"
#  TEST_JOBS=$(echo "$MAKEFLAGS" | sed 's/.*-j\([0-9][0-9]*\).*/\1/') make test_harness
  make test
}

package() {
  cd "${srcdir}/${pkgname}-${pkgver}"
  make DESTDIR="$pkgdir" install

  ### Perl Settings ###
  # Change man page extensions for site and vendor module builds.
  # Set no mail address since bug reports should go to the bug tracker
  # and not someone's email.
  sed -e '/^man1ext=/ s/1perl/1p/' -e '/^man3ext=/ s/3perl/3pm/' \
      -e "/^cf_email=/ s/'.*'/''/" \
      -e "/^perladmin=/ s/'.*'/''/" \
      -i "${pkgdir}/usr/lib/perl5/$_baseversion/core_perl/Config_heavy.pl"

  ### CPAN Settings ###
  # Set CPAN default config to use the site directories.
  sed -e '/(makepl_arg =>/   s/""/"INSTALLDIRS=site"/' \
      -e '/(mbuildpl_arg =>/ s/""/"installdirs=site"/' \
      -i "${pkgdir}/usr/share/perl5/core_perl/CPAN/FirstTime.pm"

  # Profile script to set paths to perl scripts.
  install -D -m644 "${srcdir}/perlbin.sh" \
                   "${pkgdir}/etc/profile.d/perlbin.sh"
  # Profile script to set paths to perl scripts on csh. (FS#22441)
  install -D -m644 "${srcdir}/perlbin.csh" \
                  "${pkgdir}/etc/profile.d/perlbin.csh"
  # Profile script to set paths to perl scripts on fish. (FS#51191)
  install -D -m 755 "$srcdir/perlbin.fish" \
                  "$pkgdir/usr/share/fish/vendor_conf.d/perlbin.fish"

  # Add the dirs so new installs will already have them in PATH once they
  # install their first perl programm
  install -d -m755 "$pkgdir/usr/bin/vendor_perl"
  install -d -m755 "$pkgdir/usr/bin/site_perl"

  #(cd ${pkgdir}/usr/bin; mv perl${pkgver} perl)
  rm "$pkgdir/usr/bin/perl$pkgver"

  install -D -m755 -t "$pkgdir/usr/share/libalpm/scripts" "$srcdir/detect-old-perl-modules.sh"
  install -D -m644 -t "$pkgdir/usr/share/libalpm/hooks" "$srcdir/detect-old-perl-modules.hook"

  find "$pkgdir" -name perllocal.pod -delete
  find "$pkgdir" -name .packlist -delete
}

#---- license gpg-key sha256sums ----

license=('GPL' 'PerlArtistic')

# https://www.cpan.org/src/5.0/perl-$pkgver.tar.xz.sha256.txt

sha256sums=(0f386dccbee8e26286404b2cca144e1005be65477979beb9b1ba272d4819bcf0 # perl-5.36.0.tar.xz
	84c7fae94f591f25d6568dd300f57bfe4924092559ab2d96f1038e67c353d190 # config.over
	35491e903f0d93df995cda3c11a900a7e96df699d53f5ba49e1379150aaf0fbb # perlbin.sh
	3834ddced7051fd6e2d189db48c9266efe21bad467d2c6700c9c232830f6bfd9 # perlbin.csh
	9b49a13607df8966a3f86f698d25f4b577be66405cc08f98869a03295617d3d1 # perlbin.fish
	c5db3dcd1db71724fa4df5db34586688aa8db92ac6ffcbddaaa213c71cceff20 # detect-old-perl-modules.sh
	786f3c7938b0738337f7d47112ea7b84fd0e2d6c1af331b7d5e67b9865d6d2b4) # detect-old-perl-modules.hook


