nixpkgs/pkgs/tools/misc/rpi-imager/default.nix
Sandro 59fcbd9e2a
rpi-imager: set meta.homepage to something useful, don't use finalAttrs.pname in src
If we would overwrite pname then the FOD would be broken and the github repo doesn't chane if we would append some variant name to pname.

meta.homepage was before a not very helpful download page which didn't even contain the version number of the program.
2023-12-28 00:10:42 +01:00

85 lines
1.8 KiB
Nix

{ lib
, stdenv
, fetchFromGitHub
, wrapQtAppsHook
, cmake
, pkg-config
, util-linux
, curl
, libarchive
, qtbase
, qtdeclarative
, qtsvg
, qttools
, qtquickcontrols2
, qtgraphicaleffects
, xz
, testers
, nix-update-script
, enableTelemetry ? false
}:
stdenv.mkDerivation (finalAttrs: {
pname = "rpi-imager";
version = "1.8.4";
src = fetchFromGitHub {
owner = "raspberrypi";
repo = "rpi-imager";
rev = "refs/tags/v${finalAttrs.version}";
sha256 = "sha256-ZuS/fhPpVlLSdaD+t+qIw6fdEbi7c82X+BxcgWlPntg=";
};
nativeBuildInputs = [
cmake
pkg-config
util-linux
wrapQtAppsHook
];
# Disable telemetry and update check.
cmakeFlags = lib.optionals (!enableTelemetry) [
"-DENABLE_CHECK_VERSION=OFF"
"-DENABLE_TELEMETRY=OFF"
];
buildInputs = [
curl
libarchive
qtbase
qtdeclarative
qtsvg
qttools
qtquickcontrols2
qtgraphicaleffects
xz
];
sourceRoot = "${finalAttrs.src.name}/src";
/* By default, the builder checks for JSON support in lsblk by running "lsblk --json",
but that throws an error, as /sys/dev doesn't exist in the sandbox.
This patch removes the check. */
patches = [ ./lsblkCheckFix.patch ];
passthru = {
tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
command = "QT_QPA_PLATFORM=offscreen rpi-imager --version";
};
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Raspberry Pi Imaging Utility";
homepage = "https://github.com/raspberrypi/rpi-imager/";
changelog = "https://github.com/raspberrypi/rpi-imager/releases/tag/v${finalAttrs.version}";
license = licenses.asl20;
mainProgram = "rpi-imager";
maintainers = with maintainers; [ ymarkus anthonyroussel ];
platforms = platforms.all;
# does not build on darwin
broken = stdenv.isDarwin;
};
})