nixpkgs/pkgs/tools/graphics/plotutils/default.nix
piegames 68927918d0 treewide: Fix indentation in strings
The indentation stripping semantics of strings are fairly bad and have a
few gotchas where the resulting string has not the intended indentation.
This commit fixes most if not all such instances in Nixpkgs.

I tried to strive a balance between keeping the diff small and
reformatting/refactoring the code to look better. In general,
reformatting should be left to Nixfmt.

Note that this causes a lot of rebuilds by design. All changes need to
be thoroughly vetted and reviewed for correctness. There is no automatic
way to prove correctness.

List of files to fix generated by running
https://gerrit.lix.systems/c/lix/+/2092 on Nixpkgs and looking at the
warnings.
2024-10-22 21:36:42 +02:00

63 lines
1.9 KiB
Nix

{ fetchurl, lib, stdenv, libpng, autoreconfHook }:
# debian splits this package into plotutils and libplot2c2
# gentoo passes X, this package contains fonts
# I'm only interested in making pstoedit convert to svg
stdenv.mkDerivation rec {
pname = "plotutils";
version = "2.6";
src = fetchurl {
url = "mirror://gnu/plotutils/plotutils-${version}.tar.gz";
sha256 = "1arkyizn5wbgvbh53aziv3s6lmd3wm9lqzkhxb3hijlp1y124hjg";
};
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ libpng ];
patches = map fetchurl (import ./debian-patches.nix)
# `pic2plot/gram.cc` uses the register storage class specifier, which is not supported in C++17.
# This prevents clang 16 from building plotutils because it defaults to C++17.
++ [ ./c++17-register-usage-fix.patch ];
preBuild = ''
# Fix parallel building.
make -C libplot xmi.h
'';
configureFlags = [ "--enable-libplotter" ]; # required for pstoedit
hardeningDisable = [ "format" ];
doCheck = true;
enableParallelBuilding = true;
meta = {
description = "Powerful C/C++ library for exporting 2D vector graphics";
longDescription = ''
The GNU plotutils package contains software for both programmers and
technical users. Its centerpiece is libplot, a powerful C/C++
function library for exporting 2-D vector graphics in many file
formats, both vector and raster. It can also do vector graphics
animations.
libplot is device-independent in the sense that its API (application
programming interface) does not depend on the type of graphics file
to be exported.
Besides libplot, the package contains command-line programs for
plotting scientific data. Many of them use libplot to export
graphics.
'';
homepage = "https://www.gnu.org/software/plotutils/";
license = lib.licenses.gpl2Plus;
maintainers = [ lib.maintainers.marcweber ];
platforms = lib.platforms.unix;
};
}