-
-
Notifications
You must be signed in to change notification settings - Fork 13.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'origin/staging' into systemd-219
Conflicts: pkgs/os-specific/linux/kernel/linux-3.4.nix pkgs/os-specific/linux/systemd/default.nix
- Loading branch information
Showing
2,207 changed files
with
83,990 additions
and
41,829 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
15.06 | ||
15.07 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# How to contribute | ||
|
||
## Opening issues | ||
|
||
* Make sure you have a [GitHub account](https://github.com/signup/free) | ||
* [Submit an issue](https://github.com/NixOS/nixpkgs/issues) - assuming one does not already exist. | ||
* Clearly describe the issue including steps to reproduce when it is a bug. | ||
* Include information what version of nixpkgs and Nix are you using (nixos-version or git revision). | ||
|
||
## Submitting changes | ||
|
||
See the nixpkgs manual for details on how to [Submit changes to nixpkgs](http://hydra.nixos.org/job/nixpkgs/trunk/manual/latest/download-by-type/doc/manual#chap-submitting-changes). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
<chapter xmlns="http://docbook.org/ns/docbook" | ||
xmlns:xlink="http://www.w3.org/1999/xlink" | ||
xml:id="chap-functions"> | ||
|
||
<title>Functions reference</title> | ||
|
||
<para> | ||
The nixpkgs repository has several utility functions to manipulate Nix expressions. | ||
</para> | ||
|
||
<section xml:id="sec-pkgs-overridePackages"> | ||
<title>pkgs.overridePackages</title> | ||
|
||
<para> | ||
This function inside the nixpkgs expression (<varname>pkgs</varname>) | ||
can be used to override the set of packages itself. | ||
</para> | ||
<para> | ||
Warning: this function is expensive and must not be used from within | ||
the nixpkgs repository. | ||
</para> | ||
<para> | ||
Example usage: | ||
|
||
<programlisting>let | ||
pkgs = import <nixpkgs> {}; | ||
newpkgs = pkgs.overridePackages (self: super: { | ||
foo = super.foo.override { ... }; | ||
}; | ||
in ...</programlisting> | ||
</para> | ||
|
||
<para> | ||
The resulting <varname>newpkgs</varname> will have the new <varname>foo</varname> | ||
expression, and all other expressions depending on <varname>foo</varname> will also | ||
use the new <varname>foo</varname> expression. | ||
</para> | ||
|
||
<para> | ||
The behavior of this function is similar to <link | ||
linkend="sec-modify-via-packageOverrides">config.packageOverrides</link>. | ||
</para> | ||
|
||
<para> | ||
The <varname>self</varname> parameter refers to the final package set with the | ||
applied overrides. Using this parameter may lead to infinite recursion if not | ||
used consciously. | ||
</para> | ||
|
||
<para> | ||
The <varname>super</varname> parameter refers to the old package set. | ||
It's equivalent to <varname>pkgs</varname> in the above example. | ||
</para> | ||
|
||
</section> | ||
|
||
<section xml:id="sec-pkg-override"> | ||
<title><pkg>.override</title> | ||
|
||
<para> | ||
The function <varname>override</varname> is usually available for all the | ||
derivations in the nixpkgs expression (<varname>pkgs</varname>). | ||
</para> | ||
<para> | ||
It is used to override the arguments passed to a function. | ||
</para> | ||
<para> | ||
Example usages: | ||
|
||
<programlisting>pkgs.foo.override { arg1 = val1; arg2 = val2; ... }</programlisting> | ||
<programlisting>pkgs.overridePackages (self: super: { | ||
foo = super.foo.override { barSupport = true ; }; | ||
})</programlisting> | ||
<programlisting>mypkg = pkgs.callPackage ./mypkg.nix { | ||
mydep = pkgs.mydep.override { ... }; | ||
})</programlisting> | ||
</para> | ||
|
||
<para> | ||
In the first example, <varname>pkgs.foo</varname> is the result of a function call | ||
with some default arguments, usually a derivation. | ||
Using <varname>pkgs.foo.override</varname> will call the same function with | ||
the given new arguments. | ||
</para> | ||
|
||
</section> | ||
|
||
<section xml:id="sec-lib-makeOverridable"> | ||
<title>lib.makeOverridable</title> | ||
|
||
<para> | ||
The function <varname>lib.makeOverridable</varname> is used make the result | ||
of a function easily customizable. This utility only makes sense for functions | ||
that accept an argument set and return an attribute set. | ||
</para> | ||
|
||
<para> | ||
Example usage: | ||
|
||
<programlisting>f = { a, b }: { result = a+b; } | ||
c = lib.makeOverridable f { a = 1; b = 2; }</programlisting> | ||
|
||
</para> | ||
|
||
<para> | ||
The variable <varname>c</varname> is the value of the <varname>f</varname> function | ||
applied with some default arguments. Hence the value of <varname>c.result</varname> | ||
is <literal>3</literal>, in this example. | ||
</para> | ||
|
||
<para> | ||
The variable <varname>c</varname> however also has some additional functions, like | ||
<link linkend="sec-pkg-override">c.override</link> which can be used to | ||
override the default arguments. In this example the value of | ||
<varname>(c.override { a = 4; }).result</varname> is 6. | ||
</para> | ||
|
||
</section> | ||
|
||
</chapter> |
Oops, something went wrong.