forked from macports/macports-ports
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
See: https://www.ruby-lang.org/en/news/2024/12/25/ruby-3-4-1-released/ TESTED: Pending.
- Loading branch information
Showing
3 changed files
with
231 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,200 @@ | ||
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:et:sw=4:ts=4:sts=4 | ||
|
||
PortSystem 1.0 | ||
PortGroup select 1.0 | ||
PortGroup openssl 1.0 | ||
PortGroup compiler_blacklist_versions 1.0 | ||
PortGroup legacysupport 1.1 | ||
|
||
# MAP_ANONYMOUS | ||
legacysupport.newest_darwin_requires_legacy 14 | ||
|
||
# Version updates should start by updating the fork noted below | ||
# (or equivalent), verifying the propriety of the patches for the new version, | ||
# and rederiving the patchfile from there. | ||
# | ||
# Also note that this port runs on all OS/CPU combinations. | ||
# This property should be preserved. | ||
|
||
set ruby_ver 3.4 | ||
set ruby_patch 1 | ||
set ruby_ver_nodot [string map {. {}} ${ruby_ver}] | ||
name ruby${ruby_ver_nodot} | ||
version ${ruby_ver}.${ruby_patch} | ||
revision 0 | ||
|
||
categories lang ruby | ||
maintainers {kimuraw @kimuraw} \ | ||
{fwright.net:fw @fhgwright} \ | ||
openmaintainer | ||
|
||
description Powerful and clean object-oriented scripting language | ||
long_description Ruby is the interpreted scripting language for quick \ | ||
and easy object-oriented programming. It has many \ | ||
features to process text files and to do system \ | ||
management tasks (as in Perl). It is simple, \ | ||
straightforward, extensible, and portable. | ||
|
||
homepage https://www.ruby-lang.org/ | ||
license {Ruby BSD} | ||
|
||
master_sites ruby:${ruby_ver} | ||
distname ruby-${version} | ||
dist_subdir ruby${ruby_ver_nodot} | ||
|
||
checksums rmd160 3f699d5a37ebf715803c7bd2994a092be154c39a \ | ||
sha256 3d385e5d22d368b064c817a13ed8e3cc3f71a7705d7ed1bae78013c33aa7c87f \ | ||
size 23152739 | ||
|
||
# Universal builds don't currently work, including via the approach used | ||
# in ruby30. | ||
universal_variant no | ||
|
||
# ruby/openssl since ruby-3.2 supports openssl-3 | ||
openssl.branch 3 | ||
|
||
depends_lib port:zlib \ | ||
port:libyaml \ | ||
port:libffi \ | ||
port:gdbm | ||
depends_run port:ruby_select | ||
depends_build port:pkgconfig port:cctools | ||
depends_skip_archcheck pkgconfig | ||
|
||
select.group ruby | ||
select.file ${filespath}/ruby${ruby_ver_nodot} | ||
|
||
# Patches derived from MacPorts-enhanced GitHub fork at | ||
# github.com/fhgwright/ruby | ||
|
||
# patch-sources.diff: fixes for various issues. | ||
# | ||
# This diff is from v3_4_1 vs. macports-3_4_1. | ||
# | ||
patchfiles-append patch-sources.diff | ||
|
||
#------------------------------------------------------------------------------- | ||
# Fix compilation on buildbots for 10.12 and earlier. | ||
# Issue: 62183: error: use of undeclared identifier 'fmt'; did you mean 'fma'? | ||
# | ||
# This issue only appears in Xcode clang 9 (clang 900), not MacPorts clang 9 | ||
# (clang 901), so the blacklisting can be narrow. | ||
#------------------------------------------------------------------------------- | ||
compiler.blacklist-append \ | ||
{ clang >= 900 < 901 } | ||
|
||
if { [string match macports-clang-* ${configure.compiler}] } { | ||
# clang-mp-14 => dsymutil-mp-14; fix POSTLINK | ||
configure.env-append dsymutil=[string map {clang dsymutil} ${configure.cc}] | ||
} | ||
|
||
compiler.thread_local_storage yes | ||
|
||
# At least one version of clang doesn't offer cstdbool (introduced in C++11) | ||
# with -stdlib=libstc++ but still reports as C++14. This causes an include | ||
# failure in include/ruby/internal/stdbool.h when built as C++. Setting the | ||
# standard to C++03 removes the expectation that cstdbool is available. | ||
# | ||
# This has only been observed when building for 10.5, and in fact, ruby | ||
# makes very little use of C++, and would probably be fine if this were | ||
# unconditional. Nevertheless, we limit it to the failing case. | ||
# | ||
if {[string match *clang* ${configure.compiler}] \ | ||
&& ${configure.cxx_stdlib} eq "libstdc++"} { | ||
configure.cxxflags-append -std=c++03 | ||
} | ||
|
||
configure.args --enable-shared \ | ||
--enable-install-static-library \ | ||
--disable-install-doc \ | ||
--mandir="${prefix}/share/man" \ | ||
--enable-pthread \ | ||
--disable-yjit \ | ||
--disable-rjit \ | ||
--without-gmp \ | ||
--enable-mkmf-verbose \ | ||
--with-opt-dir="${prefix}" \ | ||
--program-suffix=${ruby_ver} \ | ||
--with-rubyhdrdir=${prefix}/include/ruby-${version} \ | ||
--with-rubylibprefix="${prefix}/lib/ruby${ruby_ver}" \ | ||
--with-openssl-dir=[openssl::install_area] \ | ||
--without-baseruby | ||
# prefer Apple cctools to GNU binutils, build with binutils may fail. | ||
configure.args-append AR=${prefix}/bin/ar RANLIB=${prefix}/bin/ranlib | ||
|
||
# Add the architecture flag as required | ||
if {[info exists build_arch] && ${build_arch} != ""} { | ||
configure.args-append "--with-arch=${build_arch}" | ||
} | ||
|
||
post-destroot { | ||
foreach type {site vendor} { | ||
set libdir ${destroot}${prefix}/lib/ruby${ruby_ver}/${type}_ruby/${version} | ||
xinstall -m 0755 -d ${libdir} | ||
foreach subdir [exec find ${libdir} -type d -empty] { | ||
destroot.keepdirs-append ${subdir} | ||
} | ||
} | ||
|
||
# install destination of commands from port:rb34* | ||
xinstall -m 0755 -d ${destroot}${prefix}/libexec/ruby${ruby_ver} | ||
destroot.keepdirs-append ${destroot}${prefix}/libexec/ruby${ruby_ver} | ||
} | ||
|
||
notes-append " | ||
To make this the default Ruby (i.e., the version run by\ | ||
the 'ruby', 'gem' or 'bundle' commands), run: | ||
sudo port select --set ruby $name | ||
" | ||
|
||
variant doc description "Install rdoc indexes and C API documents" { | ||
configure.args-delete --disable-install-doc | ||
} | ||
|
||
variant gmp description "use gmp" { | ||
configure.args-delete --without-gmp | ||
depends_lib-append port:gmp | ||
} | ||
|
||
variant jemalloc description "use jemalloc" { | ||
configure.args-delete --without-jemalloc | ||
configure.args-append --with-jemalloc | ||
depends_lib-append port:jemalloc | ||
} | ||
|
||
variant yjit description "enable YJIT (requires rust)" { | ||
configure.args-delete --disable-yjit | ||
configure.args-append --enable-yjit | ||
depends_build-append port:rust | ||
} | ||
# yjit supports x86_64 or arm64 | ||
if {${os.major} >= 19 && [info exists build_arch]} { | ||
if {$build_arch in [list x86_64 arm64]} { | ||
default_variants-append +yjit | ||
} | ||
} | ||
|
||
variant relative description "Enable relative loading of libraries to allow for relocation of binaries." { | ||
#enable relative loading | ||
configure.args-append --enable-load-relative | ||
} | ||
|
||
# legacy systems support | ||
platform darwin { | ||
if {${os.major} < 11} { | ||
depends_build-append port:gmake | ||
build.cmd ${prefix}/bin/gmake | ||
configure.args-append --disable-dtrace | ||
} | ||
|
||
if {${os.major} == 8} { | ||
configure.cppflags-append -DCPU_SUBTYPE_MASK=0xff000000 | ||
} | ||
} | ||
|
||
test.run yes | ||
test.target check | ||
|
||
livecheck.type regex | ||
livecheck.url https://cache.ruby-lang.org/pub/ruby/${ruby_ver}/ | ||
livecheck.regex ruby-(3\\.3\\.\\d+)[quotemeta ${extract.suffix}] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- lib/bundler/gem_helper.rb.orig 2024-12-24 23:43:20.000000000 -0800 | ||
+++ lib/bundler/gem_helper.rb 2024-12-25 12:27:31.000000000 -0800 | ||
@@ -231,7 +231,7 @@ module Bundler | ||
end | ||
|
||
def gem_command | ||
- ENV["GEM_COMMAND"]&.shellsplit || ["gem"] | ||
+ ENV["GEM_COMMAND"]&.shellsplit || ["gem3.4"] | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
bin/erb3.4 | ||
bin/gem3.4 | ||
bin/irb3.4 | ||
bin/rake3.4 | ||
bin/rdoc3.4 | ||
bin/ri3.4 | ||
bin/ruby3.4 | ||
- | ||
share/man/man1/erb3.4.1.gz | ||
share/man/man1/irb3.4.1.gz | ||
- | ||
share/man/man1/ri3.4.1.gz | ||
share/man/man1/ruby3.4.1.gz | ||
bin/bundle3.4 | ||
bin/bundler3.4 | ||
- | ||
bin/racc3.4 | ||
bin/typeprof3.4 | ||
bin/rbs3.4 | ||
bin/rdbg3.4 |