Subject: [bug#73197] Status wip-julia-update (was Re: bug#73197: [PATCH] gnu: julia: Update to 1.9.3.)

From: [email-masked]
Date: Tue, 18 Feb 2025 23:30:59 +0100

Dear Simon,

Thanks for working on this ! I've tried to follow the nix install
process. Here are some (incomplete) notes.
For brievity's sake, only the Zlib package will be shown in the files
below.

1. A list of dependencies is stored into a YAML:

8<-----------------------------------------------------------------------

cat
/nix/store/3c8lw0flmvvl5hlkc8c7xcwvwj1kbzp2-julia-package-closure.yml

- name: Zlib_jll

  uuid: 83775a58-1f1d-513f-b197-d71354ab007a

  version: 1.2.13+0

  depends_on:

    "Libdl": "8f399da3-3557-5675-b5ff-fb832c97cbdb"

8<-----------------------------------------------------------------------

2. Each dependency is a derivation and transformed into a git repo

8<-----------------------------------------------------------------------

building
'/nix/store/icap989di414ax9zpq1b07ca4szn1v6j-Zlib_jll.jl-866bc71.drv'...

exporting https://github.com/JuliaBinaryWrappers/Zlib_jll.jl.git (rev
866bc7103cfb6233c35d6f1b2c6bd23ef9f6fe5f) into
/nix/store/pi31a0w9xm3qych5yfdw3mg93sxl41rq-Zlib_jll.jl-866bc71

Initialized empty Git repository in
/nix/store/pi31a0w9xm3qych5yfdw3mg93sxl41rq-Zlib_jll.jl-866bc71/.git/

remote: Enumerating objects: 26, done.

remote: Counting objects: 100% (7/7), done.

remote: Compressing objects: 100% (6/6), done.

remote: Total 26 (delta 1), reused 1 (delta 1), pack-reused 19 (from
1)

Unpacking objects: 100% (26/26), 5.55 KiB | 1.85 MiB/s, done.

>From https://github.com/JuliaBinaryWrappers/Zlib_jll.jl

* branch           
866bc7103cfb6233c35d6f1b2c6bd23ef9f6fe5f -> FETCH_HEAD

Switched to a new branch 'fetchgit'

removing `.git'...

8<-----------------------------------------------------------------------

3. Package location are overriden, first into a JSON

8<-----------------------------------------------------------------------

$ cat /nix/store/nf666fq31xz8f7hx9qi9ygicf4hdfx4i-Overrides.json

    "uuid-83775a58-1f1d-513f-b197-d71354ab007a": {

        "Zlib": {

            "path":
"/nix/store/6d4hpjr4f04zq9090kd9kkffa9j2q7gj-Zlib",

            "sha1":
"b86177a36c8ba482120ab766b6670177dffd72f3"

        }

    },

8<-----------------------------------------------------------------------

4. ... then in a TOML

8<-----------------------------------------------------------------------

$ cat /nix/store/gnwl6k320mv0pnb8hpcdww40hypp3i7f-Overrides.toml

b86177a36c8ba482120ab766b6670177dffd72f3 =
"/nix/store/6d4hpjr4f04zq9090kd9kkffa9j2q7gj-Zlib"

8<-----------------------------------------------------------------------

5. A local registry is created. Somewhere, the following code is run

8<-----------------------------------------------------------------------

Pkg.Registry.add(Pkg.RegistrySpec(path=\"/nix/store/p5dy9z5869qnmmawsid5dcy1nqy1k5sn-minimal-julia-registry`.

8<-----------------------------------------------------------------------

The registry looks like this:

8<-----------------------------------------------------------------------

$ tree
/nix/store/p5dy9z5869qnmmawsid5dcy1nqy1k5sn-minimal-julia-registry

├── A

│   ├── ArrowTypes

│   │   ├── Compat.toml

│   │   ├── Deps.toml

│   │   ├── Package.toml

│   │   └── Versions.toml

8<-----------------------------------------------------------------------

with Compat.toml

8<-----------------------------------------------------------------------

["1-1.1"]

julia = "1.3.0-1"

["1.2-2"]

julia = "1"

8<-----------------------------------------------------------------------

with Deps.toml

8<-----------------------------------------------------------------------

[1-2]

UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"

["2.1-2"]

Sockets = "6462fe0b-24de-5631-8697-dd941f90decc"

8<-----------------------------------------------------------------------

with Package.toml

8<-----------------------------------------------------------------------

name = "ArrowTypes"

uuid = "31f734f8-188a-4ce0-8406-c8a06bd891cd"

repo =
"file:///nix/store/ndqz9cikh67hqwxh4l7vji07764p4xpk-julia-ArrowTypes-2.3.0"

subdir = "src/ArrowTypes"

["2.3.0"]

git-tree-sha1 = "404265cd8128a2515a81d5eae16de90fdef05101"

8<-----------------------------------------------------------------------

6. I'm not sure how the registry is used at this step so here the log
output if you can make sense out of it

8<-----------------------------------------------------------------------

Copying registry from
`/nix/store/p5dy9z5869qnmmawsid5dcy1nqy1k5sn-minimal-julia-registry`

Copied registry `General` to
`/nix/store/ap871sp56qx74k4hz2nlnjvpys8pdh7j-julia-depot/depot/registries/General`

Adding packages: CSV

Resolving package versions...

Cloning [e2d170a0-9d28-54be-80f0-106bbe20a464] DataValueInterfaces
from
file:///nix/store/0gdzfghqzs56ilzb9dx239fij4hny9i3-julia-DataValueInterfaces-1.0.0

Installed DataValueInterfaces ───────── v1.0.0

...

Updating
`/nix/store/ap871sp56qx74k4hz2nlnjvpys8pdh7j-julia-depot/project/Project.toml`

[336ed68f] + CSV v0.10.14

Updating
`/nix/store/ap871sp56qx74k4hz2nlnjvpys8pdh7j-julia-depot/project/Manifest.toml`

Removing registry `General` from
/nix/store/ap871sp56qx74k4hz2nlnjvpys8pdh7j-julia-depot/depot/registries/General

building
'/nix/store/0k35snxa68lrkap77s376gqx8ppxr8yn-julia-1.9.4-env.drv'...

8<-----------------------------------------------------------------------

Hope that helps,

Alexis