Closed Aehmlo closed 1 year ago
Also reproduce with x86_64-darwin can you update your title
Darwin requires libiconv
as an additional dependency for many packages, but we don't have hydra building the tree on darwin to find them. I also don't have a mac so it's hard for me to work on darwin support. Maybe we could propagate libiconv
in the R
expression on darwin systems. Any thoughts @collares @bcdarwin?
Can you give command to build all R packages so I can see the list of packages that require it maybe the set is small.
Easiest way is probably run the hydra jobset defined at pkgs/top-level/release-r.nix
with x86_64-darwin
set. If you don't have/want a hydra server then you can get a list of derivations to build by using the evaluator out of the hydra
package:
hydra-eval-jobs -I . pkgs/top-level/release-r.nix --arg supportedSystems '["x86_64-darwin"]'
This will dump JSON to stdout containing details about each of the packages, including the derivation path. If you pull out the derivation paths (e.g., with jq -r '.[]|.drvPath
) you can then build them with nix-build
.
Closest package name I found is nix-eval-jobs
and it failed:
$ nix-eval-jobs -I . pkgs/top-level/release-r.nix --arg supportedSystems '["x86_64-darwin"]'
warning: `--gc-roots-dir' not specified
error: value is a set while a Boolean was expected
error: unexpected EOF reading a line
hydra-eval-jobs
is in the hydra_unstable
package.
It is unsupported on Darwin.
Not sure it is useful data, but I've attached the output of the suggested command (with --arg supportedSystems '["x86_64-darwin"]'
) ran on a x86_64-linux
machine. Obviously this won't give you the derivations, but maybe the package names are enough?
packages.json.txt
stderr.log
It require the deriver file 😅I will find a solution, will try to generate a command from name inside builtins.attrNames rPackages
. Still it doesn't block the associated PR.
The first key in the json file I attached is rPackages.A3.x86_64-darwin
, and I can build it by executing nix-build -E 'with (import ./. {}); rPackages.A3'
in the root nixpkgs dir. Hopefully a similar procedure works for all relevant packages without having the .drv
files.
Oh I haven't though to that way. a simpler invocation can be done with nix-build . -A rPackages.A3
or with flakes nix build .#rPackages.A3
nix-repl> :b pkgs.writeScript "file_r.nix" ("{rPackages, stdenv}: stdenv.mkDerivation { name = ''all''; buildInputs = [\n" + builtins.concatStringsSep " " (builtins.map (e: "rPackages.${e}\n") (builtins.attrNames rPackages)) + "];}")
This derivation produced the following outputs:
out -> /nix/store/g28idx91b0hmlaz6z6403qh4gqjxr9k6-file_r.nix
[1 built]
$ cp /nix/store/g28idx91b0hmlaz6z6403qh4gqjxr9k6-file_r.nix all_r_packages.nix.txt
all_r_packages.nix.txt
I removed rPackages.buildRPackage
since it is not a packages.
with the numbers of packages and my disk space I think it won't fit in my disk. Can ofBorg build all those ? if no I will try to do by batch.
Steps To Reproduce
nix-shell -p pkgs.rPackages.deldir
).Build log
Tail (full log):
Additional context
I am actually trying to install
pkgs.rPackages.interp
, of whichdeldir
appears to be a transitive dependency.Notify maintainers
@jbedo (best guess per
git blame
)Metadata