diff options
Diffstat (limited to 'nixos/modules/apple-silicon-support/packages/asahi-fwextract')
-rw-r--r-- | nixos/modules/apple-silicon-support/packages/asahi-fwextract/add_entry_point.patch | 31 | ||||
-rwxr-xr-x | nixos/modules/apple-silicon-support/packages/asahi-fwextract/default.nix | 36 |
2 files changed, 67 insertions, 0 deletions
diff --git a/nixos/modules/apple-silicon-support/packages/asahi-fwextract/add_entry_point.patch b/nixos/modules/apple-silicon-support/packages/asahi-fwextract/add_entry_point.patch new file mode 100644 index 0000000..3c808fe --- /dev/null +++ b/nixos/modules/apple-silicon-support/packages/asahi-fwextract/add_entry_point.patch @@ -0,0 +1,31 @@ +diff --git a/asahi_firmware/update.py b/asahi_firmware/update.py +index 45f1acf..e87e26e 100644 +--- a/asahi_firmware/update.py ++++ b/asahi_firmware/update.py +@@ -35,7 +35,7 @@ def update_firmware(source, dest): + + pkg.save_manifest(os.path.join(dest, "manifest.txt")) + +-if __name__ == "__main__": ++def main(): + import argparse + import logging + logging.basicConfig() +@@ -49,3 +49,7 @@ if __name__ == "__main__": + args = parser.parse_args() + + update_firmware(args.source, args.dest) ++ ++if __name__ == "__main__": ++ main() ++ +diff --git a/setup.py b/setup.py +index 45ada19..1b371ba 100644 +--- a/setup.py ++++ b/setup.py +@@ -9,4 +9,5 @@ setup(name='asahi_firmware', + author_email='marcan@marcan.st', + url='https://github.com/AsahiLinux/asahi-installer/', + packages=['asahi_firmware'], ++ entry_points={"console_scripts": ["asahi-fwextract = asahi_firmware.update:main"]} + ) diff --git a/nixos/modules/apple-silicon-support/packages/asahi-fwextract/default.nix b/nixos/modules/apple-silicon-support/packages/asahi-fwextract/default.nix new file mode 100755 index 0000000..992d250 --- /dev/null +++ b/nixos/modules/apple-silicon-support/packages/asahi-fwextract/default.nix @@ -0,0 +1,36 @@ +{ lib +, python3 +, fetchFromGitHub +, gzip +, gnutar +, lzfse +}: + +python3.pkgs.buildPythonApplication rec { + pname = "asahi-fwextract"; + version = "0.5pre2"; + + # tracking version: https://github.com/AsahiLinux/PKGBUILDs/blob/main/asahi-fwextract/PKGBUILD + src = fetchFromGitHub { + owner = "AsahiLinux"; + repo = "asahi-installer"; + rev = "v${version}"; + hash = "sha256-p34eN2iE1s8rupdysjyf6GN8kHkVG9NDw31YKPDNXbk="; + }; + + patches = [ + ./add_entry_point.patch + ]; + + postPatch = '' + substituteInPlace asahi_firmware/img4.py \ + --replace 'liblzfse.so' '${lzfse}/lib/liblzfse.so' + substituteInPlace asahi_firmware/update.py \ + --replace '"tar"' '"${gnutar}/bin/tar"' \ + --replace '"xf"' '"-x", "-I", "${gzip}/bin/gzip", "-f"' + ''; + + nativeBuildInputs = [ python3.pkgs.setuptools ]; + + doCheck = false; +} |