Subject: bug#42771: [PATCH] Disable tests for smalltalk and add candidate releases

From: Holger Peters <[email-masked]>
Date: Sun, 29 Nov 2020 09:43:28 +0100

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

diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm
index 5d35f563e2..7136751a81 100644
--- a/gnu/packages/smalltalk.scm
+++ b/gnu/packages/smalltalk.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016 Nicolas Goaziou <[email-masked]>
 ;;; Copyright © 2016 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <[email-masked]>
+;;; Copyright © 2020 Holger Peters <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,20 +25,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 +68,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 +153,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