ploticus: Fix PREFAB settings, add test

Previously, I would get

    pl: error 22: Cannot open specified scriptfile (@out@/share/ploticus/prefabs/chron.pl)

and it seems the PREFAB setting last changed in
fbc4b41e69
didn't quite work.

So this adds a test to demonstrate the issue, and fixes it by substituting the placeholder.
This commit is contained in:
Joachim Breitner 2023-02-18 21:34:52 +01:00 committed by GitHub
parent 76f83afe46
commit ea4d2f7e61
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -7,14 +7,15 @@
, libjpeg , libjpeg
, gd , gd
, freetype , freetype
, runCommand
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "ploticus"; pname = "ploticus";
version = "2.42"; version = "2.42";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/ploticus/ploticus/${version}/ploticus${lib.replaceStrings [ "." ] [ "" ] version}_src.tar.gz"; url = "mirror://sourceforge/ploticus/ploticus/${finalAttrs.version}/ploticus${lib.replaceStrings [ "." ] [ "" ] finalAttrs.version}_src.tar.gz";
sha256 = "PynkufQFIDqT7+yQDlgW2eG0OBghiB4kHAjKt91m4LA="; sha256 = "PynkufQFIDqT7+yQDlgW2eG0OBghiB4kHAjKt91m4LA=";
}; };
@ -42,6 +43,10 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
postPatch = ''
substituteInPlace src/pl.h --subst-var out
'';
preBuild = '' preBuild = ''
cd src cd src
''; '';
@ -62,6 +67,16 @@ stdenv.mkDerivation rec {
ln -s "pl" "$out/bin/ploticus" ln -s "pl" "$out/bin/ploticus"
''; '';
passthru.tests = {
prefab = runCommand "ploticus-prefab-test" {
buildInputs = [ finalAttrs.finalPackage ];
} ''
# trivial test to see if the prefab path munging works
mkdir $out/
pl -prefab scat inlinedata="A 1 2" x=2 y=3 -png -o $out/out.png
'';
};
meta = with lib; { meta = with lib; {
description = "A non-interactive software package for producing plots and charts"; description = "A non-interactive software package for producing plots and charts";
longDescription = '' longDescription = ''
@ -77,4 +92,4 @@ stdenv.mkDerivation rec {
homepage = "https://ploticus.sourceforge.net/"; homepage = "https://ploticus.sourceforge.net/";
platforms = with platforms; linux ++ darwin; platforms = with platforms; linux ++ darwin;
}; };
} })