Skip to content

Commit

Permalink
uefitoolPackages.new-engine: A62 -> A68
Browse files Browse the repository at this point in the history
This commit upgrades uefiToolPackages.new-engine to the latest version
as of writing. Version A68 is now using Qt6 and no longer comes with
a custom build script, so the build logic compared to the old-engine
variant has become sufficiently divergent that I decided that it would
be easier to split them into two entirely different derivations.

Additionally, I:

- added myself as a maintainer
- added a patch that allows the new-engine variant to build on Darwin
- correctly set `mainProgram` in the old-engine variant
  • Loading branch information
athre0z committed May 19, 2024
1 parent 8036f1f commit 86be174
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 24 deletions.
17 changes: 17 additions & 0 deletions pkgs/tools/system/uefitool/bundle-destination.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
UEFITool/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/UEFITool/CMakeLists.txt b/UEFITool/CMakeLists.txt
index aef60d0..98723ac 100644
--- a/UEFITool/CMakeLists.txt
+++ b/UEFITool/CMakeLists.txt
@@ -143,4 +143,4 @@ IF(UNIX AND (NOT APPLE) AND (NOT CYGWIN))
INSTALL(FILES uefitool.desktop DESTINATION share/applications)
ENDIF()

-INSTALL(TARGETS UEFITool BUNDLE DESTINATION "/Applications" )
+INSTALL(TARGETS UEFITool BUNDLE DESTINATION "Applications" )
--
2.40.1

25 changes: 25 additions & 0 deletions pkgs/tools/system/uefitool/new-engine.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{ lib, stdenv, fetchFromGitHub, qtbase, cmake, wrapQtAppsHook, zip }:

stdenv.mkDerivation rec {
pname = "uefitool";
version = "A68";

src = fetchFromGitHub {
sha256 = "fGeqY0mzMFflEJv/d6J8DpGS7YXiX5FRYG6yTdy+ksY=";
owner = "LongSoft";
repo = pname;
rev = version;
};

buildInputs = [ qtbase ];
nativeBuildInputs = [ cmake zip wrapQtAppsHook ];
patches = lib.optionals stdenv.isDarwin [ ./bundle-destination.patch ];

meta = with lib; {
description = "UEFI firmware image viewer and editor";
homepage = "https://github.com/LongSoft/uefitool";
license = licenses.bsd2;
maintainers = with maintainers; [ athre0z ];
platforms = platforms.linux ++ platforms.darwin;
};
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@
{ version, sha256, installFiles }:
{ lib, mkDerivation, fetchFromGitHub, qtbase, qmake, cmake, zip }:

mkDerivation rec {
passthru = {
inherit version;
inherit sha256;
inherit installFiles;
};
pname = "uefitool";
inherit version;
version = "0.28.0";

src = fetchFromGitHub {
inherit sha256;
sha256 = "1n2hd2dysi5bv2iyq40phh1jxc48gdwzs414vfbxvcharcwapnja";
owner = "LongSoft";
repo = pname;
rev = version;
Expand All @@ -27,15 +21,16 @@ mkDerivation rec {

installPhase = ''
mkdir -p "$out"/bin
cp ${lib.concatStringsSep " " installFiles} "$out"/bin
cp UEFITool UEFIReplace/UEFIReplace UEFIPatch/UEFIPatch "$out"/bin
'';

meta = with lib; {
description = "UEFI firmware image viewer and editor";
homepage = "https://github.com/LongSoft/uefitool";
license = licenses.bsd2;
maintainers = with maintainers; [ ];
maintainers = with maintainers; [ athre0z ];
# uefitool supposedly works on other platforms, but their build script only works on linux in nixpkgs
platforms = platforms.linux;
mainProgram = "UEFITool";
};
}
18 changes: 4 additions & 14 deletions pkgs/tools/system/uefitool/variants.nix
Original file line number Diff line number Diff line change
@@ -1,15 +1,5 @@
{ libsForQt5 }:
let
common = opts: libsForQt5.callPackage (import ./common.nix opts) {};
in rec {
new-engine = common rec {
version = "A62";
sha256 = "sha256-U89j0BV57luv1c9hoYJtisKLxFezuaGFokZ29/NJ0xg=";
installFiles = [ "build/UEFITool/UEFITool" "build/UEFIFind/UEFIFind" "build/UEFIExtract/UEFIExtract" ];
};
old-engine = common rec {
version = "0.28.0";
sha256 = "1n2hd2dysi5bv2iyq40phh1jxc48gdwzs414vfbxvcharcwapnja";
installFiles = [ "UEFITool" "UEFIReplace/UEFIReplace" "UEFIPatch/UEFIPatch" ];
};
{ libsForQt5, qt6Packages }:
{
new-engine = qt6Packages.callPackage (import ./new-engine.nix) {};
old-engine = libsForQt5.callPackage (import ./old-engine.nix) {};
}

0 comments on commit 86be174

Please sign in to comment.