nixpkgs/pkgs/by-name/m1/m1n1/package.nix
2025-07-28 10:20:16 -07:00

83 lines
1.9 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
imagemagick,
source-code-pro,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "m1n1";
version = "1.4.21";
src = fetchFromGitHub {
owner = "AsahiLinux";
repo = "m1n1";
tag = "v${finalAttrs.version}";
hash = "sha256-0ZnDexY/Sf2TJFfUv/YelCctFJVENffWqBU0r0azD0M=";
};
nativeBuildInputs = [
imagemagick
];
postConfigure = ''
patchShebangs --build font/makefont.sh
FONT_PATH=${source-code-pro}/share/fonts/opentype/SourceCodePro-Bold.otf
rm font/{SourceCodePro-Bold.ttf,font.bin,font_retina.bin}
./font/makefont.sh 8 16 12 $FONT_PATH font/font.bin
./font/makefont.sh 16 32 25 $FONT_PATH font/font_retina.bin
'';
makeFlags = [
"ARCH=${stdenv.cc.targetPrefix}"
"RELEASE=1"
];
enableParallelBuilding = true;
installPhase = ''
runHook preInstall
install -Dm644 build/m1n1.bin -t $out/lib/m1n1/
install -Dm644 3rdparty_licenses/LICENSE.* -t $out/share/doc/m1n1/licenses/
install -Dm644 LICENSE -t $out/share/doc/m1n1/licenses/
runHook postInstall
'';
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Bootloader to bridge the Apple (XNU) boot to Linux boot";
homepage = "https://github.com/AsahiLinux/m1n1";
changelog = "https://github.com/AsahiLinux/m1n1/releases/tag/${finalAttrs.src.tag}";
license = with lib.licenses; [
# m1n1 embeds several libraries, all of which cannot be
# unvendored easily.
# m1n1, minlzma, musl-libc
mit
# libfdt: dual BSD2 and GPL-2-or-later
# tinf: zlib
# arm-trusted-firmware: BSD3
# dlmalloc: CC0
# PDCLib: CC0
# Source Code Pro: OFL1.1
# dwc3: BSD3 and GPL-2-or-later
cc0
ofl
zlib
bsd2
gpl2Plus
bsd3
asl20
];
maintainers = with lib.maintainers; [ normalcea ];
platforms = lib.platforms.aarch64;
};
})