Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Julia 1.6.0 #116697

Closed
uncomfyhalomacro opened this issue Mar 18, 2021 · 18 comments
Closed

Julia 1.6.0 #116697

uncomfyhalomacro opened this issue Mar 18, 2021 · 18 comments
Labels
0.kind: packaging request 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md

Comments

@uncomfyhalomacro
Copy link

uncomfyhalomacro commented Mar 18, 2021

Project description
Julia 1.6.0-rc2

Metadata

@GTrunSec
Copy link
Contributor

GTrunSec commented Mar 18, 2021

@aaronjanse
Copy link
Member

Right now I'll compiling 1.6.0-rc3 (released 30 mins ago) via the overlay. I'll report back

@aaronjanse
Copy link
Member

aaronjanse commented Mar 18, 2021

I'm getting a curl issue what was not resolved by adding curl in a bunch of places

Edit: ah, I see JuliaLang/julia#37340

diff --git a/pkgs/development/compilers/julia/1.5.nix b/pkgs/development/compilers/julia/1.5.nix
index a523336b7b9..5ac0b896c02 100644
--- a/pkgs/development/compilers/julia/1.5.nix
+++ b/pkgs/development/compilers/julia/1.5.nix
@@ -18,9 +18,10 @@ with lib;

 let
   majorVersion = "1";
-  minorVersion = "5";
-  maintenanceVersion = "3";
-  src_sha256 = "sha256:0jds8lrhk4hfdv7dg5p2ibzin9ivga7wrx7zwcmz6dqp3x792n1i";
+  minorVersion = "6";
+  maintenanceVersion = "0-rc3";
+  url = "https://github.com/JuliaLang/julia/releases/download/v1.6.0-rc3/julia-1.6.0-rc3-full.tar.gz";
+  src_sha256 = "sha256-VhQrs19jYQY+Xd2jEwiCNYoOpOi+3eBKrLuuimKDwlU=";
   version = "${majorVersion}.${minorVersion}.${maintenanceVersion}";
 in

@@ -62,10 +63,10 @@ stdenv.mkDerivation rec {
   buildInputs = [
     arpack fftw fftwSinglePrec libgit2 libunwind mpfr
     pcre2.dev blas lapack openlibm openspecfun readline utf8proc
-    zlib
+    zlib curl
   ] ++ lib.optionals stdenv.isDarwin [CoreServices ApplicationServices];

-  nativeBuildInputs = [ curl gfortran m4 makeWrapper patchelf perl python2 which cmake ];
+  nativeBuildInputs = [ gfortran m4 makeWrapper patchelf perl python2 which cmake curl ];

   makeFlags =
     let
@@ -116,7 +117,7 @@ stdenv.mkDerivation rec {

   LD_LIBRARY_PATH = makeLibraryPath [
     arpack fftw fftwSinglePrec libgit2 mpfr blas openlibm
-    openspecfun pcre2 lapack
+    openspecfun pcre2 lapack curl
   ];

   # Julia's tests require read/write access to $HOME

https://gist.github.com/aaronjanse/aab710f27ca5fb60b5018cff532b6d61

@GTrunSec
Copy link
Contributor

GTrunSec commented Mar 21, 2021

Edit: ah, I see JuliaLang/julia#37340

I guess using replace string to https://github.com/JuliaLang/julia/blob/7d117dceb0f791e9ab9a7d5864e32809c3ce16c0/stdlib/LibCURL_jll/src/LibCURL_jll.jl#L26 path of ${curl.out}/lib will be fine.

Can you try it?

@aaronjanse
Copy link
Member

aaronjanse commented Mar 22, 2021 via email

@GTrunSec
Copy link
Contributor

GTrunSec commented Mar 22, 2021

Ooh, good catch. I'll give that a try and report back before going to bed tonight :-)

  • looks like we need to replace all of stdlib paths to static libs such as
    preConfigure = ''
      substituteInPlace stdlib/LibCURL_jll/src/LibCURL_jll.jl \
      --replace 'libcurl = "libcurl.so"' 'libcurl = "${prev.curl.out}/lib/libcurl.so"'
      substituteInPlace stdlib/nghttp2_jll/src/nghttp2_jll.jl \
      --replace 'libnghttp2 = "libnghttp2.so.14"' 'libnghttp2 = "${prev.lib.getLib prev.nghttp2}/lib/libnghttp2.so.14"'
    '';

test overlay:


final: prev:
{
  julia_15 = prev.julia_15.overrideAttrs (oldAttrs: {
    src = prev.fetchzip {
      url = "https://github.com/JuliaLang/julia/releases/download/v1.6.0-rc3/julia-1.6.0-rc3-full.tar.gz";
      sha256 = "sha256-VhQrs19jYQY+Xd2jEwiCNYoOpOi+3eBKrLuuimKDwlU=";
    };

    preConfigure = ''
      substituteInPlace stdlib/LibCURL_jll/src/LibCURL_jll.jl \
      --replace 'libcurl = "libcurl.so"' 'libcurl = "${prev.curl.out}/lib/libcurl.so"'
      substituteInPlace stdlib/nghttp2_jll/src/nghttp2_jll.jl \
      --replace 'libnghttp2 = "libnghttp2.so.14"' 'libnghttp2 = "${prev.lib.getLib prev.nghttp2}/lib/libnghttp2.so.14"'
    '';

    buildInputs = (oldAttrs.buildInputs or [ ]) ++
      [
        prev.curl
        prev.nghttp2
      ];

    enableParallelBuilding = true;

    LD_LIBRARY_PATH = (oldAttrs.LD_LIBRARY_PATH or [ ]) + prev.lib.makeLibraryPath [
      prev.curl
      prev.nghttp2
    ];

  });
}

let me test more to know which Lib should be replaced;

Pkg  ──────────────  5.958324 seconds                                                                                    
LazyArtifacts  ────  0.002582 seconds                                                                                    
Stdlibs total  ──── 48.984812 seconds                                                                                    
Sysimage built. Summary:                                                                                                 
Total ───────  83.620692 seconds                                                                                         
Base: ───────  34.633554 seconds 41.4174%                                                                                
Stdlibs: ────  48.984812 seconds 58.5798%                                                                                
Warning: git information unavailable; versioning information limited                                                     
    JULIA usr/lib/julia/sys-o.a                                                                                          
Generating REPL precompile statements... 29/29                                                                           
Executing precompile statements... 1145/1145                                                                             
ERROR: LoadError: AssertionError: n_succeeded > 1200            

waiting for disable enableParallelBuilding = true; to build;

@aaronjanse
Copy link
Member

Oh, I think it's okay to override that n_succeeded > 1200 assertion, especially since it's now a warning.

diff --git a/contrib/generate_precompile.jl b/contrib/generate_precompile.jl
index 41e7c16..3224c93 100644
--- a/contrib/generate_precompile.jl
+++ b/contrib/generate_precompile.jl
@@ -322,7 +322,7 @@ function generate_precompile_statements()
     if have_repl
         # Seems like a reasonable number right now, adjust as needed
         # comment out if debugging script
-        @assert n_succeeded > 1200
+        @assert n_succeeded > 1100
     end

     tot_time = time_ns() - start_time

I feel like we're supposed to be using USE_SYSTEM_NGHTTP2=1 and USE_SYSTEM_CURL=1, but I can't get those to work.

@doronbehar doronbehar changed the title Julia 1.6.0-rc2 Julia 1.6.0 Mar 28, 2021
@GTrunSec
Copy link
Contributor

GTrunSec commented Apr 1, 2021

this issue already in PR list #118000

@samuela
Copy link
Member

samuela commented Apr 4, 2021

there's also #118483. right now we're all stuck on test failures AFAIU

@ghost
Copy link

ghost commented Apr 6, 2021 via email

@ghost
Copy link

ghost commented May 16, 2021 via email

@samuela
Copy link
Member

samuela commented Jun 5, 2021

I think we can close this now that @ninjin got julia_16-bin (#123188) landed...

@7c6f434c
Copy link
Member

7c6f434c commented Jun 5, 2021 via email

@samuela
Copy link
Member

samuela commented Jun 5, 2021

Maybe we should edit the issue title to be for a source build then. I think it's fair to say we have Julia 1.6 packaged now, it's just that none of the Julia source builds are working.

@nixos-discourse
Copy link

This issue has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/need-special-build-of-nightly-julia-version/14504/4

@izzues
Copy link

izzues commented Nov 29, 2021

Sorry if this is not the right place to ask, but how was I supposed to know that the package julia_16-bin exists? I searched for it on https://search.nixos.org/packages but no results were returned.

Thanks for your great work!

@samuela
Copy link
Member

samuela commented Nov 30, 2021

@izzues Hmm, that's a great question... I have no idea why it's not showing up in search.nixos.org. That seems like a bug with the site. I'm not sure how/where to report such bugs, but starting with a question on discourse.nixos.org is prob a good place to start.

I created https://nixos.wiki/wiki/Julia to help point users in the right direction, but getting search.nixos.org to show julia_16-bin is also essential.

@stale stale bot added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Jun 19, 2022
@vcunat
Copy link
Member

vcunat commented Jul 30, 2023

Arguably no, because there seems to be an almost working source build that could be finished?

We seem to have source builds now. For newer versions than 1.6.

@vcunat vcunat closed this as completed Jul 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0.kind: packaging request 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md
Projects
None yet
Development

No branches or pull requests

8 participants