Merge pull request #140902 from felixsinger/pkgs/flashrom/add-libjaylink

flashrom: Add support for Segger J-Link devices
This commit is contained in:
Lassulus 2021-10-18 00:42:00 +02:00 committed by GitHub
commit e7c8c949f1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,16 +1,16 @@
{ lib
, stdenv
, fetchurl
, meson
, ninja
, pkg-config
{ fetchurl
, gcc9Stdenv
, installShellFiles
, lib
, libftdi1
, libjaylink
, libusb1
, pciutils
, installShellFiles
, pkg-config
, jlinkSupport ? false
}:
stdenv.mkDerivation rec {
gcc9Stdenv.mkDerivation rec {
pname = "flashrom";
version = "1.2";
@ -19,29 +19,30 @@ stdenv.mkDerivation rec {
sha256 = "0ax4kqnh7kd3z120ypgp73qy1knz47l6qxsqzrfkd97mh5cdky71";
};
nativeBuildInputs = [ pkg-config installShellFiles ];
buildInputs = [ libftdi1 libusb1 ]
# https://github.com/flashrom/flashrom/issues/125
++ lib.optional (!gcc9Stdenv.isAarch64) pciutils
++ lib.optional jlinkSupport libjaylink;
postPatch = ''
substituteInPlace util/z60_flashrom.rules \
--replace "plugdev" "flashrom"
'';
# Meson build doesn't build and install manpage. Only Makefile can.
# Build manpage from source directory. Here we're inside the ./build subdirectory
makeFlags = [ "PREFIX=$(out)" "libinstall" ]
++ lib.optional jlinkSupport "CONFIG_JLINK_SPI=yes";
postInstall = ''
make flashrom.8 -C ..
installManPage ../flashrom.8
install -Dm644 ../util/z60_flashrom.rules $out/etc/udev/rules.d/flashrom.rules
install -Dm644 util/z60_flashrom.rules $out/lib/udev/rules.d/flashrom.rules
'';
mesonFlags = lib.optionals stdenv.isAarch64 [ "-Dpciutils=false" ];
nativeBuildInputs = [ meson pkg-config ninja installShellFiles ];
buildInputs = [ libftdi1 libusb1 pciutils ];
meta = with lib; {
homepage = "http://www.flashrom.org";
homepage = "https://www.flashrom.org";
description = "Utility for reading, writing, erasing and verifying flash ROM chips";
license = licenses.gpl2;
maintainers = with maintainers; [ funfunctor fpletz felixsinger ];
platforms = platforms.all;
broken = stdenv.isDarwin; # requires DirectHW
broken = gcc9Stdenv.isDarwin; # requires DirectHW
};
}