argyllcms: make reproducible

and make binfmt cross-compilable
This commit is contained in:
Artturin 2021-10-27 20:51:10 +03:00
parent 23f71e9427
commit e7a05e90da

View file

@ -13,83 +13,88 @@ stdenv.mkDerivation rec {
sha256 = "sha256-umY3wQfG26Okqnw+MCUnlwWTAyJ6MR/FHe5oe61KBh0=";
};
# The contents of this file comes from the Jamtop file from the
# root of the ArgyllCMS distribution, rewritten to pick up Nixpkgs
# library paths. When ArgyllCMS is updated, make sure that changes
# in that file is reflected here.
jamTop = writeText "argyllcms_jamtop" ''
DESTDIR = "/" ;
REFSUBDIR = "share/argyllcms" ;
# Keep this DESTDIR anchored to Jamtop. PREFIX is used literally
ANCHORED_PATH_VARS = DESTDIR ;
# Tell standalone libraries that they are part of Argyll:
DEFINES += ARGYLLCMS ;
# enable serial instruments & support
USE_SERIAL = true ;
# enable fast serial instruments & support
USE_FAST_SERIAL = true ; # (Implicit in USE_SERIAL too)
# enable USB instruments & support
USE_USB = true ;
# enable dummy Demo Instrument (only if code is available)
USE_DEMOINST = true ;
# enable Video Test Patch Generator and 3DLUT device support
# (V2.0.0 and above)
USE_VTPGLUT = false ;
# enable Printer device support
USE_PRINTER = false ;
# enable CMF Measurement device and accessory support (if present)
USE_CMFM = false ;
# Use ArgyllCMS version of libusb (deprecated - don't use)
USE_LIBUSB = false ;
# Compile in graph plotting code (Not fully implemented)
USE_PLOT = true ; # [true]
JPEGLIB = ;
JPEGINC = ;
HAVE_JPEG = true ;
TIFFLIB = ;
TIFFINC = ;
HAVE_TIFF = true ;
PNGLIB = ;
PNGINC = ;
HAVE_PNG = true ;
ZLIB = ;
ZINC = ;
HAVE_Z = true ;
SSLLIB = ;
SSLINC = ;
HAVE_SSL = true ;
LINKFLAGS +=
${lib.concatStringsSep " " (map (x: "-L${x}/lib") buildInputs)}
-ldl -lrt -lX11 -lXext -lXxf86vm -lXinerama -lXrandr -lXau -lXdmcp -lXss
-ljpeg -ltiff -lpng -lssl ;
'';
nativeBuildInputs = [ jam unzip ];
preConfigure = ''
postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
substituteInPlace Jambase \
--replace "-m64" ""
'';
preConfigure = let
# The contents of this file comes from the Jamtop file from the
# root of the ArgyllCMS distribution, rewritten to pick up Nixpkgs
# library paths. When ArgyllCMS is updated, make sure that changes
# in that file is reflected here.
jamTop = writeText "argyllcms_jamtop" ''
DESTDIR = "/" ;
REFSUBDIR = "share/argyllcms" ;
# Keep this DESTDIR anchored to Jamtop. PREFIX is used literally
ANCHORED_PATH_VARS = DESTDIR ;
# Tell standalone libraries that they are part of Argyll:
DEFINES += ARGYLLCMS ;
# enable serial instruments & support
USE_SERIAL = true ;
# enable fast serial instruments & support
USE_FAST_SERIAL = true ; # (Implicit in USE_SERIAL too)
# enable USB instruments & support
USE_USB = true ;
# enable dummy Demo Instrument (only if code is available)
USE_DEMOINST = true ;
# enable Video Test Patch Generator and 3DLUT device support
# (V2.0.0 and above)
USE_VTPGLUT = false ;
# enable Printer device support
USE_PRINTER = false ;
# enable CMF Measurement device and accessory support (if present)
USE_CMFM = false ;
# Use ArgyllCMS version of libusb (deprecated - don't use)
USE_LIBUSB = false ;
# Compile in graph plotting code (Not fully implemented)
USE_PLOT = true ; # [true]
JPEGLIB = ;
JPEGINC = ;
HAVE_JPEG = true ;
TIFFLIB = ;
TIFFINC = ;
HAVE_TIFF = true ;
PNGLIB = ;
PNGINC = ;
HAVE_PNG = true ;
ZLIB = ;
ZINC = ;
HAVE_Z = true ;
SSLLIB = ;
SSLINC = ;
HAVE_SSL = true ;
LINKFLAGS +=
${lib.concatStringsSep " " (map (x: "-L${x}/lib") buildInputs)}
-ldl -lrt -lX11 -lXext -lXxf86vm -lXinerama -lXrandr -lXau -lXdmcp -lXss
-ljpeg -ltiff -lpng -lssl ;
'';
in ''
cp ${jamTop} Jamtop
substituteInPlace Makefile --replace "-j 3" "-j $NIX_BUILD_CORES"
# Remove tiff, jpg and png to be sure the nixpkgs-provided ones are used
rm -rf tiff jpg png
unset AR
export AR="$AR rusc"
'';
buildInputs = [
@ -110,6 +115,9 @@ stdenv.mkDerivation rec {
mkdir -p $out/etc/udev/rules.d
sed -i '/udev-acl/d' usb/55-Argyll.rules
cp -v usb/55-Argyll.rules $out/etc/udev/rules.d/
sed -i -e 's/^CREATED .*/CREATED "'"$(date -d @$SOURCE_DATE_EPOCH)"'"/g' $out/share/argyllcms/RefMediumGamut.gam
'';
meta = with lib; {