aboutsummaryrefslogtreecommitdiff
path: root/nixos/modules/apple-silicon-support/packages/m1n1
diff options
context:
space:
mode:
authorsefidel <contact@sefidel.net>2023-02-15 14:32:53 +0900
committersefidel <contact@sefidel.net>2023-02-15 15:26:43 +0900
commit08d7136a2e3150dd898cf2d2d3756801dfb407bd (patch)
treea43164886b2238b070f12f004d1ae0ecf56a77ac /nixos/modules/apple-silicon-support/packages/m1n1
parentf8d602464b299533806e72986a846d2d8025482e (diff)
downloadnixrc-08d7136a2e3150dd898cf2d2d3756801dfb407bd.zip
feat(nixos/kompakt): use flakes for asahi-related dependencies
Imports are done directly inside the system configuration file to ensure one doesn't forget to import the required modules.
Diffstat (limited to 'nixos/modules/apple-silicon-support/packages/m1n1')
-rw-r--r--nixos/modules/apple-silicon-support/packages/m1n1/default.nix100
1 files changed, 0 insertions, 100 deletions
diff --git a/nixos/modules/apple-silicon-support/packages/m1n1/default.nix b/nixos/modules/apple-silicon-support/packages/m1n1/default.nix
deleted file mode 100644
index ee5450f..0000000
--- a/nixos/modules/apple-silicon-support/packages/m1n1/default.nix
+++ /dev/null
@@ -1,100 +0,0 @@
-{ stdenv
-, buildPackages
-, lib
-, fetchFromGitHub
-, python3
-, dtc
-, imagemagick
-, isRelease ? false
-, withTools ? true
-, withChainloading ? false
-, rust-bin ? null
-, customLogo ? null
-}:
-
-assert withChainloading -> rust-bin != null;
-
-let
- pyenv = python3.withPackages (p: with p; [
- construct
- pyserial
- ]);
-
- rustenv = rust-bin.selectLatestNightlyWith (toolchain: toolchain.minimal.override {
- targets = [ "aarch64-unknown-none-softfloat" ];
- });
-in stdenv.mkDerivation rec {
- pname = "m1n1";
- version = "1.2.3";
-
- src = fetchFromGitHub {
- # tracking: https://github.com/AsahiLinux/PKGBUILDs/blob/stable/m1n1/PKGBUILD
- owner = "AsahiLinux";
- repo = "m1n1";
- rev = "v${version}";
- hash = "sha256-HEhsg3/OkMvAHvu16VFun87SNBPin69CL6XllE7sb4g=";
- fetchSubmodules = true;
- };
-
- makeFlags = [ "ARCH=${stdenv.cc.targetPrefix}" ]
- ++ lib.optional isRelease "RELEASE=1"
- ++ lib.optional withChainloading "CHAINLOADING=1";
-
- nativeBuildInputs = [
- dtc
- buildPackages.gcc
- ] ++ lib.optional withChainloading rustenv
- ++ lib.optional (customLogo != null) imagemagick;
-
- postPatch = ''
- substituteInPlace proxyclient/m1n1/asm.py \
- --replace 'aarch64-linux-gnu-' 'aarch64-unknown-linux-gnu-' \
- --replace 'TOOLCHAIN = ""' 'TOOLCHAIN = "'$out'/toolchain-bin/"'
- '';
-
- preConfigure = lib.optionalString (customLogo != null) ''
- pushd data &>/dev/null
- ln -fs ${customLogo} bootlogo_256.png
- if [[ "$(magick identify bootlogo_256.png)" != 'bootlogo_256.png PNG 256x256'* ]]; then
- echo "Custom logo is not a 256x256 PNG"
- exit 1
- fi
-
- rm bootlogo_128.png
- convert bootlogo_256.png -resize 128x128 bootlogo_128.png
- ./makelogo.sh
- popd &>/dev/null
- '';
-
- installPhase = ''
- runHook preInstall
-
- mkdir -p $out/build
- cp build/m1n1.bin $out/build
- '' + (lib.optionalString withTools ''
- mkdir -p $out/{bin,script,toolchain-bin}
- cp -r proxyclient $out/script
- cp -r tools $out/script
-
- for toolpath in $out/script/proxyclient/tools/*.py; do
- tool=$(basename $toolpath .py)
- script=$out/bin/m1n1-$tool
- cat > $script <<EOF
-#!/bin/sh
-${pyenv}/bin/python $toolpath "\$@"
-EOF
- chmod +x $script
- done
-
- GCC=${buildPackages.gcc}
- BINUTILS=${buildPackages.binutils-unwrapped}
-
- ln -s $GCC/bin/${stdenv.cc.targetPrefix}gcc $out/toolchain-bin/
- ln -s $GCC/bin/${stdenv.cc.targetPrefix}ld $out/toolchain-bin/
- ln -s $BINUTILS/bin/${stdenv.cc.targetPrefix}objcopy $out/toolchain-bin/
- ln -s $BINUTILS/bin/${stdenv.cc.targetPrefix}objdump $out/toolchain-bin/
- ln -s $GCC/bin/${stdenv.cc.targetPrefix}nm $out/toolchain-bin/
- '') + ''
- runHook postInstall
- '';
-}