From ce22859f8aa3b06dc8277376916c619a34030310 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 18 Oct 2006 16:16:07 +0000 Subject: [PATCH] * Bash on dietlibc. * Pass -D_BSD_SOURCE=1 by default in the dietlibc stdenv. svn path=/nixpkgs/trunk/; revision=6768 --- pkgs/shells/bash-static/builder.sh | 12 ------------ pkgs/shells/bash-static/default.nix | 13 ------------- pkgs/shells/bash/default.nix | 10 +++++++++- pkgs/shells/bash/winsize.patch | 14 ++++++++++++++ pkgs/tools/misc/coreutils/default.nix | 1 - pkgs/top-level/all-packages.nix | 7 ++++--- 6 files changed, 27 insertions(+), 30 deletions(-) delete mode 100644 pkgs/shells/bash-static/builder.sh delete mode 100644 pkgs/shells/bash-static/default.nix create mode 100644 pkgs/shells/bash/winsize.patch diff --git a/pkgs/shells/bash-static/builder.sh b/pkgs/shells/bash-static/builder.sh deleted file mode 100644 index b8c3a401022f..000000000000 --- a/pkgs/shells/bash-static/builder.sh +++ /dev/null @@ -1,12 +0,0 @@ -source $stdenv/setup -genericBuild -cd $out/bin - -find . -type f | while read fn; do - cat $fn | sed "s|/nix/store/[a-z0-9]*-|/nix/store/ffffffffffffffffffffffffffffffff-|g" > $fn.tmp - if test -x $fn; then chmod +x $fn.tmp; fi - mv $fn.tmp $fn -done - -strip $out/bin/bash -ln -s bash sh diff --git a/pkgs/shells/bash-static/default.nix b/pkgs/shells/bash-static/default.nix deleted file mode 100644 index d276468ca3ab..000000000000 --- a/pkgs/shells/bash-static/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{stdenv, fetchurl}: - -stdenv.mkDerivation { - name = "bash-3.1"; - builder = ./builder.sh; - src = fetchurl { - #url = http://nix.cs.uu.nl/dist/tarballs/bash-3.0.tar.gz; - #md5 = "26c4d642e29b3533d8d754995bc277b3"; - url = http://nix.cs.uu.nl/dist/tarballs/bash-3.1.tar.gz; - md5 = "ef5304c4b22aaa5088972c792ed45d72"; - }; - configureFlags = "--enable-static-link --without-bash-malloc"; -} diff --git a/pkgs/shells/bash/default.nix b/pkgs/shells/bash/default.nix index 82f204bd52c4..a8dd2e3dd63e 100644 --- a/pkgs/shells/bash/default.nix +++ b/pkgs/shells/bash/default.nix @@ -1,6 +1,6 @@ {stdenv, fetchurl}: -stdenv.mkDerivation { +stdenv.mkDerivation ({ name = "bash-3.1"; builder = ./builder.sh; src = fetchurl { @@ -12,3 +12,11 @@ stdenv.mkDerivation { description = "GNU Bourne-Again Shell, the de facto standard shell on Linux"; }; } + +# libcompat.a is needed on dietlibc for stpcpy(). +// (if stdenv ? isDietLibC then { + NIX_LDFLAGS = "-lcompat"; + patches = [./winsize.patch]; +} else {}) + +) diff --git a/pkgs/shells/bash/winsize.patch b/pkgs/shells/bash/winsize.patch new file mode 100644 index 000000000000..bbe4151e0cc7 --- /dev/null +++ b/pkgs/shells/bash/winsize.patch @@ -0,0 +1,14 @@ +diff -rc bash-3.1-orig/lib/sh/winsize.c bash-3.1/lib/sh/winsize.c +*** bash-3.1-orig/lib/sh/winsize.c 2006-10-18 18:08:25.000000000 +0200 +--- bash-3.1/lib/sh/winsize.c 2006-10-18 18:10:00.000000000 +0200 +*************** +*** 30,35 **** +--- 30,37 ---- + + #include + ++ #include ++ + #if !defined (STRUCT_WINSIZE_IN_SYS_IOCTL) + /* For struct winsize on SCO */ + /* sys/ptem.h has winsize but needs mblk_t from sys/stream.h */ diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix index bd550a7a7584..020995c6f545 100644 --- a/pkgs/tools/misc/coreutils/default.nix +++ b/pkgs/tools/misc/coreutils/default.nix @@ -7,6 +7,5 @@ stdenv.mkDerivation ({ md5 = "bdec4b75c76ac9bf51b6dd1747d3b06e"; }; } // (if stdenv ? isDietLibC then { - NIX_CFLAGS_COMPILE="-D_BSD_SOURCE=1"; patches = [./uclibc.patch]; } else {})) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1cd722ec6d62..9f490c2104dd 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -84,7 +84,7 @@ rec { # always optimise for size. NIX_CFLAGS_COMPILE = (if args ? NIX_CFLAGS_COMPILE then args.NIX_CFLAGS_COMPILE else "") - + " -Os -s"; + + " -Os -s -D_BSD_SOURCE=1"; configureFlags = (if args ? configureFlags then args.configureFlags else "") @@ -510,8 +510,9 @@ rec { inherit fetchurl stdenv; }); - bashStatic = import ../shells/bash-static { - inherit fetchurl stdenv; + bashDiet = import ../shells/bash { + inherit fetchurl; + stdenv = useDietLibC stdenv; }; tcsh = import ../shells/tcsh {