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