-
-
Notifications
You must be signed in to change notification settings - Fork 12.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move all nixpkgs doc files in to the doc directory
This makes a makefile-driven developer workflow nicer.
- Loading branch information
Showing
16 changed files
with
242 additions
and
239 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
File renamed without changes.
File renamed without changes.
File renamed without 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
Idris packages | ||
============== | ||
|
||
This directory contains build rules for idris packages. In addition, | ||
it contains several functions to build and compose those packages. | ||
Everything is exposed to the user via the `idrisPackages` attribute. | ||
|
||
callPackage | ||
------------ | ||
|
||
This is like the normal nixpkgs callPackage function, specialized to | ||
idris packages. | ||
|
||
builtins | ||
--------- | ||
|
||
This is a list of all of the libraries that come packaged with Idris | ||
itself. | ||
|
||
build-idris-package | ||
-------------------- | ||
|
||
A function to build an idris package. Its sole argument is a set like | ||
you might pass to `stdenv.mkDerivation`, except `build-idris-package` | ||
sets several attributes for you. See `build-idris-package.nix` for | ||
details. | ||
|
||
build-builtin-package | ||
---------------------- | ||
|
||
A version of `build-idris-package` specialized to builtin libraries. | ||
Mostly for internal use. | ||
|
||
with-packages | ||
------------- | ||
|
||
Bundle idris together with a list of packages. Because idris currently | ||
only supports a single directory in its library path, you must include | ||
all desired libraries here, including `prelude` and `base`. |
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,51 @@ | ||
Node.js packages | ||
================ | ||
The `pkgs/development/node-packages` folder contains a generated collection of | ||
[NPM packages](https://npmjs.com/) that can be installed with the Nix package | ||
manager. | ||
|
||
As a rule of thumb, the package set should only provide *end user* software | ||
packages, such as command-line utilities. Libraries should only be added to the | ||
package set if there is a non-NPM package that requires it. | ||
|
||
When it is desired to use NPM libraries in a development project, use the | ||
`node2nix` generator directly on the `package.json` configuration file of the | ||
project. | ||
|
||
The package set also provides support for multiple Node.js versions. The policy | ||
is that a new package should be added to the collection for the latest stable LTS | ||
release (which is currently 6.x), unless there is an explicit reason to support | ||
a different release. | ||
|
||
If your package uses native addons, you need to examine what kind of native | ||
build system it uses. Here are some examples: | ||
|
||
* `node-gyp` | ||
* `node-gyp-builder` | ||
* `node-pre-gyp` | ||
|
||
After you have identified the correct system, you need to override your package | ||
expression while adding in build system as a build input. For example, `dat` | ||
requires `node-gyp-build`, so we override its expression in `default-v6.nix`: | ||
|
||
```nix | ||
dat = nodePackages.dat.override (oldAttrs: { | ||
buildInputs = oldAttrs.buildInputs ++ [ nodePackages.node-gyp-build ]; | ||
}); | ||
``` | ||
|
||
To add a package from NPM to nixpkgs: | ||
|
||
1. Modify `pkgs/development/node-packages/node-packages-v6.json` to add, update | ||
or remove package entries. (Or `pkgs/development/node-packages/node-packages-v4.json` | ||
for packages depending on Node.js 4.x) | ||
2. Run the script: `(cd pkgs/development/node-packages && ./generate.sh)`. | ||
3. Build your new package to test your changes: | ||
`cd /path/to/nixpkgs && nix-build -A nodePackages.<new-or-updated-package>`. | ||
To build against a specific Node.js version (e.g. 4.x): | ||
`nix-build -A nodePackages_4_x.<new-or-updated-package>` | ||
4. Add and commit all modified and generated files. | ||
|
||
For more information about the generation process, consult the | ||
[README.md](https://github.com/svanderburg/node2nix) file of the `node2nix` | ||
tool. |
File renamed without 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
R packages | ||
========== | ||
|
||
## Installation | ||
|
||
Define an environment for R that contains all the libraries that you'd like to | ||
use by adding the following snippet to your $HOME/.config/nixpkgs/config.nix file: | ||
|
||
```nix | ||
{ | ||
packageOverrides = super: let self = super.pkgs; in | ||
{ | ||
rEnv = super.rWrapper.override { | ||
packages = with self.rPackages; [ | ||
devtools | ||
ggplot2 | ||
reshape2 | ||
yaml | ||
optparse | ||
]; | ||
}; | ||
}; | ||
} | ||
``` | ||
|
||
Then you can use `nix-env -f "<nixpkgs>" -iA rEnv` to install it into your user | ||
profile. The set of available libraries can be discovered by running the | ||
command `nix-env -f "<nixpkgs>" -qaP -A rPackages`. The first column from that | ||
output is the name that has to be passed to rWrapper in the code snipped above. | ||
|
||
However, if you'd like to add a file to your project source to make the | ||
environment available for other contributors, you can create a `default.nix` | ||
file like so: | ||
```nix | ||
let | ||
pkgs = import <nixpkgs> {}; | ||
stdenv = pkgs.stdenv; | ||
in with pkgs; { | ||
myProject = stdenv.mkDerivation { | ||
name = "myProject"; | ||
version = "1"; | ||
src = if pkgs.lib.inNixShell then null else nix; | ||
buildInputs = with rPackages; [ | ||
R | ||
ggplot2 | ||
knitr | ||
]; | ||
}; | ||
} | ||
``` | ||
and then run `nix-shell .` to be dropped into a shell with those packages | ||
available. | ||
|
||
## RStudio | ||
|
||
RStudio uses a standard set of packages and ignores any custom R | ||
environments or installed packages you may have. To create a custom | ||
environment, see `rstudioWrapper`, which functions similarly to | ||
`rWrapper`: | ||
|
||
```nix | ||
{ | ||
packageOverrides = super: let self = super.pkgs; in | ||
{ | ||
rstudioEnv = super.rstudioWrapper.override { | ||
packages = with self.rPackages; [ | ||
dplyr | ||
ggplot2 | ||
reshape2 | ||
]; | ||
}; | ||
}; | ||
} | ||
``` | ||
|
||
Then like above, `nix-env -f "<nixpkgs>" -iA rstudioEnv` will install | ||
this into your user profile. | ||
|
||
Alternatively, you can create a self-contained `shell.nix` without the need to | ||
modify any configuration files: | ||
|
||
```nix | ||
{ pkgs ? import <nixpkgs> {} | ||
}: | ||
pkgs.rstudioWrapper.override { | ||
packages = with pkgs.rPackages; [ dplyr ggplot2 reshape2 ]; | ||
} | ||
``` | ||
|
||
Executing `nix-shell` will then drop you into an environment equivalent to the | ||
one above. If you need additional packages just add them to the list and | ||
re-enter the shell. | ||
|
||
## Updating the package set | ||
|
||
```bash | ||
nix-shell generate-shell.nix | ||
|
||
Rscript generate-r-packages.R cran > cran-packages.nix.new | ||
mv cran-packages.nix.new cran-packages.nix | ||
|
||
Rscript generate-r-packages.R bioc > bioc-packages.nix.new | ||
mv bioc-packages.nix.new bioc-packages.nix | ||
``` | ||
|
||
`generate-r-packages.R <repo>` reads `<repo>-packages.nix`, therefor the renaming. | ||
|
||
|
||
## Testing if the Nix-expression could be evaluated | ||
|
||
```bash | ||
nix-build test-evaluation.nix --dry-run | ||
``` | ||
|
||
If this exits fine, the expression is ok. If not, you have to edit `default.nix` |
File renamed without changes.
File renamed without 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
File renamed without 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1 @@ | ||
Idris packages | ||
============== | ||
|
||
This directory contains build rules for idris packages. In addition, | ||
it contains several functions to build and compose those packages. | ||
Everything is exposed to the user via the `idrisPackages` attribute. | ||
|
||
callPackage | ||
------------ | ||
|
||
This is like the normal nixpkgs callPackage function, specialized to | ||
idris packages. | ||
|
||
builtins | ||
--------- | ||
|
||
This is a list of all of the libraries that come packaged with Idris | ||
itself. | ||
|
||
build-idris-package | ||
-------------------- | ||
|
||
A function to build an idris package. Its sole argument is a set like | ||
you might pass to `stdenv.mkDerivation`, except `build-idris-package` | ||
sets several attributes for you. See `build-idris-package.nix` for | ||
details. | ||
|
||
build-builtin-package | ||
---------------------- | ||
|
||
A version of `build-idris-package` specialized to builtin libraries. | ||
Mostly for internal use. | ||
|
||
with-packages | ||
------------- | ||
|
||
Bundle idris together with a list of packages. Because idris currently | ||
only supports a single directory in its library path, you must include | ||
all desired libraries here, including `prelude` and `base`. | ||
Moved to [/doc/languages-frameworks/idris.section.md](/doc/languages-frameworks/idris.section.md) |
Oops, something went wrong.