From f6f3813b653c980b6fdbcf337d92a4c10cda6ef4 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Tue, 10 Feb 2015 00:27:51 +0300 Subject: [PATCH] Packaging Asymptote from scratch to get rid of builderDefsPackage --- pkgs/tools/graphics/asymptote/default.nix | 77 ++++++++--------------- pkgs/top-level/all-packages.nix | 5 +- 2 files changed, 26 insertions(+), 56 deletions(-) diff --git a/pkgs/tools/graphics/asymptote/default.nix b/pkgs/tools/graphics/asymptote/default.nix index 6cab550d82b5..90a7ce9efadf 100644 --- a/pkgs/tools/graphics/asymptote/default.nix +++ b/pkgs/tools/graphics/asymptote/default.nix @@ -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; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b48e50728ef6..421d1b27facc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 ]; };