From f8c341e54c5fa468885093d760fb40bccffbd17f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliv=C3=A9r=20Falvai?= Date: Sun, 27 Oct 2024 19:43:13 +0100 Subject: [PATCH 1/9] psst: unstable-2024-10-07 -> unstable-2024-10-24 --- pkgs/applications/audio/psst/Cargo.lock | 217 +++++++----------- pkgs/applications/audio/psst/default.nix | 6 +- .../audio/psst/make-build-reproducible.patch | 16 +- 3 files changed, 97 insertions(+), 142 deletions(-) diff --git a/pkgs/applications/audio/psst/Cargo.lock b/pkgs/applications/audio/psst/Cargo.lock index 6ef92630caf9..b8a5524665aa 100644 --- a/pkgs/applications/audio/psst/Cargo.lock +++ b/pkgs/applications/audio/psst/Cargo.lock @@ -49,6 +49,12 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1" +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + [[package]] name = "alsa" version = "0.9.1" @@ -250,7 +256,7 @@ dependencies = [ "futures-lite 2.3.0", "parking", "polling 3.7.3", - "rustix 0.38.35", + "rustix 0.38.37", "slab", "tracing", "windows-sys 0.59.0", @@ -289,7 +295,7 @@ dependencies = [ "cfg-if", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.35", + "rustix 0.38.37", "windows-sys 0.48.0", ] @@ -316,7 +322,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.35", + "rustix 0.38.37", "signal-hook-registry", "slab", "windows-sys 0.59.0", @@ -513,15 +519,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block2" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" -dependencies = [ - "objc2", -] - [[package]] name = "blocking" version = "1.6.1" @@ -1011,24 +1008,24 @@ dependencies = [ ] [[package]] -name = "dirs-next" -version = "1.0.2" +name = "directories" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf36e65a80337bea855cd4ef9b8401ffce06a7baedf2e85ec467b1ac3f6e82b6" +checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" dependencies = [ - "cfg-if", - "dirs-sys-next", + "dirs-sys", ] [[package]] -name = "dirs-sys-next" -version = "0.1.2" +name = "dirs-sys" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" dependencies = [ "libc", + "option-ext", "redox_users", - "winapi", + "windows-sys 0.48.0", ] [[package]] @@ -1365,6 +1362,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" + [[package]] name = "foreign-types" version = "0.3.2" @@ -1389,12 +1392,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fs_extra" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" - [[package]] name = "futf" version = "0.1.5" @@ -2033,6 +2030,17 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +[[package]] +name = "hashbrown" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + [[package]] name = "heck" version = "0.3.3" @@ -2246,9 +2254,9 @@ dependencies = [ [[package]] name = "image" -version = "0.25.2" +version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99314c8a2152b8ddb211f924cdae532d8c5e4c8bb54728e12fff1b0cd5963a10" +checksum = "bc144d44a31d753b02ce64093d532f55ff8dc4ebf2ffb8a63c0dda691385acae" dependencies = [ "bytemuck", "byteorder-lite", @@ -2269,9 +2277,9 @@ dependencies = [ [[package]] name = "image-webp" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79afb8cbee2ef20f59ccd477a218c12a93943d075b492015ecb1bb81f8ee904" +checksum = "e031e8e3d94711a9ccb5d6ea357439ef3dcbed361798bd4071dc4d9793fbe22f" dependencies = [ "byteorder-lite", "quick-error", @@ -2290,7 +2298,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.14.5", ] [[package]] @@ -2573,12 +2581,6 @@ dependencies = [ "libc", ] -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - [[package]] name = "linux-raw-sys" version = "0.3.8" @@ -2617,12 +2619,12 @@ dependencies = [ ] [[package]] -name = "lru-cache" -version = "0.1.2" +name = "lru" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "linked-hash-map", + "hashbrown 0.15.0", ] [[package]] @@ -2936,6 +2938,15 @@ dependencies = [ "syn 2.0.77", ] +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + [[package]] name = "oauth2" version = "4.4.2" @@ -2965,40 +2976,6 @@ dependencies = [ "malloc_buf", ] -[[package]] -name = "objc-sys" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" - -[[package]] -name = "objc2" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" -dependencies = [ - "objc-sys", - "objc2-encode", -] - -[[package]] -name = "objc2-encode" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" - -[[package]] -name = "objc2-foundation" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" -dependencies = [ - "bitflags 2.6.0", - "block2", - "libc", - "objc2", -] - [[package]] name = "object" version = "0.36.4" @@ -3033,9 +3010,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "open" @@ -3048,6 +3025,12 @@ dependencies = [ "pathdiff", ] +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + [[package]] name = "ordered-stream" version = "0.2.0" @@ -3337,15 +3320,6 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" -[[package]] -name = "platform-dirs" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e188d043c1a692985f78b5464853a263f1a27e5bd6322bad3a4078ee3c998a38" -dependencies = [ - "dirs-next", -] - [[package]] name = "png" version = "0.17.13" @@ -3385,7 +3359,7 @@ dependencies = [ "concurrent-queue", "hermit-abi 0.4.0", "pin-project-lite", - "rustix 0.38.35", + "rustix 0.38.37", "tracing", "windows-sys 0.59.0", ] @@ -3510,7 +3484,6 @@ dependencies = [ "aes", "audio_thread_priority", "byteorder", - "chrono", "cpal", "crossbeam-channel", "ctr", @@ -3537,6 +3510,7 @@ dependencies = [ "socks", "symphonia", "tempfile", + "time", "ureq", "url", "windows 0.58.0", @@ -3547,19 +3521,18 @@ name = "psst-gui" version = "0.1.0" dependencies = [ "crossbeam-channel", + "directories", "druid", "druid-enums", "druid-shell", "env_logger", - "fs_extra", - "image 0.25.2", + "image 0.25.4", "itertools 0.13.0", "log", - "lru-cache", + "lru", "once_cell", "open", "parking_lot", - "platform-dirs", "psst-core", "rand", "raw-window-handle", @@ -3573,7 +3546,6 @@ dependencies = [ "time-humanize", "ureq", "url", - "webbrowser", "winres", ] @@ -3765,9 +3737,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.6" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" dependencies = [ "aho-corasick", "memchr", @@ -3777,9 +3749,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", @@ -3788,9 +3760,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" @@ -3838,9 +3810,6 @@ name = "rgb" version = "0.8.50" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" -dependencies = [ - "bytemuck", -] [[package]] name = "ring" @@ -3894,9 +3863,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.35" +version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ "bitflags 2.6.0", "errno", @@ -4034,18 +4003,18 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.209" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.209" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", @@ -4054,9 +4023,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.127" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ "itoa", "memchr", @@ -4474,14 +4443,14 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.12.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" dependencies = [ "cfg-if", "fastrand 2.1.1", "once_cell", - "rustix 0.38.35", + "rustix 0.38.37", "windows-sys 0.59.0", ] @@ -4554,7 +4523,9 @@ checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", + "libc", "num-conv", + "num_threads", "powerfmt", "serde", "time-core", @@ -5079,24 +5050,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webbrowser" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "425ba64c1e13b1c6e8c5d2541c8fac10022ca584f33da781db01b5756aef1f4e" -dependencies = [ - "block2", - "core-foundation", - "home", - "jni", - "log", - "ndk-context", - "objc2", - "objc2-foundation", - "url", - "web-sys", -] - [[package]] name = "webpki-roots" version = "0.25.4" diff --git a/pkgs/applications/audio/psst/default.nix b/pkgs/applications/audio/psst/default.nix index af5b7a51f999..24dad343fc54 100644 --- a/pkgs/applications/audio/psst/default.nix +++ b/pkgs/applications/audio/psst/default.nix @@ -16,13 +16,13 @@ let in rustPlatform.buildRustPackage rec { pname = "psst"; - version = "unstable-2024-10-07"; + version = "unstable-2024-10-24"; src = fetchFromGitHub { owner = "jpochyla"; repo = pname; - rev = "38d1c75d59848c54cb88896a93e05da3c71c7df4"; - hash = "sha256-iMtrZ1Mto3j4lFXI2Sm2R85+m8LpR7V1WoJ3X5JyF60="; + rev = "02923198ba0e27b2b6271340cf57dd8ce109049b"; + hash = "sha256-gEK0yf37eREsI6kCIYTBlkkM6Fnjy0KGnd0XqcawGjU="; }; cargoLock = { diff --git a/pkgs/applications/audio/psst/make-build-reproducible.patch b/pkgs/applications/audio/psst/make-build-reproducible.patch index edaf46af94ab..0e4f3c75a89e 100644 --- a/pkgs/applications/audio/psst/make-build-reproducible.patch +++ b/pkgs/applications/audio/psst/make-build-reproducible.patch @@ -1,20 +1,22 @@ diff --git a/psst-core/build.rs b/psst-core/build.rs deleted file mode 100644 -index cac2c23..0000000 +index 4e899af..0000000 --- a/psst-core/build.rs +++ /dev/null -@@ -1,41 +0,0 @@ +@@ -1,43 +0,0 @@ +-use gix_config::File; -use std::{env, fs, io::Write}; +-use time::OffsetDateTime; - -fn main() { - let outdir = env::var("OUT_DIR").unwrap(); - let outfile = format!("{}/build-time.txt", outdir); - - let mut fh = fs::File::create(outfile).unwrap(); -- write!(fh, r#""{}""#, chrono::Local::now()).ok(); +- let now = OffsetDateTime::now_local().unwrap_or_else(|_| OffsetDateTime::now_utc()); +- write!(fh, r#""{}""#, now).ok(); - -- let git_config = -- gix_config::File::from_git_dir("../.git/".into()).expect("Git Config not found!"); +- let git_config = File::from_git_dir("../.git/".into()).expect("Git Config not found!"); - // Get Git's 'Origin' URL - let mut remote_url = git_config - .raw_value("remote.origin.url") @@ -46,7 +48,7 @@ index cac2c23..0000000 - write!(file, r#""{}""#, remote_url).ok(); -} diff --git a/psst-core/src/lib.rs b/psst-core/src/lib.rs -index 2faa317..7d7501d 100644 +index 2faa317..b890a2d 100644 --- a/psst-core/src/lib.rs +++ b/psst-core/src/lib.rs @@ -2,9 +2,9 @@ @@ -56,7 +58,7 @@ index 2faa317..7d7501d 100644 -pub const GIT_VERSION: &str = git_version!(); -pub const BUILD_TIME: &str = include!(concat!(env!("OUT_DIR"), "/build-time.txt")); -pub const REMOTE_URL: &str = include!(concat!(env!("OUT_DIR"), "/remote-url.txt")); -+pub const GIT_VERSION: &str = "38d1c75d59848c54cb88896a93e05da3c71c7df4"; ++pub const GIT_VERSION: &str = "02923198ba0e27b2b6271340cf57dd8ce109049b"; +pub const BUILD_TIME: &str = "1970-01-01 00:00:00"; +pub const REMOTE_URL: &str = "https://github.com/jpochyla/psst"; From 118b525d1081e4e102bb3a4043036171811db304 Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 28 Oct 2024 20:23:46 +0000 Subject: [PATCH 2/9] cudaPackages.cuda-samples: set `meta.platforms` --- pkgs/development/cuda-modules/cuda-samples/generic.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/cuda-modules/cuda-samples/generic.nix b/pkgs/development/cuda-modules/cuda-samples/generic.nix index ed9c57f3d00c..97e05957d3ed 100644 --- a/pkgs/development/cuda-modules/cuda-samples/generic.nix +++ b/pkgs/development/cuda-modules/cuda-samples/generic.nix @@ -73,6 +73,7 @@ backendStdenv.mkDerivation (finalAttrs: { description = "Samples for CUDA Developers which demonstrates features in CUDA Toolkit"; # CUDA itself is proprietary, but these sample apps are not. license = lib.licenses.bsd3; + platforms = [ "x86_64-linux" ]; maintainers = with lib.maintainers; [ obsidian-systems-maintenance ] ++ lib.teams.cuda.members; }; }) From e06dae43789dd62d06f11b2ed687714cf3d74d86 Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 28 Oct 2024 20:29:23 +0000 Subject: [PATCH 3/9] cudaPackages.cuda-library-samples: set `meta.platforms` --- pkgs/development/cuda-modules/cuda-library-samples/generic.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/cuda-modules/cuda-library-samples/generic.nix b/pkgs/development/cuda-modules/cuda-library-samples/generic.nix index f5d1c250cfca..43d2bece88c9 100644 --- a/pkgs/development/cuda-modules/cuda-library-samples/generic.nix +++ b/pkgs/development/cuda-modules/cuda-library-samples/generic.nix @@ -36,6 +36,7 @@ let cuSPARSE, cuSOLVER, cuFFT, cuRAND, NPP and nvJPEG. ''; license = lib.licenses.bsd3; + platforms = [ "x86_64-linux" ]; maintainers = with lib.maintainers; [ obsidian-systems-maintenance ] ++ lib.teams.cuda.members; }; }; From 8b7ca25150360f6b54193688fab3053cfc98718b Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 28 Oct 2024 23:43:03 +0000 Subject: [PATCH 4/9] phpExtensions.*: use `meta.broken` rather than filtering --- pkgs/top-level/php-packages.nix | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index 74e290052b63..e326c584a525 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -182,7 +182,7 @@ in { meta = { description = "PHP upstream extension: ${name}"; inherit (php.meta) maintainers homepage license; - }; + } // args.meta or { }; })); php = phpPackage; @@ -458,13 +458,6 @@ in { configureFlags = [ "--with-iconv" ]; doCheck = stdenv.hostPlatform.isLinux; } - { - name = "imap"; - buildInputs = [ uwimap openssl pam pcre2 libkrb5 ]; - configureFlags = [ "--with-imap=${uwimap}" "--with-imap-ssl" "--with-kerberos" ]; - # Using version from PECL on new PHP versions. - enable = lib.versionOlder php.version "8.3"; - } { name = "intl"; buildInputs = [ icu73 ]; @@ -560,7 +553,7 @@ in { internalDeps = [ php.extensions.pdo ]; configureFlags = [ "--with-pdo-dblib=${freetds}" ]; # Doesn't seem to work on darwin. - enable = (!stdenv.hostPlatform.isDarwin); + meta.broken = (!stdenv.hostPlatform.isDarwin); doCheck = false; } { @@ -655,7 +648,7 @@ in { buildInputs = [ net-snmp openssl ]; configureFlags = [ "--with-snmp" ]; # net-snmp doesn't build on darwin. - enable = (!stdenv.hostPlatform.isDarwin); + meta.broken = (!stdenv.hostPlatform.isDarwin); doCheck = false; } { @@ -810,6 +803,13 @@ in { "--with-zlib" ]; } + ] ++ lib.optionals (lib.versionOlder php.version "8.3") [ + # Using version from PECL on new PHP versions. + { + name = "imap"; + buildInputs = [ uwimap openssl pam pcre2 libkrb5 ]; + configureFlags = [ "--with-imap=${uwimap}" "--with-imap-ssl" "--with-kerberos" ]; + } ]; # Convert the list of attrs: @@ -818,14 +818,12 @@ in { # [ { name = ; value = ; } ... ] # # which we later use listToAttrs to make all attrs available by name. - # - # Also filter out extensions based on the enable property. namedExtensions = builtins.map (drv: { name = drv.name; - value = mkExtension (builtins.removeAttrs drv [ "enable" ]); + value = mkExtension drv; }) - (builtins.filter (i: i.enable or true) extensionData); + extensionData; # Produce the final attribute set of all extensions defined. in From d6324880a47f3860102b9ba00076bdecdb7252a6 Mon Sep 17 00:00:00 2001 From: Emily Date: Tue, 29 Oct 2024 01:05:16 +0000 Subject: [PATCH 5/9] phpExtensions.*: inherit `meta.platforms` from PHP --- pkgs/top-level/php-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index e326c584a525..d9efe0d90506 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -181,7 +181,7 @@ in { meta = { description = "PHP upstream extension: ${name}"; - inherit (php.meta) maintainers homepage license; + inherit (php.meta) maintainers homepage license platforms; } // args.meta or { }; })); From f594f608dc84a391f8ac547680dd06b76af94d96 Mon Sep 17 00:00:00 2001 From: Emily Date: Tue, 29 Oct 2024 05:21:34 +0000 Subject: [PATCH 6/9] =?UTF-8?q?tests.nixos-functions:=20don=E2=80=99t=20om?= =?UTF-8?q?it=20derivations=20on=20non=E2=80=90Linux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hydra can handle packages that `throw` but not attributes that disappear depending on platform, and it seems okay for evaluation to fail here for non‐Linux platforms. --- pkgs/test/nixos-functions/default.nix | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/pkgs/test/nixos-functions/default.nix b/pkgs/test/nixos-functions/default.nix index bdd5e3c6d8b4..fc9a726570ff 100644 --- a/pkgs/test/nixos-functions/default.nix +++ b/pkgs/test/nixos-functions/default.nix @@ -17,15 +17,13 @@ let versionSuffix = "test"; label = "test"; }; -in lib.optionalAttrs stdenv.hostPlatform.isLinux ( - pkgs.recurseIntoAttrs { +in pkgs.recurseIntoAttrs { - nixos-test = (pkgs.nixos { - system.nixos = dummyVersioning; - boot.loader.grub.enable = false; - fileSystems."/".device = "/dev/null"; - system.stateVersion = lib.trivial.release; - }).toplevel; + nixos-test = (pkgs.nixos { + system.nixos = dummyVersioning; + boot.loader.grub.enable = false; + fileSystems."/".device = "/dev/null"; + system.stateVersion = lib.trivial.release; + }).toplevel; - } -) +} From bf054e513b95f045d15c5fc82aa2fc59811c22a3 Mon Sep 17 00:00:00 2001 From: Emily Date: Tue, 29 Oct 2024 19:09:14 +0000 Subject: [PATCH 7/9] texlivePackages.*: set `meta.{platforms,hydraPlatforms}` --- pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix b/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix index 1356fc325047..ac4375c1960d 100644 --- a/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix +++ b/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix @@ -66,6 +66,11 @@ let ''; # discourage nix-env from matching this package priority = 10; + platforms = lib.platforms.all; + # These create a large number of jobs, which puts load on Hydra + # without any appreciable benefit (as the combined packages already + # cause them all to be built and cached anyway). + hydraPlatforms = [ ]; } // lib.optionalAttrs (args ? shortdesc) { description = args.shortdesc; }; From f28cc72d5d3d2d82f0fcd343910dfd852d203093 Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 28 Oct 2024 15:47:57 +0000 Subject: [PATCH 8/9] release-lib: build packages without `meta.platforms` on all platforms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This was added in to ensure that packages that previously weren’t building at all would get at least one platform’s worth of coverage. However, since most `runCommand` calls don’t explicitly set any `meta` information, this meant that things like `tests.makeWrapper` were only being run for `x86_64-linux`. Since most trivial builder calls should work on all platforms, it doesn’t make much sense for them to be restricted in this way, and we shouldn’t unnecessarily penalize other platforms by treating an empty `meta.platforms` inconsistently with `check-meta`’s maximally‐permissive interpretation. Actual packages that only work on a subset of platforms should, of course, set `meta.platforms` explicitly. --- pkgs/top-level/release-lib.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/release-lib.nix b/pkgs/top-level/release-lib.nix index e27b65dbd49a..41221f8b89f3 100644 --- a/pkgs/top-level/release-lib.nix +++ b/pkgs/top-level/release-lib.nix @@ -169,7 +169,7 @@ let if isDerivation value then value.meta.hydraPlatforms or (subtractLists (value.meta.badPlatforms or []) - (value.meta.platforms or [ "x86_64-linux" ])) + (value.meta.platforms or supportedSystems)) else if value.recurseForDerivations or false || value.recurseForRelease or false then packagePlatforms value else From 9f36206578abde5ab43e512916a2099b290df88a Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 28 Oct 2024 13:32:39 +0000 Subject: [PATCH 9/9] tests.build-environment-info: add more information The user information would have helped diagnose the empty GECOS issue we had with the Hydra Darwin builders recently and the OS information seems generally nice to have. --- pkgs/test/build-environment-info/default.nix | 40 +++++++++++++++++--- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/pkgs/test/build-environment-info/default.nix b/pkgs/test/build-environment-info/default.nix index f0c71d8d1eaf..dce91edbf4d1 100644 --- a/pkgs/test/build-environment-info/default.nix +++ b/pkgs/test/build-environment-info/default.nix @@ -1,11 +1,39 @@ -{ runCommand }: +{ + lib, + stdenv, + runCommand, + getent, + xcbuild, +}: # Prints information about the state of the build environment for # assistance debugging Hydra. Feel free to add anything you would find # useful to this. -runCommand "build-environment-info" { } '' - ulimit -a +runCommand "build-environment-info" + { + nativeBuildInputs = [ getent ] ++ lib.optionals stdenv.buildPlatform.isDarwin [ xcbuild ]; + } + '' + # It’s useful to get more info even if a command fails. + set +e - # Always fail so that this job can easily be restarted. - exit 1 -'' + run() { + echoCmd : "$@" + "$@" + } + + run uname -a + + ${lib.optionalString stdenv.buildPlatform.isDarwin '' + run env SYSTEM_VERSION_COMPAT=0 plutil -p /System/Library/CoreServices/SystemVersion.plist + ''} + + run id + + run getent passwd "$(id -un)" + + run ulimit -a + + # Always fail so that this job can easily be restarted. + run exit 1 + ''