From bad0d45562466014982500c1e94286fd7f88fcc2 Mon Sep 17 00:00:00 2001 From: Marc Weber Date: Sun, 9 Mar 2008 00:08:45 +0000 Subject: [PATCH] jdk updated to 1.5.0.15 updated bleeding edge stuff (should now work for the bulidfarm as well because dist files are stored on my server) moved experimental my_env into its own file svn path=/nixpkgs/trunk/; revision=11026 --- .../compilers/ghc/ghc-wrapper/default.nix | 2 +- .../compilers/jdk/jdk5-sun-linux.nix | 11 +- .../misc/bleeding-edge-repos/default.nix | 64 ++++++++--- .../bleeding-edge-fetch-info/ghc_lambdavm.nix | 3 + .../bleeding-edge-fetch-info/happs_data.nix | 3 + .../bleeding-edge-fetch-info/happs_ixset.nix | 3 + .../happs_plugins.nix | 3 + .../bleeding-edge-fetch-info/happs_server.nix | 3 + .../bleeding-edge-fetch-info/happs_state.nix | 3 + .../bleeding-edge-fetch-info/happs_util.nix | 3 + pkgs/misc/bleeding-edge-fetch-info/hsjava.nix | 3 + .../misc/bleeding-edge-fetch-info/hsutils.nix | 3 + pkgs/misc/bleeding-edge-fetch-info/http.nix | 3 + .../bleeding-edge-fetch-info/hypertable.nix | 3 + .../nix_repository_manager.nix | 3 + .../syb_with_class.nix | 3 + pkgs/misc/my_env/default.nix | 35 ++++++ .../nixRepositoryManager/default.nix | 47 ++++---- pkgs/top-level/all-packages.nix | 103 +++++------------- 19 files changed, 184 insertions(+), 117 deletions(-) create mode 100644 pkgs/misc/bleeding-edge-fetch-info/ghc_lambdavm.nix create mode 100644 pkgs/misc/bleeding-edge-fetch-info/happs_data.nix create mode 100644 pkgs/misc/bleeding-edge-fetch-info/happs_ixset.nix create mode 100644 pkgs/misc/bleeding-edge-fetch-info/happs_plugins.nix create mode 100644 pkgs/misc/bleeding-edge-fetch-info/happs_server.nix create mode 100644 pkgs/misc/bleeding-edge-fetch-info/happs_state.nix create mode 100644 pkgs/misc/bleeding-edge-fetch-info/happs_util.nix create mode 100644 pkgs/misc/bleeding-edge-fetch-info/hsjava.nix create mode 100644 pkgs/misc/bleeding-edge-fetch-info/hsutils.nix create mode 100644 pkgs/misc/bleeding-edge-fetch-info/http.nix create mode 100644 pkgs/misc/bleeding-edge-fetch-info/hypertable.nix create mode 100644 pkgs/misc/bleeding-edge-fetch-info/nix_repository_manager.nix create mode 100644 pkgs/misc/bleeding-edge-fetch-info/syb_with_class.nix create mode 100644 pkgs/misc/my_env/default.nix diff --git a/pkgs/development/compilers/ghc/ghc-wrapper/default.nix b/pkgs/development/compilers/ghc/ghc-wrapper/default.nix index a1efb48ba406..4f4e4b82b1b9 100644 --- a/pkgs/development/compilers/ghc/ghc-wrapper/default.nix +++ b/pkgs/development/compilers/ghc/ghc-wrapper/default.nix @@ -4,7 +4,7 @@ stdenv.mkDerivation { inherit suffix name ghc readline ncurses; buildInputs = (libraries ++ [ghcPkgUtil]); - tags = map (x : sourceWithTagsDerivation ((lib.traceWhatis x).passthru.sourceWithTags)) + tags = map (x : sourceWithTagsDerivation (x.passthru.sourceWithTags)) (uniqList { inputList= filter annotatedWithSourceAndTagInfo libraries; } ); phases="installPhase"; diff --git a/pkgs/development/compilers/jdk/jdk5-sun-linux.nix b/pkgs/development/compilers/jdk/jdk5-sun-linux.nix index 6a15b1f9ec91..a5d6f8bc516f 100644 --- a/pkgs/development/compilers/jdk/jdk5-sun-linux.nix +++ b/pkgs/development/compilers/jdk/jdk5-sun-linux.nix @@ -10,13 +10,14 @@ assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"; +let name = "jdk-1_5_0_15"; in stdenv.mkDerivation { - name = "jdk-1.5.0_14"; - filename = "jdk-1_5_0_14"; - dirname = "jdk1.5.0_14"; + inherit name; + filename = "jdk-1_5_0_15"; + dirname = "jdk1.5.0_15"; builder = ./builder.sh; - pathname = if stdenv.system == "x86_64-linux" then "/tmp/jdk-1_5_0_14-linux-amd64.bin" else "/tmp/jdk-1_5_0_14-linux-i586.bin"; - md5 = if stdenv.system == "x86_64-linux" then "9dc74d939dd42988280f2c22ab9521bf" else "32df8f2be09c3a0f39da1b3869164b55"; + pathname = if stdenv.system == "x86_64-linux" then "/tmp/${name}-linux-amd64.bin" else "/tmp/${name}-linux-i586.bin"; + md5 = if stdenv.system == "x86_64-linux" then "8c560eda470a50926b9e8dab2c806a25" else "6f45ac598a2f6ff73a2429d6a0da2624"; stdenv = stdenv; inherit unzip; diff --git a/pkgs/development/misc/bleeding-edge-repos/default.nix b/pkgs/development/misc/bleeding-edge-repos/default.nix index a17223479170..9b0aa1c23566 100644 --- a/pkgs/development/misc/bleeding-edge-repos/default.nix +++ b/pkgs/development/misc/bleeding-edge-repos/default.nix @@ -1,16 +1,52 @@ -{ -# each repository has -# a type, url and maybe a tag -# you can add group names to update some repositories at once -# see nix_repository_manager expression in all-packages.nix +args: + with args; + let inherit (builtins) pathExists; in + rec { + /* + tries to get source in this order + 1) Local .tar.gz in ${HOME}/managed_repos/dist/name.tar.gz (-> see nixRepositoryManager) + 2) By importing + pkgs/misc/bleeding-edge-fetch-info/name.nix + (generated by nixRepositoryManager --publish) + 3) Fall back to fetch_xy given with information given by A) But + the sum wil propably be wrong.. + (not everything is implemented now) + */ -http = { type= "darcs"; url="http://darcs.haskell.org/http/"; group="happs"; }; -syb_with_class = { type="darcs"; url="http://happs.org/HAppS/syb-with-class"; group="happs"; }; -happs_data = { type="darcs"; url=http://happs.org/repos/HAppS-Data; group="happs"; }; -happs_util = { type="darcs"; url=http://happs.org/repos/HAppS-Util; group="happs"; }; -happs_state = { type="darcs"; url=http://happs.org/repos/HAppS-State; group="happs"; }; -happs_plugins = { type="darcs"; url=http://happs.org/repos/HAppS-Plugins; group="happs"; }; -happs_ixset = { type="darcs"; url=http://happs.org/repos/HAppS-IxSet; group="happs"; }; -happs_server = { type="darcs"; url=http://happs.org/repos/HAppS-HTTP; group="happs"; }; -cabal = { type="darcs"; url=http://darcs.haskell.org/cabal; }; + managedRepoDir = getConfig [ "bleedingEdgeRepos" "managedRepoDir" ] (builtins.getEnv "HOME" + "/managed_repos"); + + sourceByName = name : ( + let localTarGZ = managedRepoDir+"/dist/${name}.tar.gz"; + fetchUrlInfoFile = ../../../misc/bleeding-edge-fetch-info + "/${name}.nix"; in + if pathExists localTarGZ + then localTarGZ + else if pathExists fetchUrlInfoFile + then (import fetchUrlInfoFile) { inherit fetchurl; } + else builtins.trace "warning, no bleeding edge source info (${fetchUrlInfoFile}) found for ${name}, hash will propably be wrong" + (let attr = __getAttr name repos; + in if (attr.type == "darcs") + then fetchdarcs_2pre { inherit (attr) url md5; } + else throw "TODO") ); + + repos = { + # each repository has + # a type, url and maybe a tag + # you can add groups names to update some repositories at once + # see nix_repository_manager expression in all-packages.nix + + nix_repository_manager = { type = "darcs"; url = "http://mawercer.de/~marc/repos/nix-repository-manager"; }; + + # darcs repositories haskell + http = { type= "darcs"; url="http://darcs.haskell.org/http/"; groups="happs"; }; + syb_with_class = { type="darcs"; url="http://happs.org/HAppS/syb-with-class"; groups="happs"; }; + happs_data = { type="darcs"; url=http://happs.org/repos/HAppS-Data; groups="happs"; }; + happs_util = { type="darcs"; url=http://happs.org/repos/HAppS-Util; groups="happs"; }; + happs_state = { type="darcs"; url=http://happs.org/repos/HAppS-State; groups="happs"; }; + happs_plugins = { type="darcs"; url=http://happs.org/repos/HAppS-Plugins; groups="happs"; }; + happs_ixset = { type="darcs"; url=http://happs.org/repos/HAppS-IxSet; groups="happs"; }; + happs_server = { type="darcs"; url=http://happs.org/repos/HAppS-HTTP; groups="happs"; }; + + # git repositories + hypertable = { type="git"; url="git://scm.hypertable.org/pub/repos/hypertable.git"; groups=""; }; + } // getConfig [ "bleedingEdgeRepos" "repos" ] {}; } diff --git a/pkgs/misc/bleeding-edge-fetch-info/ghc_lambdavm.nix b/pkgs/misc/bleeding-edge-fetch-info/ghc_lambdavm.nix new file mode 100644 index 000000000000..e7ec63931707 --- /dev/null +++ b/pkgs/misc/bleeding-edge-fetch-info/ghc_lambdavm.nix @@ -0,0 +1,3 @@ + args: with args; fetchurl { + url = http://mawercer.de/~nix/repos/ghc_lambdavm.tar.gz; + sha256 = "3d10e839b8226987383e870258ff38b56442ff254688f7c50983850676f992cb";} diff --git a/pkgs/misc/bleeding-edge-fetch-info/happs_data.nix b/pkgs/misc/bleeding-edge-fetch-info/happs_data.nix new file mode 100644 index 000000000000..964e8b4f5b5f --- /dev/null +++ b/pkgs/misc/bleeding-edge-fetch-info/happs_data.nix @@ -0,0 +1,3 @@ + args: with args; fetchurl { + url = http://mawercer.de/~nix/repos/happs_data.tar.gz; + sha256 = "26aec1571b1c1e69bf5a79fa6b3346e7493e3a4e00efe4c23a57b04e35e8d5a3";} diff --git a/pkgs/misc/bleeding-edge-fetch-info/happs_ixset.nix b/pkgs/misc/bleeding-edge-fetch-info/happs_ixset.nix new file mode 100644 index 000000000000..5d4a4be4f167 --- /dev/null +++ b/pkgs/misc/bleeding-edge-fetch-info/happs_ixset.nix @@ -0,0 +1,3 @@ + args: with args; fetchurl { + url = http://mawercer.de/~nix/repos/happs_ixset.tar.gz; + sha256 = "80c857775cccdff49c55f28be069b53e14653b2812808ef9b4456aa500431241";} diff --git a/pkgs/misc/bleeding-edge-fetch-info/happs_plugins.nix b/pkgs/misc/bleeding-edge-fetch-info/happs_plugins.nix new file mode 100644 index 000000000000..fc285b94b774 --- /dev/null +++ b/pkgs/misc/bleeding-edge-fetch-info/happs_plugins.nix @@ -0,0 +1,3 @@ + args: with args; fetchurl { + url = http://mawercer.de/~nix/repos/happs_plugins.tar.gz; + sha256 = "ff4ec49f4fcfb835a92ef9ec12ef7d1644d21318ca32a064ba8b72ea083bc103";} diff --git a/pkgs/misc/bleeding-edge-fetch-info/happs_server.nix b/pkgs/misc/bleeding-edge-fetch-info/happs_server.nix new file mode 100644 index 000000000000..00a98a3ae4a8 --- /dev/null +++ b/pkgs/misc/bleeding-edge-fetch-info/happs_server.nix @@ -0,0 +1,3 @@ + args: with args; fetchurl { + url = http://mawercer.de/~nix/repos/happs_server.tar.gz; + sha256 = "76dbb45796c8795f93df39ea3a87cd9028eb4fcdbea1e3c611596298dbbc0f69";} diff --git a/pkgs/misc/bleeding-edge-fetch-info/happs_state.nix b/pkgs/misc/bleeding-edge-fetch-info/happs_state.nix new file mode 100644 index 000000000000..188135c14f03 --- /dev/null +++ b/pkgs/misc/bleeding-edge-fetch-info/happs_state.nix @@ -0,0 +1,3 @@ + args: with args; fetchurl { + url = http://mawercer.de/~nix/repos/happs_state.tar.gz; + sha256 = "d59f13b2cdcfbf412be0ee973c3824c2035b55c613f293ae98894dc8bd9de9f2";} diff --git a/pkgs/misc/bleeding-edge-fetch-info/happs_util.nix b/pkgs/misc/bleeding-edge-fetch-info/happs_util.nix new file mode 100644 index 000000000000..5ceb76e6db57 --- /dev/null +++ b/pkgs/misc/bleeding-edge-fetch-info/happs_util.nix @@ -0,0 +1,3 @@ + args: with args; fetchurl { + url = http://mawercer.de/~nix/repos/happs_util.tar.gz; + sha256 = "c5c5b363c79bba39ab7c30a6e7371fec9401e26dea4be82be1e4777acab5b965";} diff --git a/pkgs/misc/bleeding-edge-fetch-info/hsjava.nix b/pkgs/misc/bleeding-edge-fetch-info/hsjava.nix new file mode 100644 index 000000000000..b275c6bc1a19 --- /dev/null +++ b/pkgs/misc/bleeding-edge-fetch-info/hsjava.nix @@ -0,0 +1,3 @@ + args: with args; fetchurl { + url = http://mawercer.de/~nix/repos/hsjava.tar.gz; + sha256 = "952839e53f63fc43c7c8a760bab97d150c504e148ebdd407be5e642661ed048f";} diff --git a/pkgs/misc/bleeding-edge-fetch-info/hsutils.nix b/pkgs/misc/bleeding-edge-fetch-info/hsutils.nix new file mode 100644 index 000000000000..7f4d93f97ef2 --- /dev/null +++ b/pkgs/misc/bleeding-edge-fetch-info/hsutils.nix @@ -0,0 +1,3 @@ + args: with args; fetchurl { + url = http://mawercer.de/~nix/repos/hsutils.tar.gz; + sha256 = "6d1cc9881fb2684016e52d3ab8e6666c5396da168eb298c3a549294668f6aa52";} diff --git a/pkgs/misc/bleeding-edge-fetch-info/http.nix b/pkgs/misc/bleeding-edge-fetch-info/http.nix new file mode 100644 index 000000000000..4ef8410096d0 --- /dev/null +++ b/pkgs/misc/bleeding-edge-fetch-info/http.nix @@ -0,0 +1,3 @@ + args: with args; fetchurl { + url = http://mawercer.de/~nix/repos/http.tar.gz; + sha256 = "3e463fa090c6a7ddb06e88b592b1788a216db7eaf9384850b6d462217ba5be62";} diff --git a/pkgs/misc/bleeding-edge-fetch-info/hypertable.nix b/pkgs/misc/bleeding-edge-fetch-info/hypertable.nix new file mode 100644 index 000000000000..022c1d87e0a6 --- /dev/null +++ b/pkgs/misc/bleeding-edge-fetch-info/hypertable.nix @@ -0,0 +1,3 @@ + args: with args; fetchurl { + url = http://mawercer.de/~nix/repos/hypertable.tar.gz; + sha256 = "d8a385def778d817415a6dd9d7ce10a60525c3c4a4d4dd8ec3bd8cfd359d2ab4";} diff --git a/pkgs/misc/bleeding-edge-fetch-info/nix_repository_manager.nix b/pkgs/misc/bleeding-edge-fetch-info/nix_repository_manager.nix new file mode 100644 index 000000000000..5a919d6b9e41 --- /dev/null +++ b/pkgs/misc/bleeding-edge-fetch-info/nix_repository_manager.nix @@ -0,0 +1,3 @@ + args: with args; fetchurl { + url = http://mawercer.de/~nix/repos/nix_repository_manager.tar.gz; + sha256 = "f85846540a88f0c168ab6632a6bcba20fa4a41e263f7183c354e8e913b2c7938";} diff --git a/pkgs/misc/bleeding-edge-fetch-info/syb_with_class.nix b/pkgs/misc/bleeding-edge-fetch-info/syb_with_class.nix new file mode 100644 index 000000000000..97339411ee15 --- /dev/null +++ b/pkgs/misc/bleeding-edge-fetch-info/syb_with_class.nix @@ -0,0 +1,3 @@ + args: with args; fetchurl { + url = http://mawercer.de/~nix/repos/syb_with_class.tar.gz; + sha256 = "6893a44c6831b3fd10587c275b82903d24b8a51409eead9ec2c530300f2e6542";} diff --git a/pkgs/misc/my_env/default.nix b/pkgs/misc/my_env/default.nix new file mode 100644 index 000000000000..94c7a591081d --- /dev/null +++ b/pkgs/misc/my_env/default.nix @@ -0,0 +1,35 @@ +# idea: provide nix environment for your developement actions +# experimental + +/* + # example for nix itself adding glibc tag file to an env var. + # experimental + env_nix = my_environment rec { + buildInputs = [perl curl bzip2 aterm242fixes db4] + ++ map (x : sourceWithTagsDerivation ( (addCTaggingInfo x ).passthru.sourceWithTags ) ) [ glibc ]; + db4 = db44; + aterm = aterm242fixes; + name = "env_nix"; + userCmds = ". ~/.bashrc + PS1='\033]2;\h:\u:\w\007\\nenv ${name} \[\033[1;32m\][\u@\h: \w ]$\[\033[0m\] ' + "; + }; +*/ + +args: stdenv.mkDerivation ( + { userCmds =""; } // { + phases = "buildPhase"; + buildPhase = " + ensureDir \$out/bin + name=${args.name} + o=\$out/bin/$name + echo -e \"#!/bin/sh --login\\n\" >> \$o + export | grep -v HOME= | grep -v PATH= >> \$o + echo \"export PATH=\$PATH:\\\$PATH entering $name\" >> \$o + echo \"echo entering $name\" >> \$o + echo \"$userCmds\" >> \$o + echo \"/bin/sh\" >> $o + echo \"echo leaving $name\" >> \$o + chmod +x $o + "; +} //args); diff --git a/pkgs/tools/package-management/nixRepositoryManager/default.nix b/pkgs/tools/package-management/nixRepositoryManager/default.nix index e3e20dfa913c..9ac25e39bf19 100644 --- a/pkgs/tools/package-management/nixRepositoryManager/default.nix +++ b/pkgs/tools/package-management/nixRepositoryManager/default.nix @@ -1,34 +1,41 @@ +/* + repos for config file taken from all-pacakges.bleedingEdgeFetchInfo + + nix-repository-manager --update (for your local use only) + + if you want to publish repos ask for the password (marco-oweber@gmx.de) + echo '{ bleedingEdgeFetchInfo = "${your_nix_pkgs_location}/pkgs/misc/bleeding-edge-fetch-info"; }' >> .nixpkgs/config.nix + reinstall nix-repository-manager to recreate config + nix-repository-manager --publish (to save on server +*/ + + args: with args; with lib; let - repoDir = builtins.getEnv "HOME" + "/managed_repos"; toConfigLine = name : set : "[(\"name\",\"${name}\")," + ( concatStringsSep "," (map (a: "(\"${a}\",\"${__getAttr a set}\")" ) (__attrNames set)))+"]"; - config = writeText "nix_repository_manager_config" - (repoDir+"\n" + - concatStringsSep "\n" (mapRecordFlatten toConfigLine bleeding_edge_repos)); + nixPublishDir = getConfig [ "bleedingEdgeRepos" "bleedingEdgeFetchInfo"] "/tmp/bleeding-edge-fetch-info"; + config = writeText "nix-repository-manager_config" + (bleedingEdgeRepos.managedRepoDir+"\n" + + nixPublishDir+"\n" + + concatStringsSep "\n" (mapRecordFlatten toConfigLine (bleedingEdgeRepos.repos))); in args.stdenv.mkDerivation { - inherit repoDir; # amend repoDir so that you know which one to take when installing bleeding edge packages + name = "nix-repository-manager"; - name = "nix_repository_manager"; + src = bleedingEdgeRepos.sourceByName "nix_repository_manager"; - #src = args.fetchdarcs { - # url = http://mawercer.de/~marc/repos/nix_repository_manager; - # md5 = "b33ba7a5b756eda00a79ba34505ea7ee"; - #}; - source = /pr/haskell/nix_repository_manager/nix_repository_manager.hs; - - phases = "buildPhase"; + phases = "unpackPhase buildPhase"; buildPhase = " - s=\$out/share/nix_repository_manager + s=\$out/share/nix-repository-manager ensureDir \$out/bin \$s - #ghc --make nix_repository_manager.hs -o \$s/nix_repository_manager - ghc --make \$source -o \$s/nix_repository_manager - b=\$out/bin/nix_repository_manager - echo -e \"#!/bin/sh\\n\$s/nix_repository_manager --config ${config} \\\$@\" > \$b + #ghc --make nix-repository-manager.hs -o \$s/nix-repository-manager + ghc --make nix-repository-manager.hs -o \$s/nix-repository-manager + b=\$out/bin/nix-repository-manager + echo -e \"#!/bin/sh\\n\$s/nix-repository-manager --config ${config} \\\$@\" > \$b chmod +x \$b "; @@ -36,7 +43,7 @@ args.stdenv.mkDerivation { meta = { description = "makes it easy to keep some packages up to date"; - homepage = http://mawercer.de/repos/nix_repository_manager; - license = "do with it what you want"; + homepage = http://mawercer.de/repos/nix-repository-manager; + license = "GPL"; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9d50a1bdec87..d354d8a532a1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1134,12 +1134,11 @@ rec { inherit fetchurl stdenv gawk; }; - # commented out till I've implemented putting bleeding edge source somewhere - #flapjax = import ../development/compilers/flapjax { - #inherit fetchurl stdenv; - #ghc = ghcsAndLibs.ghc68.ghc; - #libs = with (ghc68_extra_libs ghcsAndLibs.ghc68 // ghcsAndLibs.ghc68.core_libs); [ mtl parsec random ]; - #}; + flapjax = import ../development/compilers/flapjax { + inherit fetchurl stdenv; + ghc = ghcsAndLibs.ghc68.ghc; + libs = with (ghc68_extra_libs ghcsAndLibs.ghc68 // ghcsAndLibs.ghc68.core_libs); [ mtl parsec random ]; + }; g77 = import ../build-support/gcc-wrapper { name = "g77"; @@ -1325,7 +1324,9 @@ rec { # introducing p here to speed things up. # It merges derivations (defined below) and additional inputs. I hope that using as few nix functions as possible results in greates speed? # unfortunately with x; won't work because it forces nix to evaluate all attributes of x which would lead to infinite recursion - pkgs = let x = ghc.core_libs // derivations; in { + pkgs = let x = ghc.core_libs // derivations; + inherit (bleedingEdgeRepos) sourceByName; + in { # ghc extra packages mtl = { name="mtl-1.1.0.0"; srcDir="libraries/mtl"; p_deps=[ x.base ]; src = ghc.extra_src; }; parsec = { name="parsec-2.1.0.0"; srcDir="libraries/parsec"; p_deps=[ x.base ]; src = ghc.extra_src; }; @@ -1404,27 +1405,27 @@ rec { # HAPPS - Libraries http_darcs = { name="http-darcs"; p_deps = [x.network x.parsec]; - src = dgeSourcee "http_darcs"; + src = sourceByName "http_darcs"; #src = fetchdarcs { url = "http://darcs.haskell.org/http/"; md5 = "4475f858cf94f4551b77963d08d7257c"; }; }; syb_with_class_darcs = { name="syb-with-class-darcs"; p_deps = [x.template_haskell x.bytestring ]; src = # fetchdarcs { url = "http://happs.org/HAppS/syb-with-class"; md5 = "b42336907f7bfef8bea73bc36282d6ac"; }; - dgeSourcee "syb_with_class"; # { url = "http://happs.org/HAppS/syb-with-class"; md5 = "b42336907f7bfef8bea73bc36282d6ac"; }; + sourceByName "syb_with_class"; # { url = "http://happs.org/HAppS/syb-with-class"; md5 = "b42336907f7bfef8bea73bc36282d6ac"; }; }; happs_data_darcs = { name="HAppS-Data-darcs"; p_deps=[ x.base x.mtl x.template_haskell x.syb_with_class_darcs x.haxml x.happs_util_darcs x.regex_compat x.bytestring x.pretty x.binary ]; - src = dgeSourcee "happs_data"; # fetchdarcs { url = "http://happs.org/repos/HAppS-Data"; md5 = "10c505dd687e9dc999cb187090af9ba7"; }; + src = sourceByName "happs_data"; # fetchdarcs { url = "http://happs.org/repos/HAppS-Data"; md5 = "10c505dd687e9dc999cb187090af9ba7"; }; }; happs_util_darcs = { name="HAppS-Util-darcs"; p_deps=[ x.base x.mtl x.hslogger x.template_haskell x.array x.bytestring x.old_time x.process x.directory ]; - src = dgeSourcee "happs_util"; # fetchdarcs { url = "http://happs.org/repos/HAppS-Util"; md5 = "693cb79017e522031c307ee5e59fc250"; }; + src = sourceByName "happs_util"; # fetchdarcs { url = "http://happs.org/repos/HAppS-Util"; md5 = "693cb79017e522031c307ee5e59fc250"; }; }; happs_state_darcs = { name="HAppS-State-darcs"; p_deps=[ x.base x.haxml x.mtl x.network x.stm x.template_haskell x.hslogger x.happs_util_darcs x.happs_data_darcs x.bytestring x.containers x.random x.old_time x.old_locale x.unix x.directory x.binary ]; - src = dgeSourcee "happs_state"; + src = sourceByName "happs_state"; #src = fetchdarcs { url = "http://happs.org/repos/HAppS-State"; # md5 = "956e5c293b60f4a98148fedc5fa38acc"; # }; @@ -1437,7 +1438,7 @@ rec { happs_ixset_darcs = { name="HAppS-IxSet-darcs"; p_deps=[ x.base x.mtl x.hslogger x.happs_util_darcs x.happs_state_darcs x.happs_data_darcs x.template_haskell x.syb_with_class_darcs x.containers ]; - src = dgeSourcee "happs_ixset"; + src = sourceByName "happs_ixset"; #src = fetchdarcs { url = "http://happs.org/repos/HAppS-IxSet"; #md5 = "fa6b24517f09aa16e972f087430967fd"; #tag = "0.9.2"; @@ -1451,13 +1452,13 @@ rec { x.template_haskell x.xhtml x.html x.bytestring x.random x.containers x.old_time x.old_locale x.directory x.unix]; #src = fetchdarcs { url = "http://happs.org/repos/HAppS-HTTP"; md5 = "e1bb17eb30a39d30b8c34dffbf80edc2"; }; - src = dgeSourcee "happs_server_darcs"; + src = sourceByName "happs_server_darcs"; }; # we need recent version of cabal (because only this supports --pkg-config propably) Thu Feb 7 14:54:07 CET 2008 # is be added to buildInputs automatically cabal_darcs = { name=cabal_darcs_name; p_deps = with ghc.core_libs; [base rts directory process pretty containers filepath]; - src = dgeSourcee "cabal"; + src = sourceByName "cabal"; #fetchdarcs { url = "http://darcs.haskell.org/cabal"; md5 = "8b0bc3c7f2676ce642f98b1568794cd6"; }; }; }; @@ -1476,8 +1477,6 @@ rec { }.derivations; - /* commented to not make the buildfarm fail. You need to install nixRepositoryManager and run it.. - # the wrappers basically does one thing: It defines GHC_PACKAGE_PATH before calling ghc{i,-pkg} # So you can have different wrappers with different library combinations # So installing ghc libraries isn't done by nix-env -i package but by adding @@ -1490,27 +1489,16 @@ rec { ghcPackagedLibs = true; name = "ghc${ghc.version}_wrapper"; suffix = "${ghc.version}wrapper"; - libraries = map ( a : __getAttr a (ghc68_extra_libs ghcsAndLibs.ghc68 ) ) [ "mtl" ] + libraries = # core_libs distributed with this ghc version - #(lib.flattenAttrs ghcsAndLibs.ghc68.core_libs) - #map ( a : __getAttr a ghcsAndLibs.ghc68.core_libs ) [ - # "cabal" "array" "base" "bytestring" "containers" "containers" "directory" - # "filepath" "ghc-${ghc.version}" "haskell98" "hpc" "old_locale" "old_time" - # "old_time" "packedstring" "pretty" "process" "random" "readline" "rts" - # "template_haskell" "unix" "template_haskell" ]; - # some extra libs + (lib.flattenAttrs ghcsAndLibs.ghc68.core_libs) + # (map ( a : __getAttr a ghcsAndLibs.ghc68.core_libs ) [ "cabal" "mtl" "base" ] + # some extra libs ++ (lib.flattenAttrs (ghc68_extra_libs ghcsAndLibs.ghc68) ); - # or specify the ones you want to install using this list (possible values see attributes in ghc68_extra_libs - #++ map ( a : __getAttr a (ghc68_extra_libs ghcsAndLibs.ghc68 ) ) - #[ "mtl" "parsec" "cabal_darcs" "haxml" "network" "regex_base" - #"regex_compat" "regex_posix" "stm" "hunit" "quickcheck" "crypto" - #"hslogger" "http_darcs" "syb_with_class_darcs" - #]; - # some additional libs + # ++ map ( a : __getAttr a (ghc68_extra_libs ghcsAndLibs.ghc68 ) ) [ "mtl" "parsec" ... ] inherit ghc; }; - */ # ghc66boot = import ../development/compilers/ghc-6.6-boot { # inherit fetchurl stdenv perl readline; @@ -1878,16 +1866,9 @@ rec { }; */ - bleedingEdgeRepos = import ../development/misc/bleeding-edge-repos; - # name must be foudn in bleedingEdgeRepos attr set - dgeSourcee = name : ( - let targz = nixRepositoryManager.repoDir+"/dist/${name}.tar.gz"; in - if builtins.pathExists targz - then targz - else let attr = __getAttr name bleedingEdgeRepos; - in if (attr.type == "darcs") - then fetchdarcs_2pre { inherit (attr) url md5; } - else throw "TODO"); + bleedingEdgeRepos = import ../development/misc/bleeding-edge-repos { + inherit getConfig fetchdarcs_2pre fetchurl; + }; ecj = import ../development/eclipse/ecj { inherit fetchurl stdenv unzip jre ant; @@ -6051,7 +6032,7 @@ rec { }; nixRepositoryManager = import ../tools/package-management/nixRepositoryManager { - inherit fetchurl stdenv bleedingEdgeRepos lib writeText; + inherit fetchurl stdenv bleedingEdgeRepos lib writeText getConfig; ghc = ghcsAndLibs.ghc68.ghc; fetchdarcs = fetchdarcs_2pre; }; @@ -6198,38 +6179,6 @@ rec { inherit (xlibs) libX11; }; - # idea: provide environment so that you can use let nix assemble all dependencies - # while keeping the same source base when developping - # experimental - my_environment = args: stdenv.mkDerivation ( - { userCmds =""; } // { - phases = "buildPhase"; - buildPhase = " - ensureDir \$out/bin - name=${args.name} - o=\$out/bin/$name - echo -e \"#!/bin/sh --login\\n\" >> \$o - export | grep -v HOME= | grep -v PATH= >> \$o - echo \"export PATH=\$PATH:\\\$PATH entering $name\" >> \$o - echo \"echo entering $name\" >> \$o - echo \"$userCmds\" >> \$o - echo \"/bin/sh\" >> $o - echo \"echo leaving $name\" >> \$o - chmod +x $o - "; - } //args); - - # example for nix itself adding glibc tag file to an env var. - # experimental - env_nix = my_environment rec { - buildInputs = [perl curl bzip2 aterm242fixes db4] - ++ map (x : sourceWithTagsDerivation ( (addCTaggingInfo x ).passthru.sourceWithTags ) ) [ glibc ]; - db4 = db44; - aterm = aterm242fixes; - name = "env_nix"; - userCmds = ". ~/.bashrc - PS1='\033]2;\h:\u:\w\007\\nenv ${name} \[\033[1;32m\][\u@\h: \w ]$\[\033[0m\] ' - "; - }; + #my_env = import ../misc/my_env; }