79 lines
1.7 KiB
Nix
79 lines
1.7 KiB
Nix
{
|
|
fetchurl,
|
|
stdenv,
|
|
bash-completion,
|
|
cmocka,
|
|
lib,
|
|
libftdi1,
|
|
libjaylink,
|
|
libusb1,
|
|
openssl,
|
|
meson,
|
|
ninja,
|
|
pciutils,
|
|
pkg-config,
|
|
sphinx,
|
|
jlinkSupport ? false,
|
|
git,
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "flashrom";
|
|
version = "1.7.0";
|
|
|
|
src = fetchurl {
|
|
url = "https://download.flashrom.org/releases/flashrom-v${finalAttrs.version}.tar.xz";
|
|
hash = "sha256-Qyis6YM/fv58M0vdc0gs3oKGgZgmzAAUnoP7qWvzq08=";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
git
|
|
meson
|
|
ninja
|
|
pkg-config
|
|
sphinx
|
|
bash-completion
|
|
];
|
|
buildInputs = [
|
|
openssl
|
|
cmocka
|
|
libftdi1
|
|
libusb1
|
|
]
|
|
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ pciutils ]
|
|
++ lib.optional jlinkSupport libjaylink;
|
|
|
|
postPatch = ''
|
|
substituteInPlace util/flashrom_udev.rules \
|
|
--replace 'GROUP="plugdev"' 'TAG+="uaccess", TAG+="udev-acl"'
|
|
'';
|
|
|
|
mesonFlags = [
|
|
(lib.mesonBool "werror" false)
|
|
(lib.mesonOption "programmer" "auto")
|
|
(lib.mesonEnable "man-pages" true)
|
|
(lib.mesonEnable "tests" (!stdenv.buildPlatform.isDarwin))
|
|
(lib.mesonEnable "generate_authors_list" false)
|
|
];
|
|
|
|
doCheck = !stdenv.hostPlatform.isDarwin;
|
|
doInstallCheck = true;
|
|
|
|
postInstall = ''
|
|
install -Dm644 $NIX_BUILD_TOP/$sourceRoot/util/flashrom_udev.rules $out/lib/udev/rules.d/flashrom.rules
|
|
'';
|
|
|
|
env = lib.optionalAttrs (stdenv.cc.isClang && !stdenv.hostPlatform.isDarwin) {
|
|
NIX_CFLAGS_COMPILE = "-Wno-gnu-folding-constant";
|
|
};
|
|
|
|
meta = {
|
|
homepage = "https://www.flashrom.org";
|
|
description = "Utility for reading, writing, erasing and verifying flash ROM chips";
|
|
license = lib.licenses.gpl2Plus;
|
|
maintainers = with lib.maintainers; [ fpletz ];
|
|
platforms = lib.platforms.all;
|
|
mainProgram = "flashrom";
|
|
};
|
|
})
|