unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#42771: smalltalk fails to build
@ 2020-08-08 18:53 Michael Rohleder
  2020-11-28 22:09 ` bug#42771: [PATCH] Disable tests for smalltalk and add candidate releases Holger Peters
  2020-11-29  8:43 ` Holger Peters
  0 siblings, 2 replies; 10+ messages in thread
From: Michael Rohleder @ 2020-08-08 18:53 UTC (permalink / raw)
  To: 42771

[-- Attachment #1: Type: text/plain, Size: 812 bytes --]

As reported by zelphirkaltstahl@posteo.de, smalltalk fails in tests:

...
/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/bash './testsuite' 
## ------------------------------- ##
## GNU Smalltalk 3.2.5 test suite. ##
## ------------------------------- ##

Regression tests.

  1: arrays.st                                       ok
  2: classes.st                                      ok
  3: blocks.st                                       ok
  4: sets.st                                         ok
  5: processes.st                                    ok
  6: exceptions.st                                   ok
  7: intmath.st                                      FAILED (testsuite.at:33)
^C

-- 
A baby is God's opinion that the world should go on.
		-- Carl Sandburg

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#42771: [PATCH] Disable tests for smalltalk and add candidate releases
  2020-08-08 18:53 bug#42771: smalltalk fails to build Michael Rohleder
@ 2020-11-28 22:09 ` Holger Peters
  2020-12-04 11:34   ` Holger Peters
  2020-11-29  8:43 ` Holger Peters
  1 sibling, 1 reply; 10+ messages in thread
From: Holger Peters @ 2020-11-28 22:09 UTC (permalink / raw)
  To: 42771; +Cc: zelphirkaltstahl, Holger Peters

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





^ permalink raw reply related	[flat|nested] 10+ messages in thread

* bug#42771: [PATCH] Disable tests for smalltalk and add candidate releases
  2020-08-08 18:53 bug#42771: smalltalk fails to build Michael Rohleder
  2020-11-28 22:09 ` bug#42771: [PATCH] Disable tests for smalltalk and add candidate releases Holger Peters
@ 2020-11-29  8:43 ` Holger Peters
  2020-12-05 14:30   ` Ludovic Courtès
  1 sibling, 1 reply; 10+ messages in thread
From: Holger Peters @ 2020-11-29  8:43 UTC (permalink / raw)
  To: 42771; +Cc: Holger Peters

* 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 <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Holger Peters <holger.peters@posteo.de>
 ;;;
 ;;; 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





^ permalink raw reply related	[flat|nested] 10+ messages in thread

* bug#42771: [PATCH] Disable tests for smalltalk and add candidate releases
  2020-11-28 22:09 ` bug#42771: [PATCH] Disable tests for smalltalk and add candidate releases Holger Peters
@ 2020-12-04 11:34   ` Holger Peters
  2020-12-04 12:06     ` Holger Peters
  0 siblings, 1 reply; 10+ messages in thread
From: Holger Peters @ 2020-12-04 11:34 UTC (permalink / raw)
  To: 42771

[-- Attachment #1: Type: text/plain, Size: 4781 bytes --]

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 <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
> 


[-- Attachment #2: Type: text/html, Size: 9167 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#42771: [PATCH] Disable tests for smalltalk and add candidate releases
  2020-12-04 11:34   ` Holger Peters
@ 2020-12-04 12:06     ` Holger Peters
  0 siblings, 0 replies; 10+ messages in thread
From: Holger Peters @ 2020-12-04 12:06 UTC (permalink / raw)
  To: 42771

[-- Attachment #1: Type: text/plain, Size: 5220 bytes --]

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 <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 <mailto: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/ <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- <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 <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 <http://libc.la.in/>"
>> +                   (("@LIBC_SO_NAME@") "libc.so")
>> +                   (("@LIBC_SO_DIR@")  (string-append libc "/lib"))))
>> +               #t))))))))
>> +
>> -- 
>> 2.28.0
>> 
> 


[-- Attachment #2: Type: text/html, Size: 9787 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#42771: [PATCH] Disable tests for smalltalk and add candidate releases
  2020-11-29  8:43 ` Holger Peters
@ 2020-12-05 14:30   ` Ludovic Courtès
  2020-12-28 11:42     ` bug#42771: smalltalk fails to build Miguel Ángel Arruga Vivas
  2021-01-03 15:34     ` bug#42771: [PATCH] Disable tests for smalltalk and add candidate releases Holger Peters
  0 siblings, 2 replies; 10+ messages in thread
From: Ludovic Courtès @ 2020-12-05 14:30 UTC (permalink / raw)
  To: Holger Peters; +Cc: 42771

Hi Holger,

Holger Peters <holger.peters@posteo.de> skribis:

> * gnu/packages/smalltalk.scm (smalltalk): disable tests
> (smalltalk-next): New variable.
> (smalltalk-next-from-vcs): New variable.

I have mostly two comments, as discussed on IRC (restating them here for
those following along):

  1. Instead of disabling tests wholesale, what we usually do is (1)
     investigate why the test is failing (I think it’s a single test
     failure here), (2) try to determine whether it’s serious or not,
     (3) see if we can work around it with reasonable effort, and if
     not, skip just this test.

  2. I think we should just have ‘smalltalk’ (latest release) and
     ‘smalltalk-next’ (VCS snapshot).  Having an extra package for the
     release candidate is not really useful IMO, and not something we
     generally do.

HTH!

Ludo’.




^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#42771: smalltalk fails to build
  2020-12-05 14:30   ` Ludovic Courtès
@ 2020-12-28 11:42     ` Miguel Ángel Arruga Vivas
  2021-01-04  9:28       ` Ludovic Courtès
  2021-01-03 15:34     ` bug#42771: [PATCH] Disable tests for smalltalk and add candidate releases Holger Peters
  1 sibling, 1 reply; 10+ messages in thread
From: Miguel Ángel Arruga Vivas @ 2020-12-28 11:42 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Holger Peters, 42771

[-- Attachment #1: Type: text/plain, Size: 4059 bytes --]

Hi,

I've been investigating just a bit about this.

Ludovic Courtès <ludo@gnu.org> writes:

> (1) investigate why the test is failing (I think it’s a single test
> failure here),

Currently there are two main problems with 3.2.5:

  - Integer multiplication overflow handling invokes undefined behavior,
    which is "cleaned up" by the compiler.  This is why
    [ 100 fact / 99 fact ] returns <new> 0, and it's solved with the
    first patch---trimmed down from the upstream patch, to avoid
    conflicts.

   - ANSI test suite fails with errors like these:
----------------------------------8<-----------------------------------
--- /dev/null   2020-12-24 20:38:33.836725540 +0000
+++ /tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/tests/testsuite.dir/at-groups/47/stderr       2020-12-28 09:25:57.283891452 +0000
@@ -0,0 +1,13 @@
+gst: Aborted
+gst: Error occurred while not in byte code interpreter!!
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/libgst/.libs/libgst.so.7(+0x72d97)[0x7ffff7f5ed97]
+/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libc.so.6(+0x36b20)[0x7ffff7b3bb20]
+/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libc.so.6(gsignal+0xca)[0x7ffff7b3baba]
+/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libc.so.6(abort+0x165)[0x7ffff7b3cbf5]
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/libgst/.libs/libgst.so.7(+0x2c936)[0x7ffff7f18936]
+/gnu/store/yrwirrblml57nwga1aza6rg3l9s8qga0-libsigsegv-2.12/lib/libsigsegv.so.2(+0x128c)[0x7ffff7ee728c]
+/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libc.so.6(+0x36b20)[0x7ffff7b3bb20]
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/libgst/.libs/libgst.so.7(+0x569f0)[0x7ffff7f429f0]
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/libgst/.libs/libgst.so.7(+0x72919)[0x7ffff7f5e919]
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/libgst/.libs/libgst.so.7(+0x2e4c7)[0x7ffff7f1a4c7]
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/tests/testsuite.dir/at-groups/47/test-source: line 20: 21205 Aborted                 $TIMEOUT gst $image_path -f $abs_srcdir/AnsiRun.st ArrayANSITest
stdout:
./testsuite.at:83: exit code was 134, expected 0
47. testsuite.at:83: 47. ArrayANSITest (testsuite.at:83): FAILED (testsuite.at:83)
---------------------------------->8-----------------------------------

>      (2) try to determine whether it’s serious or not,

The first one is pretty serious.  The second one might as bad as the
first one or may be a flaw on the tests and could be omitted.

>      (3) see if we can work around it with reasonable effort, and if
>      not, skip just this test.

This only should be the case when the problem is on the test side:
either it's using something we don't want to provide, as side channels,
or the check itself is buggy; never when the test is working properly
because we would be delivering buggy software after we have been warned
about it.

I cannot spot where the second error was fixed, but 3.2.91 as provided
with the second patch doesn't manifest it.

>   2. I think we should just have ‘smalltalk’ (latest release) and
>      ‘smalltalk-next’ (VCS snapshot).  Having an extra package for the
>      release candidate is not really useful IMO, and not something we
>      generally do.

The last change made to GNU Smalltalk's master branch was more than 2
years ago, the latest change affecting executable paths was February
2017.  IMHO, providing a patched release candidate (or even the
snapshot) seems the best option until the project release a new version,
as in fact we aren't providing currently a useful package.

Happy hacking!
Miguel

PS: Its build isn't reproducible:
  - gst.im has inside some kind of timestamp.  This probably needs
    changes on the source code.
  - package.xml and kernel/ folders contain different timestamps inside
    dot-star files---a wrapper to zip or something like
    reset-gzip-timestamps could solve this issue.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: fix-integer.patch --]
[-- Type: text/x-patch, Size: 7860 bytes --]

From c4385abde62bba4c634a7a874c2f431451909ec2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?=
 <rosen644835@gmail.com>
Date: Mon, 28 Dec 2020 10:36:48 +0100
Subject: [PATCH 1/2] gnu: smalltalk: Fix integer multiplication overflow.

* gnu/packages/patches/smalltalk-multiplication-overflow.patch: Patch
from upstream commit 72ada189aba0283c551ead16635c1983968080b8.
* gnu/packages/smalltalk.scm (smalltalk): Use patch and link with gmp
and lightning libraries instead of the included source.
---
 .../smalltalk-multiplication-overflow.patch   | 121 ++++++++++++++++++
 gnu/packages/smalltalk.scm                    |  43 ++++++-
 2 files changed, 159 insertions(+), 5 deletions(-)
 create mode 100644 gnu/packages/patches/smalltalk-multiplication-overflow.patch

diff --git a/gnu/packages/patches/smalltalk-multiplication-overflow.patch b/gnu/packages/patches/smalltalk-multiplication-overflow.patch
new file mode 100644
index 0000000000..7a0b4d02f7
--- /dev/null
+++ b/gnu/packages/patches/smalltalk-multiplication-overflow.patch
@@ -0,0 +1,121 @@
+Extracted from this commit without the ChangeLog to avoid conflicts:
+http://git.savannah.gnu.org/cgit/smalltalk.git/commit/?id=72ada189aba0283c551ead16635c1983968080b8
+
+The upstream commit message is
+From 72ada189aba0283c551ead16635c1983968080b8 Mon Sep 17 00:00:00 2001
+From: Holger Hans Peter Freyther <holger@moiji-mobile.com>
+Date: Sat, 7 Nov 2015 18:09:31 +0100
+Subject: libgst: Add alternative multiplication overflow check
+
+Apple clang on OSX and the version on FreeBSD optimize the
+multiplication check away. Clang introduced a family of
+builtins to do the multiplication and check for the overflow
+and GCC made the API usable. For clang we would need to know
+if intptr_t is of type int, long int, long long int and
+then use the smul, smull smulll.
+Luckily clang is adopting the better interface and this is
+what we are starting to use now. This means the new code
+will be used on GCC5 (and later) and some future versions of
+clang.
+
+2015-11-07  Holger Hans Peter Freyther  <holger@freyther.de>
+
+	* build-aux/overflow-builtins.m4: Add new macro.
+	* configure.ac: Use GST_C_OVERFLOW_BUILTINS macro.
+
+2015-11-07  Holger Hans Peter Freyther  <holger@freyther.de>
+
+	* interp.inl: Add alternative mul_with_check implementation.
+---
+ ChangeLog                      |  5 +++++
+ build-aux/overflow-builtins.m4 | 23 +++++++++++++++++++++++
+ configure.ac                   |  1 +
+ libgst/ChangeLog               |  4 ++++
+ libgst/interp.inl              | 22 ++++++++++++++++++++++
+ 5 files changed, 55 insertions(+)
+ create mode 100644 build-aux/overflow-builtins.m4
+
+diff --git a/build-aux/overflow-builtins.m4 b/build-aux/overflow-builtins.m4
+new file mode 100644
+index 00000000..9d050196
+--- /dev/null
++++ b/build-aux/overflow-builtins.m4
+@@ -0,0 +1,23 @@
++dnl Check whether the host supports synchronization builtins.
++
++AC_DEFUN([GST_C_OVERFLOW_BUILTINS], [
++  AC_REQUIRE([AC_CANONICAL_HOST])
++  AC_CACHE_CHECK([whether the host supports __builtin_mul_overflow],
++                 gst_cv_have_builtin_mul_overflow, [
++    save_CFLAGS="$CFLAGS"
++    case $host in
++      i?86-apple-darwin*) ;;
++      i?86-*-*) CFLAGS="$CFLAGS -march=i486" ;;
++    esac
++    AC_LINK_IFELSE([AC_LANG_PROGRAM([[int foovar = 0;]], [[
++if (__builtin_mul_overflow(44444, 55555, &foovar))
++	return 23;]])],
++		   [gst_cv_have_builtin_mul_overflow=yes],
++		   [gst_cv_have_builtin_mul_overflow=no])
++    CFLAGS="$save_CFLAGS"
++  ])
++  if test $gst_cv_have_builtin_mul_overflow = yes; then
++    AC_DEFINE(HAVE_OVERFLOW_BUILTINS, 1,
++              [Define to 1 if the host supports __builtin_*_overflow builtins])
++  fi
++])
+diff --git a/configure.ac b/configure.ac
+index e789be45..0bac23ef 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -243,6 +243,7 @@ GST_C_SYNC_BUILTINS
+ if test $gst_cv_have_sync_fetch_and_add = no; then
+   AC_MSG_ERROR([Synchronization primitives not found, please use a newer compiler.])
+ fi
++GST_C_OVERFLOW_BUILTINS
+ 
+ GST_LOCK
+ AC_SYS_LARGEFILE
+diff --git a/libgst/interp.inl b/libgst/interp.inl
+index e18e27c7..dbc631bc 100644
+--- a/libgst/interp.inl
++++ b/libgst/interp.inl
+@@ -159,6 +159,27 @@ sub_with_check (OOP op1, OOP op2, mst_Boolean *overflow)
+ OOP
+ mul_with_check (OOP op1, OOP op2, mst_Boolean *overflow)
+ {
++#ifdef HAVE_OVERFLOW_BUILTINS
++  intptr_t a = TO_INT (op1);
++  intptr_t b = TO_INT (op2);
++  intptr_t result;
++
++  if (__builtin_mul_overflow(a, b, &result))
++    {
++       *overflow = true;
++       return FROM_INT(0);
++    }
++
++
++  if (result < MIN_ST_INT || result > MAX_ST_INT)
++    {
++       *overflow = true;
++       return FROM_INT(0);
++    }
++
++  *overflow = false;
++  return FROM_INT(result);
++#else
+   intptr_t a = TO_INT (op1);
+   intptr_t b = TO_INT (op2);
+   intmax_t result = (intmax_t)a * b;
+@@ -188,6 +209,7 @@ mul_with_check (OOP op1, OOP op2, mst_Boolean *overflow)
+     }
+ 
+   return FROM_INT (0);
++#endif
+ }
+ 
+ /* State of the random generator.
+-- 
+2.29.2
+
diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm
index 5d35f563e2..8c152cfd04 100644
--- a/gnu/packages/smalltalk.scm
+++ b/gnu/packages/smalltalk.scm
@@ -26,6 +26,8 @@
   #:use-module (guix download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages assembly)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
@@ -36,6 +38,7 @@
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages libsigsegv)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages xorg))
@@ -51,18 +54,48 @@
                           version ".tar.xz"))
       (sha256
        (base32
-        "1k2ssrapfzhngc7bg1zrnd9n2vyxp9c9m70byvsma6wapbvib6l1"))))
+        "1k2ssrapfzhngc7bg1zrnd9n2vyxp9c9m70byvsma6wapbvib6l1"))
+      ;; XXX: To be removed with the next release of Smalltalk.
+      (patches (search-patches "smalltalk-multiplication-overflow.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("libffi" ,libffi)
+     `(("pkg-config" ,pkg-config)
+       ;; XXX: To be removed with the next release of Smalltalk.
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
+    ;; XXX: Missing optional dependencies:
+    ;;  - glib
+    ;;  - gtk+-2
+    ;;  - mesa
+    ;;  - SDL
+    ;;  - sqlite
+    ;;  - zlib
+    (inputs
+     `(("gmp" ,gmp)
+       ("libffi" ,libffi)
        ("libltdl" ,libltdl)
        ("libsigsegv" ,libsigsegv)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("zip" ,zip)))
+       ("lightning" ,lightning)
+       ("zip" ,zip)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         ;; XXX: To be removed with the next release of Smalltalk.
+         ;; The overflow patch modifies configure.ac, therefore remove
+         ;; old configure script and enforce an autoreconf.
+         (add-before 'bootstrap 'remove-unpatched-configure
+           (lambda _
+             (delete-file "configure")
+             #t))
+         ;; XXX: To be removed with the next release of Smalltalk.
+         ;; We don't want to regenerate the info files.
+         (add-after 'build 'keep-generated-info-manual
+           (lambda _
+             (for-each (lambda (file)
+                         (invoke "touch" file))
+                       (find-files "doc" "\\.info"))
+             #t))
          (add-before 'configure 'fix-libc
            (lambda _
              (let ((libc (assoc-ref %build-inputs "libc")))
-- 
2.29.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: update-to-91.patch --]
[-- Type: text/x-patch, Size: 1357 bytes --]

From 46809e6c265280571ff024c749c448c74af79c1a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?=
 <rosen644835@gmail.com>
Date: Mon, 28 Dec 2020 11:42:31 +0100
Subject: [PATCH 2/2] gnu: smalltalk: Update to version 3.2.91.

* gnu/packages/smalltalk.scm (smalltalk): Update to 3.2.91.

Co-Authored-By: Holger Peters <holger.peters@posteo.de>
---
 gnu/packages/smalltalk.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm
index 8c152cfd04..c7c56f87b4 100644
--- a/gnu/packages/smalltalk.scm
+++ b/gnu/packages/smalltalk.scm
@@ -46,15 +46,15 @@
 (define-public smalltalk
   (package
     (name "smalltalk")
-    (version "3.2.5")
+    (version "3.2.91")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://gnu/smalltalk/smalltalk-"
+      (uri (string-append "https://alpha.gnu.org/gnu/smalltalk/smalltalk-"
                           version ".tar.xz"))
       (sha256
        (base32
-        "1k2ssrapfzhngc7bg1zrnd9n2vyxp9c9m70byvsma6wapbvib6l1"))
+        "1zb2h5cbz1cwybqjl24lflw359lwj7sjvvhwb4x6miypzhwq4qh0"))
       ;; XXX: To be removed with the next release of Smalltalk.
       (patches (search-patches "smalltalk-multiplication-overflow.patch"))))
     (build-system gnu-build-system)
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* bug#42771: [PATCH] Disable tests for smalltalk and add candidate releases
  2020-12-05 14:30   ` Ludovic Courtès
  2020-12-28 11:42     ` bug#42771: smalltalk fails to build Miguel Ángel Arruga Vivas
@ 2021-01-03 15:34     ` Holger Peters
  1 sibling, 0 replies; 10+ messages in thread
From: Holger Peters @ 2021-01-03 15:34 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 42771


[-- Attachment #1.1: Type: text/plain, Size: 7633 bytes --]

Hi,

I am not sure I will have the time to solve the remaining issues,
but I would like to share some intermediate results with you.
Find attached the smalltalk file I have in my personal channel,
it contains 2 package definitions.

smalltalk-alt: corresponds to the `normal' smalltalk package with
    various fixes over the one currently in gui (a) added
    dependencies, (b) uses gcc-5 for building because I found a
    reference in the smalltalk mailing list about newer GCC
    releases optimizing some statements away that are crucial for
    GNU Smalltalk to build.

    As a result the test failures for intmath and others that are
    present in the current `smalltalk' recipe in guix are
    resolved in this variant.

    Note that there are still failing tests for this release,
    namely all the ANSI compliancy tests. I do feel like since
    each and every one of these tests fails, it might be a
    build-system-setup/autotest related failure.

`smalltalk-next' is a derived clean build from the VCS. I dropped
    the pre-release build as you suggested in (2).


As for going forward I am not quite sure whether I'll find time
to do more debugging.  If I were a heavy GNU Smalltalk user I'd
probably use `smalltalk-next' anyway as it seems to build
flawlessly.


-- Failing Tests for `smalltalk-alt'

ANSI compliancy tests.

 47: ArrayANSITest                                   FAILED
(testsuite.at:83)
 48: ArrayFactoryANSITest                            FAILED
(testsuite.at:84)
 49: BagANSITest                                     FAILED
(testsuite.at:85)
 50: BagFactoryANSITest                              FAILED
(testsuite.at:86)
 51: BooleanANSITest                                 FAILED
(testsuite.at:87)
 52: ByteArrayANSITest                               FAILED
(testsuite.at:88)
 53: ByteArrayFactoryANSITest                        FAILED
(testsuite.at:89)
 54: CharacterANSITest                               FAILED
(testsuite.at:90)
 55: CharacterFactoryANSITest                        FAILED
(testsuite.at:91)
 56: DateAndTimeANSITest                             FAILED
(testsuite.at:92)
 57: DateAndTimeFactoryANSITest                      FAILED
(testsuite.at:93)
 58: DictionaryANSITest                              FAILED
(testsuite.at:94)
 59: DictionaryFactoryANSITest                       FAILED
(testsuite.at:95)
 60: DurationANSITest                                FAILED
(testsuite.at:96)
 61: DurationFactoryANSITest                         FAILED
(testsuite.at:97)
 62: DyadicValuableANSITest                          FAILED
(testsuite.at:98)
 63: ErrorANSITest                                   FAILED
(testsuite.at:99)
 64: ErrorClassANSITest                              FAILED
(testsuite.at:100)
 65: ExceptionANSITest                               FAILED
(testsuite.at:101)
 66: ExceptionClassANSITest                          FAILED
(testsuite.at:102)
 67: ExceptionSetANSITest                            FAILED
(testsuite.at:103)
 68: FailedMessageANSITest                           FAILED
(testsuite.at:104)
 69: FileStreamFactoryANSITest                       FAILED
(testsuite.at:105)
 70: FloatANSITest                                   FAILED
(testsuite.at:106)
 71: FloatCharacterizationANSITest                   FAILED
(testsuite.at:107)
 72: FractionANSITest                                FAILED
(testsuite.at:108)
 73: FractionFactoryANSITest                         FAILED
(testsuite.at:109)
 74: IdentityDictionaryANSITest                      FAILED
(testsuite.at:110)
 75: IdentityDictionaryFactoryANSITest               FAILED
(testsuite.at:111)
 76: IntegerANSITest                                 FAILED
(testsuite.at:112)
 77: IntervalANSITest                                FAILED
(testsuite.at:113)
 78: IntervalFactoryANSITest                         FAILED
(testsuite.at:114)
 79: MessageNotUnderstoodANSITest                    FAILED
(testsuite.at:115)
 80: MessageNotUnderstoodSelectorANSITest            FAILED
(testsuite.at:116)
 81: MonadicBlockANSITest                            FAILED
(testsuite.at:117)
 82: NilANSITest                                     FAILED
(testsuite.at:118)
 83: NiladicBlockANSITest                            FAILED
(testsuite.at:119)
 84: NotificationANSITest                            FAILED
(testsuite.at:120)
 85: NotificationClassANSITest                       FAILED
(testsuite.at:121)
 86: ObjectANSITest                                  FAILED
(testsuite.at:122)
 87: ObjectClassANSITest                             FAILED
(testsuite.at:123)
 88: OrderedCollectionANSITest                       FAILED
(testsuite.at:124)
 89: OrderedCollectionFactoryANSITest                FAILED
(testsuite.at:125)
 90: ReadFileStreamANSITest                          FAILED
(testsuite.at:126)
 91: ReadStreamANSITest                              FAILED
(testsuite.at:127)
 92: ReadStreamFactoryANSITest                       FAILED
(testsuite.at:128)
 93: ReadWriteStreamANSITest                         FAILED
(testsuite.at:129)
 94: ReadWriteStreamFactoryANSITest                  FAILED
(testsuite.at:130)
 95: ScaledDecimalANSITest                           FAILED
(testsuite.at:131)
 96: SelectorANSITest                                FAILED
(testsuite.at:132)
 97: SetANSITest                                     FAILED
(testsuite.at:133)
 98: SetFactoryANSITest                              FAILED
(testsuite.at:134)
 99: SortedCollectionANSITest                        FAILED
(testsuite.at:135)
100: SortedCollectionFactoryANSITest                 FAILED
(testsuite.at:136)
101: StringANSITest                                  FAILED
(testsuite.at:137)
102: StringFactoryANSITest                           FAILED
(testsuite.at:138)
103: SymbolANSITest                                  FAILED
(testsuite.at:139)
104: TranscriptANSITest                              FAILED
(testsuite.at:140)
105: WarningANSITest                                 FAILED
(testsuite.at:141)
106: WarningClassANSITest                            FAILED
(testsuite.at:142)
107: WriteFileStreamANSITest                         FAILED
(testsuite.at:143)
108: WriteStreamANSITest                             FAILED
(testsuite.at:144)
109: WriteStreamFactoryANSITest                      FAILED
(testsuite.at:145)
110: ZeroDivideANSITest                              FAILED
(testsuite.at:146)
111: ZeroDivideFactoryANSITest                       FAILED
(testsuite.at:147)



On Sat, 2020-12-05 at 15:30 +0100, Ludovic Courtès wrote:
> Hi Holger,
> 
> Holger Peters <holger.peters@posteo.de> skribis:
> 
> > * gnu/packages/smalltalk.scm (smalltalk): disable tests
> > (smalltalk-next): New variable.
> > (smalltalk-next-from-vcs): New variable.
> 
> I have mostly two comments, as discussed on IRC (restating them here
> for
> those following along):
> 
>   1. Instead of disabling tests wholesale, what we usually do is (1)
>      investigate why the test is failing (I think it’s a single test
>      failure here), (2) try to determine whether it’s serious or not,
>      (3) see if we can work around it with reasonable effort, and if
>      not, skip just this test.
> 
>   2. I think we should just have ‘smalltalk’ (latest release) and
>      ‘smalltalk-next’ (VCS snapshot).  Having an extra package for 
> the release candidate is not really useful IMO, and not something we
>      generally do.



[-- Attachment #1.2: smalltalk.scm --]
[-- Type: text/x-scheme, Size: 3674 bytes --]


(define-module (yas packages smalltalk)
  #: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)
  #: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 emacs)
  #:use-module (gnu packages flex)
  #:use-module (gnu packages fontutils)
  #:use-module (gnu packages gcc)
  #:use-module (gnu packages gettext)
  #:use-module (gnu packages gl)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages gtk)
  #:use-module (gnu packages libffi)
  #:use-module (gnu packages libsigsegv)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages ncurses)
  #: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 tls)
  #:use-module (gnu packages xorg))



(define-public smalltalk-alt
  (package
    (name "smalltalk-alt")
    (version "3.2.5")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "mirror://gnu/smalltalk/smalltalk-"
                          version ".tar.xz"))
      (sha256
       (base32
        "1k2ssrapfzhngc7bg1zrnd9n2vyxp9c9m70byvsma6wapbvib6l1"))))

    (build-system gnu-build-system)
    (native-inputs
     `(("gcc@5" ,gcc-5)
       ("libtool" ,libtool)
       ("perl" ,perl)
       ("gettext" ,gettext-minimal)
       ("libffi" ,libffi)
       ("libltdl" ,libltdl)
       ("libsigsegv" ,libsigsegv)
       ("pkg-config" ,pkg-config)))
    (inputs
     `(("emacs" ,emacs)
       ("glib" ,glib)
       ("gtk+" ,gtk+-2)
       ("gnutls" ,gnutls)
       ("ncurses" ,ncurses)
       ("zip" ,zip)
       ("zlib" ,zlib)))
    (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)))))
    (home-page "http://smalltalk.gnu.org/")
    (synopsis "Smalltalk environment")
    (description
     "GNU Smalltalk is a free implementation of the Smalltalk language.  It
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 smalltalk-next
  (let ((revision "18")
        (commit "dfe4b5660037c4d178853ee00458a75e51a88563")
        (git-url "git://git.sv.gnu.org/smalltalk.git"))
    (package (inherit smalltalk-alt)
      (name "smalltalk-next")
      (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))))))

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 695 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#42771: smalltalk fails to build
  2020-12-28 11:42     ` bug#42771: smalltalk fails to build Miguel Ángel Arruga Vivas
@ 2021-01-04  9:28       ` Ludovic Courtès
  2021-01-05 12:09         ` Miguel Ángel Arruga Vivas
  0 siblings, 1 reply; 10+ messages in thread
From: Ludovic Courtès @ 2021-01-04  9:28 UTC (permalink / raw)
  To: Miguel Ángel Arruga Vivas; +Cc: Holger Peters, 42771

Hi Miguel,

Miguel Ángel Arruga Vivas <rosen644835@gmail.com> skribis:

> I've been investigating just a bit about this.

Nice!

> From c4385abde62bba4c634a7a874c2f431451909ec2 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?=
>  <rosen644835@gmail.com>
> Date: Mon, 28 Dec 2020 10:36:48 +0100
> Subject: [PATCH 1/2] gnu: smalltalk: Fix integer multiplication overflow.
>
> * gnu/packages/patches/smalltalk-multiplication-overflow.patch: Patch
> from upstream commit 72ada189aba0283c551ead16635c1983968080b8.
> * gnu/packages/smalltalk.scm (smalltalk): Use patch and link with gmp
> and lightning libraries instead of the included source.
> ---
>  .../smalltalk-multiplication-overflow.patch   | 121 ++++++++++++++++++
>  gnu/packages/smalltalk.scm                    |  43 ++++++-

Please make sure to add the patch to ‘gnu/local.mk’ as well.  Otherwise
LGTM.

> From 46809e6c265280571ff024c749c448c74af79c1a Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?=
>  <rosen644835@gmail.com>
> Date: Mon, 28 Dec 2020 11:42:31 +0100
> Subject: [PATCH 2/2] gnu: smalltalk: Update to version 3.2.91.
>
> * gnu/packages/smalltalk.scm (smalltalk): Update to 3.2.91.
>
> Co-Authored-By: Holger Peters <holger.peters@posteo.de>

LGTM.

Thanks for investigating!

We can address the non-reproducibility issues separately.  Perhaps you
can send your findings to bug-guix so we can keep track of it.

Ludo’.




^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#42771: smalltalk fails to build
  2021-01-04  9:28       ` Ludovic Courtès
@ 2021-01-05 12:09         ` Miguel Ángel Arruga Vivas
  0 siblings, 0 replies; 10+ messages in thread
From: Miguel Ángel Arruga Vivas @ 2021-01-05 12:09 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Holger Peters, 42771

Bonne année, Ludo!

Ludovic Courtès <ludo@gnu.org> writes:

>> From c4385abde62bba4c634a7a874c2f431451909ec2 Mon Sep 17 00:00:00 2001
>> From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?=
>>  <rosen644835@gmail.com>
>> Date: Mon, 28 Dec 2020 10:36:48 +0100
>> Subject: [PATCH 1/2] gnu: smalltalk: Fix integer multiplication overflow.
>>
>> * gnu/packages/patches/smalltalk-multiplication-overflow.patch: Patch
>> from upstream commit 72ada189aba0283c551ead16635c1983968080b8.
>> * gnu/packages/smalltalk.scm (smalltalk): Use patch and link with gmp
>> and lightning libraries instead of the included source.
>> ---
>>  .../smalltalk-multiplication-overflow.patch   | 121 ++++++++++++++++++
>>  gnu/packages/smalltalk.scm                    |  43 ++++++-
>
> Please make sure to add the patch to ‘gnu/local.mk’ as well.  Otherwise
> LGTM.

Oops, I forgot about that, thank you.  I've pushed with this change and
some extra comments about optional packages and closure size as
e3281657c8 to master.

>> From 46809e6c265280571ff024c749c448c74af79c1a Mon Sep 17 00:00:00 2001
>> From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?=
>>  <rosen644835@gmail.com>
>> Date: Mon, 28 Dec 2020 11:42:31 +0100
>> Subject: [PATCH 2/2] gnu: smalltalk: Update to version 3.2.91.
>>
>> * gnu/packages/smalltalk.scm (smalltalk): Update to 3.2.91.
>>
>> Co-Authored-By: Holger Peters <holger.peters@posteo.de>
>
> LGTM.

I've pushed this, together with a comment about reverting to the mirror
when a new release be available, as df965a54e1 to master.

> Thanks for investigating!

I had it on my backlog from long time ago.  Thank you for your
review. :-)

> We can address the non-reproducibility issues separately.  Perhaps you
> can send your findings to bug-guix so we can keep track of it.

Sure; nonetheless, I think it will relate to two more generic issues I'm
opening too.

Happy hacking!
Miguel




^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-01-05 12:10 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-08 18:53 bug#42771: smalltalk fails to build Michael Rohleder
2020-11-28 22:09 ` bug#42771: [PATCH] Disable tests for smalltalk and add candidate releases Holger Peters
2020-12-04 11:34   ` Holger Peters
2020-12-04 12:06     ` Holger Peters
2020-11-29  8:43 ` Holger Peters
2020-12-05 14:30   ` Ludovic Courtès
2020-12-28 11:42     ` bug#42771: smalltalk fails to build Miguel Ángel Arruga Vivas
2021-01-04  9:28       ` Ludovic Courtès
2021-01-05 12:09         ` Miguel Ángel Arruga Vivas
2021-01-03 15:34     ` bug#42771: [PATCH] Disable tests for smalltalk and add candidate releases Holger Peters

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).