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