gnu: Add squeak-vm.

* gnu/packages/smalltalk.scm (squeak-vm): New variable.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Nicolas Goaziou 2016-08-24 22:58:44 +02:00 committed by Ludovic Courtès
parent 5b65bcab59
commit ef380d72ce
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 71 additions and 0 deletions

View File

@ -1,6 +1,8 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -21,11 +23,20 @@
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages libffi) #:use-module (gnu packages libffi)
#:use-module (gnu packages libsigsegv) #:use-module (gnu packages libsigsegv)
#:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages xorg)
#:use-module (gnu packages zip)) #:use-module (gnu packages zip))
(define-public smalltalk (define-public smalltalk
@ -64,3 +75,63 @@
implements the ANSI standard for the language and also includes extra classes implements the ANSI standard for the language and also includes extra classes
such as ones for networking and GUI programming.") such as ones for networking and GUI programming.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public squeak-vm
(package
(name "squeak-vm")
(version "4.10.2.2614")
(source
(origin
(method url-fetch)
(uri (string-append "http://www.squeakvm.org/unix/release/"
"Squeak-" version "-src.tar.gz"))
(sha256
(base32
"0bpwbnpy2sb4gylchfx50sha70z36bwgdxraym4vrr93l8pd3dix"))))
(inputs
`(("alsa-lib" ,alsa-lib)
("dbus" ,dbus)
("freetype" ,freetype)
("libffi" ,libffi)
("libxrender" ,libxrender)
("mesa" ,mesa)
("pulseaudio" ,pulseaudio)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no check target
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'remove-hardcoded-PATH
(lambda _
;; Remove hard-coded FHS PATH entries.
(substitute* '("unix/cmake/squeak.in"
"unix/cmake/squeak.sh.in")
(("^PATH=.*") ""))
#t))
(add-after 'unpack 'create-build-dir
(lambda _
(mkdir "bld")
#t))
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(with-directory-excursion "bld"
(zero?
(system* "../unix/cmake/configure"
(string-append "--prefix=" out)
"--without-quartz"))))))
(replace 'build
(lambda _
(with-directory-excursion "bld"
(zero? (system* "make"))))))))
(synopsis "Smalltalk programming language and environment")
(description "Squeak is a full-featured implementation of the Smalltalk
programming language and environment based on (and largely compatible with)
the original Smalltalk-80 system. Squeak has very powerful 2- and 3-D
graphics, sound, video, MIDI, animation and other multimedia capabilities. It
also includes a customisable framework for creating dynamic HTTP servers and
interactively extensible Web sites.")
(home-page "http://www.squeakvm.org")
(license license:x11)))