From 5af8f86fbcaf53979a90a094031cefc4268553b6 Mon Sep 17 00:00:00 2001 From: Qiming Chu Date: Sat, 25 Jan 2025 10:31:59 +0800 Subject: [PATCH] [nix] fix add-determinsim and mill-deps building on macOS * bump add-determinism to unstable-2024-11-12 * fix mill-deps building on darwin (The caches dir on darwin is `$TMPDIR/.cache/Coursier`) --- templates/chisel/flake.lock | 6 +- templates/chisel/nix/gcd/gcd.nix | 4 +- .../nix/pkgs/add-determinism/Cargo.lock | 147 +++++++++--------- .../nix/pkgs/add-determinism/default.nix | 13 +- .../nix/pkgs/add-determinism/fix-darwin.patch | 103 ++++++++++++ templates/chisel/nix/pkgs/mill-builder.nix | 4 +- 6 files changed, 195 insertions(+), 82 deletions(-) create mode 100644 templates/chisel/nix/pkgs/add-determinism/fix-darwin.patch diff --git a/templates/chisel/flake.lock b/templates/chisel/flake.lock index c95b909..0a34adb 100644 --- a/templates/chisel/flake.lock +++ b/templates/chisel/flake.lock @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1735834308, - "narHash": "sha256-dklw3AXr3OGO4/XT1Tu3Xz9n/we8GctZZ75ZWVqAVhk=", + "lastModified": 1737469691, + "narHash": "sha256-nmKOgAU48S41dTPIXAq0AHZSehWUn6ZPrUKijHAMmIk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6df24922a1400241dae323af55f30e4318a6ca65", + "rev": "9e4d5190a9482a1fb9d18adf0bdb83c6e506eaab", "type": "github" }, "original": { diff --git a/templates/chisel/nix/gcd/gcd.nix b/templates/chisel/nix/gcd/gcd.nix index 3e6880f..4442dcc 100644 --- a/templates/chisel/nix/gcd/gcd.nix +++ b/templates/chisel/nix/gcd/gcd.nix @@ -24,7 +24,7 @@ let publishMillModule { name = "chisel"; version = "9999"; - outputHash = "sha256-ZJGYxmTg4+8UU3V3MTxBSWow4XYKQ4KuCvD/PBxLSEc="; + outputHash = "sha256-fuorZlUbH+oDt6XGHBqMmOXaRHzZVntRgIln1NeYLeQ="; publishPhase = "mill -i unipublish.publishLocal"; nativeBuildInputs = [ git ]; }; @@ -54,7 +54,7 @@ let fileset = unions [ ./../../build.mill ./../../common.mill ]; }; millDepModules = [ chisel ]; - millDepsHash = "sha256-cPGkRjKc42dcSOXHAW9JAl/AKgwPdl+T8bVPsWCXxpM="; + millDepsHash = "sha256-Vav1Svh06MUNO1KI0XcioxWbhGZnADXa0vOrbWDZI+U="; }; editable = self.overrideAttrs (_: { diff --git a/templates/chisel/nix/pkgs/add-determinism/Cargo.lock b/templates/chisel/nix/pkgs/add-determinism/Cargo.lock index ff36ec7..6073044 100644 --- a/templates/chisel/nix/pkgs/add-determinism/Cargo.lock +++ b/templates/chisel/nix/pkgs/add-determinism/Cargo.lock @@ -4,7 +4,7 @@ version = 3 [[package]] name = "add-determinism" -version = "0.4.1" +version = "0.4.3" dependencies = [ "anyhow", "chrono", @@ -59,9 +59,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -74,43 +74,43 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.89" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" +checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" [[package]] name = "autocfg" @@ -138,9 +138,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "cc" -version = "1.1.30" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16803a61b81d9eabb7eae2588776c4c1e584b738ede45fdbb4c972cec1e9945" +checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" dependencies = [ "shlex", ] @@ -173,9 +173,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.20" +version = "4.5.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" +checksum = "69371e34337c4c984bbe322360c2547210bf632eb2814bbe78a6e87a2935bd2b" dependencies = [ "clap_builder", "clap_derive", @@ -183,9 +183,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.20" +version = "4.5.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" +checksum = "6e24c1b4099818523236a8ca881d2b45db98dadfb4625cf6608c12069fcbbde1" dependencies = [ "anstream", "anstyle", @@ -207,15 +207,15 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "core-foundation-sys" @@ -255,25 +255,25 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "fastrand" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" [[package]] name = "flate2" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", "libz-sys", @@ -355,10 +355,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "a865e038f7f6ed956f788f0d7d60c541fff74c7bd74272c5d4cf15c63743e705" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -373,15 +374,15 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.159" +version = "0.2.167" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" +checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" [[package]] name = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libz-sys" @@ -524,9 +525,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.88" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3a7fc5db1e57d5a779a352c8cdb57b29aa4c40cc69c3a68a7fedc815fbf2f9" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -572,9 +573,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", @@ -584,9 +585,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -601,9 +602,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "rustix" -version = "0.38.37" +version = "0.38.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" dependencies = [ "bitflags", "errno", @@ -623,9 +624,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.210" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] @@ -642,9 +643,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", @@ -677,9 +678,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "2.0.79" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ "proc-macro2", "quote", @@ -688,9 +689,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", "fastrand", @@ -701,18 +702,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.64" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.64" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", @@ -721,9 +722,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.36" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "num-conv", @@ -740,9 +741,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "utf8parse" @@ -774,9 +775,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "d15e63b4482863c109d70a7b8706c1e364eb6ea449b201a76c5b89cedcec2d5c" dependencies = [ "cfg-if", "once_cell", @@ -785,9 +786,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "8d36ef12e3aaca16ddd3f67922bc63e48e953f126de60bd33ccc0101ef9998cd" dependencies = [ "bumpalo", "log", @@ -800,9 +801,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "705440e08b42d3e4b36de7d66c944be628d579796b8090bfa3471478a2260051" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -810,9 +811,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "98c9ae5a76e46f4deecd0f0255cc223cfa18dc9b261213b8aa0c7b36f61b3f1d" dependencies = [ "proc-macro2", "quote", @@ -823,9 +824,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "6ee99da9c5ba11bd675621338ef6fa52296b76b83305e9b6e5c77d4c286d6d49" [[package]] name = "winapi-util" @@ -959,4 +960,4 @@ dependencies = [ "crossbeam-utils", "flate2", "time", -] +] \ No newline at end of file diff --git a/templates/chisel/nix/pkgs/add-determinism/default.nix b/templates/chisel/nix/pkgs/add-determinism/default.nix index 8960607..4b5e13a 100644 --- a/templates/chisel/nix/pkgs/add-determinism/default.nix +++ b/templates/chisel/nix/pkgs/add-determinism/default.nix @@ -7,6 +7,7 @@ , pkg-config , zlib , python3 +, stdenv , cargoLockFile ? ./Cargo.lock , ... }@args: @@ -17,13 +18,13 @@ let in rustPlatform.buildRustPackage { pname = "add-determinism"; - version = "unstable-2024-10-17"; + version = "unstable-2024-11-12"; src = fetchFromGitHub { owner = "keszybz"; repo = "add-determinism"; - rev = "d3748ff2ee13d61aa913d7c1160e9e2274742bad"; - hash = "sha256-IiIxUDYtq4Qcd9hTHsSqZEeETu5Vw3Gh6GxfArxBPG0="; + rev = "aadcc2fc4648ce8c485fdd9c861eb11adb40c344"; + hash = "sha256-AanKDeFLBeLV5oHWiuPWNJirxDqQwKdZ9Szo5A7fVU8="; }; # this project has no Cargo.lock now @@ -31,10 +32,16 @@ rustPlatform.buildRustPackage { lockFile = cargoLockFile; }; + patches = lib.optionals stdenv.hostPlatform.isDarwin [ + ./fix-darwin.patch + ]; + postPatch = '' ln -s ${cargoLockFile} Cargo.lock ''; + doCheck = !stdenv.hostPlatform.isDarwin; # it seems to be running forever on darwin + passthru = { inherit pyEnv marshalparser; }; nativeBuildInputs = [ diff --git a/templates/chisel/nix/pkgs/add-determinism/fix-darwin.patch b/templates/chisel/nix/pkgs/add-determinism/fix-darwin.patch new file mode 100644 index 0000000..c7f89b3 --- /dev/null +++ b/templates/chisel/nix/pkgs/add-determinism/fix-darwin.patch @@ -0,0 +1,103 @@ +diff --git a/src/handlers/mod.rs b/src/handlers/mod.rs +index 4fc2aea..65da055 100644 +--- a/src/handlers/mod.rs ++++ b/src/handlers/mod.rs +@@ -15,13 +15,17 @@ use std::ffi::OsStr; + use std::fs; + use std::fs::{File, Metadata}; + use std::io::{self, Seek}; +-use std::os::linux::fs::MetadataExt as _; + use std::os::unix::fs as unix_fs; + use std::os::unix::fs::MetadataExt as _; + use std::path::{Path, PathBuf}; + use std::rc::Rc; + use thiserror::Error; + ++#[cfg(target_os = "linux")] ++use std::os::linux::fs::MetadataExt as _; ++#[cfg(target_os = "macos")] ++use std::os::macos::fs::MetadataExt as _; ++ + use crate::config; + + #[derive(Error, Debug)] +diff --git a/src/multiprocess.rs b/src/multiprocess.rs +index e1aa7ff..4ab6ce6 100644 +--- a/src/multiprocess.rs ++++ b/src/multiprocess.rs +@@ -76,6 +76,7 @@ impl Controller { + sndbuf = sys::socket::getsockopt(fd, sys::socket::sockopt::SndBuf)?; + debug!("Tried to set socket buffer size to {}, got {}", newsize, sndbuf); + ++ #[cfg(any(target_os = "android", target_os = "linux"))] + if newsize > sndbuf { + if let Err(err) = sys::socket::setsockopt( + fd, +diff --git a/tests/test_handlers/test_ar.rs b/tests/test_handlers/test_ar.rs +index c1d846a..8607eb4 100644 +--- a/tests/test_handlers/test_ar.rs ++++ b/tests/test_handlers/test_ar.rs +@@ -1,8 +1,11 @@ + /* SPDX-License-Identifier: GPL-3.0-or-later */ + + use std::fs; +-use std::os::linux::fs::MetadataExt; + use std::rc::Rc; ++#[cfg(target_os = "linux")] ++use std::os::linux::fs::MetadataExt as _; ++#[cfg(target_os = "macos")] ++use std::os::macos::fs::MetadataExt as _; + + use add_determinism::config; + use add_determinism::handlers; +diff --git a/tests/test_handlers/test_javadoc.rs b/tests/test_handlers/test_javadoc.rs +index 21f865d..c5265f4 100644 +--- a/tests/test_handlers/test_javadoc.rs ++++ b/tests/test_handlers/test_javadoc.rs +@@ -1,7 +1,10 @@ + /* SPDX-License-Identifier: GPL-3.0-or-later */ + + use std::fs; +-use std::os::linux::fs::MetadataExt; ++#[cfg(target_os = "linux")] ++use std::os::linux::fs::MetadataExt as _; ++#[cfg(target_os = "macos")] ++use std::os::macos::fs::MetadataExt as _; + + use add_determinism::handlers; + use add_determinism::handlers::javadoc; +diff --git a/tests/test_handlers/test_pyc.rs b/tests/test_handlers/test_pyc.rs +index d4294a3..0d014d8 100644 +--- a/tests/test_handlers/test_pyc.rs ++++ b/tests/test_handlers/test_pyc.rs +@@ -3,8 +3,11 @@ + use std::io::Read; + use std::fs; + use std::fs::File; +-use std::os::linux::fs::MetadataExt; + use std::path::Path; ++#[cfg(target_os = "linux")] ++use std::os::linux::fs::MetadataExt as _; ++#[cfg(target_os = "macos")] ++use std::os::macos::fs::MetadataExt as _; + + use add_determinism::handlers; + use add_determinism::handlers::pyc; +diff --git a/tests/test_handlers/test_pyc_zero_mtime.rs b/tests/test_handlers/test_pyc_zero_mtime.rs +index d759199..25f9c77 100644 +--- a/tests/test_handlers/test_pyc_zero_mtime.rs ++++ b/tests/test_handlers/test_pyc_zero_mtime.rs +@@ -1,8 +1,12 @@ + /* SPDX-License-Identifier: GPL-3.0-or-later */ + + use std::fs; +-use std::os::linux::fs::MetadataExt; + use std::time; ++#[cfg(target_os = "linux")] ++use std::os::linux::fs::MetadataExt as _; ++#[cfg(target_os = "macos")] ++use std::os::macos::fs::MetadataExt as _; ++ + + use add_determinism::handlers; + use add_determinism::handlers::pyc; \ No newline at end of file diff --git a/templates/chisel/nix/pkgs/mill-builder.nix b/templates/chisel/nix/pkgs/mill-builder.nix index 95e3e63..21a177c 100644 --- a/templates/chisel/nix/pkgs/mill-builder.nix +++ b/templates/chisel/nix/pkgs/mill-builder.nix @@ -7,6 +7,7 @@ let mill-rt-version = lib.head (lib.splitString "+" mill.jre.version); + cachePrefix = if stdenvNoCC.hostPlatform.isDarwin then "Library/Caches/Coursier" else ".cache/coursier"; self = stdenvNoCC.mkDerivation ({ name = "${name}-mill-deps"; inherit src; @@ -40,7 +41,8 @@ let installPhase = '' runHook preInstall mkdir -p $out/.cache $out/.ivy2 - mv $TMPDIR/.cache/coursier $out/.cache/coursier + + mv $TMPDIR/${cachePrefix} $out/.cache/coursier mv $TMPDIR/.ivy2/local $out/.ivy2/local runHook postInstall '';