diff --git a/pkgs/by-name/dt/dtbloader/package.nix b/pkgs/by-name/dt/dtbloader/package.nix new file mode 100644 index 000000000000..e2d559a40637 --- /dev/null +++ b/pkgs/by-name/dt/dtbloader/package.nix @@ -0,0 +1,62 @@ +{ + lib, + stdenv, + fetchFromGitHub, + llvmPackages, + nix-update-script, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "dtbloader"; + version = "1.2.2"; + + src = fetchFromGitHub { + owner = "TravMurav"; + repo = "dtbloader"; + tag = finalAttrs.version; + hash = "sha256-5Efxi0cojhq9mqB5VMShXx/Sp4CE6Cvr1pcwnUm5zlo="; + fetchSubmodules = true; + }; + + nativeBuildInputs = with llvmPackages; [ + clang + lld + llvm + ]; + + # Disable hardening which adds incompatible flags like -fPIC + hardeningDisable = [ "all" ]; + + buildPhase = '' + make -j$NIX_BUILD_CORES + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/dtbloader/efi + cp build-aarch64/dtbloader.efi $out/share/dtbloader/efi/ + + mkdir -p $out/share/doc/dtbloader + cp README.md $out/share/doc/dtbloader/ + + runHook postInstall + ''; + + passthru = { + updateScript = nix-update-script { }; + }; + + meta = { + description = "EFI driver that finds and installs DeviceTree into the UEFI configuration table"; + homepage = "https://github.com/TravMurav/dtbloader"; + changelog = "https://github.com/TravMurav/dtbloader/releases/tag/${finalAttrs.version}"; + license = lib.licenses.bsd3; + platforms = [ + # EFI file only works on aarch64 platforms + "aarch64-linux" + ]; + maintainers = with lib.maintainers; [ liberodark ]; + mainProgram = "dtbloader.efi"; + }; +})