You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
d57a6e62ac
See: https://www.ruby-lang.org/en/news/2026/03/26/ruby-3-3-11-released/ Also includes a few Portfile cleanups from v4.0.1, fixing a bug in the +jemalloc variant. Also disables the unnecessary compiler wrapper. TESTED: Built successfully on OSX 10.4-10.6 i386, 10.5-12.x x86_64, and 11.x-26.x arm64. Included all variants compatible with available dependencies on the respective platforms.
220 lines
8.2 KiB
Diff
220 lines
8.2 KiB
Diff
--- .gdbinit.orig 2026-03-25 17:05:04.000000000 -0700
|
|
+++ .gdbinit 2026-03-26 11:33:51.000000000 -0700
|
|
@@ -1,4 +1,5 @@
|
|
-set startup-with-shell off
|
|
+# Move this to end, so failure on older gdbs doesn't blow the rest
|
|
+# set startup-with-shell off
|
|
|
|
define hook-run
|
|
set $color_type = 0
|
|
@@ -1345,3 +1346,6 @@ define print_flags
|
|
end
|
|
|
|
source misc/gdb.py
|
|
+
|
|
+# Moved from beginning, since it fails on older gdbs
|
|
+set startup-with-shell off
|
|
--- ext/digest/md5/md5cc.h.orig 2026-03-25 17:05:04.000000000 -0700
|
|
+++ ext/digest/md5/md5cc.h 2026-03-26 11:33:51.000000000 -0700
|
|
@@ -17,3 +17,11 @@ static DEFINE_FINISH_FUNC_FROM_FINAL(MD5
|
|
#undef MD5_Finish
|
|
#define MD5_Update rb_digest_MD5_update
|
|
#define MD5_Finish rb_digest_MD5_finish
|
|
+
|
|
+/*
|
|
+ * Pre-10.6 defines are with args, which don't match the argless use in
|
|
+ * the function pointer inits. Thus, we redefine MD5_Init as well.
|
|
+ * This is a NOP on 10.6+.
|
|
+ */
|
|
+#undef MD5_Init
|
|
+#define MD5_Init CC_MD5_Init
|
|
--- ext/digest/sha1/sha1cc.h.orig 2026-03-25 17:05:04.000000000 -0700
|
|
+++ ext/digest/sha1/sha1cc.h 2026-03-26 11:33:51.000000000 -0700
|
|
@@ -12,3 +12,11 @@ static DEFINE_FINISH_FUNC_FROM_FINAL(SHA
|
|
#undef SHA1_Finish
|
|
#define SHA1_Update rb_digest_SHA1_update
|
|
#define SHA1_Finish rb_digest_SHA1_finish
|
|
+
|
|
+/*
|
|
+ * Pre-10.6 defines are with args, which don't match the argless use in
|
|
+ * the function pointer inits. Thus, we redefine SHA1_Init as well.
|
|
+ * This is a NOP on 10.6+.
|
|
+ */
|
|
+#undef SHA1_Init
|
|
+#define SHA1_Init CC_SHA1_Init
|
|
--- ext/digest/sha2/sha2cc.h.orig 2026-03-25 17:05:04.000000000 -0700
|
|
+++ ext/digest/sha2/sha2cc.h 2026-03-26 11:33:51.000000000 -0700
|
|
@@ -1,6 +1,33 @@
|
|
#define COMMON_DIGEST_FOR_OPENSSL 1
|
|
#include <CommonCrypto/CommonDigest.h>
|
|
|
|
+/*
|
|
+ * Prior to 10.5, OpenSSL-compatible definitions are missing for
|
|
+ * SHA2 macros, though the CC_ versions are present.
|
|
+ * Add the missing definitions we actually use here if needed.
|
|
+ * Note that the definitions are the argless 10.6+-style.
|
|
+ * The weird CTX mismatch is copied from the 10.6 header.
|
|
+ */
|
|
+#ifndef SHA256_DIGEST_LENGTH
|
|
+#define SHA256_DIGEST_LENGTH CC_SHA256_DIGEST_LENGTH
|
|
+#define SHA256_CTX CC_SHA256_CTX
|
|
+#define SHA256_Update CC_SHA256_Update
|
|
+#define SHA256_Final CC_SHA256_Final
|
|
+#endif /* !defined SHA256_DIGEST_LENGTH */
|
|
+
|
|
+#ifndef SHA384_DIGEST_LENGTH
|
|
+#define SHA384_DIGEST_LENGTH CC_SHA384_DIGEST_LENGTH
|
|
+#define SHA512_CTX CC_SHA512_CTX
|
|
+#define SHA384_Update CC_SHA384_Update
|
|
+#define SHA384_Final CC_SHA384_Final
|
|
+#endif /* !defined SHA384_DIGEST_LENGTH */
|
|
+
|
|
+#ifndef SHA512_DIGEST_LENGTH
|
|
+#define SHA512_DIGEST_LENGTH CC_SHA512_DIGEST_LENGTH
|
|
+#define SHA512_Update CC_SHA512_Update
|
|
+#define SHA512_Final CC_SHA512_Final
|
|
+#endif /* !defined SHA512_DIGEST_LENGTH */
|
|
+
|
|
#define SHA256_BLOCK_LENGTH CC_SHA256_BLOCK_BYTES
|
|
#define SHA384_BLOCK_LENGTH CC_SHA384_BLOCK_BYTES
|
|
#define SHA512_BLOCK_LENGTH CC_SHA512_BLOCK_BYTES
|
|
@@ -29,3 +56,15 @@ static DEFINE_FINISH_FUNC_FROM_FINAL(SHA
|
|
#undef SHA512_Finish
|
|
#define SHA512_Update rb_digest_SHA512_update
|
|
#define SHA512_Finish rb_digest_SHA512_finish
|
|
+
|
|
+/*
|
|
+ * Pre-10.6 defines are with args, which don't match the argless use in
|
|
+ * the function pointer inits. Thus, we redefine SHA*_Init as well.
|
|
+ * This is a NOP on 10.6+.
|
|
+ */
|
|
+#undef SHA256_Init
|
|
+#define SHA256_Init CC_SHA256_Init
|
|
+#undef SHA384_Init
|
|
+#define SHA384_Init CC_SHA384_Init
|
|
+#undef SHA512_Init
|
|
+#define SHA512_Init CC_SHA512_Init
|
|
--- file.c.orig 2026-03-25 17:05:04.000000000 -0700
|
|
+++ file.c 2026-03-26 11:33:51.000000000 -0700
|
|
@@ -299,10 +299,30 @@ rb_CFString_class_initialize_before_fork
|
|
long len = sizeof(small_str) - 1;
|
|
|
|
const CFAllocatorRef alloc = kCFAllocatorDefault;
|
|
+
|
|
+/*
|
|
+ * The 'NoCopy' version of CFStringCreateWithBytes didn't appear until
|
|
+ * 10.5, though the original CFStringCreateWithBytes has been available
|
|
+ * since 10.0. Hence, we need to use CFStringCreateWithBytes on OS versions
|
|
+ * earlier than 10.5.
|
|
+ *
|
|
+ * There's probably no significant benefit to using the 'NoCopy' version
|
|
+ * in this context, so making that substitution unconditionally would
|
|
+ * probably be fine (and simpler), but by the principle of least change,
|
|
+ * we limit the substitution to earlier OS versions (i.e., 10.4).
|
|
+ */
|
|
+# if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050
|
|
CFStringRef s = CFStringCreateWithBytesNoCopy(alloc,
|
|
(const UInt8 *)small_str,
|
|
len, kCFStringEncodingUTF8,
|
|
FALSE, kCFAllocatorNull);
|
|
+# else /* 10.4 */
|
|
+ CFStringRef s = CFStringCreateWithBytes(alloc,
|
|
+ (const UInt8 *)small_str,
|
|
+ len, kCFStringEncodingUTF8,
|
|
+ FALSE);
|
|
+# endif /* 10.4 */
|
|
+
|
|
CFMutableStringRef m = CFStringCreateMutableCopy(alloc, len, s);
|
|
CFRelease(m);
|
|
CFRelease(s);
|
|
@@ -314,10 +334,19 @@ rb_str_append_normalized_ospath(VALUE st
|
|
{
|
|
CFIndex buflen = 0;
|
|
CFRange all;
|
|
+
|
|
+/* See above comment regarding CFStringCreateWithBytes[NoCopy]. */
|
|
+# if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050
|
|
CFStringRef s = CFStringCreateWithBytesNoCopy(kCFAllocatorDefault,
|
|
(const UInt8 *)ptr, len,
|
|
kCFStringEncodingUTF8, FALSE,
|
|
kCFAllocatorNull);
|
|
+# else /* 10.4 */
|
|
+ CFStringRef s = CFStringCreateWithBytes(kCFAllocatorDefault,
|
|
+ (const UInt8 *)ptr, len,
|
|
+ kCFStringEncodingUTF8, FALSE);
|
|
+# endif /* 10.4 */
|
|
+
|
|
CFMutableStringRef m = CFStringCreateMutableCopy(kCFAllocatorDefault, len, s);
|
|
long oldlen = RSTRING_LEN(str);
|
|
|
|
--- lib/bundler/gem_helper.rb.orig 2026-03-25 17:05:04.000000000 -0700
|
|
+++ lib/bundler/gem_helper.rb 2026-03-26 11:33:51.000000000 -0700
|
|
@@ -231,7 +231,7 @@ module Bundler
|
|
end
|
|
|
|
def gem_command
|
|
- ENV["GEM_COMMAND"]&.shellsplit || ["gem"]
|
|
+ ENV["GEM_COMMAND"]&.shellsplit || ["gem3.3"]
|
|
end
|
|
end
|
|
end
|
|
--- signal.c.orig 2026-03-25 17:05:04.000000000 -0700
|
|
+++ signal.c 2026-03-26 11:33:51.000000000 -0700
|
|
@@ -804,7 +804,8 @@ check_stack_overflow(int sig, const uint
|
|
const greg_t bp = mctx->gregs[REG_EBP];
|
|
# endif
|
|
# elif defined __APPLE__
|
|
-# if __DARWIN_UNIX03
|
|
+# include <AvailabilityMacros.h>
|
|
+# if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
|
|
# define MCTX_SS_REG(reg) __ss.__##reg
|
|
# else
|
|
# define MCTX_SS_REG(reg) ss.reg
|
|
--- thread_pthread.c.orig 2026-03-25 17:05:04.000000000 -0700
|
|
+++ thread_pthread.c 2026-03-26 11:33:51.000000000 -0700
|
|
@@ -42,6 +42,22 @@
|
|
|
|
#if defined __APPLE__
|
|
# include <AvailabilityMacros.h>
|
|
+
|
|
+/*
|
|
+ * This code is built with _XOPEN_SOURCE=1 and _DARWIN_C_SOURCE=1, which
|
|
+ * blocks the declaration of pthread_mach_thread_np() in pthread.h on 10.4.
|
|
+ * Overriding this by also defining _DARWIN_C_SOURCE didn't become available
|
|
+ * until 10.5. The missing prototype went unnoticed until gcc14 started
|
|
+ * calling it an error.
|
|
+ *
|
|
+ * Note that many uses of Apple-specific functions with these settings are
|
|
+ * illegal (on 10.4), but for now we just fix the immediate problem by
|
|
+ * duplicating the missing declaration. There's no need to make this
|
|
+ * conditional, since redundant prototypes are legal.
|
|
+ */
|
|
+#include <mach/port.h>
|
|
+mach_port_t pthread_mach_thread_np(pthread_t);
|
|
+
|
|
#endif
|
|
|
|
#if defined(HAVE_SYS_EVENTFD_H) && defined(HAVE_EVENTFD)
|
|
--- vm_dump.c.orig 2026-03-25 17:05:04.000000000 -0700
|
|
+++ vm_dump.c 2026-03-26 11:33:51.000000000 -0700
|
|
@@ -490,7 +490,8 @@ rb_vmdebug_thread_dump_state(FILE *errou
|
|
}
|
|
|
|
#if defined __APPLE__
|
|
-# if __DARWIN_UNIX03
|
|
+# include <AvailabilityMacros.h>
|
|
+# if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
|
|
# define MCTX_SS_REG(reg) __ss.__##reg
|
|
# else
|
|
# define MCTX_SS_REG(reg) ss.reg
|
|
@@ -502,7 +503,8 @@ rb_vmdebug_thread_dump_state(FILE *errou
|
|
# ifdef HAVE_LIBUNWIND
|
|
# undef backtrace
|
|
# define backtrace unw_backtrace
|
|
-# elif defined(__APPLE__) && defined(HAVE_LIBUNWIND_H)
|
|
+# elif defined(__APPLE__) && defined(HAVE_LIBUNWIND_H) \
|
|
+ && MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
|
|
# define UNW_LOCAL_ONLY
|
|
# include <libunwind.h>
|
|
# include <sys/mman.h>
|