diff --git a/pkgs/tools/misc/rpi-imager/default.nix b/pkgs/tools/misc/rpi-imager/default.nix index e875d5a59550..61ca001563f5 100644 --- a/pkgs/tools/misc/rpi-imager/default.nix +++ b/pkgs/tools/misc/rpi-imager/default.nix @@ -1,31 +1,43 @@ -{ mkDerivation, - stdenv, - lib, - fetchFromGitHub, - cmake, - curl, - libarchive, - util-linux, - qtbase, - qtdeclarative, - qtsvg, - qttools, - qtquickcontrols2, - qtgraphicaleffects +{ lib +, stdenv +, fetchFromGitHub +, wrapQtAppsHook +, cmake +, util-linux +, curl +, libarchive +, qtbase +, qtdeclarative +, qtsvg +, qttools +, qtquickcontrols2 +, qtgraphicaleffects +, nix-update-script +, enableTelemetry ? false }: -mkDerivation rec { +stdenv.mkDerivation rec { pname = "rpi-imager"; - version = "1.7.4"; + version = "1.7.5"; src = fetchFromGitHub { owner = "raspberrypi"; repo = pname; rev = "v${version}"; - sha256 = "sha256-ahETmUhlPZ3jpxmzDK5pS6yLc6UxCJFOtWolAtSrDVQ="; + sha256 = "sha256-yB+H1zWL40KzxOrBuvg7nBC3zmWilsOgOW7ndiDWuDA="; }; - nativeBuildInputs = [ cmake util-linux ]; + nativeBuildInputs = [ + cmake + util-linux + wrapQtAppsHook + ]; + + # Disable telemetry and update check. + cmakeFlags = lib.optionals (!enableTelemetry) [ + "-DENABLE_CHECK_VERSION=OFF" + "-DENABLE_TELEMETRY=OFF" + ]; buildInputs = [ curl @@ -45,12 +57,29 @@ mkDerivation rec { This patch removes the check. */ patches = [ ./lsblkCheckFix.patch ]; + doInstallCheck = true; + + installCheckPhase = '' + runHook preInstallCheck + + # Without this, the tests fail because they cannot create the QT Window + export QT_QPA_PLATFORM=offscreen + $out/bin/rpi-imager --version + + runHook postInstallCheck + ''; + + passthru = { + updateScript = nix-update-script { }; + }; + meta = with lib; { description = "Raspberry Pi Imaging Utility"; - homepage = "https://www.raspberrypi.org/software/"; + homepage = "https://www.raspberrypi.com/software/"; + changelog = "https://github.com/raspberrypi/rpi-imager/releases/tag/v${version}"; downloadPage = "https://github.com/raspberrypi/rpi-imager/"; license = licenses.asl20; - maintainers = with maintainers; [ ymarkus ]; + maintainers = with maintainers; [ ymarkus anthonyroussel ]; platforms = platforms.all; # does not build on darwin broken = stdenv.isDarwin; diff --git a/pkgs/tools/misc/rpi-imager/lsblkCheckFix.patch b/pkgs/tools/misc/rpi-imager/lsblkCheckFix.patch index 98fd2a659dc8..aa4fdeecfdb0 100644 --- a/pkgs/tools/misc/rpi-imager/lsblkCheckFix.patch +++ b/pkgs/tools/misc/rpi-imager/lsblkCheckFix.patch @@ -1,16 +1,16 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 3d7fc79..8ce72b9 100644 +index 170ce7a..063a137 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -229,11 +229,6 @@ else() +@@ -332,11 +332,6 @@ else() if (NOT LSBLK) message(FATAL_ERROR "Unable to locate lsblk (used for disk enumeration)") endif() - -- execute_process(COMMAND "${LSBLK}" "--json" RESULT_VARIABLE ret) +- execute_process(COMMAND "${LSBLK}" "--json" OUTPUT_QUIET RESULT_VARIABLE ret) - if (ret EQUAL "1") - message(FATAL_ERROR "util-linux package too old. lsblk does not support --json (used for disk enumeration)") - endif() endif() - + configure_file(