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

From: Holger Peters <[email-masked]>
Date: Fri, 4 Dec 2020 12:34:54 +0100

Investigating the test failures, I found https://lists.gnu.org/archive/html/help-smalltalk/2015-02/msg00001.html <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 <[email-masked]>:
> 
> 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
>