Hi, I'm pleased to announce the availability of a new stable release of the Nix Packages collection. Release 0.11 can be found at
http://nix.cs.uu.nl/dist/nix/nixpkgs-0.11/ *** Release notes *** The release notes can also be found (in a nicer format than ASCII) at http://nix.cs.uu.nl/dist/nix/nixpkgs-0.11/release-notes/. This release has the following improvements: * The standard build environment (stdenv) is now pure on the x86_64-linux and powerpc-linux platforms, just as on i686-linux. (Purity means that building and using the standard environment has no dependencies outside of the Nix store. For instance, it doesn't require an external C compiler such as /usr /bin/gcc.) Also, the statically linked binaries used in the bootstrap process are now automatically reproducible, making it easy to update the bootstrap tools and to add support for other Linux platforms. See pkgs/ stdenv/linux/make-bootstrap-tools.nix for details. * Hook variables in the generic builder are now executed using the eval shell command. This has a major advantage: you can write hooks directly in Nix expressions. For instance, rather than writing a builder like this: source $stdenv/setup postInstall=postInstall postInstall() { ln -sf gzip $out/bin/gunzip ln -sf gzip $out/bin/zcat } genericBuild (the gzip builder), you can just add this attribute to the derivation: postInstall = "ln -sf gzip $out/bin/gunzip; ln -sf gzip $out/bin/zcat"; and so a separate build script becomes unnecessary. This should allow us to get rid of most builders in Nixpkgs. * It is now possible to have the generic builder pass arguments to configure and make that contain whitespace. Previously, for example, you could say in a builder, configureFlags="CFLAGS=-O0" but not configureFlags="CFLAGS=-O0 -g" since the -g would be interpreted as a separate argument to configure. Now you can say configureFlagsArray=("CFLAGS=-O0 -g") or similarly configureFlagsArray=("CFLAGS=-O0 -g" "LDFLAGS=-L/foo -L/bar") which does the right thing. Idem for makeFlags, installFlags, checkFlags and distFlags. Unfortunately you can't pass arrays to Bash through the environment, so you can't put the array above in a Nix expression, e.g., configureFlagsArray = ["CFLAGS=-O0 -g"]; since it would just be flattened to a since string. However, you can use the inline hooks described above: preConfigure = "configureFlagsArray=(\"CFLAGS=-O0 -g\")"; * The function fetchurl now has support for two different kinds of mirroring of files. First, it has support for content-addressable mirrors. For example, given the fetchurl call fetchurl { url = http://releases.mozilla.org/.../firefox-2.0.0.6-source.tar.bz2; sha1 = "eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082"; } fetchurl will first try to download this file from http://nix.cs.uu.nl/dist /tarballs/sha1/eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082. If that file doesn't exist, it will try the original URL. In general, the "content-addressed" location is mirror/hash-type/hash. There is currently only one content-addressable mirror (http://nix.cs.uu.nl/dist/tarballs), but more can be specified in the hashedMirrors attribute in pkgs/ build-support/fetchurl/mirrors.nix, or by setting the NIX_HASHED_MIRRORS environment variable to a whitespace-separated list of URLs. Second, fetchurl has support for widely-mirrored distribution sites such as SourceForge or the Linux kernel archives. Given a URL of the form mirror:// site/path, it will try to download path from a configurable list of mirrors for site. (This idea was borrowed from Gentoo Linux.) Example: fetchurl { url = mirror://gnu/gcc/gcc-4.2.0/gcc-core-4.2.0.tar.bz2; sha256 = "0ykhzxhr8857dr97z0j9wyybfz1kjr71xk457cfapfw5fjas4ny1"; } Currently site can be sourceforge, gnu and kernel. The list of mirrors is defined in pkgs/build-support/fetchurl/mirrors.nix. You can override the list of mirrors for a particular site by setting the environment variable NIX_MIRRORS_site, e.g. export NIX_MIRRORS_sourceforge=http://osdn.dl.sourceforge.net/sourceforge/ * Important updates: o Glibc 2.5. o GCC 4.1.2. o Gnome 2.16.3. o X11R7.2. o Linux 2.6.21.7 and 2.6.22.6. o Emacs 22.1. * Major new packages: o KDE 3.5.6 Base. o Wine 0.9.43. o OpenOffice 2.2.1. o Many Linux system packages to support NixOS. The following people contributed to this release: Andres Löh, Arie Middelkoop, Armijn Hemel, Eelco Dolstra, Marc Weber, Mart Kolthof, Martin Bravenboer, Michael Raskin, Wouter den Breejen and Yury G. Kudryashov. -- Eelco Dolstra | http://www.cs.uu.nl/~eelco _______________________________________________ nix-dev mailing list [email protected] https://mail.cs.uu.nl/mailman/listinfo/nix-dev
