From 4ec725cd35674ce24856c921cb2a7c72894cbdfe Mon Sep 17 00:00:00 2001 From: aszlig Date: Mon, 14 Jan 2013 09:43:31 +0100 Subject: overrides: Refactor into different override types. We now have arg overrides and derivation overrides. Both are implemented using mapOverride, which allows to specify overrides in batches using dotted attrset nesting. In addition new packages are now clearly separated away and alphabetically ordered, so that it's easy to add another new package to the list. Signed-off-by: aszlig --- overrides/default.nix | 88 +++++++++++++++++++++++++++------------------------ 1 file changed, 47 insertions(+), 41 deletions(-) (limited to 'overrides') diff --git a/overrides/default.nix b/overrides/default.nix index c398babe..5687547e 100644 --- a/overrides/default.nix +++ b/overrides/default.nix @@ -1,59 +1,71 @@ pkgs: -with { - tkabberRev = 2009; -}; -with pkgs; +with pkgs.lib; let - callPackage = lib.callPackageWith (pkgs // self); - self = rec { - pulseaudio = pkgs.pulseaudio.override { - useSystemd = true; - }; + allPackages = newPackages // misc; + everything = pkgs // allPackages // drvOverrides // argOverrides; - kernelSourceAszlig = { - version = "3.8.0-rc3"; - src = pkgs.fetchgit { - url = /home/aszlig/linux; - rev = "ecf02a607bd801e742d7bb35c6e40f7ca15edf03"; - sha256 = "19ad666ms61s55730sh2n2lp9dsn439lnr7cypdma978mx27aj7v"; - }; - }; + callPackage = callPackageWith everything; - blop = callPackage ./blop { }; + mapOverride = overrideFun: includePackages: let + packages = pkgs // allPackages // includePackages; + overrideName = name: overrideFun (getAttr name packages); + in mapAttrs overrideName; - libCMT = callPackage ./libcmt { }; + # input attrset overrides using pkg.override + argOverrides = mapOverride (getAttr "override") drvOverrides { + netrw.checksumType = "mhash"; + pulseaudio.useSystemd = true; + w3m.graphicsSupport = true; + }; - tkabber = lib.overrideDerivation pkgs.tkabber (o: { + # derivation overrides + drvOverrides = let + tkabberRev = 2009; + in mapOverride overrideDerivation argOverrides { + tkabber = o: { name = "tkabber-1.0pre"; - src = fetchsvn { + src = everything.fetchsvn { url = "http://svn.xmpp.ru/repos/tkabber/trunk/tkabber"; rev = tkabberRev; sha256 = "0lfh3bapqsfw142bndp11x7cs9crrcccw242lgwlh103r9gs123s"; }; - }); + }; - tkabber_plugins = lib.overrideDerivation pkgs.tkabber_plugins (o: { + tkabber_plugins = o: { name = "tkabber-plugins-1.0pre"; - src = fetchsvn { + src = everything.fetchsvn { url = "http://svn.xmpp.ru/repos/tkabber/trunk/tkabber-plugins"; rev = tkabberRev; sha256 = "181jxd7iwpcl7wllwciqshzznahdw69fy7r604gj4m2kq6qmynqf"; }; - }); - - w3m = pkgs.w3m.override { - graphicsSupport = true; }; + }; - netrw = pkgs.netrw.override { - checksumType = "mhash"; + # new packages + newPackages = { + axbo = callPackage ./axbo { }; + blop = callPackage ./blop { }; + libCMT = callPackage ./libcmt { }; + librxtx_java = callPackage ./librxtx-java { }; + pvolctrl = callPackage ./pvolctrl { }; + }; + + # misc + misc = { + kernelSourceAszlig = { + version = "3.8.0-rc3"; + src = everything.fetchgit { + url = /home/aszlig/linux; + rev = "ecf02a607bd801e742d7bb35c6e40f7ca15edf03"; + sha256 = "19ad666ms61s55730sh2n2lp9dsn439lnr7cypdma978mx27aj7v"; + }; }; testChromiumBuild = let buildChannels = [ "stable" "beta" "dev" ]; - buildChromium = chan: chromium.override { + buildChromium = chan: everything.chromium.override { channel = chan; gnomeSupport = true; gnomeKeyringSupport = true; @@ -61,24 +73,18 @@ let cupsSupport = true; pulseSupport = true; }; - in stdenv.mkDerivation { + in everything.stdenv.mkDerivation { name = "test-chromium-build"; buildCommand = let - chanResults = lib.flip map buildChannels (chan: '' + chanResults = flip map buildChannels (chan: '' echo "Build result for ${chan}: ${buildChromium chan}" ''); in '' echo "Builds finished, the following derivations have been built:" - ${lib.concatStrings chanResults} + ${concatStrings chanResults} false ''; }; - - pvolctrl = callPackage ./pvolctrl { }; - - librxtx_java = callPackage ./librxtx-java { }; - - axbo = callPackage ./axbo { }; }; -in self +in allPackages // drvOverrides // argOverrides -- cgit 1.4.1