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'...
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.
* 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<-----------------------------------------------------------------------