Files
chromebrew/packages/perl.rb
Satadru Pramanik, DO, MPH, MEng fc9972fb7f perl => 5.38.2 (#9162)
Signed-off-by: Satadru Pramanik <satadru@gmail.com>
2024-01-11 11:50:35 -06:00

73 lines
3.5 KiB
Ruby

require 'package'
class Perl < Package
description 'Perl 5 is a highly capable, feature-rich programming language with over 29 years of development.'
homepage 'https://www.perl.org/'
version '5.38.2'
license 'GPL-1+ or Artistic'
compatibility 'all'
source_url "https://www.cpan.org/src/5.0/perl-#{version}.tar.xz"
source_sha256 'd91115e90b896520e83d4de6b52f8254ef2b70a8d545ffab33200ea9f1cf29e8'
binary_url({
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/perl/5.38.2_armv7l/perl-5.38.2-chromeos-armv7l.tar.zst',
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/perl/5.38.2_armv7l/perl-5.38.2-chromeos-armv7l.tar.zst',
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/perl/5.38.2_i686/perl-5.38.2-chromeos-i686.tar.zst',
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/perl/5.38.2_x86_64/perl-5.38.2-chromeos-x86_64.tar.zst'
})
binary_sha256({
aarch64: 'a2c1ad4b8b0da344fff07a60f6feb58cd95756e19c5b5dbd325d4bf0ae1ea4e8',
armv7l: 'a2c1ad4b8b0da344fff07a60f6feb58cd95756e19c5b5dbd325d4bf0ae1ea4e8',
i686: 'bab6f8c7bde74661d808e7c5bc5f506d0cfbdac9d40409b86f89b58b3a0ce551',
x86_64: '6c376747b4c8a582694cba6cd4b45949e7d8ed492462e38bc0857a38dc3113be'
})
depends_on 'gdbm' # R
depends_on 'glibc' # R
depends_on 'libdb' # R
def self.build
FileUtils.ln_sf "#{CREW_LIB_PREFIX}/libnsl.so.1", "#{CREW_LIB_PREFIX}/libnsl.so"
# Use system zlib and bzip2
# Create shared library
# Install manual files into #{CREW_PREFIX}/share/man/man* even if groff is not installed.
system "AR=gcc-ar RANLIB=gcc-ranlib NM=gcc-nm \
BUILD_ZLIB=False BUILD_BZIP2=0 \
mold -run ./Configure \
-de \
-Dprefix=#{CREW_PREFIX} \
-Dvendorprefix=#{CREW_PREFIX} \
-Dprivlib=#{CREW_PREFIX}/share/perl5/core_perl \
-Darchlib=#{CREW_LIB_PREFIX}/perl5/#{version}/core_perl \
-Dsitelib=#{CREW_PREFIX}/share/perl5/site_perl \
-Dsitearch=#{CREW_LIB_PREFIX}/perl5/#{version}/site_perl \
-Dvendorlib=#{CREW_PREFIX}/share/perl5/vendor_perl \
-Dvendorarch=#{CREW_LIB_PREFIX}/perl5/#{version}/vendor_perl \
-Dcc=#{CREW_TGT}-gcc \
-Doptimize='#{CREW_COMMON_FLAGS}' \
-Dlldlflags='-shared #{CREW_LDFLAGS}' -Dldflags='#{CREW_LDFLAGS}' \
-Dusethreads \
-Dinstallusrbinperl=n \
-Duseshrplib -Dman1dir=#{CREW_MAN_PREFIX}/man1 -Dman3dir=#{CREW_MAN_PREFIX}/man3"
system 'make'
end
def self.install
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
# Make libperl symlinks into standard locations
libperl_so = "#{CREW_LIB_PREFIX}/perl5/#{version.split('-')[0]}/core_perl/CORE/libperl.so"
FileUtils.ln_sf libperl_so, "#{CREW_DEST_LIB_PREFIX}/libperl.so.#{version}" # e.g., libperl.so.5.34.1
FileUtils.ln_sf libperl_so, "#{CREW_DEST_LIB_PREFIX}/libperl.so.#{version.sub(/\.\d$/, '')}" # e.g., libperl.so.5.34
FileUtils.ln_sf libperl_so, "#{CREW_DEST_LIB_PREFIX}/libperl.so#{version.sub(/\.\d\.\d$/, '')}" # e.g., libperl.so.5
FileUtils.ln_sf libperl_so, "#{CREW_DEST_LIB_PREFIX}/libperl.so" # e.g., libperl.so
# Consider adding this symlink to the glibc package
FileUtils.ln_sf "#{CREW_LIB_PREFIX}/libnsl.so.1", "#{CREW_DEST_LIB_PREFIX}/libnsl.so"
# Avoid File conflict with tcl, ocaml
FileUtils.mv "#{CREW_DEST_MAN_PREFIX}/man3/Thread.3", "#{CREW_DEST_MAN_PREFIX}/man3/Thread.3perl"
end
def self.check
system "make test -j #{CREW_NPROC} || true"
end
end