diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..d2947f5
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,106 @@
+{
+ "nodes": {
+ "acextract": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1556467432,
+ "narHash": "sha256-Yh437j5HLwh+s2qBKo3YruBHSJxqH142LuM/Unf+rV4=",
+ "owner": "bartoszj",
+ "repo": "acextract",
+ "rev": "df3b018d53cd4b684a5f6d63535dcc4156be1a97",
+ "type": "github"
+ },
+ "original": {
+ "owner": "bartoszj",
+ "repo": "acextract",
+ "type": "github"
+ }
+ },
+ "command-line": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1556260068,
+ "narHash": "sha256-3BvUfIbbSsv8AHeg+nEjGVNDbgSOf/P7l6EFo+DvE/I=",
+ "owner": "iHTCboy",
+ "repo": "CommandLine",
+ "rev": "b8209dc17ac1dd0f97ebfbd6a77a0633552626ca",
+ "type": "github"
+ },
+ "original": {
+ "owner": "iHTCboy",
+ "repo": "CommandLine",
+ "type": "github"
+ }
+ },
+ "dyld-shared-cache": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1601538927,
+ "narHash": "sha256-56DevKMzcwN8kAWSKr4qrj9R8WgZVW4RCoktiKKfzR0=",
+ "owner": "antons",
+ "repo": "dyld-shared-cache-big-sur",
+ "rev": "abdd035bdfda33998cc80cd06b625cd99563ca33",
+ "type": "github"
+ },
+ "original": {
+ "owner": "antons",
+ "repo": "dyld-shared-cache-big-sur",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1634662205,
+ "narHash": "sha256-DxlM54z+0p7zpTuo4gVGaBlKjEwieqlyOYwT0M23RC4=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "ef64a9a4fce0f2e482899de68323c27751ba97a3",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "type": "indirect"
+ }
+ },
+ "root": {
+ "inputs": {
+ "acextract": "acextract",
+ "command-line": "command-line",
+ "dyld-shared-cache": "dyld-shared-cache",
+ "nixpkgs": "nixpkgs",
+ "snap-util": "snap-util",
+ "snapshot-header": "snapshot-header"
+ }
+ },
+ "snap-util": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1630855703,
+ "narHash": "sha256-r89y29BL/U6LEWhdLPn1TUvFz4IyEg0FexkD3UNdAUU=",
+ "owner": "ahl",
+ "repo": "apfs",
+ "rev": "1cb945d598534bd3a0e26cae04a626993b5e6941",
+ "type": "github"
+ },
+ "original": {
+ "owner": "ahl",
+ "repo": "apfs",
+ "type": "github"
+ }
+ },
+ "snapshot-header": {
+ "flake": false,
+ "locked": {
+ "narHash": "sha256-Y/DTtpnT8JQZO5Ijr+tW0IrIOuECcJ+ZvFLCgwrFt2M=",
+ "type": "tarball",
+ "url": "https://opensource.apple.com/tarballs/xnu/xnu-6153.141.1.tar.gz"
+ },
+ "original": {
+ "type": "tarball",
+ "url": "https://opensource.apple.com/tarballs/xnu/xnu-6153.141.1.tar.gz"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
index 9d10018..a900f49 100644
--- a/flake.nix
+++ b/flake.nix
@@ -23,77 +23,79 @@
};
};
outputs = { self, nixpkgs, acextract, command-line, dyld-shared-cache, snapshot-header, snap-util }: {
- acextract =
- with import nixpkgs { system = "x86_64-darwin"; };
- let xcode12 = makeSetupHook {
- deps = [ (xcodeenv.composeXcodeWrapper { version = "12.5"; }) ];
- } "${xcbuildHook}/nix-support/setup-hook";
- in stdenv.mkDerivation {
- name = "acextract-${lib.substring 0 8 self.inputs.acextract.lastModifiedDate}";
- src = acextract;
- nativeBuildInputs = [ xcode12 ];
- preBuild = "LD=$CC";
- # FIXME: want to have submodule support for Nix flakes, workaround by explicit instantiation
- postUnpack = "rmdir source/CommandLine ; ln -s ${command-line} source/CommandLine";
- installPhase = ''
- mkdir -p $out/bin
- cp Products/Release/acextract $out/bin/
- '';
- dontStrip = true;
- };
- dyld-shared-cache =
- with import nixpkgs { system = "x86_64-darwin"; };
- stdenv.mkDerivation {
- name = "dyld-shared-cache-util-${lib.substring 0 8 self.inputs.dyld-shared-cache.lastModifiedDate}";
- src = dyld-shared-cache;
- nativeBuildInputs = [ xcbuildHook ];
- xcbuildFlags = [
- "-scheme dyld_shared_cache_util"
- "-configuration Release"
- "GCC_PREPROCESSOR_DEFINITIONS=CC_DIGEST_DEPRECATION_WARNING=\\\"\\\""
- ];
- installPhase = ''
- mkdir -p $out/bin
- cp Products/Release/{dsc_extractor.bundle,dyld_shared_cache_util} $out/bin/
- '';
- };
- snap-util =
- with import nixpkgs { system = "x86_64-darwin"; };
- stdenv.mkDerivation {
- name = "snap-util-${lib.substring 0 8 self.inputs.snap-util.lastModifiedDate}";
- src = snap-util;
- nativeBuildInputs = [ (xcodeenv.composeXcodeWrapper { version = "12.5"; }) ];
- preBuild = "NIX_CFLAGS_COMPILE='-idirafter ${snapshot-header}/bsd'";
- installPhase = ''
- mkdir -p $out/bin
- cp snapUtil $out/bin/.snapUtil-wrapped
- cat > $out/bin/snapUtil <<- EOF
- #!/bin/sh
- if csrutil status | grep -Fq disabled && sysctl kern.bootargs | grep -Fq amfi_get_out_of_my_way ; then
- exec -a ./snapUtil $out/bin/.snapUtil-wrapped "\$@"
- else
- echo 'snapUtil requires SIP and AMFI to be disabled:'
- echo '• boot recovery system'
- echo '• run ‘csrutil disable’'
- echo '• run ‘nvram boot-args=amfi_get_out_of_my_way=0x1’'
- exit 1
- fi
- EOF
- chmod a+x $out/bin/snapUtil
- '';
- postFixup = ''
- cat > snapUtil.entitlements <<- EOF
-
-
-
-
- com.apple.developer.vfs.snapshot
-
-
-
- EOF
- codesign -s - --entitlement snapUtil.entitlements $out/bin/.snapUtil-wrapped
- '';
- };
+ packages.x86_64-darwin = {
+ acextract =
+ with import nixpkgs { system = "x86_64-darwin"; };
+ let xcode = makeSetupHook {
+ deps = [ (xcodeenv.composeXcodeWrapper { version = "13.0"; }) ];
+ } "${xcbuildHook}/nix-support/setup-hook";
+ in stdenv.mkDerivation {
+ name = "acextract-${lib.substring 0 8 self.inputs.acextract.lastModifiedDate}";
+ src = acextract;
+ nativeBuildInputs = [ xcode ];
+ preBuild = "LD=$CC";
+ # FIXME: want to have submodule support for Nix flakes, workaround by explicit instantiation
+ postUnpack = "rmdir source/CommandLine ; ln -s ${command-line} source/CommandLine";
+ installPhase = ''
+ mkdir -p $out/bin
+ cp Products/Release/acextract $out/bin/
+ '';
+ dontStrip = true;
+ };
+ dyld-shared-cache =
+ with import nixpkgs { system = "x86_64-darwin"; };
+ stdenv.mkDerivation {
+ name = "dyld-shared-cache-util-${lib.substring 0 8 self.inputs.dyld-shared-cache.lastModifiedDate}";
+ src = dyld-shared-cache;
+ nativeBuildInputs = [ xcbuildHook ];
+ xcbuildFlags = [
+ "-scheme dyld_shared_cache_util"
+ "-configuration Release"
+ "GCC_PREPROCESSOR_DEFINITIONS=CC_DIGEST_DEPRECATION_WARNING=\\\"\\\""
+ ];
+ installPhase = ''
+ mkdir -p $out/bin
+ cp Products/Release/{dsc_extractor.bundle,dyld_shared_cache_util} $out/bin/
+ '';
+ };
+ snap-util =
+ with import nixpkgs { system = "x86_64-darwin"; };
+ stdenv.mkDerivation {
+ name = "snap-util-${lib.substring 0 8 self.inputs.snap-util.lastModifiedDate}";
+ src = snap-util;
+ nativeBuildInputs = [ (xcodeenv.composeXcodeWrapper { version = "13.0"; }) ];
+ preBuild = "NIX_CFLAGS_COMPILE='-idirafter ${snapshot-header}/bsd'";
+ installPhase = ''
+ mkdir -p $out/bin
+ cp snapUtil $out/bin/.snapUtil-wrapped
+ cat > $out/bin/snapUtil <<- EOF
+ #!/bin/sh
+ if csrutil status | grep -Fq disabled && sysctl kern.bootargs | grep -Fq amfi_get_out_of_my_way ; then
+ exec -a ./snapUtil $out/bin/.snapUtil-wrapped "\$@"
+ else
+ echo 'snapUtil requires SIP and AMFI to be disabled:'
+ echo '• boot recovery system'
+ echo '• run ‘csrutil disable’'
+ echo '• run ‘nvram boot-args=amfi_get_out_of_my_way=0x1’'
+ exit 1
+ fi
+ EOF
+ chmod a+x $out/bin/snapUtil
+ '';
+ postFixup = ''
+ cat > snapUtil.entitlements <<- EOF
+
+
+
+
+ com.apple.developer.vfs.snapshot
+
+
+
+ EOF
+ codesign -s - --entitlement snapUtil.entitlements $out/bin/.snapUtil-wrapped
+ '';
+ };
+ };
};
}