-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathruby.scm
109 lines (106 loc) · 4.44 KB
/
ruby.scm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Pjotr Prins <[email protected]>
;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <[email protected]>
;;; Copyright © 2014, 2015 Mark H Weaver <[email protected]>
;;; Copyright © 2014, 2015 David Thompson <[email protected]>
;;; Copyright © 2015, 2019 Ricardo Wurmus <[email protected]>
;;; Copyright © 2015, 2016, 2017 Ben Woodcroft <[email protected]>
;;; Copyright © 2017 ng0 <[email protected]>
;;; Copyright © 2017, 2019 Marius Bakke <[email protected]>
;;; Copyright © 2017, 2018, 2019 Efraim Flashner <[email protected]>
;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <[email protected]>
;;; Copyright © 2017 Clément Lassieur <[email protected]>
;;; Copyright © 2017, 2018, 2019 Christopher Baines <[email protected]>
;;; Copyright © 2018 Vasile Dumitrascu <[email protected]>
;;; Copyright © 2018 Alex Vong <[email protected]>
;;; Copyright © 2019 Pierre Neidhardt <[email protected]>
;;; Copyright © 2019 Mikhail Kirillov <[email protected]>
;;; Copyright © 2019 Jelle Licht <[email protected]>
;;; Copyright © 2019 Brian Leung <[email protected]>
;;; Copyright © 2019 Collin J. Doering <[email protected]>
;;; Copyright © 2019 Diego N. Barbato <[email protected]>
;;; Copyright © 2020 Ryan Prior <[email protected]>
(define-module (contributed 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 check)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
#:use-module (gnu packages dbm)
#:use-module (gnu packages rails)
#:use-module (gnu packages readline)
#:use-module (gnu packages autotools)
#: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 maths)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
#:use-module (gnu packages node)
#: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 ruby)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#: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)
#:use-module ((srfi srfi-1) #:select (alist-delete)))
;; TODO package jaro_winkler-1.5.4
;; TODO package unf_ext-0.0.7.6
;; irb wants these things >:3
(define-public ruby-2.7
(package
(inherit ruby)
(version "2.7.2")
(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
"1m63461mxi3fg4y3bspbgmb0ckbbb1ldgf9xi0piwkpfsk80cmvf"))
(modules '((guix build utils)))
(snippet `(begin
;; Remove bundled libffi
(delete-file-recursively "ext/fiddle/libffi-3.2.1")
#t))))
(arguments
`(#:test-target "test"
#:configure-flags '("--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)))))
(native-inputs
`(("autoconf" ,autoconf)))))