summary refs log tree commit diff
path: root/maintainers/docs
diff options
context:
space:
mode:
authorArmijn Hemel <armijn@gpl-violations.org>2005-12-27 15:05:35 +0000
committerArmijn Hemel <armijn@gpl-violations.org>2005-12-27 15:05:35 +0000
commit3ab04578937e076c259b866a96957dd12e6880a3 (patch)
tree5efb23504cec80575edeb8616cf6729cecb6394a /maintainers/docs
parent62dc2035fd836891b48dbac8058164255522ac96 (diff)
downloadnixlib-3ab04578937e076c259b866a96957dd12e6880a3.tar
nixlib-3ab04578937e076c259b866a96957dd12e6880a3.tar.gz
nixlib-3ab04578937e076c259b866a96957dd12e6880a3.tar.bz2
nixlib-3ab04578937e076c259b866a96957dd12e6880a3.tar.lz
nixlib-3ab04578937e076c259b866a96957dd12e6880a3.tar.xz
nixlib-3ab04578937e076c259b866a96957dd12e6880a3.tar.zst
nixlib-3ab04578937e076c259b866a96957dd12e6880a3.zip
add some documentation about where to find the Nix expressions for the static
tools in nixpkgs, why we chose dietlibc for some packages and glibc for others.

svn path=/nixpkgs/trunk/; revision=4447
Diffstat (limited to 'maintainers/docs')
-rw-r--r--maintainers/docs/static-initial-env32
1 files changed, 32 insertions, 0 deletions
diff --git a/maintainers/docs/static-initial-env b/maintainers/docs/static-initial-env
new file mode 100644
index 000000000000..024a62a311e7
--- /dev/null
+++ b/maintainers/docs/static-initial-env
@@ -0,0 +1,32 @@
+Upgrading the standard initial environment
+
+For Nix on i686-linux we make use of an environment of statically linked
+tools (see $nixpkgs/stdenv/linux). The first version of these tools were
+compiled outside of Nix, in an impure environment. They are used as some
+magical ingredient to make everything work. To keep these tools more in
+synchronization with the rest of nixpkgs and to make porting of nixpkgs
+to other platforms easier the static versions are now also built with Nix
+and nixpkgs.
+
+The tools can be found in nixpkgs in:
+
+- shells/bash-static
+- tools/networking/curl-diet
+- tools/archivers/gnutar-diet
+- tools/compression/gzip-diet
+- tools/text/gnused-diet
+- tools/text/diffutils-diet
+- tools/text/gnupatch-diet
+- tools/misc/findutils-static
+(still missing: bzip2)
+
+Most packages are compiled with dietlibc, an alternate C library, apart
+from bash and findutils, which are statically linked to glibc. The reason
+we chose dietlibc has various reasons. First of all, curl cannot be built
+statically with glibc. If we do, we get a static binary, but it cannot resolve
+hostnames to IP addresses. glibc dynamically loads functionality at runtime
+to do resolving. When linking with dietlibc this doesn't happen.
+
+The static tools are not used as part of the input hashing (see Eelco's
+PhD thesis, paragraph 5.4.1), so changing them does not change anything and
+will not force a massive rebuild.