diff options
author | aszlig <aszlig@redmoonstudios.org> | 2013-01-14 09:43:31 +0100 |
---|---|---|
committer | aszlig <aszlig@redmoonstudios.org> | 2013-01-14 09:43:31 +0100 |
commit | 4ec725cd35674ce24856c921cb2a7c72894cbdfe (patch) | |
tree | 517977bd13729b26c3d73c3425e81d1c39f13651 | |
parent | cb128deec77fe48e8aa2c6321e6de8de418e7022 (diff) |
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 <aszlig@redmoonstudios.org>
-rw-r--r-- | overrides/default.nix | 88 |
1 files changed, 47 insertions, 41 deletions
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 |