nixpkgs/pkgs/by-name/pl/plotutils/package.nix
Silvan Mosberger 4f0dadbf38 treewide: format all inactive Nix files
After final improvements to the official formatter implementation,
this commit now performs the first treewide reformat of Nix files using it.
This is part of the implementation of RFC 166.

Only "inactive" files are reformatted, meaning only files that
aren't being touched by any PR with activity in the past 2 months.
This is to avoid conflicts for PRs that might soon be merged.
Later we can do a full treewide reformat to get the rest,
which should not cause as many conflicts.

A CI check has already been running for some time to ensure that new and
already-formatted files are formatted, so the files being reformatted here
should also stay formatted.

This commit was automatically created and can be verified using

    nix-build a08b3a4d19.tar.gz \
      --argstr baseRev b32a094368
    result/bin/apply-formatting $NIXPKGS_PATH
2024-12-10 20:26:33 +01:00

70 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;
};
}