Send ruby 2.4 to the Attic

This commit is contained in:
jeremy 2019-11-05 08:04:49 +00:00
parent 8fe525d69c
commit de3ff8b109
25 changed files with 0 additions and 16264 deletions

View File

@ -1,41 +0,0 @@
# $OpenBSD: Makefile,v 1.19 2019/10/03 18:39:57 jeremy Exp $
VERSION = 2.4.9
SHARED_LIBS = ruby24 2.0
NEXTVER = 2.5
PSEUDO_FLAVORS= no_ri_docs bootstrap
# Do not build the RI docs on slow arches
.if ${MACHINE_ARCH:Malpha} || ${MACHINE_ARCH:Marm} || ${MACHINE_ARCH:Mhppa}
FLAVOR?= no_ri_docs bootstrap
.else
FLAVOR?=
.endif
MULTI_PACKAGES = -main -gdbm -ri_docs
.include <bsd.port.arch.mk>
.if ${BUILD_PACKAGES:M-ri_docs}
ALL_TARGET += rdoc
INSTALL_TARGET += install-doc
.endif
post-extract:
${POST_EXTRACT}
pre-configure:
${FIX_RIPPER}
pre-install:
${PRE_INSTALL}
post-install:
${FIX_RBCONFIG}
# 16984 tests, 2242211 assertions, 1 failures, 5 errors, 107 skips
do-test:
-cd ${WRKSRC} && make test-sample
-cd ${WRKSRC} && make btest-ruby
cd ${WRKSRC} && make test-all TESTOPTS="-v -q"
.include <bsd.port.mk>

View File

@ -1,2 +0,0 @@
SHA256 (ruby-2.4.9.tar.gz) = +ZtrXjqlPVeaSetxndDTg01ZEkFZptQ1HR4DkVaxxq4=
SIZE (ruby-2.4.9.tar.gz) = 14133507

View File

@ -1,24 +0,0 @@
$OpenBSD: patch-common_mk,v 1.1.1.1 2017/01/06 15:59:25 jeremy Exp $
Don't regenerate rdoc documentation during install.
--- common.mk.orig Wed Sep 7 01:13:08 2016
+++ common.mk Thu Sep 22 11:25:31 2016
@@ -217,7 +217,7 @@ $(EXTS_MK): $(MKFILES) all-incs $(PREP) $(RBCONFIG) $(
configure-ext: $(EXTS_MK)
build-ext: $(EXTS_MK)
- $(Q)$(MAKE) -f $(EXTS_MK) $(MFLAGS) libdir="$(libdir)" LIBRUBY_EXTS=$(LIBRUBY_EXTS) \
+ $(Q)$(MAKE) -f $(EXTS_MK) V=1 $(MFLAGS) libdir="$(libdir)" LIBRUBY_EXTS=$(LIBRUBY_EXTS) \
EXTENCS="$(ENCOBJS)" UPDATE_LIBRARIES=no $(EXTSTATIC)
prog: program wprogram
@@ -440,7 +440,7 @@ dont-install-man: $(PREP)
post-no-install-man::
@$(NULLCMD)
-install-doc: rdoc pre-install-doc do-install-doc post-install-doc
+install-doc: pre-install-doc do-install-doc post-install-doc
pre-install-doc:: install-prereq
do-install-doc: $(PROGRAM) pre-install-doc
$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=rdoc --rdoc-output="$(RDOCOUT)"

View File

@ -1,17 +0,0 @@
$OpenBSD: patch-compile_c,v 1.3 2017/09/16 22:42:37 jeremy Exp $
Disable peephole optimizer on sparc64, since it occasionally segfaults.
Index: compile.c
--- compile.c.orig
+++ compile.c
@@ -2068,6 +2068,9 @@ static int
iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcallopt)
{
INSN *iobj = (INSN *)list;
+#ifdef __sparc64__
+ return COMPILE_OK;
+#endif
again:
if (IS_INSN_ID(iobj, jump)) {
INSN *niobj, *diobj, *piobj;

View File

@ -1,56 +0,0 @@
$OpenBSD: patch-configure,v 1.8 2019/04/03 17:25:25 jeremy Exp $
Fix so name, checking for DOT and DOXYGEN.
Override the arch setting to remove OpenBSD version from it,
so ports don't have to be bumped when OpenBSD version changes.
Rename HEAP_ALIGN_LOG to HEAP_PAGE_ALIGN_LOG to make ruby use
operating system page size as GC heap page size (as was true
in earlier ruby versions).
Index: configure
--- configure.orig
+++ configure
@@ -424,7 +424,7 @@ if test -z "$2"; then :
else
- $as_echo_n " * $1: " | head -c26
+ $as_echo_n " * $1: " | dd bs=26 count=1 status=none
if test "$FOLD"; then :
echo "$2" | fold -s -w50 |
@@ -19595,12 +19595,12 @@ fi
colorize_result "$rb_cv_page_size_log" ; }
if test $rb_cv_page_size_log != no; then
cat >>confdefs.h <<_ACEOF
-#define HEAP_ALIGN_LOG $rb_cv_page_size_log
+#define HEAP_PAGE_ALIGN_LOG $rb_cv_page_size_log
_ACEOF
else
cat >>confdefs.h <<_ACEOF
-#define HEAP_ALIGN_LOG 12
+#define HEAP_PAGE_ALIGN_LOG 12
_ACEOF
fi
@@ -25667,7 +25667,7 @@ esac
openbsd*|mirbsd*) :
SOLIBS='$(LIBS)'
- LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR).'`expr ${MINOR} \* 10 + ${TEENY}`
+ LIBRUBY_SO='lib$(RUBY_SO_NAME).so.'${LIBruby24_VERSION}
;; #(
solaris*) :
@@ -27026,7 +27026,7 @@ _ACEOF
_ACEOF
else
- arch="${target_cpu}-${target_os}"
+ arch="${target_cpu}-openbsd"
case "$arch" in #(
le32-nacl) :
arch="pnacl" ;; #(

View File

@ -1,25 +0,0 @@
$OpenBSD: patch-ext_etc_etc_c,v 1.2 2018/03/31 21:12:45 jeremy Exp $
Use shadow versions of password functions.
Index: ext/etc/etc.c
--- ext/etc/etc.c.orig
+++ ext/etc/etc.c
@@ -187,7 +187,7 @@ etc_getpwuid(int argc, VALUE *argv, VALUE obj)
else {
uid = getuid();
}
- pwd = getpwuid(uid);
+ pwd = getpwuid_shadow(uid);
if (pwd == 0) rb_raise(rb_eArgError, "can't find user for %d", (int)uid);
return setup_passwd(pwd);
#else
@@ -218,7 +218,7 @@ etc_getpwnam(VALUE obj, VALUE nam)
const char *p = StringValueCStr(nam);
rb_check_safe_obj(nam);
- pwd = getpwnam(p);
+ pwd = getpwnam_shadow(p);
if (pwd == 0) rb_raise(rb_eArgError, "can't find user for %"PRIsVALUE, nam);
return setup_passwd(pwd);
#else

View File

@ -1,15 +0,0 @@
$OpenBSD: patch-ext_extmk_rb,v 1.1.1.1 2017/01/06 15:59:25 jeremy Exp $
Build extensions in verbose mode by default.
--- ext/extmk.rb.orig Thu Nov 17 20:34:26 2016
+++ ext/extmk.rb Sun Dec 18 13:32:10 2016
@@ -720,7 +720,7 @@ if $configure_only and $command_output
exts.map! {|d| "ext/#{d}/."}
gems.map! {|d| "gems/#{d}/."}
atomic_write_open($command_output) do |mf|
- mf.puts "V = 0"
+ mf.puts "V = 1"
mf.puts "Q1 = $(V:1=)"
mf.puts "Q = $(Q1:0=@)"
mf.puts "ECHO1 = $(V:1=@:)"

View File

@ -1,13 +0,0 @@
$OpenBSD: patch-ext_openssl_extconf_rb,v 1.2 2019/04/03 17:25:25 jeremy Exp $
Index: ext/openssl/extconf.rb
--- ext/openssl/extconf.rb.orig
+++ ext/openssl/extconf.rb
@@ -179,6 +179,7 @@ have_func("HMAC_CTX_free")
OpenSSL.check_func("RAND_pseudo_bytes", "openssl/rand.h") # deprecated
have_func("X509_STORE_get_ex_data")
have_func("X509_STORE_set_ex_data")
+have_func("X509_STORE_get_ex_new_index")
have_func("X509_CRL_get0_signature")
have_func("X509_REQ_get0_signature")
have_func("X509_REVOKED_get0_serialNumber")

View File

@ -1,31 +0,0 @@
$OpenBSD: patch-ext_openssl_openssl_missing_h,v 1.4 2018/02/23 09:54:25 sthen Exp $
Index: ext/openssl/openssl_missing.h
--- ext/openssl/openssl_missing.h.orig
+++ ext/openssl/openssl_missing.h
@@ -119,6 +119,9 @@ void ossl_HMAC_CTX_free(HMAC_CTX *);
#if !defined(HAVE_X509_STORE_SET_EX_DATA)
# define X509_STORE_set_ex_data(x, idx, data) \
CRYPTO_set_ex_data(&(x)->ex_data, (idx), (data))
+#endif
+
+#if !defined(HAVE_X509_STORE_GET_EX_NEW_INDEX)
# define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \
CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, (l), (p), \
(newf), (dupf), (freef))
@@ -192,6 +195,7 @@ void ossl_X509_REQ_get0_signature(const X509_REQ *, co
#endif
#if !defined(HAVE_OPAQUE_OPENSSL)
+#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL
#define IMPL_PKEY_GETTER(_type, _name) \
static inline _type *EVP_PKEY_get0_##_type(EVP_PKEY *pkey) { \
return pkey->pkey._name; }
@@ -243,6 +247,7 @@ IMPL_PKEY_GETTER(EC_KEY, ec)
#undef IMPL_PKEY_GETTER
#undef IMPL_KEY_ACCESSOR2
#undef IMPL_KEY_ACCESSOR3
+#endif
#endif /* HAVE_OPAQUE_OPENSSL */
#if defined(HAVE_AUTHENTICATED_ENCRYPTION) && !defined(EVP_CTRL_AEAD_GET_TAG)

View File

@ -1,12 +0,0 @@
$OpenBSD: patch-ext_ripper_depend,v 1.1 2017/02/21 17:04:45 jca Exp $
--- ext/ripper/depend.orig Wed Jul 6 07:03:14 2016
+++ ext/ripper/depend Tue Feb 21 17:54:06 2017
@@ -46,6 +46,8 @@ ripper.E: ripper.c
$(ECHO) preprocessing ripper.c
$(Q) $(CC) -E $(INCFLAGS) $(CPPFLAGS) $< | $(RUBY) $(srcdir)/tools/strip.rb > $@
+CFLAGS += %%CFLAGS_OVERRIDE%%
+
# AUTOGENERATED DEPENDENCIES START
ripper.o: $(RUBY_EXTCONF_H)
ripper.o: $(arch_hdrdir)/ruby/config.h

View File

@ -1,102 +0,0 @@
$OpenBSD: patch-file_c,v 1.1 2019/08/30 15:56:31 jeremy Exp $
Backport use of realpath(3) for File.realpath to allow unveil(2) to work.
Index: file.c
--- file.c.orig
+++ file.c
@@ -126,6 +126,9 @@ int flock(int, int);
#define STAT(p, s) stat((p), (s))
#endif
+#include <limits.h>
+#include <stdlib.h>
+
VALUE rb_cFile;
VALUE rb_mFileTest;
VALUE rb_cStat;
@@ -3898,7 +3901,7 @@ realpath_rec(long *prefixlenp, VALUE *resolvedp, const
}
static VALUE
-rb_check_realpath_internal(VALUE basedir, VALUE path, enum rb_realpath_mode mode)
+rb_check_realpath_emulate(VALUE basedir, VALUE path, enum rb_realpath_mode mode)
{
long prefixlen;
VALUE resolved;
@@ -3980,6 +3983,75 @@ rb_check_realpath_internal(VALUE basedir, VALUE path,
rb_enc_associate(resolved, origenc);
OBJ_INFECT(resolved, unresolved_path);
+ return resolved;
+}
+
+static VALUE rb_file_join(VALUE ary, VALUE sep);
+
+static VALUE
+rb_check_realpath_internal(VALUE basedir, VALUE path, enum rb_realpath_mode mode)
+{
+ VALUE unresolved_path;
+ rb_encoding *origenc;
+ char *resolved_ptr = NULL;
+ VALUE resolved;
+
+ if (mode == RB_REALPATH_DIR) {
+ return rb_check_realpath_emulate(basedir, path, mode);
+ }
+
+ unresolved_path = rb_str_dup_frozen(path);
+ origenc = rb_enc_get(unresolved_path);
+ if (*RSTRING_PTR(unresolved_path) != '/' && !NIL_P(basedir)) {
+ unresolved_path = rb_file_join(rb_ary_new_from_args(2, basedir, unresolved_path), rb_str_new2("/"));
+ }
+
+ if((resolved_ptr = realpath(RSTRING_PTR(unresolved_path), NULL)) == NULL) {
+ /* glibc realpath(3) does not allow /path/to/file.rb/../other_file.rb,
+ returning ENOTDIR in that case.
+ glibc realpath(3) can also return ENOENT for paths that exist,
+ such as /dev/fd/5.
+ Fallback to the emulated approach in either of those cases. */
+ if (errno == ENOTDIR ||
+ (errno == ENOENT && rb_file_exist_p(0, unresolved_path))) {
+ return rb_check_realpath_emulate(basedir, path, mode);
+
+ }
+ if (mode == RB_REALPATH_CHECK) {
+ return Qnil;
+ }
+ rb_sys_fail_path(unresolved_path);
+ }
+ resolved = ospath_new(resolved_ptr, strlen(resolved_ptr), rb_filesystem_encoding());
+ free(resolved_ptr);
+
+ if (mode == RB_REALPATH_STRICT || mode == RB_REALPATH_CHECK) {
+ struct stat st;
+
+ if (rb_stat(resolved, &st) < 0) {
+ if (mode == RB_REALPATH_STRICT) {
+ rb_sys_fail_path(unresolved_path);
+ }
+ return Qnil;
+ }
+ }
+
+ if (origenc != rb_enc_get(resolved)) {
+ if (!rb_enc_str_asciionly_p(resolved)) {
+ resolved = rb_str_conv_enc(resolved, NULL, origenc);
+ }
+ rb_enc_associate(resolved, origenc);
+ }
+
+ if(rb_enc_str_coderange(resolved) == ENC_CODERANGE_BROKEN) {
+ rb_enc_associate(resolved, rb_filesystem_encoding());
+ if(rb_enc_str_coderange(resolved) == ENC_CODERANGE_BROKEN) {
+ rb_enc_associate(resolved, rb_ascii8bit_encoding());
+ }
+ }
+
+ rb_obj_taint(resolved);
+ RB_GC_GUARD(unresolved_path);
return resolved;
}

View File

@ -1,17 +0,0 @@
$OpenBSD: patch-include_ruby_ruby_h,v 1.4 2018/03/31 21:12:45 jeremy Exp $
Fix GCC error: #pragma GCC diagnostic not allowed inside functions
when compiling some extensions.
Index: include/ruby/ruby.h
--- include/ruby/ruby.h.orig
+++ include/ruby/ruby.h
@@ -2204,7 +2204,7 @@ ERRORFUNC(("variable argument length doesn't match"),
# define rb_scan_args_verify_count(fmt, varc) \
((varc)/(rb_scan_args_count(fmt, varc)))
-# ifdef __GNUC__
+# if 0
# define rb_scan_args_verify(fmt, varc) \
({ \
int verify; \

View File

@ -1,27 +0,0 @@
$OpenBSD: patch-lib_fileutils_rb,v 1.3 2017/09/16 22:42:37 jeremy Exp $
Make FileUtils.mkdir_p act more like mkdir(1) -p, by not attempting
to create directories that already exist. This fixes systrace
warnings when building ports.
Index: lib/fileutils.rb
--- lib/fileutils.rb.orig
+++ lib/fileutils.rb
@@ -191,7 +191,7 @@ module FileUtils
list.map {|path| remove_trailing_slash(path)}.each do |path|
# optimize for the most common case
begin
- fu_mkdir path, mode
+ fu_mkdir path, mode unless File.directory?(path)
next
rescue SystemCallError
next if File.directory?(path)
@@ -205,7 +205,7 @@ module FileUtils
stack.pop # root directory should exist
stack.reverse_each do |dir|
begin
- fu_mkdir dir, mode
+ fu_mkdir dir, mode unless File.directory?(dir)
rescue SystemCallError
raise unless File.directory?(dir)
end

View File

@ -1,15 +0,0 @@
$OpenBSD: patch-lib_mkmf_rb,v 1.1.1.1 2017/01/06 15:59:25 jeremy Exp $
Ignore linker warnings when compiling native extensions.
--- lib/mkmf.rb.orig Sun Dec 25 09:49:06 2016
+++ lib/mkmf.rb Sun Dec 25 09:49:51 2016
@@ -388,7 +388,7 @@ module MakeMakefile
result = nil
Logging.postpone do |log|
output = IO.popen(libpath_env, command, &:read)
- result = ($?.success? and File.zero?(log.path))
+ result = $?.success?
output
end
result

View File

@ -1,17 +0,0 @@
$OpenBSD: patch-lib_rubygems_commands_install_command_rb,v 1.1.1.1 2017/01/06 15:59:25 jeremy Exp $
Make gem binaries on ruby 2.4 use a 24 suffix, so you can have both
other versions of the same gem installed at the same time
without conflicts.
--- lib/rubygems/commands/install_command.rb.orig Tue Dec 15 21:07:31 2015
+++ lib/rubygems/commands/install_command.rb Sat Dec 26 13:11:04 2015
@@ -21,7 +21,7 @@ class Gem::Commands::InstallCommand < Gem::Command
def initialize
defaults = Gem::DependencyInstaller::DEFAULT_OPTIONS.merge({
- :format_executable => false,
+ :format_executable => true,
:lock => true,
:suggest_alternate => true,
:version => Gem::Requirement.default,

View File

@ -1,12 +0,0 @@
$OpenBSD: patch-lib_rubygems_dependency_installer_rb,v 1.1.1.1 2017/01/06 15:59:25 jeremy Exp $
--- lib/rubygems/dependency_installer.rb.orig Tue Dec 15 21:07:31 2015
+++ lib/rubygems/dependency_installer.rb Sat Dec 26 13:11:04 2015
@@ -20,7 +20,7 @@ class Gem::DependencyInstaller
:document => %w[ri],
:domain => :both, # HACK dup
:force => false,
- :format_executable => false, # HACK dup
+ :format_executable => true, # HACK dup
:ignore_dependencies => false,
:prerelease => false,
:security_policy => nil, # HACK NoSecurity requires OpenSSL. AlmostNo? Low?

View File

@ -1,22 +0,0 @@
$OpenBSD: patch-lib_rubygems_ext_ext_conf_builder_rb,v 1.3 2019/04/03 17:25:25 jeremy Exp $
Ugly hack to make --user-install option work. Without this, when
a user uses gem install --user-install, it calls
/usr/bin/install -o root -g bin, which fails due to permission issues.
This removes the -o root -g bin, so it can succeed as a regular user.
Index: lib/rubygems/ext/ext_conf_builder.rb
--- lib/rubygems/ext/ext_conf_builder.rb.orig
+++ lib/rubygems/ext/ext_conf_builder.rb
@@ -34,6 +34,11 @@ class Gem::Ext::ExtConfBuilder < Gem::Ext::Builder
siteconf.puts "RbConfig::MAKEFILE_CONFIG['#{dir}'] = dest_path"
siteconf.puts "RbConfig::CONFIG['#{dir}'] = dest_path"
end
+ unless Process.euid == 0
+ %w[INSTALL INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM].each do |ins|
+ siteconf.puts "RbConfig::MAKEFILE_CONFIG['#{ins}'] = RbConfig::CONFIG['#{ins}'] = RbConfig::CONFIG['#{ins}'].gsub(/-o root -g bin/, '')"
+ end
+ end
siteconf.close

View File

@ -1,2 +0,0 @@
This is a Ruby extension to the GDBM library which is part of the Ruby
distribution.

View File

@ -1,17 +0,0 @@
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, straight-forward, and extensible.
Features of Ruby are shown below.
- Simple Syntax
- *Normal* Object-Oriented features(ex. class, method calls)
- *Advanced* Object-Oriented features(ex. Mix-in, Singleton-method)
- Operator Overloading
- Exception Handling
- Iterators and Closures
- Garbage Collection
- Dynamic Loading of Object files(on some architecture)
- Highly Portable(works on many UNIX machines, and on DOS,
Windows, Mac, BeOS etc.)

View File

@ -1,2 +0,0 @@
This contains the files used by ruby's ri tool to get documentation
about classes and methods in ruby core and standard library.

View File

@ -1,9 +0,0 @@
If you want to use this package as your default system ruby, as root
create symbolic links like so (overwriting any previous default):
ln -sf ${PREFIX}/bin/ruby24 ${PREFIX}/bin/ruby
ln -sf ${PREFIX}/bin/erb24 ${PREFIX}/bin/erb
ln -sf ${PREFIX}/bin/irb24 ${PREFIX}/bin/irb
ln -sf ${PREFIX}/bin/rdoc24 ${PREFIX}/bin/rdoc
ln -sf ${PREFIX}/bin/ri24 ${PREFIX}/bin/ri
ln -sf ${PREFIX}/bin/rake24 ${PREFIX}/bin/rake
ln -sf ${PREFIX}/bin/gem24 ${PREFIX}/bin/gem

View File

@ -1,2 +0,0 @@
@comment $OpenBSD: PLIST-gdbm,v 1.1.1.1 2017/01/06 15:59:27 jeremy Exp $
lib/ruby/${REV}/${SUB}/gdbm.so

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +0,0 @@
If you set up the symlinks to make ruby 2.4 the system
ruby, don't forget to remove the following files:
rm ${PREFIX}/bin/ruby
rm ${PREFIX}/bin/erb
rm ${PREFIX}/bin/irb
rm ${PREFIX}/bin/rdoc
rm ${PREFIX}/bin/ri
rm ${PREFIX}/bin/gem
rm ${PREFIX}/bin/rake