Update: Better upstream reference, I will try to include a patch.



Am 04.12.2020 um 12:34 schrieb Holger Peters <holger.peters@posteo.de>:

Investigating the test failures, I found https://lists.gnu.org/archive/html/help-smalltalk/2015-02/msg00001.html which is the reference in gnu smalltalk mailinglists that matches the observed test failures when I build on my machine.

Am 28.11.2020 um 23:09 schrieb Holger Peters <holger.peters@posteo.de>:

Last stable GNU smalltalk release dates back to 2013-04-08.  Disabled tests as
they were also failing for my non-guix build.  Also added the latest alpha
release as `smalltalk-next` and a build from vcs where we actually pass the
tests.

* gnu/packages/ruby.scm (smalltalk): Disable tests
(smalltalk-next): New variable.
(smalltalk-next-from-vcs): New variable.
---
gnu/packages/smalltalk.scm | 63 +++++++++++++++++++++++++++++++++++++-
1 file changed, 62 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm
index 5d35f563e2..c96f4b1730 100644
--- a/gnu/packages/smalltalk.scm
+++ b/gnu/packages/smalltalk.scm
@@ -24,20 +24,26 @@
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (guix download)
+  #:use-module (guix git-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 bison)
  #:use-module (gnu packages compression)
+  #:use-module (gnu packages flex)
  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages gettext)
  #: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 perl)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages texinfo)
  #:use-module (gnu packages xorg))

(define-public smalltalk
@@ -61,7 +67,8 @@
    (inputs
     `(("zip" ,zip)))
    (arguments
-     `(#:phases
+     `(#:tests? #f  ; failing tests, 3.2.5 has been released years ago
+       #:phases
       (modify-phases %standard-phases
         (add-before 'configure 'fix-libc
           (lambda _
@@ -145,3 +152,57 @@ also includes a customisable framework for creating dynamic HTTP servers and
interactively extensible Web sites.")
    (home-page "http://squeakvm.org/")
    (license license:x11)))
+
+;;; alpha release
+(define-public smalltalk-next
+  (package (inherit smalltalk)
+    (name "smalltalk-next")
+    (version "3.2.91")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://alpha.gnu.org/gnu/smalltalk/smalltalk-"
+                           version ".tar.xz"))
+       (sha256
+        (base32 "1zb2h5cbz1cwybqjl24lflw359lwj7sjvvhwb4x6miypzhwq4qh0"))))))
+
+;;; This version from the main development branch can be built with passing
+;;; tests
+(define-public smalltalk-next-from-vcs
+  (let ((revision "18")
+        (commit "dfe4b5660037c4d178853ee00458a75e51a88563")
+        (git-url "git://git.sv.gnu.org/smalltalk.git"))
+    (package (inherit smalltalk)
+      (name "smalltalk-next-from-vcs")
+      (version (git-version "3.2.91" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url git-url)
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256 (base32 "11dm1qricq7fwn1gfyn9ik7f1axw7l3ivipsh11dywa42pmb5j2r"))))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("libtool" ,libtool)
+         ("flex" ,flex)
+         ("texinfo" ,texinfo)
+         ("perl" ,perl)
+         ("gettext" ,gettext-minimal)
+         ("libffi" ,libffi)
+         ("libltdl" ,libltdl)
+         ("bison" ,bison)
+         ("libsigsegv" ,libsigsegv)
+         ("pkg-config" ,pkg-config)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-before 'configure 'fix-libc
+             (lambda _
+               (let ((libc (assoc-ref %build-inputs "libc")))
+                 (substitute* "libc.la.in"
+                   (("@LIBC_SO_NAME@") "libc.so")
+                   (("@LIBC_SO_DIR@")  (string-append libc "/lib"))))
+               #t))))))))
+
--
2.28.0