diff mbox

Add squeak-vm

Message ID 87oa4gyo8s.fsf@saiph.selenimh
State New
Headers show

Commit Message

Nicolas Goaziou Aug. 26, 2016, 7:37 a.m. UTC
Correcting myself,

Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:

> The following patches add squeak-vm.
>
> The build process is rather unusual since this is cmake with a configure
> script in a remote place. IOW, I couldn't build it with regular
> cmake-build-system and #:configure-flags.

Here is an update for the second patch. The 64bit VM is not necessary at
this point. If needed it could be built as another package inheriting
from this one.

Comments

Ludovic Courtès Aug. 30, 2016, 10:02 a.m. UTC | #1
Hi,

Nicolas Goaziou <mail@nicolasgoaziou.fr> skribis:

> From 5d0d8f39c0d4ef1c857421da64e6bab2bc07d852 Mon Sep 17 00:00:00 2001
> From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
> Date: Wed, 24 Aug 2016 22:58:44 +0200
> Subject: [PATCH 2/2] gnu: Add squeak-vm
>
> * gnu/packages/smalltalk.scm (squeak-vm): New variable.

Applied with minor changes:

> +    (native-inputs
> +     `(("alsa-lib" ,alsa-lib)
> +       ("dbus" ,dbus)
> +       ("freetype" ,freetype)
> +       ("libffi" ,libffi)
> +       ("libiconv" ,libiconv)
> +       ("libxrender" ,libxrender)
> +       ("mesa" ,mesa)
> +       ("pkg-config" ,pkg-config)
> +       ("pulseaudio" ,pulseaudio)))

Only ‘pkg-config’ needs to be native input, and libiconv can be omitted.

> +    (synopsis "Implementation of the Smalltalk programming language
> +and environment")

Removed “Implementation of the”.

I added a phase to remove PATH=/usr/bin in bin/squeak{,.sh}.

I also added a copyright line for you.

The next commit makes builds reproducible by removing timestamps from
the binaries.

Please let me know if anything is amiss!

Thanks,
Ludo’.
diff mbox

Patch

From 5d0d8f39c0d4ef1c857421da64e6bab2bc07d852 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Wed, 24 Aug 2016 22:58:44 +0200
Subject: [PATCH 2/2] gnu: Add squeak-vm

* gnu/packages/smalltalk.scm (squeak-vm): New variable.
---
 gnu/packages/smalltalk.scm | 64 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm
index 42de69a..e44f543 100644
--- a/gnu/packages/smalltalk.scm
+++ b/gnu/packages/smalltalk.scm
@@ -22,11 +22,20 @@ 
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages audio)
   #: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 libsigsegv)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages xorg)
   #:use-module (gnu packages zip))
 
 (define-public smalltalk
@@ -65,3 +74,58 @@ 
 implements the ANSI standard for the language and also includes extra classes
 such as ones for networking and GUI programming.")
     (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"))))
+    (native-inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("dbus" ,dbus)
+       ("freetype" ,freetype)
+       ("libffi" ,libffi)
+       ("libiconv" ,libiconv)
+       ("libxrender" ,libxrender)
+       ("mesa" ,mesa)
+       ("pkg-config" ,pkg-config)
+       ("pulseaudio" ,pulseaudio)))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ;No check target
+       #:phases
+       (modify-phases %standard-phases
+         (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 "Implementation of the 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)))
-- 
2.9.2