uefitoolPackages.new-engine: A62 -> A71

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
This commit is contained in:
Joel Höner 2025-02-16 01:35:56 +01:00
parent 0845149344
commit c570df851d
4 changed files with 69 additions and 42 deletions

View File

@ -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

View File

@ -0,0 +1,38 @@
{
lib,
stdenv,
fetchFromGitHub,
qtbase,
cmake,
wrapQtAppsHook,
zip,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "uefitool";
version = "A71";
src = fetchFromGitHub {
hash = "sha256-NRlrKm5+eED6oyvFRSEhn0EUbMsPJtuFAyv3vgY/IUI=";
owner = "LongSoft";
repo = "uefitool";
tag = finalAttrs.version;
};
buildInputs = [ qtbase ];
nativeBuildInputs = [
cmake
zip
wrapQtAppsHook
];
patches = lib.optionals stdenv.isDarwin [ ./bundle-destination.patch ];
meta = {
description = "UEFI firmware image viewer and editor";
homepage = "https://github.com/LongSoft/uefitool";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ athre0z ];
platforms = lib.platforms.unix;
mainProgram = "uefitool";
};
})

View File

@ -1,8 +1,3 @@
{
version,
sha256,
installFiles,
}:
{
lib,
mkDerivation,
@ -14,19 +9,14 @@
}:
mkDerivation rec {
passthru = {
inherit version;
inherit sha256;
inherit installFiles;
};
pname = "uefitool";
inherit version;
version = "0.28.0";
src = fetchFromGitHub {
inherit sha256;
hash = "sha256-StqrOMsKst2X2yQQ/Xl7iLAuA4QXEOyj2KtE7ZtoUNg=";
owner = "LongSoft";
repo = pname;
rev = version;
repo = "uefitool";
tag = version;
};
buildInputs = [ qtbase ];
@ -43,15 +33,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; {
meta = {
description = "UEFI firmware image viewer and editor";
homepage = "https://github.com/LongSoft/uefitool";
license = licenses.bsd2;
maintainers = [ ];
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ athre0z ];
# uefitool supposedly works on other platforms, but their build script only works on linux in nixpkgs
platforms = platforms.linux;
platforms = lib.platforms.linux;
mainProgram = "UEFITool";
};
}

View File

@ -1,24 +1,5 @@
{ libsForQt5 }:
let
common = opts: libsForQt5.callPackage (import ./common.nix opts) { };
in
rec {
new-engine = common {
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 ./new-engine.nix { };
old-engine = libsForQt5.callPackage ./old-engine.nix { };
}