4dd9507b83
Since "src" is a fetchsvn directory, the source is copied with "cp --no-preserve=timestamps" (see commit 6d928ab684327e0eeb1bf6cd889d57ca7127e8a7). So some source files might get a slightly different timestamp. Here, if lib/standard.ppmdfont gets a newer timestamp than the generated file lib/standardppmdfont.c, Make will try to rebuild the latter. But that fails because the ppmdcfont program doesn't exist (yet). Probably stdenv should ensure that every file has the same timestamp.
67 lines
1.9 KiB
Nix
67 lines
1.9 KiB
Nix
{ stdenv, fetchsvn, pkgconfig, libjpeg, libpng, flex, zlib, perl, libxml2, makeWrapper, libX11, libtiff }:
|
|
|
|
let rev = 1742; in
|
|
stdenv.mkDerivation {
|
|
name = "netpbm-advanced-${toString rev}";
|
|
|
|
src = fetchsvn {
|
|
url = https://netpbm.svn.sourceforge.net/svnroot/netpbm/advanced;
|
|
inherit rev;
|
|
sha256 = "0csx6g0ci66nx1a6z0a9dkpfp66mdvcpp5r7g6zrx4jp18r9hzb2";
|
|
};
|
|
|
|
NIX_CFLAGS_COMPILE = "-fPIC"; # Gentoo adds this on every platform
|
|
|
|
buildInputs = [ pkgconfig flex zlib perl libpng libjpeg libxml2 makeWrapper libX11 libtiff ];
|
|
|
|
configurePhase = ''
|
|
cp config.mk.in config.mk
|
|
substituteInPlace "config.mk" \
|
|
--replace "TIFFLIB = NONE" "TIFFLIB = ${libtiff}/lib/libtiff.so" \
|
|
--replace "TIFFHDR_DIR =" "TIFFHDR_DIR = ${libtiff}/include" \
|
|
--replace "TIFFLIB_NEEDS_JPEG = Y" "TIFFLIB_NEEDS_JPEG = N" \
|
|
--replace "TIFFLIB_NEEDS_Z = Y" "TIFFLIB_NEEDS_Z = N"
|
|
'';
|
|
|
|
preBuild = ''
|
|
export LDFLAGS="-lz"
|
|
substituteInPlace "pm_config.in.h" \
|
|
--subst-var-by "rgbPath1" "$out/lib/rgb.txt" \
|
|
--subst-var-by "rgbPath2" "/var/empty/rgb.txt" \
|
|
--subst-var-by "rgbPath3" "/var/empty/rgb.txt"
|
|
touch lib/standardppmdfont.c
|
|
'';
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
installPhase = ''
|
|
make package pkgdir=$PWD/netpbmpkg
|
|
# Pass answers to the script questions
|
|
./installnetpbm << EOF
|
|
$PWD/netpbmpkg
|
|
$out
|
|
Y
|
|
$out/bin
|
|
$out/lib
|
|
N
|
|
$out/lib
|
|
$out/lib
|
|
$out/include
|
|
$out/man
|
|
N
|
|
EOF
|
|
|
|
# wrap any scripts that expect other programs in the package to be in their PATH
|
|
for prog in ppmquant; do
|
|
wrapProgram "$out/bin/$prog" --prefix PATH : "$out/bin"
|
|
done
|
|
'';
|
|
|
|
meta = {
|
|
homepage = http://netpbm.sourceforge.net/;
|
|
description = "Toolkit for manipulation of graphic images";
|
|
license = "GPL,free";
|
|
platforms = stdenv.lib.platforms.linux;
|
|
};
|
|
}
|