mirror of
https://https.git.savannah.gnu.org/git/guix.git/
synced 2025-07-13 10:30:43 +02:00
* gnu/packages/ruby.scm: Move all packages except different versions of ruby and mruby, to either (gnu packages ruby-check) or (gnu packages ruby-xyz). * gnu/packages/ruby-check.scm (bundler, ruby-builder, ruby-cucumber-ci-environment, ruby-cucumber-compatibility-kit, ruby-cucumber-compatibility-kit-bootstrap, ruby-cucumber-core, ruby-cucumber-expressions, ruby-cucumber-gherkin, ruby-cucumber-html-formatter, ruby-cucumber-messages, ruby-cucumber-tag-expressions, ruby-cucumber-wire, ruby-diff-lcs, ruby-docile, ruby-fivemat, ruby-given-core, ruby-hoe, ruby-hoe-3, ruby-json, ruby-mime-types, ruby-mime-types-data, ruby-mini-portile, ruby-mini-portile-2, ruby-minitest, ruby-minitest-bonus-assertions, ruby-minitest-focus, ruby-minitest-hooks, ruby-minitest-moar, ruby-multi-test, ruby-rake, ruby-rake-compiler, ruby-rake-compiler-dock, ruby-rspec, ruby-rspec-2, ruby-rspec-core, ruby-rspec-core-2, ruby-rspec-expectations, ruby-rspec-expectations-2, ruby-rspec-mocks, ruby-rspec-mocks-2, ruby-rspec-support, ruby-sequel, ruby-simplecov-json-formatter, ruby-simplecov, ruby-simplecov-html, ruby-sorcerer, ruby-unindent): Moved from (gnu packages ruby). (ruby-asciidoctor/minimal): New variable, to allow more minimal import of only (gnu packages ruby-check) in a lot of modules. (ruby-rubocop/minimal): New variable to build cucumber with a lot less dependencies. (cucumber-ruby-core)[native-inputs]: Replace ruby-rubocop by ruby-rubocop/minimal. Remove ruby-coveralls. * gnu/packages/ruby-xyz.scm: Move all other packages from (gnu packages ruby). * gnu/packages/admin.scm * gnu/packages/bioinformatics.scm * gnu/packages/databases.scm * gnu/packages/emacs-xyz.scm * gnu/packages/gnome-xyz.scm * gnu/packages/gnome.scm * gnu/packages/groff.scm * gnu/packages/kde-systemtools.scm * gnu/packages/libffi.scm * gnu/packages/mail.scm * gnu/packages/maths.scm * gnu/packages/mpd.scm * gnu/packages/ntp.scm * gnu/packages/package-management.scm * gnu/packages/plotutils.scm * gnu/packages/protobuf.scm * gnu/packages/rails.scm * gnu/packages/ruby-check.scm * gnu/packages/ruby-xyz.scm * gnu/packages/ruby.scm * gnu/packages/shellutils.scm * gnu/packages/statistics.scm * gnu/packages/tex.scm * gnu/packages/virtualization.scm: Adapt module imports accordingly. * gnu/packages/backup.scm (btrbk): * gnu/packages/ccache.scm (ccache): * gnu/packages/cluster.scm (drbd-utils): * gnu/packages/compton.scm (picom): * gnu/packages/cryptsetup.scm (cryptsetup): * gnu/packages/engineering.scm (kicad-doc): * gnu/packages/games.scm (warzone2100): * gnu/packages/irc.scm (open-adventure): * gnu/packages/ntp.scm (weechat): * gnu/packages/password-utils.scm (keepassxc): * gnu/packages/radio.scm (wsjtx, jtdx): * gnu/packages/syndication.scm (newsboat): * gnu/packages/task-management.scm (timewarrior): * gnu/packages/version-control.scm (git-lfs): [native-inputs]: Replace ruby-asciidoctor by ruby-asciidoctor/minimal. Adapt module imports accordingly. * gnu/packages/text-editors.scm: Remove (gnu packages ruby) import. Signed-off-by: Andreas Enge <andreas@enge.fr>
326 lines
12 KiB
Scheme
326 lines
12 KiB
Scheme
;;; GNU Guix --- Functional package management for GNU
|
|
;;; Copyright © 2014, 2015 Pjotr Prins <pjotr.guix@thebird.nl>
|
|
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
|
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
|
|
;;; Copyright © 2015-2018 Ben Woodcroft <donttrustben@gmail.com>
|
|
;;; Copyright © 2015 David Thompson <davet@gnu.org>
|
|
;;; Copyright © 2015, 2019 Ricardo Wurmus <rekado@elephly.net>
|
|
;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
|
|
;;; Copyright © 2019, 2020 Christopher Baines <mail@cbaines.net>
|
|
;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
|
|
;;; Copyright © 2020, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
|
;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
|
|
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
|
;;; Copyright © 2021 Marius Bakke <marius@gnu.org>
|
|
;;; Copyright © 2023 Christopher Baines <mail@cbaines.net>
|
|
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
|
|
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
|
|
;;; Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr>
|
|
;;;
|
|
;;; This file is part of GNU Guix.
|
|
;;;
|
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
|
;;; under the terms of the GNU General Public License as published by
|
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
|
;;; your option) any later version.
|
|
;;;
|
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
;;; GNU General Public License for more details.
|
|
;;;
|
|
;;; You should have received a copy of the GNU General Public License
|
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
(define-module (gnu packages ruby)
|
|
#:use-module ((guix licenses) #:prefix license:)
|
|
#:use-module (gnu packages)
|
|
#:use-module (gnu packages base)
|
|
#:use-module (gnu packages bison)
|
|
#:use-module (gnu packages c)
|
|
#:use-module (gnu packages check)
|
|
#:use-module (gnu packages compression)
|
|
#:use-module (gnu packages crypto)
|
|
#:use-module (gnu packages curl)
|
|
#:use-module (gnu packages databases)
|
|
#:use-module (gnu packages dbm)
|
|
#:use-module (gnu packages freedesktop)
|
|
#:use-module (gnu packages rails)
|
|
#:use-module (gnu packages readline)
|
|
#:use-module (gnu packages autotools)
|
|
#:use-module (gnu packages graphviz)
|
|
#:use-module (gnu packages haskell-xyz)
|
|
#:use-module (gnu packages java)
|
|
#:use-module (gnu packages libffi)
|
|
#:use-module (gnu packages libidn)
|
|
#:use-module (gnu packages linux)
|
|
#:use-module (gnu packages lsof)
|
|
#:use-module (gnu packages man)
|
|
#:use-module (gnu packages maths)
|
|
#:use-module (gnu packages ncurses)
|
|
#:use-module (gnu packages networking)
|
|
#:use-module (gnu packages node)
|
|
#:use-module (gnu packages perl)
|
|
#:use-module (gnu packages pkg-config)
|
|
#:use-module (gnu packages protobuf)
|
|
#:use-module (gnu packages python)
|
|
#:use-module (gnu packages python-xyz)
|
|
#:use-module (gnu packages ragel)
|
|
#:use-module (gnu packages rsync)
|
|
#:use-module (gnu packages sqlite)
|
|
#:use-module (gnu packages tls)
|
|
#:use-module (gnu packages valgrind)
|
|
#:use-module (gnu packages version-control)
|
|
#:use-module (gnu packages virtualization)
|
|
#:use-module (gnu packages web-browsers)
|
|
#:use-module (gnu packages serialization)
|
|
#:use-module (guix packages)
|
|
#:use-module (guix download)
|
|
#:use-module (guix git-download)
|
|
#:use-module (guix gexp)
|
|
#:use-module (guix modules)
|
|
#:use-module (guix utils)
|
|
#:use-module (guix build-system gnu)
|
|
#:use-module (gnu packages xml)
|
|
#:use-module (gnu packages web)
|
|
#:use-module (guix build-system ruby))
|
|
|
|
(define-public ruby-3.4
|
|
(package
|
|
(name "ruby")
|
|
(version "3.4.4")
|
|
(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
|
|
"1x18dr3qhr1mypbvxc7yr46z06l11if3cx3babcfv7a9x7pn6vgp"))))
|
|
(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-3.3
|
|
(package
|
|
(inherit ruby-3.4)
|
|
(version "3.3.7")
|
|
(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
|
|
"0wmdnqcmfa5mf961hzklvjic7vdpgrbl2ckhaafb1m0fbrhbrg2x"))))))
|
|
|
|
(define-public ruby-3.2
|
|
(package
|
|
(inherit ruby-3.3)
|
|
(version "3.2.8")
|
|
(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
|
|
"0g3s68kcxb24y4h24wvikvk5v3q6l6hs0kjxms9m49sm048d7k0w"))))))
|
|
|
|
(define-public ruby-3.1
|
|
(package
|
|
(inherit ruby-3.2)
|
|
(version "3.1.7")
|
|
(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
|
|
"0ddhh3nzfnwwb0ks3rsmf3w1m71ban30wf61djn8gnkbbd2wr2k5"))))
|
|
(inputs
|
|
(modify-inputs (package-inputs ruby-3.2)
|
|
(delete "libyaml")))))
|
|
|
|
(define-public ruby-2.7
|
|
(package
|
|
(name "ruby")
|
|
(version "2.7.8")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append "https://cache.ruby-lang.org/pub/ruby/"
|
|
(version-major+minor version)
|
|
"/ruby-" version ".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"182vni66djmiqagwzfsd0za7x9k3zag43b88c590aalgphybdnn2"))
|
|
(modules '((guix build utils)))
|
|
(snippet `(begin
|
|
;; Remove bundled libffi
|
|
(delete-file-recursively "ext/fiddle/libffi-3.2.1")
|
|
#t))))
|
|
(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")))
|
|
#t))
|
|
,@(if (system-hurd?)
|
|
'((add-after 'unpack 'skip-tests
|
|
(lambda _
|
|
(delete-file "bootstraptest/test_io.rb")
|
|
(delete-file "test/ruby/test_io.rb"))))
|
|
'()))))
|
|
(native-inputs
|
|
(append (if (%current-target-system)
|
|
(list this-package)
|
|
'())
|
|
(list autoconf)))
|
|
(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 ruby-3.2)
|
|
|
|
(define-public mruby
|
|
(package
|
|
(name "mruby")
|
|
(version "3.3.0")
|
|
(source
|
|
(origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/mruby/mruby")
|
|
(commit version)))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"0zynr6dk0zxdip53il0qr0rhyzmjicpkxs63l77acpx8b05h8amc"))))
|
|
(build-system gnu-build-system)
|
|
(arguments
|
|
`(#:test-target "test"
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(delete 'configure)
|
|
(add-after 'unpack 'enable-verbose-tests
|
|
(lambda _
|
|
(substitute* "Makefile"
|
|
(("ruby ./minirake" m)
|
|
(string-append m " --verbose")))))
|
|
(add-after 'unpack 'disable-broken-tests
|
|
(lambda _
|
|
(substitute* "mrbgems/mruby-io/test/io.rb"
|
|
(("assert\\('IO.popen.+$" m)
|
|
(string-append m "skip \"Hangs in the Guix build environment\"\n"))
|
|
;; This one is really weird. The *expected* output is all wrong.
|
|
(("assert\\('`cmd`.*" m)
|
|
(string-append m "skip \"Disable for Guix\"\n")))))
|
|
;; There is no install target
|
|
(replace 'install
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
(bin (string-append out "/bin"))
|
|
(lib (string-append out "/lib"))
|
|
(inc (string-append out "/include")))
|
|
(mkdir-p bin)
|
|
(copy-recursively "build/host/bin" bin)
|
|
(mkdir-p lib)
|
|
(copy-recursively "build/host/lib" lib)
|
|
(mkdir-p inc)
|
|
(copy-recursively "include" inc)))))))
|
|
(native-inputs
|
|
(list ruby bison))
|
|
(home-page "https://github.com/mruby/mruby")
|
|
(synopsis "Lightweight Ruby")
|
|
(description "mruby is the lightweight implementation of the Ruby
|
|
language. Its syntax is Ruby 3.x compatible except for pattern
|
|
matching. mruby can be linked and embedded within your application.")
|
|
(license license:expat)))
|
|
|
|
;;;
|
|
;;; Avoid adding new packages to the end of this file. To reduce the chances
|
|
;;; of a merge conflict, place them above by existing packages with similar
|
|
;;; functionality or similar names.
|
|
;;;
|