GNU bug report logs - #38546
Update Julia to 1.3.1.

Previous Next

Package: guix-patches;

Reported by: nixo <anothersms <at> gmail.com>

Date: Mon, 9 Dec 2019 13:58:02 UTC

Severity: normal

Tags: patch

Done: Efraim Flashner <efraim <at> flashner.co.il>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 38546 in the body.
You can then email your comments to 38546 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Mon, 09 Dec 2019 13:58:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to nixo <anothersms <at> gmail.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 09 Dec 2019 13:58:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: nixo <anothersms <at> gmail.com>
To: Guix Patches <guix-patches <at> gnu.org>
Subject: [PATCH 0/3] Julia: fix package build and add julia-xyz
Date: Mon, 9 Dec 2019 14:36:25 +0100
Hello Guix!

Changes:

This set of patches improve the state of julia-build-system.

1. set path JULIA_LOAD_PATH to enable installing packages, and
  JULIA_DEPOT_PATH to allow guix-precompiled cache to be recognized by julia. To
  do this, a small "hack" with libfaketime was required (julia decides if the
  cache is valid by comparing source ".jl" mtime with cache ".ji" file, in which
  julia stores a timestamp. We need to force this timestamp to be equal to the
  mtime of guix-store files).
2. Enable package tests
3. Add a first package (julia-compat) definition. If this is fine, I'll start
   pushing many many more (I have them ready, but I need to update many of them)



 Thanks! :)

One note: with this PATH changes, julia will not be able to find packages
installed by Julia Pkg3.jl anymore. This is expected (it should happen for R,
python, emacs... too) but since we still need to merge the packages, this
patch renders julia pretty unusable. The workaround is for users to add to
JULIA_LOAD_PATH and JULIA_LOAD_PATH local user-writable folders, activate a
profile, and then install packages manually:

#+begin_src bash
   JULIA_LOAD_PATH=/tmp/julia:$JULIA_LOAD_PATH JULIA_DEPOT_PATH=/tmp/julia:$JULIA_DEPOT_PATH julia
#+end_src

nixo (3):
 gnu: julia: Set to JULIA_LOAD_PATH and JULIA_DEPOT_PATH variables.
 gnu: julia-build-system: Enable tests.
 gnu: julia-xyz: Add julia-compat.

#+begin_src julia
   using Pkg
   Pkg.activate("/tmp/julia")
   Pkg.add("PACKAGE_NAME")
#+end_src

-- 
2.24.0

gnu/packages/julia-xyz.scm        |  62 +++++++++++++
gnu/packages/julia.scm            | 146 +++++++++++++++---------------
guix/build-system/julia.scm       |   4 +-
guix/build/julia-build-system.scm |  28 ++++--
4 files changed, 159 insertions(+), 81 deletions(-)
create mode 100644 gnu/packages/julia-xyz.scm





Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Mon, 09 Dec 2019 14:01:02 GMT) Full text and rfc822 format available.

Message #8 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Nicolò Balzarotti <anothersms <at> gmail.com>
To: Guix Patches <38546 <at> debbugs.gnu.org>
Subject: [PATCH 1/3] gnu: julia: Set to JULIA_LOAD_PATH and JULIA_DEPOT_PATH
 variables.
Date: Thu, 10 Oct 2019 17:49:15 +0200
 gnu/packages/julia.scm | 146 +++++++++++++++++++++--------------------
 1 file changed, 75 insertions(+), 71 deletions(-)

diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm
index 65a5e42beb..2516e7fa82 100644
--- a/gnu/packages/julia.scm
+++ b/gnu/packages/julia.scm
@@ -158,7 +158,7 @@
 (define-public julia
   (package
     (name "julia")
-    (version "1.1.1")
+    (version "1.1.1") ;; Update also JULIA_LOAD_PATH with it
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -229,77 +229,77 @@
            ;; Some tests require a home directory to be set.
            (lambda _ (setenv "HOME" "/tmp") #t))
          (add-after 'unpack 'hardcode-soname-map
-          ;; ./src/runtime_ccall.cpp creates a map from library names to paths
-          ;; using the output of "/sbin/ldconfig -p".  Since ldconfig is not
-          ;; used in Guix, we patch runtime_ccall.cpp to contain a static map.
-          (lambda* (#:key inputs #:allow-other-keys)
-            (use-modules (ice-9 match))
-            (substitute* "src/runtime_ccall.cpp"
-              ;; Patch out invocations of '/sbin/ldconfig' to avoid getting
-              ;; error messages about missing '/sbin/ldconfig' on Guix System.
-              (("popen\\(.*ldconfig.*\\);")
-               "NULL;\n")
+           ;; ./src/runtime_ccall.cpp creates a map from library names to paths
+           ;; using the output of "/sbin/ldconfig -p".  Since ldconfig is not
+           ;; used in Guix, we patch runtime_ccall.cpp to contain a static map.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (use-modules (ice-9 match))
+             (substitute* "src/runtime_ccall.cpp"
+               ;; Patch out invocations of '/sbin/ldconfig' to avoid getting
+               ;; error messages about missing '/sbin/ldconfig' on Guix System.
+               (("popen\\(.*ldconfig.*\\);")
+                "NULL;\n")
 
-              ;; Populate 'sonameMap'.
-              (("jl_read_sonames.*;")
-               (string-join
-                (map (match-lambda
-                       ((input libname soname)
-                        (string-append
-                         "sonameMap[\"" libname "\"] = "
-                         "\"" (assoc-ref inputs input) "/lib/" soname "\";")))
-                     '(("libc"        "libc"           "libc.so.6")
-                       ("pcre2"       "libpcre2-8"     "libpcre2-8.so")
-                       ("mpfr"        "libmpfr"        "libmpfr.so")
-                       ("openblas"    "libblas"        "libopenblas.so")
-                       ("arpack-ng"   "libarpack"      "libarpack.so")
-                       ("lapack"      "liblapack"      "liblapack.so")
-                       ("libgit2"     "libgit2"        "libgit2.so")
-                       ("gmp"         "libgmp"         "libgmp.so")
-                       ("openspecfun" "libopenspecfun" "libopenspecfun.so")
-                       ("fftw"        "libfftw3"       "libfftw3_threads.so")
-                       ("fftwf"       "libfftw3f"      "libfftw3f_threads.so"))))))
-            (substitute* "base/math.jl"
-              (("const libm = Base.libm_name")
-               (string-append "const libm = \""
-                              (assoc-ref inputs "openlibm")
-                              "/lib/libopenlibm.so"
-                              "\""))
-              (("const openspecfun = \"libopenspecfun\"")
-               (string-append "const openspecfun = \""
-                              (assoc-ref inputs "openspecfun")
-                              "/lib/libopenspecfun.so"
-                              "\"")))
-            #t))
+               ;; Populate 'sonameMap'.
+               (("jl_read_sonames.*;")
+                (string-join
+                 (map (match-lambda
+                        ((input libname soname)
+                         (string-append
+                          "sonameMap[\"" libname "\"] = "
+                          "\"" (assoc-ref inputs input) "/lib/" soname "\";")))
+                      '(("libc"        "libc"           "libc.so.6")
+                        ("pcre2"       "libpcre2-8"     "libpcre2-8.so")
+                        ("mpfr"        "libmpfr"        "libmpfr.so")
+                        ("openblas"    "libblas"        "libopenblas.so")
+                        ("arpack-ng"   "libarpack"      "libarpack.so")
+                        ("lapack"      "liblapack"      "liblapack.so")
+                        ("libgit2"     "libgit2"        "libgit2.so")
+                        ("gmp"         "libgmp"         "libgmp.so")
+                        ("openspecfun" "libopenspecfun" "libopenspecfun.so")
+                        ("fftw"        "libfftw3"       "libfftw3_threads.so")
+                        ("fftwf"       "libfftw3f"      "libfftw3f_threads.so"))))))
+             (substitute* "base/math.jl"
+               (("const libm = Base.libm_name")
+                (string-append "const libm = \""
+                               (assoc-ref inputs "openlibm")
+                               "/lib/libopenlibm.so"
+                               "\""))
+               (("const openspecfun = \"libopenspecfun\"")
+                (string-append "const openspecfun = \""
+                               (assoc-ref inputs "openspecfun")
+                               "/lib/libopenspecfun.so"
+                               "\"")))
+             #t))
          (add-before 'build 'fix-include-and-link-paths
-          (lambda* (#:key inputs #:allow-other-keys)
-            ;; LIBUTF8PROC is a linker flag, not a build target.  It is
-            ;; included in the LIBFILES_* variable which is used as a
-            ;; collection of build targets and a list of libraries to link
-            ;; against.
-            (substitute* "src/flisp/Makefile"
-              (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\): \\$\\(OBJS\\) \\$\\(LIBFILES_release\\)")
-               "$(BUILDDIR)/$(EXENAME): $(OBJS) $(LLT_release)")
-              (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\)-debug: \\$\\(DOBJS\\) \\$\\(LIBFILES_debug\\)")
-               "$(BUILDDIR)/$(EXENAME)-debug: $(DOBJS) $(LLT_debug)"))
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; LIBUTF8PROC is a linker flag, not a build target.  It is
+             ;; included in the LIBFILES_* variable which is used as a
+             ;; collection of build targets and a list of libraries to link
+             ;; against.
+             (substitute* "src/flisp/Makefile"
+               (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\): \\$\\(OBJS\\) \\$\\(LIBFILES_release\\)")
+                "$(BUILDDIR)/$(EXENAME): $(OBJS) $(LLT_release)")
+               (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\)-debug: \\$\\(DOBJS\\) \\$\\(LIBFILES_debug\\)")
+                "$(BUILDDIR)/$(EXENAME)-debug: $(DOBJS) $(LLT_debug)"))
 
-            ;; The REPL must be linked with libuv.
-            (substitute* "ui/Makefile"
-              (("JLDFLAGS \\+= ")
-               (string-append "JLDFLAGS += "
-                              (assoc-ref %build-inputs "libuv")
-                              "/lib/libuv.so ")))
+             ;; The REPL must be linked with libuv.
+             (substitute* "ui/Makefile"
+               (("JLDFLAGS \\+= ")
+                (string-append "JLDFLAGS += "
+                               (assoc-ref %build-inputs "libuv")
+                               "/lib/libuv.so ")))
 
-            (substitute* "base/Makefile"
-              (("\\$\\(build_includedir\\)/uv/errno.h")
-               (string-append (assoc-ref inputs "libuv")
-                              "/include/uv/errno.h")))
-            #t))
+             (substitute* "base/Makefile"
+               (("\\$\\(build_includedir\\)/uv/errno.h")
+                (string-append (assoc-ref inputs "libuv")
+                               "/include/uv/errno.h")))
+             #t))
          (add-before 'build 'replace-default-shell
-          (lambda _
-            (substitute* "base/client.jl"
-              (("/bin/sh") (which "sh")))
-            #t))
+           (lambda _
+             (substitute* "base/client.jl"
+               (("/bin/sh") (which "sh")))
+             #t))
          (add-after 'unpack 'hardcode-paths
            (lambda _
              (substitute* "stdlib/InteractiveUtils/src/InteractiveUtils.jl"
@@ -345,9 +345,9 @@
            ;; platforms, e.g. when running "guix package --search="
            (_ "MARCH=UNSUPPORTED"))
 
-        "CONFIG_SHELL=bash"     ;needed to build bundled libraries
-        "USE_SYSTEM_DSFMT=0"    ;not packaged for Guix and upstream has no
-                                ;build system for a shared library.
+        "CONFIG_SHELL=bash"         ;needed to build bundled libraries
+        "USE_SYSTEM_DSFMT=0"        ;not packaged for Guix and upstream has no
+                                        ;build system for a shared library.
         "USE_SYSTEM_LAPACK=1"
         "USE_SYSTEM_BLAS=1"
         "USE_BLAS64=0"          ;needed when USE_SYSTEM_BLAS=1
@@ -485,7 +485,11 @@
     (native-search-paths
      (list (search-path-specification
             (variable "JULIA_LOAD_PATH")
-            (files (list "share/julia/packages/")))))
+            (files (list "share/julia/packages/"
+                         "share/julia/stdlib/v1.1/")))
+           (search-path-specification
+            (variable "JULIA_DEPOT_PATH")
+            (files (list "share/julia/")))))
     ;; Julia is not officially released for ARM and MIPS.
     ;; See https://github.com/JuliaLang/julia/issues/10639
     (supported-systems '("i686-linux" "x86_64-linux" "aarch64-linux"))
-- 
2.24.0





Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Mon, 09 Dec 2019 14:02:02 GMT) Full text and rfc822 format available.

Message #11 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Nicolò Balzarotti <anothersms <at> gmail.com>
To: Guix Patches <38546 <at> debbugs.gnu.org>
Subject: [PATCH 2/3] gnu: julia-build-system: Enable tests.
Date: Thu, 10 Oct 2019 17:49:15 +0200
---
 guix/build-system/julia.scm       |  4 +++-
 guix/build/julia-build-system.scm | 28 +++++++++++++++++++---------
 2 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/guix/build-system/julia.scm b/guix/build-system/julia.scm
index 488fe9bb1d..0c07484f12 100644
--- a/guix/build-system/julia.scm
+++ b/guix/build-system/julia.scm
@@ -26,6 +26,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-26)
+  #:use-module (gnu packages check) ;; libfaketime
   #:export (%julia-build-system-modules
             julia-build
             julia-build-system))
@@ -68,6 +69,7 @@
                         ;; Keep the standard inputs of 'gnu-build-system'.
                         ,@(standard-packages)))
          (build-inputs `(("julia" ,julia)
+                         ("libfaketime" ,libfaketime)
                          ,@native-inputs))
          (outputs outputs)
          (build julia-build)
@@ -75,7 +77,7 @@
 
 (define* (julia-build store name inputs
                       #:key source
-                      (tests? #f)
+                      (tests? #t)
                       (phases '(@ (guix build julia-build-system)
                                   %standard-phases))
                       (outputs '("out"))
diff --git a/guix/build/julia-build-system.scm b/guix/build/julia-build-system.scm
index ff6fcf5fe3..bd4c64fa11 100644
--- a/guix/build/julia-build-system.scm
+++ b/guix/build/julia-build-system.scm
@@ -32,7 +32,13 @@
 ;; Code:
 
 (define (invoke-julia code)
-  (invoke "julia" "-e" code))
+  ;; Julia stores the result of the time() call
+  ;; inside the precompiled file. When trying to load it, its precompilation
+  ;; it fails at comparing the file mtime with the precompilation time,
+  ;; always triggering a recompile. This fixes the stored value.
+  ;; Also, libc.jl rand() uses time() as its seed. This might introduce indeterminism while building
+  ;; Default guix mtime is 1, so I'm setting the same here (if they differ, precompilation is invalid)
+  (invoke "faketime" "-f" "1970-01-01 00:00:01" "julia" "-e" code))
 
 ;; subpath where we store the package content
 (define %package-path "/share/julia/packages/")
@@ -78,13 +84,17 @@
     (invoke-julia (string-append "using " package)))
   #t)
 
-(define* (check #:key source inputs outputs #:allow-other-keys)
-  (let* ((out (assoc-ref outputs "out"))
-         (package (strip-store-file-name source))
-         (builddir (string-append out "/share/julia/")))
-    (setenv "JULIA_DEPOT_PATH" builddir)
-    (setenv "JULIA_LOAD_PATH" (generate-load-path inputs outputs))
-    (invoke-julia (string-append "using Pkg;Pkg.test(\"" package "\")")))
+(define* (check #:key tests? source inputs outputs #:allow-other-keys)
+  (when tests?
+      (let* ((out (assoc-ref outputs "out"))
+             (package (strip-store-file-name source))
+             (builddir (string-append out "/share/julia/")))
+        (setenv "JULIA_DEPOT_PATH" builddir)
+        (setenv "JULIA_LOAD_PATH" (generate-load-path inputs outputs))
+        (display builddir)
+        (invoke "julia" (string-append builddir
+                                       "packages/"
+                                       package "/test/runtests.jl"))))
   #t)
 
 (define (julia-create-package-toml outputs source
@@ -119,7 +129,7 @@ version = \"" version "\"
     (delete 'check) ; tests must be run after installation
     (replace 'install install)
     (add-after 'install 'precompile precompile)
-    ;; (add-after 'install 'check check)
+    (add-after 'install 'check check)
     ;; TODO: In the future we could add a "system-image-generation" phase
     ;; where we use PackageCompiler.jl to speed up package loading times
     (delete 'configure)
-- 
2.24.0





Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Mon, 09 Dec 2019 14:02:02 GMT) Full text and rfc822 format available.

Message #14 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Nicolò Balzarotti <anothersms <at> gmail.com>
To: Guix Patches <38546 <at> debbugs.gnu.org>
Subject: [PATCH 3/3] gnu: julia-xyz: Add julia-compat.
Date: Thu, 10 Oct 2019 17:49:15 +0200
* gnu/packages/julia-xyz.scm: New file.
* gnu/packages/julia-xyz.scm (julia-compat): New variable.
---
 gnu/packages/julia-xyz.scm | 62 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)
 create mode 100644 gnu/packages/julia-xyz.scm

diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
new file mode 100644
index 0000000000..85d4d696d9
--- /dev/null
+++ b/gnu/packages/julia-xyz.scm
@@ -0,0 +1,62 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Nicolò Balzarotti <nicolo <at> nixo.xyz>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages julia-xyz)
+  #:use-module (guix build-system julia)
+  #:use-module (guix git-download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (gnu packages algebra)
+  #:use-module (gnu packages base)      ; binutils (packagecompiler)
+  #:use-module (gnu packages commencement)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages fonts)
+  #:use-module (gnu packages graphics)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages maths)
+  #:use-module (gnu packages statistics)
+  #:use-module (gnu packages video)
+  #:use-module (gnu packages web)
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages tls))
+
+(define-public julia-compat
+  (package
+    (name "julia-compat")
+    (version "3.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/JuliaLang/Compat.jl")
+             (commit (string-append "v" version))))
+       (file-name "Compat")
+       (sha256
+        (base32 "0n4gqk0b5fcf0d12gizjs7hsgakh7w7xgx2srbvzc5pkm5z469l4"))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/JuliaLang/Compat.jl")
+    (synopsis "Compatibility across Julia versions")
+    (description "The Compat package is designed to ease interoperability
+between older and newer versions of the Julia language.  The Compat package
+provides a macro that lets you use the latest syntax in a backwards-compatible
+way.")
+    (license license:expat)))
-- 
2.24.0





Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sun, 15 Dec 2019 21:41:01 GMT) Full text and rfc822 format available.

Message #17 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: nixo <anothersms <at> gmail.com>
Cc: 38546 <at> debbugs.gnu.org
Subject: Re: [bug#38546] [PATCH 0/3] Julia: fix package build and add julia-xyz
Date: Sun, 15 Dec 2019 22:40:00 +0100
Hi!

nixo <anothersms <at> gmail.com> skribis:

> This set of patches improve the state of julia-build-system.
>
> 1. set path JULIA_LOAD_PATH to enable installing packages, and
>   JULIA_DEPOT_PATH to allow guix-precompiled cache to be recognized by julia. To

These two environment variables are supported upstream, right?

>   do this, a small "hack" with libfaketime was required (julia decides if the
>   cache is valid by comparing source ".jl" mtime with cache ".ji" file, in which
>   julia stores a timestamp. We need to force this timestamp to be equal to the
>   mtime of guix-store files).

OK.  This hack shouldn’t break “normal” Julia uses (outside of the
store), right?

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sun, 15 Dec 2019 21:44:02 GMT) Full text and rfc822 format available.

Message #20 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: Guix Patches <38546 <at> debbugs.gnu.org>
Subject: Re: [bug#38546] [PATCH 1/3] gnu: julia: Set to JULIA_LOAD_PATH and
 JULIA_DEPOT_PATH variables.
Date: Sun, 15 Dec 2019 22:43:16 +0100
Nicolò Balzarotti <anothersms <at> gmail.com> skribis:

>  gnu/packages/julia.scm | 146 +++++++++++++++++++++--------------------
>  1 file changed, 75 insertions(+), 71 deletions(-)

Please make sure to add a commit log listing all the entities changed.

Apparently there was some reindentation that makes this patch looks big
and makes the actual changes harder to spot.  Could you resubmit it
without the reindentation?

>      (native-search-paths
>       (list (search-path-specification
>              (variable "JULIA_LOAD_PATH")
> -            (files (list "share/julia/packages/")))))
> +            (files (list "share/julia/packages/"
> +                         "share/julia/stdlib/v1.1/")))

Why is this extra entry needed?  Doesn’t Julia find its own standard
library by default, even if JULIA_LOAD_PATH is unset?

> +           (search-path-specification
> +            (variable "JULIA_DEPOT_PATH")
> +            (files (list "share/julia/")))))

What’s JULIA_DEPOT_PATH supposed to point to again?  ‘share/julia’ seems
to be very much a catch-all thing.  :-)

Thanks,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sun, 15 Dec 2019 21:47:01 GMT) Full text and rfc822 format available.

Message #23 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: Guix Patches <38546 <at> debbugs.gnu.org>
Subject: Re: [bug#38546] [PATCH 2/3] gnu: julia-build-system: Enable tests.
Date: Sun, 15 Dec 2019 22:45:53 +0100
Nicolò Balzarotti <anothersms <at> gmail.com> skribis:

> ---
>  guix/build-system/julia.scm       |  4 +++-
>  guix/build/julia-build-system.scm | 28 +++++++++++++++++++---------
>  2 files changed, 22 insertions(+), 10 deletions(-)

With a commit log, please.  :-)

> --- a/guix/build/julia-build-system.scm
> +++ b/guix/build/julia-build-system.scm
> @@ -32,7 +32,13 @@
>  ;; Code:
>  
>  (define (invoke-julia code)
> -  (invoke "julia" "-e" code))
> +  ;; Julia stores the result of the time() call
> +  ;; inside the precompiled file. When trying to load it, its precompilation
> +  ;; it fails at comparing the file mtime with the precompilation time,
> +  ;; always triggering a recompile. This fixes the stored value.
> +  ;; Also, libc.jl rand() uses time() as its seed. This might introduce indeterminism while building
> +  ;; Default guix mtime is 1, so I'm setting the same here (if they differ, precompilation is invalid)
> +  (invoke "faketime" "-f" "1970-01-01 00:00:01" "julia" "-e" code))

Do you think it would be feasible to modify Julia to emit this fixed
timestamp, or to honor SOURCE_DATE_EPOCH, instead of using ‘faketime’?

The reason I’m asking is that (1) ‘faketime’ relies on LD_PRELOAD and so
it could introduce its own set of issues, and (2) I wouldn’t be
surprised to find ready-to-use SOURCE_DATE_EPOCH patches from fellow
Reproducible Builders floating around.  :-)

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sun, 15 Dec 2019 21:48:02 GMT) Full text and rfc822 format available.

Message #26 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: Guix Patches <38546 <at> debbugs.gnu.org>
Subject: Re: [bug#38546] [PATCH 3/3] gnu: julia-xyz: Add julia-compat.
Date: Sun, 15 Dec 2019 22:46:56 +0100
Nicolò Balzarotti <anothersms <at> gmail.com> skribis:

> * gnu/packages/julia-xyz.scm: New file.
> * gnu/packages/julia-xyz.scm (julia-compat): New variable.

The second line is unnecessary.

However, please make sure to add the file to ‘gnu/local.mk’.

Otherwise LGTM.

Thanks!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sat, 18 Jan 2020 13:33:01 GMT) Full text and rfc822 format available.

Message #29 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: anothersms <at> gmail.com (Nicolò Balzarotti)
To: 38546 <at> debbugs.gnu.org
Subject: [Nicolò Balzarotti] [PATCH 00/11] Update julia
 to 1.3.1, fix precompilation, add HTTP.jl
Date: Sat, 18 Jan 2020 14:32:36 +0100
Ok I had time to look at this again.

1. Package installation can be done both the julia way and the guix way
2. SOURCE_DATE_EPOCH is respected in package precompile timestamp. Other fixes are needed to get reproducible builds, but for now that means that package cache is used.
3. This patch adds some first julia package (HTTP.jl and dependencies) 
4. Updated julia to 1.3.1 (latest release). It's working great and the
build recipe is simplified a lot.  However, some test is failing.  The
"interesting" part is that when running tests alone, they are working.
It seems like the problem arise when tests are run on the _same core_
and not on different cores.  I opened a issue upstream for this
(https://github.com/JuliaLang/julia/issues/34330), I'll have to look
further on it, but for now if it's fine for me this is ready to be merged.

I'm sending the patch series here.

Thanks, Nicolò

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

> Hi,
>
> (+Cc: bug report.)
>
> Nicolò Balzarotti <anothersms <at> gmail.com> skribis:
>
>> Ludovic Courtès <ludo <at> gnu.org> writes:
>>
>>> Hi!
>>>
>>> nixo <anothersms <at> gmail.com> skribis:
>>>
>>>> This set of patches improve the state of julia-build-system.
>>>>
>>>> 1. set path JULIA_LOAD_PATH to enable installing packages, and
>>>>   JULIA_DEPOT_PATH to allow guix-precompiled cache to be recognized by julia. To
>>>
>>> These two environment variables are supported upstream, right?
>>
>> Yes, those variables are documented here:
>> https://docs.julialang.org/en/v1/manual/environment-variables/index.html
>
> Great.
>
>> Should user be allowed to manually install packages in his own private
>> home folder manually? (I just tried with R: R recognize the store is RO
>> and ask for an alternative path). I'll try to allow "standard" package
>> installation and submit the patch again (also, I just read you other
>> comments, so I'll fix everything!)
>
> I think users should have the option to install packages in the normal
> Julia way, without Guix.
>
>>>>   do this, a small "hack" with libfaketime was required (julia decides if the
>>>>   cache is valid by comparing source ".jl" mtime with cache ".ji" file, in which
>>>>   julia stores a timestamp. We need to force this timestamp to be equal to the
>>>>   mtime of guix-store files).
>>>
>>> OK.  This hack shouldn’t break “normal” Julia uses (outside of the
>>> store), right?
>> You are right, the issue is that julia finds its src (.jl) file to have
>> a different (although older) timestamp (because guix fixes the
>> mtime). This applies only to cache files placed in the store. Other
>> cache files (non-guix installed files) have the right timestamp, so are
>> not affected (I don't know if this explanation is clear. The TLDR is:
>> with this hack store works without double-precompilation, non-store
>> works normally, too).
>> However, I'll check if I can make it work with SOURCE_DATE_EPOCH. I
>> already read the code responsible for precompilation, so hopefully it
>> won't take too much time
>
> Awesome, thanks!
>
> Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sat, 18 Jan 2020 13:35:01 GMT) Full text and rfc822 format available.

Message #32 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: nixo <anothersms <at> gmail.com>
To: 38546 <at> debbugs.gnu.org
Subject: [PATCH 02/11] gnu: julia: use SOURCE_DATE_EPOCH for precompilation
 timestamp
Date: Sat, 18 Jan 2020 13:58:37 +0100
* gnu/packages/patches/julia-fake-mtime-with-SOURCE_DATE_EPOCH.patch: new file
---
 gnu/local.mk                                  |  1 +
 gnu/packages/julia.scm                        |  4 ++-
 ...ia-fake-mtime-with-SOURCE_DATE_EPOCH.patch | 29 +++++++++++++++++++
 3 files changed, 33 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/julia-fake-mtime-with-SOURCE_DATE_EPOCH.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 00ff3b8d61..fe8634b44d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1010,6 +1010,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/java-xerces-bootclasspath.patch	\
   %D%/packages/patches/java-xerces-build_dont_unzip.patch	\
   %D%/packages/patches/java-xerces-xjavac_taskdef.patch	\
+  %D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch      \
   %D%/packages/patches/jbig2dec-ignore-testtest.patch		\
   %D%/packages/patches/kdbusaddons-kinit-file-name.patch	\
   %D%/packages/patches/libvirt-create-machine-cgroup.patch	\
diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm
index e4db39afbd..a66309b611 100644
--- a/gnu/packages/julia.scm
+++ b/gnu/packages/julia.scm
@@ -191,7 +191,9 @@
                     version "/julia-" version ".tar.gz"))
               (sha256
                (base32
-                "1nwkmr9j55g1zkxdchnid1h022s0is52vx23niksshgvh793g41x"))))
+                "1nwkmr9j55g1zkxdchnid1h022s0is52vx23niksshgvh793g41x"))
+              (patches
+               (search-patches "julia-fake-mtime-with-SOURCE_DATE_EPOCH.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
diff --git a/gnu/packages/patches/julia-fake-mtime-with-SOURCE_DATE_EPOCH.patch b/gnu/packages/patches/julia-fake-mtime-with-SOURCE_DATE_EPOCH.patch
new file mode 100644
index 0000000000..467e6d68d1
--- /dev/null
+++ b/gnu/packages/patches/julia-fake-mtime-with-SOURCE_DATE_EPOCH.patch
@@ -0,0 +1,29 @@
+From e4dc28db1d70819505fd1a68fd9d2bfc4fb61a7d Mon Sep 17 00:00:00 2001
+From: nixo <nicolo <at> nixo.xyz>
+Date: Fri, 17 Jan 2020 11:28:30 +0100
+Subject: [PATCH] base: loading: support fake mtime with SOURCE_DATE_EPCOCH
+
+Do this when loading libraries
+---
+ base/loading.jl | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/base/loading.jl b/base/loading.jl
+index 7f11a2d4fc..1b4686d1dc 100644
+--- a/base/loading.jl
++++ b/base/loading.jl
+@@ -807,7 +807,10 @@ function _include_dependency(mod::Module, _path::AbstractString)
+         path = normpath(joinpath(dirname(prev), _path))
+     end
+     if _track_dependencies[]
+-        push!(_require_dependencies, (mod, path, mtime(path)))
++        push!(_require_dependencies,
++              (mod, path,
++               haskey(ENV, "SOURCE_DATE_EPOCH") ?
++               parse(Float64, ENV["SOURCE_DATE_EPOCH"]) : mtime(path)))
+     end
+     return path, prev
+ end
+-- 
+2.24.1
+
-- 
2.24.1





Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sat, 18 Jan 2020 13:35:02 GMT) Full text and rfc822 format available.

Message #35 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: nixo <anothersms <at> gmail.com>
To: 38546 <at> debbugs.gnu.org
Subject: [PATCH 03/11] gnu: julia: Adjust indentation.
Date: Fri, 10 Jan 2020 10:25:49 +0100
* gnu/packages/julia.scm (julia): Correct indentation, untabify
---
 gnu/packages/julia.scm | 216 ++++++++++++++++++++---------------------
 1 file changed, 108 insertions(+), 108 deletions(-)

diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm
index a66309b611..e1c4685227 100644
--- a/gnu/packages/julia.scm
+++ b/gnu/packages/julia.scm
@@ -51,14 +51,14 @@
 
 (define (julia-patch-url version name)
   (string-append "https://raw.githubusercontent.com/JuliaLang/julia/v" version
-		 "/deps/patches/" name ".patch"))
+                 "/deps/patches/" name ".patch"))
 
 (define (julia-patch name sha)
   (let ((version "1.3.1"))
     (origin (method url-fetch)
-	    (uri (julia-patch-url version name))
-	    (sha256 (base32 sha))
-	    (file-name name))))
+            (uri (julia-patch-url version name))
+            (sha256 (base32 sha))
+            (file-name name))))
 
 (define libuv-julia
   (let ((commit "35b1504507a7a4168caae3d78db54d1121b121e1"))
@@ -101,7 +101,7 @@
                 "1y0l08k6ak1mqbfj6accf9s5686kljwgsl4vcqpxzk5n74wpm6a3"))
               (patches
                (list
-	        (julia-patch "libunwind-prefer-extbl"
+                (julia-patch "libunwind-prefer-extbl"
                              "0lr4dafw8qyfh8sw8hhbwkql1dlhqv8px7k81y2l20hhxfgnh2m1")
                 (julia-patch "libunwind-static-arm"
                              "1jk3bmiw61ypcchqkk1fyg5wh8wpggk574wxyfyaic870zh3lhgq")))))
@@ -124,45 +124,45 @@
               ;; Discussion: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919628
               (patches
                (list
-	        (julia-patch "llvm-6.0-D44650"
-			    "1336q4vqayr94wdcnlmcxh90mjdh34dzw9x2cbiqjnx9b1j8fxyb")
-	        (julia-patch "llvm-6.0-DISABLE_ABI_CHECKS"
-			    "014fawd1ba7yckalypfld22zgic87x9nx3cim42zrwygywd36pyg")
-	        (julia-patch "llvm-6.0-NVPTX-addrspaces"
-			    "1qdi2zmrjsrj0h84zv2vyly2hjcn4f67mfy0s1q353g4v4jkscqc")
-	        (julia-patch "llvm-6.0.0_D27296-libssp"
-			    "0s5hi2r1j63i8m6ig1346crx2aiv9f7rgb3mg80kw1wx5y7pdpfh")
-	        (julia-patch "llvm-D27629-AArch64-large_model_6.0.1"
-			    "1qrshmlqvnasdyc158vfn3hnbigqph3lsq7acb9w8lwkpnnm2j4z")
-	        (julia-patch "llvm-D34078-vectorize-fdiv"
-			    "1696hg84a0jxcnggvqsc2cdp271hf9a44p4qsd078qm1mfawkaay")
-	        (julia-patch "llvm-D42262-jumpthreading-not-i1"
-			    "1c8w210gwidbnkkw8anp17dk5pnxws2fl3mb2qxh7y9wzfpixgaq")
-	        (julia-patch "llvm-D44892-Perf-integration"
-			    "0r37jd0ssh2k1pndkfd5blgpg9z90im4vlzprhb0n0wwz45g4b05")
-	        (julia-patch "llvm-D46460"
-			    "1miqgswdc0qvbaf4571c2xkxyp9ais06b1bcpa83sq22vr4hbsfb")
-	        (julia-patch "llvm-D49832-SCEVPred"
-			    "0v5c88hgqj6dymv3j86ca5mhpqab5fbnrvjiw1nvnrnya9l4dlbn")
-	        (julia-patch "llvm-D50010-VNCoercion-ni"
-			    "0iblb3q1xixwrb12jpb89h3ywmqmzdp6aqp416j4ncwakyjhhfkp")
-	        (julia-patch "llvm-D50167-scev-umin"
-			    "1f2rakcnnyhr7w10k7gqg0k0491pyvx5ijplivw557f714ys3q6v")
-	        (julia-patch "llvm-OProfile-line-num"
-			    "1jvbbmwyags0xfwamb13qrf3rgcz9i1r03m9lava7swag8xb78c7")
-	        (julia-patch "llvm-PPC-addrspaces"
-			    "1f23nhsxh2s3jskbgs7da9nwg3s1hrkbk5aahl08x41wi3mny01p")
-	        (julia-patch "llvm-rL323946-LSRTy"
-			    "10cz3vy1yw0w643z7xx021wa4kymx9fcm3bjg61s6vzdqd6d9fns")
-	        (julia-patch "llvm-rL326967-aligned-load"
-			    "04jxnv32yj5x17hqhi8g2p8rhgp38gmjzr871w7z8s44pq10v9v4")
-	        (julia-patch "llvm-rL327898"
-			    "15ah49gbsll23z28kpyahi5vl0fh3fkxcgd1zmxxdcl96s3x8bnq")))))
+                (julia-patch "llvm-6.0-D44650"
+                            "1336q4vqayr94wdcnlmcxh90mjdh34dzw9x2cbiqjnx9b1j8fxyb")
+                (julia-patch "llvm-6.0-DISABLE_ABI_CHECKS"
+                            "014fawd1ba7yckalypfld22zgic87x9nx3cim42zrwygywd36pyg")
+                (julia-patch "llvm-6.0-NVPTX-addrspaces"
+                            "1qdi2zmrjsrj0h84zv2vyly2hjcn4f67mfy0s1q353g4v4jkscqc")
+                (julia-patch "llvm-6.0.0_D27296-libssp"
+                            "0s5hi2r1j63i8m6ig1346crx2aiv9f7rgb3mg80kw1wx5y7pdpfh")
+                (julia-patch "llvm-D27629-AArch64-large_model_6.0.1"
+                            "1qrshmlqvnasdyc158vfn3hnbigqph3lsq7acb9w8lwkpnnm2j4z")
+                (julia-patch "llvm-D34078-vectorize-fdiv"
+                            "1696hg84a0jxcnggvqsc2cdp271hf9a44p4qsd078qm1mfawkaay")
+                (julia-patch "llvm-D42262-jumpthreading-not-i1"
+                            "1c8w210gwidbnkkw8anp17dk5pnxws2fl3mb2qxh7y9wzfpixgaq")
+                (julia-patch "llvm-D44892-Perf-integration"
+                            "0r37jd0ssh2k1pndkfd5blgpg9z90im4vlzprhb0n0wwz45g4b05")
+                (julia-patch "llvm-D46460"
+                            "1miqgswdc0qvbaf4571c2xkxyp9ais06b1bcpa83sq22vr4hbsfb")
+                (julia-patch "llvm-D49832-SCEVPred"
+                            "0v5c88hgqj6dymv3j86ca5mhpqab5fbnrvjiw1nvnrnya9l4dlbn")
+                (julia-patch "llvm-D50010-VNCoercion-ni"
+                            "0iblb3q1xixwrb12jpb89h3ywmqmzdp6aqp416j4ncwakyjhhfkp")
+                (julia-patch "llvm-D50167-scev-umin"
+                            "1f2rakcnnyhr7w10k7gqg0k0491pyvx5ijplivw557f714ys3q6v")
+                (julia-patch "llvm-OProfile-line-num"
+                            "1jvbbmwyags0xfwamb13qrf3rgcz9i1r03m9lava7swag8xb78c7")
+                (julia-patch "llvm-PPC-addrspaces"
+                            "1f23nhsxh2s3jskbgs7da9nwg3s1hrkbk5aahl08x41wi3mny01p")
+                (julia-patch "llvm-rL323946-LSRTy"
+                            "10cz3vy1yw0w643z7xx021wa4kymx9fcm3bjg61s6vzdqd6d9fns")
+                (julia-patch "llvm-rL326967-aligned-load"
+                            "04jxnv32yj5x17hqhi8g2p8rhgp38gmjzr871w7z8s44pq10v9v4")
+                (julia-patch "llvm-rL327898"
+                            "15ah49gbsll23z28kpyahi5vl0fh3fkxcgd1zmxxdcl96s3x8bnq")))))
     (arguments
      (substitute-keyword-arguments (package-arguments llvm-6)
        ((#:configure-flags flags)
         `(list ;; Taken from NixOS. Only way I could get libLLVM-6.0.so
-	  "-DCMAKE_BUILD_TYPE=Release"
+          "-DCMAKE_BUILD_TYPE=Release"
 
           ;; Build a native compiler and the NVPTX backend (NVIDIA) since
           ;; Julia insists on it, nothing more.  This reduces build times and
@@ -170,15 +170,15 @@
           ,(string-append "-DLLVM_TARGETS_TO_BUILD=" (system->llvm-target))
           "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=NVPTX"
 
-	  "-DLLVM_INSTALL_UTILS=ON"
-	  "-DLLVM_BUILD_TESTS=ON"
-	  "-DLLVM_ENABLE_FFI=ON"
-	  "-DLLVM_ENABLE_RTTI=ON"
+          "-DLLVM_INSTALL_UTILS=ON"
+          "-DLLVM_BUILD_TESTS=ON"
+          "-DLLVM_ENABLE_FFI=ON"
+          "-DLLVM_ENABLE_RTTI=ON"
           ;; "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
           ;; "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
-	  ;; "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly"
-	  "-DLLVM_ENABLE_DUMP=ON"
-	  "-DLLVM_LINK_LLVM_DYLIB=ON"))))))
+          ;; "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly"
+          "-DLLVM_ENABLE_DUMP=ON"
+          "-DLLVM_LINK_LLVM_DYLIB=ON"))))))
 
 (define-public julia
   (package
@@ -222,9 +222,9 @@
                         (string-append "deps/srccache/libwhich-"
                                        "81e9723c0273d78493dc8c8ed570f68d9ce7e89e"
                                        ".tar.gz"))
-	     ;; needed by libwhich
-	     (setenv "LD_LIBRARY_PATH"
-		     (string-join (map (lambda (pkg)
+             ;; needed by libwhich
+             (setenv "LD_LIBRARY_PATH"
+                     (string-join (map (lambda (pkg)
                                          (string-append (assoc-ref inputs pkg)
                                                         "/lib"))
                                        '("arpack-ng" "curl" "dsfmt"
@@ -234,7 +234,7 @@
                                          "openblas" "openlibm" "pcre2"
                                          "suitesparse"))
                                   ":"))
-	     #t))
+             #t))
          ;; FIXME: Building the documentation requires Julia packages that
          ;; would be downloaded from the Internet.  We should build them in a
          ;; separate build phase.
@@ -250,40 +250,40 @@
            ;; Some tests require a home directory to be set.
            (lambda _ (setenv "HOME" "/tmp") #t))
          (add-after 'unpack 'hardcode-soname-map
-          ;; ./src/runtime_ccall.cpp creates a map from library names to paths
-          ;; using the output of "/sbin/ldconfig -p".  Since ldconfig is not
-          ;; used in Guix, we patch runtime_ccall.cpp to contain a static map.
-          (lambda* (#:key inputs #:allow-other-keys)
-            (substitute* "base/math.jl"
-              (("const libm = Base.libm_name")
-               (string-append "const libm = \""
-                              (assoc-ref inputs "openlibm")
-                              "/lib/libopenlibm.so"
-                              "\"")))))
+           ;; ./src/runtime_ccall.cpp creates a map from library names to paths
+           ;; using the output of "/sbin/ldconfig -p".  Since ldconfig is not
+           ;; used in Guix, we patch runtime_ccall.cpp to contain a static map.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "base/math.jl"
+               (("const libm = Base.libm_name")
+                (string-append "const libm = \""
+                               (assoc-ref inputs "openlibm")
+                               "/lib/libopenlibm.so"
+                               "\"")))))
          (add-before 'build 'fix-include-and-link-paths
-          (lambda* (#:key inputs #:allow-other-keys)
-            ;; LIBUTF8PROC is a linker flag, not a build target.  It is
-            ;; included in the LIBFILES_* variable which is used as a
-            ;; collection of build targets and a list of libraries to link
-            ;; against.
-            (substitute* "src/flisp/Makefile"
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; LIBUTF8PROC is a linker flag, not a build target.  It is
+             ;; included in the LIBFILES_* variable which is used as a
+             ;; collection of build targets and a list of libraries to link
+             ;; against.
+             (substitute* "src/flisp/Makefile"
                (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\)\\$\\(EXE\\): \\$\\(OBJS\\) \\$\\(LIBFILES_release\\)")
                 "$(BUILDDIR)/$(EXENAME)$(EXE): $(OBJS) $(LLT_release)")
                (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\)-debug$(EXE): \\$\\(DOBJS\\) \\$\\(LIBFILES_debug\\)")
                 "$(BUILDDIR)/$(EXENAME)-debug\\$\\(EXE\\): $(DOBJS) $(LLT_debug)"))
 
-            ;; The REPL must be linked with libuv.
-            (substitute* "ui/Makefile"
-              (("JLDFLAGS \\+= ")
-               (string-append "JLDFLAGS += "
-                              (assoc-ref %build-inputs "libuv")
-                              "/lib/libuv.so ")))
+             ;; The REPL must be linked with libuv.
+             (substitute* "ui/Makefile"
+               (("JLDFLAGS \\+= ")
+                (string-append "JLDFLAGS += "
+                               (assoc-ref %build-inputs "libuv")
+                               "/lib/libuv.so ")))
 
-            (substitute* "base/Makefile"
-              (("\\$\\(build_includedir\\)/uv/errno.h")
-               (string-append (assoc-ref inputs "libuv")
-                              "/include/uv/errno.h")))
-            #t))
+             (substitute* "base/Makefile"
+               (("\\$\\(build_includedir\\)/uv/errno.h")
+                (string-append (assoc-ref inputs "libuv")
+                               "/include/uv/errno.h")))
+             #t))
          (add-before 'build 'replace-default-shell
            (lambda _
              (substitute* "base/client.jl"
@@ -307,7 +307,7 @@
              ;; https://github.com/JuliaLang/julia/issues/32377
              (substitute* "stdlib/REPL/test/replcompletions.jl"
                (("@test count") "@test_broken count"))
-	     #t)))
+             #t)))
        #:make-flags
        (list
         (string-append "prefix=" (assoc-ref %outputs "out"))
@@ -331,7 +331,7 @@
         "USE_SYSTEM_P7ZIP=1"
         "USE_SYSTEM_LAPACK=1"
         "USE_SYSTEM_BLAS=1"
-        "USE_BLAS64=0"          ;needed when USE_SYSTEM_BLAS=1
+        "USE_BLAS64=0"                  ;needed when USE_SYSTEM_BLAS=1
         "LIBBLAS=-lopenblas"
         "LIBBLASNAME=libopenblas"
 
@@ -339,35 +339,35 @@
         (string-append "SUITESPARSE_INC=-I "
                        (assoc-ref %build-inputs "suitesparse")
                        "/include")
-        "USE_GPL_LIBS=1"        ;proudly
+        "USE_GPL_LIBS=1"                ;proudly
         "USE_SYSTEM_UTF8PROC=1"
         (string-append "UTF8PROC_INC="
                        (assoc-ref %build-inputs "utf8proc")
                        "/include")
         "USE_SYSTEM_LLVM=1"
-	"LLVM_VER=6.0.1"
+        "LLVM_VER=6.0.1"
 
-	"USE_LLVM_SHLIB=1"
-	"USE_SYSTEM_LIBUNWIND=1"
-	"USE_SYSTEM_LIBUV=1"
-	(string-append "LIBUV="
-		       (assoc-ref %build-inputs "libuv")
-		       "/lib/libuv.so")
-	(string-append "LIBUV_INC="
-		       (assoc-ref %build-inputs "libuv")
-		       "/include")
-	"USE_SYSTEM_PATCHELF=1"
-	"USE_SYSTEM_PCRE=1"
-	"USE_SYSTEM_OPENLIBM=1"
+        "USE_LLVM_SHLIB=1"
+        "USE_SYSTEM_LIBUNWIND=1"
+        "USE_SYSTEM_LIBUV=1"
+        (string-append "LIBUV="
+                       (assoc-ref %build-inputs "libuv")
+                       "/lib/libuv.so")
+        (string-append "LIBUV_INC="
+                       (assoc-ref %build-inputs "libuv")
+                       "/include")
+        "USE_SYSTEM_PATCHELF=1"
+        "USE_SYSTEM_PCRE=1"
+        "USE_SYSTEM_OPENLIBM=1"
         "USE_SYSTEM_LIBM=0"
         "USE_SYSTEM_LIBSSH2=1"
         "USE_SYSTEM_CURL=1"
-	"USE_SYSTEM_GMP=1"
-	"USE_SYSTEM_MPFR=1"
-	"USE_SYSTEM_MBEDTLS=1"
-	"USE_SYSTEM_ARPACK=1"
-	"USE_SYSTEM_LIBGIT2=1"
-	"USE_SYSTEM_ZLIB=1")))
+        "USE_SYSTEM_GMP=1"
+        "USE_SYSTEM_MPFR=1"
+        "USE_SYSTEM_MBEDTLS=1"
+        "USE_SYSTEM_ARPACK=1"
+        "USE_SYSTEM_LIBGIT2=1"
+        "USE_SYSTEM_ZLIB=1")))
     (inputs
      `(("llvm" ,llvm-julia)
 
@@ -377,9 +377,9 @@
        ;; <https://bugs.gnu.org/30282>.
        ("arpack-ng" ,arpack-ng-3.3.0)
 
-       ("coreutils" ,coreutils) ;for bindings to "mkdir" and the like
+       ("coreutils" ,coreutils)         ;for bindings to "mkdir" and the like
        ("lapack" ,lapack)
-       ("openblas" ,openblas) ;Julia does not build with Atlas
+       ("openblas" ,openblas)           ;Julia does not build with Atlas
        ("libunwind" ,libunwind-julia)
        ("openlibm" ,openlibm)
        ("mbedtls" ,mbedtls-apache)
@@ -411,20 +411,20 @@
             (base32
              "0wp6ld9vk11f4nnkn56627zmlv9k5vafi99qa3yyn1pgcd61zcfs"))))
        ("libwhich"
-	,(let ((commit "81e9723c0273d78493dc8c8ed570f68d9ce7e89e"))
+        ,(let ((commit "81e9723c0273d78493dc8c8ed570f68d9ce7e89e"))
            (origin
              ;; Note: We use a /tarball URL, but that's because Julia's build
              ;; system checks the hash of that tarball; thus we can't use
              ;; 'git-fetch'.
-	     (method url-fetch)
-	     (uri (string-append
+             (method url-fetch)
+             (uri (string-append
                    "https://api.github.com/repos/vtjnash/libwhich/tarball/"
                    commit))
              (file-name (string-append "libwhich-" (string-take commit 7)
                                        ".tar.gz"))
-	     (sha256
-	      (base32
-	       "1p7zg31kpmpbmh1znrk1xrbd074agx13b9q4dcw8n2zrwwdlbz3b")))))
+             (sha256
+              (base32
+               "1p7zg31kpmpbmh1znrk1xrbd074agx13b9q4dcw8n2zrwwdlbz3b")))))
        ("dsfmt" ,dsfmt)))
     (native-inputs
      `(("openssl" ,openssl)
-- 
2.24.1





Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sat, 18 Jan 2020 13:36:01 GMT) Full text and rfc822 format available.

Message #38 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: nixo <anothersms <at> gmail.com>
To: 38546 <at> debbugs.gnu.org
Subject: [PATCH 04/11] use wrapper to set JULIA_LOAD_PATH and JULIA_DEPOT_PATH
Date: Sat, 18 Jan 2020 14:23:44 +0100
---
 gnu/packages/julia.scm | 25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm
index e1c4685227..39c7d6d34f 100644
--- a/gnu/packages/julia.scm
+++ b/gnu/packages/julia.scm
@@ -297,7 +297,9 @@
                 ;; running order.  I think it depends on the number of
                 ;; runners, disabling it for now
                 ;; https://github.com/JuliaLang/julia/issues/34330
-                "tests = filter(e->!in(e,[\"backtrace\",\"exceptions\",\"client\",\"stacktraces\"]),testnames)"))
+                "tests = filter(e->!in(e,[\"backtrace\",\"exceptions\",\"client\",
+                                          \"stacktraces\",\"stress\",\"precompile\"]),
+                                testnames)"))
              ;; When HOME is not set, julia calls uv_os_homedir, which in
              ;; turns call getpwuid_r. Add the HOME env variable to the
              ;; external julia call to fix this
@@ -307,11 +309,23 @@
              ;; https://github.com/JuliaLang/julia/issues/32377
              (substitute* "stdlib/REPL/test/replcompletions.jl"
                (("@test count") "@test_broken count"))
-             #t)))
+             #t))
+         (add-after 'install 'make-wrapper
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (program "julia"))
+               (with-directory-excursion bin
+                 (wrap-program program
+                   `("JULIA_LOAD_PATH" ":" prefix
+                     ("" "$JULIA_LOAD_PATH")))
+                 (wrap-program program
+                   `("JULIA_DEPOT_PATH" ":" prefix
+                     ("" "$JULIA_DEPOT_PATH"))))
+               #t))))
        #:make-flags
        (list
         (string-append "prefix=" (assoc-ref %outputs "out"))
-        (string-append "PREFIX=" (assoc-ref %outputs "out"))
 
         ;; Passing the MARCH flag is necessary to build binary substitutes for
         ;; the supported architectures.
@@ -435,7 +449,10 @@
     (native-search-paths
      (list (search-path-specification
             (variable "JULIA_LOAD_PATH")
-            (files (list "share/julia/packages/")))))
+            (files (list "share/julia/packages/")))
+           (search-path-specification
+            (variable "JULIA_DEPOT_PATH")
+            (files (list "share/julia/")))))
     ;; Julia is not officially released for ARM and MIPS.
     ;; See https://github.com/JuliaLang/julia/issues/10639
     (supported-systems '("i686-linux" "x86_64-linux" "aarch64-linux"))
-- 
2.24.1





Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sat, 18 Jan 2020 13:36:02 GMT) Full text and rfc822 format available.

Message #41 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: nixo <anothersms <at> gmail.com>
To: 38546 <at> debbugs.gnu.org
Subject: [PATCH 05/11] gnu: build: julia-build-system: fix package
Date: Fri, 17 Jan 2020 19:40:55 +0100
 precompilation

---
 guix/build/julia-build-system.scm | 51 +++++++++++++------------------
 1 file changed, 22 insertions(+), 29 deletions(-)

diff --git a/guix/build/julia-build-system.scm b/guix/build/julia-build-system.scm
index ff6fcf5fe3..dbd4af623d 100644
--- a/guix/build/julia-build-system.scm
+++ b/guix/build/julia-build-system.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Nicolò Balzarotti <nicolo <at> nixo.xyz>
+;;; Copyright © 2019, 2020 Nicolò Balzarotti <nicolo <at> nixo.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -37,53 +37,46 @@
 ;; subpath where we store the package content
 (define %package-path "/share/julia/packages/")
 
-(define (generate-load-path inputs outputs)
-  (string-append
-   (string-join (map (match-lambda
-                       ((_ . path)
-                        (string-append path %package-path)))
-                     ;; Restrict to inputs beginning with "julia-".
-                     (filter (match-lambda
-                               ((name . _)
-                                (string-prefix? "julia-" name)))
-                             inputs))
-                ":")
-   (string-append ":" (assoc-ref outputs "out") %package-path)
-   ;; stdlib is always required to find Julia's standard libraries.
-   ;; usually there are other two paths in this variable:
-   ;; "@" and "@v#.#"
-   ":@stdlib"))
-
 (define* (install #:key source inputs outputs #:allow-other-keys)
   (let* ((out (assoc-ref outputs "out"))
          (package-dir (string-append out %package-path
-                                     (string-append
-                                      (strip-store-file-name source)))))
-    (setenv "JULIA_LOAD_PATH" (generate-load-path inputs outputs))
+                                     (strip-store-file-name source))))
     (mkdir-p package-dir)
-    (copy-recursively source package-dir))
+    (copy-recursively (getcwd) package-dir))
   #t)
 
-;; TODO: Precompilation is working, but I don't know how to tell
-;; julia to use use it. If (on rantime) we set HOME to
-;; store path, julia tries to write files there (failing)
 (define* (precompile #:key source inputs outputs #:allow-other-keys)
   (let* ((out (assoc-ref outputs "out"))
          (builddir (string-append out "/share/julia/"))
          (package (strip-store-file-name source)))
     (mkdir-p builddir)
+    ;; With a patch, SOURCE_DATE_EPOCH is honored
+    (setenv "SOURCE_DATE_EPOCH" "1")
     (setenv "JULIA_DEPOT_PATH" builddir)
-    (setenv "JULIA_LOAD_PATH" (generate-load-path inputs outputs))
-    ;; Actual precompilation
-    (invoke-julia (string-append "using " package)))
+    ;; add new package dir to the load path
+    (setenv "JULIA_LOAD_PATH"
+            (string-append builddir "packages/" ":"
+                           (or (getenv "JULIA_LOAD_PATH")
+                               "")))
+    ;; Actual precompilation.
+    (invoke-julia
+     ;; when using julia as a user, julia writes precompile cache to the first
+     ;; entry of the DEPOT_PATH list (by default, the home dir).  We want to
+     ;; write it to the store, so let's push the store path as the first
+     ;; element of DEPOT_PATH.  Once the cache file exists, this hack is not
+     ;; needed anymore (like in the check phase).  If the user install new
+     ;; pacakges, those will be installed and precompiled in the home dir
+     (string-append "pushfirst!(DEPOT_PATH, pop!(DEPOT_PATH)); using " package)))
   #t)
 
 (define* (check #:key source inputs outputs #:allow-other-keys)
   (let* ((out (assoc-ref outputs "out"))
          (package (strip-store-file-name source))
          (builddir (string-append out "/share/julia/")))
+    ;; With a patch, SOURCE_DATE_EPOCH is honored
+    (setenv "SOURCE_DATE_EPOCH" "1")
     (setenv "JULIA_DEPOT_PATH" builddir)
-    (setenv "JULIA_LOAD_PATH" (generate-load-path inputs outputs))
+    (setenv "JULIA_LOAD_PATH" (string-append builddir "packages/"))
     (invoke-julia (string-append "using Pkg;Pkg.test(\"" package "\")")))
   #t)
 
-- 
2.24.1





Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sat, 18 Jan 2020 13:36:02 GMT) Full text and rfc822 format available.

Message #44 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: nixo <anothersms <at> gmail.com>
To: 38546 <at> debbugs.gnu.org
Subject: [PATCH 06/11] gnu: Add julia-compat.
Date: Sat, 18 Jan 2020 14:05:00 +0100
* gnu/packages/julia-xyz.scm: New file
* gnu/packages/julia-xyz.scm (julia-compat): New variable
---
 gnu/local.mk               |  1 +
 gnu/packages/julia-xyz.scm | 27 +++++++++++++++++++++++++++
 2 files changed, 28 insertions(+)
 create mode 100644 gnu/packages/julia-xyz.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index fe8634b44d..e07229ee20 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -277,6 +277,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/jrnl.scm				\
   %D%/packages/jose.scm				\
   %D%/packages/julia.scm			\
+  %D%/packages/julia-xyz.scm			\
   %D%/packages/jupyter.scm			\
   %D%/packages/kawa.scm				\
   %D%/packages/kde.scm				\
diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
new file mode 100644
index 0000000000..7d9faa63e9
--- /dev/null
+++ b/gnu/packages/julia-xyz.scm
@@ -0,0 +1,27 @@
+(define-module (gnu packages julia-xyz)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system julia))
+
+(define-public julia-compat
+  (package
+    (name "julia-compat")
+    (version "3.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/JuliaLang/Compat.jl")
+             (commit (string-append "v" version))))
+       (file-name "Compat")
+       (sha256
+        (base32 "0d21h3l2ry2mmlhpg7b9cxifayzwcv7r13h5wydcbd5pjf6k4qd4"))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/JuliaLang/Compat.jl")
+    (synopsis "Compatibility across Julia versions")
+    (description "The Compat package is designed to ease interoperability
+between older and newer versions of the Julia language.  The Compat package
+provides a macro that lets you use the latest syntax in a backwards-compatible
+way.")
+    (license license:expat)))
-- 
2.24.1





Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sat, 18 Jan 2020 13:36:03 GMT) Full text and rfc822 format available.

Message #47 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: nixo <anothersms <at> gmail.com>
To: 38546 <at> debbugs.gnu.org
Subject: [PATCH 07/11] gnu: Add julia-inifile.
Date: Sat, 18 Jan 2020 14:06:11 +0100
* gnu/packages/julia-xyz.scm (julia-inifile): New variable.
---
 gnu/packages/julia-xyz.scm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 7d9faa63e9..6b8053e5f8 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -25,3 +25,23 @@ between older and newer versions of the Julia language.  The Compat package
 provides a macro that lets you use the latest syntax in a backwards-compatible
 way.")
     (license license:expat)))
+
+(define-public julia-inifile
+  (package
+    (name "julia-inifile")
+    (version "0.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/JuliaIO/IniFile.jl")
+             (commit "8ba59958495fa276d6489d2c3903e765d75e0bc0")))
+       (file-name "IniFile")
+       (sha256
+        (base32 "11h6f99jpbg729lplw841m68jprka7q3n8yw390bndlmcdsjabpd"))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/JuliaIO/IniFile.jl")
+    (synopsis "Reading Windows-style INI files")
+    (description "This is a julia package that defines an IniFile type that
+allows to interface with @file{.ini} files")
+    (license license:expat)))
-- 
2.24.1





Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sat, 18 Jan 2020 13:36:03 GMT) Full text and rfc822 format available.

Message #50 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: nixo <anothersms <at> gmail.com>
To: 38546 <at> debbugs.gnu.org
Subject: [PATCH 08/11] gnu: Add julia-sha.
Date: Sat, 18 Jan 2020 14:07:13 +0100
* gnu/packages/julia-xyz.scm (julia-sha): New variable.
---
 gnu/packages/julia-xyz.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 6b8053e5f8..92ffde58e7 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -45,3 +45,26 @@ way.")
     (description "This is a julia package that defines an IniFile type that
 allows to interface with @file{.ini} files")
     (license license:expat)))
+
+(define-public julia-sha
+  (package
+    (name "julia-sha")
+    (version "0.5.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/staticfloat/SHA.jl")
+             (commit (string-append "v" version))))
+       (file-name "SHA")
+       (sha256
+        (base32 "10a09kg9z0m8rvwmlgsna6p342kyvizx2axdqc6pzyhraddr8jrp"))))
+    (propagated-inputs `(("julia-compat" ,julia-compat)))
+    (build-system julia-build-system)
+    (home-page "https://github.com/staticfloat/SHA.jl")
+    (synopsis
+     "Performant, 100% native-julia SHA1, SHA2, and SHA3 implementation")
+    (description "Julia package implementing SHA algorithms.  Each exported
+function takes in either an @code{Array{UInt8}}, a @code{ByteString} or an
+@code{IO} object.")
+    (license license:expat)))
-- 
2.24.1





Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sat, 18 Jan 2020 13:36:03 GMT) Full text and rfc822 format available.

Message #53 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: nixo <anothersms <at> gmail.com>
To: 38546 <at> debbugs.gnu.org
Subject: [PATCH 09/11] gnu: Add julia-binaryprovider.
Date: Sat, 18 Jan 2020 14:07:36 +0100
* gnu/packages/julia-xyz.scm (julia-binaryprovider): New variable.
---
 gnu/packages/julia-xyz.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 92ffde58e7..0f8e04b4d1 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -68,3 +68,36 @@ allows to interface with @file{.ini} files")
 function takes in either an @code{Array{UInt8}}, a @code{ByteString} or an
 @code{IO} object.")
     (license license:expat)))
+
+(define-public julia-binaryprovider
+  (package
+    (name "julia-binaryprovider")
+    (version "0.5.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/JuliaPackaging/BinaryProvider.jl")
+             (commit (string-append "v" version))))
+       (file-name "BinaryProvider")
+       (sha256
+        (base32 "174jmg4w8ncgfhdvfnm0p4cnlayw31j4s9sksqlwz1sipywqvww7"))))
+    (propagated-inputs `(("julia-sha" ,julia-sha)))
+    ;; We don't really need BinaryProvider (as guix provides the binaries) but
+    ;; since it's a dependency of other packages we want to precompile it.
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-engine-probe
+           (lambda _
+             (substitute* "src/BinaryProvider.jl"
+               ;; Precompilation tries to download things from the internet,
+               ;; disable the download part
+               (("probe_platform_engines") "# probe_platform_engines"))
+             #t)))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/JuliaPackaging/BinaryProvider.jl")
+    (synopsis "Reliable Binary provider for Julia")
+    (description "@code{BinaryProvider.jl} simplifies the installation of
+binaries required by julia packages.")
+    (license license:expat)))
-- 
2.24.1





Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sat, 18 Jan 2020 13:36:04 GMT) Full text and rfc822 format available.

Message #56 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: nixo <anothersms <at> gmail.com>
To: 38546 <at> debbugs.gnu.org
Subject: [PATCH 10/11] gnu: Add julia-mbedtls.
Date: Sat, 18 Jan 2020 14:11:14 +0100
* gnu/packages/julia-xyz.scm (julia-mbedtls): New variable.
---
 gnu/packages/julia-xyz.scm | 49 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 48 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 0f8e04b4d1..3e9f532697 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -2,7 +2,8 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix git-download)
-  #:use-module (guix build-system julia))
+  #:use-module (guix build-system julia)
+  #:use-module (gnu packages tls))
 
 (define-public julia-compat
   (package
@@ -101,3 +102,49 @@ function takes in either an @code{Array{UInt8}}, a @code{ByteString} or an
     (description "@code{BinaryProvider.jl} simplifies the installation of
 binaries required by julia packages.")
     (license license:expat)))
+
+(define-public julia-mbedtls
+  (package
+    (name "julia-mbedtls")
+    (version "0.7.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/JuliaLang/MbedTLS.jl")
+             (commit (string-append "v" version))))
+       (file-name "MbedTLS")
+       (sha256
+        (base32 "1a8snw9gi21lm6r3kh6ly7ngi99s9k5shqkfiizj3g9li20q23h2"))))
+    (propagated-inputs
+     `(("julia-binaryprovider" ,julia-binaryprovider)
+       ("mbedtls-apache" ,mbedtls-apache)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'precompile 'build-deps
+           (lambda* (#:key outputs source inputs #:allow-other-keys)
+             (let ((f (open-file
+                       (string-append
+                        (assoc-ref outputs "out")
+                        "/share/julia/packages/"
+                        (string-append
+                         (strip-store-file-name source) "/deps/deps.jl"))
+                       "w")))
+               (display (string-append "const libmbedcrypto = \""
+                                       (assoc-ref inputs "mbedtls-apache")
+                                       "/lib/libmbedcrypto.so\"\n") f)
+               (display (string-append "const libmbedtls = \""
+                                       (assoc-ref inputs "mbedtls-apache")
+                                       "/lib/libmbedtls.so\"\n") f)
+               (display (string-append "const libmbedx509 = \""
+                                       (assoc-ref inputs "mbedtls-apache")
+                                       "/lib/libmbedx509.so\"\n") f)
+               (close-port f))
+             #t)))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/JuliaLang/MbedTLS.jl")
+    (synopsis "Apache's mbed TLS library wrapper")
+    (description "@code{MbedTLS.jl} provides a wrapper around the mbed TLS and
+cryptography C libary for Julia.")
+    (license license:expat)))
-- 
2.24.1





Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sat, 18 Jan 2020 13:36:04 GMT) Full text and rfc822 format available.

Message #59 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: nixo <anothersms <at> gmail.com>
To: 38546 <at> debbugs.gnu.org
Subject: [PATCH 11/11] gnu: Add julia-http.
Date: Sat, 18 Jan 2020 14:11:45 +0100
* gnu/packages/julia-xyz.scm (julia-http): New variable.
---
 gnu/packages/julia-xyz.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 3e9f532697..ff1bb483f9 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -148,3 +148,27 @@ binaries required by julia packages.")
     (description "@code{MbedTLS.jl} provides a wrapper around the mbed TLS and
 cryptography C libary for Julia.")
     (license license:expat)))
+
+(define-public julia-http
+  (package
+    (name "julia-http")
+    (version "0.8.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/JuliaWeb/HTTP.jl")
+             (commit (string-append "v" version))))
+       (file-name "HTTP")
+       (sha256
+        (base32 "0928fvncfp07i5hvqxjyj8i27xmxxllas1m5idqq2i8h7jshzq3y"))))
+    (propagated-inputs
+     `(("julia-inifile" ,julia-inifile)
+       ("julia-mbedtls" ,julia-mbedtls)
+       ("julia-compat" ,julia-compat)))
+    (build-system julia-build-system)
+    (home-page "https://juliaweb.github.io/HTTP.jl/")
+    (synopsis "HTTP support for Julia")
+    (description "@code{HTTP.jl} is a Julia library for HTTP Messages,
+implementing both a client and a server.")
+    (license license:expat)))
-- 
2.24.1





Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sat, 18 Jan 2020 13:38:01 GMT) Full text and rfc822 format available.

Message #62 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: anothersms <at> gmail.com (Nicolò Balzarotti)
To: 38546 <at> debbugs.gnu.org
Subject: [nixo] [PATCH 01/11] gnu: julia: Update to 1.3.1.
Date: Sat, 18 Jan 2020 14:36:40 +0100
* gnu/packages/julia.scm (julia): Update to 1.3.1.
* gnu/packages/julia.scm (libuv-julia): Update to 2.0.0.
---
 gnu/packages/julia.scm | 278 +++++++++++++++++------------------------
 1 file changed, 113 insertions(+), 165 deletions(-)

diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm
index 65a5e42beb..e4db39afbd 100644
--- a/gnu/packages/julia.scm
+++ b/gnu/packages/julia.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado <at> elephly.net>
 ;;; Copyright © 2016 Efraim Flashner <efraim <at> flashner.co.il>
+;;; Copyright © 2020 Nicolò Balzarotti <nicolo <at> nixo.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,6 +29,7 @@
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages curl)
   #:use-module (gnu packages elf)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages llvm)
@@ -43,18 +45,30 @@
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
+  #:use-module (gnu packages ssh)
   #:use-module (gnu packages wget)
   #:use-module (ice-9 match))
 
+(define (julia-patch-url version name)
+  (string-append "https://raw.githubusercontent.com/JuliaLang/julia/v" version
+		 "/deps/patches/" name ".patch"))
+
+(define (julia-patch name sha)
+  (let ((version "1.3.1"))
+    (origin (method url-fetch)
+	    (uri (julia-patch-url version name))
+	    (sha256 (base32 sha))
+	    (file-name name))))
+
 (define libuv-julia
-  (let ((commit "26dbe5672c33fc885462c509fe2a9b36f35866fd")
-        (revision "6"))
+  (let ((commit "35b1504507a7a4168caae3d78db54d1121b121e1"))
     ;; When upgrading Julia, also upgrade this.
-    ;; Get the commit from https://github.com/JuliaLang/julia/blob/v1.1.1/deps/libuv.version
+    ;; Get the commit from
+    ;; https://github.com/JuliaLang/julia/blob/v1.3.1/deps/libuv.version
     (package
       (inherit libuv)
       (name "libuv-julia")
-      (version (string-append "1.9.0-" revision "." (string-take commit 8)))
+      (version (string-append "2.0.0" "." (string-take commit 8)))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -63,7 +77,7 @@
                 (file-name (string-append name "-" version "-checkout"))
                 (sha256
                  (base32
-                  "17pn2xmqaramilx897s9grs966i5246gi6sric5alch4g9j4685n"))))
+                  "0dn3v6fdp1z382pqg3nhjzk60l61ky9b65mfgaj29fv2da95rwjs"))))
       (build-system gnu-build-system)
       (arguments
        (substitute-keyword-arguments (package-arguments libuv)
@@ -72,16 +86,27 @@
              (delete 'autogen)))))
       (home-page "https://github.com/JuliaLang/libuv"))))
 
-(define (llvm-patch-url version name)
-  (string-append "https://raw.githubusercontent.com/JuliaLang/julia/v" version
-		 "/deps/patches/" name))
-
-(define (llvm-patch name sha)
-  (let ((version "1.1.1"))
-    (origin (method url-fetch)
-	    (uri (llvm-patch-url version name))
-	    (sha256 (base32 sha))
-	    (file-name name))))
+(define libunwind-julia
+  ;; julia requires a patched version
+  (package
+    (inherit libunwind)
+    (name "libunwind-julia")
+    (version "1.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://savannah/libunwind/libunwind-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1y0l08k6ak1mqbfj6accf9s5686kljwgsl4vcqpxzk5n74wpm6a3"))
+              (patches
+               (list
+	        (julia-patch "libunwind-prefer-extbl"
+                             "0lr4dafw8qyfh8sw8hhbwkql1dlhqv8px7k81y2l20hhxfgnh2m1")
+                (julia-patch "libunwind-static-arm"
+                             "1jk3bmiw61ypcchqkk1fyg5wh8wpggk574wxyfyaic870zh3lhgq")))))
+    (build-system gnu-build-system)
+    (home-page "https://github.com/JuliaLang/libuv")))
 
 (define llvm-julia
   (package
@@ -99,39 +124,39 @@
               ;; Discussion: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919628
               (patches
                (list
-	        (llvm-patch "llvm-6.0-D44650.patch"
+	        (julia-patch "llvm-6.0-D44650"
 			    "1336q4vqayr94wdcnlmcxh90mjdh34dzw9x2cbiqjnx9b1j8fxyb")
-	        (llvm-patch "llvm-6.0-DISABLE_ABI_CHECKS.patch"
+	        (julia-patch "llvm-6.0-DISABLE_ABI_CHECKS"
 			    "014fawd1ba7yckalypfld22zgic87x9nx3cim42zrwygywd36pyg")
-	        (llvm-patch "llvm-6.0-NVPTX-addrspaces.patch"
+	        (julia-patch "llvm-6.0-NVPTX-addrspaces"
 			    "1qdi2zmrjsrj0h84zv2vyly2hjcn4f67mfy0s1q353g4v4jkscqc")
-	        (llvm-patch "llvm-6.0.0_D27296-libssp.patch"
+	        (julia-patch "llvm-6.0.0_D27296-libssp"
 			    "0s5hi2r1j63i8m6ig1346crx2aiv9f7rgb3mg80kw1wx5y7pdpfh")
-	        (llvm-patch "llvm-D27629-AArch64-large_model_6.0.1.patch"
+	        (julia-patch "llvm-D27629-AArch64-large_model_6.0.1"
 			    "1qrshmlqvnasdyc158vfn3hnbigqph3lsq7acb9w8lwkpnnm2j4z")
-	        (llvm-patch "llvm-D34078-vectorize-fdiv.patch"
+	        (julia-patch "llvm-D34078-vectorize-fdiv"
 			    "1696hg84a0jxcnggvqsc2cdp271hf9a44p4qsd078qm1mfawkaay")
-	        (llvm-patch "llvm-D42262-jumpthreading-not-i1.patch"
+	        (julia-patch "llvm-D42262-jumpthreading-not-i1"
 			    "1c8w210gwidbnkkw8anp17dk5pnxws2fl3mb2qxh7y9wzfpixgaq")
-	        (llvm-patch "llvm-D44892-Perf-integration.patch"
+	        (julia-patch "llvm-D44892-Perf-integration"
 			    "0r37jd0ssh2k1pndkfd5blgpg9z90im4vlzprhb0n0wwz45g4b05")
-	        (llvm-patch "llvm-D46460.patch"
+	        (julia-patch "llvm-D46460"
 			    "1miqgswdc0qvbaf4571c2xkxyp9ais06b1bcpa83sq22vr4hbsfb")
-	        (llvm-patch "llvm-D49832-SCEVPred.patch"
+	        (julia-patch "llvm-D49832-SCEVPred"
 			    "0v5c88hgqj6dymv3j86ca5mhpqab5fbnrvjiw1nvnrnya9l4dlbn")
-	        (llvm-patch "llvm-D50010-VNCoercion-ni.patch"
+	        (julia-patch "llvm-D50010-VNCoercion-ni"
 			    "0iblb3q1xixwrb12jpb89h3ywmqmzdp6aqp416j4ncwakyjhhfkp")
-	        (llvm-patch "llvm-D50167-scev-umin.patch"
+	        (julia-patch "llvm-D50167-scev-umin"
 			    "1f2rakcnnyhr7w10k7gqg0k0491pyvx5ijplivw557f714ys3q6v")
-	        (llvm-patch "llvm-OProfile-line-num.patch"
+	        (julia-patch "llvm-OProfile-line-num"
 			    "1jvbbmwyags0xfwamb13qrf3rgcz9i1r03m9lava7swag8xb78c7")
-	        (llvm-patch "llvm-PPC-addrspaces.patch"
+	        (julia-patch "llvm-PPC-addrspaces"
 			    "1f23nhsxh2s3jskbgs7da9nwg3s1hrkbk5aahl08x41wi3mny01p")
-	        (llvm-patch "llvm-rL323946-LSRTy.patch"
+	        (julia-patch "llvm-rL323946-LSRTy"
 			    "10cz3vy1yw0w643z7xx021wa4kymx9fcm3bjg61s6vzdqd6d9fns")
-	        (llvm-patch "llvm-rL326967-aligned-load.patch"
+	        (julia-patch "llvm-rL326967-aligned-load"
 			    "04jxnv32yj5x17hqhi8g2p8rhgp38gmjzr871w7z8s44pq10v9v4")
-	        (llvm-patch "llvm-rL327898.patch"
+	        (julia-patch "llvm-rL327898"
 			    "15ah49gbsll23z28kpyahi5vl0fh3fkxcgd1zmxxdcl96s3x8bnq")))))
     (arguments
      (substitute-keyword-arguments (package-arguments llvm-6)
@@ -158,7 +183,7 @@
 (define-public julia
   (package
     (name "julia")
-    (version "1.1.1")
+    (version "1.3.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -166,7 +191,7 @@
                     version "/julia-" version ".tar.gz"))
               (sha256
                (base32
-                "0hk983mywimclgnjc41zmlppm5kfdz2aj85ky07p49ilcqxi998f"))))
+                "1nwkmr9j55g1zkxdchnid1h022s0is52vx23niksshgvh793g41x"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -188,30 +213,24 @@
          (add-after 'unpack 'prepare-deps
            (lambda* (#:key inputs #:allow-other-keys)
              (mkdir "deps/srccache")
-             (copy-file (assoc-ref inputs "dsfmt")
-                        "deps/srccache/dsfmt-2.2.3.tar.gz")
+             ;; no USE_SYSTEM_{OBJCONV/LIBWHICH}
              (copy-file (assoc-ref inputs "objconv")
                         "deps/srccache/objconv.zip")
-             (copy-file (assoc-ref inputs "suitesparse")
-                        "deps/srccache/SuiteSparse-4.4.5.tar.gz")
-             (copy-file (string-append (assoc-ref inputs "virtualenv")
-                                       "/bin/virtualenv")
-                        "julia-env")
              (copy-file (assoc-ref inputs "libwhich")
                         (string-append "deps/srccache/libwhich-"
                                        "81e9723c0273d78493dc8c8ed570f68d9ce7e89e"
                                        ".tar.gz"))
-             (copy-file (assoc-ref inputs "rmath")
-                        "deps/srccache/Rmath-julia-0.1.tar.gz")
-
 	     ;; needed by libwhich
 	     (setenv "LD_LIBRARY_PATH"
 		     (string-join (map (lambda (pkg)
                                          (string-append (assoc-ref inputs pkg)
                                                         "/lib"))
-                                       '("arpack-ng" "fftw" "gmp" "lapack"
-			                 "libgit2" "mpfr" "openblas" "openlibm"
-			                 "openspecfun" "pcre2"))
+                                       '("arpack-ng" "curl" "dsfmt"
+                                         "gmp" "lapack"
+                                         "libssh2" "libgit2"
+                                         "mbedtls" "mpfr"
+                                         "openblas" "openlibm" "pcre2"
+                                         "suitesparse"))
                                   ":"))
 	     #t))
          ;; FIXME: Building the documentation requires Julia packages that
@@ -233,44 +252,12 @@
           ;; using the output of "/sbin/ldconfig -p".  Since ldconfig is not
           ;; used in Guix, we patch runtime_ccall.cpp to contain a static map.
           (lambda* (#:key inputs #:allow-other-keys)
-            (use-modules (ice-9 match))
-            (substitute* "src/runtime_ccall.cpp"
-              ;; Patch out invocations of '/sbin/ldconfig' to avoid getting
-              ;; error messages about missing '/sbin/ldconfig' on Guix System.
-              (("popen\\(.*ldconfig.*\\);")
-               "NULL;\n")
-
-              ;; Populate 'sonameMap'.
-              (("jl_read_sonames.*;")
-               (string-join
-                (map (match-lambda
-                       ((input libname soname)
-                        (string-append
-                         "sonameMap[\"" libname "\"] = "
-                         "\"" (assoc-ref inputs input) "/lib/" soname "\";")))
-                     '(("libc"        "libc"           "libc.so.6")
-                       ("pcre2"       "libpcre2-8"     "libpcre2-8.so")
-                       ("mpfr"        "libmpfr"        "libmpfr.so")
-                       ("openblas"    "libblas"        "libopenblas.so")
-                       ("arpack-ng"   "libarpack"      "libarpack.so")
-                       ("lapack"      "liblapack"      "liblapack.so")
-                       ("libgit2"     "libgit2"        "libgit2.so")
-                       ("gmp"         "libgmp"         "libgmp.so")
-                       ("openspecfun" "libopenspecfun" "libopenspecfun.so")
-                       ("fftw"        "libfftw3"       "libfftw3_threads.so")
-                       ("fftwf"       "libfftw3f"      "libfftw3f_threads.so"))))))
             (substitute* "base/math.jl"
               (("const libm = Base.libm_name")
                (string-append "const libm = \""
                               (assoc-ref inputs "openlibm")
                               "/lib/libopenlibm.so"
-                              "\""))
-              (("const openspecfun = \"libopenspecfun\"")
-               (string-append "const openspecfun = \""
-                              (assoc-ref inputs "openspecfun")
-                              "/lib/libopenspecfun.so"
-                              "\"")))
-            #t))
+                              "\"")))))
          (add-before 'build 'fix-include-and-link-paths
           (lambda* (#:key inputs #:allow-other-keys)
             ;; LIBUTF8PROC is a linker flag, not a build target.  It is
@@ -278,10 +265,10 @@
             ;; collection of build targets and a list of libraries to link
             ;; against.
             (substitute* "src/flisp/Makefile"
-              (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\): \\$\\(OBJS\\) \\$\\(LIBFILES_release\\)")
-               "$(BUILDDIR)/$(EXENAME): $(OBJS) $(LLT_release)")
-              (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\)-debug: \\$\\(DOBJS\\) \\$\\(LIBFILES_debug\\)")
-               "$(BUILDDIR)/$(EXENAME)-debug: $(DOBJS) $(LLT_debug)"))
+               (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\)\\$\\(EXE\\): \\$\\(OBJS\\) \\$\\(LIBFILES_release\\)")
+                "$(BUILDDIR)/$(EXENAME)$(EXE): $(OBJS) $(LLT_release)")
+               (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\)-debug$(EXE): \\$\\(DOBJS\\) \\$\\(LIBFILES_debug\\)")
+                "$(BUILDDIR)/$(EXENAME)-debug\\$\\(EXE\\): $(DOBJS) $(LLT_debug)"))
 
             ;; The REPL must be linked with libuv.
             (substitute* "ui/Makefile"
@@ -296,38 +283,28 @@
                               "/include/uv/errno.h")))
             #t))
          (add-before 'build 'replace-default-shell
-          (lambda _
-            (substitute* "base/client.jl"
-              (("/bin/sh") (which "sh")))
-            #t))
-         (add-after 'unpack 'hardcode-paths
            (lambda _
-             (substitute* "stdlib/InteractiveUtils/src/InteractiveUtils.jl"
-               (("`which") (string-append "`" (which "which")))
-               (("`wget")  (string-append "`" (which "wget"))))
+             (substitute* "base/client.jl"
+               (("/bin/sh") (which "sh")))
              #t))
-         (add-before 'check 'disable-broken-tests
+         (add-before 'check 'fix-broken-tests
            (lambda _
-             (define (touch file-name)
-               (call-with-output-file file-name (const #t)))
-	     ;; FIXME: All git tests works except this one. But *THIS* "fix"
-             ;; is not working, so right now I'm disabling all libgit2.jl tests
-	     ;; (substitute* "stdlib/LibGit2/test/libgit2.jl"
-	     ;; (("!LibGit2.use_http_path(cfg, github_cred)") "true")
-	     ;; (("LibGit2.use_http_path(cfg, mygit_cred)") "true"))
-             (map (lambda (test)
-                    (delete-file test)
-                    (touch test))
-	          '("stdlib/Sockets/test/runtests.jl"
-		    "stdlib/Distributed/test/runtests.jl"
-                    ;; FIXME: see above
-		    "stdlib/LibGit2/test/libgit2.jl"))
-	     (substitute* "test/choosetests.jl"
-	       ;; These tests fail, probably because some of the input
-	       ;; binaries have been stripped and thus backtraces don't look
-	       ;; as expected.
-	       (("\"backtrace\",") "")
-	       (("\"cmdlineargs\",") ""))
+             (substitute* "test/choosetests.jl"
+               (("tests = testnames")
+                ;; Those failings are not deterministic.  They depends on the
+                ;; running order.  I think it depends on the number of
+                ;; runners, disabling it for now
+                ;; https://github.com/JuliaLang/julia/issues/34330
+                "tests = filter(e->!in(e,[\"backtrace\",\"exceptions\",\"client\",\"stacktraces\"]),testnames)"))
+             ;; When HOME is not set, julia calls uv_os_homedir, which in
+             ;; turns call getpwuid_r. Add the HOME env variable to the
+             ;; external julia call to fix this
+             (substitute* "test/cmdlineargs.jl"
+               (("\"JULIA_PROJECT\"") "\"HOME\"=>\"/tmp\", \"JULIA_PROJECT\""))
+             ;; Marking the test as broken as it's a known bug:
+             ;; https://github.com/JuliaLang/julia/issues/32377
+             (substitute* "stdlib/REPL/test/replcompletions.jl"
+               (("@test count") "@test_broken count"))
 	     #t)))
        #:make-flags
        (list
@@ -345,26 +322,21 @@
            ;; platforms, e.g. when running "guix package --search="
            (_ "MARCH=UNSUPPORTED"))
 
-        "CONFIG_SHELL=bash"     ;needed to build bundled libraries
-        "USE_SYSTEM_DSFMT=0"    ;not packaged for Guix and upstream has no
-                                ;build system for a shared library.
+        "CONFIG_SHELL=bash"             ;needed to build bundled libraries
+        ;; list of "USE_SYSTEM_*" is here:
+        ;; https://github.com/JuliaLang/julia/blob/v1.3.1/Make.inc
+        "USE_SYSTEM_DSFMT=1"
+        "USE_SYSTEM_P7ZIP=1"
         "USE_SYSTEM_LAPACK=1"
         "USE_SYSTEM_BLAS=1"
         "USE_BLAS64=0"          ;needed when USE_SYSTEM_BLAS=1
         "LIBBLAS=-lopenblas"
         "LIBBLASNAME=libopenblas"
 
-        "USE_SYSTEM_FFTW=1"
-        "LIBFFTWNAME=libfftw3"
-        "LIBFFTWFNAME=libfftw3f"
-
-        ;; TODO: Suitesparse does not install shared libraries, so we cannot
-        ;; use the suitesparse package.
-        ;; "USE_SYSTEM_SUITESPARSE=1"
-        ;; (string-append "SUITESPARSE_INC=-I "
-        ;;                (assoc-ref %build-inputs "suitesparse")
-        ;;                "/include")
-
+        "USE_SYSTEM_SUITESPARSE=1"
+        (string-append "SUITESPARSE_INC=-I "
+                       (assoc-ref %build-inputs "suitesparse")
+                       "/include")
         "USE_GPL_LIBS=1"        ;proudly
         "USE_SYSTEM_UTF8PROC=1"
         (string-append "UTF8PROC_INC="
@@ -385,16 +357,19 @@
 	"USE_SYSTEM_PATCHELF=1"
 	"USE_SYSTEM_PCRE=1"
 	"USE_SYSTEM_OPENLIBM=1"
-
+        "USE_SYSTEM_LIBM=0"
+        "USE_SYSTEM_LIBSSH2=1"
+        "USE_SYSTEM_CURL=1"
 	"USE_SYSTEM_GMP=1"
 	"USE_SYSTEM_MPFR=1"
+	"USE_SYSTEM_MBEDTLS=1"
 	"USE_SYSTEM_ARPACK=1"
 	"USE_SYSTEM_LIBGIT2=1"
-	"USE_SYSTEM_ZLIB=1"
-	"USE_SYSTEM_OPENSPECFUN=1")))
+	"USE_SYSTEM_ZLIB=1")))
     (inputs
      `(("llvm" ,llvm-julia)
 
+       ("p7zip" ,p7zip)
        ;; The bundled version is 3.3.0 so stick to that version.  With other
        ;; versions, we get test failures in 'linalg/arnoldi' as described in
        ;; <https://bugs.gnu.org/30282>.
@@ -403,12 +378,12 @@
        ("coreutils" ,coreutils) ;for bindings to "mkdir" and the like
        ("lapack" ,lapack)
        ("openblas" ,openblas) ;Julia does not build with Atlas
-       ("libunwind" ,libunwind)
+       ("libunwind" ,libunwind-julia)
        ("openlibm" ,openlibm)
-       ("openspecfun" ,openspecfun)
+       ("mbedtls" ,mbedtls-apache)
+       ("curl" ,curl)
        ("libgit2" ,libgit2)
-       ("fftw" ,fftw)
-       ("fftwf" ,fftwf)
+       ("libssh2" ,libssh2)
        ("fortran" ,gfortran)
        ("libuv" ,libuv-julia)
        ("pcre2" ,pcre2)
@@ -418,31 +393,12 @@
        ("which" ,which)
        ("zlib" ,zlib)
        ("gmp" ,gmp)
-       ("virtualenv" ,python2-virtualenv)
+       ("suitesparse" ,suitesparse)
        ;; FIXME: The following inputs are downloaded from upstream to allow us
        ;; to use the lightweight Julia release tarball.  Ideally, these inputs
        ;; would eventually be replaced with proper Guix packages.
-
-       ;; TODO: run "make -f contrib/repackage_system_suitesparse4.make" to copy static lib
-       ;; Find dependency versions here:
-       ;; https://raw.githubusercontent.com/JuliaLang/julia/77a2c1e245c85812dc1c7687540beedecc52758f/deps/Versions.make
-       ("rmath"
-	,(origin
-	   (method git-fetch)
-	   (uri (git-reference
-                 (url "https://github.com/JuliaLang/Rmath-julia")
-                 (commit "v0.1")))
-           (file-name "rmath-julia-0.1-checkout")
-	   (sha256
-	    (base32
-	     "1zkpy0cg5zivq40zbhbdgj9128fqzs2j94wkwih8nc6xaj3gp9p6"))))
-       ("suitesparse"
-        ,(origin
-           (method url-fetch)
-           (uri "http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.4.5.tar.gz")
-           (sha256
-            (base32
-             "1jcbxb8jx5wlcixzf6n5dca2rcfx6mlcms1k2rl5gp67ay3bix43"))))
+       ;; Find dependencies versions here:
+       ;; https://raw.githubusercontent.com/JuliaLang/julia/v1.3.0/deps/Versions.make
        ("objconv"
         ,(origin
            (method url-fetch)
@@ -467,15 +423,7 @@
 	     (sha256
 	      (base32
 	       "1p7zg31kpmpbmh1znrk1xrbd074agx13b9q4dcw8n2zrwwdlbz3b")))))
-       ("dsfmt"
-        ,(origin
-           (method url-fetch)
-           (uri (string-append
-                 "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/"
-                 "SFMT/dSFMT-src-2.2.3.tar.gz"))
-           (sha256
-            (base32
-             "03kaqbjbi6viz0n33dk5jlf6ayxqlsq4804n7kwkndiga9s4hd42"))))))
+       ("dsfmt" ,dsfmt)))
     (native-inputs
      `(("openssl" ,openssl)
        ("perl" ,perl)
-- 
2.24.1




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sat, 18 Jan 2020 13:42:02 GMT) Full text and rfc822 format available.

Message #65 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: nixo <anothersms <at> gmail.com>
To: 38546 <at> debbugs.gnu.org
Subject: [PATCH 01/11] gnu: julia: Update to 1.3.1.
Date: Thu, 12 Dec 2019 09:43:20 +0100
* gnu/packages/julia.scm (julia): Update to 1.3.1.
* gnu/packages/julia.scm (libuv-julia): Update to 2.0.0.
---
 gnu/packages/julia.scm | 278 +++++++++++++++++------------------------
 1 file changed, 113 insertions(+), 165 deletions(-)

diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm
index 65a5e42beb..e4db39afbd 100644
--- a/gnu/packages/julia.scm
+++ b/gnu/packages/julia.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado <at> elephly.net>
 ;;; Copyright © 2016 Efraim Flashner <efraim <at> flashner.co.il>
+;;; Copyright © 2020 Nicolò Balzarotti <nicolo <at> nixo.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,6 +29,7 @@
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages curl)
   #:use-module (gnu packages elf)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages llvm)
@@ -43,18 +45,30 @@
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
+  #:use-module (gnu packages ssh)
   #:use-module (gnu packages wget)
   #:use-module (ice-9 match))
 
+(define (julia-patch-url version name)
+  (string-append "https://raw.githubusercontent.com/JuliaLang/julia/v" version
+		 "/deps/patches/" name ".patch"))
+
+(define (julia-patch name sha)
+  (let ((version "1.3.1"))
+    (origin (method url-fetch)
+	    (uri (julia-patch-url version name))
+	    (sha256 (base32 sha))
+	    (file-name name))))
+
 (define libuv-julia
-  (let ((commit "26dbe5672c33fc885462c509fe2a9b36f35866fd")
-        (revision "6"))
+  (let ((commit "35b1504507a7a4168caae3d78db54d1121b121e1"))
     ;; When upgrading Julia, also upgrade this.
-    ;; Get the commit from https://github.com/JuliaLang/julia/blob/v1.1.1/deps/libuv.version
+    ;; Get the commit from
+    ;; https://github.com/JuliaLang/julia/blob/v1.3.1/deps/libuv.version
     (package
       (inherit libuv)
       (name "libuv-julia")
-      (version (string-append "1.9.0-" revision "." (string-take commit 8)))
+      (version (string-append "2.0.0" "." (string-take commit 8)))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -63,7 +77,7 @@
                 (file-name (string-append name "-" version "-checkout"))
                 (sha256
                  (base32
-                  "17pn2xmqaramilx897s9grs966i5246gi6sric5alch4g9j4685n"))))
+                  "0dn3v6fdp1z382pqg3nhjzk60l61ky9b65mfgaj29fv2da95rwjs"))))
       (build-system gnu-build-system)
       (arguments
        (substitute-keyword-arguments (package-arguments libuv)
@@ -72,16 +86,27 @@
              (delete 'autogen)))))
       (home-page "https://github.com/JuliaLang/libuv"))))
 
-(define (llvm-patch-url version name)
-  (string-append "https://raw.githubusercontent.com/JuliaLang/julia/v" version
-		 "/deps/patches/" name))
-
-(define (llvm-patch name sha)
-  (let ((version "1.1.1"))
-    (origin (method url-fetch)
-	    (uri (llvm-patch-url version name))
-	    (sha256 (base32 sha))
-	    (file-name name))))
+(define libunwind-julia
+  ;; julia requires a patched version
+  (package
+    (inherit libunwind)
+    (name "libunwind-julia")
+    (version "1.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://savannah/libunwind/libunwind-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1y0l08k6ak1mqbfj6accf9s5686kljwgsl4vcqpxzk5n74wpm6a3"))
+              (patches
+               (list
+	        (julia-patch "libunwind-prefer-extbl"
+                             "0lr4dafw8qyfh8sw8hhbwkql1dlhqv8px7k81y2l20hhxfgnh2m1")
+                (julia-patch "libunwind-static-arm"
+                             "1jk3bmiw61ypcchqkk1fyg5wh8wpggk574wxyfyaic870zh3lhgq")))))
+    (build-system gnu-build-system)
+    (home-page "https://github.com/JuliaLang/libuv")))
 
 (define llvm-julia
   (package
@@ -99,39 +124,39 @@
               ;; Discussion: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919628
               (patches
                (list
-	        (llvm-patch "llvm-6.0-D44650.patch"
+	        (julia-patch "llvm-6.0-D44650"
 			    "1336q4vqayr94wdcnlmcxh90mjdh34dzw9x2cbiqjnx9b1j8fxyb")
-	        (llvm-patch "llvm-6.0-DISABLE_ABI_CHECKS.patch"
+	        (julia-patch "llvm-6.0-DISABLE_ABI_CHECKS"
 			    "014fawd1ba7yckalypfld22zgic87x9nx3cim42zrwygywd36pyg")
-	        (llvm-patch "llvm-6.0-NVPTX-addrspaces.patch"
+	        (julia-patch "llvm-6.0-NVPTX-addrspaces"
 			    "1qdi2zmrjsrj0h84zv2vyly2hjcn4f67mfy0s1q353g4v4jkscqc")
-	        (llvm-patch "llvm-6.0.0_D27296-libssp.patch"
+	        (julia-patch "llvm-6.0.0_D27296-libssp"
 			    "0s5hi2r1j63i8m6ig1346crx2aiv9f7rgb3mg80kw1wx5y7pdpfh")
-	        (llvm-patch "llvm-D27629-AArch64-large_model_6.0.1.patch"
+	        (julia-patch "llvm-D27629-AArch64-large_model_6.0.1"
 			    "1qrshmlqvnasdyc158vfn3hnbigqph3lsq7acb9w8lwkpnnm2j4z")
-	        (llvm-patch "llvm-D34078-vectorize-fdiv.patch"
+	        (julia-patch "llvm-D34078-vectorize-fdiv"
 			    "1696hg84a0jxcnggvqsc2cdp271hf9a44p4qsd078qm1mfawkaay")
-	        (llvm-patch "llvm-D42262-jumpthreading-not-i1.patch"
+	        (julia-patch "llvm-D42262-jumpthreading-not-i1"
 			    "1c8w210gwidbnkkw8anp17dk5pnxws2fl3mb2qxh7y9wzfpixgaq")
-	        (llvm-patch "llvm-D44892-Perf-integration.patch"
+	        (julia-patch "llvm-D44892-Perf-integration"
 			    "0r37jd0ssh2k1pndkfd5blgpg9z90im4vlzprhb0n0wwz45g4b05")
-	        (llvm-patch "llvm-D46460.patch"
+	        (julia-patch "llvm-D46460"
 			    "1miqgswdc0qvbaf4571c2xkxyp9ais06b1bcpa83sq22vr4hbsfb")
-	        (llvm-patch "llvm-D49832-SCEVPred.patch"
+	        (julia-patch "llvm-D49832-SCEVPred"
 			    "0v5c88hgqj6dymv3j86ca5mhpqab5fbnrvjiw1nvnrnya9l4dlbn")
-	        (llvm-patch "llvm-D50010-VNCoercion-ni.patch"
+	        (julia-patch "llvm-D50010-VNCoercion-ni"
 			    "0iblb3q1xixwrb12jpb89h3ywmqmzdp6aqp416j4ncwakyjhhfkp")
-	        (llvm-patch "llvm-D50167-scev-umin.patch"
+	        (julia-patch "llvm-D50167-scev-umin"
 			    "1f2rakcnnyhr7w10k7gqg0k0491pyvx5ijplivw557f714ys3q6v")
-	        (llvm-patch "llvm-OProfile-line-num.patch"
+	        (julia-patch "llvm-OProfile-line-num"
 			    "1jvbbmwyags0xfwamb13qrf3rgcz9i1r03m9lava7swag8xb78c7")
-	        (llvm-patch "llvm-PPC-addrspaces.patch"
+	        (julia-patch "llvm-PPC-addrspaces"
 			    "1f23nhsxh2s3jskbgs7da9nwg3s1hrkbk5aahl08x41wi3mny01p")
-	        (llvm-patch "llvm-rL323946-LSRTy.patch"
+	        (julia-patch "llvm-rL323946-LSRTy"
 			    "10cz3vy1yw0w643z7xx021wa4kymx9fcm3bjg61s6vzdqd6d9fns")
-	        (llvm-patch "llvm-rL326967-aligned-load.patch"
+	        (julia-patch "llvm-rL326967-aligned-load"
 			    "04jxnv32yj5x17hqhi8g2p8rhgp38gmjzr871w7z8s44pq10v9v4")
-	        (llvm-patch "llvm-rL327898.patch"
+	        (julia-patch "llvm-rL327898"
 			    "15ah49gbsll23z28kpyahi5vl0fh3fkxcgd1zmxxdcl96s3x8bnq")))))
     (arguments
      (substitute-keyword-arguments (package-arguments llvm-6)
@@ -158,7 +183,7 @@
 (define-public julia
   (package
     (name "julia")
-    (version "1.1.1")
+    (version "1.3.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -166,7 +191,7 @@
                     version "/julia-" version ".tar.gz"))
               (sha256
                (base32
-                "0hk983mywimclgnjc41zmlppm5kfdz2aj85ky07p49ilcqxi998f"))))
+                "1nwkmr9j55g1zkxdchnid1h022s0is52vx23niksshgvh793g41x"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -188,30 +213,24 @@
          (add-after 'unpack 'prepare-deps
            (lambda* (#:key inputs #:allow-other-keys)
              (mkdir "deps/srccache")
-             (copy-file (assoc-ref inputs "dsfmt")
-                        "deps/srccache/dsfmt-2.2.3.tar.gz")
+             ;; no USE_SYSTEM_{OBJCONV/LIBWHICH}
              (copy-file (assoc-ref inputs "objconv")
                         "deps/srccache/objconv.zip")
-             (copy-file (assoc-ref inputs "suitesparse")
-                        "deps/srccache/SuiteSparse-4.4.5.tar.gz")
-             (copy-file (string-append (assoc-ref inputs "virtualenv")
-                                       "/bin/virtualenv")
-                        "julia-env")
              (copy-file (assoc-ref inputs "libwhich")
                         (string-append "deps/srccache/libwhich-"
                                        "81e9723c0273d78493dc8c8ed570f68d9ce7e89e"
                                        ".tar.gz"))
-             (copy-file (assoc-ref inputs "rmath")
-                        "deps/srccache/Rmath-julia-0.1.tar.gz")
-
 	     ;; needed by libwhich
 	     (setenv "LD_LIBRARY_PATH"
 		     (string-join (map (lambda (pkg)
                                          (string-append (assoc-ref inputs pkg)
                                                         "/lib"))
-                                       '("arpack-ng" "fftw" "gmp" "lapack"
-			                 "libgit2" "mpfr" "openblas" "openlibm"
-			                 "openspecfun" "pcre2"))
+                                       '("arpack-ng" "curl" "dsfmt"
+                                         "gmp" "lapack"
+                                         "libssh2" "libgit2"
+                                         "mbedtls" "mpfr"
+                                         "openblas" "openlibm" "pcre2"
+                                         "suitesparse"))
                                   ":"))
 	     #t))
          ;; FIXME: Building the documentation requires Julia packages that
@@ -233,44 +252,12 @@
           ;; using the output of "/sbin/ldconfig -p".  Since ldconfig is not
           ;; used in Guix, we patch runtime_ccall.cpp to contain a static map.
           (lambda* (#:key inputs #:allow-other-keys)
-            (use-modules (ice-9 match))
-            (substitute* "src/runtime_ccall.cpp"
-              ;; Patch out invocations of '/sbin/ldconfig' to avoid getting
-              ;; error messages about missing '/sbin/ldconfig' on Guix System.
-              (("popen\\(.*ldconfig.*\\);")
-               "NULL;\n")
-
-              ;; Populate 'sonameMap'.
-              (("jl_read_sonames.*;")
-               (string-join
-                (map (match-lambda
-                       ((input libname soname)
-                        (string-append
-                         "sonameMap[\"" libname "\"] = "
-                         "\"" (assoc-ref inputs input) "/lib/" soname "\";")))
-                     '(("libc"        "libc"           "libc.so.6")
-                       ("pcre2"       "libpcre2-8"     "libpcre2-8.so")
-                       ("mpfr"        "libmpfr"        "libmpfr.so")
-                       ("openblas"    "libblas"        "libopenblas.so")
-                       ("arpack-ng"   "libarpack"      "libarpack.so")
-                       ("lapack"      "liblapack"      "liblapack.so")
-                       ("libgit2"     "libgit2"        "libgit2.so")
-                       ("gmp"         "libgmp"         "libgmp.so")
-                       ("openspecfun" "libopenspecfun" "libopenspecfun.so")
-                       ("fftw"        "libfftw3"       "libfftw3_threads.so")
-                       ("fftwf"       "libfftw3f"      "libfftw3f_threads.so"))))))
             (substitute* "base/math.jl"
               (("const libm = Base.libm_name")
                (string-append "const libm = \""
                               (assoc-ref inputs "openlibm")
                               "/lib/libopenlibm.so"
-                              "\""))
-              (("const openspecfun = \"libopenspecfun\"")
-               (string-append "const openspecfun = \""
-                              (assoc-ref inputs "openspecfun")
-                              "/lib/libopenspecfun.so"
-                              "\"")))
-            #t))
+                              "\"")))))
          (add-before 'build 'fix-include-and-link-paths
           (lambda* (#:key inputs #:allow-other-keys)
             ;; LIBUTF8PROC is a linker flag, not a build target.  It is
@@ -278,10 +265,10 @@
             ;; collection of build targets and a list of libraries to link
             ;; against.
             (substitute* "src/flisp/Makefile"
-              (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\): \\$\\(OBJS\\) \\$\\(LIBFILES_release\\)")
-               "$(BUILDDIR)/$(EXENAME): $(OBJS) $(LLT_release)")
-              (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\)-debug: \\$\\(DOBJS\\) \\$\\(LIBFILES_debug\\)")
-               "$(BUILDDIR)/$(EXENAME)-debug: $(DOBJS) $(LLT_debug)"))
+               (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\)\\$\\(EXE\\): \\$\\(OBJS\\) \\$\\(LIBFILES_release\\)")
+                "$(BUILDDIR)/$(EXENAME)$(EXE): $(OBJS) $(LLT_release)")
+               (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\)-debug$(EXE): \\$\\(DOBJS\\) \\$\\(LIBFILES_debug\\)")
+                "$(BUILDDIR)/$(EXENAME)-debug\\$\\(EXE\\): $(DOBJS) $(LLT_debug)"))
 
             ;; The REPL must be linked with libuv.
             (substitute* "ui/Makefile"
@@ -296,38 +283,28 @@
                               "/include/uv/errno.h")))
             #t))
          (add-before 'build 'replace-default-shell
-          (lambda _
-            (substitute* "base/client.jl"
-              (("/bin/sh") (which "sh")))
-            #t))
-         (add-after 'unpack 'hardcode-paths
            (lambda _
-             (substitute* "stdlib/InteractiveUtils/src/InteractiveUtils.jl"
-               (("`which") (string-append "`" (which "which")))
-               (("`wget")  (string-append "`" (which "wget"))))
+             (substitute* "base/client.jl"
+               (("/bin/sh") (which "sh")))
              #t))
-         (add-before 'check 'disable-broken-tests
+         (add-before 'check 'fix-broken-tests
            (lambda _
-             (define (touch file-name)
-               (call-with-output-file file-name (const #t)))
-	     ;; FIXME: All git tests works except this one. But *THIS* "fix"
-             ;; is not working, so right now I'm disabling all libgit2.jl tests
-	     ;; (substitute* "stdlib/LibGit2/test/libgit2.jl"
-	     ;; (("!LibGit2.use_http_path(cfg, github_cred)") "true")
-	     ;; (("LibGit2.use_http_path(cfg, mygit_cred)") "true"))
-             (map (lambda (test)
-                    (delete-file test)
-                    (touch test))
-	          '("stdlib/Sockets/test/runtests.jl"
-		    "stdlib/Distributed/test/runtests.jl"
-                    ;; FIXME: see above
-		    "stdlib/LibGit2/test/libgit2.jl"))
-	     (substitute* "test/choosetests.jl"
-	       ;; These tests fail, probably because some of the input
-	       ;; binaries have been stripped and thus backtraces don't look
-	       ;; as expected.
-	       (("\"backtrace\",") "")
-	       (("\"cmdlineargs\",") ""))
+             (substitute* "test/choosetests.jl"
+               (("tests = testnames")
+                ;; Those failings are not deterministic.  They depends on the
+                ;; running order.  I think it depends on the number of
+                ;; runners, disabling it for now
+                ;; https://github.com/JuliaLang/julia/issues/34330
+                "tests = filter(e->!in(e,[\"backtrace\",\"exceptions\",\"client\",\"stacktraces\"]),testnames)"))
+             ;; When HOME is not set, julia calls uv_os_homedir, which in
+             ;; turns call getpwuid_r. Add the HOME env variable to the
+             ;; external julia call to fix this
+             (substitute* "test/cmdlineargs.jl"
+               (("\"JULIA_PROJECT\"") "\"HOME\"=>\"/tmp\", \"JULIA_PROJECT\""))
+             ;; Marking the test as broken as it's a known bug:
+             ;; https://github.com/JuliaLang/julia/issues/32377
+             (substitute* "stdlib/REPL/test/replcompletions.jl"
+               (("@test count") "@test_broken count"))
 	     #t)))
        #:make-flags
        (list
@@ -345,26 +322,21 @@
            ;; platforms, e.g. when running "guix package --search="
            (_ "MARCH=UNSUPPORTED"))
 
-        "CONFIG_SHELL=bash"     ;needed to build bundled libraries
-        "USE_SYSTEM_DSFMT=0"    ;not packaged for Guix and upstream has no
-                                ;build system for a shared library.
+        "CONFIG_SHELL=bash"             ;needed to build bundled libraries
+        ;; list of "USE_SYSTEM_*" is here:
+        ;; https://github.com/JuliaLang/julia/blob/v1.3.1/Make.inc
+        "USE_SYSTEM_DSFMT=1"
+        "USE_SYSTEM_P7ZIP=1"
         "USE_SYSTEM_LAPACK=1"
         "USE_SYSTEM_BLAS=1"
         "USE_BLAS64=0"          ;needed when USE_SYSTEM_BLAS=1
         "LIBBLAS=-lopenblas"
         "LIBBLASNAME=libopenblas"
 
-        "USE_SYSTEM_FFTW=1"
-        "LIBFFTWNAME=libfftw3"
-        "LIBFFTWFNAME=libfftw3f"
-
-        ;; TODO: Suitesparse does not install shared libraries, so we cannot
-        ;; use the suitesparse package.
-        ;; "USE_SYSTEM_SUITESPARSE=1"
-        ;; (string-append "SUITESPARSE_INC=-I "
-        ;;                (assoc-ref %build-inputs "suitesparse")
-        ;;                "/include")
-
+        "USE_SYSTEM_SUITESPARSE=1"
+        (string-append "SUITESPARSE_INC=-I "
+                       (assoc-ref %build-inputs "suitesparse")
+                       "/include")
         "USE_GPL_LIBS=1"        ;proudly
         "USE_SYSTEM_UTF8PROC=1"
         (string-append "UTF8PROC_INC="
@@ -385,16 +357,19 @@
 	"USE_SYSTEM_PATCHELF=1"
 	"USE_SYSTEM_PCRE=1"
 	"USE_SYSTEM_OPENLIBM=1"
-
+        "USE_SYSTEM_LIBM=0"
+        "USE_SYSTEM_LIBSSH2=1"
+        "USE_SYSTEM_CURL=1"
 	"USE_SYSTEM_GMP=1"
 	"USE_SYSTEM_MPFR=1"
+	"USE_SYSTEM_MBEDTLS=1"
 	"USE_SYSTEM_ARPACK=1"
 	"USE_SYSTEM_LIBGIT2=1"
-	"USE_SYSTEM_ZLIB=1"
-	"USE_SYSTEM_OPENSPECFUN=1")))
+	"USE_SYSTEM_ZLIB=1")))
     (inputs
      `(("llvm" ,llvm-julia)
 
+       ("p7zip" ,p7zip)
        ;; The bundled version is 3.3.0 so stick to that version.  With other
        ;; versions, we get test failures in 'linalg/arnoldi' as described in
        ;; <https://bugs.gnu.org/30282>.
@@ -403,12 +378,12 @@
        ("coreutils" ,coreutils) ;for bindings to "mkdir" and the like
        ("lapack" ,lapack)
        ("openblas" ,openblas) ;Julia does not build with Atlas
-       ("libunwind" ,libunwind)
+       ("libunwind" ,libunwind-julia)
        ("openlibm" ,openlibm)
-       ("openspecfun" ,openspecfun)
+       ("mbedtls" ,mbedtls-apache)
+       ("curl" ,curl)
        ("libgit2" ,libgit2)
-       ("fftw" ,fftw)
-       ("fftwf" ,fftwf)
+       ("libssh2" ,libssh2)
        ("fortran" ,gfortran)
        ("libuv" ,libuv-julia)
        ("pcre2" ,pcre2)
@@ -418,31 +393,12 @@
        ("which" ,which)
        ("zlib" ,zlib)
        ("gmp" ,gmp)
-       ("virtualenv" ,python2-virtualenv)
+       ("suitesparse" ,suitesparse)
        ;; FIXME: The following inputs are downloaded from upstream to allow us
        ;; to use the lightweight Julia release tarball.  Ideally, these inputs
        ;; would eventually be replaced with proper Guix packages.
-
-       ;; TODO: run "make -f contrib/repackage_system_suitesparse4.make" to copy static lib
-       ;; Find dependency versions here:
-       ;; https://raw.githubusercontent.com/JuliaLang/julia/77a2c1e245c85812dc1c7687540beedecc52758f/deps/Versions.make
-       ("rmath"
-	,(origin
-	   (method git-fetch)
-	   (uri (git-reference
-                 (url "https://github.com/JuliaLang/Rmath-julia")
-                 (commit "v0.1")))
-           (file-name "rmath-julia-0.1-checkout")
-	   (sha256
-	    (base32
-	     "1zkpy0cg5zivq40zbhbdgj9128fqzs2j94wkwih8nc6xaj3gp9p6"))))
-       ("suitesparse"
-        ,(origin
-           (method url-fetch)
-           (uri "http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.4.5.tar.gz")
-           (sha256
-            (base32
-             "1jcbxb8jx5wlcixzf6n5dca2rcfx6mlcms1k2rl5gp67ay3bix43"))))
+       ;; Find dependencies versions here:
+       ;; https://raw.githubusercontent.com/JuliaLang/julia/v1.3.0/deps/Versions.make
        ("objconv"
         ,(origin
            (method url-fetch)
@@ -467,15 +423,7 @@
 	     (sha256
 	      (base32
 	       "1p7zg31kpmpbmh1znrk1xrbd074agx13b9q4dcw8n2zrwwdlbz3b")))))
-       ("dsfmt"
-        ,(origin
-           (method url-fetch)
-           (uri (string-append
-                 "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/"
-                 "SFMT/dSFMT-src-2.2.3.tar.gz"))
-           (sha256
-            (base32
-             "03kaqbjbi6viz0n33dk5jlf6ayxqlsq4804n7kwkndiga9s4hd42"))))))
+       ("dsfmt" ,dsfmt)))
     (native-inputs
      `(("openssl" ,openssl)
        ("perl" ,perl)
-- 
2.24.1




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sat, 18 Jan 2020 13:43:02 GMT) Full text and rfc822 format available.

Message #68 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: anothersms <at> gmail.com (Nicolò Balzarotti)
To: 38546 <at> debbugs.gnu.org
Subject: [Nicolò Balzarotti] [PATCH 00/10] Update julia
 to 1.3.1, fix precompilation, add HTTP.jl
Date: Sat, 18 Jan 2020 14:42:10 +0100
Ok I had time to look at this again.

1. Package installation can be done both the julia way and the guix way
2. SOURCE_DATE_EPOCH is respected in package precompile timestamp. Other fixes are needed to get reproducible builds, but for now that means that package cache is used.
3. This patch adds some first julia package (HTTP.jl and dependencies) 
4. Updated julia to 1.3.1 (latest release). It's working great and the
build recipe is simplified a lot.  However, some test is failing.  The
"interesting" part is that when running tests alone, they are working.
It seems like the problem arise when tests are run on the _same core_
and not on different cores.  I opened a issue upstream for this
(https://github.com/JuliaLang/julia/issues/34330), I'll have to look
further on it, but for now if it's fine for me this is ready to be merged.

I'm sending the patch series here.

Thanks, Nicolò

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

> Hi,
>
> (+Cc: bug report.)
>
> Nicolò Balzarotti <anothersms <at> gmail.com> skribis:
>
>> Ludovic Courtès <ludo <at> gnu.org> writes:
>>
>>> Hi!
>>>
>>> nixo <anothersms <at> gmail.com> skribis:
>>>
>>>> This set of patches improve the state of julia-build-system.
>>>>
>>>> 1. set path JULIA_LOAD_PATH to enable installing packages, and
>>>>   JULIA_DEPOT_PATH to allow guix-precompiled cache to be recognized by julia. To
>>>
>>> These two environment variables are supported upstream, right?
>>
>> Yes, those variables are documented here:
>> https://docs.julialang.org/en/v1/manual/environment-variables/index.html
>
> Great.
>
>> Should user be allowed to manually install packages in his own private
>> home folder manually? (I just tried with R: R recognize the store is RO
>> and ask for an alternative path). I'll try to allow "standard" package
>> installation and submit the patch again (also, I just read you other
>> comments, so I'll fix everything!)
>
> I think users should have the option to install packages in the normal
> Julia way, without Guix.
>
>>>>   do this, a small "hack" with libfaketime was required (julia decides if the
>>>>   cache is valid by comparing source ".jl" mtime with cache ".ji" file, in which
>>>>   julia stores a timestamp. We need to force this timestamp to be equal to the
>>>>   mtime of guix-store files).
>>>
>>> OK.  This hack shouldn’t break “normal” Julia uses (outside of the
>>> store), right?
>> You are right, the issue is that julia finds its src (.jl) file to have
>> a different (although older) timestamp (because guix fixes the
>> mtime). This applies only to cache files placed in the store. Other
>> cache files (non-guix installed files) have the right timestamp, so are
>> not affected (I don't know if this explanation is clear. The TLDR is:
>> with this hack store works without double-precompilation, non-store
>> works normally, too).
>> However, I'll check if I can make it work with SOURCE_DATE_EPOCH. I
>> already read the code responsible for precompilation, so hopefully it
>> won't take too much time
>
> Awesome, thanks!
>
> Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sat, 18 Jan 2020 14:00:02 GMT) Full text and rfc822 format available.

Message #71 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: anothersms <at> gmail.com (Nicolò Balzarotti)
To: 38546 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: [00/11] Update Julia, Fix precompilation, add HTTP.jl
Date: Sat, 18 Jan 2020 14:59:14 +0100
[Message part 1 (text/plain, inline)]
I'm sending the patches again as attachments since I think some of them
was badly formatted.

[0001-gnu-julia-Update-to-1.3.1.patch (text/x-patch, attachment)]
[0002-gnu-julia-use-SOURCE_DATE_EPOCH-for-precompilation-t.patch (text/x-patch, attachment)]
[0003-gnu-julia-Adjust-indentation.patch (text/x-patch, attachment)]
[0004-use-wrapper-to-set-JULIA_LOAD_PATH-and-JULIA_DEPOT_P.patch (text/x-patch, attachment)]
[0005-gnu-build-julia-build-system-fix-package-precompilat.patch (text/x-patch, attachment)]
[0006-gnu-Add-julia-compat.patch (text/x-patch, attachment)]
[0007-gnu-Add-julia-inifile.patch (text/x-patch, attachment)]
[0008-gnu-Add-julia-sha.patch (text/x-patch, attachment)]
[0009-gnu-Add-julia-binaryprovider.patch (text/x-patch, attachment)]
[0010-gnu-Add-julia-mbedtls.patch (text/x-patch, attachment)]
[0011-gnu-Add-julia-http.patch (text/x-patch, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Sat, 18 Jan 2020 14:36:02 GMT) Full text and rfc822 format available.

Message #74 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: anothersms <at> gmail.com (Nicolò Balzarotti)
To: 38546 <at> debbugs.gnu.org
Subject: Julia patches v3
Date: Sat, 18 Jan 2020 15:35:06 +0100
[Message part 1 (text/plain, inline)]
Sorry again, I fixed some unrelated changes that slipped in

Thanks, Nicolò

[0001-gnu-julia-Update-to-1.3.1.patch (text/x-patch, attachment)]
[0002-gnu-julia-use-SOURCE_DATE_EPOCH-for-precompilation-t.patch (text/x-patch, attachment)]
[0003-gnu-julia-Adjust-indentation.patch (text/x-patch, attachment)]
[0004-gnu-julia-use-wrapper-to-set-JULIA_LOAD_PATH-and-JUL.patch (text/x-patch, attachment)]
[0005-gnu-build-julia-build-system-fix-package-precompilat.patch (text/x-patch, attachment)]
[0006-gnu-Add-julia-compat.patch (text/x-patch, attachment)]
[0007-gnu-Add-julia-inifile.patch (text/x-patch, attachment)]
[0008-gnu-Add-julia-sha.patch (text/x-patch, attachment)]
[0009-gnu-Add-julia-binaryprovider.patch (text/x-patch, attachment)]
[0010-gnu-Add-julia-mbedtls.patch (text/x-patch, attachment)]
[0011-gnu-Add-julia-http.patch (text/x-patch, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Mon, 20 Jan 2020 18:51:02 GMT) Full text and rfc822 format available.

Message #77 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 38546 <at> debbugs.gnu.org
Subject: Re: [bug#38546] [00/11] Update Julia, Fix precompilation, add HTTP.jl
Date: Mon, 20 Jan 2020 19:49:45 +0100
Hi Nicolò,

Thank you for working on this.
Julia rocks! ;-)


However, I am lost with your patch set.

I have tried only the first patch you attached. I hit this error:

--8<---------------cut here---------------start------------->8---
error: dsfmt: unbound variable
--8<---------------cut here---------------end--------------->8---

So something is missing. :-)

Then I notice that you change the list of 'patches' and you "forgot"
to send them too. :-)


Almost related, does this update fix the reproducibility bug [1]? For example,

--8<---------------cut here---------------start------------->8---
./pre-inst-env guix build julia
./pre-inst-env guix build julia --check --no-grafts -K
--8<---------------cut here---------------end--------------->8---


[1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22304


All the best,
simon




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Tue, 21 Jan 2020 13:46:02 GMT) Full text and rfc822 format available.

Message #80 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Nicolò Balzarotti <anothersms <at> gmail.com>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 38546 <at> debbugs.gnu.org
Subject: Re: [bug#38546] [00/11] Update Julia, Fix precompilation, add HTTP.jl
Date: Tue, 21 Jan 2020 14:45:20 +0100
[Message part 1 (text/plain, inline)]
Hi Simon,

Sorry, I forgot to send the dsfmt patch.  Also, julia's
SOURCE_DATE_EPOCH patch was named differently. I've fixed this in theattached patches.  You need to apply Add-dsfmt.patch, Update-to-1.3.1
and then julia-use-SOURCE_DATE_EPOCH.

About reproducibility: if I'm not wrong, sys.so contains Base library
precompiled ([1]).  Precompilation is still non deterministic (here's
[2] an issue on github). Something I did to check precompilation:

Since I'm tired of this, I've started investigating better.

Loaded a guix container
#+begin_src bash
mkdir -p /tmp/jlprecompiled/
./pre-inst-env guix environment -u nixbld --no-cwd --container --network --expose=$(realpath determinism) --share=/tmp/jlprecompiled/ --ad-hoc julia coreutils nss-certs curl tar gzip libfaketime
#+end_src

from this container, run some time this:

#+begin_src bash
export SSL_CERT_DIR="$GUIX_ENVIRONMENT/etc/ssl/certs"
export SSL_CERT_FILE="$SSL_CERT_DIR/ca-certificates.crt"
export GIT_SSL_CAINFO="$SSL_CERT_FILE"

SOURCE_DATE_EPOCH=1 julia --startup-file=no -q -e 'using Pkg; Pkg.instantiate()'
SOURCE_DATE_EPOCH=1 faketime '2008-12-24 08:15:42' julia --startup-file=no -q -e 'using Random; using Pkg; Pkg.add("Compat"); Random.seed!(0); using Compat'

cp -r ~/.julia/compiled/v1.3/Compat/ /tmp/jlprecompiled/$RANDOM
sha256sum ~/.julia/compiled/v1.3/Compat/*
# 6c10d65f6cd9cdd5b98e4d5e2b82b7bd00508f0daccef0967dec92cb6468052e  /home/nixbld/.julia/compiled/v1.3/Compat/GSFWK_Pua4I.ji
ls -lah ~/.julia/compiled/v1.3/Compat/*
# -rw------- 1 nixbld users 102K Jan 21 07:39 /home/nixbld/.julia/compiled/v1.3/Compat/GSFWK_Pua4I.ji
#+end_src

I could not get the same results twice (also, size differs).  I'll work
on this on some spare time (for example, there are other places where
SOURCE_DATE_EPOCH can be used, but this [3] is a problem I need to
solve first).

Maybe 1.3.1 (when reviewed) can be merged, since we have
the same problem with julia 1.1, but we can wait for the
source-date-epoch and julia-xyz patches until we solve this.

What do you think?

Thanks, Nicolò

[1] https://docs.julialang.org/en/v1/devdocs/sysimg/
[2] https://github.com/JuliaLang/julia/issues/25900
[3] https://github.com/JuliaLang/julia/issues/34115

[0001-gnu-Add-dsfmt.patch (text/x-patch, attachment)]
[0001-gnu-julia-Update-to-1.3.1.patch (text/x-patch, attachment)]
[0001-gnu-julia-use-SOURCE_DATE_EPOCH-for-precompilation-t.patch (text/x-patch, attachment)]
[Message part 5 (text/plain, inline)]

zimoun <zimon.toutoune <at> gmail.com> writes:

> Hi Nicolò,
>
> Thank you for working on this.
> Julia rocks! ;-)
>
>
> However, I am lost with your patch set.
>
> I have tried only the first patch you attached. I hit this error:
>
> --8<---------------cut here---------------start------------->8---
> error: dsfmt: unbound variable
> --8<---------------cut here---------------end--------------->8---
>
> So something is missing. :-)
>
> Then I notice that you change the list of 'patches' and you "forgot"
> to send them too. :-)
>
>
> Almost related, does this update fix the reproducibility bug [1]? For example,
>
> --8<---------------cut here---------------start------------->8---
> ./pre-inst-env guix build julia
> ./pre-inst-env guix build julia --check --no-grafts -K
> --8<---------------cut here---------------end--------------->8---
>
>
> [1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22304
>
>
> All the best,
> simon

Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Wed, 22 Jan 2020 09:23:02 GMT) Full text and rfc822 format available.

Message #83 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 38546 <at> debbugs.gnu.org
Subject: Re: [bug#38546] [00/11] Update Julia, Fix precompilation, add HTTP.jl
Date: Wed, 22 Jan 2020 10:22:14 +0100
Hi Nicolò,

Cool that you figured out a source of non-reproducibility.


On Tue, 21 Jan 2020 at 14:45, Nicolò Balzarotti <anothersms <at> gmail.com> wrote:

> Sorry, I forgot to send the dsfmt patch.  Also, julia's
> SOURCE_DATE_EPOCH patch was named differently. I've fixed this in theattached patches.  You need to apply Add-dsfmt.patch, Update-to-1.3.1
> and then julia-use-SOURCE_DATE_EPOCH.

This patch 'julia-SOURCE_DATE_EPOCH-mtime.patch' is the one you
mentioned here [#], right?

Could you send it as an upstream PR?

[#] https://github.com/JuliaLang/julia/issues/34115#issuecomment-568171025


> About reproducibility: if I'm not wrong, sys.so contains Base library
> precompiled ([1]).  Precompilation is still non deterministic (here's
> [2] an issue on github). Something I did to check precompilation:

I am not sure to well understand the source of non-determinism.

Does the patch about SOURCE_DATE_EPOCH fix the issue of [1] and [2]?
Or is it something else?


> I could not get the same results twice (also, size differs).  I'll work
> on this on some spare time (for example, there are other places where
> SOURCE_DATE_EPOCH can be used, but this [3] is a problem I need to
> solve first).

Is the problem [3] not solved by 'julia-SOURCE_DATE_EPOCH-mtime.patch'?



> Maybe 1.3.1 (when reviewed) can be merged, since we have
> the same problem with julia 1.1, but we can wait for the
> source-date-epoch and julia-xyz patches until we solve this.

My opinion is: if a patch is floating around to fix the
source-date-epoch issue, let try to push it upstream. If it is
rejected, let talk later if Guix will include it or not. And in the
meantime, I will try to review the 1.3.1 because yes I agree that it
should be included even if we know it is not reproducible -- the
package Guitarix [@] is updated and not reproducible neither.

[@] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=21803


Thank you for working on this.


All the best,
simon


> [1] https://docs.julialang.org/en/v1/devdocs/sysimg/
> [2] https://github.com/JuliaLang/julia/issues/25900
> [3] https://github.com/JuliaLang/julia/issues/34115




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Wed, 22 Jan 2020 10:00:02 GMT) Full text and rfc822 format available.

Message #86 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Nicolò Balzarotti <anothersms <at> gmail.com>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 38546 <at> debbugs.gnu.org
Subject: Re: [bug#38546] [00/11] Update Julia, Fix precompilation, add HTTP.jl
Date: Wed, 22 Jan 2020 10:59:49 +0100
Hi Simon,

zimoun <zimon.toutoune <at> gmail.com> writes:

> Hi Nicolò,
>
> Cool that you figured out a source of non-reproducibility.
>
>
> On Tue, 21 Jan 2020 at 14:45, Nicolò Balzarotti <anothersms <at> gmail.com> wrote:
>
>> Sorry, I forgot to send the dsfmt patch.  Also, julia's
>> SOURCE_DATE_EPOCH patch was named differently. I've fixed this in theattached patches.  You need to apply Add-dsfmt.patch, Update-to-1.3.1
>> and then julia-use-SOURCE_DATE_EPOCH.
>
> This patch 'julia-SOURCE_DATE_EPOCH-mtime.patch' is the one you
> mentioned here [#], right?
>
> Could you send it as an upstream PR?
>
> [#] https://github.com/JuliaLang/julia/issues/34115#issuecomment-568171025
>
>
>> About reproducibility: if I'm not wrong, sys.so contains Base library
>> precompiled ([1]).  Precompilation is still non deterministic (here's
>> [2] an issue on github). Something I did to check precompilation:
>
> I am not sure to well understand the source of non-determinism.
>
> Does the patch about SOURCE_DATE_EPOCH fix the issue of [1] and [2]?
> Or is it something else?
>

The first patch (the one I mention in [#]) fixes _one source of_
non-determinism (the stored mtime inside the precompile cache).  But
others are present (precompiling the same file 2 times lead to
differences even in file size, something I reported on [2]).  What I'm
working on is trying to find out what other sources are and patch them,
too.  I patched some c code (src/support/timefuncs.c) so that it follows
SOURCE_DATE_EPOCH too.  This finally lead to same-size files.  I'm now
working on parsing binary (.ji) files directly with julia built in
function to have a textual representation of the differences.

I can't send SOURCE_DATE_EPOCH patches upstream until [3] is merged, as
patching timefuncts leads to an endless test suite (as they were using
time() to check for passed time. If time() always returns 1, tests
sleeps forever).  Yesterday evening I completed that patch (and has been
approved).  My plans are on finding the hopefully last source of
non-determinism, patch it and send everything upstream (hoping they
care).

>
>> I could not get the same results twice (also, size differs).  I'll work
>> on this on some spare time (for example, there are other places where
>> SOURCE_DATE_EPOCH can be used, but this [3] is a problem I need to
>> solve first).
>
> Is the problem [3] not solved by 'julia-SOURCE_DATE_EPOCH-mtime.patch'?
>
>
>
>> Maybe 1.3.1 (when reviewed) can be merged, since we have
>> the same problem with julia 1.1, but we can wait for the
>> source-date-epoch and julia-xyz patches until we solve this.
>
> My opinion is: if a patch is floating around to fix the
> source-date-epoch issue, let try to push it upstream. If it is
> rejected, let talk later if Guix will include it or not. And in the
> meantime, I will try to review the 1.3.1 because yes I agree that it
> should be included even if we know it is not reproducible -- the
> package Guitarix [@] is updated and not reproducible neither.
>

Thanks! I hope in a 1.4 release where everything is fixed ;)

Nicolò

> [@] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=21803
>
>
> Thank you for working on this.
>
>
> All the best,
> simon
>
>
>> [1] https://docs.julialang.org/en/v1/devdocs/sysimg/
>> [2] https://github.com/JuliaLang/julia/issues/25900
>> [3] https://github.com/JuliaLang/julia/issues/34115




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Fri, 24 Jan 2020 17:28:01 GMT) Full text and rfc822 format available.

Message #89 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 38546 <at> debbugs.gnu.org
Subject: Re: [bug#38546] [00/11] Update Julia, Fix precompilation, add HTTP.jl
Date: Fri, 24 Jan 2020 18:26:57 +0100
Hi Nicolò,

On Wed, 22 Jan 2020 at 10:59, Nicolò Balzarotti <anothersms <at> gmail.com> wrote:

> The first patch (the one I mention in [#]) fixes _one source of_
> non-determinism (the stored mtime inside the precompile cache).  But
> others are present (precompiling the same file 2 times lead to
> differences even in file size, something I reported on [2]).  What I'm
> working on is trying to find out what other sources are and patch them,
> too.  I patched some c code (src/support/timefuncs.c) so that it follows
> SOURCE_DATE_EPOCH too.  This finally lead to same-size files.  I'm now
> working on parsing binary (.ji) files directly with julia built in
> function to have a textual representation of the differences.

Thank you for the explanations. Cool!


> I can't send SOURCE_DATE_EPOCH patches upstream until [3] is merged, as
> patching timefuncts leads to an endless test suite (as they were using
> time() to check for passed time. If time() always returns 1, tests
> sleeps forever).  Yesterday evening I completed that patch (and has been
> approved).  My plans are on finding the hopefully last source of
> non-determinism, patch it and send everything upstream (hoping they
> care).

Awesome if upstream are responsive.


> Thanks! I hope in a 1.4 release where everything is fixed ;)

I have seen that 1.4-rc1 is just released. Hope that everything about
reproducibility will be fixed. ;-)


I have not yet tried your patches. Sorry bit busy at work.
And I will not have any slot next week, so I will be back on the topic
after the Guix Days. Except if someone beats me. :-)
(see you there :-)


Thank you for improving the Julia ecosystem in Guix because Julia is
becoming quite popular.

Cheers,
simon




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Tue, 04 Feb 2020 18:04:01 GMT) Full text and rfc822 format available.

Message #92 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 38546 <at> debbugs.gnu.org
Subject: Re: [bug#38546] [00/11] Update Julia, Fix precompilation, add HTTP.jl
Date: Tue, 4 Feb 2020 19:03:27 +0100
Hi Nicoló,

On Fri, 24 Jan 2020 at 18:26, zimoun <zimon.toutoune <at> gmail.com> wrote:

> I have not yet tried your patches. Sorry bit busy at work.
> And I will not have any slot next week, so I will be back on the topic
> after the Guix Days. Except if someone beats me. :-)
> (see you there :-)

I have tried them. Ouch! The tests eat so much...

Do you have a special motivation to rename 'llvm-patch' to 'julia-patch'?
(I agree, it is better :-))

Well, only 2 inputs are missing. Do you think it is affordable to pack
them and so remove the commentary?

--8<---------------cut here---------------start------------->8---
;; FIXME: The following inputs are downloaded from upstream to allow us
;; to use the lightweight Julia release tarball.  Ideally, these inputs
;; would eventually be replaced with proper Guix packages.
;; Find dependencies versions here:
;; https://raw.githubusercontent.com/JuliaLang/julia/v1.3.0/deps/Versions.make
--8<---------------cut here---------------end--------------->8---


Otherwise, there is some issues about indentation -- I think you use
Emacs, so check that '.dir-locals.el' is correctly setup -- double
space for sentences in description,
'patch/julia-SOURCE_DATE_EPOCH-mtime.patch' should be added with the
same commit that "Update", etc.
I have half-corrected so I can send you these 2 v2-patches if you want to. :-)

And I have not tried yet to build with '--check'.


All the best,
simon




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Fri, 07 Feb 2020 12:07:02 GMT) Full text and rfc822 format available.

Message #95 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 38546 <at> debbugs.gnu.org
Subject: Re: [bug#38546] [00/11] Update Julia, Fix precompilation, add HTTP.jl
Date: Fri, 7 Feb 2020 13:06:01 +0100
Hi Nicoló,


On Tue, 4 Feb 2020 at 19:03, zimoun <zimon.toutoune <at> gmail.com> wrote:

> I have tried them. Ouch! The tests eat so much...

The tests fail on my desktop machine with 8GB of RAM.

--8<---------------cut here---------------start------------->8---
running testset Distributed...
ERROR: LoadError: TaskFailedException:
Timed out waiting to read host:port string from worker.
Stacktrace:
 [1] worker_from_id(::Distributed.ProcessGroup, ::Int64) at
/tmp/guix-build-julia-1.3.1.drv-0/julia-1.3.1/usr/share/julia/stdlib/v1.3/Distributed/src/cluster.jl:1059
 [2] worker_from_id at
/tmp/guix-build-julia-1.3.1.drv-0/julia-1.3.1/usr/share/julia/stdlib/v1.3/Distributed/src/cluster.jl:1056
[inlined]
 [3] #remote_do#156 at
/tmp/guix-build-julia-1.3.1.drv-0/julia-1.3.1/usr/share/julia/stdlib/v1.3/Distributed/src/remotecall.jl:482
[inlined]
 [4] remote_do at
/tmp/guix-build-julia-1.3.1.drv-0/julia-1.3.1/usr/share/julia/stdlib/v1.3/Distributed/src/remotecall.jl:482
[inlined]
 [5] kill at /tmp/guix-build-julia-1.3.1.drv-0/julia-1.3.1/usr/share/julia/stdlib/v1.3/Distributed/src/managers.jl:534
[inlined]
 [6] create_worker(::Distributed.LocalManager, ::WorkerConfig) at
/tmp/guix-build-julia-1.3.1.drv-0/julia-1.3.1/usr/share/julia/stdlib/v1.3/Distributed/src/cluster.jl:581
 [7] setup_launched_worker(::Distributed.LocalManager, ::WorkerConfig,
::Array{Int64,1}) at
/tmp/guix-build-julia-1.3.1.drv-0/julia-1.3.1/usr/share/julia/stdlib/v1.3/Distributed/src/cluster.jl:523
 [8] (::Distributed.var"#43#46"{Distributed.LocalManager,Array{Int64,1},WorkerConfig})()
at ./task.jl:333

[...more failed...]
--8<---------------cut here---------------end--------------->8---


Do they pass on your machine?


> And I have not tried yet to build with '--check'.

Still not reproducible as expected [1]. :-)

[1] http://issues.guix.gnu.org/issue/22304


Cheers,
simon

ps:
I think you are busy by your thesis. Cross the fingers. ;-)




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Tue, 11 Feb 2020 14:52:01 GMT) Full text and rfc822 format available.

Message #98 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 38546 <at> debbugs.gnu.org
Subject: Re: [bug#38546] [00/11] Update Julia, Fix precompilation, add HTTP.jl
Date: Tue, 11 Feb 2020 15:51:05 +0100
Hi Nicoló,

I have seen your message on IRC.
Cool for the release 1.4.


Could we try to include first this 1.3 one?  Then push the 1.4 if it
is already ready.

Because then, this release will be usable "forever" (or almost ;-)
even if it is not perfect and issues are fixed with the 1.4.
I mean, once a package is inside Guix, then it becomes "easily" usable
with 'guix time-machine' and saved on Software Heritage.
Therefore, considering the big picture of Scientific Reproducibility,
it matters -- for the future to be able to travel back -- to also have
1.3. ;-)

I think we are almost done. From my point of view, we just need to
address (or comment) these 3 points:

1.
> Do you have a special motivation to rename 'llvm-patch' to 'julia-patch'?
> (I agree, it is better :-))


2.
> Well, only 2 inputs are missing. Do you think it is affordable to pack
> them and so remove the commentary?
>
> --8<---------------cut here---------------start------------->8---
> ;; FIXME: The following inputs are downloaded from upstream to allow us
> ;; to use the lightweight Julia release tarball.  Ideally, these inputs
> ;; would eventually be replaced with proper Guix packages.
> ;; Find dependencies versions here:
> ;; https://raw.githubusercontent.com/JuliaLang/julia/v1.3.0/deps/Versions.make
> --8<---------------cut here---------------end--------------->8---


3.
> Otherwise, there is some issues about indentation -- I think you use
> Emacs, so check that '.dir-locals.el' is correctly setup -- double
> space for sentences in description,
> 'patch/julia-SOURCE_DATE_EPOCH-mtime.patch' should be added with the
> same commit that "Update", etc.
> I have half-corrected so I can send you these 2 v2-patches if you want to. :-)



What do you think?


Cheers,
simon




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Tue, 11 Feb 2020 15:11:02 GMT) Full text and rfc822 format available.

Message #101 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Nicolò Balzarotti <anothersms <at> gmail.com>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 38546 <at> debbugs.gnu.org
Subject: Re: [bug#38546] [00/11] Update Julia, Fix precompilation, add HTTP.jl
Date: Tue, 11 Feb 2020 16:10:17 +0100
zimoun <zimon.toutoune <at> gmail.com> writes:

Hi,
> Hi Nicoló,
>
> I have seen your message on IRC.
> Cool for the release 1.4.
>
>
> Could we try to include first this 1.3 one?  Then push the 1.4 if it
> is already ready.
>
> Because then, this release will be usable "forever" (or almost ;-)
> even if it is not perfect and issues are fixed with the 1.4.
> I mean, once a package is inside Guix, then it becomes "easily" usable
> with 'guix time-machine' and saved on Software Heritage.
> Therefore, considering the big picture of Scientific Reproducibility,
> it matters -- for the future to be able to travel back -- to also have
> 1.3. ;-)
>

Ok, let's do both
> I think we are almost done. From my point of view, we just need to
> address (or comment) these 3 points:
>
> 1.
>> Do you have a special motivation to rename 'llvm-patch' to 'julia-patch'?
>> (I agree, it is better :-))
>
Yes, because now it's not only used by llvm-julia but also by the new
libunwind-julia.  So calling llvm-patch a function that takes a patch
from the julia repo and that is applied to a "julia module" is measleading.

>
> 2.
>> Well, only 2 inputs are missing. Do you think it is affordable to pack
>> them and so remove the commentary?
>>
>> --8<---------------cut here---------------start------------->8---
>> ;; FIXME: The following inputs are downloaded from upstream to allow us
>> ;; to use the lightweight Julia release tarball.  Ideally, these inputs
>> ;; would eventually be replaced with proper Guix packages.
>> ;; Find dependencies versions here:
>> ;; https://raw.githubusercontent.com/JuliaLang/julia/v1.3.0/deps/Versions.make
>> --8<---------------cut here---------------end--------------->8---
>

I indeed tried.  The main problem is that in the Makefile there's no
USE_SYSTEM_{OBJCONV/LIBWHICH}, and I didn't want to mess with the it.
But yes, I think I could at least try again.

>
> 3.
>> Otherwise, there is some issues about indentation -- I think you use
>> Emacs, so check that '.dir-locals.el' is correctly setup -- double
>> space for sentences in description,
>> 'patch/julia-SOURCE_DATE_EPOCH-mtime.patch' should be added with the
>> same commit that "Update", etc.
>> I have half-corrected so I can send you these 2 v2-patches if you want to. :-)
>
>
If you already fixed them, yes please send a v2 patch and I'll continue
working from there.

>
> What do you think?
>
Fine for me, do we need also to debug a broken test right?
>
> Cheers,
> simon


Nicolò




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Tue, 11 Feb 2020 15:20:02 GMT) Full text and rfc822 format available.

Message #104 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 38546 <at> debbugs.gnu.org
Subject: Re: [bug#38546] [00/11] Update Julia, Fix precompilation, add HTTP.jl
Date: Tue, 11 Feb 2020 16:19:32 +0100
On Tue, 11 Feb 2020 at 16:10, Nicolò Balzarotti <anothersms <at> gmail.com> wrote:

> > 1.
> >> Do you have a special motivation to rename 'llvm-patch' to 'julia-patch'?
> >> (I agree, it is better :-))
> >
> Yes, because now it's not only used by llvm-julia but also by the new
> libunwind-julia.  So calling llvm-patch a function that takes a patch
> from the julia repo and that is applied to a "julia module" is measleading.

Ok.


> > 2.
> >> Well, only 2 inputs are missing. Do you think it is affordable to pack
> >> them and so remove the commentary?
> >>
> >> --8<---------------cut here---------------start------------->8---
> >> ;; FIXME: The following inputs are downloaded from upstream to allow us
> >> ;; to use the lightweight Julia release tarball.  Ideally, these inputs
> >> ;; would eventually be replaced with proper Guix packages.
> >> ;; Find dependencies versions here:
> >> ;; https://raw.githubusercontent.com/JuliaLang/julia/v1.3.0/deps/Versions.make
> >> --8<---------------cut here---------------end--------------->8---
>
> I indeed tried.  The main problem is that in the Makefile there's no
> USE_SYSTEM_{OBJCONV/LIBWHICH}, and I didn't want to mess with the it.
> But yes, I think I could at least try again.

Let me check how it will be crawled by SWH to be sure that Guix will
be able to still build Julia 1.3 even if GitHub does not exist
anymore.
And I am in favour to let these 2 inputs.


> > 3.
> >> Otherwise, there is some issues about indentation -- I think you use
> >> Emacs, so check that '.dir-locals.el' is correctly setup -- double
> >> space for sentences in description,
> >> 'patch/julia-SOURCE_DATE_EPOCH-mtime.patch' should be added with the
> >> same commit that "Update", etc.
> >> I have half-corrected so I can send you these 2 v2-patches if you want to. :-)
> >
> If you already fixed them, yes please send a v2 patch and I'll continue
> working from there.

Stay tuned. :-)
I try to send it today...


> Fine for me, do we need also to debug a broken test right?

I do not know if the test are broken. I am not able to run them on my
desktop machine. Not enough memory.


Cheers,
simon




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Tue, 11 Feb 2020 15:26:01 GMT) Full text and rfc822 format available.

Message #107 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Nicolò Balzarotti <anothersms <at> gmail.com>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 38546 <at> debbugs.gnu.org
Subject: Re: [bug#38546] [00/11] Update Julia, Fix precompilation, add HTTP.jl
Date: Tue, 11 Feb 2020 16:24:52 +0100
zimoun <zimon.toutoune <at> gmail.com> writes:

Hi

> On Tue, 11 Feb 2020 at 16:10, Nicolò Balzarotti <anothersms <at> gmail.com> wrote:
>
>> > 1.
>> >> Do you have a special motivation to rename 'llvm-patch' to 'julia-patch'?
>> >> (I agree, it is better :-))
>> >
>> Yes, because now it's not only used by llvm-julia but also by the new
>> libunwind-julia.  So calling llvm-patch a function that takes a patch
>> from the julia repo and that is applied to a "julia module" is measleading.
>
> Ok.
>
>
>> > 2.
>> >> Well, only 2 inputs are missing. Do you think it is affordable to pack
>> >> them and so remove the commentary?
>> >>
>> >> --8<---------------cut here---------------start------------->8---
>> >> ;; FIXME: The following inputs are downloaded from upstream to allow us
>> >> ;; to use the lightweight Julia release tarball.  Ideally, these inputs
>> >> ;; would eventually be replaced with proper Guix packages.
>> >> ;; Find dependencies versions here:
>> >> ;; https://raw.githubusercontent.com/JuliaLang/julia/v1.3.0/deps/Versions.make
>> >> --8<---------------cut here---------------end--------------->8---
>>
>> I indeed tried.  The main problem is that in the Makefile there's no
>> USE_SYSTEM_{OBJCONV/LIBWHICH}, and I didn't want to mess with the it.
>> But yes, I think I could at least try again.
>
> Let me check how it will be crawled by SWH to be sure that Guix will
> be able to still build Julia 1.3 even if GitHub does not exist
> anymore.
> And I am in favour to let these 2 inputs.
>
>
>> > 3.
>> >> Otherwise, there is some issues about indentation -- I think you use
>> >> Emacs, so check that '.dir-locals.el' is correctly setup -- double
>> >> space for sentences in description,
>> >> 'patch/julia-SOURCE_DATE_EPOCH-mtime.patch' should be added with the
>> >> same commit that "Update", etc.
>> >> I have half-corrected so I can send you these 2 v2-patches if you want to. :-)
>> >
>> If you already fixed them, yes please send a v2 patch and I'll continue
>> working from there.
>
> Stay tuned. :-)
> I try to send it today...
>
Don't worry, I'm still working on my PhD thesis so my spare time until
the end of the week is low :D
>
>> Fine for me, do we need also to debug a broken test right?
>
> I do not know if the test are broken. I am not able to run them on my
> desktop machine. Not enough memory.
>
Ok, so I'll run tests a few times on my server then
>
> Cheers,
> simon

Thanks, Nicolò




Changed bug title to 'Update Julia to 1.3.1.' from '[PATCH 0/3] Julia: fix package build and add julia-xyz' Request was from zimoun <zimon.toutoune <at> gmail.com> to control <at> debbugs.gnu.org. (Tue, 11 Feb 2020 17:43:01 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Tue, 11 Feb 2020 18:00:02 GMT) Full text and rfc822 format available.

Message #112 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: 38546 <at> debbugs.gnu.org,
 Nicolò Balzarotti <anothersms <at> gmail.com>
Subject: [PATCH v4] Update Julia 1.3.1: almost done
Date: Tue, 11 Feb 2020 18:58:50 +0100
[Message part 1 (text/plain, inline)]
Hi,

Please find attach the almost updated julia using 2 patches. The first
add a dependency and the second update and patch.

I hope that I do not screw up the indentation; sometimes my Emacs does
weird stuff. Anyway.

If it is fine with you, please ping Ludo or any committer. :-)


Cheers,
simon
[v4-0002-gnu-julia-Update-to-1.3.1.patch (text/x-patch, attachment)]
[v4-0001-gnu-Add-dsfmt.patch (text/x-patch, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Mon, 24 Feb 2020 12:51:02 GMT) Full text and rfc822 format available.

Message #115 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: 38546 <at> debbugs.gnu.org,
 Nicolò Balzarotti <anothersms <at> gmail.com>
Subject: Re: [PATCH v4] Update Julia 1.3.1: almost done
Date: Mon, 24 Feb 2020 13:50:31 +0100
Hi,

Friendly ping. :-)


On Tue, 11 Feb 2020 at 18:58, zimoun <zimon.toutoune <at> gmail.com> wrote:
>
> Hi,
>
> Please find attach the almost updated julia using 2 patches. The first
> add a dependency and the second update and patch.
>
> I hope that I do not screw up the indentation; sometimes my Emacs does
> weird stuff. Anyway.
>
> If it is fine with you, please ping Ludo or any committer. :-)
>
>
> Cheers,
> simon




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Mon, 24 Feb 2020 21:01:01 GMT) Full text and rfc822 format available.

Message #118 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Nicolò Balzarotti <anothersms <at> gmail.com>
To: zimoun <zimon.toutoune <at> gmail.com>, 38546 <at> debbugs.gnu.org
Subject: Re: [bug#38546] [PATCH v4] Update Julia 1.3.1: almost done
Date: Mon, 24 Feb 2020 21:59:46 +0100
[Message part 1 (text/plain, inline)]
zimoun <zimon.toutoune <at> gmail.com> writes:

> Hi,
>
Hi, 
> Friendly ping. :-)
>

Here's a friendly 1.3.1 + HTTP.jl + dependencies patch submission.
Hopefully this time it's fine.  Package precompilation should be working
now (except json, whose cache, for some reason, is not valid and gets
rebuilt).
As a reminder: determinism is still not addressed and will be fixed in
the 1.4.0 release (hopefully, upstream is still not that responsive).
However, there are dozens of julia packages that I want to package, so
if this first batch is finally fine, more will come.

[0001-gnu-Add-dsfmt.patch (text/x-patch, attachment)]
[0002-gnu-julia-Update-to-1.3.1.patch (text/x-patch, attachment)]
[0003-gnu-julia-build-system-Enable-tests-fix-precompilati.patch (text/x-patch, attachment)]
[0004-gnu-Add-julia-compat.patch (text/x-patch, attachment)]
[0005-gnu-Add-julia-sha.patch (text/x-patch, attachment)]
[0006-gnu-Add-julia-binaryprovider.patch (text/x-patch, attachment)]
[0007-gnu-Add-julia-inifile.patch (text/x-patch, attachment)]
[0008-gnu-Add-julia-mbedtls.patch (text/x-patch, attachment)]
[0009-gnu-Add-julia-bufferedstreams.patch (text/x-patch, attachment)]
[0010-gnu-Add-julia-parsers.patch (text/x-patch, attachment)]
[0011-gnu-Add-julia-offsetarrays.patch (text/x-patch, attachment)]
[0012-gnu-Add-julia-fixedpointnumbers.patch (text/x-patch, attachment)]
[0013-gnu-Add-julia-orderedcollections.patch (text/x-patch, attachment)]
[0014-gnu-Add-julia-datastructures.patch (text/x-patch, attachment)]
[0015-gnu-Add-julia-json.patch (text/x-patch, attachment)]
[0016-gnu-Add-julia-http.patch (text/x-patch, attachment)]
[Message part 18 (text/plain, inline)]
Thanks, Nicolò

>
> On Tue, 11 Feb 2020 at 18:58, zimoun <zimon.toutoune <at> gmail.com> wrote:
>>
>> Hi,
>>
>> Please find attach the almost updated julia using 2 patches. The first
>> add a dependency and the second update and patch.
>>
>> I hope that I do not screw up the indentation; sometimes my Emacs does
>> weird stuff. Anyway.
>>
>> If it is fine with you, please ping Ludo or any committer. :-)
>>
>>
>> Cheers,
>> simon

Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Tue, 25 Feb 2020 16:13:02 GMT) Full text and rfc822 format available.

Message #121 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: 38546 <at> debbugs.gnu.org
Subject: Re: [bug#38546] [PATCH v4] Update Julia 1.3.1: almost done
Date: Tue, 25 Feb 2020 17:12:08 +0100
Hi Nicolò,

On Mon, 24 Feb 2020 at 21:59, Nicolò Balzarotti <anothersms <at> gmail.com> wrote:

> Here's a friendly 1.3.1 + HTTP.jl + dependencies patch submission.
> Hopefully this time it's fine.  Package precompilation should be working
> now (except json, whose cache, for some reason, is not valid and gets
> rebuilt).

Cool! Thank you.
I would like to first push 1.3.1, i.e., the patches v4.

Then let open another bug report with the patches attached here.
Otherwise, it seems a non-ending process. ;-)


About processing, if you use Magit to generate your patches, do not
forget to increment the reroll-count (W c C-m v) otherwise "git
format-patch -v5". It eases to know which version of the patches we
are talking about. For example, here it is the fifth.


> As a reminder: determinism is still not addressed and will be fixed in
> the 1.4.0 release (hopefully, upstream is still not that responsive).
> However, there are dozens of julia packages that I want to package, so
> if this first batch is finally fine, more will come.

Yes, hope soon. :-)


Cheers,
simon




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Tue, 25 Feb 2020 18:09:02 GMT) Full text and rfc822 format available.

Message #124 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Nicolò Balzarotti <anothersms <at> gmail.com>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: 38546 <at> debbugs.gnu.org
Subject: Re: [bug#38546] [PATCH v4] Update Julia 1.3.1: almost done
Date: Tue, 25 Feb 2020 19:08:39 +0100
zimoun <zimon.toutoune <at> gmail.com> writes:

> Hi Nicolò,
>
> On Mon, 24 Feb 2020 at 21:59, Nicolò Balzarotti <anothersms <at> gmail.com> wrote:
>
>> Here's a friendly 1.3.1 + HTTP.jl + dependencies patch submission.
>> Hopefully this time it's fine.  Package precompilation should be working
>> now (except json, whose cache, for some reason, is not valid and gets
>> rebuilt).
>
> Cool! Thank you.
> I would like to first push 1.3.1, i.e., the patches v4.
>
OOk
> Then let open another bug report with the patches attached here.
> Otherwise, it seems a non-ending process. ;-)
>
>
> About processing, if you use Magit to generate your patches, do not
> forget to increment the reroll-count (W c C-m v) otherwise "git
> format-patch -v5". It eases to know which version of the patches we
> are talking about. For example, here it is the fifth.
>
Thanks! Didn't know about it. Should I re-submit them with the v5 prefix?
>
>> As a reminder: determinism is still not addressed and will be fixed in
>> the 1.4.0 release (hopefully, upstream is still not that responsive).
>> However, there are dozens of julia packages that I want to package, so
>> if this first batch is finally fine, more will come.
>
> Yes, hope soon. :-)
>
Nicolò
>
> Cheers,
> simon




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Wed, 26 Feb 2020 12:33:02 GMT) Full text and rfc822 format available.

Message #127 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Nicolò Balzarotti <anothersms <at> gmail.com>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: 38546 <at> debbugs.gnu.org
Subject: [PATCH v5] Julia: Update to 1.3.1
Date: Wed, 26 Feb 2020 13:32:19 +0100
[Message part 1 (text/plain, inline)]
Hi,

v5 of the Julia 1.3.1 update patch.

This patch updates julia to 1.3.1.  According to previous simon email,
fixes to julia build system and julia package submissions will be done
separately.

Thanks, Nicolò

[v5-0001-gnu-Add-dsfmt.patch (text/x-patch, attachment)]
[v5-0002-gnu-julia-Update-to-1.3.1.patch (text/x-patch, attachment)]
[Message part 4 (text/plain, inline)]

Nicolò Balzarotti <anothersms <at> gmail.com> writes:

> zimoun <zimon.toutoune <at> gmail.com> writes:
>
>> Hi Nicolò,
>>
>> On Mon, 24 Feb 2020 at 21:59, Nicolò Balzarotti <anothersms <at> gmail.com> wrote:
>>
>>> Here's a friendly 1.3.1 + HTTP.jl + dependencies patch submission.
>>> Hopefully this time it's fine.  Package precompilation should be working
>>> now (except json, whose cache, for some reason, is not valid and gets
>>> rebuilt).
>>
>> Cool! Thank you.
>> I would like to first push 1.3.1, i.e., the patches v4.
>>
> OOk
>> Then let open another bug report with the patches attached here.
>> Otherwise, it seems a non-ending process. ;-)
>>
>>
>> About processing, if you use Magit to generate your patches, do not
>> forget to increment the reroll-count (W c C-m v) otherwise "git
>> format-patch -v5". It eases to know which version of the patches we
>> are talking about. For example, here it is the fifth.
>>
> Thanks! Didn't know about it. Should I re-submit them with the v5 prefix?
>>
>>> As a reminder: determinism is still not addressed and will be fixed in
>>> the 1.4.0 release (hopefully, upstream is still not that responsive).
>>> However, there are dozens of julia packages that I want to package, so
>>> if this first batch is finally fine, more will come.
>>
>> Yes, hope soon. :-)
>>
> Nicolò
>>
>> Cheers,
>> simon

Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Mon, 16 Mar 2020 10:08:02 GMT) Full text and rfc822 format available.

Message #130 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: 38546 <at> debbugs.gnu.org, zimoun <zimon.toutoune <at> gmail.com>
Subject: Re: [bug#38546] [PATCH v5] Julia: Update to 1.3.1
Date: Mon, 16 Mar 2020 12:06:41 +0200
[Message part 1 (text/plain, inline)]
The upgrade of libgit2 to 0.99.0 seems to have broken this

julia bin/install_packages.jl
Activating environment at `~/workspace/LMGPU.jl/Project.toml`
   Cloning default registries into `~/.julia`
   Cloning registry from "https://github.com/JuliaRegistries/General.git"
ERROR: LoadError: failed to clone from https://github.com/JuliaRegistries/General.git, error: GitError(Code:ERROR, Class:Invalid, invalid version 0 on git_proxy_options)

Other bug reports from other libgit2 version bumps suggest using an
older version of libgit2


-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Tue, 17 Mar 2020 07:52:02 GMT) Full text and rfc822 format available.

Message #133 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Nicolò Balzarotti <anothersms <at> gmail.com>
To: Efraim Flashner <efraim <at> flashner.co.il>
Cc: 38546 <at> debbugs.gnu.org, zimoun <zimon.toutoune <at> gmail.com>
Subject: Re: [bug#38546] [PATCH v5] Julia: Update to 1.3.1
Date: Tue, 17 Mar 2020 08:51:13 +0100
Hi Efraim, thanks for the report.

Yes, according to this report[1] we should downgrade libgit2 0.99.  I'll
try to send an updated patch in the next days.

In the meanwhile, reding arch bug-tracker [2] I saw that libgit2 depends
on http-parser (USE_HTTP_PARSER).  Should we unbundle it from git?

Thanks, Nicolò

[1] https://github.com/JuliaLang/julia/issues/33111
[2] https://bugs.archlinux.org/task/65540



Efraim Flashner <efraim <at> flashner.co.il> writes:

> The upgrade of libgit2 to 0.99.0 seems to have broken this
>
> julia bin/install_packages.jl
> Activating environment at `~/workspace/LMGPU.jl/Project.toml`
>    Cloning default registries into `~/.julia`
>    Cloning registry from "https://github.com/JuliaRegistries/General.git"
> ERROR: LoadError: failed to clone from https://github.com/JuliaRegistries/General.git, error: GitError(Code:ERROR, Class:Invalid, invalid version 0 on git_proxy_options)
>
> Other bug reports from other libgit2 version bumps suggest using an
> older version of libgit2
>
>
> -- 
> Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
> GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
> Confidentiality cannot be guaranteed on emails sent or received unencrypted




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Tue, 17 Mar 2020 08:13:02 GMT) Full text and rfc822 format available.

Message #136 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: 38546 <at> debbugs.gnu.org, zimoun <zimon.toutoune <at> gmail.com>
Subject: Re: [bug#38546] [PATCH v5] Julia: Update to 1.3.1
Date: Tue, 17 Mar 2020 10:12:10 +0200
[Message part 1 (text/plain, inline)]
On Tue, Mar 17, 2020 at 08:51:13AM +0100, Nicolò Balzarotti wrote:
> Hi Efraim, thanks for the report.
> 
> Yes, according to this report[1] we should downgrade libgit2 0.99.  I'll
> try to send an updated patch in the next days.

We can just add a libgit2-0.28 for now and remove it later.

I saw that there were patches for using llvm-8 as a base for llvm-julia
instead of llvm-6, but that can wait until later.

> 
> In the meanwhile, reding arch bug-tracker [2] I saw that libgit2 depends
> on http-parser (USE_HTTP_PARSER).  Should we unbundle it from git?

That sounds like a separate issue, but a good idea.

> 
> Thanks, Nicolò
> 
> [1] https://github.com/JuliaLang/julia/issues/33111
> [2] https://bugs.archlinux.org/task/65540
> 
> 
> 
> Efraim Flashner <efraim <at> flashner.co.il> writes:
> 
> > The upgrade of libgit2 to 0.99.0 seems to have broken this
> >
> > julia bin/install_packages.jl
> > Activating environment at `~/workspace/LMGPU.jl/Project.toml`
> >    Cloning default registries into `~/.julia`
> >    Cloning registry from "https://github.com/JuliaRegistries/General.git"
> > ERROR: LoadError: failed to clone from https://github.com/JuliaRegistries/General.git, error: GitError(Code:ERROR, Class:Invalid, invalid version 0 on git_proxy_options)
> >
> > Other bug reports from other libgit2 version bumps suggest using an
> > older version of libgit2
> >
> >
> > -- 
> > Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
> > GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
> > Confidentiality cannot be guaranteed on emails sent or received unencrypted

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Tue, 17 Mar 2020 12:22:01 GMT) Full text and rfc822 format available.

Message #139 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Efraim Flashner <efraim <at> flashner.co.il>, Nicolò
 Balzarotti <anothersms <at> gmail.com>
Cc: 38546 <at> debbugs.gnu.org, zimoun <zimon.toutoune <at> gmail.com>
Subject: Re: [bug#38546] [PATCH v5] Julia: Update to 1.3.1
Date: Tue, 17 Mar 2020 13:21:19 +0100
[Message part 1 (text/plain, inline)]
Efraim Flashner <efraim <at> flashner.co.il> writes:

>> In the meanwhile, reding arch bug-tracker [2] I saw that libgit2 depends
>> on http-parser (USE_HTTP_PARSER).  Should we unbundle it from git?
>
> That sounds like a separate issue, but a good idea.

We used to unbundle it up until libgit2 0.99.0, because the release
notes said that their fork is incompatible with the released version of
http-parser.

We should look into what the compatibility issues are before unbundling
it again.  Maybe it's not relevant for Guix.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Tue, 17 Mar 2020 13:39:01 GMT) Full text and rfc822 format available.

Message #142 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Nicolò Balzarotti <anothersms <at> gmail.com>
To: Marius Bakke <mbakke <at> fastmail.com>, Efraim Flashner <efraim <at> flashner.co.il>
Cc: 38546 <at> debbugs.gnu.org, zimoun <zimon.toutoune <at> gmail.com>
Subject: Re: [bug#38546] [PATCH v5] Julia: Update to 1.3.1
Date: Tue, 17 Mar 2020 14:37:53 +0100
Hi,

I looked at it.  THe patch is literally a one-line change[1] they make
to support RFC 3986.  According to [2], the patch has been ported to
fedora http-parser.  Our version is different form the one bundled in
libgit2, but deleting the corresponding line (see snippet) libgit2 tests
are now passing.  However, this http-parser test is failing:

*** http_parser_parse_url("http://hostname:/") "proxy empty port" test failed, unexpected rv 0 ***

I opened an issue upstream here [3] so that if they fix it we can
continue unbundling it without having to patch it ourselves.

Hope they decide to upstream it

I'll send updates if there are news on the issue,
thanks, Nicolò.



#+name: http-parser.patch
#+begin_src diff
diff -u a/http_parser.c b/http_parser.c
--- a/http_parser.c	2020-03-17 14:05:53.542832960 +0100
+++ b/http_parser.c	2020-03-17 14:05:21.810382406 +0100
@@ -2394,7 +2394,6 @@
     case s_http_host_v6_zone_start:
     case s_http_host_v6_zone:
-    case s_http_host_port_start:
     case s_http_userinfo:
     case s_http_userinfo_start:
       return 1;
     default:
#+end_src

[1] https://github.com/libgit2/libgit2/commit/1bbdec69bef50208f77f0c4cbac7c6b56c35973f.patch
[2] https://github.com/libgit2/libgit2/issues/5436#issuecomment-593773122
[3] https://github.com/nodejs/http-parser/issues/501

Marius Bakke <mbakke <at> fastmail.com> writes:

> Efraim Flashner <efraim <at> flashner.co.il> writes:
>
>>> In the meanwhile, reding arch bug-tracker [2] I saw that libgit2 depends
>>> on http-parser (USE_HTTP_PARSER).  Should we unbundle it from git?
>>
>> That sounds like a separate issue, but a good idea.
>
> We used to unbundle it up until libgit2 0.99.0, because the release
> notes said that their fork is incompatible with the released version of
> http-parser.
>
> We should look into what the compatibility issues are before unbundling
> it again.  Maybe it's not relevant for Guix.




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Thu, 19 Mar 2020 12:29:02 GMT) Full text and rfc822 format available.

Message #145 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Nicolò Balzarotti <anothersms <at> gmail.com>, Efraim
 Flashner <efraim <at> flashner.co.il>
Cc: 38546 <at> debbugs.gnu.org, zimoun <zimon.toutoune <at> gmail.com>
Subject: Re: [bug#38546] [PATCH v5] Julia: Update to 1.3.1
Date: Thu, 19 Mar 2020 13:28:09 +0100
[Message part 1 (text/plain, inline)]
Nicolò Balzarotti <anothersms <at> gmail.com> writes:

> Hi,
>
> I looked at it.  THe patch is literally a one-line change[1] they make
> to support RFC 3986.  According to [2], the patch has been ported to
> fedora http-parser.  Our version is different form the one bundled in
> libgit2, but deleting the corresponding line (see snippet) libgit2 tests
> are now passing.  However, this http-parser test is failing:
>
> *** http_parser_parse_url("http://hostname:/") "proxy empty port" test failed, unexpected rv 0 ***
>
> I opened an issue upstream here [3] so that if they fix it we can
> continue unbundling it without having to patch it ourselves.
>
> Hope they decide to upstream it
>
> I'll send updates if there are news on the issue,

Awesome, thank you very much for looking into it.  I have no objections
to taking the patches from the upstream PR [0] if that helps updating
Julia.  :-)

0: https://github.com/nodejs/http-parser/pull/483
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Mon, 06 Apr 2020 06:11:02 GMT) Full text and rfc822 format available.

Message #148 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: Marius Bakke <mbakke <at> fastmail.com>, 38546 <at> debbugs.gnu.org,
 zimoun <zimon.toutoune <at> gmail.com>
Subject: Re: [bug#38546] [PATCH v5] Julia: Update to 1.3.1
Date: Mon, 6 Apr 2020 09:09:49 +0300
[Message part 1 (text/plain, inline)]
On Thu, Mar 19, 2020 at 01:28:09PM +0100, Marius Bakke wrote:
> Nicolò Balzarotti <anothersms <at> gmail.com> writes:
> 
> > Hi,
> >
> > I looked at it.  THe patch is literally a one-line change[1] they make
> > to support RFC 3986.  According to [2], the patch has been ported to
> > fedora http-parser.  Our version is different form the one bundled in
> > libgit2, but deleting the corresponding line (see snippet) libgit2 tests
> > are now passing.  However, this http-parser test is failing:
> >
> > *** http_parser_parse_url("http://hostname:/") "proxy empty port" test failed, unexpected rv 0 ***
> >
> > I opened an issue upstream here [3] so that if they fix it we can
> > continue unbundling it without having to patch it ourselves.
> >
> > Hope they decide to upstream it
> >
> > I'll send updates if there are news on the issue,
> 
> Awesome, thank you very much for looking into it.  I have no objections
> to taking the patches from the upstream PR [0] if that helps updating
> Julia.  :-)
> 
> 0: https://github.com/nodejs/http-parser/pull/483

Any news from upstream?


-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Mon, 06 Apr 2020 08:19:01 GMT) Full text and rfc822 format available.

Message #151 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Nicolò Balzarotti <anothersms <at> gmail.com>
To: Efraim Flashner <efraim <at> flashner.co.il>
Cc: Marius Bakke <mbakke <at> fastmail.com>, 38546 <at> debbugs.gnu.org,
 zimoun <zimon.toutoune <at> gmail.com>
Subject: Re: [bug#38546] [PATCH v5] Julia: Update to 1.3.1
Date: Mon, 06 Apr 2020 10:18:25 +0200
[Message part 1 (text/plain, inline)]
Efraim Flashner <efraim <at> flashner.co.il> writes:

Hi Efraim,

no, AFAIK.

The http-parser PR[1] received a comment 18 days ago, so maybe things are slowly
moving.
Julia issue[2] basically suggest to workaround the problem, while [3]
seems to have a patch for julia 1.4.0 ready.

In the meantime, I'm sending a quick patch that patches our http-parser
with the one applied system-wide by fedora[4].

How was the command to build all packages depending even indirectly from
another package (http-parser in this case)?  I'll build everything and
hope tests will pass.

Thanks, Nicolò


[0001-gnu-Add-dsfmt.patch (text/x-patch, attachment)]
[0002-gnu-http-parser-add-patch-applied-by-libgit2.patch (text/x-patch, attachment)]
[0003-gnu-libgit2-Use-system-http-parser.patch (text/x-patch, attachment)]
[0004-gnu-julia-Upgrade-to-1.3.1.patch (text/x-patch, attachment)]
[Message part 6 (text/plain, inline)]



[1] https://github.com/nodejs/http-parser/pull/483
[2] https://github.com/JuliaLang/julia/issues/33111
[3] https://github.com/JuliaLang/julia/pull/35232
[4] https://src.fedoraproject.org/rpms/http-parser/c/e89b4c4e2874c19079a5a1a2d2ccc61b551aa289?branch=master

> On Thu, Mar 19, 2020 at 01:28:09PM +0100, Marius Bakke wrote:
>> Nicolò Balzarotti <anothersms <at> gmail.com> writes:
>> 
>> > Hi,
>> >
>> > I looked at it.  THe patch is literally a one-line change[1] they make
>> > to support RFC 3986.  According to [2], the patch has been ported to
>> > fedora http-parser.  Our version is different form the one bundled in
>> > libgit2, but deleting the corresponding line (see snippet) libgit2 tests
>> > are now passing.  However, this http-parser test is failing:
>> >
>> > *** http_parser_parse_url("http://hostname:/") "proxy empty port" test failed, unexpected rv 0 ***
>> >
>> > I opened an issue upstream here [3] so that if they fix it we can
>> > continue unbundling it without having to patch it ourselves.
>> >
>> > Hope they decide to upstream it
>> >
>> > I'll send updates if there are news on the issue,
>> 
>> Awesome, thank you very much for looking into it.  I have no objections
>> to taking the patches from the upstream PR [0] if that helps updating
>> Julia.  :-)
>> 
>> 0: https://github.com/nodejs/http-parser/pull/483
>
> Any news from upstream?
>
>
> -- 
> Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
> GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
> Confidentiality cannot be guaranteed on emails sent or received unencrypted

Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Mon, 06 Apr 2020 08:39:02 GMT) Full text and rfc822 format available.

Message #154 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: Marius Bakke <mbakke <at> fastmail.com>, 38546 <at> debbugs.gnu.org,
 zimoun <zimon.toutoune <at> gmail.com>
Subject: Re: [bug#38546] [PATCH v5] Julia: Update to 1.3.1
Date: Mon, 6 Apr 2020 11:37:54 +0300
[Message part 1 (text/plain, inline)]
On Mon, Apr 06, 2020 at 10:18:25AM +0200, Nicolò Balzarotti wrote:
> Efraim Flashner <efraim <at> flashner.co.il> writes:
> 
> Hi Efraim,
> 
> no, AFAIK.
> 
> The http-parser PR[1] received a comment 18 days ago, so maybe things are slowly
> moving.
> Julia issue[2] basically suggest to workaround the problem, while [3]
> seems to have a patch for julia 1.4.0 ready.
> 
> In the meantime, I'm sending a quick patch that patches our http-parser
> with the one applied system-wide by fedora[4].
> 
> How was the command to build all packages depending even indirectly from
> another package (http-parser in this case)?  I'll build everything and
> hope tests will pass.
> 
> Thanks, Nicolò
> 

'guix refresh -l http-parser' will list all the packages which depend,
even indirectly, on it. ./pre-inst-env guix build --no-grafts
$(./pre-inst-env guix refresh -l http-parser | cut -f2 -d':') will build
them all if you don't feel like copy-pasting the list.


-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Mon, 06 Apr 2020 23:19:01 GMT) Full text and rfc822 format available.

Message #157 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Nicolò Balzarotti <anothersms <at> gmail.com>
To: Efraim Flashner <efraim <at> flashner.co.il>
Cc: Marius Bakke <mbakke <at> fastmail.com>, 38546 <at> debbugs.gnu.org,
 zimoun <zimon.toutoune <at> gmail.com>
Subject: Re: [bug#38546] [PATCH v5] Julia: Update to 1.3.1
Date: Tue, 07 Apr 2020 01:18:08 +0200
Hello again, the build completed right now.

Efraim Flashner <efraim <at> flashner.co.il> writes:

> On Mon, Apr 06, 2020 at 10:18:25AM +0200, Nicolò Balzarotti wrote:
>> Efraim Flashner <efraim <at> flashner.co.il> writes:
>> 
>> Hi Efraim,
>> 
>> no, AFAIK.
>> 
>> The http-parser PR[1] received a comment 18 days ago, so maybe things are slowly
>> moving.
>> Julia issue[2] basically suggest to workaround the problem, while [3]
>> seems to have a patch for julia 1.4.0 ready.
>> 
>> In the meantime, I'm sending a quick patch that patches our http-parser
>> with the one applied system-wide by fedora[4].
>> 
>> How was the command to build all packages depending even indirectly from
>> another package (http-parser in this case)?  I'll build everything and
>> hope tests will pass.
>> 
>> Thanks, Nicolò
>> 
>
> 'guix refresh -l http-parser' will list all the packages which depend,
> even indirectly, on it. ./pre-inst-env guix build --no-grafts
> $(./pre-inst-env guix refresh -l http-parser | cut -f2 -d':') will build
> them all if you don't feel like copy-pasting the list.
>

Thanks!

From the output of guix refresh, it could not find
guix-minimal <at> 1.0.1-15.0984481 guix-daemon <at> 1.0.1-15.0984481.

This command succeeded:
#+begin_src bash
./pre-inst-env guix build --no-grafts jami <at> 20191101.3.67671e7 ungoogled-chromium-wayland <at> 80.0.3987.162-0.516e2d9 ungoogled-chromium <at> 80.0.3987.162-0.516e2d9 emacs-nodejs-repl <at> 0.2.2 geierlein <at> 0.9.13 node-env-variable <at> 0.0.4 node-mersenne <at> 0.0.4 node-color-name <at> 1.1.3 node-util-deprecate <at> 1.0.2 node-stack-trace <at> 0.0.10-1.4fd379e node-statsd-parser <at> 0.0.4 ruby-autoprefixer-rails <at> 9.4.7 celestia-gtk <at> 1.6.1-815.9dbdf29 celestia <at> 1.6.1-815.9dbdf29 rust-libgit2-sys <at> 0.8.2 rust-libgit2-sys <at> 0.10.0 fritzing <at> 0.9.3b gitg <at> 3.32.1 cuirass <at> 0.0.1-28.b9031db emacs-guix <at> 0.5.2 guix-jupyter <at> 0.1.0 hpcguix-web <at> 0.0.1-4.f39c90b guile2.0-git <at> 0.3.0 julia <at> 1.3.1 kopete <at> 19.08.3 dolphin-plugins <at> 19.08.3 kate <at> 19.08.3 kdevelop <at> 5.4.6 offlate <at> 0.5 gitless <at> 0.8.8 exa <at> 0.9.0 tokei <at> 10.1.1 r-biocworkflowtools <at> 1.12.1 r-activpal <at> 0.1.3 r-chemometricswithr <at> 0.1.13 r-abjutils <at> 0.2.3 r-adapr <at> 2.0.0 stagit <at> 0.7.2
#+end_src

But two packages are failing:
- sssd <at> 1.16.4
- rust-libgit2-sys

What do you suggest?  If those errors are actually related http-parser
patch, we could either fix/disable those tests or use the patched
version in julia only.

Thanks, Nicolò

>
> -- 
> Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
> GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
> Confidentiality cannot be guaranteed on emails sent or received unencrypted




Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Tue, 07 Apr 2020 05:43:01 GMT) Full text and rfc822 format available.

Message #160 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: Marius Bakke <mbakke <at> fastmail.com>, 38546 <at> debbugs.gnu.org,
 zimoun <zimon.toutoune <at> gmail.com>
Subject: Re: [bug#38546] [PATCH v5] Julia: Update to 1.3.1
Date: Tue, 7 Apr 2020 08:41:51 +0300
[Message part 1 (text/plain, inline)]
On Tue, Apr 07, 2020 at 01:18:08AM +0200, Nicolò Balzarotti wrote:
> Hello again, the build completed right now.
> 
> Efraim Flashner <efraim <at> flashner.co.il> writes:
> 
> > On Mon, Apr 06, 2020 at 10:18:25AM +0200, Nicolò Balzarotti wrote:
> >> Efraim Flashner <efraim <at> flashner.co.il> writes:
> >> 
> >> Hi Efraim,
> >> 
> >> no, AFAIK.
> >> 
> >> The http-parser PR[1] received a comment 18 days ago, so maybe things are slowly
> >> moving.
> >> Julia issue[2] basically suggest to workaround the problem, while [3]
> >> seems to have a patch for julia 1.4.0 ready.
> >> 
> >> In the meantime, I'm sending a quick patch that patches our http-parser
> >> with the one applied system-wide by fedora[4].
> >> 
> >> How was the command to build all packages depending even indirectly from
> >> another package (http-parser in this case)?  I'll build everything and
> >> hope tests will pass.
> >> 
> >> Thanks, Nicolò
> >> 
> >
> > 'guix refresh -l http-parser' will list all the packages which depend,
> > even indirectly, on it. ./pre-inst-env guix build --no-grafts
> > $(./pre-inst-env guix refresh -l http-parser | cut -f2 -d':') will build
> > them all if you don't feel like copy-pasting the list.
> >
> 
> Thanks!
> 
> From the output of guix refresh, it could not find
> guix-minimal <at> 1.0.1-15.0984481 guix-daemon <at> 1.0.1-15.0984481.
> 
> This command succeeded:
> #+begin_src bash
> ./pre-inst-env guix build --no-grafts jami <at> 20191101.3.67671e7 ungoogled-chromium-wayland <at> 80.0.3987.162-0.516e2d9 ungoogled-chromium <at> 80.0.3987.162-0.516e2d9 emacs-nodejs-repl <at> 0.2.2 geierlein <at> 0.9.13 node-env-variable <at> 0.0.4 node-mersenne <at> 0.0.4 node-color-name <at> 1.1.3 node-util-deprecate <at> 1.0.2 node-stack-trace <at> 0.0.10-1.4fd379e node-statsd-parser <at> 0.0.4 ruby-autoprefixer-rails <at> 9.4.7 celestia-gtk <at> 1.6.1-815.9dbdf29 celestia <at> 1.6.1-815.9dbdf29 rust-libgit2-sys <at> 0.8.2 rust-libgit2-sys <at> 0.10.0 fritzing <at> 0.9.3b gitg <at> 3.32.1 cuirass <at> 0.0.1-28.b9031db emacs-guix <at> 0.5.2 guix-jupyter <at> 0.1.0 hpcguix-web <at> 0.0.1-4.f39c90b guile2.0-git <at> 0.3.0 julia <at> 1.3.1 kopete <at> 19.08.3 dolphin-plugins <at> 19.08.3 kate <at> 19.08.3 kdevelop <at> 5.4.6 offlate <at> 0.5 gitless <at> 0.8.8 exa <at> 0.9.0 tokei <at> 10.1.1 r-biocworkflowtools <at> 1.12.1 r-activpal <at> 0.1.3 r-chemometricswithr <at> 0.1.13 r-abjutils <at> 0.2.3 r-adapr <at> 2.0.0 stagit <at> 0.7.2
> #+end_src
> 
> But two packages are failing:
> - sssd <at> 1.16.4
> - rust-libgit2-sys
> 
> What do you suggest?  If those errors are actually related http-parser
> patch, we could either fix/disable those tests or use the patched
> version in julia only.
> 
> Thanks, Nicolò
> 

One of the rust-libgit2-sys packages is known to fail and isn't an
issue. For sssd I see that 1.16.5 has been recently released. Hopefully
that can be a drop-in replacement.

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#38546; Package guix-patches. (Tue, 07 Apr 2020 06:06:02 GMT) Full text and rfc822 format available.

Message #163 received at 38546 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: Marius Bakke <mbakke <at> fastmail.com>, 38546 <at> debbugs.gnu.org,
 zimoun <zimon.toutoune <at> gmail.com>
Subject: Re: [bug#38546] [PATCH v5] Julia: Update to 1.3.1
Date: Tue, 7 Apr 2020 09:05:17 +0300
[Message part 1 (text/plain, inline)]
On Tue, Apr 07, 2020 at 08:41:56AM +0300, Efraim Flashner wrote:
> On Tue, Apr 07, 2020 at 01:18:08AM +0200, Nicolò Balzarotti wrote:
> > Hello again, the build completed right now.
> > 
> > Efraim Flashner <efraim <at> flashner.co.il> writes:
> > 
> > > On Mon, Apr 06, 2020 at 10:18:25AM +0200, Nicolò Balzarotti wrote:
> > >> Efraim Flashner <efraim <at> flashner.co.il> writes:
> > >> 
> > >> Hi Efraim,
> > >> 
> > >> no, AFAIK.
> > >> 
> > >> The http-parser PR[1] received a comment 18 days ago, so maybe things are slowly
> > >> moving.
> > >> Julia issue[2] basically suggest to workaround the problem, while [3]
> > >> seems to have a patch for julia 1.4.0 ready.
> > >> 
> > >> In the meantime, I'm sending a quick patch that patches our http-parser
> > >> with the one applied system-wide by fedora[4].
> > >> 
> > >> How was the command to build all packages depending even indirectly from
> > >> another package (http-parser in this case)?  I'll build everything and
> > >> hope tests will pass.
> > >> 
> > >> Thanks, Nicolò
> > >> 
> > >
> > > 'guix refresh -l http-parser' will list all the packages which depend,
> > > even indirectly, on it. ./pre-inst-env guix build --no-grafts
> > > $(./pre-inst-env guix refresh -l http-parser | cut -f2 -d':') will build
> > > them all if you don't feel like copy-pasting the list.
> > >
> > 
> > Thanks!
> > 
> > From the output of guix refresh, it could not find
> > guix-minimal <at> 1.0.1-15.0984481 guix-daemon <at> 1.0.1-15.0984481.
> > 
> > This command succeeded:
> > #+begin_src bash
> > ./pre-inst-env guix build --no-grafts jami <at> 20191101.3.67671e7 ungoogled-chromium-wayland <at> 80.0.3987.162-0.516e2d9 ungoogled-chromium <at> 80.0.3987.162-0.516e2d9 emacs-nodejs-repl <at> 0.2.2 geierlein <at> 0.9.13 node-env-variable <at> 0.0.4 node-mersenne <at> 0.0.4 node-color-name <at> 1.1.3 node-util-deprecate <at> 1.0.2 node-stack-trace <at> 0.0.10-1.4fd379e node-statsd-parser <at> 0.0.4 ruby-autoprefixer-rails <at> 9.4.7 celestia-gtk <at> 1.6.1-815.9dbdf29 celestia <at> 1.6.1-815.9dbdf29 rust-libgit2-sys <at> 0.8.2 rust-libgit2-sys <at> 0.10.0 fritzing <at> 0.9.3b gitg <at> 3.32.1 cuirass <at> 0.0.1-28.b9031db emacs-guix <at> 0.5.2 guix-jupyter <at> 0.1.0 hpcguix-web <at> 0.0.1-4.f39c90b guile2.0-git <at> 0.3.0 julia <at> 1.3.1 kopete <at> 19.08.3 dolphin-plugins <at> 19.08.3 kate <at> 19.08.3 kdevelop <at> 5.4.6 offlate <at> 0.5 gitless <at> 0.8.8 exa <at> 0.9.0 tokei <at> 10.1.1 r-biocworkflowtools <at> 1.12.1 r-activpal <at> 0.1.3 r-chemometricswithr <at> 0.1.13 r-abjutils <at> 0.2.3 r-adapr <at> 2.0.0 stagit <at> 0.7.2
> > #+end_src
> > 
> > But two packages are failing:
> > - sssd <at> 1.16.4
> > - rust-libgit2-sys
> > 
> > What do you suggest?  If those errors are actually related http-parser
> > patch, we could either fix/disable those tests or use the patched
> > version in julia only.
> > 
> > Thanks, Nicolò
> > 
> 
> One of the rust-libgit2-sys packages is known to fail and isn't an
> issue. For sssd I see that 1.16.5 has been recently released. Hopefully
> that can be a drop-in replacement.
> 

I built sssd <at> 1.16.5 with the http-parser patch and it passed all of its
tests so that looks good.

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

Reply sent to Efraim Flashner <efraim <at> flashner.co.il>:
You have taken responsibility. (Tue, 07 Apr 2020 14:37:01 GMT) Full text and rfc822 format available.

Notification sent to nixo <anothersms <at> gmail.com>:
bug acknowledged by developer. (Tue, 07 Apr 2020 14:37:02 GMT) Full text and rfc822 format available.

Message #168 received at 38546-done <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: Marius Bakke <mbakke <at> fastmail.com>, 38546-done <at> debbugs.gnu.org,
 zimoun <zimon.toutoune <at> gmail.com>
Subject: Re: [bug#38546] [PATCH v5] Julia: Update to 1.3.1
Date: Tue, 7 Apr 2020 17:35:45 +0300
[Message part 1 (text/plain, inline)]
I pushed the patches. I also bumped libgit2 to 1.0.0 which was released
6 days ago. There were a couple of minor things with the patches:

dsfmt: I also installed the license file
libgit2: Reworded the commit message
julia: I pushed a patch first to redo the indentation so that your patch
would stand out and not get lost on the indentation changes.
I filled out the commit message for julia-1.3.1 which I think was the
main thing.


-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 06 May 2020 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 354 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.