darwin.sourceRelease: add
This function replaces `apple-sdk.sourceRelease`. It is not SDK-specific, but going forward the source releases will be updated together, build with their associated SDK, and rely on cc-wrapper’s support for enforcing availability annotations to ensure they still build and run on all supported versions of macOS.
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
# Returns the raw source from apple-oss-distributions repo.
|
||||
# This is mostly useful for copying private headers needed to build other source releases.
|
||||
#
|
||||
# Note: The source releases are mostly not used to build the SDK. Unless they can be used to build binaries,
|
||||
# they’re not used.
|
||||
|
||||
let
|
||||
lockfile = builtins.fromJSON (builtins.readFile ./versions.json);
|
||||
in
|
||||
|
||||
{ fetchFromGitHub }:
|
||||
|
||||
name:
|
||||
let
|
||||
lockinfo = lockfile.${name};
|
||||
in
|
||||
fetchFromGitHub {
|
||||
owner = "apple-oss-distributions";
|
||||
repo = name;
|
||||
rev = lockinfo.rev or "${name}-${lockinfo.version}";
|
||||
inherit (lockinfo) hash;
|
||||
}
|
||||
// {
|
||||
inherit (lockinfo) version;
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p coreutils curl git gnutar jq moreutils nix
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
if [ ! -v 1 ]; then
|
||||
echo "usage: update-source-releases.sh <macOS version>" >&2
|
||||
echo " <macOS version> Decimal-separated version number." >&2
|
||||
echo " Must correspond to a tag in https://github.com/apple-oss-distributions/distribution-macOS" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
pkgdir=$(dirname "$(realpath "$0")")
|
||||
|
||||
lockfile=$pkgdir/versions.json
|
||||
if [ -e "$lockfile" ]; then
|
||||
echo '{}' > "$lockfile"
|
||||
fi
|
||||
|
||||
workdir=$(mktemp -d)
|
||||
trap 'rm -rf -- "$workdir"' EXIT
|
||||
|
||||
sdkVersion=$1; shift
|
||||
tag="macos-${sdkVersion//.}"
|
||||
|
||||
declare -a packages=(
|
||||
AvailabilityVersions
|
||||
CarbonHeaders
|
||||
CommonCrypto
|
||||
Csu
|
||||
ICU
|
||||
IOAudioFamily
|
||||
IOBDStorageFamily
|
||||
IOCDStorageFamily
|
||||
IODVDStorageFamily
|
||||
IOFWDVComponents
|
||||
IOFireWireAVC
|
||||
IOFireWireFamily
|
||||
IOFireWireSBP2
|
||||
IOFireWireSerialBusProtocolTransport
|
||||
IOGraphics
|
||||
IOHIDFamily
|
||||
IOKitTools
|
||||
IOKitUser
|
||||
IONetworkingFamily
|
||||
IOSerialFamily
|
||||
IOStorageFamily
|
||||
IOUSBFamily
|
||||
Libc
|
||||
Libinfo
|
||||
Libm
|
||||
Libnotify
|
||||
Librpcsvc
|
||||
Libsystem
|
||||
OpenDirectory
|
||||
PowerManagement
|
||||
Security
|
||||
adv_cmds
|
||||
architecture
|
||||
basic_cmds
|
||||
bootstrap_cmds
|
||||
configd
|
||||
copyfile
|
||||
developer_cmds
|
||||
diskdev_cmds
|
||||
doc_cmds
|
||||
dtrace
|
||||
dyld
|
||||
eap8021x
|
||||
file_cmds
|
||||
hfs
|
||||
launchd
|
||||
libclosure
|
||||
libdispatch
|
||||
libffi
|
||||
libiconv
|
||||
libmalloc
|
||||
libpcap
|
||||
libplatform
|
||||
libpthread
|
||||
libresolv
|
||||
libutil
|
||||
mDNSResponder
|
||||
mail_cmds
|
||||
misc_cmds
|
||||
network_cmds
|
||||
objc4
|
||||
patch_cmds
|
||||
ppp
|
||||
remote_cmds
|
||||
removefile
|
||||
shell_cmds
|
||||
system_cmds
|
||||
text_cmds
|
||||
top
|
||||
xnu
|
||||
)
|
||||
|
||||
echo "Locking versions for macOS $sdkVersion using tag '$tag'..."
|
||||
|
||||
pushd "$workdir" > /dev/null
|
||||
|
||||
git clone --branch "$tag" https://github.com/apple-oss-distributions/distribution-macOS.git &> /dev/null
|
||||
cd distribution-macOS
|
||||
|
||||
for package in "${packages[@]}"; do
|
||||
# If the tag exists in `release.json`, use that as an optimization to avoid downloading unnecessarily from Github.
|
||||
packageTag=$(jq -r --arg package "$package" '.projects[] | select(.project == $package) | .tag' release.json)
|
||||
packageCommit=$(git ls-tree -d HEAD "$package" | awk '{print $3}')
|
||||
|
||||
if [ ! -d "$package" ]; then
|
||||
packageCommit=HEAD
|
||||
fi
|
||||
|
||||
# However, sometimes it doesn’t exist. In that case, fall back to cloning the repo and check manually
|
||||
# which tag corresponds to the commit from the submodule.
|
||||
if [ -z "$packageTag" ]; then
|
||||
git clone --no-checkout "https://github.com/apple-oss-distributions/$package.git" ../source &> /dev/null
|
||||
pushd ../source > /dev/null
|
||||
packageTag=$(git tag --points-at "$packageCommit")
|
||||
popd > /dev/null
|
||||
rm -rf ../source
|
||||
fi
|
||||
|
||||
packageVersion=${packageTag##"$package"-}
|
||||
|
||||
curl -OL "https://github.com/apple-oss-distributions/$package/archive/$packageTag.tar.gz" &> /dev/null
|
||||
tar axf "$packageTag.tar.gz"
|
||||
|
||||
packageHash=$(nix --extra-experimental-features nix-command hash path "$package-$packageTag")
|
||||
|
||||
pkgsjson="{\"$package\": {\"version\": \"$packageVersion\", \"hash\": \"$packageHash\"}}"
|
||||
|
||||
echo " - Locking $package to version $packageVersion with hash '$packageHash'"
|
||||
jq --argjson pkg "$pkgsjson" -S '. * $pkg' "$lockfile" | sponge "$lockfile"
|
||||
done
|
||||
|
||||
popd > /dev/null
|
||||
@@ -0,0 +1,282 @@
|
||||
{
|
||||
"AvailabilityVersions": {
|
||||
"hash": "sha256-eQ46qHk4AuHA+hRZq1IG2UtvZr/X2vtlOvi6hnG+FyA=",
|
||||
"version": "151"
|
||||
},
|
||||
"CarbonHeaders": {
|
||||
"hash": "sha256-nIPXnLr21yVnpBhx9K5q3l/nPARA6JL/dED08MeyhP8=",
|
||||
"version": "18.1"
|
||||
},
|
||||
"CommonCrypto": {
|
||||
"hash": "sha256-/VoOR9wJuKnmGE1CWGGXxX8SpmALHnEooNTa3QM+ITc=",
|
||||
"version": "600028.100.1"
|
||||
},
|
||||
"Csu": {
|
||||
"hash": "sha256-l8RI8aiin7ovZuoDh54thDmd/b502w+dtjN5ZoISZBg=",
|
||||
"version": "88"
|
||||
},
|
||||
"ICU": {
|
||||
"hash": "sha256-dIgrTjHcQm8dy2Ku5wNIHuPjHfoV+48TM0PNDDn6ZPk=",
|
||||
"version": "76104.4"
|
||||
},
|
||||
"IOAudioFamily": {
|
||||
"hash": "sha256-VSk3jvsITJugtL67Qt0m4qJ879i7Fj6B/NGBFVCwpiU=",
|
||||
"version": "540.3"
|
||||
},
|
||||
"IOBDStorageFamily": {
|
||||
"hash": "sha256-UgLMsQBe1QLzlbScmPmASBN7VH4YBmNOUX2CEDezjmE=",
|
||||
"version": "22"
|
||||
},
|
||||
"IOCDStorageFamily": {
|
||||
"hash": "sha256-p/2qM5zjXFDRb/DISpEHxQEdvmuLlRGt/Ygc71Yu2rI=",
|
||||
"version": "61"
|
||||
},
|
||||
"IODVDStorageFamily": {
|
||||
"hash": "sha256-1Sa8aZBGNtqJBNHva+YXxET6Wcdm2PgVrTzYT/8qrN4=",
|
||||
"version": "45"
|
||||
},
|
||||
"IOFWDVComponents": {
|
||||
"hash": "sha256-WkfkWnzRupEh20U7vjsTta89clhus6GTkOpXQWXw/bM=",
|
||||
"version": "208"
|
||||
},
|
||||
"IOFireWireAVC": {
|
||||
"hash": "sha256-IUytBKhhCgg0vtI+7q8d5kxpOUgO3tQD7TMy++jrorc=",
|
||||
"version": "431"
|
||||
},
|
||||
"IOFireWireFamily": {
|
||||
"hash": "sha256-W0KOF4hkA7kFOnL1ThAeFU/YlhFVqoqk9uzGjcBppX8=",
|
||||
"version": "487"
|
||||
},
|
||||
"IOFireWireSBP2": {
|
||||
"hash": "sha256-bItnRQIaGUxMyiU0q+4N8e5+jYiDEOUPmsrKhBFXvok=",
|
||||
"version": "445"
|
||||
},
|
||||
"IOFireWireSerialBusProtocolTransport": {
|
||||
"hash": "sha256-P7egeaD9SSa+YyrIRzM44gILKbIL7vezXK3M6q3MBOI=",
|
||||
"version": "260"
|
||||
},
|
||||
"IOGraphics": {
|
||||
"hash": "sha256-Ag37fd3tZJLXLVq1yzHOCWGOYYfwwTkC8hnvNaTEaWg=",
|
||||
"version": "598"
|
||||
},
|
||||
"IOHIDFamily": {
|
||||
"hash": "sha256-fmYTJsquAOBwzsgRmqPyjSJJi1hGcfnMmqLIcTe8W1s=",
|
||||
"version": "2031.100.16"
|
||||
},
|
||||
"IOKitTools": {
|
||||
"hash": "sha256-Oknsvzn4nv77WU7f0WPS446iwR2BM2q4iw46r/qctAE=",
|
||||
"version": "125"
|
||||
},
|
||||
"IOKitUser": {
|
||||
"hash": "sha256-1bqRiLvyr2GQfbWwhXHXXIOtIka9YDw5GbKV6bd2k4k=",
|
||||
"version": "100076.101.1"
|
||||
},
|
||||
"IONetworkingFamily": {
|
||||
"hash": "sha256-J3cLeWKrQ8ypIaqgwRH9eU5JbjEDBVoezj3a2Lvwu5k=",
|
||||
"version": "177"
|
||||
},
|
||||
"IOSerialFamily": {
|
||||
"hash": "sha256-wVS4QTx6MBOS0VrwyCZ3s5Usezwaf8rWzmNnfdDTXTU=",
|
||||
"version": "93"
|
||||
},
|
||||
"IOStorageFamily": {
|
||||
"hash": "sha256-cllpJX11c3CX8zEYdOT2TC63sx7NUAHh33yRHhrG2Ro=",
|
||||
"version": "315"
|
||||
},
|
||||
"IOUSBFamily": {
|
||||
"hash": "sha256-Z0E3TfKP49toYo1Fo9kElRap8CZ+mVDHy5RIexgJTpA=",
|
||||
"version": "630.4.5"
|
||||
},
|
||||
"Libc": {
|
||||
"hash": "sha256-fxBM4KbPwQNVEJl7PCKP+1nUk9Oce/O2+0lVBxyngew=",
|
||||
"version": "1592.100.35"
|
||||
},
|
||||
"Libinfo": {
|
||||
"hash": "sha256-zZr6Mmou8Q+G6/wS+k0k7R+XirB94TNCUGS5dhi96ZE=",
|
||||
"version": "583.0.1"
|
||||
},
|
||||
"Libm": {
|
||||
"hash": "sha256-p4BndAag9d0XSMYWQ+c4myGv5qXbKx5E1VghudSbpTk=",
|
||||
"version": "2026"
|
||||
},
|
||||
"Libnotify": {
|
||||
"hash": "sha256-7X+6S3C7ZOTXJUeDXOOg5EmoZyLZvtE06x3Is0TGgSU=",
|
||||
"version": "317.100.2"
|
||||
},
|
||||
"Librpcsvc": {
|
||||
"hash": "sha256-UWYdCQ9QsBqwM01bWr+igINAHSdSluB/FrOclC5AjTI=",
|
||||
"version": "31"
|
||||
},
|
||||
"Libsystem": {
|
||||
"hash": "sha256-HsItciWrwyXujQ2hwqzv0JKOkkuynXYIqejLAEPJbMc=",
|
||||
"version": "1345.100.2"
|
||||
},
|
||||
"OpenDirectory": {
|
||||
"hash": "sha256-6fSl8PasCZSBfe0ftaePcBuSEO3syb6kK+mfDI6iR7A=",
|
||||
"version": "146"
|
||||
},
|
||||
"PowerManagement": {
|
||||
"hash": "sha256-ssg655SPT7gWnJWDaxambMKCopr+vLPYERW0IMKT0T8=",
|
||||
"version": "1754.140.4"
|
||||
},
|
||||
"Security": {
|
||||
"hash": "sha256-NgTGbaw5JkpboDQpt1fSgUr9NYGS+bIOrEMQX7mLAME=",
|
||||
"version": "61123.100.169"
|
||||
},
|
||||
"adv_cmds": {
|
||||
"hash": "sha256-O+SB8sj3yqPv7GEBQQgvq+Y7kQRZI/i/UVa17J/OhZM=",
|
||||
"version": "235"
|
||||
},
|
||||
"architecture": {
|
||||
"hash": "sha256-PRNUrhzSOrwmxSPkKmV0LV7yEIik65sdkfKdBqcwFhU=",
|
||||
"version": "282"
|
||||
},
|
||||
"basic_cmds": {
|
||||
"hash": "sha256-RQve2GqS9ke9hd8kupRMgoOKalTS229asi5tBGrBmS8=",
|
||||
"version": "70"
|
||||
},
|
||||
"bootstrap_cmds": {
|
||||
"hash": "sha256-6JG0sysgqLlgcpIOXfN+F0/gxpIIHZZ5et3gmDBoBGQ=",
|
||||
"version": "138"
|
||||
},
|
||||
"configd": {
|
||||
"hash": "sha256-+3xesYxqfsNjWCW3T87OA7+Z1hBqmGEh/I8kP8Ajbso=",
|
||||
"version": "1300.100.9"
|
||||
},
|
||||
"copyfile": {
|
||||
"hash": "sha256-hIHlY0prIFY0j8z0Hvlv2psrwLj41jYfKBM0KutLxew=",
|
||||
"version": "224"
|
||||
},
|
||||
"developer_cmds": {
|
||||
"hash": "sha256-jgQUjN9zmqi0/7XpqzbRsJjZIYeMrxXT1Zf3qi7+o+8=",
|
||||
"version": "83"
|
||||
},
|
||||
"diskdev_cmds": {
|
||||
"hash": "sha256-TD/sJkzIquTgq1zP/B7eBArxeTcp1Lqa8e8cJ1jnkHU=",
|
||||
"version": "737.140.4"
|
||||
},
|
||||
"doc_cmds": {
|
||||
"hash": "sha256-nnwKXKKjgJXcLCArD38Dme2L1WyR1U0rwn7zI+NCftw=",
|
||||
"version": "69"
|
||||
},
|
||||
"dtrace": {
|
||||
"hash": "sha256-04Q35rCKnM5Csv5poFJKpK0VplWq4hvy251/Cb2Kl80=",
|
||||
"version": "401.100.3"
|
||||
},
|
||||
"dyld": {
|
||||
"hash": "sha256-pbpSD5OeSMOcMJFAd7kyLINPROjqsafsCSphVGyIPyg=",
|
||||
"version": "1286.10"
|
||||
},
|
||||
"eap8021x": {
|
||||
"hash": "sha256-Ky6KSlJhyX1NRufGhVBcp+ZFmqYrAxwC/5QvJhC2PhU=",
|
||||
"version": "354.100.3"
|
||||
},
|
||||
"file_cmds": {
|
||||
"hash": "sha256-Rf/XA6uEaj7Wps2s8Oc/OhQVBjz8XiqJlj+cxjiQfQU=",
|
||||
"version": "457.140.3"
|
||||
},
|
||||
"hfs": {
|
||||
"hash": "sha256-+YUVOttZU7C8I14CC6t3ZH2KxAjjTA2nB0y5bPgLxZM=",
|
||||
"version": "650.0.2"
|
||||
},
|
||||
"launchd": {
|
||||
"hash": "sha256-8mW9bnuHmRXCx9py8Wy28C5b2QPICW0rlAps5njYa00=",
|
||||
"version": "842.1.4"
|
||||
},
|
||||
"libclosure": {
|
||||
"hash": "sha256-M/jnIHzKYvdFCO0tJ1JXiD/UcZtJhLIoulaCQQUbn30=",
|
||||
"version": "90"
|
||||
},
|
||||
"libdispatch": {
|
||||
"hash": "sha256-igqIA5DMVHjG30WMHZZpYY7LRM9hZyMWItD+UxeTehY=",
|
||||
"version": "1477.100.9"
|
||||
},
|
||||
"libffi": {
|
||||
"hash": "sha256-xHefZVsZg9kUXV0t/HLdjPkkD/hn/4bvdRVJ4PsQLeM=",
|
||||
"version": "40"
|
||||
},
|
||||
"libiconv": {
|
||||
"hash": "sha256-50DC6LePtvdAh9FLa/esiwCUmYDxKofN6hCiv9+dmgQ=",
|
||||
"version": "109.100.2"
|
||||
},
|
||||
"libmalloc": {
|
||||
"hash": "sha256-Sh4/z7lGWRMldOPURkP5vLOAb5Ou6AUsVJEWz9wk9hI=",
|
||||
"version": "521.100.59"
|
||||
},
|
||||
"libpcap": {
|
||||
"hash": "sha256-DqINoombdui5N6lNHcZ07c7LrVum4f8fFK89ymdCd0c=",
|
||||
"version": "140"
|
||||
},
|
||||
"libplatform": {
|
||||
"hash": "sha256-gojt3sWOr7XO2yYI/B1CmNLTPFieSfoNtlOgQahOCok=",
|
||||
"version": "316.100.10"
|
||||
},
|
||||
"libpthread": {
|
||||
"hash": "sha256-phjfN8+IU8ibPsflR6LktnSi3giy89ghI+cFyrhiQNo=",
|
||||
"version": "519.101.1"
|
||||
},
|
||||
"libresolv": {
|
||||
"hash": "sha256-GtPVlL1mD58um5hOFd3HQKQ7pqutBe9jZKgQw8pOkPE=",
|
||||
"version": "91"
|
||||
},
|
||||
"libutil": {
|
||||
"hash": "sha256-tUsl22Z0HUVSkSoohFXkhicNFCW+RARvpTS0q6yaQFk=",
|
||||
"version": "72"
|
||||
},
|
||||
"mDNSResponder": {
|
||||
"hash": "sha256-0ECbWeMnIRTsi03BeBEe5boyR/84JJPbxzPQze8hHSA=",
|
||||
"version": "2200.100.94.0.2"
|
||||
},
|
||||
"mail_cmds": {
|
||||
"hash": "sha256-ET1nga9nwgBtN7fuvsPs1yqe5OhQ62PVl7LxqbsAPqU=",
|
||||
"version": "38.0.1"
|
||||
},
|
||||
"misc_cmds": {
|
||||
"hash": "sha256-04uBS16nNrg73Fqh4Obev7nQDjTTlY4f5+pEv3i0FIU=",
|
||||
"version": "45"
|
||||
},
|
||||
"network_cmds": {
|
||||
"hash": "sha256-sfZX6aA8mspfRKARIYFXX+bmlLHDoi485HQOvbRNP1Y=",
|
||||
"version": "705.100.5"
|
||||
},
|
||||
"objc4": {
|
||||
"hash": "sha256-eUVSpbyTEOMEdHoxSv6lZIZwB+cW/YWIaTZTcHgGOjo=",
|
||||
"version": "912.3"
|
||||
},
|
||||
"patch_cmds": {
|
||||
"hash": "sha256-fDY2NOT3DnU5pm06cHSs+JJcA/EFP8Lxjg7sErUerJ0=",
|
||||
"version": "72"
|
||||
},
|
||||
"ppp": {
|
||||
"hash": "sha256-8+QUA79sHf85yvGSPE9qCmGsrZDT3NZnbgZVroJw/Hg=",
|
||||
"version": "1016"
|
||||
},
|
||||
"remote_cmds": {
|
||||
"hash": "sha256-8c/NgQZ+K6jJ3aoYK78/BsEkM1gmRS+9z0437+SvcCw=",
|
||||
"version": "306"
|
||||
},
|
||||
"removefile": {
|
||||
"hash": "sha256-Z5UD0mk/s80CQB0PZWDzSl2JWXmnVmwUvlNb28+hR3k=",
|
||||
"version": "81"
|
||||
},
|
||||
"shell_cmds": {
|
||||
"hash": "sha256-hoMssbZCrmzyJTgEAzOS4L7DhY9z/yXIcvHRhL6W5qc=",
|
||||
"version": "326"
|
||||
},
|
||||
"system_cmds": {
|
||||
"hash": "sha256-mEo+v0m+aP42XHHwibGKPkT55JFYLTOD5YT5IYQ8Hr0=",
|
||||
"version": "1026.140.2"
|
||||
},
|
||||
"text_cmds": {
|
||||
"hash": "sha256-5BBH/v1mJpExz65VDX6oh3dFCz49E+JMqJxkO96Y/xo=",
|
||||
"version": "195"
|
||||
},
|
||||
"top": {
|
||||
"hash": "sha256-e+k/jE49BMZZ24ge9JCa2ct5f1og6ewWb6U5ZMWdIEc=",
|
||||
"version": "139.40.2"
|
||||
},
|
||||
"xnu": {
|
||||
"hash": "sha256-j5Ep1RX5DTJqTGszrF4d/JtzUqZ6nA6XoExqcIQ0RVQ=",
|
||||
"version": "10063.101.15"
|
||||
}
|
||||
}
|
||||
@@ -95,6 +95,8 @@ makeScopeWithSplicing' {
|
||||
bintools = self.binutilsDualAs-unwrapped;
|
||||
};
|
||||
|
||||
sourceRelease = self.callPackage ../os-specific/darwin/sourceRelease { };
|
||||
|
||||
inherit (self.file_cmds) xattr;
|
||||
|
||||
# Note: Not in `packages.nix` because it’s a package set not a derivation.
|
||||
|
||||
Reference in New Issue
Block a user