mirror of
https://github.com/ivabus/pantry
synced 2024-11-30 04:05:06 +03:00
4eb1cca264
hopefully got all the edgecases this time
140 lines
4 KiB
YAML
140 lines
4 KiB
YAML
distributable:
|
||
url: https://cache.ruby-lang.org/pub/ruby/{{version.marketing}}/ruby-{{version}}.tar.xz
|
||
strip-components: 1
|
||
|
||
versions:
|
||
# ruby have *some* releases, but historically only have tags
|
||
# so if we want to build older releases we can only scan tags
|
||
github: ruby/ruby/tags
|
||
|
||
dependencies:
|
||
openssl.org: ^1.1
|
||
pyyaml.org: ^0.2
|
||
zlib.net: ^1
|
||
|
||
build:
|
||
dependencies:
|
||
freedesktop.org/pkg-config: ^0.29
|
||
gnu.org/gettext: ^0.21
|
||
tea.xyz/gx/cc: c99
|
||
tea.xyz/gx/make: '*'
|
||
gnu.org/patch: '*'
|
||
gnu.org/bison: ^3
|
||
gnu.org/autoconf: '*'
|
||
linux:
|
||
ruby-lang.org: ~3.1 # ruby requires ruby to build
|
||
# ^^ only linux because we got issues on darwin currently and darwin provides ruby (for now)
|
||
env:
|
||
ARGS:
|
||
- --prefix="{{prefix}}"
|
||
- --enable-load-relative # makes us relocatable
|
||
- --without-gmp
|
||
- --with-rubyarchprefix={{prefix}}/lib/ruby # no need for architecture specific crap
|
||
- --with-rubyhdrdir={{prefix}}/include # ^^
|
||
- --with-rubyarchhdrdir={{prefix}}/include # ^^
|
||
- --disable-multiarch # ^^
|
||
- --with-vendordir=no # is empty so don’t pollute
|
||
- --with-vendorarchdir=no # ^^
|
||
- --with-sitedir=no # ^^
|
||
- --with-sitearchdir=no # ^^
|
||
script:
|
||
- patch -p1 < props/mkconfig.rb.diff
|
||
|
||
- ./configure $ARGS
|
||
- make --jobs {{hw.concurrency}} install
|
||
|
||
# we provide these as `rubygems.org`
|
||
- run: rm bundle bundler gem
|
||
working-directory: ${{prefix}}/bin
|
||
|
||
- fix-shebangs.ts ${{prefix}}/bin/*
|
||
|
||
# ruby itself provides the gems for these and we don’t want that
|
||
# we want to pkg them ourselves as part of rubygems.org
|
||
# to ensure the user gets a good ruby experience rubygems is marked as
|
||
# a companion which in most use means gems are automatically added to the
|
||
# pkgenv. Ruby behaves well if gems isn't around but the user may get
|
||
# unexpected errors in scenarios where they constructed an pkgenv manually
|
||
- working-directory:
|
||
${{prefix}}/lib/ruby/{{version.marketing}}.0
|
||
run: |
|
||
for x in bundler rubygems bundler.rb rubygems.rb; do
|
||
if test -d $x; then
|
||
rm -rf $x
|
||
else
|
||
rm $x
|
||
fi
|
||
done
|
||
rm -rf ../gems/3.2.0/gems/bundler-*.*.*
|
||
|
||
- run: |
|
||
rm -rf share/ri
|
||
rm -rf share/doc
|
||
rm -rf lib/ruby/site_ruby
|
||
rm -rf lib/ruby/vendor_ruby
|
||
working-directory:
|
||
${{prefix}}
|
||
|
||
# weirdly files get put here and we can't figure out how to stop it
|
||
- run: |
|
||
mv *-{{hw.platform}}*/* .
|
||
rmdir *-{{hw.platform}}*
|
||
working-directory:
|
||
${{prefix}}/lib
|
||
|
||
- run: sed -i.bak
|
||
-e 's|$(DESTDIR){{prefix}}|$(topdir)|g'
|
||
-e 's|CONFIG\["topdir"\] = .*|CONFIG\["topdir"\] = TOPDIR|g'
|
||
rbconfig.rb
|
||
working-directory:
|
||
${{prefix}}/lib/ruby/{{version.marketing}}.0
|
||
|
||
test:
|
||
dependencies:
|
||
tea.xyz/gx/cc: c99 # for native extensions
|
||
tea.xyz/gx/make: '*'
|
||
rubygems.org: '*' # is a companion __however__ brewkit doesn’t add companions to the env automatically
|
||
script:
|
||
- |
|
||
ruby -e 'puts "Hello World!"'
|
||
# echo 'puts 1' | irb
|
||
# ^^ FIXME `The terminfo database could not be found`
|
||
|
||
# tests the libraries that come with Ruby can be utilized
|
||
- run: |
|
||
mv $FIXTURE a.rb
|
||
ruby a.rb
|
||
fixture: |
|
||
require 'date'
|
||
puts Date.today
|
||
|
||
# tests the gems that come with Ruby can be utilized
|
||
- run: |
|
||
mv $FIXTURE a.rb
|
||
ruby a.rb
|
||
fixture: |
|
||
require 'matrix'
|
||
matrix = Matrix[[1, 2], [3, 4]]
|
||
transpose_matrix = matrix.transpose
|
||
determinant = matrix.determinant
|
||
puts "Original matrix:\n#{matrix}"
|
||
puts "Transposed matrix:\n#{transpose_matrix}"
|
||
puts "Determinant of the matrix: #{determinant}"
|
||
|
||
provides:
|
||
- bin/erb
|
||
- bin/irb
|
||
- bin/racc
|
||
- bin/rake
|
||
- bin/rbs
|
||
- bin/rdoc
|
||
- bin/ri
|
||
- bin/ruby
|
||
- bin/typeprof
|
||
|
||
interprets:
|
||
extensions: rb
|
||
args: ruby
|
||
|
||
companions:
|
||
rubygems.org: '*'
|