diff options
Diffstat (limited to 'pkgs/stdenv/nix-linux-static/default.nix')
-rw-r--r-- | pkgs/stdenv/nix-linux-static/default.nix | 159 |
1 files changed, 144 insertions, 15 deletions
diff --git a/pkgs/stdenv/nix-linux-static/default.nix b/pkgs/stdenv/nix-linux-static/default.nix index d4afccabe6ba3..f8121fb540231 100644 --- a/pkgs/stdenv/nix-linux-static/default.nix +++ b/pkgs/stdenv/nix-linux-static/default.nix @@ -1,22 +1,151 @@ -{stdenv, glibc, pkgs, genericStdenv, gccWrapper}: +rec { -genericStdenv { - name = "stdenv-nix-linux-static"; - preHook = ./prehook.sh; - initialPath = (import ./path.nix) {pkgs = (import ./pkgs.nix) {stdenv = stdenv;};}; + curl = derivation { + name = "curl"; + builder = ./bash-static/bash; + tar = ./gnutar-static/bin/tar; + gunzip = ./gzip-static/bin/gunzip; + curl = ./curl-static/curl-7.12.2-static.tar.gz; + cp = ./tools/cp; + system = "i686-linux"; + args = [ ./scripts/curl-unpack ]; + }; + + download = + { url, pkgname, postProcess ? [], addToPath ? [] + , extra ? null, extra2 ? null + , extra3 ? null, extra4? null, patchelf ? null}: + derivation { + name = pkgname; + builder = ./bash-static/bash; + tar = ./gnutar-static/bin/tar; + gunzip = ./gzip-static/bin/gunzip; + inherit curl url; + cp = ./tools/cp; + system = "i686-linux"; + args = [ ./scripts/download-script ]; + inherit postProcess addToPath extra extra2 extra3 extra4 patchelf; + }; + + coreutils = download { + url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/coreutils-5.0-static.tar.gz; + pkgname = "coreutils"; + }; + + patchelf = ./patchelf-static/bin/patchelf; + + bzip2 = download { + url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/bzip2-1.0.2-static.tar.gz; + pkgname = "bzip2"; + }; - inherit stdenv; + gnumake = download { + url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/make-3.80-static.tar.gz; + pkgname = "gnumake"; + }; + + binutils = download { + url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/binutils-2.15-static.tar.gz; + pkgname = "binutils"; + }; + + diffutils = download { + url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/diffutils-2.8.1-static.tar.gz; + pkgname = "diffutils"; + }; + + gnused = download { + url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/sed-4.0.7-static.tar.gz; + pkgname = "gnused"; + }; - gcc = gccWrapper { - #name = pkgs.gcc.name; - nativeTools = false; - nativeGlibc = false; - inherit (pkgs) binutils; - gcc = (import ./gcc-static) {stdenv = stdenv;}; - inherit stdenv glibc; - shell = pkgs.bash ~ /bin/sh; + gnugrep = download { + url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/grep-2.5.1-static.tar.gz; + pkgname = "gnugrep"; }; - shell = pkgs.bash ~ /bin/sh; + gcc = (download {url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/gcc-3.4.2-static.tar.gz; + pkgname = "gcc"; + postProcess = [./scripts/fix-outpath.sh]; + addToPath = [coreutils findutils gnused]; + }) // { langC = true; langCC = false; langF77 = false; }; + gawk = download { + url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/gawk-3.1.3-static.tar.gz; + pkgname = "gawk"; + }; + + patch = download { + url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/patch-2.5.4-static.tar.gz; + pkgname = "patch"; + }; + + findutils = download { + url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/findutils-4.1.20-static.tar.gz; + pkgname = "findutils"; + }; + + linuxHeaders = download { + url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/linux-headers-2.4.25-i386.tar.gz; + pkgname = "linux-headers"; + }; + + glibc = download { + url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/glibc-2.3.3-static-2.tar.gz; + pkgname = "glibc"; + patchelf = ./patchelf-static/bin/patchelf; + postProcess = [./scripts/add-symlink.sh /* ./scripts/fix-outpath.sh */]; + addToPath = [coreutils findutils gnused]; + extra = linuxHeaders; + }; + + + stdenvInitial = let { + + body = derivation { + name = "stdenv-linux-static-initial"; + system = "i686-linux"; + builder = ./bash-static/bash; + args = ./scripts/builder-stdenv-initial.sh; + inherit coreutils gnused; + } // { + mkDerivation = attrs: derivation (attrs // { + builder = ./bash-static/bash; + args = ["-e" attrs.builder]; + stdenv = body; + system = body.system; + }); + + shell = ./bash-static/bash; + }; + }; + + + stdenvBootFun = {glibc, gcc, binutils, staticGlibc}: (import ../generic) { + name = "stdenv-linux-static-boot"; + param1 = if staticGlibc then "static" else "dynamic"; + preHook = ./prehook.sh; + stdenv = stdenvInitial; + shell = ./bash-static/bash; + gcc = (import ../../build-support/gcc-wrapper) { + stdenv = stdenvInitial; + nativeTools = false; + nativeGlibc = false; + inherit gcc glibc binutils; + }; + initialPath = [ + coreutils + ./gnutar-static + ./gzip-static + bzip2 + gnused + gnugrep + gawk + gnumake + findutils + diffutils + patch + ./patchelf-static + ]; + }; } |