[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