Files
nixpkgs/pkgs/by-name/fi/fig2dev/package.nix
ghpzin 957e1d0b5f fig2dev: fix build with gcc15
- add patch from merged upstream commit:
ab4eee3cf0
(fetchpatch is from gentoo because of upstream hosting on sourceforge)

Fixes build failure with gcc15:
```
transfig.c:140:26: error: too many arguments to function 'str2lang'; expected 0, have 1
  140 |                 tolang = str2lang(optarg);
      |                          ^~~~~~~~ ~~~~~~
transfig.h:63:22: note: declared here
   63 | extern enum language str2lang();
      |                      ^~~~~~~~
transfig.c:171:13: error: too many arguments to function 'parse_arg'; expected 0, have 6
  171 |         a = parse_arg(tolang, arg_f, arg_s, arg_m, arg_o, argv[optind]);
      |             ^~~~~~~~~ ~~~~~~
transfig.c:36:11: note: declared here
   36 | argument *parse_arg(), *arglist = NULL, *lastarg = NULL;
      |           ^~~~~~~~~
transfig.c:259:7: error: too many arguments to function 'strip'; expected 0, have 2
  259 |   if (strip(arg, ".pic"))
      |       ^~~~~ ~~~
transfig.c:37:7: note: declared here
   37 | char *strip();
      |       ^~~~~
transfig.c:261:19: error: too many arguments to function 'mksuff'; expected 0, have 2
  261 |         a->name = mksuff(arg, "");
      |                   ^~~~~~ ~~~
transfig.h:67:24: note: declared here
   67 | extern char *sysls(), *mksuff();
      |                        ^~~~~~
```
2025-09-27 22:23:48 +03:00

67 lines
1.5 KiB
Nix

{
lib,
stdenv,
fetchpatch,
fetchurl,
ghostscript,
libpng,
makeWrapper,
coreutils,
bc,
gnugrep,
gawk,
gnused,
}:
stdenv.mkDerivation rec {
pname = "fig2dev";
version = "3.2.9a";
src = fetchurl {
url = "mirror://sourceforge/mcj/fig2dev-${version}.tar.xz";
hash = "sha256-YeGFOTF2hS8DuQGzsFsZ+8Wtglj/FC89pucLG4NRMyY=";
};
patches = [
./CVE-2025-31162.patch
./CVE-2025-31163.patch
# Fix build with gcc15
# https://sourceforge.net/p/mcj/fig2dev/ci/ab4eee3cf0d0c1d861d64b9569a5d1497800cae2
(fetchpatch {
name = "fig2dev-prototypes.patch";
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-gfx/fig2dev/files/fig2dev-3.2.9a-prototypes.patch?id=93644497325b6df7a17f8bd05ad0495607aa5c34";
hash = "sha256-F6z0m3Ez9JpgZg+TjVjuIZhAyTMHodB7O/l8lDTOL54=";
})
];
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ libpng ];
GSEXE = "${ghostscript}/bin/gs";
configureFlags = [ "--enable-transfig" ];
postInstall = ''
wrapProgram $out/bin/fig2ps2tex \
--set PATH ${
lib.makeBinPath [
coreutils
bc
gnugrep
gawk
]
}
wrapProgram $out/bin/pic2tpic \
--set PATH ${lib.makeBinPath [ gnused ]}
'';
meta = with lib; {
description = "Tool to convert Xfig files to other formats";
homepage = "https://mcj.sourceforge.net/";
license = licenses.xfig;
platforms = platforms.unix;
maintainers = with maintainers; [ lesuisse ];
};
}