mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-01-09 15:37:56 -05:00
* Add updates of ncurses,readline, bash Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Add bash and deps to CREW_ESSENTIAL_PACKAGES to keep ruby from breaking. Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Add ruby update Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Update gettext Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Update mold Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Adjust build container for x86_64. Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Add gcc_build binaries. Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Add gcc build packages. Signed-off-by: Satadru Pramanik <satadru@gmail.com> * rebuild binutils for gcc15 Signed-off-by: Satadru Pramanik <satadru@gmail.com> * bump Signed-off-by: Satadru Pramanik <satadru@gmail.com> * lint Signed-off-by: Satadru Pramanik <satadru@gmail.com> * git rebuild Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Fix const version Signed-off-by: Satadru Pramanik <satadru@gmail.com> --------- Signed-off-by: Satadru Pramanik <satadru@gmail.com> Co-authored-by: Satadru Pramanik <satadru@gmail.com>
83 lines
3.0 KiB
Ruby
83 lines
3.0 KiB
Ruby
require 'package'
|
|
|
|
class Ruby < Package
|
|
description 'Ruby is a dynamic, open source programming language with a focus on simplicity and productivity.'
|
|
homepage 'https://www.ruby-lang.org/en/'
|
|
version '3.4.4'
|
|
license 'Ruby-BSD and BSD-2'
|
|
compatibility 'all'
|
|
source_url 'https://github.com/ruby/ruby.git'
|
|
git_hashtag "v#{version.gsub('.', '_')}"
|
|
binary_compression 'tar.zst'
|
|
|
|
binary_sha256({
|
|
aarch64: '0c9c3d8531555f7f9d479abb1fc986007d2a2c079cc97fd25a89b491bcf51c23',
|
|
armv7l: '0c9c3d8531555f7f9d479abb1fc986007d2a2c079cc97fd25a89b491bcf51c23',
|
|
i686: 'd0b4efe95c67b2e424c6cba71215ff3ce12a0240c9b715d9da885d61c0d5e1ee',
|
|
x86_64: '901582417958d1aefe122e7cd3d6318cc72e912f281c19337e2837697007fa87'
|
|
})
|
|
|
|
depends_on 'ca_certificates' # L
|
|
depends_on 'filecmd' # L (This is to enable file command use in package files.)
|
|
depends_on 'gcc_lib' # R
|
|
depends_on 'glibc' # R
|
|
depends_on 'gmp' # R
|
|
depends_on 'libffi' # R
|
|
depends_on 'libxcrypt' # R
|
|
depends_on 'libyaml' # R
|
|
depends_on 'openssl' # R
|
|
depends_on 'rust' => :build
|
|
depends_on 'zlib' # R
|
|
|
|
conflicts_ok # Needed for successful build.
|
|
|
|
# at run-time, system's gmp, openssl, and zlib can be used
|
|
|
|
def self.patch
|
|
system "grep -rlZ '/bin/sh ' . | xargs -0 sed -i 's,/bin/sh ,#{CREW_PREFIX}/bin/sh ,g'"
|
|
system "grep -rlZ \"/bin/sh\\\"\" . | xargs -0 sed -i 's,/bin/sh\",#{CREW_PREFIX}/bin/sh\",g'"
|
|
system "grep -rlZ \"/bin/sh'\" . | xargs -0 sed -i \"s,/bin/sh',#{CREW_PREFIX}/bin/sh',g\""
|
|
end
|
|
|
|
def self.build
|
|
system '[ -x configure ] || autoreconf -fiv'
|
|
system "RUBY_TRY_CFLAGS='stack_protector=no' \
|
|
RUBY_TRY_LDFLAGS='stack_protector=no' \
|
|
optflags='-flto=auto -fuse-ld=mold' \
|
|
LD=mold \
|
|
./configure #{CREW_CONFIGURE_OPTIONS} \
|
|
--enable-shared \
|
|
#{ARCH == 'x86_64' ? '--enable-yjit' : ''} \
|
|
--disable-fortify-source"
|
|
system "MAKEFLAGS='--jobs #{CREW_NPROC}' make"
|
|
end
|
|
|
|
def self.check
|
|
# Do not run checks if rebuilding current ruby version.
|
|
# RUBY_VERSION is a built-in ruby constant.
|
|
system "MAKEFLAGS='--jobs #{CREW_NPROC}' make check || true" unless version.split('-')[0] == RUBY_VERSION
|
|
end
|
|
|
|
def self.install
|
|
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
|
|
# See https://stackoverflow.com/questions/1844118/ruby-split-string-at-character-counting-from-the-right-side.
|
|
@ruby_ver = version.split(/\.([^.]*)$/).first
|
|
# Gems are stored in a ruby majorversion.minorversion.0 folder.
|
|
@gemrc = <<~GEMRCEOF
|
|
gem: --no-document
|
|
gempath: #{CREW_LIB_PREFIX}/ruby/gems/#{@ruby_ver}.0
|
|
GEMRCEOF
|
|
FileUtils.mkdir_p CREW_DEST_HOME
|
|
File.write("#{CREW_DEST_HOME}/.gemrc", @gemrc)
|
|
end
|
|
|
|
def self.postinstall
|
|
puts 'Updating ruby gems. This may take a while...'
|
|
silent = @opt_verbose ? '' : '--silent'
|
|
# install for Ruby 3.4
|
|
system 'gem uninstall resolv-replace', exception: false
|
|
system 'gem install highline ptools'
|
|
system "gem update #{silent} -N --system", exception: false
|
|
end
|
|
end
|