Packaging Asymptote from scratch to get rid of builderDefsPackage

This commit is contained in:
Michael Raskin 2015-02-10 00:27:51 +03:00
parent 7c12355ee1
commit f6f3813b65
2 changed files with 26 additions and 56 deletions

View File

@ -1,12 +1,8 @@
a @ {
freeglut,ghostscriptX,imagemagick,fftw,
boehmgc,mesa,ncurses,readline,gsl,libsigsegv,
python,zlib, perl, texLive, texinfo, xz,
noDepEntry, fullDepEntry, fetchUrlFromSrcInfo,
lib,
...}:
{stdenv, fetchurl
, freeglut, ghostscriptX, imagemagick, fftw
, boehmgc, mesa, ncurses, readline, gsl, libsigsegv
, python, zlib, perl, texLive, texinfo, xz
}:
let
s = # Generated upstream information
rec {
@ -17,60 +13,37 @@ let
url="mirror://sourceforge/project/asymptote/2.32/asymptote-2.32.src.tgz";
sha256="19cgn5158p42igjbp8lf6xdbh3yjhlkdm22m5lqrhibp09g06d90";
};
buildInputs = with a; [
freeglut ghostscriptX imagemagick fftw boehmgc
mesa ncurses readline gsl libsigsegv python zlib
perl texLive texinfo xz
buildInputs = [
freeglut ghostscriptX imagemagick fftw
boehmgc mesa ncurses readline gsl libsigsegv
python zlib perl texLive texinfo xz
];
in
rec {
src = a.fetchUrlFromSrcInfo s;
inherit (s) name;
stdenv.mkDerivation {
inherit (s) name version;
inherit buildInputs;
configureFlags = "--enable-gc=${a.boehmgc} --enable-offscreen";
/* doConfigure should be removed if not needed */
phaseNames = ["setVars" "doUnpack" "fixPaths" "extractTexinfoTex"
"fixEpsWrite"
"doConfigure" "dumpRealVars" "doMakeInstall" "fixPathsResult"
"fixInfoDir"];
setVars = a.noDepEntry ''
src = fetchurl {
inherit (s) url sha256;
};
preConfigure = ''
export HOME="$PWD"
patchShebangs .
sed -e 's@epswrite@eps2write@g' -i runlabel.in
xz -d < ${texinfo.src} | tar --wildcards -x texinfo-'*'/doc/texinfo.tex
cp texinfo-*/doc/texinfo.tex doc/
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${boehmgc}/include/gc"
'';
dumpRealVars = a.noDepEntry ''
set > ../real-env-vars
'';
fixPaths = a.doPatchShebangs ''.'';
fixPathsResult = a.doPatchShebangs ''$out/bin'';
fixInfoDir = a.noDepEntry ''
postInstall = ''
mv -v "$out/share/info/asymptote/"*.info $out/share/info/
sed -i -e 's|(asymptote/asymptote)|(asymptote)|' $out/share/info/asymptote.info
rmdir $out/share/info/asymptote
rm $out/share/info/dir
'';
extractTexinfoTex = a.fullDepEntry ''
xz -d < ${a.texinfo.src} | tar --wildcards -x texinfo-'*'/doc/texinfo.tex
cp texinfo-*/doc/texinfo.tex doc/
'' ["minInit" "addInputs" "doUnpack"];
fixEpsWrite = a.fullDepEntry ''
sed -e 's@epswrite@eps2write@g' -i runlabel.in
'' ["minInit" "addInputs" "doUnpack"];
meta = {
inherit (s) version;
description = "A tool for programming graphics intended to replace Metapost";
maintainers = [
a.lib.maintainers.raskin
a.lib.maintainers.simons
];
platforms = with a.lib.platforms;
linux;
description = "A tool for programming graphics intended to replace Metapost";
license = stdenv.lib.licenses.gpl3Plus;
maintainers = [stdenv.lib.maintainers.raskin stdenv.lib.maintainers.simons];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -523,10 +523,7 @@ let
ascii = callPackage ../tools/text/ascii { };
asymptote = builderDefsPackage ../tools/graphics/asymptote {
inherit freeglut ghostscriptX imagemagick fftw boehmgc
mesa ncurses readline gsl libsigsegv python zlib perl
texinfo xz;
asymptote = callPackage ../tools/graphics/asymptote {
texLive = texLiveAggregationFun {
paths = [ texLive texLiveExtra texLiveCMSuper ];
};