ruby: remove old recipes, update to openssl3

This commit is contained in:
PulkoMandy
2024-08-10 10:43:32 +02:00
parent f8a54627a5
commit 7c51d16a1e
7 changed files with 3 additions and 945 deletions

View File

@@ -1,386 +0,0 @@
From 11a1c0125fb9bad32eef017e10f6d25e72de3b37 Mon Sep 17 00:00:00 2001
From: Alexander von Gluck IV <kallisti5@unixzen.com>
Date: Sun, 1 Feb 2015 03:29:50 +0000
Subject: configure.in: Fix haiku build by removing unneeded i586 check
diff --git a/configure.in b/configure.in
index 99fc7d0..bd6fa76 100644
--- a/configure.in
+++ b/configure.in
@@ -3058,15 +3058,8 @@ if test "$with_dln_a_out" != yes; then
])
: ${LIBPATHENV=LIBRARY_PATH}
rb_cv_dlopen=yes],
- [haiku*], [ AS_CASE(["$target_cpu"],
- [powerpc*], [
- : ${LDSHARED='$(LD) -xms'}
- EXTDLDFLAGS='-export $(TARGET_ENTRY)'
- DLDFLAGS="$DLDFLAGS -lroot glue-noinit.a init_term_dyn.o start_dyn.o"
- ],
- [i586*], [
- : ${LDSHARED='$(CC) -shared'}
- ])
+ [haiku*], [
+ : ${LDSHARED='$(CC) -shared'}
: ${LIBPATHENV=LIBRARY_PATH}
rb_cv_dlopen=yes ],
[nto-qnx*], [ DLDFLAGS="$DLDFLAGS -L/lib -L/usr/lib -L/usr/local/lib"
--
2.2.2
From 47a2b978b4debb8172069f9a81aeacb2208e792a Mon Sep 17 00:00:00 2001
From: Alexander von Gluck IV <kallisti5@unixzen.com>
Date: Wed, 4 Feb 2015 04:43:25 +0000
Subject: ext/socket: Don't check for Haiku, no longer needed
diff --git a/ext/socket/getaddrinfo.c b/ext/socket/getaddrinfo.c
index 68f610e..b518787 100644
--- a/ext/socket/getaddrinfo.c
+++ b/ext/socket/getaddrinfo.c
@@ -45,7 +45,7 @@
#include <sys/types.h>
#ifndef _WIN32
#include <sys/param.h>
-#if defined(__BEOS__) && !defined(__HAIKU__) && !defined(BONE)
+#if defined(__BEOS__) && !defined(BONE)
# include <net/socket.h>
#else
# include <sys/socket.h>
--
2.2.2
From 6757bff75ef21ba7d0a294f3711c9ba4d8579820 Mon Sep 17 00:00:00 2001
From: Hamish Morrison <hamishm53@gmail.com>
Date: Tue, 2 Jun 2015 21:47:45 +0100
Subject: configure.in: remove obsolete workarounds for Haiku
diff --git a/configure.in b/configure.in
index bd6fa76..d77f4ba 100644
--- a/configure.in
+++ b/configure.in
@@ -847,7 +847,7 @@ if test "$GCC" = yes; then
# -fstack-protector
AS_CASE(["$target_os"],
- [mingw*|nacl|haiku], [
+ [mingw*|nacl], [
stack_protector=no
])
if test -z "${stack_protector+set}"; then
@@ -899,11 +899,6 @@ if test "$GCC" = yes; then
[cygwin*|darwin*|netbsd*|nacl], [
# need lgamma_r(), finite()
],
- [haiku], [
- # Haiku R1/alpha3 uses gcc-4.4.4 which can not handle anonymous union
- # with ANSI standard flags. Anonumous union is required to compile
- # socket extension where <net/if.h> uses anonymous union.
- ],
[
# ANSI (no XCFLAGS because this is C only)
for ansi_options in -std=iso9899:1999 "-ansi -std=iso9899:199409"; do
@@ -1090,14 +1085,15 @@ main()
],
[hpux*], [ LIBS="-lm $LIBS"
ac_cv_c_inline=no],
-[beos*|haiku*], [
+[beos*], [
ac_cv_func_link=no
ac_cv_func_sched_yield=no
ac_cv_func_pthread_attr_setinheritsched=no
- AS_CASE(["$target_os"],
- [beos*], [ ac_cv_header_net_socket_h=yes],
- [haiku*], [ ac_cv_func_shutdown=no])
- LIBS="$LIBS" # m lib is include in root under BeOS/Haiku
+ ac_cv_header_net_socket_h=yes
+ LIBS="$LIBS" # m lib is include in root under BeOS
+ ],
+[haiku*], [
+ LIBS="$LIBS"
],
[cygwin*], [ ac_cv_header_langinfo_h=yes
AC_CHECK_FUNCS(cygwin_conv_path)
@@ -2943,7 +2939,7 @@ if test "$with_dln_a_out" != yes; then
# mkmf.rb's have_header() to fail if the desired resource happens to be
# installed in the /usr/local tree.
RUBY_APPEND_OPTION(CCDLFLAGS, -fno-common)],
- [bsdi*|beos*|haiku*|cygwin*|mingw*|aix*|interix*], [ ],
+ [bsdi*|beos*|cygwin*|mingw*|aix*|interix*], [ ],
[
RUBY_APPEND_OPTION(CCDLFLAGS, -fPIC)])
else
@@ -3061,6 +3057,9 @@ if test "$with_dln_a_out" != yes; then
[haiku*], [
: ${LDSHARED='$(CC) -shared'}
: ${LIBPATHENV=LIBRARY_PATH}
+ if test "$rb_cv_binary_elf" = yes; then
+ LDFLAGS="$LDFLAGS -Wl,-export-dynamic"
+ fi
rb_cv_dlopen=yes ],
[nto-qnx*], [ DLDFLAGS="$DLDFLAGS -L/lib -L/usr/lib -L/usr/local/lib"
: ${LDSHARED='$(LD) -Bshareable -x'}
@@ -3506,7 +3505,7 @@ AS_CASE("$enable_shared", [yes], [
[sunos4*], [
LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).so'
],
- [linux* | gnu* | k*bsd*-gnu | atheos* | kopensolaris*-gnu], [
+ [linux* | gnu* | k*bsd*-gnu | atheos* | kopensolaris*-gnu | haiku*], [
LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR)'" $LDFLAGS_OPTDIR"
LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).so'
if test "$load_relative" = yes; then
@@ -3597,10 +3596,6 @@ AS_CASE("$enable_shared", [yes], [
AS_HELP_STRING([--disable-pie], [disable PIE feature]),
[pie=$enableval], [pie=])
AS_CASE(["$target_os"],
- [haiku], [
- # gcc supports PIE, but doesn't work correctly in Haiku
- pie=no
- ],
[nacl], [
# -pie implies -shared for NaCl.
pie=no
--
2.2.2
From 2d79d79dafcf1e8a9301ab6b3422e61e1ff88ee9 Mon Sep 17 00:00:00 2001
From: Hamish Morrison <hamishm53@gmail.com>
Date: Tue, 2 Jun 2015 21:50:06 +0100
Subject: dln.c, file.c, io.c: remove obsolete Haiku workarounds
diff --git a/dln.c b/dln.c
index f3de2c3..25ee7fe 100644
--- a/dln.c
+++ b/dln.c
@@ -85,7 +85,7 @@ char *getenv();
# endif
#endif
-#if defined(__BEOS__) || defined(__HAIKU__)
+#if defined(__BEOS__)
# include <image.h>
#endif
@@ -1444,7 +1444,7 @@ dln_load(const char *file)
}
#endif
-#if defined(__BEOS__) || defined(__HAIKU__)
+#if defined(__BEOS__)
# define DLN_DEFINED
{
status_t err_stat; /* BeOS error status code */
@@ -1490,7 +1490,7 @@ dln_load(const char *file)
(*init_fct)();
return (void*)img_id;
}
-#endif /* __BEOS__ || __HAIKU__ */
+#endif /* __BEOS__ */
#ifndef DLN_DEFINED
dln_notimplement();
diff --git a/ext/socket/rubysocket.h b/ext/socket/rubysocket.h
index 84b971c..fdf9168 100644
--- a/ext/socket/rubysocket.h
+++ b/ext/socket/rubysocket.h
@@ -27,7 +27,7 @@
# undef HAVE_TYPE_STRUCT_SOCKADDR_DL
# endif
#else
-# if defined(__BEOS__) && !defined(__HAIKU__) && !defined(BONE)
+# if defined(__BEOS__) && !defined(BONE)
# include <net/socket.h>
# else
# include <sys/socket.h>
diff --git a/file.c b/file.c
index f3941fe..d977865 100644
--- a/file.c
+++ b/file.c
@@ -117,7 +117,7 @@ int flock(int, int);
#define STAT(p, s) stat((p), (s))
#endif
-#if defined(__BEOS__) || defined(__HAIKU__) /* should not change ID if -1 */
+#if defined(__BEOS__) /* should not change ID if -1 */
static int
be_chown(const char *path, uid_t owner, gid_t group)
{
@@ -142,7 +142,7 @@ be_fchown(int fd, uid_t owner, gid_t group)
return fchown(fd, owner, group);
}
#define fchown be_fchown
-#endif /* __BEOS__ || __HAIKU__ */
+#endif /* __BEOS__ */
VALUE rb_cFile;
VALUE rb_mFileTest;
diff --git a/include/ruby/defines.h b/include/ruby/defines.h
index 7baf210..cb0e4ce 100644
--- a/include/ruby/defines.h
+++ b/include/ruby/defines.h
@@ -163,7 +163,7 @@ void xfree(void*);
#include "ruby/win32.h"
#endif
-#if defined(__BEOS__) && !defined(__HAIKU__) && !defined(BONE)
+#if defined(__BEOS__) && !defined(BONE)
#include <net/socket.h> /* intern.h needs fd_set definition */
#endif
diff --git a/io.c b/io.c
index eb14407..1001378 100644
--- a/io.c
+++ b/io.c
@@ -34,7 +34,7 @@
# include <sys/socket.h>
#endif
-#if defined(__BOW__) || defined(__CYGWIN__) || defined(_WIN32) || defined(__EMX__) || defined(__BEOS__) || defined(__HAIKU__)
+#if defined(__BOW__) || defined(__CYGWIN__) || defined(_WIN32) || defined(__EMX__) || defined(__BEOS__)
# define NO_SAFE_RENAME
#endif
@@ -96,7 +96,7 @@
#include <sys/uio.h>
#endif
-#if defined(__BEOS__) || defined(__HAIKU__)
+#if defined(__BEOS__)
# ifndef NOFILE
# define NOFILE (OPEN_MAX)
# endif
--
2.2.2
From caa0c926219365b338065a00390f982dfc705c04 Mon Sep 17 00:00:00 2001
From: Hamish Morrison <hamishm53@gmail.com>
Date: Tue, 2 Jun 2015 21:51:28 +0100
Subject: thread_pthread.c: add stack bounds detection for Haiku
diff --git a/thread_pthread.c b/thread_pthread.c
index d2aebe7..a66f8a0 100644
--- a/thread_pthread.c
+++ b/thread_pthread.c
@@ -33,6 +33,9 @@
#if defined(HAVE_SYS_TIME_H)
#include <sys/time.h>
#endif
+#if defined(__HAIKU__)
+#include <kernel/OS.h>
+#endif
static void native_mutex_lock(rb_nativethread_lock_t *lock);
static void native_mutex_unlock(rb_nativethread_lock_t *lock);
@@ -497,6 +500,8 @@ size_t pthread_get_stacksize_np(pthread_t);
#define STACKADDR_AVAILABLE 1
#elif defined HAVE_PTHREAD_GETTHRDS_NP
#define STACKADDR_AVAILABLE 1
+#elif defined __HAIKU__
+#define STACKADDR_AVAILABLE 1
#elif defined __ia64 && defined _HPUX_SOURCE
#include <sys/dyntune.h>
@@ -618,6 +623,13 @@ get_stack(void **addr, size_t *size)
calculated by thinfo.__pi_stackend - thinfo.__pi_stackaddr. */
*size = thinfo.__pi_stackend - thinfo.__pi_stackaddr;
STACK_DIR_UPPER((void)0, (void)(*addr = (char *)*addr + *size));
+#elif defined __HAIKU__
+ thread_info info;
+ STACK_GROW_DIR_DETECTION;
+ CHECK_ERR(get_thread_info(find_thread(NULL), &info));
+ *addr = info.stack_base;
+ *size = (uintptr_t)info.stack_end - (uintptr_t)info.stack_base;
+ STACK_DIR_UPPER((void)0, (void)(*addr = (char *)*addr + *size));
#else
#error STACKADDR_AVAILABLE is defined but not implemented.
#endif
--
2.2.2
From 5c7a0a3b27e322f2be1ffd8c306794aadc580b8a Mon Sep 17 00:00:00 2001
From: Hamish Morrison <hamishm53@gmail.com>
Date: Tue, 2 Jun 2015 21:52:34 +0100
Subject: signal.c: get stack pointer from signal context on Haiku
diff --git a/configure.in b/configure.in
index d77f4ba..4be7f38 100644
--- a/configure.in
+++ b/configure.in
@@ -2785,10 +2785,24 @@ if test x"$enable_pthread" = xyes; then
fi
fi
fi
-if test x"$ac_cv_header_ucontext_h" = xyes; then
+
+if test x"$ac_cv_header_ucontext_h" = xno; then
+ AC_CACHE_CHECK([if signal.h defines ucontext_t], [rb_cv_ucontext_in_signal_h],
+ [AC_TRY_COMPILE([@%:@include <signal.h>],
+ [size_t size = sizeof(ucontext_t);],
+ [rb_cv_ucontext_in_signal_h=yes], [rb_cv_ucontext_in_signal_h=no])])
+ if test x"$rb_cv_ucontext_in_signal_h" = xyes; then
+ AC_DEFINE_UNQUOTED(UCONTEXT_IN_SIGNAL_H, 1)
+ fi
+fi
+if test x"$ac_cv_header_ucontext_h" = xyes -o x"$rb_cv_ucontext_in_signal_h" = xyes; then
AC_CACHE_CHECK([if mcontext_t is a pointer], [rb_cv_mcontext_t_ptr],
- [AC_TRY_COMPILE([@%:@include <ucontext.h>
- mcontext_t test(mcontext_t mc) {return mc+1;}
+ [AC_TRY_COMPILE([
+ @%:@include <signal.h>
+ @%:@ifdef HAVE_UCONTEXT_H
+ @%:@include <ucontext.h>
+ @%:@endif
+ mcontext_t test(mcontext_t mc) {return mc+1;}
],
[test(0);],
[rb_cv_mcontext_t_ptr=yes], [rb_cv_mcontext_t_ptr=no])])
diff --git a/signal.c b/signal.c
index 1bbf23d..e484593 100644
--- a/signal.c
+++ b/signal.c
@@ -66,7 +66,7 @@ ruby_atomic_compare_and_swap(rb_atomic_t *ptr, rb_atomic_t cmp,
}
#endif
-#if defined(__BEOS__) || defined(__HAIKU__)
+#if defined(__BEOS__)
#undef SIGBUS
#endif
@@ -752,7 +752,9 @@ static const char *received_signal;
#if defined(USE_SIGALTSTACK) || defined(_WIN32)
NORETURN(void ruby_thread_stack_overflow(rb_thread_t *th));
-# if !(defined(HAVE_UCONTEXT_H) && (defined __i386__ || defined __x86_64__ || defined __amd64__))
+# if defined __HAIKU__
+# define USE_UCONTEXT_REG 1
+# elif !(defined(HAVE_UCONTEXT_H) && (defined __i386__ || defined __x86_64__ || defined __amd64__))
# elif defined __linux__
# define USE_UCONTEXT_REG 1
# elif defined __APPLE__
@@ -783,6 +785,12 @@ check_stack_overflow(const uintptr_t addr, const ucontext_t *ctx)
# else
const __register_t sp = mctx->mc_esp;
# endif
+# elif defined __HAIKU__
+# if defined(__amd64__)
+ const unsigned long sp = mctx->rsp;
+# else
+ const unsigned long sp = mctx->esp;
+# endif
# endif
enum {pagesize = 4096};
const uintptr_t sp_page = (uintptr_t)sp / pagesize;
--
2.2.2

View File

@@ -1,106 +0,0 @@
From 279155468a862f4d358d01c5b8a084b40a700d4b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Sun, 5 May 2019 11:57:46 +0200
Subject: We don't allow unsetting O_NONBLOCK or O_NDELAY on packaged FS
diff --git a/ruby.c b/ruby.c
index 7903f58..0a17782 100644
--- a/ruby.c
+++ b/ruby.c
@@ -2090,10 +2090,10 @@ open_load_file(VALUE fname_v, int *xflag)
int fd;
/* open(2) may block if fname is point to FIFO and it's empty. Let's
use O_NONBLOCK. */
-#if defined O_NONBLOCK && HAVE_FCNTL && !(O_NONBLOCK & O_ACCMODE)
+#if defined O_NONBLOCK && HAVE_FCNTL && !(O_NONBLOCK & O_ACCMODE) && !defined(__HAIKU__)
/* TODO: fix conflicting O_NONBLOCK in ruby/win32.h */
# define MODE_TO_LOAD (O_RDONLY | O_NONBLOCK)
-#elif defined O_NDELAY && HAVE_FCNTL && !(O_NDELAY & O_ACCMODE)
+#elif defined O_NDELAY && HAVE_FCNTL && !(O_NDELAY & O_ACCMODE) && !defined(__HAIKU__)
# define MODE_TO_LOAD (O_RDONLY | O_NDELAY)
#else
# define MODE_TO_LOAD (O_RDONLY)
--
2.26.0
From 6351154529c5e1da2ad33f6ab43544ce3953075c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Sun, 5 May 2019 15:35:20 +0200
Subject: Test fix for Haiku
diff --git a/test/fiddle/helper.rb b/test/fiddle/helper.rb
index 57ded49..8a33200 100644
--- a/test/fiddle/helper.rb
+++ b/test/fiddle/helper.rb
@@ -100,6 +100,18 @@ when /aix/
end
end
end
+when /haiku/
+ libdir = '/system/lib'
+ case [0].pack('L!').size
+ when 4
+ # 32-bit ruby
+ libdir = '/system/lib/x86' if File.directory? '/system/lib/x86'
+ when 8
+ # 64-bit ruby
+ libdir = '/system/lib/' if File.directory? '/system/lib/'
+ end
+ libc_so = File.join(libdir, "libroot.so")
+ libm_so = File.join(libdir, "libroot.so")
else
libc_so = ARGV[0] if ARGV[0] && ARGV[0][0] == ?/
libm_so = ARGV[1] if ARGV[1] && ARGV[1][0] == ?/
--
2.26.0
From b584031112ad887a1cb4a38e4a6d0b4c0e28e306 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Wed, 25 Dec 2019 19:53:24 +0100
Subject: Add Haiku to the context support list
diff --git a/configure.ac b/configure.ac
index f1ed36b..fc28564 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2343,6 +2343,9 @@ AS_CASE([$rb_cv_coroutine], [yes|''], [
[*-openbsd*], [
rb_cv_coroutine=copy
],
+ [*-haiku*], [
+ rb_cv_coroutine=copy
+ ],
[*], [
rb_cv_coroutine=ucontext
]
--
2.26.0
From d85ec87013b5e80ded7ae235b6c2b23b95406989 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Mon, 8 Jun 2020 19:42:51 +1000
Subject: Disable stack-protector
diff --git a/configure.ac b/configure.ac
index fc28564..624f99d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -587,7 +587,7 @@ AS_IF([test "$GCC" = yes], [
# -fstack-protector
AS_CASE(["$target_os"],
- [mingw*], [
+ [mingw*|haiku*], [
stack_protector=no
])
AS_IF([test -z "${stack_protector+set}"], [
--
2.26.0

View File

@@ -1,83 +0,0 @@
From 279155468a862f4d358d01c5b8a084b40a700d4b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Sun, 5 May 2019 11:57:46 +0200
Subject: We don't allow unsetting O_NONBLOCK or O_NDELAY on packaged FS
diff --git a/ruby.c b/ruby.c
index 7903f58..0a17782 100644
--- a/ruby.c
+++ b/ruby.c
@@ -2090,10 +2090,10 @@ open_load_file(VALUE fname_v, int *xflag)
int fd;
/* open(2) may block if fname is point to FIFO and it's empty. Let's
use O_NONBLOCK. */
-#if defined O_NONBLOCK && HAVE_FCNTL && !(O_NONBLOCK & O_ACCMODE)
+#if defined O_NONBLOCK && HAVE_FCNTL && !(O_NONBLOCK & O_ACCMODE) && !defined(__HAIKU__)
/* TODO: fix conflicting O_NONBLOCK in ruby/win32.h */
# define MODE_TO_LOAD (O_RDONLY | O_NONBLOCK)
-#elif defined O_NDELAY && HAVE_FCNTL && !(O_NDELAY & O_ACCMODE)
+#elif defined O_NDELAY && HAVE_FCNTL && !(O_NDELAY & O_ACCMODE) && !defined(__HAIKU__)
# define MODE_TO_LOAD (O_RDONLY | O_NDELAY)
#else
# define MODE_TO_LOAD (O_RDONLY)
--
2.26.0
From 6351154529c5e1da2ad33f6ab43544ce3953075c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Sun, 5 May 2019 15:35:20 +0200
Subject: Test fix for Haiku
diff --git a/test/fiddle/helper.rb b/test/fiddle/helper.rb
index 57ded49..8a33200 100644
--- a/test/fiddle/helper.rb
+++ b/test/fiddle/helper.rb
@@ -100,6 +100,18 @@ when /aix/
end
end
end
+when /haiku/
+ libdir = '/system/lib'
+ case [0].pack('L!').size
+ when 4
+ # 32-bit ruby
+ libdir = '/system/lib/x86' if File.directory? '/system/lib/x86'
+ when 8
+ # 64-bit ruby
+ libdir = '/system/lib/' if File.directory? '/system/lib/'
+ end
+ libc_so = File.join(libdir, "libroot.so")
+ libm_so = File.join(libdir, "libroot.so")
else
libc_so = ARGV[0] if ARGV[0] && ARGV[0][0] == ?/
libm_so = ARGV[1] if ARGV[1] && ARGV[1][0] == ?/
--
2.26.0
From b584031112ad887a1cb4a38e4a6d0b4c0e28e306 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Wed, 25 Dec 2019 19:53:24 +0100
Subject: Add Haiku to the context support list
diff --git a/configure.ac b/configure.ac
index f1ed36b..fc28564 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2343,6 +2343,9 @@ AS_CASE([$rb_cv_coroutine], [yes|''], [
[*-openbsd*], [
rb_cv_coroutine=copy
],
+ [*-haiku*], [
+ rb_cv_coroutine=copy
+ ],
[*], [
rb_cv_coroutine=ucontext
]
--
2.26.0

View File

@@ -1,108 +0,0 @@
SUMMARY="A programming language focused on simplicity and productivity"
DESCRIPTION="Ruby is a dynamic, reflective, object-oriented, general-purpose \
programming language. It was designed and developed in the mid-1990s \
by Yukihiro 'Matz' Matsumoto in Japan.
Ruby embodies syntax inspired by Perl with Smalltalk-like features and \
was also influenced by Eiffel and Lisp. It supports multiple \
programming paradigms, including functional, object oriented, and \
imperative. It also has a dynamic type system and automatic memory \
management. Therefore, it is similar in varying degrees to, Smalltalk, \
Python, Perl, Lisp, Dylan, and CLU."
HOMEPAGE="https://www.ruby-lang.org/"
COPYRIGHT="1993-2018 Yukihiro Matsumoto"
LICENSE="Ruby
BSD (3-clause)"
REVISION="3"
SOURCE_URI="https://cache.ruby-lang.org/pub/ruby/2.2/ruby-$portVersion.tar.xz"
CHECKSUM_SHA256="bf77bcb7e6666ccae8d0882ea12b05f382f963f0a9a5285a328760c06a9ab650"
PATCHES="ruby-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
ruby$secondaryArchSuffix = $portVersion compat >= 2.2
cmd:erb = $portVersion compat >= 2.2
cmd:gem = $portVersion compat >= 2.2
cmd:irb = $portVersion compat >= 2.2
cmd:rake = $portVersion compat >= 2.2
cmd:rdoc = $portVersion compat >= 2.2
cmd:ri = $portVersion compat >= 2.2
cmd:ruby = $portVersion compat >= 2.2
cmd:testrb = $portVersion compat >= 2.2
lib:libruby$secondaryArchSuffix = 2.2.0 compat >= 2.2
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libcrypto$secondaryArchSuffix
lib:libedit$secondaryArchSuffix
lib:libffi$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libncursesw$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libssp$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
PROVIDES_devel="
ruby${secondaryArchSuffix}_devel = $portVersion
devel:libruby$secondaryArchSuffix = 2.2.0 compat >= 2.2
devel:libruby_static$secondaryArchSuffix = 2.2.0 compat >= 2.2
"
REQUIRES_devel="
ruby$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libcrypto$secondaryArchSuffix
devel:libedit$secondaryArchSuffix
devel:libffi$secondaryArchSuffix
devel:libiconv$secondaryArchSuffix
devel:libncursesw$secondaryArchSuffix
devel:libssl$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:autoconf
cmd:bison
cmd:g++$secondaryArchSuffix
cmd:gcc$secondaryArchSuffix
cmd:git
cmd:libtoolize$secondaryArchSuffix
cmd:make
cmd:pkg_config$secondaryArchSuffix
"
defineDebugInfoPackage ruby$secondaryArchSuffix \
"$libDir"/libruby.so.2.2.0
BUILD()
{
libtoolize --force --copy --install
autoconf
export CFLAGS=-D_BSD_SOURCE
runConfigure --omit-dirs binDir ./configure --enable-shared \
--disable-silent-rules \
--bindir=$prefix/bin
# The build process needs to run ruby, and without this it fails to find
# libruby.so.
export LIBRARY_PATH=$LIBRARY_PATH:%A
make $jobArgs
}
INSTALL()
{
export LIBRARY_PATH=$LIBRARY_PATH:%A
make install
prepareInstalledDevelLibs libruby-static libruby
fixPkgconfig
packageEntries devel $developDir
}
TEST()
{
export LIBRARY_PATH=$LIBRARY_PATH:%A
make check
}

View File

@@ -1,118 +0,0 @@
SUMMARY="A programming language focused on simplicity and productivity"
DESCRIPTION="Ruby is a dynamic, reflective, object-oriented, general-purpose \
programming language. It was designed and developed in the mid-1990s \
by Yukihiro 'Matz' Matsumoto in Japan.
Ruby embodies syntax inspired by Perl with Smalltalk-like features and \
was also influenced by Eiffel and Lisp. It supports multiple \
programming paradigms, including functional, object oriented, and \
imperative. It also has a dynamic type system and automatic memory \
management. Therefore, it is similar in varying degrees to, Smalltalk, \
Python, Perl, Lisp, Dylan, and CLU."
HOMEPAGE="https://www.ruby-lang.org/"
COPYRIGHT="1993-2019 Yukihiro Matsumoto"
LICENSE="Ruby
BSD (3-clause)"
REVISION="3"
SOURCE_URI="https://cache.ruby-lang.org/pub/ruby/${portVersion%.*}/ruby-$portVersion.tar.xz"
CHECKSUM_SHA256="27d350a52a02b53034ca0794efe518667d558f152656c2baaf08f3d0c8b02343"
PATCHES="ruby-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%.*}"
PROVIDES="
ruby$secondaryArchSuffix = $libVersionCompat
cmd:bundle = $libVersionCompat
cmd:bundler = $libVersionCompat
cmd:erb = $libVersionCompat
cmd:gem = $libVersionCompat
cmd:irb = $libVersionCompat
cmd:racc = $libVersionCompat
cmd:racc2y = $libVersionCompat
cmd:rake = $libVersionCompat
cmd:rdoc = $libVersionCompat
cmd:ri = $libVersionCompat
cmd:ruby = $libVersionCompat
cmd:testrb = $libVersionCompat
cmd:y2racc = $libVersionCompat
lib:libruby$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libcrypto$secondaryArchSuffix
lib:libedit$secondaryArchSuffix
lib:libffi$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libncursesw$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libssp$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
PROVIDES_devel="
ruby${secondaryArchSuffix}_devel = $portVersion
devel:libruby$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
ruby$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libcrypto$secondaryArchSuffix
devel:libedit$secondaryArchSuffix
devel:libffi$secondaryArchSuffix
devel:libiconv$secondaryArchSuffix
devel:libncursesw$secondaryArchSuffix
devel:libssl$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:autoreconf
cmd:bison
cmd:g++$secondaryArchSuffix
cmd:gcc$secondaryArchSuffix
cmd:git
cmd:libtoolize$secondaryArchSuffix
cmd:make
cmd:pkg_config$secondaryArchSuffix
"
defineDebugInfoPackage ruby$secondaryArchSuffix \
"$libDir"/libruby.so.$libVersion
BUILD()
{
export CFLAGS="-D_BSD_SOURCE"
export LDFLAGS="-lssp"
autoreconf -i
runConfigure --omit-dirs binDir ./configure \
--enable-shared \
--disable-silent-rules \
--enable-debug-env \
--bindir=$prefix/bin
# The build process needs to run ruby, and without this it fails to find
# libruby.so.
export LIBRARY_PATH=$LIBRARY_PATH:%A
make $jobArgs
}
INSTALL()
{
export LIBRARY_PATH=$LIBRARY_PATH:%A
make install
prepareInstalledDevelLib libruby
fixPkgconfig
packageEntries devel $developDir
}
TEST()
{
export LIBRARY_PATH=$LIBRARY_PATH:%A
make check
}

View File

@@ -1,141 +0,0 @@
SUMMARY="A programming language focused on simplicity and productivity"
DESCRIPTION="Ruby is a dynamic, reflective, object-oriented, general-purpose \
programming language. It was designed and developed in the mid-1990s \
by Yukihiro 'Matz' Matsumoto in Japan.
Ruby embodies syntax inspired by Perl with Smalltalk-like features and \
was also influenced by Eiffel and Lisp. It supports multiple \
programming paradigms, including functional, object oriented, and \
imperative. It also has a dynamic type system and automatic memory \
management. Therefore, it is similar in varying degrees to, Smalltalk, \
Python, Perl, Lisp, Dylan, and CLU."
HOMEPAGE="https://www.ruby-lang.org/"
COPYRIGHT="1993-2021 Yukihiro Matsumoto"
LICENSE="Ruby
BSD (3-clause)"
REVISION="4"
SOURCE_URI="https://cache.ruby-lang.org/pub/ruby/2.7/ruby-$portVersion.tar.bz2"
CHECKSUM_SHA256="bffa8aec9da392eda98f1c561071bb6e71d217d541c617fc6e3282d79f4e7d48"
SOURCE_DIR="ruby-$portVersion"
PATCHES="ruby-$portVersion.patchset"
ADDITIONAL_FILES="gemrc"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
GLOBAL_WRITABLE_FILES="settings/gemrc keep-old"
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%.*}"
PROVIDES="
ruby$secondaryArchSuffix = $libVersionCompat
cmd:bundle = $libVersionCompat
cmd:bundler = $libVersionCompat
cmd:erb = $libVersionCompat
cmd:gem = $libVersionCompat
cmd:irb = $libVersionCompat
cmd:racc = $libVersionCompat
cmd:racc2y = $libVersionCompat
cmd:rake = $libVersionCompat
cmd:rdoc = $libVersionCompat
cmd:ri = $libVersionCompat
cmd:ruby = $libVersionCompat
cmd:testrb = $libVersionCompat
cmd:y2racc = $libVersionCompat
lib:libruby$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libcrypto$secondaryArchSuffix
lib:libedit$secondaryArchSuffix
lib:libffi$secondaryArchSuffix
lib:libgdbm$secondaryArchSuffix
lib:libgmp$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libncursesw$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
PROVIDES_devel="
ruby${secondaryArchSuffix}_devel = $portVersion
devel:libruby$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
ruby$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libcrypto$secondaryArchSuffix
devel:libedit$secondaryArchSuffix
devel:libffi$secondaryArchSuffix
devel:libgdbm$secondaryArchSuffix
devel:libgmp$secondaryArchSuffix
devel:libiconv$secondaryArchSuffix
devel:libncursesw$secondaryArchSuffix
devel:libssl$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:autoconf
cmd:bison
cmd:g++$secondaryArchSuffix
cmd:gcc$secondaryArchSuffix
cmd:git
cmd:libtoolize$secondaryArchSuffix
cmd:make
cmd:pkg_config$secondaryArchSuffix
"
defineDebugInfoPackage ruby$secondaryArchSuffix \
"$libDir"/libruby.so.$libVersion
PATCH()
{
# Hack for ripper build
sed -i \
-e "/#define YYLTYPE_IS_DECLARED 1/a #define YYEMPTY -2" \
-e "/#define YYLTYPE_IS_DECLARED 1/a #define YYUNDEF 257" \
-e "/#define YYLTYPE_IS_DECLARED 1/a #define YYerror 256" \
$sourceDir/ext/ripper/ripper.y
}
BUILD()
{
export CFLAGS="-D_BSD_SOURCE"
autoconf
touch parse.c # Otherwise BASERUBY will be required, which results in circular dependency.
runConfigure --omit-dirs binDir ./configure \
--enable-shared \
--disable-silent-rules \
--enable-debug-env \
--bindir=$prefix/bin \
--with-dbm-type=gdbm_compat
# The build process needs to run ruby, and without this it fails to find
# libruby.so.
export LIBRARY_PATH=$LIBRARY_PATH:%A
make $jobArgs
}
INSTALL()
{
export LIBRARY_PATH=$LIBRARY_PATH:%A
make install
prepareInstalledDevelLib libruby
fixPkgconfig
packageEntries devel $developDir
cp -f $portDir/additional-files/gemrc $settingsDir/gemrc
}
TEST()
{
export LIBRARY_PATH=$LIBRARY_PATH:%A
make check
}

View File

@@ -13,7 +13,7 @@ HOMEPAGE="https://www.ruby-lang.org/"
COPYRIGHT="1993-2023 Yukihiro Matsumoto"
LICENSE="Ruby
BSD (3-clause)"
REVISION="1"
REVISION="2"
SOURCE_URI="https://cache.ruby-lang.org/pub/ruby/3.2/ruby-$portVersion.tar.gz"
CHECKSUM_SHA256="96c57558871a6748de5bc9f274e93f4b5aad06cd8f37befa0e8d94e7b8a423bc"
SOURCE_DIR="ruby-$portVersion"
@@ -79,14 +79,14 @@ REQUIRES_docs="
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libcrypto$secondaryArchSuffix
devel:libcrypto$secondaryArchSuffix >= 3
devel:libedit$secondaryArchSuffix
devel:libffi$secondaryArchSuffix
devel:libgdbm$secondaryArchSuffix
devel:libgmp$secondaryArchSuffix
devel:libiconv$secondaryArchSuffix
devel:libncursesw$secondaryArchSuffix
devel:libssl$secondaryArchSuffix
devel:libssl$secondaryArchSuffix >= 3
devel:libyaml_0$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"