Files
chromebrew/packages/perl.rb
Ed Reel 117a95ad6d Perl 5.38.2 => 5.40.0 (#9964)
* Perl 5.38.2 => 5.40.0

Perl_app_cpanminus 1.7046 => 1.7047

Perl_date_manip 6.91 => 6.95

Perl_glib 1.3293 => 1.3294

Perl_glib_object_introspection 0.050 => 0.051

Perl_http_date 6.05 => 6.06

Perl_http_request 6.44 => 6.46

Perl_io_file 1.51 => 1.55_01

Perl_io_socket_ssl 2.083 => 2.085

Perl_lwp_protocol_https 6.10 => 6.14

Perl_net_http 6.22 => 6.23

Perl_net_ssleay 1.92 => 1.94

Perl_pod_parser 1.66 => 1.67

Perl_stow 2.3.1 => 2.4.0

Perl_test_output 1.033 => 1.034

Perl_text_csv 2.02 => 2.04

Perl_xml_namespacesuport 1.12 => 1.12_9

Perl_xml_parser 2.46 => 2.47

* add binaries for successful builds

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Adjust more packages to use buildsystems, remove binaries for no_compile_needed packages

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add more binaries

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add more binaries

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

---------

Signed-off-by: Satadru Pramanik <satadru@gmail.com>
Co-authored-by: Satadru Pramanik <satadru@gmail.com>
2024-06-15 01:12:08 -05:00

68 lines
3.0 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.40.0'
license 'GPL-1+ or Artistic'
compatibility 'all'
source_url "https://www.cpan.org/src/5.0/perl-#{version}.tar.xz"
source_sha256 'd5325300ad267624cb0b7d512cfdfcd74fa7fe00c455c5b51a6bd53e5e199ef9'
binary_compression 'tar.zst'
binary_sha256({
aarch64: '43ee11b9244dfd2885617c0ebbc273aab2dfd33cdabde7c644cdaccf92008b35',
armv7l: '43ee11b9244dfd2885617c0ebbc273aab2dfd33cdabde7c644cdaccf92008b35',
i686: 'be603fbf330914eb4bb9b70c3b6ada60345db8f6a119c4b037cf3b990ae98d71',
x86_64: '652e84be0c6414d018d2d3d206cdb2f62bdb183cef477a0bdc601b32e97d84d7'
})
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