[Nix-dev] nixos channel

2012-08-07 Thread Mathijs Kwik
Hi all,

Is there a problem with the nix channel?
It hasn't been updated for 2 days.
Is there a schedule (ie once a day) that it updates?
I understand this depends on the amount of changes being pushed, but
once it's in hydra's queue, I can track it from there.

Thanks,
Mathijs
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] nixos channel

2012-08-07 Thread Shea Levy
Hi,

On Aug 7, 2012, at 5:49 AM, Mathijs Kwik math...@bluescreen303.nl wrote:

 Hi all,
 
 Is there a problem with the nix channel?
 It hasn't been updated for 2 days.
 Is there a schedule (ie once a day) that it updates?

The channel only updates when all the tests at 
http://hydra.nixos.org/view/nixos/tested (warning: long load) pass.

 I understand this depends on the amount of changes being pushed, but
 once it's in hydra's queue, I can track it from there.
 
 Thanks,
 Mathijs
 ___
 nix-dev mailing list
 nix-dev@lists.science.uu.nl
 http://lists.science.uu.nl/mailman/listinfo/nix-dev
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] nixos channel

2012-08-07 Thread Mathijs Kwik
On Tue, Aug 7, 2012 at 12:44 PM, Shea Levy s...@shealevy.com wrote:
 Hi,

 On Aug 7, 2012, at 5:49 AM, Mathijs Kwik math...@bluescreen303.nl wrote:

 Hi all,

 Is there a problem with the nix channel?
 It hasn't been updated for 2 days.
 Is there a schedule (ie once a day) that it updates?

 The channel only updates when all the tests at 
 http://hydra.nixos.org/view/nixos/tested (warning: long load) pass.

Ah, that's very nice.

However, it then appears I broke the 2 live cds right after the latest
successful build.
Build number 2920826 only includes 5 of my commits, compared to
2920472, which did succeed. Looking at the log for the 2 failing
tests, I can't really figure out what's going on.
One of them reports a lot of warnings (sqlite busy), the other reports
an issue with linking (/nix/store/.links), which I've never seen
locally.
As I only added 5 emacs packages (which I think are unrelated) and
added the (updated) aufs3 patch to kernel 3.5 (which is not used by
the livecds), I would not know where to start debugging.

I build things locally using setarch --uname-2.6, just as hydra uses.
Are there any other environmental things I should do to match hydra,
so I can try to reproduce the same errors?

Thanks,
Mathijs


 I understand this depends on the amount of changes being pushed, but
 once it's in hydra's queue, I can track it from there.

 Thanks,
 Mathijs
 ___
 nix-dev mailing list
 nix-dev@lists.science.uu.nl
 http://lists.science.uu.nl/mailman/listinfo/nix-dev
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] nixos channel

2012-08-07 Thread Eelco Dolstra
Hi,

On 07/08/12 07:29, Mathijs Kwik wrote:

 One of them reports a lot of warnings (sqlite busy), the other reports
 an issue with linking (/nix/store/.links), which I've never seen
 locally.

The SQLite warnings are harmless.  The .links issue is a bug in Nix that should
be fixed now.  Let me know if you see new builds that show this error message.

-- 
Eelco Dolstra | LogicBlox, Inc. | http://nixos.org/~eelco/
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] NixOS channel

2012-06-19 Thread Kevin Quick
Hi Eelco,

Very interesting information regarding the channels.  Can you give some  
additional advice on how this relates to existing /etc/nixos/* checkouts?

* If I specify the channel and the nixos-rebuild you summarized below,  
will it use the channel or my checkouts or both (and if the latter, which  
has priority)?

* I currently have local packages in ~/.nix-defexpr.  Specifically I have:

 ~/.nix-defexpr/localnix:
   {}:
   let
 stdpkgs = import  
/etc/nixos/nixpkgs/pkgs/top-level/all-packages.nix{};
 mypkgs = builtins.getEnv HOME + /my_nixexprs;
   in
 import mypkgs { inherit stdpkgs };

   I can then populate personal packages in the mypkgs tree and they are  
smoothly integrated for nix-env.  Is it still possible to do this somehow  
with the channel setup?

* As a corollary, is there documentation I could use that would provide  
information on how to create a new channel containing mypkgs?
   * Can you --add multiple channels?
   * Can multiple channels cross-reference packages?  Total  
cross-referencing or backward-only?
   * How are conflicts resolved with multiple channels?

Many Thanks,
   -Kevin

On Tue, 15 May 2012 11:11:43 -0700, Eelco Dolstra  
eelco.dols...@logicblox.com wrote:

 Hi all,

 Since a few weeks there is a NixOS channel, which is now the default  
 mechanism
 for keeping NixOS up to date.  (A channel is a Nix mechanism for  
 distributing a
 consistent set of Nix expressions and binaries.)  A quick summary on how  
 to use it:

 $ nix-channel --add  
 http://nixos.org/releases/nixos/channels/nixos-unstable
 $ nix-channel --update
 $ nixos-rebuild switch

 The NixOS channel contains a copy of Nixpkgs (but only the binaries for
 i686-linux and x86_64-linux), so after nix-channel --update you can  
 install
 packages via nix-env:

 $ nix-env -i thunderbird

 or, if you prefer the -A option:

 $ nix-env -iA nixos.pkgs.thunderbird

 The advantages of using a channel over the previous way (doing svn up
 /etc/nixos/* a.k.a. nixos-checkout) are:

 - Correctness: The channel is only updated to a new revision of  
 NixOS/Nixpkgs if
 it passes certain tests - specifically, if all jobs in the  
 nixos:tested view
 succeed (http://hydra.nixos.org/view/nixos/tested).  So you have a  
 reasonable
 certainty that the new version will actually work.  By contrast, if you  
 update
 to the latest revision using nixos-checkout, it's quite possible that  
 somebody
 just committed something that broke the entire system.

 - Efficiency: The channel is only updated after all Hydra builds in that
 revision have finished, *and* all binaries have been mirrored.  (Binary  
 patches
 are generated asynchronously, however, since they can take much longer to
 produce.)  So you don't have to worry about somebody just having  
 committed
 something that causes a huge recompilation.

 This makes keeping NixOS up to date a rather more pleasant activity,  
 IMHO.

 Some things to note:

 - The downloaded channel sources are stored in
 /nix/var/nix/profiles/per-user/root/channels/nixos (which is actually in  
 the Nix
 store).  The $NIX_PATH environment variable contains this directory, so  
 nixos
 and nixpkgs in Nix expressions resolve there unless overriden through
 $NIX_PATH or the -I flag.

 - In principle, you can do rollbacks on the channels profile (nix-env -p
 /nix/var/nix/profiles/per-user/root/channels --rollback) if you don't  
 like the
 result of a nix-channel --update.  However, this doesn't roll back the
 corresponding binaries manifest in /nix/var/nix/manifest so its utility  
 is
 limited [1].

 - The NixOS installation CD no longer contains or installs
 /etc/nixos/{nixos,nixpkgs} but instead uses the NixOS channel.  You can  
 of
 course run nixos-checkout if you want a working tree for development.   
 (In
 other news, nixos-checkout now accepts a argument to specify the  
 desired
 location of the working trees, e.g. nixos-checkout /home/eelco/Dev.   
 The
 default location /etc/nixos may eventually go away since it's a weird  
 location
 for keeping large source trees.)

 - To use a development tree in nixos-rebuild, just use the -I flag, e.g.
 nixos-rebuild switch -I /home/eelco/Dev.

 - The nixpkgs_sys link in ~/.nix-defexpr is no longer created.   
 Instead you
 can use nixos.pkgs in nix-env -iA calls, as shown above.   
 nixos.pkgs is
 the Nixpkgs in the NixOS channel, so it's guaranteed to have binaries  
 available.

 - The command nixos-version prints out the NixOS version you're  
 currently
 running, e.g. 0.1pre34067-34075.  The version string include the NixOS  
 and
 Nixpkgs revisions, respectively.  If you install from SVN it just prints
 0.1pre-svn.

 - Old versions can be installed from http://nixos.org/releases/nixos/.   
 These
 are periodically deleted because they take up a lot of space.  (Note  
 that the
 nixos-unstable channel is really just a link to the latest NixOS  
 release.)

 [1] In the future 

Re: [Nix-dev] NixOS channel

2012-06-19 Thread Kirill Elagin
2012/6/19 Kevin Quick qu...@sparq.org

 Very interesting information regarding the channels.  Can you give some
 additional advice on how this relates to existing /etc/nixos/* checkouts?

As I understand it, all utilities will use channels by default but for
backward compatibility, in case there are no channel subscriptions, there
are pointers to /etc/nixos/* in $NIX_PATH so everything will fall back to
using those old locations.

* I currently have local packages in ~/.nix-defexpr.  Specifically I have:

 ~/.nix-defexpr/localnix:
   {}:
   let
 stdpkgs = import
 /etc/nixos/nixpkgs/pkgs/top-level/all-packages.nix{};
 mypkgs = builtins.getEnv HOME + /my_nixexprs;
   in
 import mypkgs { inherit stdpkgs };

   I can then populate personal packages in the mypkgs tree and they are
 smoothly integrated for nix-env.  Is it still possible to do this somehow
 with the channel setup?

See [this recent discussion][1].
By the way, I guess, you'd rather be using ``packageOverrides`` in
/.nixpkgs/config.nix instead of your localnix expression.

  * Can you --add multiple channels?

Sure.


   * Can multiple channels cross-reference packages?  Total
 cross-referencing or backward-only?

Doesn't seem to be a good idea anyway…


   * How are conflicts resolved with multiple channels?

If you use package names, then the best match will be determined as always,
I guess. You should use -A option to distinguish different sources.


[1]: http://thread.gmane.org/gmane.linux.distributions.nixos/8834

--
Кирилл Елагин
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] NixOS channel

2012-05-15 Thread Eelco Dolstra
Hi all,

Since a few weeks there is a NixOS channel, which is now the default mechanism
for keeping NixOS up to date.  (A channel is a Nix mechanism for distributing a
consistent set of Nix expressions and binaries.)  A quick summary on how to use 
it:

$ nix-channel --add http://nixos.org/releases/nixos/channels/nixos-unstable
$ nix-channel --update
$ nixos-rebuild switch

The NixOS channel contains a copy of Nixpkgs (but only the binaries for
i686-linux and x86_64-linux), so after nix-channel --update you can install
packages via nix-env:

$ nix-env -i thunderbird

or, if you prefer the -A option:

$ nix-env -iA nixos.pkgs.thunderbird

The advantages of using a channel over the previous way (doing svn up
/etc/nixos/* a.k.a. nixos-checkout) are:

- Correctness: The channel is only updated to a new revision of NixOS/Nixpkgs if
it passes certain tests - specifically, if all jobs in the nixos:tested view
succeed (http://hydra.nixos.org/view/nixos/tested).  So you have a reasonable
certainty that the new version will actually work.  By contrast, if you update
to the latest revision using nixos-checkout, it's quite possible that somebody
just committed something that broke the entire system.

- Efficiency: The channel is only updated after all Hydra builds in that
revision have finished, *and* all binaries have been mirrored.  (Binary patches
are generated asynchronously, however, since they can take much longer to
produce.)  So you don't have to worry about somebody just having committed
something that causes a huge recompilation.

This makes keeping NixOS up to date a rather more pleasant activity, IMHO.

Some things to note:

- The downloaded channel sources are stored in
/nix/var/nix/profiles/per-user/root/channels/nixos (which is actually in the Nix
store).  The $NIX_PATH environment variable contains this directory, so nixos
and nixpkgs in Nix expressions resolve there unless overriden through
$NIX_PATH or the -I flag.

- In principle, you can do rollbacks on the channels profile (nix-env -p
/nix/var/nix/profiles/per-user/root/channels --rollback) if you don't like the
result of a nix-channel --update.  However, this doesn't roll back the
corresponding binaries manifest in /nix/var/nix/manifest so its utility is
limited [1].

- The NixOS installation CD no longer contains or installs
/etc/nixos/{nixos,nixpkgs} but instead uses the NixOS channel.  You can of
course run nixos-checkout if you want a working tree for development.  (In
other news, nixos-checkout now accepts a argument to specify the desired
location of the working trees, e.g. nixos-checkout /home/eelco/Dev.  The
default location /etc/nixos may eventually go away since it's a weird location
for keeping large source trees.)

- To use a development tree in nixos-rebuild, just use the -I flag, e.g.
nixos-rebuild switch -I /home/eelco/Dev.

- The nixpkgs_sys link in ~/.nix-defexpr is no longer created.  Instead you
can use nixos.pkgs in nix-env -iA calls, as shown above.  nixos.pkgs is
the Nixpkgs in the NixOS channel, so it's guaranteed to have binaries available.

- The command nixos-version prints out the NixOS version you're currently
running, e.g. 0.1pre34067-34075.  The version string include the NixOS and
Nixpkgs revisions, respectively.  If you install from SVN it just prints
0.1pre-svn.

- Old versions can be installed from http://nixos.org/releases/nixos/.  These
are periodically deleted because they take up a lot of space.  (Note that the
nixos-unstable channel is really just a link to the latest NixOS release.)

[1] In the future we may get rid of manifests, in which case the Right Thing
would happen magically.

tl;dr

-- 
Eelco Dolstra | http://www.st.ewi.tudelft.nl/~dolstra/
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev