about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMaciej Krüger <mkg20001@gmail.com>2024-03-24 00:06:38 +0100
committerGitHub <noreply@github.com>2024-03-24 00:06:38 +0100
commit7fddf12bad77fce1067364d0ddd6ce0ca99f22c0 (patch)
treea57e14530106fb767e5f6c6260247ed51d3ad6c0
parent0a60623ed8411311b2e44e066dc4a540a72ef40c (diff)
parente8b29f4c394cca6111790ad68ef72d8203955c72 (diff)
downloadnixlib-7fddf12bad77fce1067364d0ddd6ce0ca99f22c0.tar
nixlib-7fddf12bad77fce1067364d0ddd6ce0ca99f22c0.tar.gz
nixlib-7fddf12bad77fce1067364d0ddd6ce0ca99f22c0.tar.bz2
nixlib-7fddf12bad77fce1067364d0ddd6ce0ca99f22c0.tar.lz
nixlib-7fddf12bad77fce1067364d0ddd6ce0ca99f22c0.tar.xz
nixlib-7fddf12bad77fce1067364d0ddd6ce0ca99f22c0.tar.zst
nixlib-7fddf12bad77fce1067364d0ddd6ce0ca99f22c0.zip
Merge pull request #294997 from chewblacka/fix-refind
refind: add runtime dependencies
-rw-r--r--pkgs/tools/bootloaders/refind/default.nix32
1 files changed, 21 insertions, 11 deletions
diff --git a/pkgs/tools/bootloaders/refind/default.nix b/pkgs/tools/bootloaders/refind/default.nix
index de2399adb520..1a0b333b70a7 100644
--- a/pkgs/tools/bootloaders/refind/default.nix
+++ b/pkgs/tools/bootloaders/refind/default.nix
@@ -1,4 +1,13 @@
-{ lib, stdenv, fetchurl, fetchpatch, gnu-efi, nixosTests }:
+{ lib
+, stdenv
+, fetchurl
+, gnu-efi
+, nixosTests
+, efibootmgr
+, openssl
+, sbsigntool
+, makeWrapper
+}:
 
 let
   archids = {
@@ -17,7 +26,7 @@ stdenv.mkDerivation rec {
   version = "0.14.0.2";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/refind/${version}/${pname}-src-${version}.tar.gz";
+    url = "mirror://sourceforge/project/refind/${version}/refind-src-${version}.tar.gz";
     hash = "sha256-JqDFXf01ZUmeH4LY/ldGTb7xnKiGzm0BqBUii478iw8=";
   };
 
@@ -26,6 +35,7 @@ stdenv.mkDerivation rec {
     ./0001-toolchain.patch
   ];
 
+  nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ gnu-efi ];
 
   hardeningDisable = [ "stackprotector" ];
@@ -95,18 +105,18 @@ stdenv.mkDerivation rec {
     install -D -m0644 keys/* $out/share/refind/keys/
 
     # Fix variable definition of 'RefindDir' which is used to locate ressource files.
-    sed -i "s,\bRefindDir=.*,RefindDir=$out/share/refind,g" $out/bin/refind-install
-
-    # Patch uses of `which`.  We could patch in calls to efibootmgr,
-    # openssl, convert, and openssl, but that would greatly enlarge
-    # refind's closure (from ca 28MB to over 400MB).
-    sed -i 's,`which \(.*\)`,`type -p \1`,g' $out/bin/refind-install
-    sed -i 's,`which \(.*\)`,`type -p \1`,g' $out/bin/refind-mvrefind
-    sed -i 's,`which \(.*\)`,`type -p \1`,g' $out/bin/refind-mkfont
+    sed -i "s,\bRefindDir=\"\$This.*,RefindDir=$out/share/refind,g" $out/bin/refind-install
 
     runHook postInstall
   '';
 
+  postInstall = ''
+    wrapProgram $out/bin/refind-install \
+      --prefix PATH : ${lib.makeBinPath [ efibootmgr openssl sbsigntool ]}
+    wrapProgram $out/bin/refind-mvrefind \
+      --prefix PATH : ${lib.makeBinPath [ efibootmgr ]}
+  '';
+
   passthru.tests = {
     uefiCdrom = nixosTests.boot.uefiCdrom;
   };
@@ -129,7 +139,7 @@ stdenv.mkDerivation rec {
       Linux kernels that provide EFI stub support.
     '';
     homepage = "http://refind.sourceforge.net/";
-    maintainers = with maintainers; [ AndersonTorres samueldr ];
+    maintainers = with maintainers; [ AndersonTorres samueldr chewblacka ];
     platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
     license = licenses.gpl3Plus;
   };