aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix55
1 files changed, 44 insertions, 11 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix b/infra/libkookie/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix
index 761ff3ea9252..032b1447463d 100644
--- a/infra/libkookie/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix
+++ b/infra/libkookie/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix
@@ -1,23 +1,56 @@
-{ appleDerivation }:
+{ appleDerivation, python3 }:
appleDerivation {
- patches = [ ./clang-5.patch ];
+ nativeBuildInputs = [ python3 ];
postPatch = ''
substituteInPlace makefile \
- --replace /usr/bin/ "" \
- --replace '$(ISYSROOT)' "" \
- --replace 'shell xcodebuild -version -sdk' 'shell true' \
- --replace 'shell xcrun -sdk $(SDKPATH) -find' 'shell echo' \
- --replace '-install_name $(libdir)' "-install_name $out/lib/" \
- --replace /usr/local/bin/ /bin/ \
- --replace /usr/lib/ /lib/ \
+ --replace "/usr/bin/" "" \
+ --replace "xcrun --sdk macosx --find" "echo -n" \
+ --replace "xcrun --sdk macosx.internal --show-sdk-path" "echo -n /dev/null" \
+ --replace "-install_name " "-install_name $out"
+
+ substituteInPlace icuSources/config/mh-darwin \
+ --replace "-install_name " "-install_name $out/"
+
+ # drop using impure /var/db/timezone/icutz
+ substituteInPlace makefile \
+ --replace '-DU_TIMEZONE_FILES_DIR=\"\\\"$(TZDATA_LOOKUP_DIR)\\\"\" -DU_TIMEZONE_PACKAGE=\"\\\"$(TZDATA_PACKAGE)\\\"\"' ""
+
+ # FIXME: This will cause `ld: warning: OS version (12.0) too small, changing to 13.0.0`, APPLE should fix it.
+ substituteInPlace makefile \
+ --replace "ZIPPERING_LDFLAGS=-Wl,-iosmac_version_min,12.0" "ZIPPERING_LDFLAGS="
+
+ # skip test for missing encodingSamples data
+ substituteInPlace icuSources/test/cintltst/ucsdetst.c \
+ --replace "&TestMailFilterCSS" "NULL"
+
+ patchShebangs icuSources
'';
- makeFlags = [ "DSTROOT=$(out)" ];
+ # APPLE is using makefile to save its default configuration and call ./configure, so we hack makeFlags
+ # instead of configuring ourself, trying to stay abreast of APPLE.
+ dontConfigure = true;
+ makeFlags = [
+ "DSTROOT=$(out)"
+
+ # remove /usr prefix on include and lib
+ "PRIVATE_HDR_PREFIX="
+ "libdir=/lib/"
+
+ "DATA_INSTALL_DIR=/share/icu/"
+ "DATA_LOOKUP_DIR=$(DSTROOT)$(DATA_INSTALL_DIR)"
+
+ # hack to use our lower macos version
+ "MAC_OS_X_VERSION_MIN_REQUIRED=__MAC_OS_X_VERSION_MIN_REQUIRED"
+ "OSX_HOST_VERSION_MIN_STRING=$(MACOSX_DEPLOYMENT_TARGET)"
+ ];
+
+ doCheck = true;
+ checkTarget = "check";
postInstall = ''
- mv $out/usr/local/include $out/include
+ # we don't need all those in usr/local
rm -rf $out/usr
'';
}