diff --git a/pkgs/tools/system/uefitool/common.nix b/pkgs/tools/system/uefitool/common.nix new file mode 100644 index 000000000000..7d5ee82dcf98 --- /dev/null +++ b/pkgs/tools/system/uefitool/common.nix @@ -0,0 +1,39 @@ +{ version, sha256, installFiles }: +{ lib, mkDerivation, fetchFromGitHub, qtbase, qmake, cmake, zip }: + +mkDerivation rec { + passthru = { + inherit version; + inherit sha256; + inherit installFiles; + }; + pname = "uefitool"; + inherit version; + + src = fetchFromGitHub { + inherit sha256; + owner = "LongSoft"; + repo = pname; + rev = version; + }; + + buildInputs = [ qtbase ]; + nativeBuildInputs = [ qmake cmake zip ]; + + configurePhase = ":"; + buildPhase = "bash unixbuild.sh"; + + installPhase = '' + mkdir -p "$out"/bin + cp ${lib.concatStringsSep " " installFiles} "$out"/bin + ''; + + meta = with lib; { + description = "UEFI firmware image viewer and editor"; + homepage = "https://github.com/LongSoft/uefitool"; + license = licenses.bsd2; + maintainers = with maintainers; [ ajs124 ]; + # uefitool supposedly works on other platforms, but their build script only works on linux in nixpkgs + platforms = platforms.linux; + }; +} diff --git a/pkgs/tools/system/uefitool/variants.nix b/pkgs/tools/system/uefitool/variants.nix new file mode 100644 index 000000000000..cced17e6ddd4 --- /dev/null +++ b/pkgs/tools/system/uefitool/variants.nix @@ -0,0 +1,15 @@ +{ libsForQt5 }: +let + common = opts: libsForQt5.callPackage (import ./common.nix opts) {}; +in rec { + new-engine = common rec { + version = "A56"; + sha256 = "0sxmjkrwcchxg2qmcjsw2vr42s7cdcg2fxkwb8axq2r2z23465gp"; + installFiles = [ "UEFITool/UEFITool" "UEFIFind/UEFIFind" "UEFIExtract/UEFIExtract" ]; + }; + old-engine = common rec { + version = "0.27.0"; + sha256 = "1i1p823qld927p4f1wcphqcnivb9mq7fi5xmzibxc3g9zzgnyc2h"; + installFiles = [ "UEFITool" "UEFIReplace/UEFIReplace" "UEFIPatch/UEFIPatch" ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7ac4f781ad7e..fdfdb7b5e42f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21704,6 +21704,9 @@ in udocker = pythonPackages.callPackage ../tools/virtualization/udocker { }; + uefitoolPackages = recurseIntoAttrs (callPackage ../tools/system/uefitool/variants.nix {}); + uefitool = uefitoolPackages.new-engine; + unigine-valley = callPackage ../applications/graphics/unigine-valley { }; inherit (ocaml-ng.ocamlPackages_4_05) unison;