diff --git a/pkgs/development/tools/build-managers/meson/darwin-case-sensitive-fs.patch b/pkgs/development/tools/build-managers/meson/darwin-case-sensitive-fs.patch new file mode 100644 index 0000000000000..2de9484226b12 --- /dev/null +++ b/pkgs/development/tools/build-managers/meson/darwin-case-sensitive-fs.patch @@ -0,0 +1,51 @@ +From 1643ed0d8a9201732905bee51b096605d26aaaac Mon Sep 17 00:00:00 2001 +From: Randy Eckenrode +Date: Fri, 26 May 2023 00:10:45 -0400 +Subject: [PATCH] Fix test failures on Darwin on a case-sensitive fs + +This issue was encounetered while working on a contribution to nixpkgs. +Nix allows the store to be installed on a separate, case-sensitive APFS +volume. When the store is on a case-sensitive volume, these tests fail +because they try to use `foundation` instead of `Foundation`. +--- + .../failing/78 framework dependency with version/meson.build | 2 +- + test cases/objc/2 nsstring/meson.build | 2 +- + test cases/osx/6 multiframework/meson.build | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/test cases/failing/78 framework dependency with version/meson.build b/test cases/failing/78 framework dependency with version/meson.build +index b7e04bab446..ee315ebcbd7 100644 +--- a/test cases/failing/78 framework dependency with version/meson.build ++++ b/test cases/failing/78 framework dependency with version/meson.build +@@ -5,4 +5,4 @@ if host_machine.system() != 'darwin' + endif + + # do individual frameworks have a meaningful version to test? And multiple frameworks might be listed... +-dep = dependency('appleframeworks', modules: 'foundation', version: '>0') ++dep = dependency('appleframeworks', modules: 'Foundation', version: '>0') +diff --git a/test cases/objc/2 nsstring/meson.build b/test cases/objc/2 nsstring/meson.build +index 94d2cf18ab4..2c483d50d68 100644 +--- a/test cases/objc/2 nsstring/meson.build ++++ b/test cases/objc/2 nsstring/meson.build +@@ -1,7 +1,7 @@ + project('nsstring', 'objc') + + if host_machine.system() == 'darwin' +- dep = dependency('appleframeworks', modules : 'foundation') ++ dep = dependency('appleframeworks', modules : 'Foundation') + elif host_machine.system() == 'cygwin' + error('MESON_SKIP_TEST GNUstep is not packaged for Cygwin.') + else +diff --git a/test cases/osx/6 multiframework/meson.build b/test cases/osx/6 multiframework/meson.build +index 28846243b21..57e5d61560b 100644 +--- a/test cases/osx/6 multiframework/meson.build ++++ b/test cases/osx/6 multiframework/meson.build +@@ -4,7 +4,7 @@ project('multiframework', 'objc') + # that causes a build failure when defining two modules. The + # arguments for the latter module overwrote the arguments for + # the first one rather than adding to them. +-cocoa_dep = dependency('appleframeworks', modules : ['AppKit', 'foundation']) ++cocoa_dep = dependency('appleframeworks', modules : ['AppKit', 'Foundation']) + + executable('deptester', + 'main.m', diff --git a/pkgs/development/tools/build-managers/meson/default.nix b/pkgs/development/tools/build-managers/meson/default.nix index f6004285ddb44..3914f65840967 100644 --- a/pkgs/development/tools/build-managers/meson/default.nix +++ b/pkgs/development/tools/build-managers/meson/default.nix @@ -26,6 +26,10 @@ python3.pkgs.buildPythonApplication rec { }; patches = [ + # Fix Meson tests that fail when the Nix store is case-sensitive APFS. + # https://github.com/mesonbuild/meson/pull/11820 + ./darwin-case-sensitive-fs.patch + # Meson is currently inspecting fewer variables than autoconf does, which # makes it harder for us to use setup hooks, etc. Taken from # https://github.com/mesonbuild/meson/pull/6827