Building julia tarball from specific commit

Hi All,
Is there a documentation regarding the exact script that build the julia tarballs on specific releases?
Specifically, I would like to build a tarball which has the same structure as if it was a 1.11.2 release but with a later backport commit in order to use bug fixes and not have to wait for a 1.11.3.
I tried building Julia from source but ran into issues that causes inability to compile other packages (like missing …/compiler.jl file)
Thanks

make -j

If the commit you want to test is already in Backports for 1.11.3 by KristofferC · Pull Request #56741 · JuliaLang/julia · GitHub you can also use juliaup:

$ juliaup add pr56741
$ julia +pr56741

You want to elaborate what’s the issue you’re facing.

  1. I ran make -j with Make.user pointing to a directory and hoping the content of that dir is similar to the tarball content. I use that output dir to compile an application using PackageCompiler.
  2. Unfortunatly the packport for 1.11 doesnt contain the fix (it’s the infamous GC memory leak)
  3. Here is the error message - BTW, the unfound file compiler.jl doesnt exsist even if I make the tarball from the content of the directory created using “juliaup add pr56801”
── Hwloc_jll - 6.595 MiB

├── MPICH_jll - 10.439 MiB

├── OpenSSL_jll - 8.941 MiB

├── ThriftJuliaCompiler_jll - 54.033 MiB

├── Zstd_jll - 1.596 MiB

└── libaec_jll - 235.554 KiB

Total artifact file size: 95.518 MiB

⠸ [00m:00s] PackageCompiler: creating compiler .ji image (incremental=false)error during bootstrap:

ErrorException("File \"/opt/julia/share/julia/base/compiler/compiler.jl\" not found")

ijl_errorf at /localhome/speled/git_repos/julia-from-src/src/src/rtutils.c:77

jl_file_content_as_string at /localhome/speled/git_repos/julia-from-src/src/src/toplevel.c:1229 [inlined]

ijl_load_ at /localhome/speled/git_repos/julia-from-src/src/src/toplevel.c:1245

ijl_load at /localhome/speled/git_repos/julia-from-src/src/src/toplevel.c:1260

exec_program at /localhome/speled/git_repos/julia-from-src/src/src/jlapi.c:880

true_main at /localhome/speled/git_repos/julia-from-src/src/src/jlapi.c:937

jl_repl_entrypoint at /localhome/speled/git_repos/julia-from-src/src/src/jlapi.c:1081

main at /localhome/speled/git_repos/julia-from-src/src/cli/loader_exe.c:58

unknown function (ip: 0x7f76ffeb2249) at /lib/x86_64-linux-gnu/libc.so.6

__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)

_start at /opt/julia/bin/julia (unknown line)

✖ [00m:00s] PackageCompiler: creating compiler .ji image (incremental=false)

ERROR: LoadError: failed process: Process(`/opt/julia/bin/julia --color=yes --startup-file=no --pkgimages=no --cpu-target 'generic;sandybridge,-xsaveopt,clone_all;haswell,-rdrnd,base(1)'

--output-ji /tmp/jl_kBBJY2/corecompiler.ji /opt/julia/share/julia/base/compiler/compiler.jl`, ProcessExited(1)) [1]

Stacktrace:

[1] pipeline_error

@ ./process.jl:598 [inlined]

[2] read(cmd::Cmd)

@ Base ./process.jl:482

[3] macro expansion

@ ~/.julia/packages/PackageCompiler/UbaS4/src/PackageCompiler.jl:256 [inlined]

[4] (::PackageCompiler.var"#17#18"{String, Cmd, Cmd, String, String})()

@ PackageCompiler ~/.julia/packages/PackageCompiler/UbaS4/ext/TerminalSpinners.jl:157

[5] spin(f::PackageCompiler.var"#17#18"{String, Cmd, Cmd, String, String}, s::PackageCompiler.TerminalSpinners.Spinner{Base.TTY})

@ PackageCompiler.TerminalSpinners ~/.julia/packages/PackageCompiler/UbaS4/ext/TerminalSpinners.jl:164

[6] macro expansion

This seems to be a problem specific to PackageCompiler.jl or am I missing something?

The packageCompiler needs a file /opt/julia/share/julia/base/compiler/compiler.jl which exists in official tarballs (part of base ?) but not in my custom pr created tarball… There is some step im probabaly missing when creating a custom commit based tarball. The resulting julia dir contains a working REPL but fails when trying to compile new stuff

I would guess after you build with make -jN you need to run make install. This will create a tarball will the binary and the other files in the right location, just like the one you can download of Julia’s website.

There seems to be some problem with the build process, the Makefile doesn’t create links automatically.

/mnt/d/jl/julia$ make print-build_datarootdir
build_datarootdir=/mnt/d/jl/julia/usr/share

I did exactly that…