diff options
author | github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> | 2021-02-03 18:22:22 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-03 18:22:22 +0000 |
commit | 571eb109965ed3f0629d7a0f07e6885e3faee956 (patch) | |
tree | c82b2dfb90cf0fd36c49e28de071cbc88e555d1a /pkgs/os-specific/darwin | |
parent | b410e1e2ed2f68dbdebe7bd62fe39738649e14a9 (diff) | |
parent | 923c4f0a039cd1336fb09c2346b0d207adffbac5 (diff) | |
download | nixpkgs-571eb109965ed3f0629d7a0f07e6885e3faee956.tar nixpkgs-571eb109965ed3f0629d7a0f07e6885e3faee956.tar.gz nixpkgs-571eb109965ed3f0629d7a0f07e6885e3faee956.tar.bz2 nixpkgs-571eb109965ed3f0629d7a0f07e6885e3faee956.tar.lz nixpkgs-571eb109965ed3f0629d7a0f07e6885e3faee956.tar.xz nixpkgs-571eb109965ed3f0629d7a0f07e6885e3faee956.tar.zst nixpkgs-571eb109965ed3f0629d7a0f07e6885e3faee956.zip |
Merge staging-next into staging
Diffstat (limited to 'pkgs/os-specific/darwin')
-rw-r--r-- | pkgs/os-specific/darwin/impure-cmds/default.nix | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/pkgs/os-specific/darwin/impure-cmds/default.nix b/pkgs/os-specific/darwin/impure-cmds/default.nix new file mode 100644 index 00000000000..51e345f048b --- /dev/null +++ b/pkgs/os-specific/darwin/impure-cmds/default.nix @@ -0,0 +1,34 @@ +{ lib, runCommandLocal }: + +# On darwin, there are some commands neither opensource nor able to build in nixpkgs. +# We have no choice but to use those system-shipped impure ones. + +let + commands = { + ditto = "/usr/bin/ditto"; # ditto is not opensource + sudo = "/usr/bin/sudo"; # sudo must be owned by uid 0 and have the setuid bit set + }; + + mkImpureDrv = name: path: + runCommandLocal "${name}-impure-darwin" { + __impureHostDeps = [ path ]; + + meta = { + platforms = lib.platforms.darwin; + }; + } '' + if ! [ -x ${path} ]; then + echo Cannot find command ${path} + exit 1 + fi + + mkdir -p $out/bin + ln -s ${path} $out/bin + + manpage="/usr/share/man/man1/${name}.1" + if [ -f $manpage ]; then + mkdir -p $out/share/man/man1 + ln -s $manpage $out/share/man/man1 + fi + ''; +in lib.mapAttrs mkImpureDrv commands |