flashrom: parameterize and passthru patches

Sadly we need at least two different forks of flashrom, with
different patches (and therefore different capabilities) applied to
each.  This commit parameterizes the flashrom expression and
includes those parameters in the `passthru` so downstream
expressions can check whether various needed features are present.
master
Adam Joseph 2 years ago
parent c5fdfbff1b
commit 203e6da773

@ -13,6 +13,9 @@
# chips and can also write to the embedded controller (EC) flash, # chips and can also write to the embedded controller (EC) flash,
# which is a separate chip # which is a separate chip
, forChromebook ? false , forChromebook ? false
, writeProtectSupport ? true
, overlappingFmapRegionSupport ? false
}: }:
stdenv.mkDerivation { stdenv.mkDerivation {
@ -36,13 +39,14 @@ stdenv.mkDerivation {
buildInputs = lib.optional (!stdenv.hostPlatform.isStatic) libftdi1 buildInputs = lib.optional (!stdenv.hostPlatform.isStatic) libftdi1
++ [ libusb1 pciutils ]; ++ [ libusb1 pciutils ];
patches = patches = lib.optionals (writeProtectSupport && !forChromebook) [
if !forChromebook then [ # the forChromebook fork already has (Google's version of) the enableWriteProtect patches
./0001-implement-wp-enable-disable-for-gigadevice-flash-chi.patch ./0001-implement-wp-enable-disable-for-gigadevice-flash-chi.patch
./0002-layout.c-allow-nested-regions.patch ] ++ lib.optionals forChromebook [
] else [ ../../platform/kevin/chromebook-flashrom-kludges.patch
../../platform/kevin/chromebook-flashrom-kludges.patch ] ++ lib.optionals overlappingFmapRegionSupport [
]; ./0002-layout.c-allow-nested-regions.patch
];
makeFlags = if !forChromebook then [ makeFlags = if !forChromebook then [
"PREFIX=$(out)" "libinstall" "PREFIX=$(out)" "libinstall"
@ -54,6 +58,10 @@ stdenv.mkDerivation {
mv $out/sbin/flashrom $out/sbin/flashrom-chromebook mv $out/sbin/flashrom $out/sbin/flashrom-chromebook
''; '';
passthru = {
inherit forChromebook writeProtectSupport overlappingFmapRegionSupport;
};
meta = with lib; { meta = with lib; {
homepage = "https://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";

Loading…
Cancel
Save