gnu: linux-libre-arm-generic: Add mitigation for CVE-2017-1000364.
[jackhill/guix/guix.git] / gnu / packages / smalltalk.scm
CommitLineData
54845460
NK
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
0c9df457 3;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
ef380d72
NG
4;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
5;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
54845460
NK
6;;;
7;;; This file is part of GNU Guix.
8;;;
9;;; GNU Guix is free software; you can redistribute it and/or modify it
10;;; under the terms of the GNU General Public License as published by
11;;; the Free Software Foundation; either version 3 of the License, or (at
12;;; your option) any later version.
13;;;
14;;; GNU Guix is distributed in the hope that it will be useful, but
15;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;;; GNU General Public License for more details.
18;;;
19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21
22(define-module (gnu packages smalltalk)
5b65bcab 23 #:use-module ((guix licenses) #:prefix license:)
54845460
NK
24 #:use-module (guix packages)
25 #:use-module (guix download)
ef380d72 26 #:use-module (guix build-system cmake)
54845460 27 #:use-module (guix build-system gnu)
ef380d72 28 #:use-module (gnu packages audio)
0c9df457 29 #:use-module (gnu packages autotools)
ef380d72
NG
30 #:use-module (gnu packages base)
31 #:use-module (gnu packages fontutils)
32 #:use-module (gnu packages gl)
33 #:use-module (gnu packages glib)
0c9df457
EF
34 #:use-module (gnu packages libffi)
35 #:use-module (gnu packages libsigsegv)
ef380d72 36 #:use-module (gnu packages linux)
0c9df457 37 #:use-module (gnu packages pkg-config)
ef380d72
NG
38 #:use-module (gnu packages pulseaudio)
39 #:use-module (gnu packages xorg)
54845460
NK
40 #:use-module (gnu packages zip))
41
42(define-public smalltalk
43 (package
44 (name "smalltalk")
693b57e4 45 (version "3.2.5")
54845460
NK
46 (source
47 (origin
48 (method url-fetch)
49 (uri (string-append "mirror://gnu/smalltalk/smalltalk-"
50 version ".tar.xz"))
51 (sha256
52 (base32
693b57e4 53 "1k2ssrapfzhngc7bg1zrnd9n2vyxp9c9m70byvsma6wapbvib6l1"))))
54845460 54 (build-system gnu-build-system)
0c9df457
EF
55 (native-inputs
56 `(("libffi" ,libffi)
57 ("libltdl" ,libltdl)
58 ("libsigsegv" ,libsigsegv)
59 ("pkg-config" ,pkg-config)))
60 (inputs
61 `(("zip" ,zip)))
54845460
NK
62 (arguments
63 `(#:phases (alist-cons-before
64 'configure 'fix-libc
65 (lambda _
66 (let ((libc (assoc-ref %build-inputs "libc")))
67 (substitute* "libc.la.in"
68 (("@LIBC_SO_NAME@") "libc.so")
69 (("@LIBC_SO_DIR@") (string-append libc "/lib")))))
70 %standard-phases)))
0c9df457 71 (home-page "http://smalltalk.gnu.org/")
f50d2669 72 (synopsis "Smalltalk environment")
54845460 73 (description
a22dc0c4
LC
74 "GNU Smalltalk is a free implementation of the Smalltalk language. It
75implements the ANSI standard for the language and also includes extra classes
76such as ones for networking and GUI programming.")
5b65bcab 77 (license license:gpl2+)))
ef380d72
NG
78
79(define-public squeak-vm
80 (package
81 (name "squeak-vm")
82 (version "4.10.2.2614")
83 (source
84 (origin
85 (method url-fetch)
86 (uri (string-append "http://www.squeakvm.org/unix/release/"
87 "Squeak-" version "-src.tar.gz"))
88 (sha256
89 (base32
4af1876e
LC
90 "0bpwbnpy2sb4gylchfx50sha70z36bwgdxraym4vrr93l8pd3dix"))
91 (modules '((guix build utils)))
92 (snippet
93 ;; Make builds bit-reproducible.
94 '(begin
95 (substitute* "unix/cmake/verstamp"
96 (("vm_date=.*")
97 "vm_date = \"1970-01-01\";\n")
98 (("ux_version=.*")
99 "ux_version = \"GNU\";\n"))
100 (substitute* "unix/vm/config.cmake"
101 (("\\(VM_BUILD_STRING.*")
102 "(VM_BUILD_STRING \\\"Built with GNU Guix\\\")"))))))
ef380d72
NG
103 (inputs
104 `(("alsa-lib" ,alsa-lib)
105 ("dbus" ,dbus)
106 ("freetype" ,freetype)
107 ("libffi" ,libffi)
108 ("libxrender" ,libxrender)
109 ("mesa" ,mesa)
110 ("pulseaudio" ,pulseaudio)))
111 (native-inputs
112 `(("pkg-config" ,pkg-config)))
113 (build-system cmake-build-system)
114 (arguments
115 `(#:tests? #f ;no check target
116 #:phases
117 (modify-phases %standard-phases
118 (add-after 'unpack 'remove-hardcoded-PATH
119 (lambda _
120 ;; Remove hard-coded FHS PATH entries.
121 (substitute* '("unix/cmake/squeak.in"
122 "unix/cmake/squeak.sh.in")
123 (("^PATH=.*") ""))
124 #t))
125 (add-after 'unpack 'create-build-dir
126 (lambda _
127 (mkdir "bld")
128 #t))
129 (replace 'configure
130 (lambda* (#:key outputs #:allow-other-keys)
131 (let ((out (assoc-ref outputs "out")))
132 (with-directory-excursion "bld"
133 (zero?
134 (system* "../unix/cmake/configure"
135 (string-append "--prefix=" out)
136 "--without-quartz"))))))
137 (replace 'build
138 (lambda _
139 (with-directory-excursion "bld"
140 (zero? (system* "make"))))))))
141 (synopsis "Smalltalk programming language and environment")
142 (description "Squeak is a full-featured implementation of the Smalltalk
143programming language and environment based on (and largely compatible with)
144the original Smalltalk-80 system. Squeak has very powerful 2- and 3-D
145graphics, sound, video, MIDI, animation and other multimedia capabilities. It
146also includes a customisable framework for creating dynamic HTTP servers and
147interactively extensible Web sites.")
148 (home-page "http://www.squeakvm.org")
149 (license license:x11)))