Subject: [bug#75937] [PATCH v3 02/90] gnu: Add ruby-3.4.

From: Nicolas Graves <[email-masked]>
Date: Fri, 31 Jan 2025 07:52:57 +0100

* gnu/packages/ruby.scm (ruby-3.4): New variable.
---
 gnu/packages/ruby.scm | 60 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index c34fdb952d..de98a3c8b2 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -115,6 +115,66 @@ (define %prawn-project-licenses
         license:gpl2+
         license:gpl3+))
 
+(define-public ruby-3.4
+  (package
+    (name "ruby")
+    (version "3.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
+                           (version-major+minor version)
+                           "/ruby-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1bvhzbdwdj502wsrs97fvw6jvid2swzjvqj7v2kc1qrbnpzmk381"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:configure-flags
+       ,(if (%current-target-system)
+            '(list (string-append
+                    "LDFLAGS=-Wl,-rpath="
+                    (assoc-ref %outputs "out") "/lib")
+                   "--enable-shared")
+            ''("--enable-shared")) ; dynamic linking
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'replace-bin-sh-and-remove-libffi
+           (lambda _
+             (substitute* '("configure.ac"
+                            "template/Makefile.in"
+                            "lib/rubygems/installer.rb"
+                            "ext/pty/pty.c"
+                            "io.c"
+                            "lib/mkmf.rb"
+                            "process.c"
+                            "test/rubygems/test_gem_ext_configure_builder.rb"
+                            "test/rdoc/test_rdoc_parser.rb"
+                            "test/ruby/test_rubyoptions.rb"
+                            "test/ruby/test_process.rb"
+                            "test/ruby/test_system.rb"
+                            "tool/rbinstall.rb")
+               (("/bin/sh") (which "sh"))))))))
+    (native-inputs
+     (append (if (%current-target-system)
+                 (list this-package)
+                 '())
+             (list autoconf libyaml)))
+    (inputs
+     (list readline openssl-1.1 libffi gdbm))
+    (propagated-inputs
+     (list zlib))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "GEM_PATH")
+            (files (list (string-append "lib/ruby/vendor_ruby"))))))
+    (synopsis "Programming language interpreter")
+    (description "Ruby is a dynamic object-oriented programming language with
+a focus on simplicity and productivity.")
+    (home-page "https://www.ruby-lang.org")
+    (license license:ruby)))
+
 (define-public ruby-2.6
   (package
     (name "ruby")
-- 
2.48.1