[Nix-dev] Nix 1.2 released

Mathijs Kwik mathijs at bluescreen303.nl
Fri Dec 7 14:53:23 CET 2012


Nice, just 2 days late for a sinterklaas-present :P


On Fri, Dec 7, 2012 at 2:31 PM, Eelco Dolstra
<eelco.dolstra at logicblox.com>wrote:

> Hi,
>
> I'm pleased to announce the availability of a new stable release of the
> Nix package manager.  Release 1.2 can be found at
>
>   http://hydra.nixos.org/release/nix/nix-1.2
>
> This release has the following improvements and changes:
>
>   * Nix has a new binary substituter mechanism: the binary cache. A binary
>     cache contains pre-built binaries of Nix packages. Whenever Nix wants
> to
>     build a missing Nix store path, it will check a set of binary caches
> to see
>     if any of them has a pre-built binary of that path. The configuration
>     setting binary-caches contains a list of URLs of binary caches. For
>     instance, doing
>
>     $ nix-env -i thunderbird --option binary-caches
> http://nixos.org/binary-cache
>
>     will install Thunderbird and its dependencies, using the available
>     pre-built binaries in http://nixos.org/binary-cache. The main
> advantage
>     over the old "manifest"-based method of getting pre-built binaries is
> that
>     you don't have to worry about your manifest being in sync with the Nix
>     expressions you're installing from; i.e., you don't need to run
> nix-pull to
>     update your manifest. It's also more scalable because you don't need to
>     redownload a giant manifest file every time.
>
>     A Nix channel can provide a binary cache URL that will be used
>     automatically if you subscribe to that channel. If you use the Nixpkgs
> or
>     NixOS channels (http://nixos.org/channels) you automatically get the
> cache
>     http://nixos.org/binary-cache.
>
>     Binary caches are created using nix-push. For details on the operation
> and
>     format of binary caches, see the nix-push manpage.
>
>   * Multiple output support should now be usable. A derivation can declare
> that
>     it wants to produce multiple store paths by saying something like
>
>     outputs = [ "lib" "headers" "doc" ];
>
>     This will cause Nix to pass the intended store path of each output to
> the
>     builder through the environment variables lib, headers and doc. Other
>     packages can refer to a specific output by referring to pkg.output,
> e.g.
>
>     buildInputs = [ pkg.lib pkg.headers ];
>
>     If you install a package with multiple outputs using nix-env, each
> output
>     path will be symlinked into the user environment.
>
>   * Dashes are now valid as part of identifiers and attribute names.
>
>   * The new operation nix-store --repair-path allows corrupted or missing
> store
>     paths to be repaired by redownloading them. nix-store --verify
>     --check-contents --repair will scan and repair all paths in the Nix
> store.
>     Similarly, nix-env, nix-build, nix-instantiate and nix-store --realise
> have
>     a --repair flag to detect and fix bad paths by rebuilding or
> redownloading
>     them.
>
>   * Nix no longer sets the immutable bit on files in the Nix store.
> Instead,
>     the recommended way to guard the Nix store against accidental
> modification
>     on Linux is to make it a read-only bind mount, like this:
>
>     $ mount --bind /nix/store /nix/store
>     $ mount -o remount,ro,bind /nix/store
>

I have my /nix/store on a separate partition.
Would it suffice to just mount it read-only or do I need the bind-mount on
top of it?

Or will nixos set this up automatically?


>
>     Nix will automatically make /nix/store writable as needed (using a
> private
>     mount namespace) to allow modifications.
>
>   * Store optimisation (replacing identical files in the store with hard
> links)
>     can now be done automatically every time a path is added to the store.
> This
>     is enabled by setting the configuration option auto-optimise-store to
> true
>     (disabled by default).
>
>   * Nix now supports xz compression for NARs in addition to bzip2. It
>     compresses about 30% better on typical archives and decompresses about
>     twice as fast.
>
>   * Basic Nix expression evaluation profiling: setting the environment
> variable
>     NIX_COUNT_CALLS to 1 will cause Nix to print how many times each
> primop or
>     function was executed.
>
>   * New primops: concatLists, elem, elemAt and filter.
>
>   * The command nix-copy-closure has a new flag --use-substitutes (-s) to
>     download missing paths on the target machine using the substitute
>     mechanism.
>
>   * The command nix-worker has been renamed to nix-daemon. Support for
> running
>     the Nix worker in "slave" mode has been removed.
>
>   * The --help flag of every Nix command now invokes man.
>
>   * Chroot builds are now supported on systemd machines.
>
> This release has contributions from Eelco Dolstra, Florian Friesdorf, Mats
> Erik
> Andersson and Shea Levy.
>
> --
> Eelco Dolstra | LogicBlox, Inc. | http://nixos.org/~eelco/
> _______________________________________________
> nix-dev mailing list
> nix-dev at lists.science.uu.nl
> http://lists.science.uu.nl/mailman/listinfo/nix-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.science.uu.nl/pipermail/nix-dev/attachments/20121207/c16564a5/attachment.html 


More information about the nix-dev mailing list