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
This commit is contained in:
Marc Weber 2008-03-09 00:08:45 +00:00
parent 7c39433e7b
commit bad0d45562
19 changed files with 184 additions and 117 deletions

View File

@ -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";

View File

@ -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;

View File

@ -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" ] {};
}

View File

@ -0,0 +1,3 @@
args: with args; fetchurl {
url = http://mawercer.de/~nix/repos/ghc_lambdavm.tar.gz;
sha256 = "3d10e839b8226987383e870258ff38b56442ff254688f7c50983850676f992cb";}

View File

@ -0,0 +1,3 @@
args: with args; fetchurl {
url = http://mawercer.de/~nix/repos/happs_data.tar.gz;
sha256 = "26aec1571b1c1e69bf5a79fa6b3346e7493e3a4e00efe4c23a57b04e35e8d5a3";}

View File

@ -0,0 +1,3 @@
args: with args; fetchurl {
url = http://mawercer.de/~nix/repos/happs_ixset.tar.gz;
sha256 = "80c857775cccdff49c55f28be069b53e14653b2812808ef9b4456aa500431241";}

View File

@ -0,0 +1,3 @@
args: with args; fetchurl {
url = http://mawercer.de/~nix/repos/happs_plugins.tar.gz;
sha256 = "ff4ec49f4fcfb835a92ef9ec12ef7d1644d21318ca32a064ba8b72ea083bc103";}

View File

@ -0,0 +1,3 @@
args: with args; fetchurl {
url = http://mawercer.de/~nix/repos/happs_server.tar.gz;
sha256 = "76dbb45796c8795f93df39ea3a87cd9028eb4fcdbea1e3c611596298dbbc0f69";}

View File

@ -0,0 +1,3 @@
args: with args; fetchurl {
url = http://mawercer.de/~nix/repos/happs_state.tar.gz;
sha256 = "d59f13b2cdcfbf412be0ee973c3824c2035b55c613f293ae98894dc8bd9de9f2";}

View File

@ -0,0 +1,3 @@
args: with args; fetchurl {
url = http://mawercer.de/~nix/repos/happs_util.tar.gz;
sha256 = "c5c5b363c79bba39ab7c30a6e7371fec9401e26dea4be82be1e4777acab5b965";}

View File

@ -0,0 +1,3 @@
args: with args; fetchurl {
url = http://mawercer.de/~nix/repos/hsjava.tar.gz;
sha256 = "952839e53f63fc43c7c8a760bab97d150c504e148ebdd407be5e642661ed048f";}

View File

@ -0,0 +1,3 @@
args: with args; fetchurl {
url = http://mawercer.de/~nix/repos/hsutils.tar.gz;
sha256 = "6d1cc9881fb2684016e52d3ab8e6666c5396da168eb298c3a549294668f6aa52";}

View File

@ -0,0 +1,3 @@
args: with args; fetchurl {
url = http://mawercer.de/~nix/repos/http.tar.gz;
sha256 = "3e463fa090c6a7ddb06e88b592b1788a216db7eaf9384850b6d462217ba5be62";}

View File

@ -0,0 +1,3 @@
args: with args; fetchurl {
url = http://mawercer.de/~nix/repos/hypertable.tar.gz;
sha256 = "d8a385def778d817415a6dd9d7ce10a60525c3c4a4d4dd8ec3bd8cfd359d2ab4";}

View File

@ -0,0 +1,3 @@
args: with args; fetchurl {
url = http://mawercer.de/~nix/repos/nix_repository_manager.tar.gz;
sha256 = "f85846540a88f0c168ab6632a6bcba20fa4a41e263f7183c354e8e913b2c7938";}

View File

@ -0,0 +1,3 @@
args: with args; fetchurl {
url = http://mawercer.de/~nix/repos/syb_with_class.tar.gz;
sha256 = "6893a44c6831b3fd10587c275b82903d24b8a51409eead9ec2c530300f2e6542";}

View File

@ -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);

View File

@ -1,34 +1,41 @@
/*
repos for config file taken from all-pacakges.bleedingEdgeFetchInfo
nix-repository-manager --update <name> (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 <name> (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";
};
}

View File

@ -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;
}