about summary refs log tree commit diff
path: root/pkgs/top-level
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/top-level')
-rw-r--r--pkgs/top-level/all-packages.nix17
-rw-r--r--pkgs/top-level/builder-defs.nix16
-rw-r--r--pkgs/top-level/template-composing+config.nix4
-rw-r--r--pkgs/top-level/template-composing-builder.nix6
4 files changed, 30 insertions, 13 deletions
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 1798a03de1b29..d98cb46490d51 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -270,6 +270,9 @@ let pkgs = rec {
     inherit stringsWithDeps lib stdenv writeScript fetchurl;
   };
 
+  builderDefsPackage = expr: lib.sumArgs 
+    (((builderDefs null).builderDefsPackage builderDefs) expr);
+
   stringsWithDeps = import ../lib/strings-with-deps.nix {
     inherit stdenv lib;
   };
@@ -6076,11 +6079,13 @@ let pkgs = rec {
     inherit fetchurl stdenv tetex lazylist;
   };
 
-  psiFun = lib.sumArgs (selectVersion ../applications/networking/instant-messengers/psi "0.11") {
-    inherit builderDefs zlib aspell sox openssl;
-    inherit (xlibs) xproto libX11 libSM libICE;
-    qt = qt4;
-  };
+  psiFun = builderDefsPackage 
+    (selectVersion ../applications/networking/instant-messengers/psi "0.11") 
+    {
+      inherit builderDefs zlib aspell sox openssl;
+      inherit (xlibs) xproto libX11 libSM libICE;
+      qt = qt4;
+    };
 
   psi = psiFun null;
 
@@ -6146,7 +6151,7 @@ let pkgs = rec {
     inherit stdenv perl tetex graphviz ghostscript;
   };
 
-  texLiveFun = lib.sumArgs (import ../misc/tex/texlive) {
+  texLiveFun = builderDefsPackage (import ../misc/tex/texlive) {
     inherit builderDefs zlib bzip2 ncurses libpng ed
       gd t1lib freetype icu perl;
     inherit (xlibs) libXaw libX11 xproto libXt libXpm
diff --git a/pkgs/top-level/builder-defs.nix b/pkgs/top-level/builder-defs.nix
index d06ebb9410327..cd86ba67f384c 100644
--- a/pkgs/top-level/builder-defs.nix
+++ b/pkgs/top-level/builder-defs.nix
@@ -3,6 +3,8 @@ args: with args; with stringsWithDeps; with lib;
 {
 	inherit writeScript; 
 
+	src = getAttr ["src"] "" args;
+
 	addSbinPath = getAttr ["addSbinPath"] false args;
 
 	forceShare = if args ? forceShare then args.forceShare else ["man" "doc" "info"];
@@ -385,4 +387,18 @@ args: with args; with stringsWithDeps; with lib;
           GHC_PACKAGE_PATH=\$PACKAGE_DB ./register.sh
         " ["defCreateEmptyPackageDatabaseAndSetupHook" "defCabalSetupCmd"];
 
+	phaseNames = args.phaseNames ++ 
+	  ["doForceShare" "doPropagate"];
+
+	builderDefsPackage = bd: func: args: (
+	let localDefs = bd (func ((bd null) // args)) args null; in
+
+	stdenv.mkDerivation (rec {
+	  inherit (localDefs) name;
+	  builder = writeScript (name + "-builder")
+	    (textClosure localDefs localDefs.phaseNames);
+	  meta = localDefs.meta // {inherit src;};
+	})
+	);
+
 }) // args
diff --git a/pkgs/top-level/template-composing+config.nix b/pkgs/top-level/template-composing+config.nix
index 56d5e1fa4837a..7f7e55302ddac 100644
--- a/pkgs/top-level/template-composing+config.nix
+++ b/pkgs/top-level/template-composing+config.nix
@@ -16,9 +16,7 @@ stdenv.mkDerivation rec {
 	builder = writeScript (name + "-builder")
 		(textClosure localDefs [(abort "Check phases") doMakeInstall doForceShare doPropagate]);
 	meta = {
-		description = "
-	${(abort "Specify description")}
-";
+		description = "${(abort "Specify description")}";
 		inherit src;
 	};
 }
diff --git a/pkgs/top-level/template-composing-builder.nix b/pkgs/top-level/template-composing-builder.nix
index 965bc082aba9c..7725d7986fd15 100644
--- a/pkgs/top-level/template-composing-builder.nix
+++ b/pkgs/top-level/template-composing-builder.nix
@@ -1,4 +1,4 @@
-args : with args; with builderDefs {src="";} null;
+args : with args; with builderDefs null;
 	let localDefs = builderDefs (rec {
 		src = /* put a fetchurl here */
 
@@ -12,9 +12,7 @@ stdenv.mkDerivation rec {
 		(textClosure localDefs 
 			[(abort "Specify phases - defined here or in builderDefs") doForceShare doPropagate]);
 	meta = {
-		description = "
-		${abort "Write a description"}
-";
+		description = "${abort "Write a description"}";
 		inherit src;
 	};
 }