mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-18 18:14:42 +00:00
Libsystem
: fix broken postFetch
step in darling.src
Fixes #297765 The `postFetch` step was broken in several ways: 1. It attempts to unpack the archive, but this has already been done before reaching this step. 2. It unpacks the file `$downloadedFile`, but this file no longer exists because it's been moved to `$renamed`. Additionally, since (1) neither directory `src/opendirectory` nor `src/OpenDirectory` are used for anything, and (2) it's not clear whether Nix produces different hashes depending on file system case sensitivity, the chosen solution is to just remove both these two directories for now. If later a file from either directory is needed, an investigation needs to be done on how Nix hashes archives with clashing names on case insensitive file systems.
This commit is contained in:
parent
e5bc6d679f
commit
4f911a7247
@ -10,24 +10,13 @@
|
||||
let
|
||||
darling.src = fetchzip {
|
||||
url = "https://github.com/darlinghq/darling/archive/d2cc5fa748003aaa70ad4180fff0a9a85dc65e9b.tar.gz";
|
||||
sha256 = "11b51fw47nl505h63bgx5kqiyhf3glhp1q6jkpb6nqfislnzzkrf";
|
||||
hash = "sha256-/YynrKJdi26Xj4lvp5wsN+TAhZjonOrNNHuk4L5tC7s=";
|
||||
postFetch = ''
|
||||
# The archive contains both `src/opendirectory` and `src/OpenDirectory`,
|
||||
# pre-create the directory to choose the canonical case on
|
||||
# case-insensitive filesystems.
|
||||
mkdir -p $out/src/OpenDirectory
|
||||
|
||||
cd $out
|
||||
tar -xzf $downloadedFile --strip-components=1
|
||||
rm -r $out/src/libm
|
||||
|
||||
# If `src/opendirectory` and `src/OpenDirectory` refer to different
|
||||
# things, then combine them into `src/OpenDirectory` to match the result
|
||||
# on case-insensitive filesystems.
|
||||
if [ "$(stat -c %i src/opendirectory)" != "$(stat -c %i src/OpenDirectory)" ]; then
|
||||
mv src/opendirectory/* src/OpenDirectory/
|
||||
rmdir src/opendirectory
|
||||
fi
|
||||
# The archive contains both `src/opendirectory` and `src/OpenDirectory`.
|
||||
# Since neither directory is used for anything, we just remove them to avoid
|
||||
# the potential issue where file systems with different case sensitivity produce
|
||||
# different hashes.
|
||||
rm -rf $out/src/{OpenDirectory,opendirectory}
|
||||
'';
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user