Compare commits

..

788 Commits

Author SHA1 Message Date
Vladimír Čunát
120b013e0c 18.03 release notes: final edits
(cherry picked from commit 0bee079d97)
2018-04-04 09:02:31 +02:00
Tim Steinbach
e4cc8c1397 openjdk10: Use included cacerts
(cherry picked from commit a415963ef7464d7ce8f9c73684728625e83d8d63)
2018-04-03 19:18:25 -04:00
Franz Pletz
ca6b64ae7b nixos/version: fix nixops pre 1.6 compatibility
We should be able to deploy a NixOS 18.03 system with the current nixops
stable release. Some options were renamed, so instead of
`mkRenamedOptionModule` we introduce them as read-only interal options
that won't be rendered in the manual.

Only the options that are needed to make nixops evaluations succeed were
added.

This commit should probably be reverted after or before the 18.09 release,
depending on the nixops 1.6 release.

The user will not get the warning that these have been renamed but
this change is mentioned in the release notes.

Fixes #34253.

(cherry picked from commit 70c6f6572d)
2018-04-04 00:10:21 +02:00
Maximilian Bode
cbccde97dd tectonic: fix darwin build
(cherry picked from commit 8f2102def6)
2018-04-03 22:08:42 +02:00
Matthieu Coudron
d5c26dd063 qemu-vm: passing QEMU_NET_OPTS would fail
because of a change in #36850.
spotted by @jtojnar b7a2333ebe (commitcomment-28134992)

(cherry picked from commit 33b0ad83e9)
2018-04-03 17:57:17 +02:00
Samuel Dionne-Riel
251bc50e95 dbeaver: 4.3.3 -> 5.0.2
(cherry picked from commit a829977561)

Reason: backports the current revision of the software.
2018-04-03 22:01:43 +08:00
Tuomas Tynkkynen
43f1db5b0d nixos/sd-image-*: Raspberry Pi firmware no longer falls under unfree
It's just unfreeRedistributableFirmware now.

(cherry picked from commit 1e5cb384d5)
2018-04-03 00:13:17 +03:00
Tuomas Tynkkynen
c1c01c7848 raspberrypifw: Drop all non-firmware parts
They are now built from source in raspberrypi-tools.

(cherry picked from commit b59f9497aa)
2018-04-03 00:13:10 +03:00
Tuomas Tynkkynen
d93b08e6d2 raspberrypi-tools: Init at 2018-02-05
(cherry picked from commit 434722ba62)
2018-04-03 00:13:08 +03:00
Tuomas Tynkkynen
c51459026a nixos/release.nix: Add Hydra job for AArch64 SD image
Based on how ISO images are added to the release.

(cherry picked from commit 181e0675da)
2018-04-03 00:12:53 +03:00
Tuomas Tynkkynen
ac447b0524 nixos/sd-image: Make it more similar to iso-image.nix
- Add `imageName` and `imageBaseName` options similar to the `isoName`
  and `isoBaseName` options
- Make the filename of the iso match what iso-image.nix does
- Generate a nix-support/hydra-build-products like iso-image.nix does

(cherry picked from commit 4c21180a13)
2018-04-03 00:12:18 +03:00
Nikolay Amiantov
47caeb1272 nodePackages.parsoid: pin service-runner to 2.3.0
service-runner had a backwards incompatible update, and parsoid 0.9.0
doesn't work with current stable MediaWiki. Instead use as a source
a repository with 0.8.0 and pinned service-runner version.

(cherry picked from commit 37546be900)
2018-04-02 22:43:02 +03:00
Sébastien Maccagnoni
5bcdc86715 nodePackages vue-cli: init at 2.9.3 (#36391)
(cherry picked from commit e8ad790710)
2018-04-02 22:42:37 +03:00
Peter Romfeld
ecb39c43c2 nodePackages_8_x.swagger: init at 0.7.5
(cherry picked from commit 72e8987068)
2018-04-02 22:42:08 +03:00
Michael Raskin
d7aa359bcd Merge pull request #38331 from r-ryantm/auto-update/veracrypt
veracrypt: 1.21 -> 1.22
(cherry picked from commit cace5017cb)
2018-04-02 17:53:19 +02:00
Vladimír Čunát
bc632a2f55 Merge branch 'staging-18.03' into release-18.03 2018-04-02 17:13:45 +02:00
Vladimír Čunát
b3c938bfeb Merge: systemd: 238 -> 237 (downgrade!)
Let's be conservative and stay with version we've been testing
on unstable/master for a long time.
Discussion on https://github.com/NixOS/nixpkgs/commit/6b9771e4a
2018-04-02 12:14:59 +02:00
Vladimír Čunát
6684b3e160 Merge branch 'release-18.03' into staging-18.03 2018-04-02 12:14:42 +02:00
Vladimír Čunát
b2bc3db8f5 Revert "systemd: 237 -> 238"
This reverts commit 2d2ab94cd2.
2018-04-02 12:10:54 +02:00
Vladimír Čunát
b39bb9bead Revert "systemd: use stable tree"
This reverts commit 48856a91c0.
2018-04-02 12:10:51 +02:00
Vladimír Čunát
a6d00d0d8f nixos.tests.containers-imperative: fix impurity failure
I can't claim to fully understand this, but the change seems safe,
and it fixes the test on my machine.

(cherry picked from commit 75e4d3f2f0)
2018-04-02 11:43:02 +02:00
xeji
f0c713c813 pythonPackages.python-gnupg: 0.4.1 -> 0.4.2 2018-04-02 03:53:48 -05:00
xeji
9af18ff545 ixgbevf: 4.3.3 -> 4.3.4
4.3.3 didn't build with linux 4.15

(cherry picked from commit a7435092c0)
2018-04-02 03:44:03 -05:00
Austin Seipp
9331411a27 timescaledb: 0.6.0 -> 0.9.1
Signed-off-by: Austin Seipp <aseipp@pobox.com>
(cherry picked from commit 6ac2b11d13)
2018-04-02 03:44:03 -05:00
Vladimír Čunát
652a754cad Merge #38133: dwb: remove abandoned package
cf. https://wiki.archlinux.org/index.php/dwb

(cherry picked from commit 333245e852)
2018-04-02 10:04:27 +02:00
rnhmjoj
09bca91e3b monero-gui: 0.11.1.0 -> 2018-03-31
(cherry picked from commit e0fbaaa595)
2018-04-02 00:46:19 +02:00
rnhmjoj
ba239f468f monero: cleanup
(cherry picked from commit 6545d15020)
2018-04-02 00:46:19 +02:00
Piotr Bogdan
1dd960f66e buildGoPackage: use a separator when joining extraSrcPaths together
(cherry picked from commit d1fad21401)
2018-04-02 00:37:47 +02:00
xeji
f67968cdfa pythonPackages.root_numpy: fix build
checkPhase must use nosetest

(cherry picked from commit ebd4d38651)
2018-04-02 00:33:25 +02:00
xeji
79910a4452 pythonPackages.smart_open: fix build, 1.5.6 -> 1.5.7
(cherry picked from commit 3ea8574f17)
2018-04-02 00:33:24 +02:00
Franz Pletz
27974ed369 nixos/unbound: don't fail on root trust anchor updates
Exit code on updates is 1 which makes the inital start of unbound fail.

(cherry picked from commit 35f474d61d)
2018-04-01 23:57:43 +02:00
xeji
da36dfff14 pythonPackages.imbalanced-learn: 0.3.2 -> 0.3.3, fix build
minor bump, fix tests, move to development/python-modules

(cherry picked from commit 6b2bc4b5d1)
2018-04-01 11:13:21 +02:00
Vladimír Čunát
154e0a254a knot-resolver: fix /bin/sh impurity
Manifestation in this case: ./scripts/embed-lua.sh: line 4: alias: not found

(cherry picked from commit 366ae3dfe0)
2018-04-01 10:53:53 +02:00
Johannes Lötzsch
829d2cdb5c monitoring-plugins: fix typo in meta (#38259)
(cherry picked from commit 2e566aaf95)
2018-04-01 10:53:52 +02:00
Dan Lidral-Porter
021ee7d93b gflags: build on case-insensitive FSs, add meta
Darwin machines come with a case-insensitive filesystem by default. The
gflags package's source contains a file 'BUILD' and the build process
attempts to create a directory called 'build', which fails on
case-insensitive filesystems.

Add a prePatch hook to rename the BUILD file (which is for use with an
unrelated build tool) to something that doesn't conflict with the
'build' directory. This hook allows this derivation to be built on
case-insensitive filesystems.

Add metadata to the derivation because previously it had none.

(cherry picked from commit 66bbee3b81)
2018-04-01 09:24:38 +02:00
Tim Steinbach
b8edfed0e2 linux-copperhead: 4.15.14.a -> 4.15.15.a
(cherry picked from commit 2dfaf6992c)
2018-03-31 17:17:45 -04:00
Tim Steinbach
311dcc7462 linux: 4.15.14 -> 4.15.15
(cherry picked from commit 32e47b19f2)
2018-03-31 17:17:18 -04:00
Tim Steinbach
e54a063017 linux: 4.14.31 -> 4.14.32
(cherry picked from commit c8e2312c88)
2018-03-31 17:17:09 -04:00
Tim Steinbach
585aa0e9ee linux: 4.9.91 -> 4.9.92
(cherry picked from commit 804789e49b)
2018-03-31 17:17:00 -04:00
Tim Steinbach
8039a49f1e linux: 4.4.125 -> 4.4.126
(cherry picked from commit b9bde5bc03)
2018-03-31 17:16:51 -04:00
Daiderd Jordan
96ccbe16ee gnumake: mark head variant lowPrio
Fixes #38257

(cherry picked from commit 86705445dc)
2018-03-31 23:01:01 +02:00
Robert Schütz
a2c57c5336 pythonPackages.nipype: enable tests
(cherry picked from commit ee1896d63d)
2018-03-31 21:12:41 +02:00
Maximilian Bosch
a7c0fdbc9e pythonPackage.nipype: fix build
`pythonPackages.prov` has been bumped to `1.5.2`, however `nipype`
pinned `prov` to `1.5.0`. Patching `nipype/info.py` fixes this issue by
bumping to the current `prov` version in nixpkgs.

See https://hydra.nixos.org/build/71817962/log
See ticket #36453

(cherry picked from commit db0fa06fce)
2018-03-31 21:12:41 +02:00
Maximilian Bosch
97afec420e frescobaldi: 2.0.16 -> 3.0.0; fix build
3.0.0 works with Python 3 and QT5 (proivded by pyqt5). These fixes are
another step towards #32883 by getting rid of the unused poppler-qt4.

See https://hydra.nixos.org/build/71816154/log
See ticket #36453

(cherry picked from commit 545495b132)
2018-03-31 17:29:04 +02:00
Maximilian Bosch
29a6d29e66 pythonPackages.poppler-qt5: init at 0.24.2
related to #32883

(cherry picked from commit 8446cd9c32)
2018-03-31 17:28:59 +02:00
Maximilian Bosch
d798fa02f9 pythonPackages.python-ly: init at 0.9.5
(cherry picked from commit d50943ad46)
2018-03-31 17:28:53 +02:00
Maximilian Bosch
cde1f31f28 pythonPackages.mrbob: fix build
Tests broke on Hydra as the `checkPhase` wasn't configured properly. By
explicitly relying on `nosetests` and injecting `LC_ALL` into the
`checkPhase` the tests work again.

The license (bsd3) according to `LICENSE` distributed with the upstream
package wasn't specified in the meta section which could've caused legal
issues.

The expression has been moved into its own file to reduce the length and
complexity of `pkgs/top-level/python-packages.nix`.

See https://hydra.nixos.org/build/70689499/log
See #36453

(cherry picked from commit 9215e03e17)
2018-03-31 17:05:50 +02:00
Joachim Schiele
0a224fe280 user/group assertion to not exceed the 32 character limit
(cherry picked from commit 1b0cb040d9)
(original PR: #36556)
2018-03-31 14:29:14 +02:00
Maxime Dénès
834d892989 psc-package: 0.2.5 -> 0.3.2-pre
Note: the previous version was not building due to outdated upstream
dependencies.

(cherry picked from commit 1e1839239c)
Signed-off-by: Domen Kožar <domen@dev.si>
2018-03-31 10:43:20 +01:00
Symphorien Gibol
7d9e35afc2 giac: fix url
the previous url was a moving target and was updated at each point
release. Use a frozen source instead.

(cherry picked from commit 262fff26ed)
2018-03-30 22:58:44 +02:00
Vladimír Čunát
0c79da12a3 cups: fix patch download without a rebuild
One needs to specify git commit to make the fetch always work.
Close #38113.

(cherry picked from commit 514e3e8a07)
2018-03-30 21:35:41 +02:00
Silvan Mosberger
efb1868bba tlspool: 20170123 -> 20180227 and fix
(cherry picked from commit 7ffbbd334f)
2018-03-30 21:28:05 +02:00
Vladimír Čunát
1de51da824 dhcpcd: fix /bin/sh impurity
The usual error during configuration:
syntax error: you disabled math support for $((arith)) syntax

(cherry picked from commit cb196f490e)
2018-03-30 21:24:21 +02:00
Dmitry Kalinkin
2013114be0 rivet: 2.6.0 -> 2.6.0
upstream just replaced the tarball with a new version without bumping anything
2018-03-30 20:22:51 +01:00
Tor Hedin Brønner
2bbd0df63a nix-bash-completions: 0.6.4 -> 0.6.5 2018-03-30 19:08:50 +02:00
Pascal Wittmann
43106ec955 nzbget: 19.0 -> 19.1 2018-03-30 18:49:24 +02:00
Domen Kožar
11238ffbe1 btrfs-progs: 4.14.1 -> 4.15.1 2018-03-30 14:21:43 +01:00
Piotr Bogdan
0d91583166 ppp: fix build with newer kernel headers
The package would build but with some components missing, see
https://github.com/NixOS/nixpkgs/issues/37926 and
https://hydra.nixos.org/build/70939248/nixlog/1 -> CTRL-F error:

(cherry picked from commit da9b564bed)
2018-03-30 10:17:40 +03:00
Piotr Bogdan
a4f5011b73 linuxPackages.v4l2loopback: 0.9.1 -> 0.11.0
(cherry picked from commit 6b8a6faf62)
2018-03-30 10:16:23 +03:00
Piotr Bogdan
0f51a9b9d9 linuxPackages.phc-intel: 0.4.0-rev24 -> 0.4.0-rev25
(cherry picked from commit 1365d6ad9c)
2018-03-30 10:15:42 +03:00
Ryan Mulligan
c8163071bf yakuake: 3.0.4 -> 3.0.5
Semi-automatic update generated by https://github.com/ryantm/nix-update tools.

This update was made based on information from https://repology.org/metapackage/yakuake/versions.

These checks were done:

- built on NixOS
- Warning: no binary found that responded to help or version flags. (This warning appears even if the package isn't expected to have binaries.)
- found 3.0.5 with grep in /nix/store/8ynmx32jvp39xw8x1n6spjxn7acamcys-yakuake-3.0.5
- directory tree listing: https://gist.github.com/b997d1ba53b4383b309cdbe6423958b6

(cherry picked from commit adc39a9b98)
2018-03-30 07:58:18 +02:00
Matthew Pickering
7292975ca0 Fix grass build on darwin
(cherry picked from commit 49182bcd34)
2018-03-29 23:36:33 +02:00
Franz Pletz
69a03de038 nixos/dovecot: set group in config
The dovecot bump to 2.3.1 caused the dovecot service to fail to start
because it would try to chgrp sockets to dovecot whereas our default
dovecot group is called dovecot2.

(cherry picked from commit 6a15c8d6f7)
2018-03-29 21:39:22 +02:00
Franz Pletz
e79abe3062 dovecot_pigeonhole: 0.5.0.1 -> 0.5.1
(cherry picked from commit 96d4f13fc5)
2018-03-29 21:39:16 +02:00
Ryan Mulligan
2ddacd2959 dovecot: 2.3.0.1 -> 2.3.1
Semi-automatic update generated by https://github.com/ryantm/nix-update tools.

This update was made based on information from https://repology.org/metapackage/dovecot/versions.

These checks were done:

- built on NixOS
- ran `/nix/store/c20ip7wyymd39l7zisx38ky3bxp1sybv-dovecot-2.3.1/bin/dovecot --help` got 0 exit code
- ran `/nix/store/c20ip7wyymd39l7zisx38ky3bxp1sybv-dovecot-2.3.1/bin/dovecot --version` and found version 2.3.1
- found 2.3.1 with grep in /nix/store/c20ip7wyymd39l7zisx38ky3bxp1sybv-dovecot-2.3.1
- directory tree listing: https://gist.github.com/6d90467ee7649d7efc0a48eeacfc42c8

(cherry picked from commit a668ca4aac)
2018-03-29 21:39:09 +02:00
Robin Gloster
c30303e038 gitlab: disable
The last rubygems update broke this

(cherry picked from commit 68c4605f1a)
2018-03-29 19:18:45 +02:00
Domen Kožar
e6114781b0 e2fsprogs: 1.43.8 -> 1.44.1 2018-03-29 17:43:31 +01:00
Bastian Köcher
fbc2cb78b7 hplip: Adds missing depdency sip
(cherry picked from commit 8152db99d7)
2018-03-29 12:10:58 +02:00
Tim Steinbach
d40fc89bc2 linux-copperhead: 4.15.13.a -> 4.15.14.a
(cherry picked from commit decfd44b19)
2018-03-28 16:56:54 -04:00
Tim Steinbach
343a3e28cc linux: 4.15.13 -> 4.15.14
(cherry picked from commit e6ec944444)
2018-03-28 16:56:45 -04:00
Tim Steinbach
a07b79c3fd linux: 4.14.30 -> 4.14.31
(cherry picked from commit 6baf64f8f1)
2018-03-28 16:56:37 -04:00
Tim Steinbach
1dbe306ede linux: 4.9.90 -> 4.9.91
(cherry picked from commit 97c840eeeb)
2018-03-28 16:56:28 -04:00
Tim Steinbach
21dd95bacf linux: 4.4.124 -> 4.4.125
(cherry picked from commit 50e8d2ad8d)
2018-03-28 16:56:20 -04:00
Vladyslav M
1784c7727a skypeforlinux: 8.17.0.2 -> 8.18.0.6
(cherry picked from commit f4b9da7c6a)
2018-03-28 22:12:17 +02:00
Vasyl Solovei
8f354913e6 skypeforlinux: 8.16.0.4 -> 8.17.0.2
(cherry picked from commit 044d4b0875)
2018-03-28 22:12:05 +02:00
Daiderd Jordan
75e1a7ed59 python-celery: fix darwin build
(cherry picked from commit d33a26b370)
2018-03-28 20:56:23 +02:00
Maximilian Bosch
78e13f5da2 Revert restrictive validation behavior for DM/WM defaults in the X module
The original idea behind this change (described in ticket #11064) was to
improve the assertions to avoid that users of the X server accidentally
forget to configure a DM or WM.

However this caused several issues with setups that require X, but no DM
or WM. The keymap testcases became instable as well as now disabling DMs
needs to be done explicitly.
(see https://github.com/NixOS/nixpkgs/pull/31268#issuecomment-347080036)

In the end the idea behind the change and #11064 was obviously a
mistake, so reverting it completely for now should be fine.

(cherry picked from commit 5caa22fe0a)
2018-03-28 20:34:40 +02:00
Shea Levy
ba717c5471 ghc: Use persistent URL for abi-depends determinism patch.
(cherry picked from commit fbe8deb282)
2018-03-28 12:31:50 -04:00
Rob Vermaas
7daf4299f5 nixops: update to 1.6
(cherry picked from commit 2a28e65742)
2018-03-28 13:05:38 +02:00
Ryan Mulligan
9f24495851 php: 7.2.3 -> 7.2.4
Semi-automatic update generated by https://github.com/ryantm/nix-update tools.

This update was made based on information from https://repology.org/metapackage/php/versions.

These checks were done:

- built on NixOS
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/phar.phar help` got 0 exit code
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/phar.phar version` and found version 7.2.4
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/phar.phar help` and found version 7.2.4
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/php -h` got 0 exit code
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/php --help` got 0 exit code
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/php -v` and found version 7.2.4
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/php --version` and found version 7.2.4
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/phpdbg -V` and found version 7.2.4
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/phpdbg --version` and found version 7.2.4
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/php-cgi -h` got 0 exit code
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/php-cgi --help` got 0 exit code
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/php-cgi -v` and found version 7.2.4
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/php-cgi --version` and found version 7.2.4
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/pear -h` got 0 exit code
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/pear --help` got 0 exit code
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/pear help` got 0 exit code
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/pear -V` and found version 7.2.4
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/pear version` and found version 7.2.4
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/peardev -h` got 0 exit code
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/peardev --help` got 0 exit code
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/peardev help` got 0 exit code
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/peardev -V` and found version 7.2.4
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/peardev version` and found version 7.2.4
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/pecl -h` got 0 exit code
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/pecl --help` got 0 exit code
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/pecl help` got 0 exit code
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/pecl -V` and found version 7.2.4
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/pecl version` and found version 7.2.4
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/php-fpm -h` got 0 exit code
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/php-fpm --help` got 0 exit code
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/php-fpm -v` and found version 7.2.4
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/php-fpm --version` and found version 7.2.4
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/php-fpm -h` and found version 7.2.4
- ran `/nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4/bin/php-fpm --help` and found version 7.2.4
- found 7.2.4 with grep in /nix/store/jkzy4favahn0mxn1i9ags1zazg4z7y8l-php-7.2.4
- directory tree listing: https://gist.github.com/3c197892ad9174dae3d07c1dd61b418c

(cherry picked from commit 43c6a3f23a)
2018-03-28 11:15:21 +02:00
Bart Brouns
4b148bce24 helmholtz: fix failing build
(cherry picked from commit 5bb96e7161)
2018-03-28 08:44:34 +02:00
xeji
da3ef811d1 spice-gtk: fix symlink errors, add withPolkit option
(cherry picked from commit e26810069e)
2018-03-28 08:44:34 +02:00
Piotr Bogdan
6d04965db9 cloudfoundry-cli: fix build
(cherry picked from commit 760e972a86)
2018-03-28 08:44:34 +02:00
xeji
255f999541 nixos/tests/atd : remove test of batch command
"batch" executes jobs based on system load.
test was not deterministic.

(cherry picked from commit b08560fb0a)
2018-03-28 08:44:33 +02:00
Matt McHenry
b0f5bc0f4a openjdk10: minor cleanups
* with only one source bundle (per JEP-296), we can use src instead of
  srcs, and avoid the need to cd in prePatch

* fetch sources from jdk10u instead of jdk10, to make it easier to
  grab updates when they start coming.

* removed commented-out code that became irrelevant in the 8 -> 9
  transition (*.pf files, infinality font rendering)

* create jdk10, jre10, and jre10_headless attributes in
  all-packages.nix

(cherry picked from commit aabf45c163)
2018-03-28 08:43:14 +02:00
Ryan Mulligan
b65794b46e telepathy-gabble: 0.18.3 -> 0.18.4
Semi-automatic update generated by https://github.com/ryantm/nix-update tools.

This update was made based on information from https://repology.org/metapackage/telepathy-gabble/versions.

These checks were done:

- built on NixOS
- Warning: no binary found that responded to help or version flags. (This warning appears even if the package isn't expected to have binaries.)
- found 0.18.4 with grep in /nix/store/pg936ixgiw96xqsrdzbwc1civylmy1q5-telepathy-gabble-0.18.4
- found 0.18.4 in filename of file in /nix/store/pg936ixgiw96xqsrdzbwc1civylmy1q5-telepathy-gabble-0.18.4
- directory tree listing: https://gist.github.com/92190024cdfe17a3e79730f988d904f6

(cherry picked from commit 14e24db9db)
2018-03-28 08:43:13 +02:00
Justin Humm
be798556eb apache-httpd: fix typo in config servedFiles
(cherry picked from commit 169468c406)
2018-03-28 08:43:08 +02:00
Franz Pletz
b6474a3a3b Merge pull request #37948 from andir/18.03/openssl
[18.03] openssl{,1_1_0} update (1.0.2o, 1.1.0h)
2018-03-28 06:00:59 +00:00
Franz Pletz
718952b03b Merge pull request #37964 from andir/18.03/firefox
[18.03] firefox{,-bin,-esr} updates for MFSA2018-10
2018-03-28 05:59:02 +00:00
Franz Pletz
caba43d6fa xmrig: init at 2.5.2
(cherry picked from commit 5d86c50057)
2018-03-28 07:28:04 +02:00
Franz Pletz
d9e3401dbe xmr-stak: 2.2.0 -> 2.3.0
(cherry picked from commit d12daee695)
2018-03-28 07:28:04 +02:00
Franz Pletz
2f5dae1b33 monero: 0.11.1.0 -> 0.12.0.0
(cherry picked from commit 28c00f8f3b)
2018-03-28 07:28:04 +02:00
Franz Pletz
4d9d3cbfeb lib/modules: fix typo
(cherry picked from commit e6f4614e85)
2018-03-28 07:28:03 +02:00
Franz Pletz
39e76f5a34 caddy: 0.10.11 -> 0.10.12
(cherry picked from commit a8375e4056)
2018-03-28 07:28:03 +02:00
Franz Pletz
d206dca875 firmwareLinuxNonfree: simplify source fetching
The iwlwifi repo has been merged into linux-firmware.

(cherry picked from commit ecf5caf457)
2018-03-28 07:28:03 +02:00
Will Dietz
4bf9dd12af firmwareLinuxNonfree: 2018-01-04 -> 2018-03-20
(cherry picked from commit c787555b94)
2018-03-28 07:28:02 +02:00
Garrett Berg
54c76d597f docs: extend rust docs (#35587)
- Add example for setting up nix-shell, improve rust docs
- Rust docs: add gcc rust dependencies and fix carnix commands
- Fix a typo with the carnix command.

(cherry picked from commit f7342a3625)
2018-03-28 02:08:10 +01:00
Piotr Bogdan
51c49db0f0 linuxPackages.ena: 1.5.0 -> 1.5.2
(cherry picked from commit b353ff944a)
2018-03-28 01:23:44 +01:00
Sarah Brofeldt
f74188b551 Merge pull request #37940 from srhb/mythtv-cherry
Backport: mythtv: 0.27.4 -> 29.1
2018-03-28 00:50:30 +02:00
Maximilian Bosch
27ae4cea4e qpid-cpp: fix build
The compilation broke due to the flag `-Werror=int-in-bool-context`
which caused several compilation errors with GCC v7. Disabling this
warning manually with `-Wno-error` in `NIX_CFLAGS_COMPILE` should be
fine.

This package experienced several radical changes as the entire python
build in `$src/management/python` was broken since the given Python
interpreter missed several needed modules (including
`pythonPackages.qpid-python`). As the CMake build tried to invoke the
affected `setup.py` manually and patched the shebangs with `disutil` and
caused non-functional executables, I split the package up into two
parts, the actual `qpid-cpp` lib and the Python module that will be
composed using `buildEnv`.

Furthermore I added myself as maintainer for the package as the diff
became quite huge and we should have more folks available to maintain
this.

See https://hydra.nixos.org/build/71519082/log
See tickets #36453 and #31747
2018-03-28 00:37:22 +02:00
Carles Pagès
a7d6297032 qpid-cpp: 0.34 -> 1.37.0 2018-03-28 00:37:22 +02:00
Michael Raskin
d5f40d0ebd firefox: 59.0.1 -> 59.0.2
(cherry picked from commit 73a7d67795)
2018-03-28 00:36:41 +02:00
Andreas Rammhold
2251b7bfa7 firefox-esr: 52.7.2esr -> 52.7.3esr
Fixes MFSA2018-10 [1].

[1] https://www.mozilla.org/en-US/security/advisories/mfsa2018-10/

(cherry picked from commit 24a2c3fe58)
2018-03-28 00:36:41 +02:00
Andreas Rammhold
7c4115b0c4 firefox-bin: 59.0.1 -> 59.0.2
Fixes MFSA2018-10 [1].

[1] https://www.mozilla.org/en-US/security/advisories/mfsa2018-10/

(cherry picked from commit 6abbe39551)
2018-03-28 00:36:41 +02:00
Mario Rodas
0101637e2e gerbil: enable on darwin
(cherry picked from commit f43878ca4d)
2018-03-28 00:18:05 +02:00
Mario Rodas
b052ce05d0 gambit: enable on darwin
(cherry picked from commit 0874789dd5)
2018-03-28 00:17:49 +02:00
Sarah Brofeldt
6c056757fb Merge pull request #37944 from srhb/s3ql-cherry
s3ql: 2.21 -> 2.26
2018-03-28 00:13:19 +02:00
Sarah Brofeldt
f21299103f Merge pull request #37942 from srhb/opal-cherry
Backport: opal: build with gcc6
2018-03-28 00:10:37 +02:00
Sarah Brofeldt
7b43a4ffec Merge pull request #37941 from srhb/notary-cherry
Backport: notary: 0.5.1 -> 0.6.0
2018-03-27 23:47:49 +02:00
Andreas Rammhold
877cde2272 openssl: 1.0.2n -> 1.0.2o (fixes CVE-2017-3738, CVE-2018-0739)
Announcement can be found at [1].

[1] https://www.openssl.org/news/secadv/20180327.txt

(cherry picked from commit 4bf9b4a328)
2018-03-27 23:47:17 +02:00
Andreas Rammhold
f9b510b476 openssl_1_1_0: 1.1.0g -> 1.1.0h (fixes CVE-2018-0739, CVE-2017-3738)
Also fixes CVE-2018-0733 but we do not support HP-UX to my knowledge :-)

Announcement at [1].

[1] https://www.openssl.org/news/secadv/20180327.txt

(cherry picked from commit 72110322c0)
2018-03-27 23:47:13 +02:00
Sarah Brofeldt
45715be8a9 Merge pull request #37939 from srhb/kmsxx-cherry
Backport: kmsxx: build with gcc6
2018-03-27 23:38:55 +02:00
Sarah Brofeldt
bfd827cba1 Merge pull request #37938 from srhb/gosmore-cherry
gosmore: fix build with gcc7
2018-03-27 23:37:47 +02:00
Ryan Mulligan
8410194b6b s3ql: 2.21 -> 2.26
Semi-automatic update generated by https://github.com/ryantm/nix-update tools. These checks were done:

- built on NixOS
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.fsck.s3ql-wrapped -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.fsck.s3ql-wrapped --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.fsck.s3ql-wrapped --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/fsck.s3ql -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/fsck.s3ql --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/fsck.s3ql --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.mkfs.s3ql-wrapped -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.mkfs.s3ql-wrapped --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.mkfs.s3ql-wrapped --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/mkfs.s3ql -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/mkfs.s3ql --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/mkfs.s3ql --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.mount.s3ql-wrapped -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.mount.s3ql-wrapped --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.mount.s3ql-wrapped --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/mount.s3ql -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/mount.s3ql --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/mount.s3ql --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3ql_oauth_client-wrapped -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3ql_oauth_client-wrapped --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3ql_oauth_client-wrapped --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3ql_oauth_client -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3ql_oauth_client --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3ql_oauth_client --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3ql_verify-wrapped -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3ql_verify-wrapped --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3ql_verify-wrapped --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3ql_verify -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3ql_verify --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3ql_verify --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qladm-wrapped -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qladm-wrapped --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qladm-wrapped --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qladm -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qladm --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qladm --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qlcp-wrapped -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qlcp-wrapped --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qlcp-wrapped --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qlcp -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qlcp --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qlcp --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qlctrl-wrapped -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qlctrl-wrapped --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qlctrl-wrapped --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qlctrl -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qlctrl --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qlctrl --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qllock-wrapped -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qllock-wrapped --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qllock-wrapped --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qllock -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qllock --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qllock --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qlrm-wrapped -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qlrm-wrapped --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qlrm-wrapped --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qlrm -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qlrm --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qlrm --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qlstat-wrapped -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qlstat-wrapped --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.s3qlstat-wrapped --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qlstat -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qlstat --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/s3qlstat --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.umount.s3ql-wrapped -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.umount.s3ql-wrapped --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/.umount.s3ql-wrapped --version` and found version 2.26
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/umount.s3ql -h` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/umount.s3ql --help` got 0 exit code
- ran `/nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26/bin/umount.s3ql --version` and found version 2.26
- found 2.26 with grep in /nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26
- found 2.26 in filename of file in /nix/store/rkms0h08sfvsbpz7yp7fikhd272g28p2-s3ql-2.26

(cherry picked from commit e3db2501f9)
2018-03-27 23:31:43 +02:00
Michael Raskin
df8996671e opal: build with gcc6
(cherry picked from commit 6a589dea59)
2018-03-27 23:28:36 +02:00
lewo
65d266574e notary: 0.5.1 -> 0.6.0
(cherry picked from commit a12ad22c2c)
2018-03-27 23:26:36 +02:00
Daniel Fullmer
2d11ec0612 mythtv: 0.27.4 -> 29.1
(cherry picked from commit 70abab8eaf)
2018-03-27 23:24:42 +02:00
xeji
45a8928acd kmsxx: build with gcc6
gcc7 build fails with "internal compiler error"

(cherry picked from commit d78464723b)
2018-03-27 23:22:17 +02:00
Symphorien Gibol
0a73cde76f gosmore: fix build with gcc7
(cherry picked from commit d6aff3d65b)
2018-03-27 23:17:32 +02:00
Joachim F
2ee303490f Merge pull request #37937 from srhb/godot-cherry
Backport: godot: 2.1.4 -> 3.0 + godot_headers
2018-03-27 21:14:39 +00:00
Sarah Brofeldt
0bf74b94ba godot: 2.1.4 -> 3.0 + godot_headers
(cherry picked from commit 048724c4af)
2018-03-27 23:00:45 +02:00
Shea Levy
92b1816591 pythonPackages.pyspark: Init at 2.3.0
(cherry picked from commit 2963d76ca3)
2018-03-27 14:17:13 -04:00
Shea Levy
77c457b2b2 pythonPackages.py4j: Init at 0.10.6.
(cherry picked from commit 4322f2b8c8)
2018-03-27 14:17:05 -04:00
Joachim Fasting
9e8f45e671 tor-browser-bundle-bin: 7.5.2 -> 7.5.3
(cherry picked from commit 707a1ce0da)
2018-03-27 18:16:01 +02:00
Joachim Fasting
43a979c918 electrum: 3.1.0 -> 3.1.1
(cherry picked from commit f5a48fe3c9)

Bugfix release
2018-03-27 18:13:44 +02:00
Nikolay Amiantov
05c9191a20 linuxPackages.nvidia_x11_legacy173: drop mentions
Thanks to pbogdan for noticing this. I'd like to have a "no direct commit"
policy implemented for my own good ^_^".

Tested with ofborg's outpaths.nix

(cherry picked from commit 67adb994bc)
2018-03-27 17:21:29 +03:00
Tristan Helmich
7c34ee2b80 apacheHttpd: 2.4.29 -> 2.4.33
(cherry picked from commit 737bf1d229)
2018-03-27 16:13:30 +02:00
Nikolay Amiantov
824d63448b linuxPackages.nvidia_x11_legacy304.settings: force i686
This legacy settings application doesn't support x86_64.

(cherry picked from commit 4b67702e5b)
2018-03-27 16:54:57 +03:00
Nikolay Amiantov
34a2cd7d08 linuxPackages.nvidia_x11: build only for x86 Linux
(cherry picked from commit 00e5b20d17)
2018-03-27 16:54:49 +03:00
Nikolay Amiantov
d2b6e655ca linuxPackages.nvidia_x11_legacy173: drop
There's no kernel in nixpkgs suitable for this old driver -- tested with 4.4.

(cherry picked from commit 25ac79647c)
2018-03-27 16:54:35 +03:00
volth
b65061a3fd nvidiaLegacy304: fix build
Fixes #37768. Fixes #33395. Closes #37866.

abbradar: don't fix settings in a NixOS module.

(cherry picked from commit f396dd1dcb)
2018-03-27 16:51:02 +03:00
Graham Christensen
0d02468af7 nixpkgs docs: syntax highlight
(cherry picked from commit 8dac5ce146)
2018-03-27 09:41:37 -04:00
Tim Steinbach
5afb48364d ammonite: 1.0.5 -> 1.1.0
(cherry picked from commit 945b681d3b)
2018-03-27 08:59:22 -04:00
Tim Steinbach
6a582b7a78 sbt: 1.1.1 -> 1.1.2
(cherry picked from commit ca28546bfc)
2018-03-27 08:56:52 -04:00
Shea Levy
8e34b6def1 Merge branch 'staging-18.03' into release-18.03 2018-03-27 07:54:39 -04:00
Daniel Kuehn
40212de191 ceph: Change hardcoded site-packages path to utilizing the python2Packages.python.sitePackages attribute instead
(cherry picked from commit d74bcbc8ad)
2018-03-27 10:56:29 +01:00
Daniel Kuehn
38302326ce ceph: Add makeWrapper to dependencies and nativeBuildInputs
The ceph-mgr daemon needs to know the location of cephs own-made python modules for some of the modules
that you can enable for it.
With wrapProgram, a wrapper is added that sets the proper pythonpath environment variable for the ceph-mgr
daemon so its modules can find the ceph python modules

(cherry picked from commit a9a7580c3f)
2018-03-27 10:56:29 +01:00
Graham Christensen
22782ef953 documentation-highlighter: init
(cherry picked from commit a8d08b04a2)
2018-03-26 21:43:11 -04:00
Alex Vorobiev
37b5385f88 Update default.nix
(cherry picked from commit 8c7883c027)
2018-03-27 00:14:39 +02:00
Moritz Ulrich
2e569319fa erlang: Fix order of commands in postPach and postInstall phases.
Fixes #36853
Fixes #36823
2018-03-26 22:43:05 +02:00
Shea Levy
883b7c54d8 haskellPackages.lenz-template: Fix against lenz 3
(cherry picked from commit 2456060458)
2018-03-26 16:13:56 -04:00
Graham Christensen
a50e55382b Move the overridden CSS to overrides.css which can be applied on nixos.org
(cherry picked from commit da17974541)
2018-03-26 16:02:04 -04:00
Graham Christensen
c0c6e98690 nixpkgs docs: Use SVGs for callouts
(cherry picked from commit a80856cec5)
2018-03-26 16:02:00 -04:00
Shea Levy
bccc513396 haskellPackages.lenz: Remove outdated patch.
(cherry picked from commit 2b3ba40c03)
2018-03-26 13:40:31 -04:00
Sarah Brofeldt
5d817cfa4b Merge pull request #37879 from srhb/backport-#37877
Backport: dockerTools.tarsum: Fix upstream import
2018-03-26 19:31:55 +02:00
Sarah Brofeldt
d610810de0 dockerTools.tarsum: Fix upstream import
(cherry picked from commit 4874ce1701)
Backport of #37877
2018-03-26 19:17:27 +02:00
Lancelot SIX
732e3d05de qgis: 2.18.16 -> 2.18.17
(cherry picked from commit 4aaf23a698)
2018-03-26 17:49:26 +02:00
Shea Levy
ae174ee217 haskell.compiler.ghc8{22,41}: Fix abi-depends non-determinism.
See https://github.com/haskell/cabal/issues/4728 for symptoms,
https://phabricator.haskell.org/D4159 for the base of the fix.

(cherry picked from commit 59a53aada0)
2018-03-26 10:17:06 -04:00
Joachim Fasting
a585401f3f tor-browser-bundle-bin: 7.5.1 -> 7.5.2
(cherry picked from commit d09b4d7b2e)
2018-03-26 15:09:26 +02:00
Joachim Fasting
3d007c880e tor-browser-bundle-bin: 7.5 -> 7.5.1
(cherry picked from commit 6f9a9e8876)
2018-03-26 15:09:20 +02:00
Graham Christensen
0f188554ac Add 'make debug' to call xmloscopy
(cherry picked from commit 67f9d2425d)
2018-03-26 08:37:15 -04:00
Graham Christensen
a758dcd467 Move validate to top-level so it doesn't rebuild the outputs every time
(cherry picked from commit fce1fb7e75)
2018-03-26 08:37:15 -04:00
Graham Christensen
dad020675d Validate when building outputs
(cherry picked from commit 30dd2d3feb)
2018-03-26 08:37:14 -04:00
Graham Christensen
0e8f36fb1f Document shell.nix / xmloscopy / make for the nixpkgs docs
(cherry picked from commit f67ea4a6d0)
2018-03-26 08:37:14 -04:00
Graham Christensen
a4c1951910 docs: Build with a makefile
(cherry picked from commit 7e25ff7106)
2018-03-26 08:37:14 -04:00
Graham Christensen
663c605492 Ignore generated XML and other generated files
(cherry picked from commit 8c7be5927e)
2018-03-26 08:37:14 -04:00
Graham Christensen
b38f07ccac Move all nixpkgs doc files in to the doc directory
This makes a makefile-driven developer workflow nicer.

(cherry picked from commit 92d53362d4)

Edited to remove the emscripten references, which were new on
master
2018-03-26 08:37:08 -04:00
Graham Christensen
8ebd176017 xmloscopy: 0.1.1 -> 0.1.2
Ugh this is embarassing

(cherry picked from commit 6e4a51fe54)
2018-03-26 08:30:20 -04:00
Graham Christensen
a1b27036c5 xmloscopy: init at 0.1.1
(cherry picked from commit 72a4c54c71)
2018-03-26 08:30:19 -04:00
Josef Kemetmüller
0b9fea1e1a keepassxc: 2.3.0 -> 2.3.1
(cherry picked from commit 3f1a03b20e)
2018-03-26 10:05:41 +01:00
Josef Kemetmüller
58d56020b7 keepassxc: fix darwin build
(cherry picked from commit 2a80448fed)
2018-03-26 10:05:41 +01:00
Peter Hoeg
35e62a279d Merge pull request #37847 from peterhoeg/hass1803
home-assistant: backport of a number of python packages
2018-03-26 16:02:13 +08:00
Peter Hoeg
7662b6c9f4 home-assistant: add missing dependencies
(cherry picked from commit 15f63cb114)
2018-03-26 15:03:16 +08:00
Robert Schütz
972c80d30e pythonPackages.async: uninit because deprecated
Citing from PyPI:
DEPRECATION NOTE: Please do not use this library ! It’s not working correctly in python 3, and besides that might be called a failed experiment.

(cherry picked from commit 33e16997b9)
2018-03-26 15:01:19 +08:00
Peter Hoeg
1d3e888bda pythonPackages.miniupnpc: init at 2.0.2
(cherry picked from commit b1d7d13e64)
2018-03-26 15:01:12 +08:00
Peter Hoeg
79086fbc1e pythonPackages.ha-ffmpeg: init at 1.9
(cherry picked from commit 083ac5add3)
2018-03-26 15:01:06 +08:00
Peter Hoeg
05e0dc4c6d pythonPackages.sseclient: init at 0.0.19
(cherry picked from commit 91456c6705)
2018-03-26 15:00:54 +08:00
Peter Hoeg
af9b83af22 pythonPackages.deluge-client: init at 1.2.0
(cherry picked from commit 0bb55edb3a)
2018-03-26 15:00:46 +08:00
Peter Hoeg
c4e37974c3 pythonPackages.yahooweather: init at 0.10
(cherry picked from commit 4af9a88107)
2018-03-26 15:00:33 +08:00
Herwig Hochleitner
4166986dfa chromium: 65.0.3325.162 -> 65.0.3325.181
dev: 66 -> 67

cc @YorikSar @aszlig

(cherry picked from commit 8cbf295b6c)
2018-03-26 01:54:11 +02:00
Will Dietz
f9245e3e80 erlang R18-20: updates
(cherry picked from commit f967d23403)
2018-03-25 23:40:04 +02:00
Tim Steinbach
79bf41dfb0 linux: 4.15.12 -> 4.15.13
(cherry picked from commit 5040564737f8fdc0d5edb1c5bcef0925e125f648)
2018-03-25 15:06:55 -04:00
Tim Steinbach
2208739d1c linux: 4.14.29 -> 4.14.30
(cherry picked from commit ab2b67ebfe76a885a9f0cfbf5a4e5a4a110ab4e5)
2018-03-25 15:06:47 -04:00
Tim Steinbach
933ba214e9 linux: 4.9.89 -> 4.9.90
(cherry picked from commit 32a9c9ff73f8b43e6f370754777a2ab20c5d7158)
2018-03-25 15:06:37 -04:00
Tim Steinbach
4e0b497cab linux: 4.4.123 -> 4.4.124
(cherry picked from commit 1df36eba3170897ad44ca9e4d19460a233aedf10)
2018-03-25 15:06:28 -04:00
Tim Steinbach
06022fff51 linux-copperhead: 4.15.12.a -> 4.15.13.a
(cherry picked from commit 64396ec8c1343828749f4866d941148104f2d0de)
2018-03-25 15:06:20 -04:00
Michael Raskin
741ae94dc0 Merge pull request #35073 from Infinisil/fix/znapzend
nixos/znapzend: fix when no previous zetup

(cherry picked from commit 296dca019b)
2018-03-25 19:42:25 +02:00
xeji
0192dc6321 ptlib: fix build
patch typedef clashes with unixODBC>=2.3.5

(cherry picked from commit 4308403c30)
2018-03-25 20:03:39 +03:00
Josef Kemetmüller
c9ab869bd2 mp3blaster: fix darwin build
/cc ZHF #36454

(cherry picked from commit 11aae21cf8)
2018-03-25 19:01:24 +02:00
Tuomas Tynkkynen
ad027421c3 nixos/tests/misc: Fix on aarch64
The psmouse module is for PS/2 mouse only, which doesn't exist outside
x86. But we can test for the mousedev module just as well which is used
for the '-device usb-tablet' emulated by QEMU.

(cherry picked from commit d27f7942b7)
2018-03-25 18:38:57 +03:00
Daiderd Jordan
b6ddb9913f swftools: fix darwin build
/cc ZHF #36454

(cherry picked from commit 3301258190)
2018-03-25 17:02:01 +02:00
Tuomas Tynkkynen
4403f33860 llvm_34, llvm_35: Disable on aarch64
https://hydra.nixos.org/build/71176565
https://hydra.nixos.org/build/71167754
(cherry picked from commit bec461a35a)
2018-03-25 17:58:23 +03:00
Gabriel Ebner
7a752aa8f8 gogs: 0.11.29 -> 0.11.34
There were security fixes in the 0.11.33 release.

(cherry picked from commit 19fa3a5e53)
2018-03-25 16:15:08 +02:00
Daiderd Jordan
12deb60a67 shairplay: fix darwin build
/cc ZHF #36454

(cherry picked from commit 3ca8b20328)
2018-03-25 15:35:21 +02:00
Daiderd Jordan
642a86ba84 scowl: fix darwin build
/cc ZHF #36454

(cherry picked from commit e52250b33c)
2018-03-25 15:27:25 +02:00
Daiderd Jordan
22ad26e23d runit: mark linux only
/cc ZHF #36454

(cherry picked from commit 713ff855e0)
2018-03-25 15:03:37 +02:00
Daiderd Jordan
2224dd1599 ragel: fix clang build
/cc ZHF #36454

(cherry picked from commit 319c61c893)
2018-03-25 14:41:37 +02:00
Tuomas Tynkkynen
91b09422cf U-Boot: Disable parallel build
https://hydra.nixos.org/build/71880710
(cherry picked from commit 50dc85ed62)
2018-03-25 12:59:46 +03:00
Tuomas Tynkkynen
c4597d2568 armTrustedFirmware: Disable parallel build
I think https://hydra.nixos.org/build/71541345 is parallel build
related.

(cherry picked from commit bab5a0664c)
2018-03-25 12:59:45 +03:00
Tuomas Tynkkynen
f2c9a2557b armTrustedFirmwareQemu: 1.4 -> 1.5, fixes build with GCC7
(cherry picked from commit 107eaa8780)
2018-03-25 12:59:45 +03:00
Tuomas Tynkkynen
298ea40d39 armTrustedFirmware: Remove targetPlatforms like was done in U-Boot
Should also fix Hydra attempting to build this stuff on x86, like
https://hydra.nixos.org/build/71533289

(cherry picked from commit a2d8a9aad7)
2018-03-25 12:59:45 +03:00
Tuomas Tynkkynen
a68e60f450 U-Boot: Make ubootJetsonTK1 install even more files
(cherry picked from commit 4fe75d11b2)
2018-03-25 12:59:45 +03:00
Tuomas Tynkkynen
1896fcff60 U-Boot: Add Pine64 build
(cherry picked from commit 4b77663edf)
2018-03-25 12:59:45 +03:00
Samuel Dionne-Riel
176d151f4d U-Boot: Add SOPINE Baseboard build
This build is compatible with PINE A64-LTS.

[dezgeg changed the original device tree patch to v4 of the patch series
"sunxi: sync H3, H5, A64 DTs from mainline Linux" submitted to the
upstream mailing list by Andre Przywara. Also install the
u-boot-sunxi-with-spl.bin binary similar to 32-bit boards
since it's now being built by the upstream build system.]

(cherry picked from commit 2ff31f71ae)
2018-03-25 12:59:44 +03:00
Samuel Dionne-Riel
cf87889431 arm-trusted-firmware: Inits at various versions
For qemu, at 1.4 from upstream.

For Sopine / Pine A64-LTS, at 1.0 from fork.

(cherry picked from commit f2175e1bd4)
2018-03-25 12:59:44 +03:00
Tuomas Tynkkynen
eff6d9628c U-Boot: Add AArch64 QEMU build
See

https://github.com/u-boot/u-boot/blob/master/doc/README.qemu-arm

on how to use it.

(cherry picked from commit 6b069c656a)
2018-03-25 12:59:44 +03:00
Ben Wolsieffer
4c669db598 uboot: fix cross-build of ubootTools
(cherry picked from commit 28fd7d9594)
2018-03-25 12:59:44 +03:00
Ben Wolsieffer
48ade50d8e uboot: sheevplug and guruplug: use mainline U-Boot
These derivations have not seen any updates since they were created in 2010,
and some of their sources have disappeared. There are upstream configs for
these boards, so these are now used, and they build correctly. I have no way
of testing them, and I don't if anyone even uses either board with Nix anymore.

(cherry picked from commit 01020b3263)
2018-03-25 12:59:44 +03:00
Ben Wolsieffer
b0abe78b5c uboot: rock64: use binary blob for TPL
This stops the kernel from crashing immediately after boot.

(cherry picked from commit ba3e470651)
2018-03-25 12:59:43 +03:00
Ben Wolsieffer
828fdd61b9 uboot: add patch to increase maximum path length in extlinux.conf
This fixes problems with cross compiled kernels failing to boot.

(cherry picked from commit 1f4bb8c61d)
2018-03-25 12:59:43 +03:00
Ben Wolsieffer
94c403fb92 arm-trusted-firmware: init
ARM trusted firmware is required as part of the boot process on some ARMv8-A
boards. Currently, only the RK3328 is supported in nixpkgs.

This makes the Rock64 u-boot image bootable.

(cherry picked from commit 0ab76c5a4e)
2018-03-25 12:59:43 +03:00
Ben Wolsieffer
e794f9abbf maintainers: add lopsided98
(cherry picked from commit 0264c9bb47)
2018-03-25 12:59:43 +03:00
Ben Wolsieffer
dc01b66eef uboot: add Rock64 support
The bootloader is currently non-functional because it lacks the ARM Trusted
Firmware image (bl31.elf).

(cherry picked from commit 6f5a0bded2)
2018-03-25 12:59:42 +03:00
Ben Wolsieffer
7c46833b04 uboot: 2017.11 -> 2018.03, cross fixes
(cherry picked from commit 5804547243)
2018-03-25 12:59:42 +03:00
Kai Harries
1da25dd104 debian-devscripts: add dpkg in PATH
The script uscan was complaining about missing dpkg, therefore I have
added it to the PATH.

(cherry picked from commit 404c80791f)
2018-03-25 10:25:21 +01:00
Tim Steinbach
d843d7f21a minikube: 0.25.0 -> 0.25.2
(cherry picked from commit 040a9ab240)
2018-03-25 00:50:19 -04:00
Tim Steinbach
ccabf39f5c zulu: 9.0.4 -> 10
(cherry picked from commit 351688f53e)
2018-03-25 00:50:12 -04:00
Tim Steinbach
35a6799b17 openjdk: Add JDK 10
(cherry picked from commit f00db926c6)
2018-03-25 00:50:05 -04:00
Tim Steinbach
e2b8732980 vault: Fix test
(cherry picked from commit 3aa3738bb2)
2018-03-25 01:01:34 +01:00
Robin Gloster
bdac630c1d grpcio: use protobuf3_5
(cherry picked from commit c71bcb2744)
2018-03-24 20:34:39 +01:00
Robin Gloster
85d5fdce26 protobuf3_5: init at 3.5.1.1
partly cherry-picked from 4bbd6900f8
2018-03-24 20:34:39 +01:00
Jon Banafato
a903faf1d5 keybase-gui: Enable desktop notifications (#37711)
Add `libnotify` as a build input to make message notifications work.

(cherry picked from commit 8ac272f98d)
2018-03-24 19:28:37 +00:00
Josef Kemetmüller
a978eee06f libcdio-paranoia: fix darwin build
(cherry picked from commit 285ef9be09)
2018-03-24 19:21:11 +00:00
Josef Kemetmüller
e32dee886f glyr: enable darwin build
(cherry picked from commit ad3eb5d8fc)
2018-03-24 19:15:40 +00:00
volth
6f384b77d2 babelstone-han: 10.0.2 -> 11.0.0
new font version; old link answers with 404

(cherry picked from commit 64c756d50d)
2018-03-24 19:15:40 +00:00
Pascal Wittmann
898cddd756 autossh: 1.4e -> 1.4f 2018-03-24 19:35:44 +01:00
Tuomas Tynkkynen
e789f6f6e5 ghc: Disable on AArch64
For some reason compiling the proper GHC from the binary one eventually
segfaults at some point.

Since it has never worked, just disable it and investigate later.

(cherry picked from commit a6425fc66d)
2018-03-24 18:37:20 +02:00
Tuomas Tynkkynen
be44525d04 nixos/tests/installer: Give eval failure on unsupported boot methods
(cherry picked from commit 3131daace1)
2018-03-24 18:37:20 +02:00
Tim Steinbach
9d8c6c71c0 docker: 18.02 -> 18.03
(cherry picked from commit b072dcffae)
2018-03-24 12:33:47 -04:00
Franz Pletz
15e3aad1a2 openra: 20180218 -> 20180307
(cherry picked from commit 204a029101)
2018-03-24 17:11:59 +01:00
Franz Pletz
4e67f8974a browserpass: 2.0.13 -> 2.0.17
(cherry picked from commit 8df9cf585a)
2018-03-24 17:11:58 +01:00
Tad Fisher
86508d4ea4 browserpass: 2.0.11 -> 2.0.13
(cherry picked from commit 82f2c19d98)
2018-03-24 17:11:56 +01:00
Tuomas Tynkkynen
f45bc2b3e4 nixos/tests: Make simpleUefiGrub test work on AArch64
Needs more refactoring for the AArch64 '-enable-kvm' stuff some day...

(cherry picked from commit e58624a877)
2018-03-24 16:51:06 +02:00
Tuomas Tynkkynen
ad57d1ec63 edk2, OVMF: Build on aarch64
And also build in parallel.

I don't understand why we manually tediously link every single directory
from the source, but I don't want to investigate too much.

(cherry picked from commit f59eab75d2)
2018-03-24 16:51:00 +02:00
Tuomas Tynkkynen
75276115bf OVMF: Reformat a bit for readability
- Use 'somePkg == null' instead of 'somePkg == false' which is more
  conventional in rest of Nixpkgs
- Use lib.optionalString where applicable

(cherry picked from commit 1645011983)
2018-03-24 16:50:48 +02:00
Tuomas Tynkkynen
7a79af0b8d edk2: Reformat a bit for readability
- Have only one sed expression per line
- Put the important stuff closer to the command and not hidden in some
continuation line. That is, don't do:

sed \
    <boring stuff> \
    <boring stuff> \
    <boring stuff> \
    <boring stuff> \
    <boring stuff> \
    <IMPORTANT STUFF>

but:

sed <IMPORTANT STUFF> \
    <boring stuff> \
    <boring stuff> \
    <boring stuff> \
    <boring stuff> \
    <boring stuff>

(cherry picked from commit 1d854b479c)
2018-03-24 16:50:41 +02:00
Vladimír Čunát
0d20e7db5b Merge #37702: telepathy-gabble: fix source URL
(cherry picked from commit 902b3a161c)
2018-03-24 15:14:35 +01:00
Vladimír Čunát
a3be411dbd Merge #37262: snabb: 2016.04 -> 2018.01.2
(cherry picked from commit 7110d4a63b)
It didn't build before this commit.
2018-03-24 15:06:11 +01:00
Daiderd Jordan
2a57fc65b0 qscreenshot: fix darwin build
/cc ZHF #36454

(cherry picked from commit b5b77a6886)
2018-03-24 14:28:02 +01:00
Robin Gloster
d4f3c16982 jsduck: fix build
json 1.8.3 is broken with ruby 2.4

(cherry picked from commit f59a544bf1)
2018-03-24 14:08:31 +01:00
Matthew Justin Bauer
f61244da2e Merge #33685: amdgpu-pro: 17.10 -> 17.40
(cherry picked from commit ce01740dae)
> It's definitely less broken than 17.10.
2018-03-24 12:57:47 +01:00
Robin Gloster
f4770f2030 qgroundcontrol: 3.2.7 -> 3.3.0
(cherry picked from commit 1b27260a0b)
2018-03-24 12:09:03 +01:00
Robin Gloster
1febd196e7 libsForQt5.qtspeech: enable
(cherry picked from commit 8a244db9f3)
2018-03-24 12:09:02 +01:00
Vladimír Čunát
9c85d196a9 Merge #37724:thunderbird*: 52.6.0 -> 52.7.0 (security)
(cherry picked from commit 56fb68dcef)
2018-03-24 11:01:55 +01:00
Robin Gloster
0058e51c8c python.pkgs.logster: 7475c53822 -> 1.0.1
(cherry picked from commit 2e6aacb056)
2018-03-24 10:36:40 +01:00
Robin Gloster
4a34e749f7 python.pkgs.pygtail: init at 0.8.0
(cherry picked from commit 6a286fcba7)
2018-03-24 10:36:39 +01:00
Daiderd Jordan
3976ff79e8 picosat: fix darwin build
/cc ZHF #36454

(cherry picked from commit 23d0c17130)
2018-03-24 02:25:57 +01:00
Daiderd Jordan
f6c0edb3ec openexrid-unstable: fix clang build
/cc ZHF #36454

(cherry picked from commit f16db19610)
2018-03-24 02:25:47 +01:00
Jörg Thalheim
08101d052d Merge pull request #37714 from flokli/nuke-networkmanager-pptp-18.03
networkmanager-pptp: remove package (18.03)
2018-03-23 22:58:21 +00:00
Florian Klink
fb4847ebdd networkmanager-pptp: remove package
backport of #37712

Currently broken on NixOS due to hardcoded modprobe binary path (see
bug #30756 from Oct 2017), no activity on a proposed fix for months.
As the protocol is terribly broken anyways, let's better remove it
completely, and not talk about anymore ;-)

Closes #30756.

(cherry picked from commit 6ac74d60ad)
2018-03-23 23:16:09 +01:00
Tuomas Tynkkynen
ba2a04f656 glslviewer: 1.2 -> 2018-01-31, fixes build
(cherry picked from commit a8eb2c9ef9)
2018-03-23 21:06:23 +02:00
Tuomas Tynkkynen
af6cc8e704 riscv-pk: Set correct platforms
https://hydra.nixos.org/build/70691103

(cherry picked from commit a2c37c0700)
2018-03-23 20:06:09 +02:00
xeji
296c09a355 t: 2.9.0 -> 3.1.0
2.9.0 didn't build anymore

(cherry picked from commit 8cd005b6fb)
2018-03-23 20:01:51 +02:00
Nikolay Amiantov
48856a91c0 systemd: use stable tree
This fixes a bug with changed qemu network interface names and also generally
should be preferred to using a release tag.

(cherry picked from commit 6b9771e4a7)
2018-03-23 17:23:10 +01:00
Albert Safin
cdb97353df wine: disable bindnow hardening
(cherry picked from commit ba960ac383)
2018-03-23 18:13:13 +02:00
Shea Levy
9e804ba5bf Remove HIE package set until automation can be put in place.
(cherry picked from commit ead2ba8809)
2018-03-23 10:25:59 -04:00
Jörg Thalheim
3cf448faf2 vis: patch shebang to use system bash
(cherry picked from commit 0203a6281c)
2018-03-23 07:59:59 +00:00
Andrew Childs
01204cf872 avrdude: add darwin platform
(cherry picked from commit b4888489e3)
2018-03-23 01:42:18 +01:00
Andrew Childs
eef14cb305 libftdi1: add darwin platform
(cherry picked from commit d0df007843)
2018-03-23 01:42:17 +01:00
Daiderd Jordan
31ba589e50 ntbtls: fix darwin build
/cc ZHF #36454

(cherry picked from commit 366bf3a309)
2018-03-22 23:17:43 +01:00
Nikolay Amiantov
2d2ab94cd2 systemd: 237 -> 238
(cherry picked from commit 0ccab4946d)
2018-03-22 23:12:42 +01:00
Nikolay Amiantov
01cce78ec4 kernel: enable CGROUP_NET_PRIO
It's required by systemd 238 because of a bug, otherwise systemd aborts.

(cherry picked from commit e31c3f8b9f)
2018-03-22 23:12:39 +01:00
Josef Kemetmüller
361bd591ea streamripper: Don't use included libmad
streamripper ships its own version of libmad, which does not compile on
clang, due to the usage of incompatible compiler flags. We can get the
build working by using the already packaged libmad, which includes
patches for clang.

(cherry picked from commit e77071289e)
2018-03-22 21:57:42 +01:00
Robin Gloster
a614f9f4c1 openpts: remove
Broken, dead prject that only was a PoC implementation.

(cherry picked from commit 678211bb37)
2018-03-22 17:16:11 +01:00
WilliButz
b828d00ffd nixos/prometheus-exporters: add postfix exporter & documentation
(cherry picked from commit c54aa1f293)
2018-03-22 15:24:55 +01:00
WilliButz
135e13f8fc release notes: add information about prometheus exporters
(cherry picked from commit 8a13101226)
2018-03-22 15:24:55 +01:00
WilliButz
55e97a2ebb nixos/prometheus-exporters: rewrite and restructure
- prometheus exporters are now configured with
  `services.prometheus.exporters.<name>`
- the exporters are now defined by attribute sets
  from which the options for each exporter are generated
- most of the exporter definitions are used unchanged,
  except for some changes that should't have any impact
  on the functionality.

(cherry picked from commit f4d03b5c9c)
2018-03-22 15:24:55 +01:00
Sander van der Burg
510fd552eb xcodeenv: publish xcarchive directory in the output store path if requested
(cherry picked from commit 112ebed491)
2018-03-22 15:02:41 +01:00
Sander van der Burg
d200e2cfde xcodeenv: replace deprecated package application procedure by the new export archive operation
(cherry picked from commit f2bd9d4745)
2018-03-22 14:34:18 +01:00
Robin Gloster
ba11500aa8 prosody: add test to release.nix
(cherry picked from commit faaf32a0ee)
2018-03-22 14:33:10 +01:00
Robin Gloster
766a80ec84 prosody: improve module handling
(cherry picked from commit 0a80f2c0f4)
2018-03-22 14:33:10 +01:00
Florian Jacob
b9084d0160 nixos/prosody: add a basic test
(cherry picked from commit 88f06c5ce9)
2018-03-22 14:33:09 +01:00
Florian Jacob
05f206c3c1 prosody: update community modules
(cherry picked from commit 2c0b230330)
2018-03-22 14:33:09 +01:00
Florian Jacob
7ef13f58b6 prosody: 0.9.12 -> 0.10.0
updating config options, removing luazlib as mod_compression was removed
for security reasons.

(cherry picked from commit 226965da67)
2018-03-22 14:33:09 +01:00
Florian Jacob
64301d0a32 luaevent: 0.4.3 -> 0.4.4
(cherry picked from commit 0c74665bad)
2018-03-22 14:33:08 +01:00
Tim Steinbach
d01e4430b3 linux: 4.9.88 -> 4.9.89
(cherry picked from commit d9e21f3270a3dcc2a67b6e20248a3f83e98dada3)
2018-03-22 09:17:31 -04:00
Tim Steinbach
bbde130fd7 linux: 4.4.122 -> 4.4.123
(cherry picked from commit 8b18ed859285127c40a2cf90c0ad8b172b532732)
2018-03-22 09:17:22 -04:00
Tim Steinbach
d011c7bd02 linux-copperhead: 4.15.11.a -> 4.15.12.a
(cherry picked from commit b7dff1f41fec299eb4b7e09813bfd09aa52a5c5e)
2018-03-22 09:17:13 -04:00
Michael Brantley
ef716bb5cf perlPackages.GSSAPI: depend on krb5Full, fix misspelling
(cherry picked from commit 0d6fdac8e2)
2018-03-22 11:43:58 +00:00
adisbladis
13958f4a36 Merge pull request #37614 from clefru/cherry-18.03
pycurl: 7.19.5.1 -> 7.43.0.1
2018-03-22 17:35:21 +08:00
Will Dietz
72314d37e8 pycurl: 7.19.5.1 -> 7.43.0.1
(cherry picked from commit 99131b4fc2)
2018-03-22 10:23:27 +01:00
giraffito
0e735393c7 python.md: fix grammar around bdist_wheel FAQ
(cherry picked from commit 319866ae11)
2018-03-22 07:30:22 +01:00
Robin Gloster
103e2c4efb graylog: use jre_headless
(cherry picked from commit fa347164b6)
2018-03-22 02:32:43 +01:00
Franz Pletz
eb80bdc402 gitlab service: use recommended unicorn config
(cherry picked from commit e5a854e740)
2018-03-22 02:32:27 +01:00
Robin Gloster
07d1b17941 gitlab: 10.5.4 -> 10.5.6
(cherry picked from commit 08946efdc8)
2018-03-22 02:32:27 +01:00
Simon Lackerbauer
d6595b4d5b gitlab: 10.3.4 -> 10.5.4
(cherry picked from commit 1b55905806)
2018-03-22 02:32:27 +01:00
Robin Gloster
ca3bf23f5f gitaly: 0.59.2 -> 0.81.0
(cherry picked from commit 73a7f984d6)
2018-03-22 02:32:27 +01:00
Simon Lackerbauer
9680902949 gitlab-workhorse: 3.3.1 -> 3.6.0
(cherry picked from commit 9ccd010217)
2018-03-22 02:32:26 +01:00
Simon Lackerbauer
5445bb1583 gitlab-shell: 5.10.2 -> 6.0.3
(cherry picked from commit 08bf87420f)
2018-03-22 02:32:26 +01:00
Robin Gloster
75842fe98c gitlab-shell: fix config path finding
and remove TimeoutSec for gitlab

(cherry picked from commit 31d77fd4f3)
2018-03-22 02:32:26 +01:00
Franz Pletz
8c3cb029e0 zfs, spl: 0.7.6 -> 0.7.7
Remove spl patch that was introduced for grsecurity which we don't support
anymore. ZFS now needs perl for some scripts that are call in the configure
script.

(cherry picked from commit f744f83072)
2018-03-22 01:50:06 +01:00
Franz Pletz
b8673bc3e0 altcoins.masari: init at 0.1.4.0
(cherry picked from commit ab5f98a77e)
2018-03-22 01:50:06 +01:00
Franz Pletz
2b397bfa75 nmap: 7.60 -> 7.70
(cherry picked from commit f2fea9042e)
2018-03-22 01:50:05 +01:00
Franz Pletz
0782536e49 squid4: 4.0.23 -> 4.0.24
(cherry picked from commit 1e15d08cac)
2018-03-22 01:50:05 +01:00
Franz Pletz
8b578b862b matterircd: 0.12.0 -> 0.16.5
(cherry picked from commit 7dee8ab568)
2018-03-22 01:50:05 +01:00
Franz Pletz
5150a7ef50 prometheus-node-exporter: 0.15.0 -> 0.15.2
(cherry picked from commit 9152ef910b)
2018-03-22 01:50:04 +01:00
Franz Pletz
a6146ec8bb clamav: 0.99.3 -> 0.99.4 for multiple CVEs
Fixes CVE-2012-6706, CVE-2017-6419, CVE-2017-11423, CVE-2018-0202,
CVE-2018-1000085.

(cherry picked from commit 5050d05656)
2018-03-22 01:50:04 +01:00
Franz Pletz
96c97c51cb prometheus-blackbox-exporter: 0.11.0 -> 0.12.0
(cherry picked from commit 1497815543)
2018-03-22 01:50:04 +01:00
Tim Steinbach
ad06aec8b5 linux: 4.15.11 -> 4.15.12
(cherry picked from commit 55b96a4a3c)
2018-03-21 20:45:19 -04:00
Tim Steinbach
80c6cd1a9e linux: 4.14.28 -> 4.14.29
(cherry picked from commit deb9ff164f)
2018-03-21 20:45:08 -04:00
Daiderd Jordan
9914060dfb nullmailer: fix darwin build
/cc ZHF #36454

(cherry picked from commit 0477af8a09)
2018-03-22 00:11:49 +01:00
Daiderd Jordan
d49e4f607f mysocketw: fix darwin build
/cc ZHF #36454

(cherry picked from commit 18474c1842)
2018-03-21 23:55:29 +01:00
Daiderd Jordan
beea3c9d36 monero: fix darwin build
/cc ZHF #36454

(cherry picked from commit 5d4d4df8c0)
2018-03-21 22:44:37 +01:00
xeji
5995e9c217 libhttpseverywhere: fix build
run tests in correct directory

(cherry picked from commit fa50e903cf)
2018-03-21 23:24:27 +02:00
Daiderd Jordan
c0b813ed17 masscan: fix build
(cherry picked from commit 38323015e2)
2018-03-21 21:51:26 +01:00
Nikolay Amiantov
da20f8dd22 pyqt5: propagate Qt dependencies
This is so that Qt user environment packages are also propagated. Fixes
Electrum environment installations when no other Qt applications are installed.

Added `dev` output so that closure size won't explode.

(cherry picked from commit b1b4c6c4eb)
2018-03-21 23:36:48 +03:00
Daiderd Jordan
d775a130a3 lxtask: fix darwin build
/cc ZHF #36454

(cherry picked from commit 9b5669b5a6)
2018-03-21 21:30:04 +01:00
Daiderd Jordan
9a81f1ba5b luaffi: fix darwin build
/cc ZHF #36454

(cherry picked from commit fe37684525)
2018-03-21 21:29:57 +01:00
Daiderd Jordan
79378daa0e libqglviewer: fix darwin build
/cc ZHF #36454

(cherry picked from commit c2ca5c057d)
2018-03-21 21:29:50 +01:00
Daiderd Jordan
c6603050ba libnfs: fix clang build
/cc ZHF #36454

(cherry picked from commit 9a054d7cd6)
2018-03-21 21:29:35 +01:00
Hendrik Schaeidt
11f1cb7819 add hschaeidt to maintainer list
(cherry picked from commit 86ff559f82)
2018-03-21 19:39:04 +01:00
Hendrik Schaeidt
555ac8418c stabber: init at 2016-11-09
(cherry picked from commit 6634049f22)
2018-03-21 19:38:48 +01:00
Hendrik Schaeidt
dc70be405f profanity: refactor build to build from source
* fix osx build
* fix undefined macros in configure.ac
* activate the check phase to run the test suite

(cherry picked from commit 501b6d0e13)
2018-03-21 19:38:19 +01:00
Sander van der Burg
0f74315456 titaniumenv: fix renaming strategy
(cherry picked from commit 479ec3d888)
2018-03-21 16:09:30 +01:00
Sander van der Burg
6297c190d0 titaniumenv: update example app
(cherry picked from commit 603556085b)
2018-03-21 15:51:36 +01:00
Sander van der Burg
7fa2f865b8 titaniumenv: fix Android signing on darwin
(cherry picked from commit 4beb695ece)
2018-03-21 14:58:56 +01:00
Michael Raskin
ea9f3fca65 Merge pull request #37559 from dylex/release-18.03
julia: update rmath-julia hash for 0.1
2018-03-21 13:25:25 +00:00
Dylan Simon
c0cd5eeab8 julia: update rmath-julia hash for 0.1 2018-03-21 08:30:58 -04:00
Lancelot SIX
cc25915367 octave: 4.2.1 -> 4.2.2
See http://lists.gnu.org/archive/html/info-gnu/2018-03/msg00006.html
for release announcement

(cherry picked from commit 3a7854032a)
2018-03-21 11:48:30 +01:00
Antoine Eiche
5df02d9783 dockerTools: add --sort=name options on all tar calls
This is to go to a reproducible image build.
Note without this options image are identical from the Docker point of
view but generated docker archives could have different hashes.

(cherry picked from commit ac0c491836)
2018-03-21 08:56:49 +01:00
Antoine Eiche
e28a58fb09 dockerTools: dereference hard links in tar archives
This is to improve image creation reproducibility. Since the nar
format doesn't support hard link, the tar stream of a layer can be
different if a dependency of a layer has been built locally or if it
has been fetched from a binary cache.

If the dependency has been build locally, it can contain hard links
which are encoded in the tar stream. If the dependency has been
fetched from a binary cache, the tar stream doesn't contain any hard
link. So even if the content is the same, tar streams are different.

(cherry picked from commit 346996ceec)
2018-03-21 08:56:49 +01:00
Florian Klink
032a3286fd sqldeveloper: 17.4.0.355.2349 -> 17.4.1.054.0712
(cherry picked from commit f9dda86b39)
2018-03-20 21:59:42 +00:00
Johannes Frankenau
9cd1122df5 masterpdfeditor: 4.3.61 -> 4.3.82
(cherry picked from commit 77b205b9fd)
2018-03-20 21:59:42 +00:00
Nikolay Amiantov
97a2621dae xdg_utils: fix xdg-screensaver
(cherry picked from commit ab67f36e73)
2018-03-20 22:21:03 +03:00
Nikolay Amiantov
69e8d7ddd8 steam: add dependencies for Surviving Mars
(cherry picked from commit 792161895f)
2018-03-20 22:21:00 +03:00
Andrew Kelley
77c052d908 zig: 0.1.1 -> 0.2.0
(cherry picked from commit dc3b791854)
2018-03-20 13:56:53 -05:00
Will Dietz
fa78cd4d68 brotli: 1.0.2 -> 1.0.3
https://github.com/google/brotli/releases/tag/v1.0.3
(cherry picked from commit c1c502e93b)
2018-03-20 13:53:26 -05:00
Will Dietz
9fd4a62b64 llvm6: patch to enable sanitizers w/musl
(cherry picked from commit 60bf299e6a)
2018-03-20 13:52:11 -05:00
Will Dietz
043ee6c65d llvm_5: patch sanitizers to enable w/musl
https://gitweb.gentoo.org/proj/musl.git/plain/sys-libs/compiler-rt-sanitizers/files/compiler-rt-sanitizers-5.0.0-musl-patches.patch
(cherry picked from commit a8824ab4fb)
2018-03-20 13:52:06 -05:00
Will Dietz
67cdc01ba8 llvm4: same treatment
(cherry picked from commit b2e6952f37)
2018-03-20 13:51:00 -05:00
Will Dietz
828d15e9d3 python*: set thread stack size on musl
Ensure recursion limit is reached before stack overflow.

Python does this for OSX and BSD:
13ff24582c/Python/thread_pthread.h (L22)

Size of 1MB chosen to match value in Alpine:
https://git.alpinelinux.org/cgit/aports/commit/main/python2/APKBUILD?id=2f35283fec8ec451fe5fb477dd32ffdcc0776e89

Manual testing via Alpine's test-stacksize.py crashes on these
previously, and works with these changes.

(cherry picked from commit 9aa22191cf)
2018-03-20 13:50:20 -05:00
Robert Schütz
7b9ca7b7c5 pythonPackages.altair: fix build
(cherry picked from commit 43d822178b)
2018-03-20 18:11:24 +01:00
Robert Schütz
f638751bb2 pythonPackages.WSME: 0.8.0 -> 0.9.2
(cherry picked from commit 2773b76f33)
2018-03-20 18:11:23 +01:00
Robert Schütz
7098c05b59 pythonPackages.WSME: move expression
(cherry picked from commit 9f54b031fd)
2018-03-20 18:11:23 +01:00
Robert Schütz
c6eac40de4 pythonPackages.astropy: disable for python 2
(cherry picked from commit 3d989e3d7a)
2018-03-20 18:11:23 +01:00
Robert Schütz
c8ac1a2176 pythonPackages.klein: 15.3.1 -> 17.10.0
(cherry picked from commit b34af91889)
2018-03-20 18:11:23 +01:00
Robert Schütz
c7b7779ee2 pythonPackages.klein: move expression
(cherry picked from commit 86e007bd31)
2018-03-20 18:11:22 +01:00
Robert Schütz
19e7212940 pythonPackages.deform: 2.0.a2 -> 2.0.5
(cherry picked from commit 86f21360ac)
2018-03-20 18:11:22 +01:00
Robert Schütz
7185278447 pythonPackages.deform: move expression
(cherry picked from commit a1b9cc7938)
2018-03-20 18:11:22 +01:00
Robert Schütz
6d2fd84beb pythonPackages.zope_copy: 4.0.2 -> 4.1.0
(cherry picked from commit 12695be641)
2018-03-20 18:11:22 +01:00
Robert Schütz
9fd7e2eee2 pythonPackages.stem: run unit tests
(cherry picked from commit 685dd8d21d)
2018-03-20 18:11:22 +01:00
Robert Schütz
15d741b62b pythonPackages.stem: move expression
(cherry picked from commit 061e79806e)
2018-03-20 18:11:21 +01:00
Robert Schütz
b87bafdffd pythonPackages.{reviewboard,djblets}: uninit
Djblets is unmaintained: has not been updated since 2015, but had many releases.
Dependency django_pipeline_1_3 is broken and should anyway be removed from pythonPackages because we want to have a consistent package set.
Because the reviewboard package also hasn't been updated since 2015 and depends on djblets, it is removed as well.

(cherry picked from commit fbff08f2f2)
2018-03-20 18:11:21 +01:00
Robert Schütz
0aafdaecee pythonPackages.django_pipeline: 1.5.1 -> 1.6.14
(cherry picked from commit 6e78005ef1)
2018-03-20 18:11:21 +01:00
Robert Schütz
99ac0883cc pythonPackages.slimit: init at 0.8.1
(cherry picked from commit 127045d8e0)
2018-03-20 18:11:21 +01:00
Robert Schütz
f6c66f6cb1 pythonPackages.django_pipeline: move expression
(cherry picked from commit ba74cf4d5c)
2018-03-20 18:11:09 +01:00
Sander van der Burg
5a777d237c titaniumenv: remove obsolete java fix wrapper on darwin
(cherry picked from commit 5532cc1641)
2018-03-20 17:55:25 +01:00
Sander van der Burg
0938277468 titaniumenv: add 7.1 SDK and make it the default
(cherry picked from commit e8e7e78d9f)
2018-03-20 17:55:15 +01:00
zimbatm
d2bb154421 nix-serve: patch for nix 2.0 (#37459)
Fixes incompatible secret file handling. See https://github.com/edolstra/nix-serve/pull/8

(cherry picked from commit 8add42f90c)
2018-03-20 16:41:10 +00:00
Tim Steinbach
f086e3ebde scala: 2.12.4 -> 2.12.5
(cherry picked from commit a429ae273ab752c61ed0c5dc955331617b9e7364)
2018-03-20 09:38:51 -04:00
Robert Schütz
225eac1f37 pythonPackages.bleach: 2.1.2 -> 2.1.3
(cherry picked from commit 9f276ccd38)
2018-03-20 12:29:21 +01:00
Matthieu Coudron
8337d1ddca pythonPackages.neovim: 0.2.3 -> 0.2.4
required to work with latest deoplete for instance

(cherry picked from commit 366c79e17f)
2018-03-20 11:06:12 +01:00
Frederik Rietdijk
8d24d4fac9 python: neovim: 0.2.1 -> 0.2.3
(cherry picked from commit 7ce85c014e)
2018-03-20 11:06:05 +01:00
Peter Hoeg
14cbca54da Merge pull request #37402 from badi/unifi
unifi: 5.6.30 -> 5.6.36
2018-03-20 13:24:05 +08:00
Tim Steinbach
e530ee1af5 linux-copperhead: 4.15.10.a -> 4.15.11.a
(cherry picked from commit bb2c260a231154b743d4c7ba6c43bd14da9d0284)
2018-03-19 22:32:55 -04:00
Badi Abdul-Wahid
9553628c22 unifi: 5.6.30 -> 5.6.36
[Release Notes](https://community.ubnt.com/t5/UniFi-Updates-Blog/UniFi-5-6-36-LTS-Stable-has-been-released/ba-p/2277323)

(cherry picked from commit 754911847e)
2018-03-19 22:00:36 -04:00
Andrew Childs
c2a0eeeb1a Chromium: fix skia build on aarch64
Patch imported from Arch Linux ARM

(cherry picked from commit 3928fd9081)
2018-03-20 02:44:23 +02:00
Yuriy Taraday
5abaf2a959 chromium: 65.0.3325.146 -> 65.0.3325.162
Also bump dev branch to ensure that next beta will work.

(cherry picked from commit 6b0732a956)
2018-03-20 02:43:45 +02:00
Tuomas Tynkkynen
607fc823d0 nss: Fix aarch64 build
(cherry picked from commit 8254d2cfb0)
2018-03-20 02:43:35 +02:00
gnidorah
63e3251637 cgit: wrap python scripts
(cherry picked from commit 55f1bbe623)
2018-03-19 23:24:07 +00:00
Josef Kemetmüller
42e2ed6520 pythonPackages.notebook: fix darwin build
The send2trash library, which is now included in the notebook doesn't
succeed during build, even though it works.

(cherry picked from commit 8aaa17c52a)
2018-03-20 00:05:24 +01:00
Daiderd Jordan
a3983d6d05 libftdi: mark linux only
(cherry picked from commit 3f964978d8)
2018-03-20 00:04:11 +01:00
Daiderd Jordan
a2b75703d5 kore: fix clang build
/cc ZHF #36454

(cherry picked from commit 031492cbfe)
2018-03-20 00:03:57 +01:00
Daiderd Jordan
9ba0bf3e52 iniparser: fix darwin build
/cc ZHF #36454

(cherry picked from commit 5873a3418b)
2018-03-20 00:03:01 +01:00
Daiderd Jordan
517d8261d1 imatix_gsl: fix clang build
/cc ZHF #36454

(cherry picked from commit e616725ba0)
2018-03-20 00:02:52 +01:00
Daiderd Jordan
ed8c29fa65 ii: fix darwin build
/cc ZHF #36454

(cherry picked from commit d7856d3c2a)
2018-03-20 00:02:42 +01:00
Josef Kemetmüller
7e39d25600 python3Packages.pycurl: fix darwin build
(cherry picked from commit bd836b7761)
2018-03-19 23:57:09 +01:00
xeji
084993f345 altermime: fix build
(cherry picked from commit f9ed23d271)
2018-03-19 22:36:13 +00:00
Robert Schütz
7a5c7c1818 nixos/borgbackup: init
(cherry picked from commit fdf0f037be)
2018-03-19 20:32:43 +01:00
WilliButz
280d762338 grafana: 5.0.1 -> 5.0.3, fix headless phantomjs
(cherry picked from commit ca7b29050f)
2018-03-19 20:00:45 +01:00
Ryan Mulligan
f6779e0f45 graylog: 2.4.1 -> 2.4.3
Semi-automatic update. These checks were done:

- built on NixOS
- ran `/nix/store/qyrv15995w1pl2vmf1i720ii4s9gb3x3-graylog-2.4.3/bin/graylogctl -h` got 0 exit code
- ran `/nix/store/qyrv15995w1pl2vmf1i720ii4s9gb3x3-graylog-2.4.3/bin/graylogctl --help` got 0 exit code
- ran `/nix/store/qyrv15995w1pl2vmf1i720ii4s9gb3x3-graylog-2.4.3/bin/graylogctl help` got 0 exit code
- ran `/nix/store/qyrv15995w1pl2vmf1i720ii4s9gb3x3-graylog-2.4.3/bin/graylogctl -V` and found version 2.4.3
- ran `/nix/store/qyrv15995w1pl2vmf1i720ii4s9gb3x3-graylog-2.4.3/bin/graylogctl -v` and found version 2.4.3
- ran `/nix/store/qyrv15995w1pl2vmf1i720ii4s9gb3x3-graylog-2.4.3/bin/graylogctl --version` and found version 2.4.3
- ran `/nix/store/qyrv15995w1pl2vmf1i720ii4s9gb3x3-graylog-2.4.3/bin/graylogctl version` and found version 2.4.3
- ran `/nix/store/qyrv15995w1pl2vmf1i720ii4s9gb3x3-graylog-2.4.3/bin/graylogctl -h` and found version 2.4.3
- ran `/nix/store/qyrv15995w1pl2vmf1i720ii4s9gb3x3-graylog-2.4.3/bin/graylogctl --help` and found version 2.4.3
- ran `/nix/store/qyrv15995w1pl2vmf1i720ii4s9gb3x3-graylog-2.4.3/bin/graylogctl help` and found version 2.4.3
- found 2.4.3 with grep in /nix/store/qyrv15995w1pl2vmf1i720ii4s9gb3x3-graylog-2.4.3
- found 2.4.3 in filename of file in /nix/store/qyrv15995w1pl2vmf1i720ii4s9gb3x3-graylog-2.4.3

(cherry picked from commit e716a11026)
2018-03-19 20:00:45 +01:00
Andreas Rammhold
b8b740808c Merge pull request #37309 from andir/18.03/firefox
[18.03] firefox updates (59.0 -> 59.0.1, firefox-esr: 52.7.1esr -> 52.7.2esr)
2018-03-19 19:29:52 +01:00
Andreas Rammhold
f87594f3ca firefox-esr: add CVE-2018-5147 patch for ARM platforms
The patch was missing in the release tag and must be added manually.
Read [1] for further details.

[1] http://seclists.org/oss-sec/2018/q1/242
2018-03-19 19:17:35 +01:00
taku0
a8cdcc52d8 firefox-bin: 59.0 -> 59.0.1
(cherry picked from commit 3d28c32921)
2018-03-19 19:17:35 +01:00
taku0
89ed0cfde6 firefox: 58.0.2 -> 59.0.1
(cherry picked from commit 9aae5d7c80 & 8170c05afc)
2018-03-19 19:17:35 +01:00
Robert Schütz
ddbff03f0f asciidoc: add enableJava option
fixes https://github.com/NixOS/nixpkgs/issues/37045

(cherry picked from commit 9ede31bfbe)
2018-03-19 17:51:40 +01:00
Tim Steinbach
5bbfe48355 linux: 4.15.10 -> 4.15.11
(cherry picked from commit 80d0ccaaab)
2018-03-19 09:03:24 -04:00
Tim Steinbach
19daa8ca0d linux: 4.14.27 -> 4.14.28
(cherry picked from commit e9ce4c019b)
2018-03-19 09:03:19 -04:00
Tim Steinbach
6c3638cff5 linux: 4.9.87 -> 4.9.88
(cherry picked from commit c4963d395d)
2018-03-19 09:03:13 -04:00
Tim Steinbach
10c404acd2 linux: 4.4.121 -> 4.4.122
(cherry picked from commit 04f11faa68)
2018-03-19 09:03:08 -04:00
Vaibhav Sagar
e8f7e1e76c pythonPackages.thumbor: mark as broken under Python 3 2018-03-19 10:27:34 +01:00
Vladimír Čunát
27994f8cdf Merge #37335: wideland: fix build and .desktop
(cherry picked from commit 940fab424a)
2018-03-18 23:47:42 +01:00
Josef Kemetmüller
b964be2410 pythonPackages.tkinter: fix darwin build
(cherry picked from commit af0f9fa26b)
2018-03-18 23:24:03 +01:00
Daiderd Jordan
3b1e354a2c guile-lint: disable tests on darwin
(cherry picked from commit 4e1ab9d44c)
2018-03-18 22:29:19 +01:00
Pascal Wittmann
6759a03179 homebank: 5.1.7 -> 5.1.8 2018-03-18 20:51:16 +01:00
Pascal Wittmann
0b0bd0c8cc icmake: 9.02.06 -> 9.02.07 2018-03-18 20:45:58 +01:00
taku0
ac2378d812 firefox-esr: 52.6.0esr -> 52.7.2esr
(cherry picked from commit d947db7e3c)
2018-03-18 20:20:00 +01:00
taku0
548044350a nss: 3.34.1 -> 3.35; cacert.certdata2pem: 20160104 -> 20170717
(cherry picked from commit 16ee6b5ed9)
2018-03-18 20:19:52 +01:00
Ryan Mulligan
6924132355 spaceFM: 1.0.5 -> 1.0.6
Semi-automatic update generated by https://github.com/ryantm/nix-update tools. These checks were done:

- built on NixOS
- ran `/nix/store/4hdgd1vlac5isgsb728f3qjpqcs2zxqp-spacefm-1.0.6/bin/.spacefm-wrapped -h` got 0 exit code
- ran `/nix/store/4hdgd1vlac5isgsb728f3qjpqcs2zxqp-spacefm-1.0.6/bin/.spacefm-wrapped --help` got 0 exit code
- ran `/nix/store/4hdgd1vlac5isgsb728f3qjpqcs2zxqp-spacefm-1.0.6/bin/.spacefm-wrapped --version` and found version 1.0.6
- ran `/nix/store/4hdgd1vlac5isgsb728f3qjpqcs2zxqp-spacefm-1.0.6/bin/spacefm -h` got 0 exit code
- ran `/nix/store/4hdgd1vlac5isgsb728f3qjpqcs2zxqp-spacefm-1.0.6/bin/spacefm --help` got 0 exit code
- ran `/nix/store/4hdgd1vlac5isgsb728f3qjpqcs2zxqp-spacefm-1.0.6/bin/spacefm --version` and found version 1.0.6
- ran `/nix/store/4hdgd1vlac5isgsb728f3qjpqcs2zxqp-spacefm-1.0.6/bin/.spacefm-installer-wrapped --help` got 0 exit code
- ran `/nix/store/4hdgd1vlac5isgsb728f3qjpqcs2zxqp-spacefm-1.0.6/bin/.spacefm-installer-wrapped help` got 0 exit code
- ran `/nix/store/4hdgd1vlac5isgsb728f3qjpqcs2zxqp-spacefm-1.0.6/bin/spacefm-installer --help` got 0 exit code
- ran `/nix/store/4hdgd1vlac5isgsb728f3qjpqcs2zxqp-spacefm-1.0.6/bin/spacefm-installer help` got 0 exit code
- found 1.0.6 with grep in /nix/store/4hdgd1vlac5isgsb728f3qjpqcs2zxqp-spacefm-1.0.6
- directory tree listing: https://gist.github.com/1af4e8f53a36978c67e557c6c4c22b8d

(cherry picked from commit bb165a9d6f)
2018-03-18 18:50:24 +00:00
Maximilian Bode
b506cdbf90 spass: make gcc dependency explicit
(cherry picked from commit 9dc0f229ad)
2018-03-18 18:30:31 +01:00
Maximilian Bode
dda33d697d samtools: make gcc dependency explicit
(cherry picked from commit 92c5097c6d)
2018-03-18 18:30:15 +01:00
Daiderd Jordan
715338b4bb gnu-apl: fix clang build
/cc ZHF #36454

(cherry picked from commit ec15ef011a)
2018-03-18 18:13:29 +01:00
Pascal Wittmann
0184e3f8cc zim: 0.67 -> 0.68 2018-03-18 18:12:18 +01:00
Maximilian Bosch
6baf97fe61 pythonPackages.thumbor: 6.3.2 -> 6.4.2; fix build
Origianlly the package was broken as bumping `pythonPackages.pillow` to
5.x broke `thumbor`. The latest upstream version `6.4.2` solved this
issue, so a simple package bump was sufficient.

Furthermore the following changes were made:

- moved the expression into its own file
- added myself as maintainer in case of any further breackage
- re-enabled python3 build: 6.4.2 is fine with python3, however the
  `futures` dependency can't be satisfied anymore as it's part of
  Python3. Therefore a patch for `setup.py` will be applied for Python3
  buildsto drop the dependency

Note: the testsuite is disabled for now as several impure tests are done
and our testing environment seems to be unable to work the with the
natively compiled python modules properly.

Therefore I tested the module using the following expression:

``` nix
with import ./. {};

stdenv.mkDerivation {
  name = "thumbor-test";
  src = null;
  buildInputs = [ python pythonPackages.thumbor ];
}
```

Inside this nix shell `thumbor` works fine and the native modules can be
imported.

See https://hydra.nixos.org/build/71062729/log
See ticket #36453

(cherry picked from commit 23e6689578)
2018-03-18 17:19:08 +01:00
Robert Schütz
747a426ce6 pythonPackages.flake8-debugger: fix build
(cherry picked from commit 5c897bdd59)
2018-03-18 16:44:09 +01:00
Robert Schütz
1287bc21b2 pythonPackages.dlib: fix build
(cherry picked from commit 4779989c4e)
2018-03-18 16:44:09 +01:00
Robert Schütz
c310c64d71 pythonPackages.colander: 1.0 -> 1.4
(cherry picked from commit 93b10cd879)
2018-03-18 16:44:09 +01:00
Robert Schütz
b34d370eb7 pythonPackages.colander: move expression
(cherry picked from commit a6cbdeaef3)
2018-03-18 16:44:09 +01:00
Robert Schütz
18221dde69 pythonPackages.robomachine: fix build
(cherry picked from commit edc94294c8)
2018-03-18 16:44:09 +01:00
Robert Schütz
eecc751716 pythonPackages.allpairspy: init at 2.4.0
(cherry picked from commit bd7a7bd817)
2018-03-18 16:44:09 +01:00
Robert Schütz
ce032734c7 pythonPackages.pyshphere: uninit
Build is broken and project is unmaintained since 2013.

(cherry picked from commit 097dd635fa)
2018-03-18 16:44:09 +01:00
Robert Schütz
f999bc180b pythonPackages.pyhomematic: disable tests because of unreliable timimg
(cherry picked from commit 97e54c4f75)
2018-03-18 16:44:09 +01:00
Robert Schütz
f1f0134dbd pythonPackages.credstash: fix build
This applies https://github.com/fugue/credstash/pull/178.

(cherry picked from commit 14ed0f5fe0)
2018-03-18 16:44:09 +01:00
Robert Schütz
7a85df0ecd pythonPackages.odo: mark as broken
Odo is incompatible with Networkx 2.
See https://github.com/blaze/odo/pull/601.

(cherry picked from commit 0b6a2b2037)
2018-03-18 16:44:09 +01:00
Robert Schütz
e68997c03a klaus: move out of pythonPackages and 0.9.1 -> 1.2.2
(cherry picked from commit 19797d8464)
2018-03-18 16:44:09 +01:00
Robert Schütz
5141fe1cf3 pythonPackages.python-ctags3: init at 1.2.4
(cherry picked from commit bd3280fbae)
2018-03-18 16:44:09 +01:00
Robert Schütz
ee97df8432 pythonPackages.scikitlearn: disable doctests
fixes https://github.com/NixOS/nixpkgs/issues/35436

(cherry picked from commit cc305174e2)
2018-03-18 16:44:09 +01:00
Robert Schütz
e496420972 pythonPackages.hvac: 0.2.15 -> 0.5.0
(cherry picked from commit bc9dc2ccf1)
2018-03-18 16:44:09 +01:00
Robert Schütz
a5d75da87f pythonPackages.hvac: move expression
(cherry picked from commit 3394feaeef)
2018-03-18 16:44:09 +01:00
Robert Schütz
bf4578f62e pythonPackages.paypalrestsdk: 0.7.0 -> 1.13.1
(cherry picked from commit 5ec4b9d819)
2018-03-18 16:44:09 +01:00
Robert Schütz
d3c1ae3576 pythonPackages.paypalrestsdk: move expression
(cherry picked from commit ba5d1bb28b)
2018-03-18 16:44:09 +01:00
Robert Schütz
7249ff9d5b pythonPackages.pyamf: disable for Python 3
(cherry picked from commit 104f58d6a1)
2018-03-18 16:44:09 +01:00
Robert Schütz
244e3da862 pythonPackages.pushbullet: 0.10.0 -> 0.11.0 and fix build
(cherry picked from commit 4e35388878)
2018-03-18 16:44:09 +01:00
Robert Schütz
02a6deb7af pythonPackages.pushbullet: move expression
(cherry picked from commit 127f99e22e)
2018-03-18 16:44:08 +01:00
Robert Schütz
35ca4c5115 pythonPackages.moinmoin: disable for Python 3
(cherry picked from commit 7e8e3807f3)
2018-03-18 16:44:08 +01:00
Robert Schütz
f9def2f4e3 pythonPackages.readme_renderer: 17.2 -> 17.4
(cherry picked from commit 922b0cec82)
2018-03-18 16:44:08 +01:00
Robert Schütz
090ca7e47c pythonPackages.CommonMark: 0.6.3 -> 0.7.5
(cherry picked from commit d7d4ce735e)
2018-03-18 16:44:08 +01:00
Robert Schütz
9dfac9497d pythonPackages.CommonMark: move expression
(cherry picked from commit b549f18b6c)
2018-03-18 16:44:08 +01:00
Peter Hoeg
6e30c6b265 nixos home-assistant: a couple of fixes (#36338)
a) set path to /run/wrappers so ping works
b) run via a target so we can easily inject other components (config copier,
appdaemon)

(cherry picked from commit 2859483fe9)
2018-03-18 23:43:24 +08:00
Robert Schütz
6daee8c3f8 pythonPackages.tmdb3: 0.6.17 -> 0.7.2
(cherry picked from commit f76e8cb742)
2018-03-18 16:33:42 +01:00
Robert Schütz
5e4411f45b pythonPackages.tmdb3: move expression
(cherry picked from commit 9e29b4b269)
2018-03-18 16:33:29 +01:00
Benjamin Saunders
f2390ae057 matrix-synapse: 0.26.0 -> 0.26.1
Security hotfix

(cherry picked from commit cef5ed1bc2)
2018-03-18 14:33:33 +00:00
Peter Hoeg
199da0db1e home-assistant: support pushover
(cherry picked from commit e1080b0d43)
2018-03-18 21:03:38 +08:00
Jörg Thalheim
0b3170b874 python.pkgs.pushover: tests exists, but require network
(cherry picked from commit c3535901c3)
2018-03-18 21:03:25 +08:00
Jörg Thalheim
3ae19a3610 python.pkgs.pushover: there are no tests
(cherry picked from commit 3336a7b8ac)
2018-03-18 21:03:18 +08:00
Peter Hoeg
c68ed70878 pythonPackages.pushover: init at 0.3
(cherry picked from commit 1b129b0b54)
2018-03-18 21:03:00 +08:00
giraffito
0869801a69 nixos/security: fix description of sudo.wheelNeedsPassword
the previous description mistakenly described the opposite semantics

(cherry picked from commit b9639d7e1f)
2018-03-18 12:29:00 +00:00
Andreas Wiese
fce096accc nixos/window-managers: actually add evilwm to default.nix
Commit 1f2b938 introduced a module for evilwm as a window-manager, but
did not actually add this module to window-manager's default.nix which
renders it useless.

(cherry picked from commit c7e1dff94e)
2018-03-18 11:13:53 +00:00
Echo Nolan
3f6c94e3df workrave: fix alert sounds by including the right GST plugins
(cherry picked from commit 5b0985d055)
2018-03-18 10:51:10 +00:00
Echo Nolan
2380e3071c workrave: 1.10.7 -> 1.10.20
Also: switch to GTK-3, fix GSettings by using wrapGAppsHook.
(cherry picked from commit 250c19c746)
2018-03-18 10:51:09 +00:00
Vladimír Čunát
617d73f229 Merge #37264: archiveopteryx: fix build w/gcc7
(cherry picked from commit 214016c118)
2018-03-18 11:02:41 +01:00
Tim Steinbach
557aa6e7d7 curl: 7.58.0 -> 7.59.0
(cherry picked from commit 837ecc2f6a)
It fixes three vulnerabilities.
2018-03-18 10:52:47 +01:00
xeji
5aeb26da06 heapster: fix build
fetchFromGitHub returned a different sha256 for the same revision

(cherry picked from commit 690939730a)
2018-03-18 09:43:48 +00:00
Elis Hirwing
280ac9b471 gitea: fix usage over ssh
Using gitea over ssh had two isses:
 1. No shell was set for the user
 2. Gitea tried to write logs to
 /nix/store/x83q12kyd9gw1pay036dxz2dq0apf17h-gitea-1.3.2-bin/log when
 serving the ssh usage.

(cherry picked from commit fa76c9a385)
2018-03-18 09:42:23 +00:00
Vladimír Čunát
ebcf130a84 tremor: rename according to our docs
https://nixos.org/nixpkgs/manual/#sec-package-naming
I forgot to include this commit in the parent merge.

(cherry picked from commit bbe8c1e593)
2018-03-18 10:34:14 +01:00
Vladimír Čunát
ed6e9c5e19 Merge #37267: libvorbis, tremor: CVE-2018-5146 updates + SDL build impurity.
(cherry picked from commit 65cf335715)
2018-03-18 10:34:10 +01:00
Dmitry Kalinkin
f949149dc4 pyslurm: 20171102 -> 20170302 to fix after slurm bump
(cherry picked from commit 8b1fba582a)
2018-03-18 09:16:08 +00:00
Corey O'Connor
d64af3e40f jenkins: Add "java.awt.headless=true" to JDK options.
This is consistent with the recommended jenkins startup script. See:

* https://wiki.jenkins.io/display/JENKINS/JenkinsLinuxStartupScript

(cherry picked from commit 28a55f5bd6)
2018-03-18 08:54:39 +00:00
Corey O'Connor
83e6969c44 jenkins: Include Deja-Vu fonts in system environment to silence jenkins warning.
(cherry picked from commit 241160aacc)
2018-03-18 08:54:34 +00:00
rnhmjoj
592fb2c5a1 noteshrink: init at 0.1.1
(cherry picked from commit dc1c9fb251)
2018-03-18 09:39:57 +01:00
Richard Marko
4937ce0100 nixos manual: fix (n)of typo
(cherry picked from commit d5de7bbc92)
2018-03-18 08:35:45 +00:00
Jörg Thalheim
d0d3a639a3 telegraf: 1.5.1 -> 1.5.3
(cherry picked from commit d5c077b109)
2018-03-18 08:32:33 +00:00
Ryan Mulligan
5b2d17228c autofs: 5.1.3 -> 5.1.4
Semi-automatic update generated by https://github.com/ryantm/nix-update tools. These checks were done:

- built on NixOS
- ran `/nix/store/wbax6msw4jcf95a3b56rgb5qyy08v3gb-autofs-5.1.4/bin/automount -h` got 0 exit code
- ran `/nix/store/wbax6msw4jcf95a3b56rgb5qyy08v3gb-autofs-5.1.4/bin/automount --help` got 0 exit code
- ran `/nix/store/wbax6msw4jcf95a3b56rgb5qyy08v3gb-autofs-5.1.4/bin/automount -V` and found version 5.1.4
- ran `/nix/store/wbax6msw4jcf95a3b56rgb5qyy08v3gb-autofs-5.1.4/bin/automount --version` and found version 5.1.4
- ran `/nix/store/wbax6msw4jcf95a3b56rgb5qyy08v3gb-autofs-5.1.4/bin/automount -h` and found version 5.1.4
- ran `/nix/store/wbax6msw4jcf95a3b56rgb5qyy08v3gb-autofs-5.1.4/bin/automount --help` and found version 5.1.4
- found 5.1.4 with grep in /nix/store/wbax6msw4jcf95a3b56rgb5qyy08v3gb-autofs-5.1.4
- directory tree listing: https://gist.github.com/419a24d78045772aea1e7ca68b950f1f

(cherry picked from commit 6cd68c2ad9)
2018-03-18 09:04:25 +01:00
Michiel Derhaeg
d467692907 spotify: 1.0.69.336.g7edcc575-39 -> 1.0.72.117.g6bd7cc73-35
(cherry picked from commit febe728bf5)
2018-03-17 23:16:39 +00:00
Daiderd Jordan
8a7a75372b gargoyle: fix darwin build
/cc ZHF #36454

(cherry picked from commit 6da3ba48a7)
2018-03-17 22:20:53 +01:00
DarkScythe97
725c6f452b microcode-intel: 20171117 -> 20180312
(cherry picked from commit a4fd4e3af0)
2018-03-17 21:12:57 +01:00
Maximilian Bosch
039365d20f pythonPackages.tablib: fix build
`openpyxl` v5 breaks `tablib`, the following patch fixes the API
incompatibility: https://github.com/kennethreitz/tablib/pull/296

See https://hydra.nixos.org/build/70694938/log
See ticket #36453

(cherry picked from commit 4a0c0401b5)
2018-03-17 20:46:32 +01:00
Daiderd Jordan
88075cf435 libconfuse: fix tests on darwin
/cc ZHF #36454

(cherry picked from commit 1798563e62)
2018-03-17 19:41:33 +01:00
Daiderd Jordan
de8842891f far2l: fix clang build
/cc ZHF #36454

(cherry picked from commit 879f144d7f)
2018-03-17 18:48:48 +01:00
Robert Schütz
c8b6fd95d4 pythonPackages.wp_export_parser: uninit
Package is broken and umnaintained.
Upstream has not been updated since 2013.

(cherry picked from commit 94baae5e6b)
2018-03-17 16:30:42 +01:00
Vladimír Čunát
0e7c9b3281 Merge #37059: liferea: 1.12.1 -> 1.12.2 (bugfix)
(cherry picked from commit c3aadd5b4e)
2018-03-17 13:59:13 +01:00
xeji
6e6417c013 libdynd: fix build w/gcc7
(cherry picked from commit 4436d21dfa)
2018-03-17 13:58:40 +01:00
xeji
b1053e6191 rename: fix build
failed since there is no 'devdoc' output

(cherry picked from commit 6f01885fbe)
2018-03-17 13:58:17 +01:00
xeji
c1c6b00627 manticore: 2014.08.18 -> 2017.08.22, fix build
(cherry picked from commit 7ec30b3fcd)
2018-03-17 13:25:04 +01:00
xeji
deebf75a72 libs3: 2015-04-23 -> 2017-06-01, fix build
(cherry picked from commit 823b155adb)
2018-03-17 13:23:32 +01:00
xeji
c4e19a11bc itk: 4.11.0 -> 4.12.2, fix build 2018-03-17 13:17:41 +01:00
Maximilian Bosch
d862661b7c aspino: fix build
Aspino patched `libglucose` for their own uses, however they currently
depend on glucose v4.0.
(see e31c3b4e57/patches)

The patches don't apply properly on `glucose-4.1` anymore, furthermore
the new source directory caused the `bootstrap.sh` from `aspino` which
was supposed to apply the patches and recompile the setup to break.

Furthermore some minor changes to the derivation were introduced:

- upgraded from `2016-01-31` to `2017-03-09`
- the name contains an `-unstable-` infix as upstream has no releases
- instead of a `patchPhase` the `postPatch` hook will be used for
  `substituteInPlace` to keep advanced patching features from `nixpkgs`
  available.
- `patchShebangs` will be called to avoid impurities because of the
  implicit reliance on `/bin/sh`
- added myself as second maintainer to have more people available in
  case of any further breackage

See https://hydra.nixos.org/build/70688471/log
See ticket #36453
2018-03-17 13:07:35 +01:00
Ryan Mulligan
4062990844 lighttpd: 1.4.48 -> 1.4.49
Semi-automatic update generated by https://github.com/ryantm/nix-update tools. These checks were done:

- built on NixOS
- ran `/nix/store/zqq4z003jl443djfygasflfqk091wphx-lighttpd-1.4.49/bin/lighttpd -h` got 0 exit code
- ran `/nix/store/zqq4z003jl443djfygasflfqk091wphx-lighttpd-1.4.49/bin/lighttpd -V` and found version 1.4.49
- ran `/nix/store/zqq4z003jl443djfygasflfqk091wphx-lighttpd-1.4.49/bin/lighttpd -v` and found version 1.4.49
- ran `/nix/store/zqq4z003jl443djfygasflfqk091wphx-lighttpd-1.4.49/bin/lighttpd -h` and found version 1.4.49
- ran `/nix/store/zqq4z003jl443djfygasflfqk091wphx-lighttpd-1.4.49/bin/lighttpd-angel -h` got 0 exit code
- ran `/nix/store/zqq4z003jl443djfygasflfqk091wphx-lighttpd-1.4.49/bin/lighttpd-angel --help` got 0 exit code
- ran `/nix/store/zqq4z003jl443djfygasflfqk091wphx-lighttpd-1.4.49/bin/lighttpd-angel help` got 0 exit code
- ran `/nix/store/zqq4z003jl443djfygasflfqk091wphx-lighttpd-1.4.49/bin/lighttpd-angel -V` and found version 1.4.49
- ran `/nix/store/zqq4z003jl443djfygasflfqk091wphx-lighttpd-1.4.49/bin/lighttpd-angel -v` and found version 1.4.49
- ran `/nix/store/zqq4z003jl443djfygasflfqk091wphx-lighttpd-1.4.49/bin/lighttpd-angel --version` and found version 1.4.49
- ran `/nix/store/zqq4z003jl443djfygasflfqk091wphx-lighttpd-1.4.49/bin/lighttpd-angel -h` and found version 1.4.49
- ran `/nix/store/zqq4z003jl443djfygasflfqk091wphx-lighttpd-1.4.49/bin/lighttpd-angel --help` and found version 1.4.49
- found 1.4.49 with grep in /nix/store/zqq4z003jl443djfygasflfqk091wphx-lighttpd-1.4.49
- directory tree listing: https://gist.github.com/3f87cc8cd06f4c87b583c225172f1c2e

(cherry picked from commit f589e77842)
2018-03-17 11:22:33 +01:00
Jörg Thalheim
3c3e44a506 flexget: add disclaimer
(cherry picked from commit 7c680e1f39)
2018-03-17 09:56:00 +00:00
rnhmjoj
473fd8a01e flexget: 2.10.82 -> 2.13.5 2018-03-17 09:55:31 +00:00
Vladimír Čunát
0c52ab986b policycoreutils: fixup build with gcc7
Close #37148.  It's safer do disable warnings than to switch the compiler.
2018-03-17 09:36:17 +01:00
volth
0e00bd52bd rpm: 4.14.0 -> 4.14.1
(cherry picked from commit e47175638b)
2018-03-17 07:37:31 +00:00
Jude Taylor
2a32f6bc0c review comment
(cherry picked from commit ea1377419c)
2018-03-16 21:36:15 +01:00
Jude Taylor
f23e611426 fix whois build
(cherry picked from commit a34479850e)
2018-03-16 21:35:51 +01:00
Graham Christensen
5cef3289e7 Merge pull request #36923 from tokudan/ffb59-1803
firefox-bin: 58.0.2 -> 59.0
2018-03-16 10:35:06 -04:00
Nikolay Amiantov
9e3aa30b79 nvidiabl: 0.87 -> 2017-09-26
Fix build on newer kernels. Fixes #36356.

Thanks to yorickvP for suggestions and maintainership.

(cherry picked from commit 7cf6df8903)
2018-03-16 16:49:03 +03:00
Maximilian Bode
7f16996a35 kubernetes: use go 1.9 instead of 1.10
Build using go 1.10 fails due to an error in a vendored dependency
[Upstream Issue](https://github.com/kubernetes/kubernetes/pull/60373)

(cherry picked from commit 29be8dd70c)
2018-03-16 12:53:18 +00:00
Andreas Rammhold
e557b37549 dino: unstable-2018-02-11 -> unstable-2018-03-10
(cherry picked from commit 97ab4c1072)
2018-03-16 09:44:45 +00:00
Nikolay Amiantov
12a88b2c51 steam: improvements for native runtime
* Update dependencies using steam-native-runtime from Arch Linux as a
  reference.
* Remove native-only Steam Runtime, just use installed libraries
  instead.
* Mark native-only Steam as broken (due to segfault inside D-Bus). Seems it was
  already broken for a long time. Doesn't apply to steam-run.
* Some cleanups for chrootenv.

(cherry picked from commit 9c8137ca81)
2018-03-16 03:20:36 +03:00
Nikolay Amiantov
685cf3ee5e steam: don't add zoneinfo manually
We already have this done for FHS environments in general.

(cherry picked from commit 8332b7aef9)
2018-03-16 03:19:46 +03:00
Nikolay Amiantov
39099eafe8 buildFHSEnv: export TZDIR
This is needed since NixOS keeps tzdata in non-standard /etc/zoneinfo path.

(cherry picked from commit 9db2a3e638)
2018-03-16 03:19:29 +03:00
Nikolay Amiantov
af126c64fb libva1: init at 1.7.3
(cherry picked from commit a4a04528e4)
2018-03-16 03:17:42 +03:00
Tim Steinbach
90d01305fb vscode: 1.21.0 -> 1.21.1
(cherry picked from commit f93d4b6181)
2018-03-15 18:41:01 -04:00
Tim Steinbach
6fc7f86338 atom: 1.24.1 -> 1.25.0
(cherry picked from commit eed77950a9196ccb299e8af5da8f5388b63582f7)
2018-03-15 18:35:14 -04:00
Tim Steinbach
6dc10f3d04 linux-copperhead: 4.15.9.a -> 4.15.10.a
(cherry picked from commit ff9db1ffc4)
2018-03-15 16:28:36 -04:00
Elis Hirwing
812b2196fc gitea: enable and configure postgres service if selected as database
(cherry picked from commit 1ad75d0c50)
2018-03-15 14:04:09 -04:00
Tim Steinbach
e95d2412ac linux: 4.15.9 -> 4.15.10
(cherry picked from commit 64c5795c2be9c60e3d7ca716888e7b5a397a7d97)
2018-03-15 10:52:44 -04:00
Tim Steinbach
10e896f4e2 linux: 4.14.26 -> 4.14.27
(cherry picked from commit cad9fabfc26a6c2e31f61966b2e6a24e3f3acf16)
2018-03-15 10:52:35 -04:00
Robert Schütz
408c8c0678 home-assistant: 0.63.3 -> 0.65.5
(cherry picked from commit 306ee199a7)
2018-03-15 15:20:12 +01:00
Robert Schütz
27a8abf0e8 pythonPackages.aiohttp: 3.0.5 -> 3.0.9
(cherry picked from commit 7dfbb8c53c)
2018-03-15 15:20:06 +01:00
Robert Schütz
b1ef373069 pythonPackages.idna-ssl: 1.0.0 -> 1.0.1
(cherry picked from commit cdd2593da1)
2018-03-15 15:20:00 +01:00
Robert Schütz
fb3308d17a python36Packages.hbmqtt: 0.9.1 -> 0.9.2
(cherry picked from commit 81f0cf2cd5)
2018-03-15 15:19:54 +01:00
Timo Kaufmann
177e20c14e conan: Locally pin deps, enable tests
(cherry picked from commit 488835ec6e)
2018-03-15 13:55:14 +01:00
Maximilian Bosch
94ed4376e8 pythonPackages.diff_cover: fix build
In order to adjust the language with `LC_ALL` properly the
`glibcLocales` is needed as `checkInput`. This was the only thing
preventing the testsuite from passing.

See ticket #36453
See https://hydra.nixos.org/build/70682982/nixlog/3

(cherry picked from commit 7dd7638cba)
2018-03-15 12:57:19 +01:00
Augustin Borsu
52e6f6f60c python.spacy: 1.8.2 -> 2.0.9
(cherry picked from commit 22fdb0bd9d)
2018-03-14 23:44:37 +01:00
Augustin Borsu
6381f5a4ee python.ftfy: 5.3.0 -> 4.4.3
V5 only supports python3. Since at the moment the only packages
that use ftfy are spacy and textacy which both support
python2 and 3, I propose to roll back to v4 until another package
requires v5, at that point we can make a duplicate package.

(cherry picked from commit 8187d93da2)
2018-03-14 23:44:30 +01:00
Augustin Borsu
a2684671a1 add aborsu as maintainer
(cherry picked from commit 458ba30fa9)
2018-03-14 23:42:50 +01:00
Augustin Borsu
be85709dfb python.thinc: 6.5.1 -> 6.10.2
(cherry picked from commit 9478948f4d)
2018-03-14 23:41:15 +01:00
Augustin Borsu
4aa47178c9 python.murmurhash: 0.26.4 -> 0.28.0
(cherry picked from commit 2e67c8e030)
2018-03-14 23:40:57 +01:00
Augustin Borsu
92548bc6f0 python.msgpack-numpy: init 0.4.1
(cherry picked from commit 5568e25fa0)
2018-03-14 23:40:37 +01:00
Daiderd Jordan
95f07cc550 cdo: fix darwin build
/cc ZHF #36454

(cherry picked from commit 0c8e8ce7e8)
2018-03-14 23:16:56 +01:00
Daiderd Jordan
2401186d2c ccl: fix darwin build
/cc ZHF #36454

(cherry picked from commit ee6d0a7025)
2018-03-14 23:04:00 +01:00
Will Dietz
655704bf00 busybox: patchshebangs to fix build on "limited" /bin/sh builders
(cherry picked from commit b546c7440e)
2018-03-14 16:59:40 -05:00
taku0
37b31ea04f flashplayer: 28.0.0.161 -> 29.0.0.113
(cherry picked from commit 864f4ceba4)
2018-03-14 16:46:54 -05:00
Daiderd Jordan
af97515d70 cataclysm-dda: fix clang build
/cc ZHF #36454

(cherry picked from commit 5defdee634)
2018-03-14 22:43:19 +01:00
Will Dietz
1d5485c8c8 libdwarf: 20170709 -> 20180129
Upstream describes changes:

Fixes libdwarf/dwarfdump vulnerabilities related to detecting corrupt
DWARF and includes other small improvements

(cherry picked from commit 4bc0f88bb3)
2018-03-14 16:36:06 -05:00
Peter Simons
622c5bebbe haskell-SHA: fix compiler crash while trying to build the test suite on i686
Fixes https://github.com/NixOS/nixpkgs/issues/36949.

(cherry picked from commit 1583cc6449)
2018-03-14 21:24:44 +01:00
Peter Simons
0bdb853ef8 Fix cross-compilation builds of several Haskell packages some more.
(cherry picked from commit 2f2ad74369)
2018-03-14 21:09:34 +01:00
Will Dietz
32c2d99f01 gllvm: init at 2018-02-09
(cherry picked from commit 43c474457c)
2018-03-14 15:02:14 -05:00
Daiderd Jordan
07f1fe42bb python-selenium: fix darwin build
/cc ZHF #36454

(cherry picked from commit b02694dd45)
2018-03-14 21:00:57 +01:00
Tuomas Tynkkynen
b26595f873 nixos/qemu-vm: Add virtualized display + HID devices on AArch64
(cherry picked from commit 9e78baf5c7)
2018-03-14 21:55:32 +02:00
Peter Simons
736189fe74 Fix cross-compilation builds of several Haskell packages.
(cherry picked from commit 70467b9a12)
2018-03-14 20:51:13 +01:00
Josef Kemetmüller
490e46dea6 pythonPackages.pycurl: Fix darwin build
(cherry picked from commit 42555f6c7d)
2018-03-14 20:43:44 +01:00
Daiderd Jordan
6692ae9684 avian: fix darwin build
/cc ZHF #36454

(cherry picked from commit db691029d6)
2018-03-14 20:41:43 +01:00
Daiderd Jordan
7cb4bebacd python-tkinter: mark linux only
/cc ZHF #36454

(cherry picked from commit 9b044a1dba)
2018-03-14 19:53:48 +01:00
Josef Kemetmüller
f024b57f39 glm: fix darwin build
(cherry picked from commit 863fb7b86a)
2018-03-14 19:42:47 +01:00
Matthew Pickering
ec191e7d96 Only apply patch on darwin
(cherry picked from commit 4e96d0e2b7)
2018-03-14 19:35:15 +01:00
Matthew Pickering
4ab4af1bb5 Fix qca-qt5 build on darwin
(cherry picked from commit 2b114a8c29)
2018-03-14 19:35:03 +01:00
xeji
f2d24b8ec6 pythonPackages.nevow: fix build, 0.14.2->0.14.3
fix tests, minor update, move to development/python-modules/

(cherry picked from commit 9a10c55a8a)
2018-03-14 19:09:05 +01:00
Robert Schütz
683c5794b0 pythonPackages.csvkit: fix build
(cherry picked from commit c0466ef834)
2018-03-14 17:00:31 +01:00
Robert Schütz
b4645c3783 pythonPackages.mysql_connector_repackaged: uninit
Package has last been updated in 2012.
There is now also pythonPackages.mysql-connector.

(cherry picked from commit 198bdf39b6)
2018-03-14 16:59:04 +01:00
Robert Schütz
22f0d6474c pythonPackages.ecpy: disable for python 2
setup.py specifies
    python_requires='>=3'

(cherry picked from commit 9b37f0a06d)
2018-03-14 16:58:32 +01:00
Robert Schütz
0f1c8dded7 pythonPackages.konfig: fix tests
(cherry picked from commit 0862ca375c)
2018-03-14 16:58:03 +01:00
Robert Schütz
e666b54155 pythonPackages.konfig: move expression
(cherry picked from commit c7a6483309)
2018-03-14 16:57:57 +01:00
Robert Schütz
4116dd129d pythonPackages.promegranate: mark as broken
"pomegranate does not yet work with networkx 2.0"

(cherry picked from commit 882cf122be)
2018-03-14 16:56:51 +01:00
Robert Schütz
f50a31681e pythonPackages.faker: 0.8.8 -> 0.8.11
This fixes the build failure by adding a missing dependency and because 0.8.11 allows a newer version of ukpostcodeparser.

(cherry picked from commit 495bb794d1)
2018-03-14 16:52:42 +01:00
Robert Schütz
6121f5b376 pythonPackages.text-unidecode: init at 1.1
(cherry picked from commit 35ee24f966)
2018-03-14 16:52:35 +01:00
Robert Schütz
d2326197be pythonPackages.daphne: fix build and enable tests
(cherry picked from commit 40b0c58549)
2018-03-14 16:51:06 +01:00
Robert Schütz
6564e4f227 pythonPackages.green: 2.3.0 -> 2.12.0
(cherry picked from commit 2bdee9b0c3)
2018-03-14 16:42:17 +01:00
Robert Schütz
39609cc945 pythonPackages.xdot: move expression
(cherry picked from commit fac32de1db)
2018-03-14 16:41:37 +01:00
Robert Schütz
2bebfbd3cc pythonPackages.prov: fix build and enable tests
Tests do not actually take 60 minutes.

(cherry picked from commit 8f93cba89c)
2018-03-14 16:40:36 +01:00
Robert Schütz
88d768c59e pythonPackages.networkx: 1.11 -> 2.1
(cherry picked from commit 46d7d069ef)
2018-03-14 16:40:27 +01:00
Robert Schütz
736661ec4b pythonPackages.rednose: 1.2.1 -> 1.3.0
(cherry picked from commit 276fb96532)
2018-03-14 16:38:00 +01:00
Robert Schütz
82378f031a pythonPackages.termstyle: 0.1.10 -> 0.1.11
(cherry picked from commit 09ae15ea50)
2018-03-14 16:37:21 +01:00
Robert Schütz
6480eb59f7 pythonPackages.dbf: fix tests
(cherry picked from commit 84fbf2a410)
2018-03-14 16:36:15 +01:00
Robert Schütz
300ceef5c3 pythonPackages.curtsies: correct dependencies
(cherry picked from commit 674ceb9c2b)
2018-03-14 16:35:51 +01:00
Robert Schütz
480fb8c05e pythonPackages.bibtexparser: enable tests
(cherry picked from commit d322a5b3ec)
2018-03-14 16:35:26 +01:00
Robert Schütz
362b9457a0 pythonPackages.bibtexparser: add propagatedBuildInputs
(cherry picked from commit e1176503e9)
2018-03-14 16:35:13 +01:00
Robert Schütz
a34123b711 pythonPackages.binaryornot: 0.4.0 -> 0.4.4
(cherry picked from commit 4a9a7d3036)
2018-03-14 16:34:37 +01:00
Vladimír Čunát
ddc2ad4e2e Merge #36788: nextcloud-client: restrict to linux
(cherry picked from commit 883b26b98f)
2018-03-14 15:51:40 +01:00
Vladimír Čunát
857d5a086a Merge #36936: libsemanage: fixup build with gcc7
(cherry picked from commit 527ff9c5fd)
2018-03-14 15:47:18 +01:00
Robert Schütz
5e38637412 pythonPackages.ftputil: 3.3 -> 3.4 and fix tests
(cherry picked from commit 62bb869309)
2018-03-14 13:45:14 +01:00
Robert Schütz
1a4173a683 pythonPackages.ftputil: move expression
(cherry picked from commit 92896e2739)
2018-03-14 13:45:05 +01:00
Robert Schütz
81afea1f98 pythonPackages.django-polymorphic: fix tests
(cherry picked from commit ae56cc1f30)
2018-03-14 13:44:02 +01:00
Robert Schütz
8860315c20 pythonPackages.dj-database-url: init at 0.5.0
(cherry picked from commit 7b525acee2)
2018-03-14 13:43:49 +01:00
Robert Schütz
ab326cb02a pythonPackages.affinity: disable for Python 3
(cherry picked from commit 143fd427d4)
2018-03-14 13:42:37 +01:00
Robert Schütz
4d7ed482dc pythonPackages.pycups: fix on Darwin
(cherry picked from commit a5e1dfe3e2)
2018-03-14 13:42:19 +01:00
Robert Schütz
5ab9937099 pythonPackages.pycups: move expression
(cherry picked from commit 150d0b7428)
2018-03-14 13:42:13 +01:00
Robert Schütz
5f9ae3929b pythonPackages.ldappool: 1.0 -> 2.2.0
(cherry picked from commit 3680fc9fd4)
2018-03-14 13:42:00 +01:00
Robert Schütz
4298a313ad pythonPackages.ldappool: move expression
(cherry picked from commit f14c9ae883)
2018-03-14 13:41:53 +01:00
Robert Schütz
cd7765df84 pythonPackages.BlinkStick: patch for newer pyusb version
(cherry picked from commit bfe6d6ab34)
2018-03-14 13:40:47 +01:00
Robert Schütz
7c37a863e0 pythonPackages.BlinkStick: move expression
(cherry picked from commit 250aa352c4)
2018-03-14 13:40:38 +01:00
Robert Schütz
fda0d2fbbe pythonPackages.virtual-display: 0.1.5 -> 0.2.1 and disable tests
(cherry picked from commit 5d7f24e8b5)
2018-03-14 13:40:09 +01:00
Robert Schütz
fed17ce233 pythonPackages.virtual-display: move expression
(cherry picked from commit 7076991eec)
2018-03-14 13:40:02 +01:00
Robert Schütz
11d8ea3f8f pythonPackages.tunigo: fix tests
(cherry picked from commit c5d6e665c9)
2018-03-14 13:38:50 +01:00
Robert Schütz
beccfcd7a1 pythonPackages.tunigo: move expression
(cherry picked from commit cf5b06f9ce)
2018-03-14 13:38:42 +01:00
Piotr Bogdan
fa8e61d118 pingus: fix build with gcc7
(cherry picked from commit 2dfeb6fc53)
2018-03-14 12:57:37 +01:00
Michael Raskin
5687a38cb0 netsurfPackages.libcss: fix build by -Wno-error=implicit-fallthrough.
(cherry picked from commit 0077c7651c)
2018-03-14 12:09:28 +01:00
Michael Raskin
dcb1b693ef Merge pull request #36871 from vbgl/clingo-fix-url
clingo: fix URL
2018-03-14 11:51:59 +01:00
Michael Raskin
016274cc6c graphviz_2_32: restore libgraph, the reason to keep this version
(cherry picked from commit 352c567d1c)
2018-03-14 11:47:38 +01:00
Jörg Thalheim
136a39ee4d shuttle: disable buggy test on darwin
(cherry picked from commit ca1921eb5b)
2018-03-14 09:35:04 +00:00
volth
fd6d464cfc sshuttle: fix build on i686-linux
(cherry picked from commit f161fe06b8)
2018-03-14 09:35:04 +00:00
Badi Abdul-Wahid
85cbd5391a qtlocation: fix darwin build
A dependency (boost) makes use of `std::auto_ptr`, which is no longer
supported in C++17 in Clang. This change re-enables `std::auto_ptr`
capabilities.

(cherry picked from commit 833851cd6e)
2018-03-14 00:15:31 +01:00
Will Dietz
f9cb527902 virtualbox: 5.2.6 -> 5.2.8
Tested against all the VirtualBox VM tests.

Signed-off-by: aszlig <aszlig@nix.build>
Closes: #36127
(cherry picked from commit 273fd896bc)
Reason: The update is trivial in terms of affected packages and contains
        a bunch of Linux-specific fixes.
Signed-off-by: aszlig <aszlig@nix.build>
2018-03-13 23:38:20 +01:00
Peter Simons
3fcbb254fb hackage2nix: update list of failing Hydra builds 2018-03-13 22:04:08 +01:00
aszlig
b05df747cb nixos/tests/virtualbox: Work around test failures
I've started digging into the actual cause of the problem a week ago but
didn't continue fixing this.

The reason why the tests are failing is because
torvalds/linux/commit/72f5e08dbba2d01aa90b592cf76c378ea233b00b has
remapped the location of the TSS into the CPU entry area and we did
update our default kernel to version 4.14 in NixOS/nixpkgs@88530e02b6.

Back to VirtualBox: The guru meditation happens in
selmRCGuestTssPostWriteCheck, which I think is only a followup error. I
believe the right location couldn't be determined by VirtualBox and thus
the write check function triggers that panic because it's reading from
the wrong location.

So the actual problem *only* surfaces whenever we use software
virtualization, which we do for our tests because we don't have nested
virtualization available.

Our tests are also for testing the functionality of VirtualBox itself
and not certain kernel versions or kernel features, so for the time
being and until this is fixed, let's actually use kernel version 4.9 for
the guests within the VM tests. Kernel 4.9 didn't have the mentioned
change of the TSS location and thus the tests succeed.

Signed-off-by: aszlig <aszlig@nix.build>
Cc: @dtzWill
(cherry picked from commit ba816ee087)
2018-03-13 22:01:22 +01:00
volth
72fa68058e xfce: do not use old names
(cherry picked from commit fe70fbdefe)
2018-03-13 19:46:31 +01:00
Averell Dalton
4a573f8ae1 teamviewer: 12.0.85001 -> 12.0.90041
(cherry picked from commit 4b00e5c1a9)
2018-03-13 19:46:30 +01:00
Bart Brouns
2d3e899b06 qutebrowser: 1.1.1 -> 1.2.0
(cherry picked from commit f043e09e02)
2018-03-13 19:46:30 +01:00
Eli Flanagan
2a5231c403 timewarrior: enable for darwin
(cherry picked from commit e0bf8113bf)
2018-03-13 19:46:09 +01:00
Will Dietz
038560d68b metrics: fix "values" to be count not bytes, to match prev behavior
https://github.com/NixOS/nixpkgs/pull/36896#discussion_r174163744
(cherry picked from commit 29d46471e0)
2018-03-13 19:45:58 +01:00
Daiderd Jordan
5c5b188afd v8: only use -Wno-error=unused-lambda-capture with clang
(cherry picked from commit 15ee5ff446)
2018-03-13 19:23:48 +01:00
Daniel Frank
a64dea5c2f firefox-bin: 58.0.2 -> 59.0
(cherry picked from commit 43da40ecae)
2018-03-13 19:22:50 +01:00
Maximilian Bosch
9697a84a79 freeorion: fix build
`boost::system::posix_error` is deprecated since v1.37, however the
default Boost version in NixOS is 1.66.

The following upstream patch fixed the issue:
c9b5b13fb8

See ticket #36453

(cherry picked from commit 7da70c0b87)
2018-03-13 18:55:33 +01:00
Franz Pletz
a35928047c fetchurl: remove broken samba mirror
(cherry picked from commit 4f17851fb2)
2018-03-13 17:17:04 +01:00
Franz Pletz
6afb73a984 samba: 4.7.5 -> 4.7.6 for multiple CVEs
Fixes CVE-2018-1050, CVE-2018-1057.

(cherry picked from commit d2582dc92a)
2018-03-13 15:46:51 +01:00
Tim Steinbach
b7a4c0e3c0 samba: 4.7.4 -> 4.7.5
Also, fix kerberos dependency to include krb5kdc

(cherry picked from commit a14df21aae)
2018-03-13 15:46:51 +01:00
Lassulus
66ed24239d altcoins.bitcoin-unlimited: 1.0.2.0 - > 1.0.3.0 (#36715)
* altcoins.bitcoin-unlimited: 1.0.2.0 - > 1.0.3.0

* Update default.nix

(cherry picked from commit bfc75b5198)
2018-03-13 15:02:06 +01:00
Matthieu Coudron
075908d34b grub-install.pl: more details on blkid failure
(cherry picked from commit c476d2f592)
2018-03-13 15:02:05 +01:00
Matthieu Coudron
3264fe594d build-vm: remove trailing dot from script path
Allow to double click/middle click paste path a bit quicker.

(cherry picked from commit 7b7860ff89)
2018-03-13 15:02:05 +01:00
Matthieu Coudron
2c8a6a879c qemu-vm: removes warning when running build-vm
get rid of deprecated qemu commands

(cherry picked from commit b7a2333ebe)
2018-03-13 15:02:05 +01:00
Timo Kaufmann
570cf67110 conan: Fix build
conan has very strict requirements on the versions of its dependencies.
This patch adds downgraded versinos of node-semver and distro to
statisfy these requirements.

(cherry picked from commit 5fdfe61b35)
2018-03-13 15:02:04 +01:00
Luke Adams
9a02553f8a sambaMaster: 4.8.0_2018-01-25 -> 2018-03-09
(cherry picked from commit da45e8d099)
2018-03-13 15:02:04 +01:00
Antoine Eiche
763ec32dd7 tests/docker-tools: add onTopOfPulledImage test
(cherry picked from commit bc1e8f95d4)
2018-03-13 15:02:04 +01:00
Antoine Eiche
7ad7c976d8 dockerTools: add an onTopOfPulledImage example
This allows to test if a pulled image can be updated by using our
Docker tools.

(cherry picked from commit e8f452f110)
2018-03-13 15:02:03 +01:00
Will Dietz
1f9ffb4004 metrics: fixup sed expr to work with Nix 2
(cherry picked from commit 5eb07e2396)
2018-03-13 15:02:03 +01:00
adisbladis
06e99e0a7f overmind: init at 1.1.1
(cherry picked from commit ce78db79a3)
2018-03-13 15:02:03 +01:00
Bart Brouns
75f8209e3b i3: 4.14.1 -> 4.15
(cherry picked from commit cfa4c065d9)
2018-03-13 15:02:02 +01:00
Michael Weiss
2271731c30 androidStudioPackages.{dev,canary}: init at 3.2.0.5
Switch the naming scheme to the channel names.

(cherry picked from commit 74d922638b)
2018-03-13 15:02:02 +01:00
Michael Weiss
a14d18e39b androidStudioPackages.beta: 3.1.0.12 -> 3.1.0.14
(cherry picked from commit 310a665b98)
2018-03-13 15:02:02 +01:00
Nikolay Amiantov
1769af7a28 android-studio: fix GTK LaF
Closes #36887.

(cherry picked from commit d7470c1f1e)
2018-03-13 16:13:43 +03:00
Sander van der Burg
98bc0c37bf airfield: regenerate with node2nix 1.5.3
(cherry picked from commit ebb562d29a)
2018-03-13 10:47:26 +01:00
Sander van der Burg
41f93c6273 nixui: regenerate with node2nix 1.5.3
(cherry picked from commit e2cb020a27)
2018-03-13 10:47:05 +01:00
Sander van der Burg
f04f613270 remarkjs: regenerate dependencies with node2nix 1.5.3
(cherry picked from commit 3a5e38fa00)
2018-03-13 10:46:46 +01:00
Sander van der Burg
74f70f91a2 zed: regenerate packages with node2nix 1.5.3
(cherry picked from commit f9bb730d77)
2018-03-13 10:46:28 +01:00
Johannes Frankenau
3d5ae7dd9c gitea: 1.3.2 -> 1.3.3
(cherry picked from commit fa9950c0ae)
2018-03-12 22:45:58 -04:00
xeji
ad6601bc06 rush: fix build
see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853649

(cherry picked from commit 50d3c09e67)
2018-03-13 01:35:24 +01:00
Symphorien Gibol
d75137ece7 ssr: fix build
ssr uses the deprecated get_generic_category() in ./configure
pass the flag enabling that to boost

(cherry picked from commit 7ba5a94e35)
2018-03-13 01:33:52 +01:00
Yuriy Taraday
14d6a5dd23 bitcoin-unlimited: fix build with boost 1.66
Use part of fix for mainline bitcoin:
1ec0c0a01c

Also enable parallel builds for speed.

(cherry picked from commit 876420f04e)
2018-03-13 01:33:52 +01:00
Franz Pletz
bfb9424e13 nodePackages: fix evaluation
Introduced in 40e3ad60aa.

(cherry picked from commit 2c9d2d6526)
2018-03-13 00:45:14 +01:00
xeji
ef49c300a6 ufraw: fix build by using gcc6
doesn't build with gcc7 due to ill-formed upstream code,
see https://gcc.gnu.org/gcc-7/porting_to.html#cmath

(cherry picked from commit 817cd00bb9)
2018-03-13 00:41:37 +01:00
xeji
f275ec88ad torque: fix build w/gcc7
(cherry picked from commit db2b306747)
2018-03-13 00:41:37 +01:00
xeji
380dac18a0 vxl: fix build by using gcc6
upstream code incompatible w/gcc7. no newer version available.

(cherry picked from commit 0367a6235c)
2018-03-13 00:41:36 +01:00
Maximilian Bosch
c8adc90361 pythonPackages.gplaycli: 0.1.2 -> 3.21
Fix the broken package: https://hydra.nixos.org/build/70687256/log

The newer version requires two new dependencies that have been added as
well:

- gpapi (Unofficial Python API for Google Play) at version 0.4.2
- pyaxmlparser (Parser for Android's XML handler) at version 0.3.7

See ticket #36453
See https://hydra.nixos.org/build/70687256/log

(cherry picked from commit 4feaaa7f06)
2018-03-13 00:41:36 +01:00
Maximilian Bosch
5ceb25c217 pythonPackages.asana: fix build
Fetching sources from GitHub to have needed files like `LICENSE` and
tests available to provide safer builds.

See https://hydra.nixos.org/build/70676254/log
See ticket #36453

(cherry picked from commit 17e1795db0)
2018-03-13 00:41:36 +01:00
xeji
36eee0b9a3 dislocker: 0.6.1 -> 0.7.1
(cherry picked from commit 2d70431553)
2018-03-13 00:41:35 +01:00
xeji
a332101652 codeblocks: 16.01 -> 17.12, fix build
(cherry picked from commit 58b7f17a0f)
2018-03-13 00:41:35 +01:00
xeji
2062aef4f0 jfbview: mark as broken (upstream issue)
incompatible with current libmupdf:
https://github.com/jichu4n/JFBView/issues/17
does not appear actively maintained.

(cherry picked from commit a4f53eae2c)
2018-03-13 00:41:35 +01:00
Yuri Aisaka
050ad5dd36 cpp-gsl: treat sign-conversion as warning (#36630)
(cherry picked from commit 77e2f28b45)
2018-03-13 00:41:34 +01:00
WilliButz
442da8b898 grafana: 5.0.0 -> 5.0.1
(cherry picked from commit ef90ff2d8e)
2018-03-13 00:39:44 +01:00
Ryan Mulligan
378041f1b6 sdcc: 3.6.0 -> 3.7.0
Semi-automatic update. These checks were done:

- built on NixOS
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/as2gbmap -h` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/as2gbmap --help` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdcdb -h` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdcdb --help` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/s51 -h` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/s51 -v` and found version 3.7.0
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sz80 -h` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sz80 -v` and found version 3.7.0
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/stlcs -h` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/stlcs -v` and found version 3.7.0
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/shc08 -h` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/shc08 -v` and found version 3.7.0
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sstm8 -h` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sstm8 -v` and found version 3.7.0
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdar -h` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdar --help` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdar -h` and found version 3.7.0
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdar --help` and found version 3.7.0
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdranlib -h` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdranlib --help` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdranlib -h` and found version 3.7.0
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdranlib --help` and found version 3.7.0
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdobjcopy -h` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdobjcopy --help` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdobjcopy -h` and found version 3.7.0
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdobjcopy --help` and found version 3.7.0
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdnm -h` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdnm --help` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdnm -h` and found version 3.7.0
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdnm --help` and found version 3.7.0
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/packihx -h` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/packihx --help` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/makebin -h` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdcpp --help` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdcc -h` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdcc --help` got 0 exit code
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdcc -v` and found version 3.7.0
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdcc --version` and found version 3.7.0
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdcc -h` and found version 3.7.0
- ran `/nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0/bin/sdcc --help` and found version 3.7.0
- found 3.7.0 with grep in /nix/store/5xwjrizy4782acsnrjjfpypif8yjp41n-sdcc-3.7.0

(cherry picked from commit 29ea34c6db)
2018-03-13 00:30:28 +01:00
Sander van der Burg
89242aadcc nodePackages: regenerate with node2nix 1.5.3 2018-03-13 00:13:12 +01:00
Maximilian Bosch
f0da9baaa4 pythonPackages.mt-940: fix build (#36784)
- added missing `enum34` dependency
- enabled tests
- moved expression into its own file

See ticket #36453
See https://hydra.nixos.org/build/70677609/log

/cc @the-kenny
2018-03-12 23:36:04 +01:00
Nikolay Amiantov
52d6b940ff warsow: add missing patch
(cherry picked from commit 28264de9fc)
2018-03-13 01:12:29 +03:00
Nikolay Amiantov
0f558b07e3 warsow: 1.03 -> 2.1.2
Fix build, split into engine and game to build engine on Hydra.

(cherry picked from commit 5ed883a40b)
2018-03-13 01:11:09 +03:00
Nikolay Amiantov
99901537c7 dfhack: fix checksum
Fixes #36819.

(cherry picked from commit 2dfbef2764)
2018-03-13 01:11:02 +03:00
Nikolay Amiantov
8f7a7dfbdd xgboost: disable on AArch64
It requires SSE2.

(cherry picked from commit 5e9e30799b)
2018-03-13 01:10:49 +03:00
Amine Chikhaoui
8be8c91d0a pcstat: init at 2017-05-28 (#33643)
(cherry picked from commit d5dd7f4413)
2018-03-12 23:02:25 +01:00
symphorien
0cc0001756 wxhexeditor: 0.22 -> 0.24 (#36832)
(cherry picked from commit 991e5ca486)
2018-03-12 22:44:23 +01:00
Vladyslav M
b9cfe0cefb hplip: 3.17.10 -> 3.17.11
(cherry picked from commit be6d9e1e69)
2018-03-12 22:44:22 +01:00
Lenz Weber
d6986819fb gitkraken: 3.3.4 -> 3.4.0
(cherry picked from commit e11f0aee7c)
2018-03-12 22:32:47 +01:00
Markus Kowalewski
55f626e58f beegfs: 6.17 -> 6.18
(cherry picked from commit 11d40d5331)
2018-03-12 22:31:22 +01:00
Niklas Hambüchen
0c077427e1 nixos-container: Fix destroy terminating before it's done. Fixes #32545.
This also fixes the race condition found in #32551.

And it fixes nixops's repeated destroy/deploy being broken
(https://github.com/NixOS/nixops/issues/809).

(cherry picked from commit 5d83988c1e)
2018-03-12 22:29:04 +01:00
Franz Pletz
a3d87f1ed8 nixos/tests/containers-tmpfs: fix test name
(cherry picked from commit b0fa004fa9)
2018-03-12 22:28:51 +01:00
Johannes Frankenau
2783e4e755 wireguard: 0.0.20180218 -> 0.0.20180304
(cherry picked from commit a0cc592c3e)
2018-03-12 22:14:44 +01:00
Lloyd Hazlett
60d6d53eee spideroak: 6.1.9 -> 7.0.1
(cherry picked from commit 47c7ad14ef)
2018-03-12 22:10:21 +01:00
Sarah Brofeldt
9dbc763949 nixos/tests/acme: use mail-test-srv tls certs from source
(cherry picked from commit df3706c47c)
2018-03-12 22:10:20 +01:00
Sarah Brofeldt
665c75eccb nixos/tests/acme: go compat update, unvendor pkcs11
(cherry picked from commit bd35580860)
2018-03-12 22:10:20 +01:00
Daiderd Jordan
449ad50644 libcdio: fix darwin build
/cc ZHF #36454

(cherry picked from commit af041b34a2)
2018-03-12 21:35:07 +01:00
Daiderd Jordan
30c9664568 libpar2: fix clang build
/cc ZHF #36454

(cherry picked from commit 4ba61cd136)
2018-03-12 21:24:48 +01:00
Daiderd Jordan
7fbb31a12b sslscan: fix clang build
/cc ZHF #36454

(cherry picked from commit 0fdbf3edeb)
2018-03-12 21:14:48 +01:00
Daiderd Jordan
9bf324b5d0 v8: fix clang build
/cc ZHF #36454

(cherry picked from commit 0c629e9c23)
2018-03-12 21:09:52 +01:00
Vladimír Čunát
ec46986f86 Merge #36764: bip: fixup build with gcc7
(cherry picked from commit 8eca63588d)
2018-03-12 20:35:37 +01:00
Daiderd Jordan
545665b51a xarchiver: fix darwion build
/cc ZHF #36454

(cherry picked from commit c5d531ddfb)
2018-03-12 20:34:06 +01:00
Vladimír Čunát
580d00d507 Merge #36686: darling-dmg: fix build with gcc7
(cherry picked from commit 1d968d180a)
2018-03-12 20:29:56 +01:00
Vladimír Čunát
bb88585479 Merge #36626: libgroove: fix build
(cherry picked from commit 8a74c75e22)
2018-03-12 20:22:38 +01:00
Vladimír Čunát
0092cf65e9 Merge #36807: fcgiwrap: avoid failure on warning
(cherry picked from commit b0b1de897f)
2018-03-12 20:22:34 +01:00
Johannes Frankenau
b999b5e80c bcal: 1.7 -> 1.8
The tests failed for a good reason on Darwin and should not have been
disabled. The issue has been resolved upstream with version 1.8 which
now also supports AArch64.

(cherry picked from commit 59cc47d802)
2018-03-12 19:49:52 +01:00
Josef Kemetmüller
6b44b2ee32 pythonPackages.shapely: fix darwin build
(cherry picked from commit 74b81ea91c)
2018-03-12 19:43:20 +01:00
Josef Kemetmüller
a333b11963 petsc: fix darwin build
(cherry picked from commit edef344458)
2018-03-12 19:12:04 +01:00
Matthias Beyer
c568f4d21a lumail: Use lua5.1
This is necessary because the standard library which is distributed with
lumail (the lumail core configuration so to speak) is written for lua5.1
apparently.

The website states 5.1 or 5.2 or 5.3, but 5.2 fails because "loadstring"
was deprecated in lua 5.2.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
(cherry picked from commit 13e95f33db)
2018-03-12 16:38:44 +00:00
Matthias Beyer
556857bc22 lumail: Fix package definition
Includes:

* Package gets a flag to use the debug build
* install phase installs all lua scripts from the package and makes
  lumail find them
* global configuration which is shipped with the package can be
  overridden, if desired
* parallel building enabled

(cherry picked from commit bb8e1c4512)
2018-03-12 16:38:44 +00:00
Matthias Beyer
a215099636 lumail: 2.9 -> 3.1
(cherry picked from commit 29c33ba5af)
2018-03-12 16:38:43 +00:00
Rok Garbas
d4fc1a0c0b vimPlugins: updating all vim plugings 2018-03-12 14:32:45 +01:00
John Children
11caaec824 LanguageClient-neovim: 2017-12-05 -> 2018-03-06
Following up from issue #33391, building LanguageClient-neovim now
requires some rust dependencies. This patch makes the plugin now longer
listed in vim-plugin-names file so that it will not be automatically
generated and instead lists it in non-generated plugins.

Also adds rustPlatform to arguments for vim plugins set.
2018-03-12 14:32:45 +01:00
Peter Simons
5065d28a1c hackage-packages.nix: fix gnome3-related evaluation errors
The file was generated by hackage2nix v2.9-5-g32974fc using Hackage at
2018-03-11T00:47:10Z (3efaeb24c3f48ef7f430beea9e9274c535a81c12).
2018-03-12 14:20:17 +01:00
Sander van der Burg
6afcd42e3b nodejs: patch bundled node-gyp module to not invoke xcodebuild on macOS causing modules with native dependencies to fail
(cherry picked from commit 634cbfa8f2)
2018-03-12 13:19:15 +01:00
Izorkin
ce68ae5d9a nftables: 0.8.2 -> 0.8.3
(cherry picked from commit c10b7a7d27)
2018-03-12 11:52:35 +00:00
Silvan Mosberger
313dab0c3f resilio: Adjust option description to 3d17573
(cherry picked from commit 86ca617948)
2018-03-12 11:05:27 +00:00
Tuomas Tynkkynen
1f34ba8343 nix: Fix build on ARMv6
(cherry picked from commit 22df741045)
2018-03-11 21:24:18 +02:00
Robert Helgesson
9ac481091f josm: 13478 -> 13500
(cherry picked from commit 37f6b0ff9c)
2018-03-11 19:45:52 +01:00
Tim Steinbach
62bdacf6bd rofi: Fix patches
(cherry picked from commit edec57043e)
2018-03-11 14:22:25 -04:00
Tim Steinbach
80a280f609 linux-copperhead: 4.15.8.a -> 4.15.9.a
(cherry picked from commit a5a14c3e5e0899ca836fcdca366f3ac8c20fd973)
2018-03-11 13:49:07 -04:00
Tim Steinbach
cb47e35408 linux: 4.4.120 -> 4.4.121
(cherry picked from commit 376c1272d74eae5f522b3ae3d02214705c96f290)
2018-03-11 13:49:00 -04:00
Tim Steinbach
656e1561f8 linux: 4.9.86 -> 4.9.87
(cherry picked from commit 06d5f03359b68b513090bd5e05156f7148e96e5d)
2018-03-11 13:48:54 -04:00
Tim Steinbach
7ec3ba485d linux: 4.14.25 -> 4.14.26
(cherry picked from commit 1e319c70e0322264871e2aba5ccc477447f4e4f8)
2018-03-11 13:48:48 -04:00
Tim Steinbach
131f9a4fe1 linux: 4.15.8 -> 4.15.9
(cherry picked from commit 3d7c5af2583dfa2033051267b6d5e926b8c4e562)
2018-03-11 13:48:42 -04:00
Tim Steinbach
f57a786cfb vscode: 1.20.1 -> 1.21.0
(cherry picked from commit 46037503f6)
2018-03-11 13:35:33 -04:00
Tim Steinbach
8fb34d8fc2 rofi: 1.4.2 -> 1.5.0
(cherry picked from commit de5a77c12f2dd8df2e88712867b0e2f659f927f5)
2018-03-11 13:24:32 -04:00
Peter Simons
b8ebbc0e3d Synchronize Haskell infrastructure with master @ f62deb0f92. 2018-03-11 16:08:16 +01:00
Michael Raskin
b6bd99869d Merge pull request #36794 from xeji/deprecate-xen-4-5-on-18-03
xenPackages: deprecate Xen 4.5 on 18.03, security support ended
2018-03-11 14:14:52 +00:00
Badi Abdul-Wahid
2f93afbd51 languagemachines: fix darwin build
(cherry picked from commit ff0f112527)
2018-03-11 15:11:38 +01:00
Badi Abdul-Wahid
81f8347c01 libtar: add darwin to supported platforms
(cherry picked from commit 3117ae6c4f)
2018-03-11 15:11:25 +01:00
Josef Kemetmüller
f9387d8e33 pythonPackages.discid: fix darwin build
(cherry picked from commit 57d862fecf)
2018-03-11 14:40:44 +01:00
Josef Kemetmüller
328a1c6ea2 pythonPackages.construct: Fix darwin build
The package runs fine on darwin. Using pytest as a test runner also
resolves the checkPhase issue on Python 3.5+.

(cherry picked from commit 91a9453496)
2018-03-11 14:38:56 +01:00
Josef Kemetmüller
bdb9c3b4e9 pythonPackages.regex: fix darwin build
The package works fine on darwin. We run some tests to prove this.

(cherry picked from commit d289736def)
2018-03-11 14:30:05 +01:00
Josef Kemetmüller
fc3b588207 mpv: fix darwin build
The optional video acceleration api (vaapi) is not supported on darwin.

(cherry picked from commit 38c589b5d0)
2018-03-11 13:21:20 +01:00
Josef Kemetmüller
013d0ba929 pythonPackages.robotframework: fix darwin build
(cherry picked from commit 8f9e814132)
2018-03-11 12:35:13 +01:00
Jan Malakhovski
af64b8d165 xenPackages: deprecate Xen 4.5, security support ended
cherry-picked from commit 3e3d72b95a
and resolved conflicts
2018-03-11 12:05:06 +01:00
Moritz Maxeiner
af554ad3cc Remove myself as maintainer
(cherry picked from commit 12a70fd571)
2018-03-11 09:00:38 +01:00
Maximilian Bosch
3b75b1004d pythonPackages.htmltreediff: fix build
- add `pythonPackages.nose` as `checkInput` to make the tests passing
- extract expression into its own file

See https://hydra.nixos.org/build/70680974/log
See ticket #36453

(cherry picked from commit 94458721a7)
2018-03-11 08:35:42 +01:00
Frederik Rietdijk
5b772cd2a5 python.pkgs.humanize: enable darwin build
(cherry picked from commit e2e4df611e908a5738a8d6913d75e0334f78a007)
2018-03-11 08:31:31 +01:00
lassulus
252397d7c1 altcoins.memorycoin: use boost165
(cherry picked from commit 8684de926c)
2018-03-10 22:08:38 +00:00
Nikolay Amiantov
6233a34505 zandronum: sound improvements
* Update fmod version to one with PulseAudio support;
* Dynamically link FluidSynth instead of using LD_LIBRARY_PATH;
* Use system libgme.

Fixes sound on some machines.

(cherry picked from commit f7c2288cfc)
2018-03-11 00:06:18 +03:00
Nikolay Amiantov
035c9265d3 buildFHSEnv: fix compiler search paths
Fixes OpenWrt compilation.

(cherry picked from commit 94f0ef6628)
2018-03-11 00:06:15 +03:00
xeji
3708494230 kore: fix build with gcc7
(cherry picked from commit 41cdea68da)
2018-03-10 13:17:36 -05:00
Timo Kaufmann
b43fbc45f4 blackmagic: Revert to gcc6
(cherry picked from commit 6b53a7cd09)
2018-03-10 18:23:50 +01:00
Michael Raskin
d19d0544bd Merge pull request #36690 from YorikSar/fix-chromium-build
chromium: fix GCC 7 related build issues
(cherry picked from commit cac24ccbe9)
2018-03-10 17:26:03 +01:00
lassulus
0bd5b4aa99 altcoins.btc1: 1.14.5 -> 1.15.1
(cherry picked from commit 0c15e1d1ee)
2018-03-10 16:11:08 +00:00
lassulus
330204b212 altcoins.dogecoin: use boost165
(cherry picked from commit 54572276ec)
2018-03-10 16:09:33 +00:00
lassulus
0585d51567 namecoin: nc0.13.0rc1 -> nc0.15.99-name-tab-beta2
(cherry picked from commit e50c1ad98a)
2018-03-10 16:07:13 +00:00
Jörg Thalheim
a32fcfd0da ht: fix gcc7 compilation
(cherry picked from commit 672e808dd3)
2018-03-10 16:01:32 +00:00
Silvan Mosberger
c536d4030b nixos/network-interfaces: Fix 2 small typos
(cherry picked from commit 08704aa2f7)
2018-03-10 15:56:16 +00:00
Lancelot SIX
c5ba8b96e9 pythonPackages.daphne: 2.0.3 -> 2.1.0
(cherry picked from commit ddddca5c2f)
2018-03-10 14:56:36 +01:00
Lancelot SIX
6ac7a6f909 pythonPackages.asgiref: 2.1.5 -> 2.2.0
(cherry picked from commit 38753d52bc)
2018-03-10 14:56:29 +01:00
Lancelot SIX
fa8607a4c7 pythonPackages.asgi_redis: drop
This was part of django-channel-1.x. The current version (2) does not
use it anymore

(cherry picked from commit dadba1cce3)
2018-03-10 14:56:22 +01:00
Lancelot SIX
57b6a82d95 pythonPackages.asgi_ipc: drop
This wath used for django-channels-1.x. The current version (2) does
not use it anymore

(cherry picked from commit 1347f90953)
2018-03-10 14:56:14 +01:00
lassulus
061f2bd51b altcoins.freicoin: fix hash
(cherry picked from commit 00c2008bee)
2018-03-10 12:59:39 +00:00
Robin Gloster
12a39b0f92 rugged: fix build
(cherry picked from commit 83ee88e70f)
2018-03-10 13:00:52 +01:00
Michael Raskin
f9f9c47419 mupdf: import upstream patches for CVEs: 2017-17858, 2018-1000051, 2018-6187, 2018-6192
(cherry picked from commit f2f7b0579b)
2018-03-10 12:58:36 +01:00
Robin Gloster
2b9270f54c errbot: fix build
Those version specs only exist to keep compat with python 3.3 which we
are not using anyway.

(cherry picked from commit 560b2bce6ce84628f97e242a3015201378a90eef)
(cherry picked from commit 679580be35)
2018-03-10 12:58:01 +01:00
Robert Schütz
a8aacac1bd pythonPackages.aiohttp: 3.0.1 -> 3.0.5
(cherry picked from commit 3387115364)
2018-03-10 12:50:42 +01:00
Frederik Rietdijk
da702c3ecb Python: fix update script for nix 2.0
(cherry picked from commit b92d994501)
2018-03-10 12:41:47 +01:00
Frederik Rietdijk
237391c8a8 python.pkgs.odo: disable failing test
(cherry picked from commit 2c406f6329)
2018-03-10 12:37:04 +01:00
Frederik Rietdijk
58cc2513d8 python.pkgs.datashape: disable several tests
(cherry picked from commit 5c1c6a3071)
2018-03-10 12:36:57 +01:00
lassulus
ece5594fd0 altcoins.litecoin: 0.14.2 -> 0.15.1
(cherry picked from commit 1bad821710)
2018-03-10 11:36:05 +00:00
Ryan Mulligan
379c3fd1cf taktuk: 3.7.5 -> 3.7.7
Semi-automatic update. These checks were done:

- built on NixOS
- ran `/nix/store/l4zd353icm418x6asy4123a3gcpy14cr-taktuk-3.7.7/bin/taktuk -h` got 0 exit code
- ran `/nix/store/l4zd353icm418x6asy4123a3gcpy14cr-taktuk-3.7.7/bin/taktuk --help` got 0 exit code
- ran `/nix/store/l4zd353icm418x6asy4123a3gcpy14cr-taktuk-3.7.7/bin/taktuk help` got 0 exit code
- ran `/nix/store/l4zd353icm418x6asy4123a3gcpy14cr-taktuk-3.7.7/bin/taktuk -v` and found version 3.7.7
- ran `/nix/store/l4zd353icm418x6asy4123a3gcpy14cr-taktuk-3.7.7/bin/taktuk --version` and found version 3.7.7
- ran `/nix/store/l4zd353icm418x6asy4123a3gcpy14cr-taktuk-3.7.7/bin/taktuk version` and found version 3.7.7
- ran `/nix/store/l4zd353icm418x6asy4123a3gcpy14cr-taktuk-3.7.7/bin/taktuk -h` and found version 3.7.7
- ran `/nix/store/l4zd353icm418x6asy4123a3gcpy14cr-taktuk-3.7.7/bin/taktuk --help` and found version 3.7.7
- ran `/nix/store/l4zd353icm418x6asy4123a3gcpy14cr-taktuk-3.7.7/bin/taktuk help` and found version 3.7.7
- found 3.7.7 with grep in /nix/store/l4zd353icm418x6asy4123a3gcpy14cr-taktuk-3.7.7
- found 3.7.7 in filename of file in /nix/store/l4zd353icm418x6asy4123a3gcpy14cr-taktuk-3.7.7

(cherry picked from commit c995db0853)
2018-03-10 12:16:07 +01:00
Elis Hirwing
124228bcfa polib: move to own file and fix homepage
(cherry picked from commit b6fc08795e)
2018-03-10 12:14:13 +01:00
Elis Hirwing
22b9e5d37f progressbar: move to own file and fix homepage
(cherry picked from commit 6c55f5479d)
2018-03-10 12:12:12 +01:00
Elis Hirwing
0cf830ecb6 publicsuffix: move to own file and fix homepage
(cherry picked from commit 605a373468)
2018-03-10 12:11:22 +01:00
Elis Hirwing
9a6e742e94 pyjade: move to own file and fix homepage
(cherry picked from commit 77330e18f4)
2018-03-10 12:06:29 +01:00
Frederik Rietdijk
2f3ea8863d Python: introduce toPythonApplication function
This commit introduces the `toPythonApplication` function. Certain
Python packages are considered both a library and an application, that
is, they expose importable modules, but typically executables that are
part of the package are used instead.

In this case, the package needs to be added to `python-packages.nix` in
order for it to be available as a library. An alias with this function
can then be added in `all-packages.nix`, e.g.:

```
ansible = with pythonPackages; toPythonApplication ansible;
```

(cherry picked from commit 03e54c5e88)
2018-03-10 12:05:06 +01:00
Elis Hirwing
ff94b5ced4 pychart: move to own file
Also update website and download of source.

(cherry picked from commit f1795e3957)
2018-03-10 12:03:04 +01:00
Elis Hirwing
8088cd2fbe proboscis: move to own file and fix homepage
(cherry picked from commit b29348257a)
2018-03-10 11:01:32 +00:00
Hugo Tavares Reis
db7068e685 nixnote2: fix icon and version
(cherry picked from commit 6e5cd9cbfb)
2018-03-09 20:46:34 +00:00
Vladimír Čunát
08d2a6a981 Merge #36680: apvlv: fix build with gcc7
(cherry picked from commit 922d55aae8)
2018-03-09 21:10:27 +01:00
Vladimír Čunát
7086687469 Merge #36663: hexcurse: fix build with gcc7
(cherry picked from commit 0ce2f04a04)
2018-03-09 20:51:59 +01:00
Vladimír Čunát
280b912570 Merge #36644: caffe2: fix compilation on gcc7
(cherry picked from commit b441512ced)
2018-03-09 20:50:00 +01:00
Vladimír Čunát
99dcf80e4b Merge #36645: mps: fix build with gcc7
(cherry picked from commit 897cecfb13)
2018-03-09 20:49:56 +01:00
Vladimír Čunát
d9f179252d WIP:
waiting for https://github.com/NixOS/nixos-org-configurations/pull/39
2018-03-09 20:49:56 +01:00
Matthew Bauer
e06c2d9cfe network_cmds: fix on darwin
(cherry picked from commit c7abef4c5d)
2018-03-09 19:33:41 +01:00
Matthew Bauer
33a4313eba darwin: disable broken packages
(cherry picked from commit 54e2c28b09)
2018-03-09 19:33:26 +01:00
Tim Steinbach
5d1b222116 atom: 1.24.0 -> 1.24.1
(cherry picked from commit 8338d38e20ed0ab961430d8629dfd3a16ad169bd)
2018-03-09 13:13:18 -05:00
Tim Steinbach
1189fd2504 linux-copperhead: 4.15.7.a -> 4.15.8.a
(cherry picked from commit 72dede4203)
2018-03-09 12:33:24 -05:00
Tim Steinbach
602e64b42d linux: 4.15.7 -> 4.15.8
(cherry picked from commit 3fdb1c57c88db51b72af47065249066b1e7a552a)
2018-03-09 12:28:19 -05:00
Tim Steinbach
cc1cda8bae linux: 4.14.24 -> 4.14.25
(cherry picked from commit e5efdb0f67cc195ee963391037fb0a2cf081baba)
2018-03-09 12:28:12 -05:00
Piotr Bogdan
7b72d7f713 yate: patch shebangs in configure
(cherry picked from commit 5a3550ede6)
2018-03-09 16:10:22 +00:00
Piotr Bogdan
d2bf584a75 yate: restrict platforms
doesn't build on aarch64-linux

(cherry picked from commit f497a39328)
2018-03-09 16:09:55 +00:00
Nikolay Amiantov
8234bcad01 double-conversion: hopefully fix on Darwin
(cherry picked from commit 948533180f)
2018-03-09 16:38:23 +03:00
Nikolay Amiantov
9bfeba6fc6 slade: disable on AArch64
Wants SSE.

(cherry picked from commit 325dece6a0)
2018-03-09 16:38:17 +03:00
Nikolay Amiantov
bef3bb584b linuxPackages.bbswitch: disable on AArch64
It makes no sense on non-x86 platforms.

(cherry picked from commit 1890fe359a)
2018-03-09 16:38:12 +03:00
Nikolay Amiantov
ceb427eb50 citra: disable on AArch64
Wants SSE2 instructions.

(cherry picked from commit 9983c7004b)
2018-03-09 16:38:06 +03:00
Nikolay Amiantov
c26c22b7ab tdesktop: disable on AArch64
Errors out with "please add support for your architecture".

(cherry picked from commit 4c3c71fdd4)
2018-03-09 16:38:00 +03:00
Nikolay Amiantov
0a0b31db3d dwarf-fortress-packages.dwarf-therapist: disable on AArch64
The game works only on x86 anyway.

(cherry picked from commit 986ea06036)
2018-03-09 16:37:52 +03:00
Nikolay Amiantov
686ce4dade deadbeef: disable on AArch64
(cherry picked from commit c292489da0)
2018-03-09 16:37:46 +03:00
Nikolay Amiantov
180d071c3a the-powder-toy: disable on AArch64
Wants SSE.

(cherry picked from commit 809297e595)
2018-03-09 16:37:37 +03:00
Ryan Mulligan
67a504ed46 cppcheck: 1.80 -> 1.82
Semi-automatic update. These checks were done:

- built on NixOS
- ran `/nix/store/klfqwbh75zch4zzdbwdyvk9qhgf28sln-cppcheck-1.82/bin/misra.py -h` got 0 exit code
- ran `/nix/store/klfqwbh75zch4zzdbwdyvk9qhgf28sln-cppcheck-1.82/bin/misra.py --help` got 0 exit code
- ran `/nix/store/klfqwbh75zch4zzdbwdyvk9qhgf28sln-cppcheck-1.82/bin/misra.py help` got 0 exit code
- ran `/nix/store/klfqwbh75zch4zzdbwdyvk9qhgf28sln-cppcheck-1.82/bin/naming.py -h` got 0 exit code
- ran `/nix/store/klfqwbh75zch4zzdbwdyvk9qhgf28sln-cppcheck-1.82/bin/naming.py --help` got 0 exit code
- ran `/nix/store/klfqwbh75zch4zzdbwdyvk9qhgf28sln-cppcheck-1.82/bin/naming.py help` got 0 exit code
- ran `/nix/store/klfqwbh75zch4zzdbwdyvk9qhgf28sln-cppcheck-1.82/bin/y2038.py -h` got 0 exit code
- ran `/nix/store/klfqwbh75zch4zzdbwdyvk9qhgf28sln-cppcheck-1.82/bin/y2038.py --help` got 0 exit code
- ran `/nix/store/klfqwbh75zch4zzdbwdyvk9qhgf28sln-cppcheck-1.82/bin/y2038.py help` got 0 exit code
- ran `/nix/store/klfqwbh75zch4zzdbwdyvk9qhgf28sln-cppcheck-1.82/bin/cppcheck -h` got 0 exit code
- ran `/nix/store/klfqwbh75zch4zzdbwdyvk9qhgf28sln-cppcheck-1.82/bin/cppcheck --help` got 0 exit code
- ran `/nix/store/klfqwbh75zch4zzdbwdyvk9qhgf28sln-cppcheck-1.82/bin/cppcheck --version` and found version 1.82
- found 1.82 with grep in /nix/store/klfqwbh75zch4zzdbwdyvk9qhgf28sln-cppcheck-1.82
- found 1.82 in filename of file in /nix/store/klfqwbh75zch4zzdbwdyvk9qhgf28sln-cppcheck-1.82

(cherry picked from commit 62190a66ae)
2018-03-09 14:12:09 +01:00
Joachim Fasting
861f8bf015 electrum: 3.0.6 -> 3.1.0
(cherry picked from commit 53f057f21b)
2018-03-09 14:12:02 +01:00
Vladimír Čunát
01360a2845 gnat: mark as broken
https://github.com/NixOS/nixpkgs/commit/6ac7b19c978e9#commitcomment-27971572
https://github.com/NixOS/nixpkgs/pull/36551
2018-03-09 13:54:23 +01:00
Márton Boros
f1333eeaa1 idrisPackages.wl-pprint: 2016-09-28 -> 2017-03-13
(cherry picked from commit 4d4171d5f6)
2018-03-09 11:40:18 +00:00
Márton Boros
a9ee2cf9cc idrisPackages: fix errors
(cherry picked from commit 4f1d26288f)
2018-03-09 11:40:18 +00:00
Matthew Bauer
02a0fb8e74 demo: autologin through xserver
also disable upower on virtualbox
Fixes #36348
2018-03-09 11:37:11 +00:00
Maximilian Bosch
d308c7fc7a bonfire: fix build
The requirement's constraint for `pythonPackages.keyring` didn't allow
keyring v11. However it has been bumped in 93a16a2ace
by @FRidh.

Current failure: https://nix-cache.s3.amazonaws.com/log/2nw5adfx86jwiax32mn11kqpc35xwhsh-bonfire-unstable-2017-01-19.drv
See ticket #36453
2018-03-09 11:33:46 +00:00
Vladimír Čunát
77e99aa707 Merge #36518: xtreemfs: build with boost165
(cherry picked from commit d2d07a0bce)
It didn't build.
2018-03-09 11:05:15 +01:00
Vladimír Čunát
b8ec973e7d Merge #36555: libreswan: fix build with gcc7
(cherry picked from commit ffe2c4be02)
2018-03-09 10:52:01 +01:00
lassulus
e6d0584d78 bitcoin-abc: 0.16.0 -> 0.16.2
(cherry picked from commit d940c79130)
2018-03-09 08:03:44 +00:00
xeji
3c4c5913bb v8: build with gcc6 on linux
doesn't build with gcc 7 due to this issue in upstream code:
https://bugs.chromium.org/p/chromium/issues/detail?id=614289

(cherry picked from commit aa5a07977e)
2018-03-09 08:00:55 +00:00
Herwig Hochleitner
058417c31e chromium: 64.0.3282.186 -> 65.0.3325.146
see https://chromereleases.googleblog.com/2018/03/stable-channel-update-for-desktop.html

cc @aszlig @YorikSar

CVE-2017-11215
CVE-2017-11225
CVE-2018-6060
CVE-2018-6061
CVE-2018-6062
CVE-2018-6057
CVE-2018-6063
CVE-2018-6064
CVE-2018-6065
CVE-2018-6066
CVE-2018-6067
CVE-2018-6068
CVE-2018-6069
CVE-2018-6070
CVE-2018-6071
CVE-2018-6072
CVE-2018-6073
CVE-2018-6074
CVE-2018-6075
CVE-2018-6076
CVE-2018-6077
CVE-2018-6078
CVE-2018-6079
CVE-2018-6080
CVE-2018-6081
CVE-2018-6082
CVE-2018-6083

(cherry picked from commit 9b4ffd98a4)
2018-03-09 03:14:06 +01:00
xeji
8e58deb53f libav: remove /bin/sh dependencies
that resulted in some Hydra build fails

(cherry picked from commit adbd25c75c)
2018-03-08 20:21:23 -05:00
lassulus
eadbc34c6d bitcoin-classic: 1.3.6 -> 1.3.8
(cherry picked from commit bbd8664e01)
2018-03-08 23:00:32 +00:00
lassulus
0bbaa51b4c bitcoin-xt: 0.11G2 -> 0.11H
(cherry picked from commit 75f4b0fc0f)
2018-03-08 23:00:20 +00:00
Jörg Thalheim
1ce672458c google-cloud-sdk: also fix darwin
(cherry picked from commit a30cb1bf55)
2018-03-08 22:38:02 +00:00
xeji
6d88a00f01 rapidjson: fix gcc7 compile error
(cherry picked from commit 81776365f4)
2018-03-08 22:22:50 +00:00
Michael Brantley
ee88a41926 perlPackages.Socket: 2.020 -> 2.027
Also disable t/getaddrinfo.t test which requires network access.

(cherry picked from commit 467c03de31)
2018-03-08 21:52:06 +00:00
Ryan Mulligan
b312bdcd53 google-cloud-sdk: 184.0.0 -> 190.0.1
Semi-automatic update. These checks were done:

- built on NixOS
- Warning: no binary found that responded to help or version flags. (This warning appears even if the package isn't expected to have binaries.)
- found 190.0.1 with grep in /nix/store/y7rvgsj3077w8div5qny11xhgyjvy06c-google-cloud-sdk-190.0.1

(cherry picked from commit 84cb658505)
2018-03-08 21:50:34 +00:00
Daiderd Jordan
9cde87b0ee bchunk: fix clang build
/cc ZHF #36454

(cherry picked from commit 13ca830f1d)
2018-03-08 22:33:39 +01:00
Daiderd Jordan
b31fd67d79 bazel_0_4: mark linux only
/cc ZHF #36454

(cherry picked from commit 37a97fa8e3)
2018-03-08 22:20:03 +01:00
Vincent Laporte
bd6d6078c6 wyrd: fix build
(cherry picked from commit 1d4bbef0e8)
2018-03-08 14:49:54 -06:00
Daiderd Jordan
f394f5230a libjack2: remove clang patch
/cc ZHF #36454

(cherry picked from commit f2661ed72b)
2018-03-08 21:27:50 +01:00
Daiderd Jordan
a4340341a6 nixos: inline set-environment for bash and zsh
(cherry picked from commit b00a3fc6fd)
2018-03-08 21:07:40 +01:00
Daiderd Jordan
9defa1d4c0 skhd: init at 0.0.10
(cherry picked from commit b84d22cbbd)
2018-03-08 21:04:44 +01:00
obadz
e78837f435 citrix-receiver: 13.8.0 -> 13.9.0
The "A network error occured (SSL error 4)" is finally fixed!

(cherry picked from commit daafd1d71f)
2018-03-08 19:27:17 +00:00
Will Dietz
ad6a090cfe llvmPackages_6: build using gcc6 on i686, like others.
(cherry picked from commit 42c33ce12f)
2018-03-08 13:21:02 -06:00
Will Dietz
43dd25e579 Merge pull request #34457 from dtzWill/feature/llvm-6
llvm 6: init

(cherry picked from commit b09b557fb7)
2018-03-08 13:20:50 -06:00
xeji
a053461720 wyrd: fix build error with ncurses-6.0-abi5-compat
(cherry picked from commit de1427fabf)
2018-03-08 12:52:38 -06:00
Will Dietz
724dcdd066 squishyball: fix w/new ncurses
https://github.com/NixOS/nixpkgs/pull/34477
https://bugs.debian.org/860334
(cherry picked from commit ce37526ed7)
2018-03-08 12:36:59 -06:00
Will Dietz
46fc5c8419 virtualbox: drop headless patch that no longer applies, fixed upstream
(cherry picked from commit 4191058bdd)
2018-03-08 12:36:42 -06:00
Will Dietz
fac8c4d2d9 lldb_4: fix w/gcc7
Same fix used in swift4, FWIW.

(cherry picked from commit 535ba5f7f7)
2018-03-08 12:36:02 -06:00
Jascha Geerds
0feab3dabe maintainer-list: Change my email address
(cherry picked from commit 300e272e02)
2018-03-08 16:33:39 +01:00
Peter Hoeg
df63bd6b9a syncthing: 0.14.44 -> 0.14.45
(cherry picked from commit 05412c95da)
2018-03-08 09:23:31 +08:00
Matthew Bauer
bf5e7c48c4 git-sizer: init at 1.0.0
(cherry picked from commit 0b04beb805)
2018-03-07 22:21:31 +01:00
Andrew Childs
17ff10ab83 gdb: Flexible target matching for darwin
Outside of the nix-build the target is `x86_64-apple-darwin17.4.0`,
while inside the target is `x86_64-apple-darwin`. This difference
causes the fallback target configuration for darwin, which disables
gdb. Add a patch to make the target matching more flexible.

(cherry picked from commit 4c76a21aae)
(cherry picked from commit fe0728fa2c)
2018-03-07 22:17:01 +01:00
Vladimír Čunát
82bb0a18f0 nixos release: more evaluation fixes
... if missing x86 in supportedSystems

(cherry picked from commit eab479a5f0)
2018-03-07 17:32:56 +01:00
Vladimír Čunát
aa84b58f00 nixos/release: fix evaluation if missing x86
... in supportedSystems

(cherry picked from commit e59b91bc9a)
2018-03-07 16:07:02 +01:00
Nikolay Amiantov
01f9a70647 gajim: add plugin installer
It's not included into repository checkout (which we use because of tests), so
get it from release tarball instead.

(cherry picked from commit 9edd4c8835)
2018-03-07 16:47:48 +03:00
Vladimír Čunát
5f98ff26d9 texlive: fix eval after parent commit 2018-03-07 14:40:45 +01:00
Vladimír Čunát
c43e04dd94 Revert "Merge #35370: texlive.bin: fix with poppler 0.62"
This reverts commit 4dd70f96cc.
It actually broke texlive - I somehow forgot we don't have the new
poppler in 18.03.
2018-03-07 14:40:06 +01:00
Ryan Mulligan
03dc796bbc nspr: 4.17 -> 4.18
Semi-automatic update. These checks were performed:

- built on NixOS
- found 4.18 with grep in /nix/store/23322yndj5lh6n4pr3maj26irnwklq31-nspr-4.18
- found 4.18 in filename of file in /nix/store/23322yndj5lh6n4pr3maj26irnwklq31-nspr-4.18

(cherry picked from commit 52b2e79a8b)
We would probably have to pick it soon anyway, due to Firefox updates.
2018-03-07 13:30:35 +01:00
Vladimír Čunát
eec99996ec mesa: 17.3.5 -> 17.3.6 (bugfix)
It's emergency bugfix for intel.

(cherry picked from commit 6a9ab8db11)
2018-03-07 13:30:34 +01:00
Jörg Thalheim
52859c481a Merge pull request #36203 from lsix/libunistring_0.9.9
libunistring: 0.9.8 -> 0.9.9
(cherry picked from commit ad338b8268)
It claims to contain a single bugfix only.
2018-03-07 13:30:34 +01:00
Daiderd Jordan
c6de8f318e Merge pull request #35349 from matthewbauer/qt5-darwin-pkgconfig
qt5: install pkg_config files on darwin
(cherry picked from commit b4cf3f7909)
2018-03-07 13:30:33 +01:00
Will Dietz
70e1ebe0c7 Merge pull request #35674 from dtzWill/fix/llvm-4-cmdline-help
llvm_4: fix cosmetic issue in help output

(cherry picked from commit 3092659d96)
2018-03-07 13:30:32 +01:00
Vladimír Čunát
69a3a1dce1 lightdm-gtk-greeter: fix build by ignoring a warning
(cherry picked from commit 0479e91309)
2018-03-07 13:30:32 +01:00
Shea Levy
48a724cebd texlive.bin: Fix duplicate patch definition
(cherry picked from commit 1ad37a8c6e)
2018-03-07 13:30:31 +01:00
Vladimír Čunát
4dd70f96cc Merge #35370: texlive.bin: fix with poppler 0.62
(cherry picked from commit 63ca2cc786)
2018-03-07 13:30:30 +01:00
Vladimír Čunát
e4fe0e4555 gtk3: 3.22.26 -> 3.22.28 (maintenance)
(cherry picked from commit 01bf8381fd)
2018-03-07 13:30:30 +01:00
Vladimír Čunát
8056287c13 Merge #35113: cups: upstream patch for a bug
(cherry picked from commit e719327694)
2018-03-07 13:30:29 +01:00
Vladimír Čunát
8022ebc47c Merge #34878: fontconfig: Fix for HFS+ 1s date resolution
(cherry picked from commit 753db3e2d0)
2018-03-07 13:30:28 +01:00
Vladimír Čunát
fee03226a6 mesa: 17.3.3 -> 17.3.5 (maintenance)
(cherry picked from commit ddb422714d)
2018-03-07 13:30:28 +01:00
Vladimír Čunát
b759739d05 libdrm: 2.4.89 -> 2.4.90
(cherry picked from commit b6476968c4)
2018-03-07 13:30:27 +01:00
adisbladis
f93e902ab2 Merge pull request #35421 from flokli/CVE-zziplib-0.13.67
zziplib: 0.13.67 -> 0.13.68
(cherry picked from commit 6f13032b6e)
Security fixes inside.
2018-03-07 13:30:27 +01:00
Nikolay Amiantov
6b3d6a9f7a cups service: fix client sockets
Use systemd to create the directory for UNIX socket. Also use localhost instead
of 127.0.0.1 as is done in default cupsd.conf so that IPv6 is enabled when
available.

(cherry picked from commit 9c1c424e52)
2018-03-07 13:30:26 +01:00
Nikolay Amiantov
9b53db5d7e cups: fix path to socket and run directory
We use default /var/run/cups/cups.sock in NixOS but here it's misdefined to be
/run/cups.sock. Return it to default.

(cherry picked from commit 998fdfdc94)
2018-03-07 13:30:25 +01:00
Eelco Dolstra
b0eb9ec92d nixUnstable: Point to Nix 2.0
(cherry picked from commit 1deb779a7a)
2018-03-07 13:30:25 +01:00
Michael Raskin
e4f2f026bd Merge pull request #36403 from elts/fix/cl-launch
cl-launch: change platforms to unix
(cherry picked from commit 07be75d512)
2018-03-07 13:30:24 +01:00
Marius Bergmann
fa64b9e64f restic: update project website (#36408)
* restic: update project website

The project website has changed, so I updated it.

* restic: no trailing slash

(cherry picked from commit 8154f9ebd5)
2018-03-07 13:30:23 +01:00
obadz
4069dab3ca nixos doc: give context and definition re NIXOS_LUSTRATE
Re #36272

(cherry picked from commit ee9a785c30)
2018-03-07 13:30:23 +01:00
Carles Pagès
2c1addb451 maintainers: remove wrong info
I tried to contact bjg through mail but got no answer and can't find his
actual github account.

(cherry picked from commit 15ddc6fcf8)
2018-03-07 13:30:22 +01:00
Carles Pagès
d0aa15abca SDL2_gfx: update homepage
(cherry picked from commit 5eb70d3481)
2018-03-07 13:30:21 +01:00
Michael Raskin
7b987e2e86 Merge pull request #36389 from cpages/sdl2
Sdl2 and friends update

(cherry picked from commit c8664a2640)
Security fixes inside, reportedly.
2018-03-07 13:30:21 +01:00
Tuomas Tynkkynen
6569c4f184 trinity: Fix 32-bit build
(cherry picked from commit 2372e93981)
2018-03-07 13:30:20 +01:00
lewo
1bebf7af74 Merge pull request #36343 from bignaux/soulseekqt
soulseekqt: init at 2016-1-17 (last official stable)
(cherry picked from commit 9cfeabb327)
2018-03-07 13:30:19 +01:00
Michael Raskin
f43ea6e7ff Merge pull request #36275 from oxij/lib/maintainers-list
lib: rename maintainers-list.nix into maintainers/maintainer-list.nix
(cherry picked from commit 1bd790d613)
The intention is to reduce conflicts during maintenance.
2018-03-07 13:30:19 +01:00
Michael Raskin
05ddccd657 Merge pull request #36380 from xeji/xen-4-8-xsa
xen 4.8: add xsa security patches 252-256

(cherry picked from commit 346e68d4f0)
2018-03-07 13:30:18 +01:00
Michael Raskin
4d6473908f Merge pull request #36375 from volth/commandLineArgs-escaping
chromium, google-chrome: fix escaping of commandLineArgs

(cherry picked from commit da97c73fb3)
2018-03-07 13:30:18 +01:00
Jörg Thalheim
4fb6f7b83d Merge pull request #36250 from sengaya/add-ansible-lint
ansible-lint: init at 3.4.20
(cherry picked from commit 07bc1ddace)
2018-03-07 13:30:17 +01:00
Jörg Thalheim
77d3830fda Merge pull request #36353 from xeji/xen-4-8
xen 4.8: fix gcc7-related build errors

(cherry picked from commit c7a92f3fee)
2018-03-07 13:30:16 +01:00
Jörg Thalheim
487731bcd3 Merge pull request #36350 from volth/nix-serve
nix-serve: nix 2.0 fixes
(cherry picked from commit 5fe1be88a5)
2018-03-07 13:30:16 +01:00
Robin Gloster
7539b80e17 json-c-0-11: remove
(cherry picked from commit ddba7e3ae9)
2018-03-07 13:30:15 +01:00
Robin Gloster
b5088858f6 grive: remove
dead and obsoleted by grive2

(cherry picked from commit fe7039b08b)
2018-03-07 13:30:14 +01:00
Robin Gloster
a2ab45f547 newsbeuter: dead and obsoleted by newsboat
(cherry picked from commit 1fb08b90dd)
2018-03-07 13:30:14 +01:00
Robert Helgesson
8e75367ced xfce4-timer-plugin: remove icon cache file from output
Adds hicolor-icon-theme as a build input to use its build hook to
clean up icon cache files.

(cherry picked from commit c7f40209c1)
2018-03-07 13:30:13 +01:00
Robert Helgesson
141aec6186 parole: remove icon cache file from output
Adds hicolor-icon-theme as a build input to use its build hook to
clean up icon cache files.

(cherry picked from commit 0203ab2ff9)
2018-03-07 13:30:12 +01:00
Nikolay Amiantov
0e44dd1677 megatools: 1.9.98 -> 2017-10-26
Old version doesn't work with new Mega API.

(cherry picked from commit b6a28336e5)
2018-03-07 14:45:14 +03:00
Nikolay Amiantov
5868f9ae1e primusLib: build only for x86 Linux
(cherry picked from commit 41939f29a1)
2018-03-07 13:58:18 +03:00
Peter Hoeg
5b18373a45 dxx-rebirth: fix compilation with gcc7
(cherry picked from commit 2e2063074d)
2018-03-07 12:37:35 +08:00
Eelco Dolstra
66a621d314 Merge pull request #36360 from dtzWill/fix/nix-use-brotli-for-sanity
nix: fix conditional so brotli is used w/2.0 builds, needed for logs!
(cherry picked from commit 40f9a3e9d2)
2018-03-06 20:25:37 +01:00
Nikolay Amiantov
a2037bb238 avidemux: restrict platforms
(cherry picked from commit 1f8d30f0bf)
2018-03-06 13:58:59 +03:00
34422 changed files with 812166 additions and 2580720 deletions

View File

@@ -1,5 +1,5 @@
# EditorConfig configuration for nixpkgs
# https://EditorConfig.org
# http://EditorConfig.org
# Top-most EditorConfig file
root = true
@@ -11,77 +11,18 @@ insert_final_newline = true
trim_trailing_whitespace = true
charset = utf-8
# Ignore diffs/patches
[*.{diff,patch}]
end_of_line = unset
insert_final_newline = unset
trim_trailing_whitespace = unset
# see https://nixos.org/nixpkgs/manual/#chap-conventions
# Match json/lockfiles/markdown/nix/perl/python/ruby/shell/docbook files, set indent to spaces
[*.{json,lock,md,nix,pl,pm,py,rb,sh,xml}]
# Match nix/ruby files, set indent to spaces with width of two
[*.{nix,rb}]
indent_style = space
# Match docbook files, set indent width of one
[*.xml]
indent_size = 1
# Match json/lockfiles/markdown/nix/ruby files, set indent width of two
[*.{json,lock,md,nix,rb}]
indent_size = 2
# Match perl/python/shell scripts, set indent width of four
[*.{pl,pm,py,sh}]
# Match shell/python/perl scripts, set indent to spaces with width of four
[*.{sh,py,pl}]
indent_style = space
indent_size = 4
# Match gemfiles, set indent to spaces with width of two
[Gemfile]
indent_size = 2
indent_style = space
# Disable file types or individual files
# some of these files may be auto-generated and/or require significant changes
[*.{c,h}]
insert_final_newline = unset
trim_trailing_whitespace = unset
[*.{asc,key,ovpn}]
insert_final_newline = unset
end_of_line = unset
trim_trailing_whitespace = unset
[*.lock]
indent_size = unset
# trailing whitespace is an actual syntax element of classic Markdown/
# CommonMark to enforce a line break
[*.md]
trim_trailing_whitespace = unset
[eggs.nix]
trim_trailing_whitespace = unset
[nixos/modules/services/networking/ircd-hybrid/*.{conf,in}]
trim_trailing_whitespace = unset
[pkgs/build-support/dotnetenv/Wrapper/**]
end_of_line = unset
indent_style = unset
insert_final_newline = unset
trim_trailing_whitespace = unset
[pkgs/development/compilers/elm/registry.dat]
end_of_line = unset
insert_final_newline = unset
[pkgs/development/haskell-modules/hackage-packages.nix]
indent_style = unset
trim_trailing_whitespace = unset
[pkgs/servers/dict/wordnet_structures.py]
trim_trailing_whitespace = unset
[pkgs/tools/misc/timidity/timidity.cfg]
trim_trailing_whitespace = unset
# Match diffs, avoid to trim trailing whitespace
[*.{diff,patch}]
trim_trailing_whitespace = false

View File

@@ -1,38 +0,0 @@
# This file contains a list of commits that are not likely what you
# are looking for in a blame, such as mass reformatting or renaming.
# You can set this file as a default ignore file for blame by running
# the following command.
#
# $ git config blame.ignoreRevsFile .git-blame-ignore-revs
#
# To temporarily not use this file add
# --ignore-revs-file=""
# to your blame command.
#
# The ignoreRevsFile can't be set globally due to blame failing if the file isn't present.
# To not have to set the option in every repository it is needed in,
# save the following script in your path with the name "git-bblame"
# now you can run
# $ git bblame $FILE
# to use the .git-blame-ignore-revs file if it is present.
#
# #!/usr/bin/env bash
# repo_root=$(git rev-parse --show-toplevel)
# if [[ -e $repo_root/.git-blame-ignore-revs ]]; then
# git blame --ignore-revs-file="$repo_root/.git-blame-ignore-revs" $@
# else
# git blame $@
# fi
# nixos/modules/rename: Sort alphabetically
1f71224fe86605ef4cd23ed327b3da7882dad382
# manual: fix typos
feddd5e7f8c6f8167b48a077fa2a5394dc008999
# nixos: fix module paths in rename.nix
d08ede042b74b8199dc748323768227b88efcf7c
# fix indentation in mk-python-derivation.nix
d1c1a0c656ccd8bd3b25d3c4287f2d075faf3cf3

16
.gitattributes vendored
View File

@@ -1,16 +0,0 @@
**/deps.nix linguist-generated
**/node-packages.nix linguist-generated
pkgs/applications/editors/emacs-modes/*-generated.nix linguist-generated
pkgs/development/r-modules/*-packages.nix linguist-generated
pkgs/development/haskell-modules/hackage-packages.nix linguist-generated
pkgs/development/beam-modules/hex-packages.nix linguist-generated
doc/** linguist-documentation
doc/default.nix linguist-documentation=false
nixos/doc/** linguist-documentation
nixos/doc/default.nix linguist-documentation=false
nixos/modules/module-list.nix merge=union
# pkgs/top-level/all-packages.nix merge=union

284
.github/CODEOWNERS vendored
View File

@@ -6,58 +6,28 @@
#
# For documentation on this file, see https://help.github.com/articles/about-codeowners/
# Mentioned users will get code review requests.
#
# IMPORTANT NOTE: in order to actually get pinged, commit access is required.
# This also holds true for GitHub teams. Since almost none of our teams have write
# permissions, you need to list all members of the team with commit access individually.
# This file
/.github/CODEOWNERS @edolstra
# GitHub actions
/.github/workflows @NixOS/Security @Mic92 @zowoq
/.github/workflows/merge-staging @FRidh
# EditorConfig
/.editorconfig @Mic92 @zowoq
# Libraries
/lib @edolstra @nbp @infinisil
/lib/systems @alyssais @nbp @ericson2314 @matthewbauer
/lib/generators.nix @edolstra @nbp @Profpatsch
/lib/cli.nix @edolstra @nbp @Profpatsch
/lib/debug.nix @edolstra @nbp @Profpatsch
/lib/asserts.nix @edolstra @nbp @Profpatsch
/lib @edolstra @nbp
/lib/systems @nbp @ericson2314
# Nixpkgs Internals
/default.nix @nbp
/pkgs/top-level/default.nix @nbp @Ericson2314
/pkgs/top-level/impure.nix @nbp @Ericson2314
/pkgs/top-level/stage.nix @nbp @Ericson2314 @matthewbauer
/pkgs/top-level/splice.nix @Ericson2314 @matthewbauer
/pkgs/top-level/release-cross.nix @Ericson2314 @matthewbauer
/pkgs/stdenv/generic @Ericson2314 @matthewbauer
/pkgs/stdenv/cross @Ericson2314 @matthewbauer
/pkgs/build-support/cc-wrapper @Ericson2314
/pkgs/build-support/bintools-wrapper @Ericson2314
/pkgs/build-support/setup-hooks @Ericson2314
/pkgs/build-support/setup-hooks/auto-patchelf.sh @layus
/pkgs/build-support/setup-hooks/auto-patchelf.py @layus
# Nixpkgs build-support
/pkgs/build-support/writers @lassulus @Profpatsch
# Nixpkgs documentation
/doc @fricklerhandwerk
/maintainers/scripts/db-to-md.sh @jtojnar @ryantm
/maintainers/scripts/doc @jtojnar @ryantm
/doc/build-aux/pandoc-filters @jtojnar
/doc/contributing/contributing-to-documentation.chapter.md @jtojnar
/default.nix @nbp
/pkgs/top-level/default.nix @nbp @Ericson2314
/pkgs/top-level/impure.nix @nbp @Ericson2314
/pkgs/top-level/stage.nix @nbp @Ericson2314
/pkgs/stdenv
/pkgs/build-support/cc-wrapper @Ericson2314 @orivej
/pkgs/build-support/bintools-wrapper @Ericson2314 @orivej
/pkgs/build-support/setup-hooks @Ericson2314
# NixOS Internals
/nixos/default.nix @nbp @infinisil
/nixos/lib/from-env.nix @nbp @infinisil
/nixos/lib/eval-config.nix @nbp @infinisil
/nixos/default.nix @nbp
/nixos/lib/from-env.nix @nbp
/nixos/lib/eval-config.nix @nbp
/nixos/doc/manual/configuration/abstractions.xml @nbp
/nixos/doc/manual/configuration/config-file.xml @nbp
/nixos/doc/manual/configuration/config-syntax.xml @nbp
@@ -71,221 +41,53 @@
/nixos/doc/manual/development/writing-modules.xml @nbp
/nixos/doc/manual/man-nixos-option.xml @nbp
/nixos/modules/installer/tools/nixos-option.sh @nbp
/nixos/modules/system @dasJ
# NixOS integration test driver
/nixos/lib/test-driver @tfc
# Systemd
/nixos/modules/system/boot/systemd.nix @NixOS/systemd
/nixos/modules/system/boot/systemd @NixOS/systemd
/nixos/lib/systemd-*.nix @NixOS/systemd
/pkgs/os-specific/linux/systemd @NixOS/systemd
# Updaters
## update.nix
/maintainers/scripts/update.nix @jtojnar
/maintainers/scripts/update.py @jtojnar
## common-updater-scripts
/pkgs/common-updater/scripts/update-source-version @jtojnar
# Python-related code and docs
/maintainers/scripts/update-python-libraries @FRidh
/pkgs/top-level/python-packages.nix @FRidh @jonringer
/pkgs/development/interpreters/python @FRidh
/pkgs/development/python-modules @FRidh @jonringer
/doc/languages-frameworks/python.section.md @FRidh
/pkgs/development/tools/poetry2nix @adisbladis
/pkgs/development/interpreters/python/hooks @FRidh @jonringer
/pkgs/top-level/python-packages.nix @FRidh
/pkgs/development/interpreters/python @FRidh
/pkgs/development/python-modules @FRidh
/doc/languages-frameworks/python.md @FRidh
# Haskell
/doc/languages-frameworks/haskell.section.md @cdepillabout @sternenseemann @maralorn
/maintainers/scripts/haskell @cdepillabout @sternenseemann @maralorn
/pkgs/development/compilers/ghc @cdepillabout @sternenseemann @maralorn
/pkgs/development/haskell-modules @cdepillabout @sternenseemann @maralorn
/pkgs/test/haskell @cdepillabout @sternenseemann @maralorn
/pkgs/top-level/release-haskell.nix @cdepillabout @sternenseemann @maralorn
/pkgs/top-level/haskell-packages.nix @cdepillabout @sternenseemann @maralorn
# Perl
/pkgs/development/interpreters/perl @stigtsp @zakame
/pkgs/top-level/perl-packages.nix @stigtsp @zakame
/pkgs/development/perl-modules @stigtsp @zakame
/pkgs/development/compilers/ghc @peti
/pkgs/development/haskell-modules @peti
/pkgs/development/haskell-modules/default.nix @peti
/pkgs/development/haskell-modules/generic-builder.nix @peti
/pkgs/development/haskell-modules/hoogle.nix @peti
# R
/pkgs/applications/science/math/R @jbedo
/pkgs/development/r-modules @jbedo
/pkgs/applications/science/math/R @peti
/pkgs/development/r-modules @peti
# Ruby
/pkgs/development/interpreters/ruby @marsam
/pkgs/development/ruby-modules @marsam
/pkgs/development/interpreters/ruby @zimbatm
/pkgs/development/ruby-modules @zimbatm
# Rust
/pkgs/development/compilers/rust @Mic92 @LnL7 @zowoq
/pkgs/build-support/rust @zowoq
/doc/languages-frameworks/rust.section.md @zowoq
# Darwin-related
/pkgs/stdenv/darwin @NixOS/darwin-maintainers
/pkgs/os-specific/darwin @NixOS/darwin-maintainers
# C compilers
/pkgs/development/compilers/gcc @matthewbauer
/pkgs/development/compilers/llvm @matthewbauer
# Compatibility stuff
/pkgs/top-level/unix-tools.nix @matthewbauer
/pkgs/development/tools/xcbuild @matthewbauer
# Audio
/nixos/modules/services/audio/botamusique.nix @mweinelt
/nixos/modules/services/audio/snapserver.nix @mweinelt
/nixos/tests/modules/services/audio/botamusique.nix @mweinelt
/nixos/tests/snapcast.nix @mweinelt
# Browsers
/pkgs/applications/networking/browsers/firefox @mweinelt
# Beam-related (Erlang, Elixir, LFE, etc)
/pkgs/development/beam-modules @gleber
/pkgs/development/interpreters/erlang @gleber
/pkgs/development/interpreters/lfe @gleber
/pkgs/development/interpreters/elixir @gleber
/pkgs/development/tools/build-managers/rebar @gleber
/pkgs/development/tools/build-managers/rebar3 @gleber
/pkgs/development/tools/erlang @gleber
# Jetbrains
/pkgs/applications/editors/jetbrains @edwtjo
# Licenses
/lib/licenses.nix @alyssais
# Eclipse
/pkgs/applications/editors/eclipse @rycee
# https://github.com/NixOS/nixpkgs/issues/31401
/lib/maintainers.nix @ghost
/lib/licenses.nix @ghost
# Qt / KDE
/pkgs/applications/kde @ttuegel
/pkgs/desktops/plasma-5 @ttuegel
/pkgs/development/libraries/kde-frameworks @ttuegel
/pkgs/development/libraries/qt-5 @ttuegel
# PostgreSQL and related stuff
/pkgs/servers/sql/postgresql @thoughtpolice @marsam
/nixos/modules/services/databases/postgresql.xml @thoughtpolice
/nixos/modules/services/databases/postgresql.nix @thoughtpolice
/nixos/tests/postgresql.nix @thoughtpolice
# Hardened profile & related modules
/nixos/modules/profiles/hardened.nix @joachifm
/nixos/modules/security/hidepid.nix @joachifm
/nixos/modules/security/lock-kernel-modules.nix @joachifm
/nixos/modules/security/misc.nix @joachifm
/nixos/tests/hardened.nix @joachifm
/pkgs/os-specific/linux/kernel/hardened-config.nix @joachifm
# Home Automation
/nixos/modules/services/misc/home-assistant.nix @mweinelt
/nixos/modules/services/misc/zigbee2mqtt.nix @mweinelt
/nixos/tests/home-assistant.nix @mweinelt
/nixos/tests/zigbee2mqtt.nix @mweinelt
/pkgs/servers/home-assistant @mweinelt
/pkgs/tools/misc/esphome @mweinelt
# Network Time Daemons
/pkgs/tools/networking/chrony @thoughtpolice
/pkgs/tools/networking/ntp @thoughtpolice
/pkgs/tools/networking/openntpd @thoughtpolice
/nixos/modules/services/networking/ntp @thoughtpolice
# Network
/pkgs/tools/networking/kea/default.nix @mweinelt
/pkgs/tools/networking/babeld/default.nix @mweinelt
/nixos/modules/services/networking/babeld.nix @mweinelt
/nixos/modules/services/networking/kea.nix @mweinelt
/nixos/modules/services/networking/knot.nix @mweinelt
/nixos/tests/babeld.nix @mweinelt
/nixos/tests/kea.nix @mweinelt
/nixos/tests/knot.nix @mweinelt
# Dhall
/pkgs/development/dhall-modules @Gabriella439 @Profpatsch @ehmry
/pkgs/development/interpreters/dhall @Gabriella439 @Profpatsch @ehmry
# Idris
/pkgs/development/idris-modules @Infinisil
# Bazel
/pkgs/development/tools/build-managers/bazel @Profpatsch
# NixOS modules for e-mail and dns services
/nixos/modules/services/mail/mailman.nix @peti
/nixos/modules/services/mail/postfix.nix @peti
/nixos/modules/services/networking/bind.nix @peti
/nixos/modules/services/mail/rspamd.nix @peti
# Emacs
/pkgs/applications/editors/emacs/elisp-packages @adisbladis
/pkgs/applications/editors/emacs @adisbladis
/pkgs/top-level/emacs-packages.nix @adisbladis
# Neovim
/pkgs/applications/editors/neovim @jonringer @teto
# VimPlugins
/pkgs/applications/editors/vim/plugins @jonringer
# VsCode Extensions
/pkgs/applications/editors/vscode/extensions @jonringer
# Prometheus exporter modules and tests
/nixos/modules/services/monitoring/prometheus/exporters.nix @WilliButz
/nixos/modules/services/monitoring/prometheus/exporters.xml @WilliButz
/nixos/tests/prometheus-exporters.nix @WilliButz
# PHP interpreter, packages, extensions, tests and documentation
/doc/languages-frameworks/php.section.md @aanderse @etu @globin @ma27 @talyz
/nixos/tests/php @aanderse @etu @globin @ma27 @talyz
/pkgs/build-support/build-pecl.nix @aanderse @etu @globin @ma27 @talyz
/pkgs/development/interpreters/php @jtojnar @aanderse @etu @globin @ma27 @talyz
/pkgs/development/php-packages @aanderse @etu @globin @ma27 @talyz
/pkgs/top-level/php-packages.nix @jtojnar @aanderse @etu @globin @ma27 @talyz
# Podman, CRI-O modules and related
/nixos/modules/virtualisation/containers.nix @zowoq @adisbladis
/nixos/modules/virtualisation/cri-o.nix @zowoq @adisbladis
/nixos/modules/virtualisation/podman @zowoq @adisbladis
/nixos/tests/cri-o.nix @zowoq @adisbladis
/nixos/tests/podman @zowoq @adisbladis
# Docker tools
/pkgs/build-support/docker @roberth
/nixos/tests/docker-tools* @roberth
/doc/builders/images/dockertools.section.md @roberth
# Blockchains
/pkgs/applications/blockchains @mmahut @RaghavSood
# Go
/doc/languages-frameworks/go.section.md @kalbasit @Mic92 @zowoq
/pkgs/build-support/go @kalbasit @Mic92 @zowoq
/pkgs/development/compilers/go @kalbasit @Mic92 @zowoq
# GNOME
/pkgs/desktops/gnome @jtojnar
/pkgs/desktops/gnome/extensions @piegamesde @jtojnar
# Cinnamon
/pkgs/desktops/cinnamon @mkg20001
# nim
/pkgs/development/compilers/nim @ehmry
/pkgs/development/nim-packages @ehmry
/pkgs/top-level/nim-packages.nix @ehmry
# terraform providers
/pkgs/applications/networking/cluster/terraform-providers @zowoq
# kubernetes
/nixos/doc/manual/configuration/kubernetes.chapter.md @zowoq
/nixos/modules/services/cluster/kubernetes @zowoq
/nixos/tests/kubernetes @zowoq
/pkgs/applications/networking/cluster/kubernetes @zowoq
# Matrix
/pkgs/servers/heisenbridge @piegamesde
/pkgs/servers/matrix-conduit @piegamesde
/pkgs/servers/matrix-synapse/matrix-appservice-irc @piegamesde
/nixos/modules/services/misc/heisenbridge.nix @piegamesde
/nixos/modules/services/misc/matrix-appservice-irc.nix @piegamesde
/nixos/modules/services/misc/matrix-conduit.nix @piegamesde
/nixos/tests/matrix-appservice-irc.nix @piegamesde
/nixos/tests/matrix-conduit.nix @piegamesde
# Dotnet
/pkgs/build-support/dotnet @IvarWithoutBones
/pkgs/development/compilers/dotnet @IvarWithoutBones

52
.github/CONTRIBUTING.md vendored Normal file
View File

@@ -0,0 +1,52 @@
# How to contribute
Note: contributing implies licensing those contributions
under the terms of [COPYING](../COPYING), which is an MIT-like license.
## 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
* Format the commit messages in the following way:
```
(pkg-name | nixos/<module>): (from -> to | init at version | refactor | etc)
(Motivation for change. Additional information.)
```
Examples:
* nginx: init at 2.0.1
* firefox: 54.0.1 -> 55.0
* nixos/hydra: add bazBaz option
Dual baz behavior is needed to do foo.
* nixos/nginx: refactor config generation
The old config generation system used impure shell scripts and could break in specific circumstances (see #1234).
* `meta.description` should:
* Be capitalized.
* Not start with the package name.
* Not have a period at the end.
* `meta.license` must be set and fit the upstream license.
* If there is no upstream license, `meta.license` should default to `stdenv.lib.licenses.unfree`.
* `meta.maintainers` must be set.
See the nixpkgs manual for more details on [standard meta-attributes](https://nixos.org/nixpkgs/manual/#sec-standard-meta-attributes) and on how to [submit changes to nixpkgs](https://nixos.org/nixpkgs/manual/#chap-submitting-changes).
## Writing good commit messages
In addition to writing properly formatted commit messages, it's important to include relevant information so other developers can later understand *why* a change was made. While this information usually can be found by digging code, mailing list archives, pull request discussions or upstream changes, it may require a lot of work.
For package version upgrades and such a one-line commit message is usually sufficient.
## Reviewing contributions
See the nixpkgs manual for more details on how to [Review contributions](https://nixos.org/nixpkgs/manual/#sec-reviewing-contributions).

View File

@@ -8,4 +8,5 @@
## Technical details
Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result.
Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the
results.

View File

@@ -1,40 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: '0.kind: bug'
assignees: ''
---
### Describe the bug
A clear and concise description of what the bug is.
### Steps To Reproduce
Steps to reproduce the behavior:
1. ...
2. ...
3. ...
### Expected behavior
A clear and concise description of what you expected to happen.
### Screenshots
If applicable, add screenshots to help explain your problem.
### Additional context
Add any other context about the problem here.
### Notify maintainers
<!--
Please @ people who are in the `meta.maintainers` list of the offending package or module.
If in doubt, check `git blame` for whoever last touched something.
-->
### Metadata
Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result.
```console
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
output here
```

View File

@@ -1,34 +0,0 @@
---
name: Build failure
about: Create a report to help us improve
title: ''
labels: '0.kind: build failure'
assignees: ''
---
### Steps To Reproduce
Steps to reproduce the behavior:
1. build *X*
### Build log
```
log here if short otherwise a link to a gist
```
### Additional context
Add any other context about the problem here.
### Notify maintainers
<!--
Please @ people who are in the `meta.maintainers` list of the offending package or module.
If in doubt, check `git blame` for whoever last touched something.
-->
### Metadata
Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result.
```console
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
output here
```

View File

@@ -1,48 +0,0 @@
---
name: Out-of-date package reports
about: For packages that are out-of-date
title: ''
labels: '9.needs: package (update)'
assignees: ''
---
###### Checklist
<!-- Note that these are hard requirements -->
<!--
You can use the "Go to file" functionality on GitHub to find the package
Then you can go to the history for this package
Find the latest "package_name: old_version -> new_version" commit
The "new_version" is the current version of the package
-->
- [ ] Checked the [nixpkgs master branch](https://github.com/NixOS/nixpkgs)
<!--
Type the name of your package and try to find an open pull request for the package
If you find an open pull request, you can review it!
There's a high chance that you'll have the new version right away while helping the community!
-->
- [ ] Checked the [nixpkgs pull requests](https://github.com/NixOS/nixpkgs/pulls)
###### Project name
`nix search` name:
<!--
The current version can be found easily with the same process as above for checking the master branch
If an open PR is present for the package, take this version as the current one and link to the PR
-->
current version:
desired version:
###### Notify maintainers
<!--
Search your package here: https://search.nixos.org/packages?channel=unstable
If no maintainer is listed for your package, tag the person that last updated the package
-->
maintainers:
###### Note for maintainers
Please tag this issue in your PR.

View File

@@ -1,18 +0,0 @@
---
name: Packaging requests
about: For packages that are missing
title: ''
labels: '0.kind: packaging request'
assignees: ''
---
**Project description**
_describe the project a little_
**Metadata**
* homepage URL:
* source URL:
* license: mit, bsd, gpl2+ , ...
* platforms: unix, linux, darwin, ...

View File

@@ -1,41 +1,19 @@
###### Description of changes
###### Motivation for this change
<!--
For package updates please link to a changelog or describe changes, this helps your fellow maintainers discover breaking updates.
For new packages please briefly describe the package or provide a link to its homepage.
-->
###### Things done
<!-- Please check what applies. Note that these are not hard requirements but merely serve as information for reviewers. -->
- [ ] Tested using sandboxing ([nix.useSandbox](http://nixos.org/nixos/manual/options.html#opt-nix.useSandbox) on NixOS, or option `build-use-sandbox` in [`nix.conf`](http://nixos.org/nix/manual/#sec-conf-file) on non-NixOS)
- Built on platform(s)
- [ ] x86_64-linux
- [ ] aarch64-linux
- [ ] x86_64-darwin
- [ ] aarch64-darwin
- [ ] For non-Linux: Is `sandbox = true` set in `nix.conf`? (See [Nix manual](https://nixos.org/manual/nix/stable/command-ref/conf-file.html))
- [ ] Tested, as applicable:
- [NixOS test(s)](https://nixos.org/manual/nixos/unstable/index.html#sec-nixos-tests) (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
- and/or [package tests](https://nixos.org/manual/nixpkgs/unstable/#sec-package-tests)
- or, for functions and "core" functionality, tests in [lib/tests](https://github.com/NixOS/nixpkgs/blob/master/lib/tests) or [pkgs/test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/test)
- made sure NixOS tests are [linked](https://nixos.org/manual/nixpkgs/unstable/#ssec-nixos-tests-linking) to the relevant packages
- [ ] Tested compilation of all packages that depend on this change using `nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"`. Note: all changes have to be committed, also see [nixpkgs-review usage](https://github.com/Mic92/nixpkgs-review#usage)
- [ ] Tested basic functionality of all binary files (usually in `./result/bin/`)
- [22.11 Release Notes (or backporting 22.05 Release notes)](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#generating-2211-release-notes)
- [ ] (Package updates) Added a release notes entry if the change is major or breaking
- [ ] (Module updates) Added a release notes entry if the change is significant
- [ ] (Module addition) Added a release notes entry if adding a new NixOS module
- [ ] (Release notes changes) Ran `nixos/doc/manual/md-to-db.sh` to update generated release notes
- [ ] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
- [ ] NixOS
- [ ] macOS
- [ ] other Linux distributions
- [ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
- [ ] Tested compilation of all pkgs that depend on this change using `nix-shell -p nox --run "nox-review wip"`
- [ ] Tested execution of all binary files (usually in `./result/bin/`)
- [ ] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md).
<!--
To help with the large amounts of pull requests, we would appreciate your
reviews of other pull requests, especially simple package updates. Just leave a
comment describing what you have tested in the relevant package/service.
Reviewing helps to reduce the average time-to-merge for everyone.
Thanks a lot if you do!
---
List of open PRs: https://github.com/NixOS/nixpkgs/pulls
Reviewing guidelines: https://nixos.org/manual/nixpkgs/unstable/#chap-reviewing-contributions
-->

36
.github/STALE-BOT.md vendored
View File

@@ -1,36 +0,0 @@
# Stale bot information
- Thanks for your contribution!
- Our stale bot will never close an issue or PR.
- To remove the stale label, just leave a new comment.
- _How to find the right people to ping?_ &rarr; [`git blame`](https://git-scm.com/docs/git-blame) to the rescue! (or GitHub's history and blame buttons.)
- You can always ask for help on [our Discourse Forum](https://discourse.nixos.org/), [our Matrix room](https://matrix.to/#/#nix:nixos.org), or on the [#nixos IRC channel](https://web.libera.chat/#nixos).
## Suggestions for PRs
1. GitHub sometimes doesn't notify people who commented / reviewed a PR previously, when you (force) push commits. If you have addressed the reviews you can [officially ask for a review](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/requesting-a-pull-request-review) from those who commented to you or anyone else.
2. If it is unfinished but you plan to finish it, please mark it as a draft.
3. If you don't expect to work on it any time soon, closing it with a short comment may encourage someone else to pick up your work.
4. To get things rolling again, rebase the PR against the target branch and address valid comments.
5. If you need a review to move forward, ask in [the Discourse thread for PRs that need help](https://discourse.nixos.org/t/prs-in-distress/3604).
6. If all you need is a merge, check the git history to find and [request reviews](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/requesting-a-pull-request-review) from people who usually merge related contributions.
## Suggestions for issues
1. If it is resolved (either for you personally, or in general), please consider closing it.
2. If this might still be an issue, but you are not interested in promoting its resolution, please consider closing it while encouraging others to take over and reopen an issue if they care enough.
3. If you still have interest in resolving it, try to ping somebody who you believe might have an interest in the topic. Consider discussing the problem in [our Discourse Forum](https://discourse.nixos.org/).
4. As with all open source projects, your best option is to submit a Pull Request that addresses this issue. We :heart: this attitude!
**Memorandum on closing issues**
Don't be afraid to close an issue that holds valuable information. Closed issues stay in the system for people to search, read, cross-reference, or even reopen--nothing is lost! Closing obsolete issues is an important way to help maintainers focus their time and effort.
## Useful GitHub search queries
- [Open PRs with any stale-bot interaction](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+commenter%3Aapp%2Fstale+)
- [Open PRs with any stale-bot interaction and `2.status: stale`](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+commenter%3Aapp%2Fstale+label%3A%222.status%3A+stale%22)
- [Open PRs with any stale-bot interaction and NOT `2.status: stale`](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+commenter%3Aapp%2Fstale+-label%3A%222.status%3A+stale%22+)
- [Open Issues with any stale-bot interaction](https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+commenter%3Aapp%2Fstale+)
- [Open Issues with any stale-bot interaction and `2.status: stale`](https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+commenter%3Aapp%2Fstale+label%3A%222.status%3A+stale%22+)
- [Open Issues with any stale-bot interaction and NOT `2.status: stale`](https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+commenter%3Aapp%2Fstale+-label%3A%222.status%3A+stale%22+)

158
.github/labeler.yml vendored
View File

@@ -1,158 +0,0 @@
"6.topic: agda":
- doc/languages-frameworks/agda.section.md
- nixos/tests/agda.nix
- pkgs/build-support/agda/**/*
- pkgs/development/libraries/agda/**/*
- pkgs/top-level/agda-packages.nix
"6.topic: cinnamon":
- pkgs/desktops/cinnamon/**/*
"6.topic: emacs":
- nixos/modules/services/editors/emacs.nix
- nixos/modules/services/editors/emacs.xml
- nixos/tests/emacs-daemon.nix
- pkgs/applications/editors/emacs/elisp-packages/**/*
- pkgs/applications/editors/emacs/**/*
- pkgs/build-support/emacs/**/*
- pkgs/top-level/emacs-packages.nix
"6.topic: erlang":
- doc/languages-frameworks/beam.section.md
- pkgs/development/beam-modules/**/*
- pkgs/development/interpreters/elixir/**/*
- pkgs/development/interpreters/erlang/**/*
- pkgs/development/tools/build-managers/rebar/**/*
- pkgs/development/tools/build-managers/rebar3/**/*
- pkgs/development/tools/erlang/**/*
- pkgs/top-level/beam-packages.nix
"6.topic: fetch":
- pkgs/build-support/fetch*/**/*
"6.topic: GNOME":
- doc/languages-frameworks/gnome.section.md
- nixos/modules/services/desktops/gnome/**/*
- nixos/modules/services/x11/desktop-managers/gnome.nix
- nixos/tests/gnome-xorg.nix
- nixos/tests/gnome.nix
- pkgs/desktops/gnome/**/*
"6.topic: golang":
- doc/languages-frameworks/go.section.md
- pkgs/build-support/go/**/*
- pkgs/development/compilers/go/**/*
"6.topic: haskell":
- doc/languages-frameworks/haskell.section.md
- maintainers/scripts/haskell/**/*
- pkgs/development/compilers/ghc/**/*
- pkgs/development/haskell-modules/**/*
- pkgs/development/tools/haskell/**/*
- pkgs/test/haskell/**/*
- pkgs/top-level/haskell-packages.nix
- pkgs/top-level/release-haskell.nix
"6.topic: kernel":
- pkgs/build-support/kernel/**/*
- pkgs/os-specific/linux/kernel/**/*
"6.topic: lua":
- pkgs/development/interpreters/lua-5/**/*
- pkgs/development/interpreters/luajit/**/*
- pkgs/development/lua-modules/**/*
- pkgs/top-level/lua-packages.nix
"6.topic: nixos":
- nixos/**/*
- pkgs/os-specific/linux/nixos-rebuild/**/*
"6.topic: nim":
- doc/languages-frameworks/nim.section.md
- pkgs/development/compilers/nim/*
- pkgs/development/nim-packages/**/*
- pkgs/top-level/nim-packages.nix
"6.topic: ocaml":
- doc/languages-frameworks/ocaml.section.md
- pkgs/development/compilers/ocaml/**/*
- pkgs/development/compilers/reason/**/*
- pkgs/development/ocaml-modules/**/*
- pkgs/development/tools/ocaml/**/*
- pkgs/top-level/ocaml-packages.nix
"6.topic: pantheon":
- nixos/modules/services/desktops/pantheon/**/*
- nixos/modules/services/x11/desktop-managers/pantheon.nix
- nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix
- nixos/tests/pantheon.nix
- pkgs/desktops/pantheon/**/*
"6.topic: policy discussion":
- .github/**/*
"6.topic: printing":
- nixos/modules/services/printing/cupsd.nix
- pkgs/misc/cups/**/*
"6.topic: python":
- doc/languages-frameworks/python.section.md
- pkgs/development/interpreters/python/**/*
- pkgs/development/python-modules/**/*
- pkgs/top-level/python-packages.nix
"6.topic: qt/kde":
- doc/languages-frameworks/qt.section.md
- nixos/modules/services/x11/desktop-managers/plasma5.nix
- nixos/tests/plasma5.nix
- pkgs/applications/kde/**/*
- pkgs/desktops/plasma-5/**/*
- pkgs/development/libraries/kde-frameworks/**/*
- pkgs/development/libraries/qt-5/**/*
"6.topic: ruby":
- doc/languages-frameworks/ruby.section.md
- pkgs/development/interpreters/ruby/**/*
- pkgs/development/ruby-modules/**/*
"6.topic: rust":
- doc/languages-frameworks/rust.section.md
- pkgs/build-support/rust/**/*
- pkgs/development/compilers/rust/**/*
"6.topic: stdenv":
- pkgs/stdenv/**/*
"6.topic: steam":
- pkgs/games/steam/**/*
"6.topic: systemd":
- pkgs/os-specific/linux/systemd/**/*
- nixos/modules/system/boot/systemd*/**/*
"6.topic: TeX":
- doc/languages-frameworks/texlive.section.md
- pkgs/tools/typesetting/tex/**/*
"6.topic: vim":
- doc/languages-frameworks/vim.section.md
- pkgs/applications/editors/vim/**/*
- pkgs/applications/editors/vim/plugins/**/*
- nixos/modules/programs/neovim.nix
- pkgs/applications/editors/neovim/**/*
"6.topic: xfce":
- nixos/doc/manual/configuration/xfce.xml
- nixos/modules/services/x11/desktop-managers/xfce.nix
- nixos/tests/xfce.nix
- pkgs/desktops/xfce/**/*
"8.has: changelog":
- nixos/doc/manual/release-notes/**/*
"8.has: documentation":
- doc/**/*
- nixos/doc/**/*
"8.has: module (update)":
- nixos/modules/**/*

9
.github/stale.yml vendored
View File

@@ -1,9 +0,0 @@
# Configuration for probot-stale - https://github.com/probot/stale
daysUntilStale: 180
daysUntilClose: false
exemptLabels:
- "1.severity: security"
- "2.status: never-stale"
staleLabel: "2.status: stale"
markComment: false
closeComment: false

View File

@@ -1,41 +0,0 @@
name: Backport
on:
pull_request_target:
types: [closed, labeled]
# WARNING:
# When extending this action, be aware that $GITHUB_TOKEN allows write access to
# the GitHub repository. This means that it should not evaluate user input in a
# way that allows code injection.
permissions:
contents: read
jobs:
backport:
permissions:
contents: write # for zeebe-io/backport-action to create branch
pull-requests: write # for zeebe-io/backport-action to create PR to backport
name: Backport Pull Request
if: github.repository_owner == 'NixOS' && github.event.pull_request.merged == true && (github.event_name != 'labeled' || startsWith('backport', github.event.label.name))
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
# required to find all branches
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Create backport PRs
# should be kept in sync with `version`
uses: zeebe-io/backport-action@v0.0.5
with:
# Config README: https://github.com/zeebe-io/backport-action#backport-action
github_token: ${{ secrets.GITHUB_TOKEN }}
github_workspace: ${{ github.workspace }}
# should be kept in sync with `uses`
version: v0.0.5
pull_description: |-
Bot-based backport to `${target_branch}`, triggered by a label in #${pull_number}.
* [ ] Before merging, ensure that this backport complies with the [Criteria for Backporting](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#criteria-for-backporting-changes).
* Even as a non-commiter, if you find that it does not comply, leave a comment.

View File

@@ -1,29 +0,0 @@
name: Basic evaluation checks
on:
workflow_dispatch
# pull_request:
# branches:
# - master
# - release-**
# push:
# branches:
# - master
# - release-**
permissions:
contents: read
jobs:
tests:
runs-on: ubuntu-latest
# we don't limit this action to only NixOS repo since the checks are cheap and useful developer feedback
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v17
- uses: cachix/cachix-action@v10
with:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
name: nixpkgs-ci
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
# explicit list of supportedSystems is needed until aarch64-darwin becomes part of the trunk jobset
- run: nix-build pkgs/top-level/release.nix -A tarball.nixpkgs-basic-release-checks --arg supportedSystems '[ "aarch64-darwin" "aarch64-linux" "x86_64-linux" "x86_64-darwin" ]'

View File

@@ -1,37 +0,0 @@
name: "Direct Push Warning"
on:
push:
branches:
- master
- release-**
permissions:
contents: read
jobs:
build:
permissions:
contents: write # for peter-evans/commit-comment to comment on commit
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
env:
GITHUB_SHA: ${{ github.sha }}
GITHUB_REPOSITORY: ${{ github.repository }}
steps:
- name: Check if commit is a merge commit
id: ismerge
run: |
ISMERGE=$(curl -H 'Accept: application/vnd.github.groot-preview+json' -H "authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/${{ env.GITHUB_REPOSITORY }}/commits/${{ env.GITHUB_SHA }}/pulls | jq -r '.[] | select(.merge_commit_sha == "${{ env.GITHUB_SHA }}") | any')
echo "::set-output name=ismerge::$ISMERGE"
# github events are eventually consistent, so wait until changes propagate to thier DB
- run: sleep 60
if: steps.ismerge.outputs.ismerge != 'true'
- name: Warn if the commit was a direct push
if: steps.ismerge.outputs.ismerge != 'true'
uses: peter-evans/commit-comment@v2
with:
body: |
@${{ github.actor }}, you pushed a commit directly to master/release branch
instead of going through a Pull Request.
That's highly discouraged beyond the few exceptions listed
on https://github.com/NixOS/nixpkgs/issues/118661

View File

@@ -1,43 +0,0 @@
name: "Checking EditorConfig"
permissions: read-all
on:
# avoids approving first time contributors
pull_request_target:
branches-ignore:
- 'release-**'
jobs:
tests:
runs-on: ubuntu-latest
if: "github.repository_owner == 'NixOS' && !contains(github.event.pull_request.title, '[skip editorconfig]')"
steps:
- name: Get list of changed files from PR
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh api \
repos/NixOS/nixpkgs/pulls/${{github.event.number}}/files --paginate \
| jq '.[] | select(.status != "removed") | .filename' \
> "$HOME/changed_files"
- name: print list of changed files
run: |
cat "$HOME/changed_files"
- uses: actions/checkout@v3
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- uses: cachix/install-nix-action@v17
with:
# nixpkgs commit is pinned so that it doesn't break
# editorconfig-checker 2.4.0
nix_path: nixpkgs=https://github.com/NixOS/nixpkgs/archive/c473cc8714710179df205b153f4e9fa007107ff9.tar.gz
- name: install editorconfig-checker
run: nix-env -iA editorconfig-checker -f '<nixpkgs>'
- name: Checking EditorConfig
run: |
cat "$HOME/changed_files" | xargs -r editorconfig-checker -disable-indent-size
- if: ${{ failure() }}
run: |
echo "::error :: Hey! It looks like your changes don't follow our editorconfig settings. Read https://editorconfig.org/#download to configure your editor so you never see this error again."

View File

@@ -1,24 +0,0 @@
name: "Label PR"
on:
pull_request_target:
types: [edited, opened, synchronize, reopened]
# WARNING:
# When extending this action, be aware that $GITHUB_TOKEN allows some write
# access to the GitHub API. This means that it should not evaluate user input in
# a way that allows code injection.
permissions:
contents: read
pull-requests: write
jobs:
labels:
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/labeler@v4
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
sync-labels: true

View File

@@ -1,31 +0,0 @@
name: "Build NixOS manual"
permissions: read-all
on:
pull_request_target:
branches:
- master
paths:
- 'nixos/**'
jobs:
nixos:
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/checkout@v3
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- uses: cachix/install-nix-action@v17
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
- uses: cachix/cachix-action@v10
with:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
name: nixpkgs-ci
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- name: Building NixOS manual
run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true nixos/release.nix -A manual.x86_64-linux

View File

@@ -1,31 +0,0 @@
name: "Build Nixpkgs manual"
permissions: read-all
on:
pull_request_target:
branches:
- master
paths:
- 'doc/**'
jobs:
nixpkgs:
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/checkout@v3
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- uses: cachix/install-nix-action@v17
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
- uses: cachix/cachix-action@v10
with:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
name: nixpkgs-ci
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- name: Building Nixpkgs manual
run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true pkgs/top-level/release.nix -A manual

View File

@@ -1,34 +0,0 @@
name: NixOS manual checks
permissions: read-all
on:
pull_request_target:
branches-ignore:
- 'release-**'
paths:
- 'nixos/**/*.xml'
- 'nixos/**/*.md'
jobs:
tests:
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/checkout@v3
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- uses: cachix/install-nix-action@v17
- name: Check DocBook files generated from Markdown are consistent
run: |
nixos/doc/manual/md-to-db.sh
git diff --exit-code || {
echo
echo 'Generated manual files are out of date.'
echo 'Please run'
echo
echo ' nixos/doc/manual/md-to-db.sh'
echo
exit 1
}

View File

@@ -1,26 +0,0 @@
name: "No channel PR"
on:
pull_request:
branches:
- 'nixos-**'
- 'nixpkgs-**'
permissions:
contents: read
jobs:
fail:
permissions:
contents: none
name: "This PR is is targeting a channel branch"
runs-on: ubuntu-latest
steps:
- run: |
cat <<EOF
The nixos-* and nixpkgs-* branches are pushed to by the channel
release script and should not be merged into directly.
Please target the equivalent release-* branch or master instead.
EOF
exit 1

View File

@@ -1,26 +0,0 @@
name: "clear pending status"
on:
check_suite:
types: [ completed ]
permissions:
contents: read
jobs:
action:
permissions:
statuses: write
runs-on: ubuntu-latest
steps:
- name: clear pending status
if: github.repository_owner == 'NixOS' && github.event.check_suite.app.name == 'OfBorg'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
curl \
-X POST \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: token $GITHUB_TOKEN" \
-d '{"state": "success", "target_url": " ", "description": " ", "context": "Wait for ofborg"}' \
"https://api.github.com/repos/NixOS/nixpkgs/statuses/${{ github.event.check_suite.head_sha }}"

View File

@@ -1,30 +0,0 @@
name: "set pending status"
on:
pull_request_target:
# WARNING:
# When extending this action, be aware that $GITHUB_TOKEN allows write access to
# the GitHub repository. This means that it should not evaluate user input in a
# way that allows code injection.
permissions:
contents: read
jobs:
action:
permissions:
statuses: write
runs-on: ubuntu-latest
steps:
- name: set pending status
if: github.repository_owner == 'NixOS'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
curl \
-X POST \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: token $GITHUB_TOKEN" \
-d '{"state": "pending", "target_url": " ", "description": "This pending status will be cleared when ofborg starts eval.", "context": "Wait for ofborg"}' \
"https://api.github.com/repos/NixOS/nixpkgs/statuses/${{ github.event.pull_request.head.sha }}"

View File

@@ -1,59 +0,0 @@
# This action periodically merges base branches into staging branches.
# This is done to
# * prevent conflicts or rather resolve them early
# * make all potential breakage happen on the staging branch
# * and make sure that all major rebuilds happen before the staging
# branch gets merged back into its base branch.
name: "Periodic Merges (24h)"
on:
schedule:
# * is a special character in YAML so you have to quote this string
# Merge every 24 hours
- cron: '0 0 * * *'
permissions:
contents: read
jobs:
periodic-merge:
permissions:
contents: write # for devmasx/merge-branch to merge branches
issues: write # for peter-evans/create-or-update-comment to create or update comment
if: github.repository_owner == 'NixOS'
runs-on: ubuntu-latest
strategy:
# don't fail fast, so that all pairs are tried
fail-fast: false
# certain branches need to be merged in order, like master->staging-next->staging
# and disabling parallelism ensures the order of the pairs below.
max-parallel: 1
matrix:
pairs:
- from: master
into: haskell-updates
- from: release-22.05
into: staging-next-22.05
- from: staging-next-22.05
into: staging-22.05
name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
steps:
- uses: actions/checkout@v3
- name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
uses: devmasx/merge-branch@1.4.0
with:
type: now
from_branch: ${{ matrix.pairs.from }}
target_branch: ${{ matrix.pairs.into }}
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Comment on failure
uses: peter-evans/create-or-update-comment@v2
if: ${{ failure() }}
with:
issue-number: 105153
body: |
Periodic merge from `${{ matrix.pairs.from }}` into `${{ matrix.pairs.into }}` has [failed](https://github.com/NixOS/nixpkgs/actions/runs/${{ github.run_id }}).

View File

@@ -1,57 +0,0 @@
# This action periodically merges base branches into staging branches.
# This is done to
# * prevent conflicts or rather resolve them early
# * make all potential breakage happen on the staging branch
# * and make sure that all major rebuilds happen before the staging
# branch gets merged back into its base branch.
name: "Periodic Merges (6h)"
on:
schedule:
# * is a special character in YAML so you have to quote this string
# Merge every 6 hours
- cron: '0 */6 * * *'
permissions:
contents: read
jobs:
periodic-merge:
permissions:
contents: write # for devmasx/merge-branch to merge branches
issues: write # for peter-evans/create-or-update-comment to create or update comment
if: github.repository_owner == 'NixOS'
runs-on: ubuntu-latest
strategy:
# don't fail fast, so that all pairs are tried
fail-fast: false
# certain branches need to be merged in order, like master->staging-next->staging
# and disabling parallelism ensures the order of the pairs below.
max-parallel: 1
matrix:
pairs:
- from: master
into: staging-next
- from: staging-next
into: staging
name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
steps:
- uses: actions/checkout@v3
- name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
uses: devmasx/merge-branch@1.4.0
with:
type: now
from_branch: ${{ matrix.pairs.from }}
target_branch: ${{ matrix.pairs.into }}
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Comment on failure
uses: peter-evans/create-or-update-comment@v2
if: ${{ failure() }}
with:
issue-number: 105153
body: |
Periodic merge from `${{ matrix.pairs.from }}` into `${{ matrix.pairs.into }}` has [failed](https://github.com/NixOS/nixpkgs/actions/runs/${{ github.run_id }}).

View File

@@ -1,55 +0,0 @@
name: "Update terraform-providers"
on:
schedule:
- cron: "14 3 * * 0"
workflow_dispatch:
permissions:
contents: read
jobs:
tf-providers:
permissions:
contents: write # for peter-evans/create-pull-request to create branch
issues: write # for peter-evans/create-or-update-comment to create or update comment
pull-requests: write # for peter-evans/create-pull-request to create a PR
if: github.repository_owner == 'NixOS' && github.ref == 'refs/heads/master' # ensure workflow_dispatch only runs on master
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v17
- name: setup
id: setup
run: |
echo ::set-output name=title::"terraform-providers: update $(date -u +"%Y-%m-%d")"
- name: update terraform-providers
run: |
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config user.name "github-actions[bot]"
pushd pkgs/applications/networking/cluster/terraform-providers
./update-all-providers --no-build
git commit -m "${{ steps.setup.outputs.title }}" providers.json
popd
- name: create PR
uses: peter-evans/create-pull-request@v4
with:
body: |
Automatic update by [update-terraform-providers](https://github.com/NixOS/nixpkgs/blob/master/.github/workflows/update-terraform-providers.yml) action.
Check that all providers build with:
```
@ofborg build terraform.full
```
branch: terraform-providers-update
delete-branch: false
labels: "2.status: work-in-progress"
title: ${{ steps.setup.outputs.title }}
token: ${{ secrets.GITHUB_TOKEN }}
- name: comment on failure
uses: peter-evans/create-or-update-comment@v2
if: ${{ failure() }}
with:
issue-number: 153416
body: |
Automatic update of terraform providers [failed](https://github.com/NixOS/nixpkgs/actions/runs/${{ github.run_id }}).

17
.gitignore vendored
View File

@@ -2,28 +2,15 @@
,*
.*.swp
.*.swo
.idea/
.vscode/
outputs/
result
result-*
/doc/NEWS.html
/doc/NEWS.txt
/doc/manual.html
/doc/manual.pdf
/result
/source/
.version-suffix
.DS_Store
.mypy_cache
__pycache__
/pkgs/development/libraries/qt-5/*/tmp/
/pkgs/desktops/kde-5/*/tmp/
/pkgs/development/mobile/androidenv/xml/*
# generated by pkgs/common-updater/update-script.nix
update-git-commits.txt
# JetBrains IDEA module declaration file
/nixpkgs.iml
/pkgs/desktops/kde-5/*/tmp/

View File

@@ -1 +1 @@
22.11
18.03

View File

@@ -1,134 +0,0 @@
# How to contribute
Note: contributing implies licensing those contributions
under the terms of [COPYING](COPYING), which is an MIT-like license.
## Opening issues
* Make sure you have a [GitHub account](https://github.com/signup/free)
* Make sure there is no open issue on the topic
* [Submit a new issue](https://github.com/NixOS/nixpkgs/issues/new/choose) by choosing the kind of topic and fill out the template
## Submitting changes
Read the ["Submitting changes"](https://nixos.org/nixpkgs/manual/#chap-submitting-changes) section of the nixpkgs manual. It explains how to write, test, and iterate on your change, and which branch to base your pull request against.
Below is a short excerpt of some points in there:
* Format the commit messages in the following way:
```
(pkg-name | nixos/<module>): (from -> to | init at version | refactor | etc)
(Motivation for change. Link to release notes. Additional information.)
```
For consistency, there should not be a period at the end of the commit message's summary line (the first line of the commit message).
Examples:
* nginx: init at 2.0.1
* firefox: 54.0.1 -> 55.0
https://www.mozilla.org/en-US/firefox/55.0/releasenotes/
* nixos/hydra: add bazBaz option
Dual baz behavior is needed to do foo.
* nixos/nginx: refactor config generation
The old config generation system used impure shell scripts and could break in specific circumstances (see #1234).
* `meta.description` should:
* Be capitalized.
* Not start with the package name.
* Not have a period at the end.
* `meta.license` must be set and fit the upstream license.
* If there is no upstream license, `meta.license` should default to `lib.licenses.unfree`.
* `meta.maintainers` must be set.
See the nixpkgs manual for more details on [standard meta-attributes](https://nixos.org/nixpkgs/manual/#sec-standard-meta-attributes).
## Writing good commit messages
In addition to writing properly formatted commit messages, it's important to include relevant information so other developers can later understand *why* a change was made. While this information usually can be found by digging code, mailing list/Discourse archives, pull request discussions or upstream changes, it may require a lot of work.
For package version upgrades and such a one-line commit message is usually sufficient.
## Rebasing between branches (i.e. from master to staging)
From time to time, changes between branches must be rebased, for example, if the
number of new rebuilds they would cause is too large for the target branch. When
rebasing, care must be taken to include only the intended changes, otherwise
many CODEOWNERS will be inadvertently requested for review. To achieve this,
rebasing should not be performed directly on the target branch, but on the merge
base between the current and target branch.
In the following example, we see a rebase from `master` onto the merge base
between `master` and `staging`, so that a change can eventually be retargeted to
`staging`. The example uses `upstream` as the remote for `NixOS/nixpkgs.git`
while the `origin` remote is used for the remote you are pushing to.
```console
# Find the common base between two branches
common=$(git merge-base upstream/master upstream/staging)
# Find the common base between your feature branch and master
commits=$(git merge-base $(git branch --show-current) upstream/master)
# Rebase all commits onto the common base
git rebase --onto=$common $commits
# Force push your changes
git push origin $(git branch --show-current) --force-with-lease
```
Then change the base branch in the GitHub PR using the *Edit* button in the upper
right corner, and switch from `master` to `staging`. After the PR has been
retargeted it might be necessary to do a final rebase onto the target branch, to
resolve any outstanding merge conflicts.
```console
# Rebase onto target branch
git rebase upstream/staging
# Review and fixup possible conflicts
git status
# Force push your changes
git push origin $(git branch --show-current) --force-with-lease
```
## Backporting changes
Follow these steps to backport a change into a release branch in compliance with the [commit policy](https://nixos.org/nixpkgs/manual/#submitting-changes-stable-release-branches).
You can add a label such as `backport release-22.05` to a PR, so that merging it will
automatically create a backport (via [a GitHub Action](.github/workflows/backport.yml)).
This also works for PR's that have already been merged, and might take a couple of minutes to trigger.
You can also create the backport manually:
1. Take note of the commits in which the change was introduced into `master` branch.
2. Check out the target _release branch_, e.g. `release-22.05`. Do not use a _channel branch_ like `nixos-22.05` or `nixpkgs-22.05-darwin`.
3. Create a branch for your change, e.g. `git checkout -b backport`.
4. When the reason to backport is not obvious from the original commit message, use `git cherry-pick -xe <original commit>` and add a reason. Otherwise use `git cherry-pick -x <original commit>`. That's fine for minor version updates that only include security and bug fixes, commits that fixes an otherwise broken package or similar. Please also ensure the commits exists on the master branch; in the case of squashed or rebased merges, the commit hash will change and the new commits can be found in the merge message at the bottom of the master pull request.
5. Push to GitHub and open a backport pull request. Make sure to select the release branch (e.g. `release-22.05`) as the target branch of the pull request, and link to the pull request in which the original change was comitted to `master`. The pull request title should be the commit title with the release version as prefix, e.g. `[22.05]`.
6. When the backport pull request is merged and you have the necessary privileges you can also replace the label `9.needs: port to stable` with `8.has: port to stable` on the original pull request. This way maintainers can keep track of missing backports easier.
## Criteria for Backporting changes
Anything that does not cause user or downstream dependency regressions can be backported. This includes:
- New Packages / Modules
- Security / Patch updates
- Version updates which include new functionality (but no breaking changes)
- Services which require a client to be up-to-date regardless. (E.g. `spotify`, `steam`, or `discord`)
- Security critical applications (E.g. `firefox`)
## Generating 22.11 Release Notes
Documentation in nixpkgs is transitioning to a markdown-centric workflow. Release notes now require a translation step to convert from markdown to a compatible docbook document.
Steps for updating 22.11 Release notes:
1. Edit `nixos/doc/manual/release-notes/rl-2211.section.md` with the desired changes
2. Run `./nixos/doc/manual/md-to-db.sh` to render `nixos/doc/manual/from_md/release-notes/rl-2211.section.xml`
3. Include changes to `rl-2211.section.md` and `rl-2211.section.xml` in the same commit.
## Reviewing contributions
See the nixpkgs manual for more details on how to [Review contributions](https://nixos.org/nixpkgs/manual/#chap-reviewing-contributions).

11
COPYING
View File

@@ -1,4 +1,4 @@
Copyright (c) 2003-2022 Eelco Dolstra and the Nixpkgs/NixOS contributors
Copyright (c) 2003-2018 Eelco Dolstra and the Nixpkgs/NixOS contributors
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
@@ -18,3 +18,12 @@ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
======================================================================
Note: the license above does not apply to the packages built by the
Nix Packages collection, merely to the package descriptions (i.e., Nix
expressions, build scripts, etc.). It also might not apply to patches
included in Nixpkgs, which may be derivative works of the packages to
which they apply. The aforementioned artifacts are all covered by the
licenses of the respective packages.

136
README.md
View File

@@ -1,119 +1,41 @@
<p align="center">
<a href="https://nixos.org#gh-light-mode-only">
<img src="https://raw.githubusercontent.com/NixOS/nixos-homepage/master/logo/nixos-hires.png" width="500px" alt="NixOS logo"/>
</a>
<a href="https://nixos.org#gh-dark-mode-only">
<img src="https://raw.githubusercontent.com/NixOS/nixos-artwork/master/logo/nixos-white.png" width="500px" alt="NixOS logo"/>
</a>
</p>
[<img src="https://nixos.org/logo/nixos-hires.png" width="500px" alt="logo" />](https://nixos.org/nixos)
<p align="center">
<a href="https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md"><img src="https://img.shields.io/github/contributors-anon/NixOS/nixpkgs" alt="Contributors badge" /></a>
<a href="https://opencollective.com/nixos"><img src="https://opencollective.com/nixos/tiers/supporter/badge.svg?label=supporters&color=brightgreen" alt="Open Collective supporters" /></a>
</p>
[![Code Triagers Badge](https://www.codetriage.com/nixos/nixpkgs/badges/users.svg)](https://www.codetriage.com/nixos/nixpkgs)
[Nixpkgs](https://github.com/nixos/nixpkgs) is a collection of over
80,000 software packages that can be installed with the
[Nix](https://nixos.org/nix/) package manager. It also implements
[NixOS](https://nixos.org/nixos/), a purely-functional Linux distribution.
Nixpkgs is a collection of packages for the [Nix](https://nixos.org/nix/) package
manager. It is periodically built and tested by the [Hydra](https://hydra.nixos.org/)
build daemon as so-called channels. To get channel information via git, add
[nixpkgs-channels](https://github.com/NixOS/nixpkgs-channels.git) as a remote:
# Manuals
```
% git remote add channels git://github.com/NixOS/nixpkgs-channels.git
```
* [NixOS Manual](https://nixos.org/nixos/manual) - how to install, configure, and maintain a purely-functional Linux distribution
* [Nixpkgs Manual](https://nixos.org/nixpkgs/manual/) - contributing to Nixpkgs and using programming-language-specific Nix expressions
* [Nix Package Manager Manual](https://nixos.org/nix/manual) - how to write Nix expressions (programs), and how to use Nix command line tools
For stability and maximum binary package support, it is recommended to maintain
custom changes on top of one of the channels, e.g. `nixos-17.09` for the latest
release and `nixos-unstable` for the latest successful build of master:
# Community
```
% git remote update channels
% git rebase channels/nixos-17.09
```
* [Discourse Forum](https://discourse.nixos.org/)
* [Matrix Chat](https://matrix.to/#/#community:nixos.org)
* [NixOS Weekly](https://weekly.nixos.org/)
* [Community-maintained wiki](https://nixos.wiki/)
* [Community-maintained list of ways to get in touch](https://nixos.wiki/wiki/Get_In_Touch#Chat) (Discord, Telegram, IRC, etc.)
For pull-requests, please rebase onto nixpkgs `master`.
# Other Project Repositories
The sources of all official Nix-related projects are in the [NixOS
organization on GitHub](https://github.com/NixOS/). Here are some of
the main ones:
* [Nix](https://github.com/NixOS/nix) - the purely functional package manager
* [NixOps](https://github.com/NixOS/nixops) - the tool to remotely deploy NixOS machines
* [nixos-hardware](https://github.com/NixOS/nixos-hardware) - NixOS profiles to optimize settings for different hardware
* [Nix RFCs](https://github.com/NixOS/rfcs) - the formal process for making substantial changes to the community
* [NixOS homepage](https://github.com/NixOS/nixos-homepage) - the [NixOS.org](https://nixos.org) website
* [hydra](https://github.com/NixOS/hydra) - our continuous integration system
* [NixOS Artwork](https://github.com/NixOS/nixos-artwork) - NixOS artwork
# Continuous Integration and Distribution
Nixpkgs and NixOS are built and tested by our continuous integration
system, [Hydra](https://hydra.nixos.org/).
[NixOS](https://nixos.org/nixos/) Linux distribution source code is located inside
`nixos/` folder.
* [NixOS installation instructions](https://nixos.org/nixos/manual/#ch-installation)
* [Documentation (Nix Expression Language chapter)](https://nixos.org/nix/manual/#ch-expression-language)
* [Manual (How to write packages for Nix)](https://nixos.org/nixpkgs/manual/)
* [Manual (NixOS)](https://nixos.org/nixos/manual/)
* [Community maintained wiki](https://nixos.wiki/)
* [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
* [Continuous package builds for the NixOS 22.05 release](https://hydra.nixos.org/jobset/nixos/release-22.05)
* [Continuous package builds for 17.09 release](https://hydra.nixos.org/jobset/nixos/release-17.09)
* [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)
* [Tests for the NixOS 22.05 release](https://hydra.nixos.org/job/nixos/release-22.05/tested#tabs-constituents)
* [Tests for 17.09 release](https://hydra.nixos.org/job/nixos/release-17.09/tested#tabs-constituents)
Artifacts successfully built with Hydra are published to cache at
https://cache.nixos.org/. When successful build and test criteria are
met, the Nixpkgs expressions are distributed via [Nix
channels](https://nixos.org/manual/nix/stable/package-management/channels.html).
Communication:
# Contributing
Nixpkgs is among the most active projects on GitHub. While thousands
of open issues and pull requests might seem a lot at first, it helps
consider it in the context of the scope of the project. Nixpkgs
describes how to build tens of thousands of pieces of software and implements a
Linux distribution. The [GitHub Insights](https://github.com/NixOS/nixpkgs/pulse)
page gives a sense of the project activity.
Community contributions are always welcome through GitHub Issues and
Pull Requests. When pull requests are made, our tooling automation bot,
[OfBorg](https://github.com/NixOS/ofborg) will perform various checks
to help ensure expression quality.
The *Nixpkgs maintainers* are people who have assigned themselves to
maintain specific individual packages. We encourage people who care
about a package to assign themselves as a maintainer. When a pull
request is made against a package, OfBorg will notify the appropriate
maintainer(s). The *Nixpkgs committers* are people who have been given
permission to merge.
Most contributions are based on and merged into these branches:
* `master` is the main branch where all small contributions go
* `staging` is branched from master, changes that have a big impact on
Hydra builds go to this branch
* `staging-next` is branched from staging and only fixes to stabilize
and security fixes with a big impact on Hydra builds should be
contributed to this branch. This branch is merged into master when
deemed of sufficiently high quality
For more information about contributing to the project, please visit
the [contributing page](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
# Donations
The infrastructure for NixOS and related projects is maintained by a
nonprofit organization, the [NixOS
Foundation](https://nixos.org/nixos/foundation.html). To ensure the
continuity and expansion of the NixOS infrastructure, we are looking
for donations to our organization.
You can donate to the NixOS foundation through [SEPA bank
transfers](https://nixos.org/donate.html) or by using Open Collective:
<a href="https://opencollective.com/nixos#support"><img src="https://opencollective.com/nixos/tiers/supporter.svg?width=890" /></a>
# License
Nixpkgs is licensed under the [MIT License](COPYING).
Note: MIT license does not apply to the packages built by Nixpkgs,
merely to the files in this repository (the Nix expressions, build
scripts, NixOS modules, etc.). It also might not apply to patches
included in Nixpkgs, which may be derivative works of the packages to
which they apply. The aforementioned artifacts are all covered by the
licenses of the respective packages.
* [Mailing list](https://groups.google.com/forum/#!forum/nix-devel)
* [IRC - #nixos on freenode.net](irc://irc.freenode.net/#nixos)

View File

@@ -6,21 +6,12 @@ if ! builtins ? nixVersion || builtins.compareVersions requiredVersion builtins.
This version of Nixpkgs requires Nix >= ${requiredVersion}, please upgrade:
- If you are running NixOS, `nixos-rebuild' can be used to upgrade your system.
- Alternatively, with Nix > 2.0 `nix upgrade-nix' can be used to imperatively
upgrade Nix. You may use `nix-env --version' to check which version you have.
- If you are running NixOS, use `nixos-rebuild' to upgrade your system.
- If you installed Nix using the install script (https://nixos.org/nix/install),
it is safe to upgrade by running it again:
curl -L https://nixos.org/nix/install | sh
For more information, please see the NixOS release notes at
https://nixos.org/nixos/manual or locally at
${toString ./nixos/doc/manual/release-notes}.
If you need further help, see https://nixos.org/nixos/support.html
curl https://nixos.org/nix/install | sh
''
else

6
doc/.gitignore vendored
View File

@@ -1,8 +1,6 @@
*.chapter.xml
*.section.xml
.version
functions/library/generated
functions/library/locations.xml
highlightjs
manual-full.xml
out
manual-full.xml
highlightjs

View File

@@ -1,116 +1,96 @@
MD_TARGETS=$(addsuffix .xml, $(basename $(shell find . -type f -regex '.*\.md$$' -not -name README.md)))
PANDOC ?= pandoc
pandoc_media_dir = media
# NOTE: Keep in sync with NixOS manual (/nixos/doc/manual/md-to-db.sh) and conversion script (/maintainers/scripts/db-to-md.sh).
# TODO: Remove raw-attribute when we can get rid of DocBook altogether.
pandoc_commonmark_enabled_extensions = +attributes+fenced_divs+footnotes+bracketed_spans+definition_lists+pipe_tables+raw_attribute
# Not needed:
# - docbook-reader/citerefentry-to-rst-role.lua (only relevant for DocBook → MarkDown/rST/MyST)
pandoc_flags = --extract-media=$(pandoc_media_dir) \
--lua-filter=$(PANDOC_LUA_FILTERS_DIR)/diagram-generator.lua \
--lua-filter=build-aux/pandoc-filters/myst-reader/roles.lua \
--lua-filter=build-aux/pandoc-filters/link-unix-man-references.lua \
--lua-filter=build-aux/pandoc-filters/docbook-writer/rst-roles.lua \
--lua-filter=build-aux/pandoc-filters/docbook-writer/labelless-link-is-xref.lua \
-f commonmark$(pandoc_commonmark_enabled_extensions)+smart
MD_TARGETS=$(addsuffix .xml, $(basename $(wildcard ./*.md ./**/*.md)))
.PHONY: all
all: validate format out/html/index.html out/epub/manual.epub
all: validate out/html/index.html out/epub/manual.epub
.PHONY: debug
debug:
nix-shell --run "xmloscopy --docbook5 ./manual.xml ./manual-full.xml"
.PHONY: format
format: doc-support/result
find . -iname '*.xml' -type f | while read f; do \
echo $$f ;\
xmlformat --config-file "doc-support/result/xmlformat.conf" -i $$f ;\
done
.PHONY: fix-misc-xml
fix-misc-xml:
find . -iname '*.xml' -type f \
-exec ../nixos/doc/varlistentry-fixer.rb {} ';'
.PHONY: clean
clean:
rm -f ${MD_TARGETS} doc-support/result .version manual-full.xml functions/library/locations.xml functions/library/generated
rm -rf ./out/ ./highlightjs ./media
rm -f ${MD_TARGETS} .version manual-full.xml
rm -rf ./out/ ./highlightjs
.PHONY: validate
validate: manual-full.xml doc-support/result
jing doc-support/result/docbook.rng manual-full.xml
validate: manual-full.xml
jing "$$RNG" manual-full.xml
out/html/index.html: doc-support/result manual-full.xml style.css highlightjs
out/html/index.html: manual-full.xml style.css highlightjs
mkdir -p out/html
xsltproc \
xsltproc ${xsltFlags} \
--nonet --xinclude \
--output $@ \
doc-support/result/xhtml.xsl \
"$$XSL/docbook/xhtml/docbook.xsl" \
./manual-full.xml
mkdir -p out/html/highlightjs/
echo "document.onreadystatechange = function () { \
var listings = document.querySelectorAll('.programlisting, .screen'); \
for (i = 0; i < listings.length; ++i) { \
hljs.highlightBlock(listings[i]); \
} \
} " > out/html/highlightjs/loader.js
cp -r highlightjs out/html/
cp -r $(pandoc_media_dir) out/html/
cp ./overrides.css out/html/
cp ./style.css out/html/style.css
mkdir -p out/html/images/callouts
cp doc-support/result/xsl/docbook/images/callouts/*.svg out/html/images/callouts/
cp "$$XSL/docbook/images/callouts/"*.svg out/html/images/callouts/
chmod u+w -R out/html/
out/epub/manual.epub: manual-full.xml
mkdir -p out/epub/scratch
xsltproc --nonet \
xsltproc ${xsltFlags} --nonet \
--output out/epub/scratch/ \
doc-support/result/epub.xsl \
"$$XSL/docbook/epub/docbook.xsl" \
./manual-full.xml
cp -r $(pandoc_media_dir) out/epub/scratch/OEBPS
cp ./overrides.css out/epub/scratch/OEBPS
cp ./style.css out/epub/scratch/OEBPS
mkdir -p out/epub/scratch/OEBPS/images/callouts/
cp doc-support/result/xsl/docbook/images/callouts/*.svg out/epub/scratch/OEBPS/images/callouts/
cp "$$XSL/docbook/images/callouts/"*.svg out/epub/scratch/OEBPS/images/callouts/
echo "application/epub+zip" > mimetype
zip -0Xq "out/epub/manual.epub" mimetype
rm mimetype
cd "out/epub/scratch/" && zip -Xr9D "../manual.epub" *
rm -rf "out/epub/scratch/"
highlightjs: doc-support/result
highlightjs:
mkdir -p highlightjs
cp -r doc-support/result/highlightjs/highlight.pack.js highlightjs/
cp -r doc-support/result/highlightjs/LICENSE highlightjs/
cp -r doc-support/result/highlightjs/mono-blue.css highlightjs/
cp -r doc-support/result/highlightjs/loader.js highlightjs/
cp -r "$$HIGHLIGHTJS/highlight.pack.js" highlightjs/
cp -r "$$HIGHLIGHTJS/LICENSE" highlightjs/
cp -r "$$HIGHLIGHTJS/mono-blue.css" highlightjs/
manual-full.xml: ${MD_TARGETS} .version functions/library/locations.xml functions/library/generated *.xml **/*.xml **/**/*.xml
manual-full.xml: ${MD_TARGETS} .version *.xml
xmllint --nonet --xinclude --noxincludenode manual.xml --output manual-full.xml
.version: doc-support/result
ln -rfs ./doc-support/result/version .version
doc-support/result: doc-support/default.nix
(cd doc-support; nix-build)
functions/library/locations.xml: doc-support/result
ln -rfs ./doc-support/result/function-locations.xml functions/library/locations.xml
functions/library/generated: doc-support/result
ln -rfs ./doc-support/result/function-docs functions/library/generated
.version:
nix-instantiate --eval \
-E '(import ../lib).nixpkgsVersion' > .version
%.section.xml: %.section.md
$(PANDOC) $^ -t docbook \
$(pandoc_flags) \
-o $@
pandoc $^ -w docbook+smart \
-f markdown+smart \
| sed -e 's|<ulink url=|<link xlink:href=|' \
-e 's|</ulink>|</link>|' \
-e 's|<sect. id=|<section xml:id=|' \
-e 's|</sect[0-9]>|</section>|' \
-e '1s| id=| xml:id=|' \
-e '1s|\(<[^ ]* \)|\1xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" |' \
| cat > $@
%.chapter.xml: %.chapter.md
$(PANDOC) $^ -t docbook \
pandoc $^ -w docbook+smart \
--top-level-division=chapter \
$(pandoc_flags) \
-o $@
-f markdown+smart \
| sed -e 's|<ulink url=|<link xlink:href=|' \
-e 's|</ulink>|</link>|' \
-e 's|<sect. id=|<section xml:id=|' \
-e 's|</sect[0-9]>|</section>|' \
-e '1s| id=| xml:id=|' \
-e '1s|\(<[^ ]* \)|\1|' \
| cat > $@

View File

@@ -1,12 +0,0 @@
# Nixpkgs/doc
This directory houses the sources files for the Nixpkgs manual.
You can find the [rendered documentation for Nixpkgs `unstable` on nixos.org](https://nixos.org/manual/nixpkgs/unstable/).
[Docs for Nixpkgs stable](https://nixos.org/manual/nixpkgs/stable/) are also available.
If you want to contribute to the documentation, [here's how to do it](https://nixos.org/manual/nixpkgs/unstable/#chap-contributing).
If you're only getting started with Nix, go to [nixos.org/learn](https://nixos.org/learn).

View File

@@ -1,23 +0,0 @@
--[[
Converts Code AST nodes produced by pandocs DocBook reader
from citerefentry elements into AST for corresponding role
for reStructuredText.
We use subset of MyST syntax (CommonMark with features from rST)
so lets use the rST AST for rST features.
Reference: https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-manpage
]]
function Code(elem)
elem.classes = elem.classes:map(function (x)
if x == 'citerefentry' then
elem.attributes['role'] = 'manpage'
return 'interpreted-text'
else
return x
end
end)
return elem
end

View File

@@ -1,34 +0,0 @@
--[[
Converts Link AST nodes with empty label to DocBook xref elements.
This is a temporary script to be able use cross-references conveniently
using syntax taken from MyST, while we still use docbook-xsl
for generating the documentation.
Reference: https://myst-parser.readthedocs.io/en/latest/using/syntax.html#targets-and-cross-referencing
]]
local function starts_with(start, str)
return str:sub(1, #start) == start
end
local function escape_xml_arg(arg)
amps = arg:gsub('&', '&amp;')
amps_quotes = amps:gsub('"', '&quot;')
amps_quotes_lt = amps_quotes:gsub('<', '&lt;')
return amps_quotes_lt
end
function Link(elem)
has_no_content = #elem.content == 0
targets_anchor = starts_with('#', elem.target)
has_no_attributes = elem.title == '' and elem.identifier == '' and #elem.classes == 0 and #elem.attributes == 0
if has_no_content and targets_anchor and has_no_attributes then
-- xref expects idref without the pound-sign
target_without_hash = elem.target:sub(2, #elem.target)
return pandoc.RawInline('docbook', '<xref linkend="' .. escape_xml_arg(target_without_hash) .. '" />')
end
end

View File

@@ -1,40 +0,0 @@
--[[
Converts AST for reStructuredText roles into corresponding
DocBook elements.
Currently, only a subset of roles is supported.
Reference:
List of roles:
https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html
manpage:
https://tdg.docbook.org/tdg/5.1/citerefentry.html
file:
https://tdg.docbook.org/tdg/5.1/filename.html
]]
function Code(elem)
if elem.classes:includes('interpreted-text') then
local tag = nil
local content = elem.text
if elem.attributes['role'] == 'manpage' then
tag = 'citerefentry'
local title, volnum = content:match('^(.+)%((%w+)%)$')
if title == nil then
-- No volnum in parentheses.
title = content
end
content = '<refentrytitle>' .. title .. '</refentrytitle>' .. (volnum ~= nil and ('<manvolnum>' .. volnum .. '</manvolnum>') or '')
elseif elem.attributes['role'] == 'file' then
tag = 'filename'
elseif elem.attributes['role'] == 'command' then
tag = 'command'
elseif elem.attributes['role'] == 'option' then
tag = 'option'
end
if tag ~= nil then
return pandoc.RawInline('docbook', '<' .. tag .. '>' .. content .. '</' .. tag .. '>')
end
end
end

View File

@@ -1,17 +0,0 @@
--[[
Turns a manpage reference into a link, when a mapping is defined below.
]]
local man_urls = {
["tmpfiles.d(5)"] = "https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html",
["nix.conf(5)"] = "https://nixos.org/manual/nix/stable/#sec-conf-file",
["systemd.time(7)"] = "https://www.freedesktop.org/software/systemd/man/systemd.time.html",
["systemd.timer(5)"] = "https://www.freedesktop.org/software/systemd/man/systemd.timer.html",
}
function Code(elem)
local is_man_role = elem.classes:includes('interpreted-text') and elem.attributes['role'] == 'manpage'
if is_man_role and man_urls[elem.text] ~= nil then
return pandoc.Link(elem, man_urls[elem.text])
end
end

View File

@@ -1,29 +0,0 @@
--[[
Replaces Str AST nodes containing {role}, followed by a Code node
by a Code node with attrs that would be produced by rST reader
from the role syntax.
This is to emulate MyST syntax in Pandoc.
(MyST is a CommonMark flavour with rST features mixed in.)
Reference: https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#roles-an-in-line-extension-point
]]
function Inlines(inlines)
for i = #inlines-1,1,-1 do
local first = inlines[i]
local second = inlines[i+1]
local correct_tags = first.tag == 'Str' and second.tag == 'Code'
if correct_tags then
-- docutils supports alphanumeric strings separated by [-._:]
-- We are slightly more liberal for simplicity.
local role = first.text:match('^{([-._+:%w]+)}$')
if role ~= nil then
inlines:remove(i)
second.attributes['role'] = role
second.classes:insert('interpreted-text')
end
end
end
return inlines
end

View File

@@ -1,25 +0,0 @@
--[[
Replaces Code nodes with attrs that would be produced by rST reader
from the role syntax by a Str AST node containing {role}, followed by a Code node.
This is to emulate MyST syntax in Pandoc.
(MyST is a CommonMark flavour with rST features mixed in.)
Reference: https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#roles-an-in-line-extension-point
]]
function Code(elem)
local role = elem.attributes['role']
if elem.classes:includes('interpreted-text') and role ~= nil then
elem.classes = elem.classes:filter(function (c)
return c ~= 'interpreted-text'
end)
elem.attributes['role'] = nil
return {
pandoc.Str('{' .. role .. '}'),
elem,
}
end
end

View File

@@ -1,165 +0,0 @@
# Fetchers {#chap-pkgs-fetchers}
Building software with Nix often requires downloading source code and other files from the internet.
`nixpkgs` provides *fetchers* for different protocols and services. Fetchers are functions that simplify downloading files.
## Caveats
Fetchers create [fixed output derivations](https://nixos.org/manual/nix/stable/#fixed-output-drvs) from downloaded files.
Nix can reuse the downloaded files via the hash of the resulting derivation.
The fact that the hash belongs to the Nix derivation output and not the file itself can lead to confusion.
For example, consider the following fetcher:
```nix
fetchurl {
url = "http://www.example.org/hello-1.0.tar.gz";
sha256 = "0v6r3wwnsk5pdjr188nip3pjgn1jrn5pc5ajpcfy6had6b3v4dwm";
};
```
A common mistake is to update a fetchers URL, or a version parameter, without updating the hash.
```nix
fetchurl {
url = "http://www.example.org/hello-1.1.tar.gz";
sha256 = "0v6r3wwnsk5pdjr188nip3pjgn1jrn5pc5ajpcfy6had6b3v4dwm";
};
```
**This will reuse the old contents**.
Remember to invalidate the hash argument, in this case by setting the `sha256` attribute to an empty string.
```nix
fetchurl {
url = "http://www.example.org/hello-1.1.tar.gz";
sha256 = "";
};
```
Use the resulting error message to determine the correct hash.
```
error: hash mismatch in fixed-output derivation '/path/to/my.drv':
specified: sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
got: sha256-RApQUm78dswhBLC/rfU9y0u6pSAzHceIJqgmetRD24E=
```
A similar problem arises while testing changes to a fetcher's implementation. If the output of the derivation already exists in the Nix store, test failures can go undetected. The [`invalidateFetcherByDrvHash`](#tester-invalidateFetcherByDrvHash) function helps prevent reusing cached derivations.
## `fetchurl` and `fetchzip` {#fetchurl}
Two basic fetchers are `fetchurl` and `fetchzip`. Both of these have two required arguments, a URL and a hash. The hash is typically `sha256`, although many more hash algorithms are supported. Nixpkgs contributors are currently recommended to use `sha256`. This hash will be used by Nix to identify your source. A typical usage of `fetchurl` is provided below.
```nix
{ stdenv, fetchurl }:
stdenv.mkDerivation {
name = "hello";
src = fetchurl {
url = "http://www.example.org/hello.tar.gz";
sha256 = "1111111111111111111111111111111111111111111111111111";
};
}
```
The main difference between `fetchurl` and `fetchzip` is in how they store the contents. `fetchurl` will store the unaltered contents of the URL within the Nix store. `fetchzip` on the other hand, will decompress the archive for you, making files and directories directly accessible in the future. `fetchzip` can only be used with archives. Despite the name, `fetchzip` is not limited to .zip files and can also be used with any tarball.
## `fetchpatch` {#fetchpatch}
`fetchpatch` works very similarly to `fetchurl` with the same arguments expected. It expects patch files as a source and performs normalization on them before computing the checksum. For example, it will remove comments or other unstable parts that are sometimes added by version control systems and can change over time.
- `relative`: Similar to using `git-diff`'s `--relative` flag, only keep changes inside the specified directory, making paths relative to it.
- `stripLen`: Remove the first `stripLen` components of pathnames in the patch.
- `extraPrefix`: Prefix pathnames by this string.
- `excludes`: Exclude files matching these patterns (applies after the above arguments).
- `includes`: Include only files matching these patterns (applies after the above arguments).
- `revert`: Revert the patch.
Note that because the checksum is computed after applying these effects, using or modifying these arguments will have no effect unless the `sha256` argument is changed as well.
Most other fetchers return a directory rather than a single file.
## `fetchsvn` {#fetchsvn}
Used with Subversion. Expects `url` to a Subversion directory, `rev`, and `sha256`.
## `fetchgit` {#fetchgit}
Used with Git. Expects `url` to a Git repo, `rev`, and `sha256`. `rev` in this case can be full the git commit id (SHA1 hash) or a tag name like `refs/tags/v1.0`.
Additionally, the following optional arguments can be given: `fetchSubmodules = true` makes `fetchgit` also fetch the submodules of a repository. If `deepClone` is set to true, the entire repository is cloned as opposing to just creating a shallow clone. `deepClone = true` also implies `leaveDotGit = true` which means that the `.git` directory of the clone won't be removed after checkout.
If only parts of the repository are needed, `sparseCheckout` can be used. This will prevent git from fetching unnecessary blobs from server, see [git sparse-checkout](https://git-scm.com/docs/git-sparse-checkout) and [git clone --filter](https://git-scm.com/docs/git-clone#Documentation/git-clone.txt---filterltfilter-specgt) for more information:
```nix
{ stdenv, fetchgit }:
stdenv.mkDerivation {
name = "hello";
src = fetchgit {
url = "https://...";
sparseCheckout = ''
path/to/be/included
another/path
'';
sha256 = "0000000000000000000000000000000000000000000000000000";
};
}
```
## `fetchfossil` {#fetchfossil}
Used with Fossil. Expects `url` to a Fossil archive, `rev`, and `sha256`.
## `fetchcvs` {#fetchcvs}
Used with CVS. Expects `cvsRoot`, `tag`, and `sha256`.
## `fetchhg` {#fetchhg}
Used with Mercurial. Expects `url`, `rev`, and `sha256`.
A number of fetcher functions wrap part of `fetchurl` and `fetchzip`. They are mainly convenience functions intended for commonly used destinations of source code in Nixpkgs. These wrapper fetchers are listed below.
## `fetchFromGitea` {#fetchfromgitea}
`fetchFromGitea` expects five arguments. `domain` is the gitea server name. `owner` is a string corresponding to the Gitea user or organization that controls this repository. `repo` corresponds to the name of the software repository. These are located at the top of every Gitea HTML page as `owner`/`repo`. `rev` corresponds to the Git commit hash or tag (e.g `v1.0`) that will be downloaded from Git. Finally, `sha256` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available but `sha256` is currently preferred.
## `fetchFromGitHub` {#fetchfromgithub}
`fetchFromGitHub` expects four arguments. `owner` is a string corresponding to the GitHub user or organization that controls this repository. `repo` corresponds to the name of the software repository. These are located at the top of every GitHub HTML page as `owner`/`repo`. `rev` corresponds to the Git commit hash or tag (e.g `v1.0`) that will be downloaded from Git. Finally, `sha256` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available, but `sha256` is currently preferred.
`fetchFromGitHub` uses `fetchzip` to download the source archive generated by GitHub for the specified revision. If `leaveDotGit`, `deepClone` or `fetchSubmodules` are set to `true`, `fetchFromGitHub` will use `fetchgit` instead. Refer to its section for documentation of these options.
## `fetchFromGitLab` {#fetchfromgitlab}
This is used with GitLab repositories. The arguments expected are very similar to `fetchFromGitHub` above.
## `fetchFromGitiles` {#fetchfromgitiles}
This is used with Gitiles repositories. The arguments expected are similar to `fetchgit`.
## `fetchFromBitbucket` {#fetchfrombitbucket}
This is used with BitBucket repositories. The arguments expected are very similar to fetchFromGitHub above.
## `fetchFromSavannah` {#fetchfromsavannah}
This is used with Savannah repositories. The arguments expected are very similar to `fetchFromGitHub` above.
## `fetchFromRepoOrCz` {#fetchfromrepoorcz}
This is used with repo.or.cz repositories. The arguments expected are very similar to `fetchFromGitHub` above.
## `fetchFromSourcehut` {#fetchfromsourcehut}
This is used with sourcehut repositories. Similar to `fetchFromGitHub` above,
it expects `owner`, `repo`, `rev` and `sha256`, but don't forget the tilde (~)
in front of the username! Expected arguments also include `vc` ("git" (default)
or "hg"), `domain` and `fetchSubmodules`.
If `fetchSubmodules` is `true`, `fetchFromSourcehut` uses `fetchgit`
or `fetchhg` with `fetchSubmodules` or `fetchSubrepos` set to `true`,
respectively. Otherwise, the fetcher uses `fetchzip`.

View File

@@ -1,12 +0,0 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="chap-images">
<title>Images</title>
<para>
This chapter describes tools for creating various types of images.
</para>
<xi:include href="images/appimagetools.section.xml" />
<xi:include href="images/dockertools.section.xml" />
<xi:include href="images/ocitools.section.xml" />
<xi:include href="images/snaptools.section.xml" />
</chapter>

View File

@@ -1,48 +0,0 @@
# pkgs.appimageTools {#sec-pkgs-appimageTools}
`pkgs.appimageTools` is a set of functions for extracting and wrapping [AppImage](https://appimage.org/) files. They are meant to be used if traditional packaging from source is infeasible, or it would take too long. To quickly run an AppImage file, `pkgs.appimage-run` can be used as well.
::: {.warning}
The `appimageTools` API is unstable and may be subject to backwards-incompatible changes in the future.
:::
## AppImage formats {#ssec-pkgs-appimageTools-formats}
There are different formats for AppImages, see [the specification](https://github.com/AppImage/AppImageSpec/blob/74ad9ca2f94bf864a4a0dac1f369dd4f00bd1c28/draft.md#image-format) for details.
- Type 1 images are ISO 9660 files that are also ELF executables.
- Type 2 images are ELF executables with an appended filesystem.
They can be told apart with `file -k`:
```ShellSession
$ file -k type1.AppImage
type1.AppImage: ELF 64-bit LSB executable, x86-64, version 1 (SYSV) ISO 9660 CD-ROM filesystem data 'AppImage' (Lepton 3.x), scale 0-0,
spot sensor temperature 0.000000, unit celsius, color scheme 0, calibration: offset 0.000000, slope 0.000000, dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.18, BuildID[sha1]=d629f6099d2344ad82818172add1d38c5e11bc6d, stripped\012- data
$ file -k type2.AppImage
type2.AppImage: ELF 64-bit LSB executable, x86-64, version 1 (SYSV) (Lepton 3.x), scale 232-60668, spot sensor temperature -4.187500, color scheme 15, show scale bar, calibration: offset -0.000000, slope 0.000000 (Lepton 2.x), scale 4111-45000, spot sensor temperature 412442.250000, color scheme 3, minimum point enabled, calibration: offset -75402534979642766821519867692934234112.000000, slope 5815371847733706829839455140374904832.000000, dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.18, BuildID[sha1]=79dcc4e55a61c293c5e19edbd8d65b202842579f, stripped\012- data
```
Note how the type 1 AppImage is described as an `ISO 9660 CD-ROM filesystem`, and the type 2 AppImage is not.
## Wrapping {#ssec-pkgs-appimageTools-wrapping}
Depending on the type of AppImage you're wrapping, you'll have to use `wrapType1` or `wrapType2`.
```nix
appimageTools.wrapType2 { # or wrapType1
name = "patchwork";
src = fetchurl {
url = "https://github.com/ssbc/patchwork/releases/download/v3.11.4/Patchwork-3.11.4-linux-x86_64.AppImage";
sha256 = "1blsprpkvm0ws9b96gb36f0rbf8f5jgmw4x6dsb1kswr4ysf591s";
};
extraPkgs = pkgs: with pkgs; [ ];
}
```
- `name` specifies the name of the resulting image.
- `src` specifies the AppImage file to extract.
- `extraPkgs` allows you to pass a function to include additional packages inside the FHS environment your AppImage is going to run in. There are a few ways to learn which dependencies an application needs:
- Looking through the extracted AppImage files, reading its scripts and running `patchelf` and `ldd` on its executables. This can also be done in `appimage-run`, by setting `APPIMAGE_DEBUG_EXEC=bash`.
- Running `strace -vfefile` on the wrapped executable, looking for libraries that can't be found.

View File

@@ -1,352 +0,0 @@
# pkgs.dockerTools {#sec-pkgs-dockerTools}
`pkgs.dockerTools` is a set of functions for creating and manipulating Docker images according to the [Docker Image Specification v1.2.0](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#docker-image-specification-v120). Docker itself is not used to perform any of the operations done by these functions.
## buildImage {#ssec-pkgs-dockerTools-buildImage}
This function is analogous to the `docker build` command, in that it can be used to build a Docker-compatible repository tarball containing a single image with one or multiple layers. As such, the result is suitable for being loaded in Docker with `docker load`.
The parameters of `buildImage` with relative example values are described below:
[]{#ex-dockerTools-buildImage}
[]{#ex-dockerTools-buildImage-runAsRoot}
```nix
buildImage {
name = "redis";
tag = "latest";
fromImage = someBaseImage;
fromImageName = null;
fromImageTag = "latest";
copyToRoot = pkgs.buildEnv {
name = "image-root";
paths = [ pkgs.redis ];
pathsToLink = [ "/bin" ];
};
runAsRoot = ''
#!${pkgs.runtimeShell}
mkdir -p /data
'';
config = {
Cmd = [ "/bin/redis-server" ];
WorkingDir = "/data";
Volumes = { "/data" = { }; };
};
}
```
The above example will build a Docker image `redis/latest` from the given base image. Loading and running this image in Docker results in `redis-server` being started automatically.
- `name` specifies the name of the resulting image. This is the only required argument for `buildImage`.
- `tag` specifies the tag of the resulting image. By default it's `null`, which indicates that the nix output hash will be used as tag.
- `fromImage` is the repository tarball containing the base image. It must be a valid Docker image, such as exported by `docker save`. By default it's `null`, which can be seen as equivalent to `FROM scratch` of a `Dockerfile`.
- `fromImageName` can be used to further specify the base image within the repository, in case it contains multiple images. By default it's `null`, in which case `buildImage` will peek the first image available in the repository.
- `fromImageTag` can be used to further specify the tag of the base image within the repository, in case an image contains multiple tags. By default it's `null`, in which case `buildImage` will peek the first tag available for the base image.
- `copyToRoot` is a derivation that will be copied in the new layer of the resulting image. This can be similarly seen as `ADD contents/ /` in a `Dockerfile`. By default it's `null`.
- `runAsRoot` is a bash script that will run as root in an environment that overlays the existing layers of the base image with the new resulting layer, including the previously copied `contents` derivation. This can be similarly seen as `RUN ...` in a `Dockerfile`.
> **_NOTE:_** Using this parameter requires the `kvm` device to be available.
- `config` is used to specify the configuration of the containers that will be started off the built image in Docker. The available options are listed in the [Docker Image Specification v1.2.0](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions).
After the new layer has been created, its closure (to which `contents`, `config` and `runAsRoot` contribute) will be copied in the layer itself. Only new dependencies that are not already in the existing layers will be copied.
At the end of the process, only one new single layer will be produced and added to the resulting image.
The resulting repository will only list the single image `image/tag`. In the case of [the `buildImage` example](#ex-dockerTools-buildImage), it would be `redis/latest`.
It is possible to inspect the arguments with which an image was built using its `buildArgs` attribute.
> **_NOTE:_** If you see errors similar to `getProtocolByName: does not exist (no such protocol name: tcp)` you may need to add `pkgs.iana-etc` to `contents`.
> **_NOTE:_** If you see errors similar to `Error_Protocol ("certificate has unknown CA",True,UnknownCa)` you may need to add `pkgs.cacert` to `contents`.
By default `buildImage` will use a static date of one second past the UNIX Epoch. This allows `buildImage` to produce binary reproducible images. When listing images with `docker images`, the newly created images will be listed like this:
```ShellSession
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello latest 08c791c7846e 48 years ago 25.2MB
```
You can break binary reproducibility but have a sorted, meaningful `CREATED` column by setting `created` to `now`.
```nix
pkgs.dockerTools.buildImage {
name = "hello";
tag = "latest";
created = "now";
copyToRoot = pkgs.buildEnv {
name = "image-root";
paths = [ pkgs.hello ];
pathsToLink = [ "/bin" ];
};
config.Cmd = [ "/bin/hello" ];
}
```
Now the Docker CLI will display a reasonable date and sort the images as expected:
```ShellSession
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello latest de2bf4786de6 About a minute ago 25.2MB
```
However, the produced images will not be binary reproducible.
## buildLayeredImage {#ssec-pkgs-dockerTools-buildLayeredImage}
Create a Docker image with many of the store paths being on their own layer to improve sharing between images. The image is realized into the Nix store as a gzipped tarball. Depending on the intended usage, many users might prefer to use `streamLayeredImage` instead, which this function uses internally.
`name`
: The name of the resulting image.
`tag` _optional_
: Tag of the generated image.
*Default:* the output path's hash
`fromImage` _optional_
: The repository tarball containing the base image. It must be a valid Docker image, such as one exported by `docker save`.
*Default:* `null`, which can be seen as equivalent to `FROM scratch` of a `Dockerfile`.
`contents` _optional_
: Top-level paths in the container. Either a single derivation, or a list of derivations.
*Default:* `[]`
`config` _optional_
: Run-time configuration of the container. A full list of the options are available at in the [Docker Image Specification v1.2.0](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions).
*Default:* `{}`
`created` _optional_
: Date and time the layers were created. Follows the same `now` exception supported by `buildImage`.
*Default:* `1970-01-01T00:00:01Z`
`maxLayers` _optional_
: Maximum number of layers to create.
*Default:* `100`
*Maximum:* `125`
`extraCommands` _optional_
: Shell commands to run while building the final layer, without access to most of the layer contents. Changes to this layer are "on top" of all the other layers, so can create additional directories and files.
`fakeRootCommands` _optional_
: Shell commands to run while creating the archive for the final layer in a fakeroot environment. Unlike `extraCommands`, you can run `chown` to change the owners of the files in the archive, changing fakeroot's state instead of the real filesystem. The latter would require privileges that the build user does not have. Static binaries do not interact with the fakeroot environment. By default all files in the archive will be owned by root.
`enableFakechroot` _optional_
: Whether to run in `fakeRootCommands` in `fakechroot`, making programs behave as though `/` is the root of the image being created, while files in the Nix store are available as usual. This allows scripts that perform installation in `/` to work as expected. Considering that `fakechroot` is implemented via the same mechanism as `fakeroot`, the same caveats apply.
*Default:* `false`
### Behavior of `contents` in the final image {#dockerTools-buildLayeredImage-arg-contents}
Each path directly listed in `contents` will have a symlink in the root of the image.
For example:
```nix
pkgs.dockerTools.buildLayeredImage {
name = "hello";
contents = [ pkgs.hello ];
}
```
will create symlinks for all the paths in the `hello` package:
```ShellSession
/bin/hello -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/bin/hello
/share/info/hello.info -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/info/hello.info
/share/locale/bg/LC_MESSAGES/hello.mo -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/locale/bg/LC_MESSAGES/hello.mo
```
### Automatic inclusion of `config` references {#dockerTools-buildLayeredImage-arg-config}
The closure of `config` is automatically included in the closure of the final image.
This allows you to make very simple Docker images with very little code. This container will start up and run `hello`:
```nix
pkgs.dockerTools.buildLayeredImage {
name = "hello";
config.Cmd = [ "${pkgs.hello}/bin/hello" ];
}
```
### Adjusting `maxLayers` {#dockerTools-buildLayeredImage-arg-maxLayers}
Increasing the `maxLayers` increases the number of layers which have a chance to be shared between different images.
Modern Docker installations support up to 128 layers, but older versions support as few as 42.
If the produced image will not be extended by other Docker builds, it is safe to set `maxLayers` to `128`. However, it will be impossible to extend the image further.
The first (`maxLayers-2`) most "popular" paths will have their own individual layers, then layer \#`maxLayers-1` will contain all the remaining "unpopular" paths, and finally layer \#`maxLayers` will contain the Image configuration.
Docker's Layers are not inherently ordered, they are content-addressable and are not explicitly layered until they are composed in to an Image.
## streamLayeredImage {#ssec-pkgs-dockerTools-streamLayeredImage}
Builds a script which, when run, will stream an uncompressed tarball of a Docker image to stdout. The arguments to this function are as for `buildLayeredImage`. This method of constructing an image does not realize the image into the Nix store, so it saves on IO and disk/cache space, particularly with large images.
The image produced by running the output script can be piped directly into `docker load`, to load it into the local docker daemon:
```ShellSession
$(nix-build) | docker load
```
Alternatively, the image be piped via `gzip` into `skopeo`, e.g., to copy it into a registry:
```ShellSession
$(nix-build) | gzip --fast | skopeo copy docker-archive:/dev/stdin docker://some_docker_registry/myimage:tag
```
## pullImage {#ssec-pkgs-dockerTools-fetchFromRegistry}
This function is analogous to the `docker pull` command, in that it can be used to pull a Docker image from a Docker registry. By default [Docker Hub](https://hub.docker.com/) is used to pull images.
Its parameters are described in the example below:
```nix
pullImage {
imageName = "nixos/nix";
imageDigest =
"sha256:20d9485b25ecfd89204e843a962c1bd70e9cc6858d65d7f5fadc340246e2116b";
finalImageName = "nix";
finalImageTag = "1.11";
sha256 = "0mqjy3zq2v6rrhizgb9nvhczl87lcfphq9601wcprdika2jz7qh8";
os = "linux";
arch = "x86_64";
}
```
- `imageName` specifies the name of the image to be downloaded, which can also include the registry namespace (e.g. `nixos`). This argument is required.
- `imageDigest` specifies the digest of the image to be downloaded. This argument is required.
- `finalImageName`, if specified, this is the name of the image to be created. Note it is never used to fetch the image since we prefer to rely on the immutable digest ID. By default it's equal to `imageName`.
- `finalImageTag`, if specified, this is the tag of the image to be created. Note it is never used to fetch the image since we prefer to rely on the immutable digest ID. By default it's `latest`.
- `sha256` is the checksum of the whole fetched image. This argument is required.
- `os`, if specified, is the operating system of the fetched image. By default it's `linux`.
- `arch`, if specified, is the cpu architecture of the fetched image. By default it's `x86_64`.
`nix-prefetch-docker` command can be used to get required image parameters:
```ShellSession
$ nix run nixpkgs.nix-prefetch-docker -c nix-prefetch-docker --image-name mysql --image-tag 5
```
Since a given `imageName` may transparently refer to a manifest list of images which support multiple architectures and/or operating systems, you can supply the `--os` and `--arch` arguments to specify exactly which image you want. By default it will match the OS and architecture of the host the command is run on.
```ShellSession
$ nix-prefetch-docker --image-name mysql --image-tag 5 --arch x86_64 --os linux
```
Desired image name and tag can be set using `--final-image-name` and `--final-image-tag` arguments:
```ShellSession
$ nix-prefetch-docker --image-name mysql --image-tag 5 --final-image-name eu.gcr.io/my-project/mysql --final-image-tag prod
```
## exportImage {#ssec-pkgs-dockerTools-exportImage}
This function is analogous to the `docker export` command, in that it can be used to flatten a Docker image that contains multiple layers. It is in fact the result of the merge of all the layers of the image. As such, the result is suitable for being imported in Docker with `docker import`.
> **_NOTE:_** Using this function requires the `kvm` device to be available.
The parameters of `exportImage` are the following:
```nix
exportImage {
fromImage = someLayeredImage;
fromImageName = null;
fromImageTag = null;
name = someLayeredImage.name;
}
```
The parameters relative to the base image have the same synopsis as described in [buildImage](#ssec-pkgs-dockerTools-buildImage), except that `fromImage` is the only required argument in this case.
The `name` argument is the name of the derivation output, which defaults to `fromImage.name`.
## shadowSetup {#ssec-pkgs-dockerTools-shadowSetup}
This constant string is a helper for setting up the base files for managing users and groups, only if such files don't exist already. It is suitable for being used in a [`buildImage` `runAsRoot`](#ex-dockerTools-buildImage-runAsRoot) script for cases like in the example below:
```nix
buildImage {
name = "shadow-basic";
runAsRoot = ''
#!${pkgs.runtimeShell}
${pkgs.dockerTools.shadowSetup}
groupadd -r redis
useradd -r -g redis redis
mkdir /data
chown redis:redis /data
'';
}
```
Creating base files like `/etc/passwd` or `/etc/login.defs` is necessary for shadow-utils to manipulate users and groups.
## fakeNss {#ssec-pkgs-dockerTools-fakeNss}
If your primary goal is providing a basic skeleton for user lookups to work,
and/or a lesser privileged user, adding `pkgs.fakeNss` to
the container image root might be the better choice than a custom script
running `useradd` and friends.
It provides a `/etc/passwd` and `/etc/group`, containing `root` and `nobody`
users and groups.
It also provides a `/etc/nsswitch.conf`, configuring NSS host resolution to
first check `/etc/hosts`, before checking DNS, as the default in the absence of
a config file (`dns [!UNAVAIL=return] files`) is quite unexpected.
You can pair it with `binSh`, which provides `bin/sh` as a symlink
to `bashInteractive` (as `/bin/sh` is configured as a shell).
```nix
buildImage {
name = "shadow-basic";
copyToRoot = pkgs.buildEnv {
name = "image-root";
paths = [ binSh pkgs.fakeNss ];
pathsToLink = [ "/bin" "/etc" "/var" ];
};
}
```

View File

@@ -1,37 +0,0 @@
# pkgs.ociTools {#sec-pkgs-ociTools}
`pkgs.ociTools` is a set of functions for creating containers according to the [OCI container specification v1.0.0](https://github.com/opencontainers/runtime-spec). Beyond that, it makes no assumptions about the container runner you choose to use to run the created container.
## buildContainer {#ssec-pkgs-ociTools-buildContainer}
This function creates a simple OCI container that runs a single command inside of it. An OCI container consists of a `config.json` and a rootfs directory. The nix store of the container will contain all referenced dependencies of the given command.
The parameters of `buildContainer` with an example value are described below:
```nix
buildContainer {
args = [
(with pkgs;
writeScript "run.sh" ''
#!${bash}/bin/bash
exec ${bash}/bin/bash
'').outPath
];
mounts = {
"/data" = {
type = "none";
source = "/var/lib/mydata";
options = [ "bind" ];
};
};
readonly = false;
}
```
- `args` specifies a set of arguments to run inside the container. This is the only required argument for `buildContainer`. All referenced packages inside the derivation will be made available inside the container.
- `mounts` specifies additional mount points chosen by the user. By default only a minimal set of necessary filesystems are mounted into the container (e.g procfs, cgroupfs)
- `readonly` makes the container\'s rootfs read-only if it is set to true. The default value is false `false`.

View File

@@ -1,71 +0,0 @@
# pkgs.snapTools {#sec-pkgs-snapTools}
`pkgs.snapTools` is a set of functions for creating Snapcraft images. Snap and Snapcraft is not used to perform these operations.
## The makeSnap Function {#ssec-pkgs-snapTools-makeSnap-signature}
`makeSnap` takes a single named argument, `meta`. This argument mirrors [the upstream `snap.yaml` format](https://docs.snapcraft.io/snap-format) exactly.
The `base` should not be specified, as `makeSnap` will force set it.
Currently, `makeSnap` does not support creating GUI stubs.
## Build a Hello World Snap {#ssec-pkgs-snapTools-build-a-snap-hello}
The following expression packages GNU Hello as a Snapcraft snap.
``` {#ex-snapTools-buildSnap-hello .nix}
let
inherit (import <nixpkgs> { }) snapTools hello;
in snapTools.makeSnap {
meta = {
name = "hello";
summary = hello.meta.description;
description = hello.meta.longDescription;
architectures = [ "amd64" ];
confinement = "strict";
apps.hello.command = "${hello}/bin/hello";
};
}
```
`nix-build` this expression and install it with `snap install ./result --dangerous`. `hello` will now be the Snapcraft version of the package.
## Build a Graphical Snap {#ssec-pkgs-snapTools-build-a-snap-firefox}
Graphical programs require many more integrations with the host. This example uses Firefox as an example because it is one of the most complicated programs we could package.
``` {#ex-snapTools-buildSnap-firefox .nix}
let
inherit (import <nixpkgs> { }) snapTools firefox;
in snapTools.makeSnap {
meta = {
name = "nix-example-firefox";
summary = firefox.meta.description;
architectures = [ "amd64" ];
apps.nix-example-firefox = {
command = "${firefox}/bin/firefox";
plugs = [
"pulseaudio"
"camera"
"browser-support"
"avahi-observe"
"cups-control"
"desktop"
"desktop-legacy"
"gsettings"
"home"
"network"
"mount-observe"
"removable-media"
"x11"
];
};
confinement = "strict";
};
}
```
`nix-build` this expression and install it with `snap install ./result --dangerous`. `nix-example-firefox` will now be the Snapcraft version of the Firefox package.
The specific meaning behind plugs can be looked up in the [Snapcraft interface documentation](https://docs.snapcraft.io/supported-interfaces).

View File

@@ -1,129 +0,0 @@
# Cataclysm: Dark Days Ahead {#cataclysm-dark-days-ahead}
## How to install Cataclysm DDA {#how-to-install-cataclysm-dda}
To install the latest stable release of Cataclysm DDA to your profile, execute
`nix-env -f "<nixpkgs>" -iA cataclysm-dda`. For the curses build (build
without tiles), install `cataclysmDDA.stable.curses`. Note: `cataclysm-dda` is
an alias to `cataclysmDDA.stable.tiles`.
If you like access to a development build of your favorite git revision,
override `cataclysm-dda-git` (or `cataclysmDDA.git.curses` if you like curses
build):
```nix
cataclysm-dda-git.override {
version = "YYYY-MM-DD";
rev = "YOUR_FAVORITE_REVISION";
sha256 = "CHECKSUM_OF_THE_REVISION";
}
```
The sha256 checksum can be obtained by
```sh
nix-prefetch-url --unpack "https://github.com/CleverRaven/Cataclysm-DDA/archive/${YOUR_FAVORITE_REVISION}.tar.gz"
```
The default configuration directory is `~/.cataclysm-dda`. If you prefer
`$XDG_CONFIG_HOME/cataclysm-dda`, override the derivation:
```nix
cataclysm-dda.override {
useXdgDir = true;
}
```
## Important note for overriding packages {#important-note-for-overriding-packages}
After applying `overrideAttrs`, you need to fix `passthru.pkgs` and
`passthru.withMods` attributes either manually or by using `attachPkgs`:
```nix
let
# You enabled parallel building.
myCDDA = cataclysm-dda-git.overrideAttrs (_: {
enableParallelBuilding = true;
});
# Unfortunately, this refers to the package before overriding and
# parallel building is still disabled.
badExample = myCDDA.withMods (_: []);
inherit (cataclysmDDA) attachPkgs pkgs wrapCDDA;
# You can fix it by hand
goodExample1 = myCDDA.overrideAttrs (old: {
passthru = old.passthru // {
pkgs = pkgs.override { build = goodExample1; };
withMods = wrapCDDA goodExample1;
};
});
# or by using a helper function `attachPkgs`.
goodExample2 = attachPkgs pkgs myCDDA;
in
# badExample # parallel building disabled
# goodExample1.withMods (_: []) # parallel building enabled
goodExample2.withMods (_: []) # parallel building enabled
```
## Customizing with mods {#customizing-with-mods}
To install Cataclysm DDA with mods of your choice, you can use `withMods`
attribute:
```nix
cataclysm-dda.withMods (mods: with mods; [
tileset.UndeadPeople
])
```
All mods, soundpacks, and tilesets available in nixpkgs are found in
`cataclysmDDA.pkgs`.
Here is an example to modify existing mods and/or add more mods not available
in nixpkgs:
```nix
let
customMods = self: super: lib.recursiveUpdate super {
# Modify existing mod
tileset.UndeadPeople = super.tileset.UndeadPeople.overrideAttrs (old: {
# If you like to apply a patch to the tileset for example
patches = [ ./path/to/your.patch ];
});
# Add another mod
mod.Awesome = cataclysmDDA.buildMod {
modName = "Awesome";
version = "0.x";
src = fetchFromGitHub {
owner = "Someone";
repo = "AwesomeMod";
rev = "...";
sha256 = "...";
};
# Path to be installed in the unpacked source (default: ".")
modRoot = "contents/under/this/path/will/be/installed";
};
# Add another soundpack
soundpack.Fantastic = cataclysmDDA.buildSoundPack {
# ditto
};
# Add another tileset
tileset.SuperDuper = cataclysmDDA.buildTileSet {
# ditto
};
};
in
cataclysm-dda.withMods (mods: with mods.extend customMods; [
tileset.UndeadPeople
mod.Awesome
soundpack.Fantastic
tileset.SuperDuper
])
```

View File

@@ -1,32 +0,0 @@
# Citrix Workspace {#sec-citrix}
The [Citrix Workspace App](https://www.citrix.com/products/workspace-app/) is a remote desktop viewer which provides access to [XenDesktop](https://www.citrix.com/products/xenapp-xendesktop/) installations.
## Basic usage {#sec-citrix-base}
The tarball archive needs to be downloaded manually, as the license agreements of the vendor for [Citrix Workspace](https://www.citrix.de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html) needs to be accepted first. Then run `nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz`. With the archive available in the store, the package can be built and installed with Nix.
## Citrix Self-service {#sec-citrix-selfservice}
The [self-service](https://support.citrix.com/article/CTX200337) is an application managing Citrix desktops and applications. Please note that this feature only works with at least citrix_workspace_20_06_0 and later versions.
In order to set this up, you first have to [download the `.cr` file from the Netscaler Gateway](https://its.uiowa.edu/support/article/102186). After that, you can configure the `selfservice` like this:
```ShellSession
$ storebrowse -C ~/Downloads/receiverconfig.cr
$ selfservice
```
## Custom certificates {#sec-citrix-custom-certs}
The `Citrix Workspace App` in `nixpkgs` trusts several certificates [from the Mozilla database](https://curl.haxx.se/docs/caextract.html) by default. However, several companies using Citrix might require their own corporate certificate. On distros with imperative packaging, these certs can be stored easily in [`$ICAROOT`](https://developer-docs.citrix.com/projects/receiver-for-linux-command-reference/en/13.7/), however this directory is a store path in `nixpkgs`. In order to work around this issue, the package provides a simple mechanism to add custom certificates without rebuilding the entire package using `symlinkJoin`:
```nix
with import <nixpkgs> { config.allowUnfree = true; };
let
extraCerts = [
./custom-cert-1.pem
./custom-cert-2.pem # ...
];
in citrix_workspace.override { inherit extraCerts; }
```

View File

@@ -1,13 +0,0 @@
# DLib {#dlib}
[DLib](http://dlib.net/) is a modern, C++-based toolkit which provides several machine learning algorithms.
## Compiling without AVX support {#compiling-without-avx-support}
Especially older CPUs don\'t support [AVX](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions) (Advanced Vector Extensions) instructions that are used by DLib to optimize their algorithms.
On the affected hardware errors like `Illegal instruction` will occur. In those cases AVX support needs to be disabled:
```nix
self: super: { dlib = super.dlib.override { avxSupport = false; }; }
```

View File

@@ -1,64 +0,0 @@
# Eclipse {#sec-eclipse}
The Nix expressions related to the Eclipse platform and IDE are in [`pkgs/applications/editors/eclipse`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/eclipse).
Nixpkgs provides a number of packages that will install Eclipse in its various forms. These range from the bare-bones Eclipse Platform to the more fully featured Eclipse SDK or Scala-IDE packages and multiple version are often available. It is possible to list available Eclipse packages by issuing the command:
```ShellSession
$ nix-env -f '<nixpkgs>' -qaP -A eclipses --description
```
Once an Eclipse variant is installed, it can be run using the `eclipse` command, as expected. From within Eclipse, it is then possible to install plugins in the usual manner by either manually specifying an Eclipse update site or by installing the Marketplace Client plugin and using it to discover and install other plugins. This installation method provides an Eclipse installation that closely resemble a manually installed Eclipse.
If you prefer to install plugins in a more declarative manner, then Nixpkgs also offer a number of Eclipse plugins that can be installed in an _Eclipse environment_. This type of environment is created using the function `eclipseWithPlugins` found inside the `nixpkgs.eclipses` attribute set. This function takes as argument `{ eclipse, plugins ? [], jvmArgs ? [] }` where `eclipse` is a one of the Eclipse packages described above, `plugins` is a list of plugin derivations, and `jvmArgs` is a list of arguments given to the JVM running the Eclipse. For example, say you wish to install the latest Eclipse Platform with the popular Eclipse Color Theme plugin and also allow Eclipse to use more RAM. You could then add:
```nix
packageOverrides = pkgs: {
myEclipse = with pkgs.eclipses; eclipseWithPlugins {
eclipse = eclipse-platform;
jvmArgs = [ "-Xmx2048m" ];
plugins = [ plugins.color-theme ];
};
}
```
to your Nixpkgs configuration (`~/.config/nixpkgs/config.nix`) and install it by running `nix-env -f '<nixpkgs>' -iA myEclipse` and afterward run Eclipse as usual. It is possible to find out which plugins are available for installation using `eclipseWithPlugins` by running:
```ShellSession
$ nix-env -f '<nixpkgs>' -qaP -A eclipses.plugins --description
```
If there is a need to install plugins that are not available in Nixpkgs then it may be possible to define these plugins outside Nixpkgs using the `buildEclipseUpdateSite` and `buildEclipsePlugin` functions found in the `nixpkgs.eclipses.plugins` attribute set. Use the `buildEclipseUpdateSite` function to install a plugin distributed as an Eclipse update site. This function takes `{ name, src }` as argument, where `src` indicates the Eclipse update site archive. All Eclipse features and plugins within the downloaded update site will be installed. When an update site archive is not available, then the `buildEclipsePlugin` function can be used to install a plugin that consists of a pair of feature and plugin JARs. This function takes an argument `{ name, srcFeature, srcPlugin }` where `srcFeature` and `srcPlugin` are the feature and plugin JARs, respectively.
Expanding the previous example with two plugins using the above functions, we have:
```nix
packageOverrides = pkgs: {
myEclipse = with pkgs.eclipses; eclipseWithPlugins {
eclipse = eclipse-platform;
jvmArgs = [ "-Xmx2048m" ];
plugins = [
plugins.color-theme
(plugins.buildEclipsePlugin {
name = "myplugin1-1.0";
srcFeature = fetchurl {
url = "http:///features/myplugin1.jar";
sha256 = "123";
};
srcPlugin = fetchurl {
url = "http:///plugins/myplugin1.jar";
sha256 = "123";
};
});
(plugins.buildEclipseUpdateSite {
name = "myplugin2-1.0";
src = fetchurl {
stripRoot = false;
url = "http:///myplugin2.zip";
sha256 = "123";
};
});
];
};
}
```

View File

@@ -1,11 +0,0 @@
# Elm {#sec-elm}
To start a development environment, run:
```ShellSession
nix-shell -p elmPackages.elm elmPackages.elm-format
```
To update the Elm compiler, see `nixpkgs/pkgs/development/compilers/elm/README.md`.
To package Elm applications, [read about elm2nix](https://github.com/hercules-ci/elm2nix#elm2nix).

View File

@@ -1,119 +0,0 @@
# Emacs {#sec-emacs}
## Configuring Emacs {#sec-emacs-config}
The Emacs package comes with some extra helpers to make it easier to configure. `emacs.pkgs.withPackages` allows you to manage packages from ELPA. This means that you will not have to install that packages from within Emacs. For instance, if you wanted to use `company` `counsel`, `flycheck`, `ivy`, `magit`, `projectile`, and `use-package` you could use this as a `~/.config/nixpkgs/config.nix` override:
```nix
{
packageOverrides = pkgs: with pkgs; {
myEmacs = emacs.pkgs.withPackages (epkgs: (with epkgs.melpaStablePackages; [
company
counsel
flycheck
ivy
magit
projectile
use-package
]));
}
}
```
You can install it like any other packages via `nix-env -iA myEmacs`. However, this will only install those packages. It will not `configure` them for us. To do this, we need to provide a configuration file. Luckily, it is possible to do this from within Nix! By modifying the above example, we can make Emacs load a custom config file. The key is to create a package that provides a `default.el` file in `/share/emacs/site-start/`. Emacs knows to load this file automatically when it starts.
```nix
{
packageOverrides = pkgs: with pkgs; rec {
myEmacsConfig = writeText "default.el" ''
;; initialize package
(require 'package)
(package-initialize 'noactivate)
(eval-when-compile
(require 'use-package))
;; load some packages
(use-package company
:bind ("<C-tab>" . company-complete)
:diminish company-mode
:commands (company-mode global-company-mode)
:defer 1
:config
(global-company-mode))
(use-package counsel
:commands (counsel-descbinds)
:bind (([remap execute-extended-command] . counsel-M-x)
("C-x C-f" . counsel-find-file)
("C-c g" . counsel-git)
("C-c j" . counsel-git-grep)
("C-c k" . counsel-ag)
("C-x l" . counsel-locate)
("M-y" . counsel-yank-pop)))
(use-package flycheck
:defer 2
:config (global-flycheck-mode))
(use-package ivy
:defer 1
:bind (("C-c C-r" . ivy-resume)
("C-x C-b" . ivy-switch-buffer)
:map ivy-minibuffer-map
("C-j" . ivy-call))
:diminish ivy-mode
:commands ivy-mode
:config
(ivy-mode 1))
(use-package magit
:defer
:if (executable-find "git")
:bind (("C-x g" . magit-status)
("C-x G" . magit-dispatch-popup))
:init
(setq magit-completing-read-function 'ivy-completing-read))
(use-package projectile
:commands projectile-mode
:bind-keymap ("C-c p" . projectile-command-map)
:defer 5
:config
(projectile-global-mode))
'';
myEmacs = emacs.pkgs.withPackages (epkgs: (with epkgs.melpaStablePackages; [
(runCommand "default.el" {} ''
mkdir -p $out/share/emacs/site-lisp
cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el
'')
company
counsel
flycheck
ivy
magit
projectile
use-package
]));
};
}
```
This provides a fairly full Emacs start file. It will load in addition to the user's personal config. You can always disable it by passing `-q` to the Emacs command.
Sometimes `emacs.pkgs.withPackages` is not enough, as this package set has some priorities imposed on packages (with the lowest priority assigned to Melpa Unstable, and the highest for packages manually defined in `pkgs/top-level/emacs-packages.nix`). But you can't control these priorities when some package is installed as a dependency. You can override it on a per-package-basis, providing all the required dependencies manually, but it's tedious and there is always a possibility that an unwanted dependency will sneak in through some other package. To completely override such a package, you can use `overrideScope'`.
```nix
overrides = self: super: rec {
haskell-mode = self.melpaPackages.haskell-mode;
...
};
((emacsPackagesFor emacs).overrideScope' overrides).withPackages
(p: with p; [
# here both these package will use haskell-mode of our own choice
ghc-mod
dante
])
```

View File

@@ -1,18 +0,0 @@
# /etc files {#etc}
Certain calls in glibc require access to runtime files found in `/etc` such as `/etc/protocols` or `/etc/services` -- [getprotobyname](https://linux.die.net/man/3/getprotobyname) is one such function.
On non-NixOS distributions these files are typically provided by packages (i.e., [netbase](https://packages.debian.org/sid/netbase)) if not already pre-installed in your distribution. This can cause non-reproducibility for code if they rely on these files being present.
If [iana-etc](https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.iana-etc.x86_64-linux) is part of your `buildInputs`, then it will set the environment variables `NIX_ETC_PROTOCOLS` and `NIX_ETC_SERVICES` to the corresponding files in the package through a setup hook.
```bash
> nix-shell -p iana-etc
[nix-shell:~]$ env | grep NIX_ETC
NIX_ETC_SERVICES=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/services
NIX_ETC_PROTOCOLS=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/protocols
```
Nixpkg's version of [glibc](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/glibc/default.nix) has been patched to check for the existence of these environment variables. If the environment variables are *not* set, then it will attempt to find the files at the default location within `/etc`.

View File

@@ -1,55 +0,0 @@
# Firefox {#sec-firefox}
## Build wrapped Firefox with extensions and policies {#build-wrapped-firefox-with-extensions-and-policies}
The `wrapFirefox` function allows to pass policies, preferences and extensions that are available to Firefox. With the help of `fetchFirefoxAddon` this allows to build a Firefox version that already comes with add-ons pre-installed:
```nix
{
# Nix firefox addons only work with the firefox-esr package.
myFirefox = wrapFirefox firefox-esr-unwrapped {
nixExtensions = [
(fetchFirefoxAddon {
name = "ublock"; # Has to be unique!
url = "https://addons.mozilla.org/firefox/downloads/file/3679754/ublock_origin-1.31.0-an+fx.xpi";
sha256 = "1h768ljlh3pi23l27qp961v1hd0nbj2vasgy11bmcrlqp40zgvnr";
})
];
extraPolicies = {
CaptivePortal = false;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableTelemetry = true;
DisableFirefoxAccounts = true;
FirefoxHome = {
Pocket = false;
Snippets = false;
};
UserMessaging = {
ExtensionRecommendations = false;
SkipOnboarding = true;
};
SecurityDevices = {
# Use a proxy module rather than `nixpkgs.config.firefox.smartcardSupport = true`
"PKCS#11 Proxy Module" = "${pkgs.p11-kit}/lib/p11-kit-proxy.so";
};
};
extraPrefs = ''
// Show more ssl cert infos
lockPref("security.identityblock.show_extended_validation", true);
'';
};
}
```
If `nixExtensions != null`, then all manually installed add-ons will be uninstalled from your browser profile.
To view available enterprise policies, visit [enterprise policies](https://github.com/mozilla/policy-templates#enterprisepoliciesenabled)
or type into the Firefox URL bar: `about:policies#documentation`.
Nix installed add-ons do not have a valid signature, which is why signature verification is disabled. This does not compromise security because downloaded add-ons are checksummed and manual add-ons can't be installed. Also, make sure that the `name` field of `fetchFirefoxAddon` is unique. If you remove an add-on from the `nixExtensions` array, rebuild and start Firefox: the removed add-on will be completely removed with all of its settings.
## Troubleshooting {#sec-firefox-troubleshooting}
If add-ons are marked as broken or the signature is invalid, make sure you have Firefox ESR installed. Normal Firefox does not provide the ability anymore to disable signature verification for add-ons thus nix add-ons get disabled by the normal Firefox binary.
If add-ons do not appear installed despite being defined in your nix configuration file, reset the local add-on state of your Firefox profile by clicking `Help -> More Troubleshooting Information -> Refresh Firefox`. This can happen if you switch from manual add-on mode to nix add-on mode and then back to manual mode and then again to nix add-on mode.

View File

@@ -1,50 +0,0 @@
# Fish {#sec-fish}
Fish is a "smart and user-friendly command line shell" with support for plugins.
## Vendor Fish scripts {#sec-fish-vendor}
Any package may ship its own Fish completions, configuration snippets, and
functions. Those should be installed to
`$out/share/fish/vendor_{completions,conf,functions}.d` respectively.
When the `programs.fish.enable` and
`programs.fish.vendor.{completions,config,functions}.enable` options from the
NixOS Fish module are set to true, those paths are symlinked in the current
system environment and automatically loaded by Fish.
## Packaging Fish plugins {#sec-fish-plugins-pkg}
While packages providing standalone executables belong to the top level,
packages which have the sole purpose of extending Fish belong to the
`fishPlugins` scope and should be registered in
`pkgs/shells/fish/plugins/default.nix`.
The `buildFishPlugin` utility function can be used to automatically copy Fish
scripts from `$src/{completions,conf,conf.d,functions}` to the standard vendor
installation paths. It also sets up the test environment so that the optional
`checkPhase` is executed in a Fish shell with other already packaged plugins
and package-local Fish functions specified in `checkPlugins` and
`checkFunctionDirs` respectively.
See `pkgs/shells/fish/plugins/pure.nix` for an example of Fish plugin package
using `buildFishPlugin` and running unit tests with the `fishtape` test runner.
## Fish wrapper {#sec-fish-wrapper}
The `wrapFish` package is a wrapper around Fish which can be used to create
Fish shells initialized with some plugins as well as completions, configuration
snippets and functions sourced from the given paths. This provides a convenient
way to test Fish plugins and scripts without having to alter the environment.
```nix
wrapFish {
pluginPkgs = with fishPlugins; [ pure foreign-env ];
completionDirs = [];
functionDirs = [];
confDirs = [ "/path/to/some/fish/init/dir/" ];
}
```

View File

@@ -1,45 +0,0 @@
# FUSE {#sec-fuse}
Some packages rely on
[FUSE](https://www.kernel.org/doc/html/latest/filesystems/fuse.html) to provide
support for additional filesystems not supported by the kernel.
In general, FUSE software are primarily developed for Linux but many of them can
also run on macOS. Nixpkgs supports FUSE packages on macOS, but it requires
[macFUSE](https://osxfuse.github.io) to be installed outside of Nix. macFUSE
currently isn't packaged in Nixpkgs mainly because it includes a kernel
extension, which isn't supported by Nix outside of NixOS.
If a package fails to run on macOS with an error message similar to the
following, it's a likely sign that you need to have macFUSE installed.
dyld: Library not loaded: /usr/local/lib/libfuse.2.dylib
Referenced from: /nix/store/w8bi72bssv0bnxhwfw3xr1mvn7myf37x-sshfs-fuse-2.10/bin/sshfs
Reason: image not found
[1] 92299 abort /nix/store/w8bi72bssv0bnxhwfw3xr1mvn7myf37x-sshfs-fuse-2.10/bin/sshfs
Package maintainers may often encounter the following error when building FUSE
packages on macOS:
checking for fuse.h... no
configure: error: No fuse.h found.
This happens on autoconf based projects that use `AC_CHECK_HEADERS` or
`AC_CHECK_LIBS` to detect libfuse, and will occur even when the `fuse` package
is included in `buildInputs`. It happens because libfuse headers throw an error
on macOS if the `FUSE_USE_VERSION` macro is undefined. Many projects do define
`FUSE_USE_VERSION`, but only inside C source files. This results in the above
error at configure time because the configure script would attempt to compile
sample FUSE programs without defining `FUSE_USE_VERSION`.
There are two possible solutions for this problem in Nixpkgs:
1. Pass `FUSE_USE_VERSION` to the configure script by adding
`CFLAGS=-DFUSE_USE_VERSION=25` in `configureFlags`. The actual value would
have to match the definition used in the upstream source code.
2. Remove `AC_CHECK_HEADERS` / `AC_CHECK_LIBS` for libfuse.
However, a better solution might be to fix the build script upstream to use
`PKG_CHECK_MODULES` instead. This approach wouldn't suffer from the problem that
`AC_CHECK_HEADERS`/`AC_CHECK_LIBS` has at the price of introducing a dependency
on pkg-config.

View File

@@ -1,38 +0,0 @@
# ibus-engines.typing-booster {#sec-ibus-typing-booster}
This package is an ibus-based completion method to speed up typing.
## Activating the engine {#sec-ibus-typing-booster-activate}
IBus needs to be configured accordingly to activate `typing-booster`. The configuration depends on the desktop manager in use. For detailed instructions, please refer to the [upstream docs](https://mike-fabian.github.io/ibus-typing-booster/documentation.html).
On NixOS, you need to explicitly enable `ibus` with given engines before customizing your desktop to use `typing-booster`. This can be achieved using the `ibus` module:
```nix
{ pkgs, ... }: {
i18n.inputMethod = {
enabled = "ibus";
ibus.engines = with pkgs.ibus-engines; [ typing-booster ];
};
}
```
## Using custom hunspell dictionaries {#sec-ibus-typing-booster-customize-hunspell}
The IBus engine is based on `hunspell` to support completion in many languages. By default, the dictionaries `de-de`, `en-us`, `fr-moderne` `es-es`, `it-it`, `sv-se` and `sv-fi` are in use. To add another dictionary, the package can be overridden like this:
```nix
ibus-engines.typing-booster.override { langs = [ "de-at" "en-gb" ]; }
```
_Note: each language passed to `langs` must be an attribute name in `pkgs.hunspellDicts`._
## Built-in emoji picker {#sec-ibus-typing-booster-emoji-picker}
The `ibus-engines.typing-booster` package contains a program named `emoji-picker`. To display all emojis correctly, a special font such as `noto-fonts-emoji` is needed:
On NixOS, it can be installed using the following expression:
```nix
{ pkgs, ... }: { fonts.fonts = with pkgs; [ noto-fonts-emoji ]; }
```

View File

@@ -1,29 +0,0 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="chap-packages">
<title>Packages</title>
<para>
This chapter contains information about how to use and maintain the Nix expressions for a number of specific packages, such as the Linux kernel or X.org.
</para>
<xi:include href="citrix.section.xml" />
<xi:include href="dlib.section.xml" />
<xi:include href="eclipse.section.xml" />
<xi:include href="elm.section.xml" />
<xi:include href="emacs.section.xml" />
<xi:include href="firefox.section.xml" />
<xi:include href="fish.section.xml" />
<xi:include href="fuse.section.xml" />
<xi:include href="ibus.section.xml" />
<xi:include href="kakoune.section.xml" />
<xi:include href="linux.section.xml" />
<xi:include href="locales.section.xml" />
<xi:include href="etc-files.section.xml" />
<xi:include href="nginx.section.xml" />
<xi:include href="opengl.section.xml" />
<xi:include href="shell-helpers.section.xml" />
<xi:include href="steam.section.xml" />
<xi:include href="cataclysm-dda.section.xml" />
<xi:include href="urxvt.section.xml" />
<xi:include href="weechat.section.xml" />
<xi:include href="xorg.section.xml" />
</chapter>

View File

@@ -1,9 +0,0 @@
# Kakoune {#sec-kakoune}
Kakoune can be built to autoload plugins:
```nix
(kakoune.override {
plugins = with pkgs.kakounePlugins; [ parinfer-rust ];
})
```

View File

@@ -1,41 +0,0 @@
# Linux kernel {#sec-linux-kernel}
The Nix expressions to build the Linux kernel are in [`pkgs/os-specific/linux/kernel`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specific/linux/kernel).
The function that builds the kernel has an argument `kernelPatches` which should be a list of `{name, patch, extraConfig}` attribute sets, where `name` is the name of the patch (which is included in the kernels `meta.description` attribute), `patch` is the patch itself (possibly compressed), and `extraConfig` (optional) is a string specifying extra options to be concatenated to the kernel configuration file (`.config`).
The kernel derivation exports an attribute `features` specifying whether optional functionality is or isnt enabled. This is used in NixOS to implement kernel-specific behaviour. For instance, if the kernel has the `iwlwifi` feature (i.e., has built-in support for Intel wireless chipsets), then NixOS doesnt have to build the external `iwlwifi` package:
```nix
modulesTree = [kernel]
++ pkgs.lib.optional (!kernel.features ? iwlwifi) kernelPackages.iwlwifi
++ ...;
```
How to add a new (major) version of the Linux kernel to Nixpkgs:
1. Copy the old Nix expression (e.g., `linux-2.6.21.nix`) to the new one (e.g., `linux-2.6.22.nix`) and update it.
2. Add the new kernel to the `kernels` attribute set in `linux-kernels.nix` (e.g., create an attribute `kernel_2_6_22`).
3. Now were going to update the kernel configuration. First unpack the kernel. Then for each supported platform (`i686`, `x86_64`, `uml`) do the following:
1. Make a copy from the old config (e.g., `config-2.6.21-i686-smp`) to the new one (e.g., `config-2.6.22-i686-smp`).
2. Copy the config file for this platform (e.g., `config-2.6.22-i686-smp`) to `.config` in the kernel source tree.
3. Run `make oldconfig ARCH={i386,x86_64,um}` and answer all questions. (For the uml configuration, also add `SHELL=bash`.) Make sure to keep the configuration consistent between platforms (i.e., dont enable some feature on `i686` and disable it on `x86_64`).
4. If needed, you can also run `make menuconfig`:
```ShellSession
$ nix-env -f "<nixpkgs>" -iA ncurses
$ export NIX_CFLAGS_LINK=-lncurses
$ make menuconfig ARCH=arch
```
5. Copy `.config` over the new config file (e.g., `config-2.6.22-i686-smp`).
4. Test building the kernel: `nix-build -A linuxKernel.kernels.kernel_2_6_22`. If it compiles, ship it! For extra credit, try booting NixOS with it.
5. It may be that the new kernel requires updating the external kernel modules and kernel-dependent packages listed in the `linuxPackagesFor` function in `linux-kernels.nix` (such as the NVIDIA drivers, AUFS, etc.). If the updated packages arent backwards compatible with older kernels, you may need to keep the older versions around.

View File

@@ -1,5 +0,0 @@
# Locales {#locales}
To allow simultaneous use of packages linked against different versions of `glibc` with different locale archive formats, Nixpkgs patches `glibc` to rely on `LOCALE_ARCHIVE` environment variable.
On non-NixOS distributions, this variable is obviously not set. This can cause regressions in language support or even crashes in some Nixpkgs-provided programs. The simplest way to mitigate this problem is exporting the `LOCALE_ARCHIVE` variable pointing to `${glibcLocales}/lib/locale/locale-archive`. The drawback (and the reason this is not the default) is the relatively large (a hundred MiB) size of the full set of locales. It is possible to build a custom set of locales by overriding parameters `allLocales` and `locales` of the package.

View File

@@ -1,11 +0,0 @@
# Nginx {#sec-nginx}
[Nginx](https://nginx.org) is a reverse proxy and lightweight webserver.
## ETags on static files served from the Nix store {#sec-nginx-etag}
HTTP has a couple of different mechanisms for caching to prevent clients from having to download the same content repeatedly if a resource has not changed since the last time it was requested. When nginx is used as a server for static files, it implements the caching mechanism based on the [`Last-Modified`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified) response header automatically; unfortunately, it works by using filesystem timestamps to determine the value of the `Last-Modified` header. This doesn't give the desired behavior when the file is in the Nix store because all file timestamps are set to 0 (for reasons related to build reproducibility).
Fortunately, HTTP supports an alternative (and more effective) caching mechanism: the [`ETag`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag) response header. The value of the `ETag` header specifies some identifier for the particular content that the server is sending (e.g., a hash). When a client makes a second request for the same resource, it sends that value back in an `If-None-Match` header. If the ETag value is unchanged, then the server does not need to resend the content.
As of NixOS 19.09, the nginx package in Nixpkgs is patched such that when nginx serves a file out of `/nix/store`, the hash in the store path is used as the `ETag` header in the HTTP response, thus providing proper caching functionality. This happens automatically; you do not need to do modify any configuration to get this behavior.

View File

@@ -1,15 +0,0 @@
# OpenGL {#sec-opengl}
OpenGL support varies depending on which hardware is used and which drivers are available and loaded.
Broadly, we support both GL vendors: Mesa and NVIDIA.
## NixOS Desktop {#nixos-desktop}
The NixOS desktop or other non-headless configurations are the primary target for OpenGL libraries and applications. The current solution for discovering which drivers are available is based on [libglvnd](https://gitlab.freedesktop.org/glvnd/libglvnd). `libglvnd` performs "vendor-neutral dispatch", trying a variety of techniques to find the system's GL implementation. In practice, this will be either via standard GLX for X11 users or EGL for Wayland users, and supporting either NVIDIA or Mesa extensions.
## Nix on GNU/Linux {#nix-on-gnulinux}
If you are using a non-NixOS GNU/Linux/X11 desktop with free software video drivers, consider launching OpenGL-dependent programs from Nixpkgs with Nixpkgs versions of `libglvnd` and `mesa.drivers` in `LD_LIBRARY_PATH`. For Mesa drivers, the Linux kernel version doesn't have to match nixpkgs.
For proprietary video drivers, you might have luck with also adding the corresponding video driver package.

View File

@@ -1,12 +0,0 @@
# Interactive shell helpers {#sec-shell-helpers}
Some packages provide the shell integration to be more useful. But unlike other systems, nix doesn't have a standard `share` directory location. This is why a bunch `PACKAGE-share` scripts are shipped that print the location of the corresponding shared folder. Current list of such packages is as following:
- `fzf` : `fzf-share`
E.g. `fzf` can then be used in the `.bashrc` like this:
```bash
source "$(fzf-share)/completion.bash"
source "$(fzf-share)/key-bindings.bash"
```

View File

@@ -1,63 +0,0 @@
# Steam {#sec-steam}
## Steam in Nix {#sec-steam-nix}
Steam is distributed as a `.deb` file, for now only as an i686 package (the amd64 package only has documentation). When unpacked, it has a script called `steam` that in Ubuntu (their target distro) would go to `/usr/bin`. When run for the first time, this script copies some files to the user's home, which include another script that is the ultimate responsible for launching the steam binary, which is also in `$HOME`.
Nix problems and constraints:
- We don't have `/bin/bash` and many scripts point there. Same thing for `/usr/bin/python`.
- We don't have the dynamic loader in `/lib`.
- The `steam.sh` script in `$HOME` cannot be patched, as it is checked and rewritten by steam.
- The steam binary cannot be patched, it's also checked.
The current approach to deploy Steam in NixOS is composing a FHS-compatible chroot environment, as documented [here](http://sandervanderburg.blogspot.nl/2013/09/composing-fhs-compatible-chroot.html). This allows us to have binaries in the expected paths without disrupting the system, and to avoid patching them to work in a non FHS environment.
## How to play {#sec-steam-play}
Use `programs.steam.enable = true;` if you want to add steam to `systemPackages` and also enable a few workarounds as well as Steam controller support or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pro Controller.
## Troubleshooting {#sec-steam-troub}
- **Steam fails to start. What do I do?**
Try to run
```ShellSession
strace steam
```
to see what is causing steam to fail.
- **Using the FOSS Radeon or nouveau (nvidia) drivers**
- The `newStdcpp` parameter was removed since NixOS 17.09 and should not be needed anymore.
- Steam ships statically linked with a version of `libcrypto` that conflicts with the one dynamically loaded by radeonsi_dri.so. If you get the error:
```
steam.sh: line 713: 7842 Segmentation fault (core dumped)
```
have a look at [this pull request](https://github.com/NixOS/nixpkgs/pull/20269).
- **Java**
1. There is no java in steam chrootenv by default. If you get a message like:
```
/home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found
```
you need to add:
```nix
steam.override { withJava = true; };
```
## steam-run {#sec-steam-run}
The FHS-compatible chroot used for Steam can also be used to run other Linux games that expect a FHS environment. To use it, install the `steam-run` package and run the game with:
```
steam-run ./foo
```

View File

@@ -1,71 +0,0 @@
# Urxvt {#sec-urxvt}
Urxvt, also known as rxvt-unicode, is a highly customizable terminal emulator.
## Configuring urxvt {#sec-urxvt-conf}
In `nixpkgs`, urxvt is provided by the package `rxvt-unicode`. It can be configured to include your choice of plugins, reducing its closure size from the default configuration which includes all available plugins. To make use of this functionality, use an overlay or directly install an expression that overrides its configuration, such as:
```nix
rxvt-unicode.override {
configure = { availablePlugins, ... }: {
plugins = with availablePlugins; [ perls resize-font vtwheel ];
};
}
```
If the `configure` function returns an attrset without the `plugins` attribute, `availablePlugins` will be used automatically.
In order to add plugins but also keep all default plugins installed, it is possible to use the following method:
```nix
rxvt-unicode.override {
configure = { availablePlugins, ... }: {
plugins = (builtins.attrValues availablePlugins) ++ [ custom-plugin ];
};
}
```
To get a list of all the plugins available, open the Nix REPL and run
```ShellSession
$ nix repl
:l <nixpkgs>
map (p: p.name) pkgs.rxvt-unicode.plugins
```
Alternatively, if your shell is bash or zsh and have completion enabled, simply type `nixpkgs.rxvt-unicode.plugins.<tab>`.
In addition to `plugins` the options `extraDeps` and `perlDeps` can be used to install extra packages. `extraDeps` can be used, for example, to provide `xsel` (a clipboard manager) to the clipboard plugin, without installing it globally:
```nix
rxvt-unicode.override {
configure = { availablePlugins, ... }: {
pluginsDeps = [ xsel ];
};
}
```
`perlDeps` is a handy way to provide Perl packages to your custom plugins (in `$HOME/.urxvt/ext`). For example, if you need `AnyEvent` you can do:
```nix
rxvt-unicode.override {
configure = { availablePlugins, ... }: {
perlDeps = with perlPackages; [ AnyEvent ];
};
}
```
## Packaging urxvt plugins {#sec-urxvt-pkg}
Urxvt plugins resides in `pkgs/applications/misc/rxvt-unicode-plugins`. To add a new plugin, create an expression in a subdirectory and add the package to the set in `pkgs/applications/misc/rxvt-unicode-plugins/default.nix`.
A plugin can be any kind of derivation, the only requirement is that it should always install perl scripts in `$out/lib/urxvt/perl`. Look for existing plugins for examples.
If the plugin is itself a Perl package that needs to be imported from other plugins or scripts, add the following passthrough:
```nix
passthru.perlPackages = [ "self" ];
```
This will make the urxvt wrapper pick up the dependency and set up the Perl path accordingly.

View File

@@ -1,85 +0,0 @@
# WeeChat {#sec-weechat}
WeeChat can be configured to include your choice of plugins, reducing its closure size from the default configuration which includes all available plugins. To make use of this functionality, install an expression that overrides its configuration, such as:
```nix
weechat.override {configure = {availablePlugins, ...}: {
plugins = with availablePlugins; [ python perl ];
}
}
```
If the `configure` function returns an attrset without the `plugins` attribute, `availablePlugins` will be used automatically.
The plugins currently available are `python`, `perl`, `ruby`, `guile`, `tcl` and `lua`.
The Python and Perl plugins allows the addition of extra libraries. For instance, the `inotify.py` script in `weechat-scripts` requires D-Bus or libnotify, and the `fish.py` script requires `pycrypto`. To use these scripts, use the plugin's `withPackages` attribute:
```nix
weechat.override { configure = {availablePlugins, ...}: {
plugins = with availablePlugins; [
(python.withPackages (ps: with ps; [ pycrypto python-dbus ]))
];
};
}
```
In order to also keep all default plugins installed, it is possible to use the following method:
```nix
weechat.override { configure = { availablePlugins, ... }: {
plugins = builtins.attrValues (availablePlugins // {
python = availablePlugins.python.withPackages (ps: with ps; [ pycrypto python-dbus ]);
});
}; }
```
WeeChat allows to set defaults on startup using the `--run-command`. The `configure` method can be used to pass commands to the program:
```nix
weechat.override {
configure = { availablePlugins, ... }: {
init = ''
/set foo bar
/server add libera irc.libera.chat
'';
};
}
```
Further values can be added to the list of commands when running `weechat --run-command "your-commands"`.
Additionally, it's possible to specify scripts to be loaded when starting `weechat`. These will be loaded before the commands from `init`:
```nix
weechat.override {
configure = { availablePlugins, ... }: {
scripts = with pkgs.weechatScripts; [
weechat-xmpp weechat-matrix-bridge wee-slack
];
init = ''
/set plugins.var.python.jabber.key "val"
'':
};
}
```
In `nixpkgs` there's a subpackage which contains derivations for WeeChat scripts. Such derivations expect a `passthru.scripts` attribute, which contains a list of all scripts inside the store path. Furthermore, all scripts have to live in `$out/share`. An exemplary derivation looks like this:
```nix
{ stdenv, fetchurl }:
stdenv.mkDerivation {
name = "exemplary-weechat-script";
src = fetchurl {
url = "https://scripts.tld/your-scripts.tar.gz";
sha256 = "...";
};
passthru.scripts = [ "foo.py" "bar.lua" ];
installPhase = ''
mkdir $out/share
cp foo.py $out/share
cp bar.lua $out/share
'';
}
```

View File

@@ -1,34 +0,0 @@
# X.org {#sec-xorg}
The Nix expressions for the X.org packages reside in `pkgs/servers/x11/xorg/default.nix`. This file is automatically generated from lists of tarballs in an X.org release. As such it should not be modified directly; rather, you should modify the lists, the generator script or the file `pkgs/servers/x11/xorg/overrides.nix`, in which you can override or add to the derivations produced by the generator.
## Katamari Tarballs {#katamari-tarballs}
X.org upstream releases used to include [katamari](https://en.wiktionary.org/wiki/%E3%81%8B%E3%81%9F%E3%81%BE%E3%82%8A) releases, which included a holistic recommended version for each tarball, up until 7.7. To create a list of tarballs in a katamari release:
```ShellSession
export release="X11R7.7"
export url="mirror://xorg/$release/src/everything/"
cat $(PRINT_PATH=1 nix-prefetch-url $url | tail -n 1) \
| perl -e 'while (<>) { if (/(href|HREF)="([^"]*.bz2)"/) { print "$ENV{'url'}$2\n"; }; }' \
| sort > "tarballs-$release.list"
```
## Individual Tarballs {#individual-tarballs}
The upstream release process for [X11R7.8](https://x.org/wiki/Releases/7.8/) does not include a planned katamari. Instead, each component of X.org is released as its own tarball. We maintain `pkgs/servers/x11/xorg/tarballs.list` as a list of tarballs for each individual package. This list includes X.org core libraries and protocol descriptions, extra newer X11 interface libraries, like `xorg.libxcb`, and classic utilities which are largely unused but still available if needed, like `xorg.imake`.
## Generating Nix Expressions {#generating-nix-expressions}
The generator is invoked as follows:
```ShellSession
cd pkgs/servers/x11/xorg
<tarballs.list perl ./generate-expr-from-tarballs.pl
```
For each of the tarballs in the `.list` files, the script downloads it, unpacks it, and searches its `configure.ac` and `*.pc.in` files for dependencies. This information is used to generate `default.nix`. The generator caches downloaded tarballs between runs. Pay close attention to the `NOT FOUND: $NAME` messages at the end of the run, since they may indicate missing dependencies. (Some might be optional dependencies, however.)
## Overriding the Generator {#overriding-the-generator}
If the expression for a package requires derivation attributes that the generator cannot figure out automatically (say, `patches` or a `postInstall` hook), you should modify `pkgs/servers/x11/xorg/overrides.nix`.

View File

@@ -1,10 +0,0 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="chap-special">
<title>Special builders</title>
<para>
This chapter describes several special builders.
</para>
<xi:include href="special/fhs-environments.section.xml" />
<xi:include href="special/mkshell.section.xml" />
</chapter>

View File

@@ -1,49 +0,0 @@
# buildFHSUserEnv {#sec-fhs-environments}
`buildFHSUserEnv` provides a way to build and run FHS-compatible lightweight sandboxes. It creates an isolated root with bound `/nix/store`, so its footprint in terms of disk space needed is quite small. This allows one to run software which is hard or unfeasible to patch for NixOS -- 3rd-party source trees with FHS assumptions, games distributed as tarballs, software with integrity checking and/or external self-updated binaries. It uses Linux namespaces feature to create temporary lightweight environments which are destroyed after all child processes exit, without root user rights requirement. Accepted arguments are:
- `name`
Environment name.
- `targetPkgs`
Packages to be installed for the main host's architecture (i.e. x86_64 on x86_64 installations). Along with libraries binaries are also installed.
- `multiPkgs`
Packages to be installed for all architectures supported by a host (i.e. i686 and x86_64 on x86_64 installations). Only libraries are installed by default.
- `extraBuildCommands`
Additional commands to be executed for finalizing the directory structure.
- `extraBuildCommandsMulti`
Like `extraBuildCommands`, but executed only on multilib architectures.
- `extraOutputsToInstall`
Additional derivation outputs to be linked for both target and multi-architecture packages.
- `extraInstallCommands`
Additional commands to be executed for finalizing the derivation with runner script.
- `runScript`
A command that would be executed inside the sandbox and passed all the command line arguments. It defaults to `bash`.
- `profile`
Optional script for `/etc/profile` within the sandbox.
One can create a simple environment using a `shell.nix` like that:
```nix
{ pkgs ? import <nixpkgs> {} }:
(pkgs.buildFHSUserEnv {
name = "simple-x11-env";
targetPkgs = pkgs: (with pkgs;
[ udev
alsa-lib
]) ++ (with pkgs.xorg;
[ libX11
libXcursor
libXrandr
]);
multiPkgs = pkgs: (with pkgs;
[ udev
alsa-lib
]);
runScript = "bash";
}).env
```
Running `nix-shell` would then drop you into a shell with these libraries and binaries available. You can use this to run closed-source applications which expect FHS structure without hassles: simply change `runScript` to the application path, e.g. `./bin/start.sh` -- relative paths are supported.
Additionally, the FHS builder links all relocated gsettings-schemas (the glib setup-hook moves them to `share/gsettings-schemas/${name}/glib-2.0/schemas`) to their standard FHS location. This means you don't need to wrap binaries with `wrapGAppsHook`.

View File

@@ -1,37 +0,0 @@
# pkgs.mkShell {#sec-pkgs-mkShell}
`pkgs.mkShell` is a specialized `stdenv.mkDerivation` that removes some
repetition when using it with `nix-shell` (or `nix develop`).
## Usage {#sec-pkgs-mkShell-usage}
Here is a common usage example:
```nix
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
packages = [ pkgs.gnumake ];
inputsFrom = [ pkgs.hello pkgs.gnutar ];
shellHook = ''
export DEBUG=1
'';
}
```
## Attributes
* `name` (default: `nix-shell`). Set the name of the derivation.
* `packages` (default: `[]`). Add executable packages to the `nix-shell` environment.
* `inputsFrom` (default: `[]`). Add build dependencies of the listed derivations to the `nix-shell` environment.
* `shellHook` (default: `""`). Bash statements that are executed by `nix-shell`.
... all the attributes of `stdenv.mkDerivation`.
## Building the shell
This derivation output will contain a text file that contains a reference to
all the build inputs. This is useful in CI where we want to make sure that
every derivation, and its dependencies, build properly. Or when creating a GC
root so that the build dependencies don't get garbage-collected.

View File

@@ -1,128 +0,0 @@
# Testers {#chap-testers}
This chapter describes several testing builders which are available in the <literal>testers</literal> namespace.
## `testVersion` {#tester-testVersion}
Checks the command output contains the specified version
Although simplistic, this test assures that the main program
can run. While there's no substitute for a real test case,
it does catch dynamic linking errors and such. It also provides
some protection against accidentally building the wrong version,
for example when using an 'old' hash in a fixed-output derivation.
Examples:
```nix
passthru.tests.version = testVersion { package = hello; };
passthru.tests.version = testVersion {
package = seaweedfs;
command = "weed version";
};
passthru.tests.version = testVersion {
package = key;
command = "KeY --help";
# Wrong '2.5' version in the code. Drop on next version.
version = "2.5";
};
```
## `testEqualDerivation` {#tester-testEqualDerivation}
Checks that two packages produce the exact same build instructions.
This can be used to make sure that a certain difference of configuration,
such as the presence of an overlay does not cause a cache miss.
When the derivations are equal, the return value is an empty file.
Otherwise, the build log explains the difference via `nix-diff`.
Example:
```nix
testEqualDerivation
"The hello package must stay the same when enabling checks."
hello
(hello.overrideAttrs(o: { doCheck = true; }))
```
## `invalidateFetcherByDrvHash` {#tester-invalidateFetcherByDrvHash}
Use the derivation hash to invalidate the output via name, for testing.
Type: `(a@{ name, ... } -> Derivation) -> a -> Derivation`
Normally, fixed output derivations can and should be cached by their output
hash only, but for testing we want to re-fetch everytime the fetcher changes.
Changes to the fetcher become apparent in the drvPath, which is a hash of
how to fetch, rather than a fixed store path.
By inserting this hash into the name, we can make sure to re-run the fetcher
every time the fetcher changes.
This relies on the assumption that Nix isn't clever enough to reuse its
database of local store contents to optimize fetching.
You might notice that the "salted" name derives from the normal invocation,
not the final derivation. `invalidateFetcherByDrvHash` has to invoke the fetcher
function twice: once to get a derivation hash, and again to produce the final
fixed output derivation.
Example:
```nix
tests.fetchgit = invalidateFetcherByDrvHash fetchgit {
name = "nix-source";
url = "https://github.com/NixOS/nix";
rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a";
sha256 = "sha256-7DszvbCNTjpzGRmpIVAWXk20P0/XTrWZ79KSOGLrUWY=";
};
```
## `nixosTest` {#tester-nixosTest}
Run a NixOS VM network test using this evaluation of Nixpkgs.
NOTE: This function is primarily for external use. NixOS itself uses `make-test-python.nix` directly. Packages defined in Nixpkgs [reuse NixOS tests via `nixosTests`, plural](#ssec-nixos-tests-linking).
It is mostly equivalent to the function `import ./make-test-python.nix` from the
[NixOS manual](https://nixos.org/nixos/manual/index.html#sec-nixos-tests),
except that the current application of Nixpkgs (`pkgs`) will be used, instead of
letting NixOS invoke Nixpkgs anew.
If a test machine needs to set NixOS options under `nixpkgs`, it must set only the
`nixpkgs.pkgs` option.
### Parameter
A [NixOS VM test network](https://nixos.org/nixos/manual/index.html#sec-nixos-tests), or path to it. Example:
```nix
{
name = "my-test";
nodes = {
machine1 = { lib, pkgs, nodes, ... }: {
environment.systemPackages = [ pkgs.hello ];
services.foo.enable = true;
};
# machine2 = ...;
};
testScript = ''
start_all()
machine1.wait_for_unit("foo.service")
machine1.succeed("hello | foo-send")
'';
}
```
### Result
A derivation that runs the VM test.
Notable attributes:
* `nodes`: the evaluated NixOS configurations. Useful for debugging and exploring the configuration.
* `driverInteractive`: a script that launches an interactive Python session in the context of the `testScript`.

View File

@@ -1,223 +0,0 @@
# Trivial builders {#chap-trivial-builders}
Nixpkgs provides a couple of functions that help with building derivations. The most important one, `stdenv.mkDerivation`, has already been documented above. The following functions wrap `stdenv.mkDerivation`, making it easier to use in certain cases.
## `runCommand` {#trivial-builder-runCommand}
This takes three arguments, `name`, `env`, and `buildCommand`. `name` is just the name that Nix will append to the store path in the same way that `stdenv.mkDerivation` uses its `name` attribute. `env` is an attribute set specifying environment variables that will be set for this derivation. These attributes are then passed to the wrapped `stdenv.mkDerivation`. `buildCommand` specifies the commands that will be run to create this derivation. Note that you will need to create `$out` for Nix to register the command as successful.
An example of using `runCommand` is provided below.
```nix
(import <nixpkgs> {}).runCommand "my-example" {} ''
echo My example command is running
mkdir $out
echo I can write data to the Nix store > $out/message
echo I can also run basic commands like:
echo ls
ls
echo whoami
whoami
echo date
date
''
```
## `runCommandCC` {#trivial-builder-runCommandCC}
This works just like `runCommand`. The only difference is that it also provides a C compiler in `buildCommand`'s environment. To minimize your dependencies, you should only use this if you are sure you will need a C compiler as part of running your command.
## `runCommandLocal` {#trivial-builder-runCommandLocal}
Variant of `runCommand` that forces the derivation to be built locally, it is not substituted. This is intended for very cheap commands (<1s execution time). It saves on the network round-trip and can speed up a build.
::: {.note}
This sets [`allowSubstitutes` to `false`](https://nixos.org/nix/manual/#adv-attr-allowSubstitutes), so only use `runCommandLocal` if you are certain the user will always have a builder for the `system` of the derivation. This should be true for most trivial use cases (e.g., just copying some files to a different location or adding symlinks) because there the `system` is usually the same as `builtins.currentSystem`.
:::
## `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin` {#trivial-builder-writeText}
These functions write `text` to the Nix store. This is useful for creating scripts from Nix expressions. `writeTextFile` takes an attribute set and expects two arguments, `name` and `text`. `name` corresponds to the name used in the Nix store path. `text` will be the contents of the file. You can also set `executable` to true to make this file have the executable bit set.
Many more commands wrap `writeTextFile` including `writeText`, `writeTextDir`, `writeScript`, and `writeScriptBin`. These are convenience functions over `writeTextFile`.
Here are a few examples:
```nix
# Writes my-file to /nix/store/<store path>
writeTextFile {
name = "my-file";
text = ''
Contents of File
'';
}
# See also the `writeText` helper function below.
# Writes executable my-file to /nix/store/<store path>/bin/my-file
writeTextFile {
name = "my-file";
text = ''
Contents of File
'';
executable = true;
destination = "/bin/my-file";
}
# Writes contents of file to /nix/store/<store path>
writeText "my-file"
''
Contents of File
'';
# Writes contents of file to /nix/store/<store path>/share/my-file
writeTextDir "share/my-file"
''
Contents of File
'';
# Writes my-file to /nix/store/<store path> and makes executable
writeScript "my-file"
''
Contents of File
'';
# Writes my-file to /nix/store/<store path>/bin/my-file and makes executable.
writeScriptBin "my-file"
''
Contents of File
'';
# Writes my-file to /nix/store/<store path> and makes executable.
writeShellScript "my-file"
''
Contents of File
'';
# Writes my-file to /nix/store/<store path>/bin/my-file and makes executable.
writeShellScriptBin "my-file"
''
Contents of File
'';
```
## `concatTextFile`, `concatText`, `concatScript` {#trivial-builder-concatText}
These functions concatenate `files` to the Nix store in a single file. This is useful for configuration files structured in lines of text. `concatTextFile` takes an attribute set and expects two arguments, `name` and `files`. `name` corresponds to the name used in the Nix store path. `files` will be the files to be concatenated. You can also set `executable` to true to make this file have the executable bit set.
`concatText` and`concatScript` are simple wrappers over `concatTextFile`.
Here are a few examples:
```nix
# Writes my-file to /nix/store/<store path>
concatTextFile {
name = "my-file";
files = [ drv1 "${drv2}/path/to/file" ];
}
# See also the `concatText` helper function below.
# Writes executable my-file to /nix/store/<store path>/bin/my-file
concatTextFile {
name = "my-file";
files = [ drv1 "${drv2}/path/to/file" ];
executable = true;
destination = "/bin/my-file";
}
# Writes contents of files to /nix/store/<store path>
concatText "my-file" [ file1 file2 ]
# Writes contents of files to /nix/store/<store path>
concatScript "my-file" [ file1 file2 ]
```
## `writeShellApplication` {#trivial-builder-writeShellApplication}
This can be used to easily produce a shell script that has some dependencies (`runtimeInputs`). It automatically sets the `PATH` of the script to contain all of the listed inputs, sets some sanity shellopts (`errexit`, `nounset`, `pipefail`), and checks the resulting script with [`shellcheck`](https://github.com/koalaman/shellcheck).
For example, look at the following code:
```nix
writeShellApplication {
name = "show-nixos-org";
runtimeInputs = [ curl w3m ];
text = ''
curl -s 'https://nixos.org' | w3m -dump -T text/html
'';
}
```
Unlike with normal `writeShellScriptBin`, there is no need to manually write out `${curl}/bin/curl`, setting the PATH
was handled by `writeShellApplication`. Moreover, the script is being checked with `shellcheck` for more strict
validation.
## `symlinkJoin` {#trivial-builder-symlinkJoin}
This can be used to put many derivations into the same directory structure. It works by creating a new derivation and adding symlinks to each of the paths listed. It expects two arguments, `name`, and `paths`. `name` is the name used in the Nix store path for the created derivation. `paths` is a list of paths that will be symlinked. These paths can be to Nix store derivations or any other subdirectory contained within.
Here is an example:
```nix
# adds symlinks of hello and stack to current build and prints "links added"
symlinkJoin { name = "myexample"; paths = [ pkgs.hello pkgs.stack ]; postBuild = "echo links added"; }
```
This creates a derivation with a directory structure like the following:
```
/nix/store/sglsr5g079a5235hy29da3mq3hv8sjmm-myexample
|-- bin
| |-- hello -> /nix/store/qy93dp4a3rqyn2mz63fbxjg228hffwyw-hello-2.10/bin/hello
| `-- stack -> /nix/store/6lzdpxshx78281vy056lbk553ijsdr44-stack-2.1.3.1/bin/stack
`-- share
|-- bash-completion
| `-- completions
| `-- stack -> /nix/store/6lzdpxshx78281vy056lbk553ijsdr44-stack-2.1.3.1/share/bash-completion/completions/stack
|-- fish
| `-- vendor_completions.d
| `-- stack.fish -> /nix/store/6lzdpxshx78281vy056lbk553ijsdr44-stack-2.1.3.1/share/fish/vendor_completions.d/stack.fish
...
```
## `writeReferencesToFile` {#trivial-builder-writeReferencesToFile}
Writes the closure of transitive dependencies to a file.
This produces the equivalent of `nix-store -q --requisites`.
For example,
```nix
writeReferencesToFile (writeScriptBin "hi" ''${hello}/bin/hello'')
```
produces an output path `/nix/store/<hash>-runtime-deps` containing
```nix
/nix/store/<hash>-hello-2.10
/nix/store/<hash>-hi
/nix/store/<hash>-libidn2-2.3.0
/nix/store/<hash>-libunistring-0.9.10
/nix/store/<hash>-glibc-2.32-40
```
You can see that this includes `hi`, the original input path,
`hello`, which is a direct reference, but also
the other paths that are indirectly required to run `hello`.
## `writeDirectReferencesToFile` {#trivial-builder-writeDirectReferencesToFile}
Writes the set of references to the output file, that is, their immediate dependencies.
This produces the equivalent of `nix-store -q --references`.
For example,
```nix
writeDirectReferencesToFile (writeScriptBin "hi" ''${hello}/bin/hello'')
```
produces an output path `/nix/store/<hash>-runtime-references` containing
```nix
/nix/store/<hash>-hello-2.10
```
but none of `hello`'s dependencies because those are not referenced directly
by `hi`'s output.

704
doc/coding-conventions.xml Normal file
View File

@@ -0,0 +1,704 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="chap-conventions">
<title>Coding conventions</title>
<section xml:id="sec-syntax"><title>Syntax</title>
<itemizedlist>
<listitem><para>Use 2 spaces of indentation per indentation level in
Nix expressions, 4 spaces in shell scripts.</para></listitem>
<listitem><para>Do not use tab characters, i.e. configure your
editor to use soft tabs. For instance, use <literal>(setq-default
indent-tabs-mode nil)</literal> in Emacs. Everybody has different
tab settings so its asking for trouble.</para></listitem>
<listitem><para>Use <literal>lowerCamelCase</literal> for variable
names, not <literal>UpperCamelCase</literal>. Note, this rule does
not apply to package attribute names, which instead follow the rules
in <xref linkend="sec-package-naming"/>.</para></listitem>
<listitem><para>Function calls with attribute set arguments are
written as
<programlisting>
foo {
arg = ...;
}
</programlisting>
not
<programlisting>
foo
{
arg = ...;
}
</programlisting>
Also fine is
<programlisting>
foo { arg = ...; }
</programlisting>
if it's a short call.</para></listitem>
<listitem><para>In attribute sets or lists that span multiple lines,
the attribute names or list elements should be aligned:
<programlisting>
# A long list.
list =
[ elem1
elem2
elem3
];
# A long attribute set.
attrs =
{ attr1 = short_expr;
attr2 =
if true then big_expr else big_expr;
};
# Alternatively:
attrs = {
attr1 = short_expr;
attr2 =
if true then big_expr else big_expr;
};
</programlisting>
</para></listitem>
<listitem><para>Short lists or attribute sets can be written on one
line:
<programlisting>
# A short list.
list = [ elem1 elem2 elem3 ];
# A short set.
attrs = { x = 1280; y = 1024; };
</programlisting>
</para></listitem>
<listitem><para>Breaking in the middle of a function argument can
give hard-to-read code, like
<programlisting>
someFunction { x = 1280;
y = 1024; } otherArg
yetAnotherArg
</programlisting>
(especially if the argument is very large, spanning multiple
lines).</para>
<para>Better:
<programlisting>
someFunction
{ x = 1280; y = 1024; }
otherArg
yetAnotherArg
</programlisting>
or
<programlisting>
let res = { x = 1280; y = 1024; };
in someFunction res otherArg yetAnotherArg
</programlisting>
</para></listitem>
<listitem><para>The bodies of functions, asserts, and withs are not
indented to prevent a lot of superfluous indentation levels, i.e.
<programlisting>
{ arg1, arg2 }:
assert system == "i686-linux";
stdenv.mkDerivation { ...
</programlisting>
not
<programlisting>
{ arg1, arg2 }:
assert system == "i686-linux";
stdenv.mkDerivation { ...
</programlisting>
</para></listitem>
<listitem><para>Function formal arguments are written as:
<programlisting>
{ arg1, arg2, arg3 }:
</programlisting>
but if they don't fit on one line they're written as:
<programlisting>
{ arg1, arg2, arg3
, arg4, ...
, # Some comment...
argN
}:
</programlisting>
</para></listitem>
<listitem><para>Functions should list their expected arguments as
precisely as possible. That is, write
<programlisting>
{ stdenv, fetchurl, perl }: <replaceable>...</replaceable>
</programlisting>
instead of
<programlisting>
args: with args; <replaceable>...</replaceable>
</programlisting>
or
<programlisting>
{ stdenv, fetchurl, perl, ... }: <replaceable>...</replaceable>
</programlisting>
</para>
<para>For functions that are truly generic in the number of
arguments (such as wrappers around <varname>mkDerivation</varname>)
that have some required arguments, you should write them using an
<literal>@</literal>-pattern:
<programlisting>
{ stdenv, doCoverageAnalysis ? false, ... } @ args:
stdenv.mkDerivation (args // {
<replaceable>...</replaceable> if doCoverageAnalysis then "bla" else "" <replaceable>...</replaceable>
})
</programlisting>
instead of
<programlisting>
args:
args.stdenv.mkDerivation (args // {
<replaceable>...</replaceable> if args ? doCoverageAnalysis &amp;&amp; args.doCoverageAnalysis then "bla" else "" <replaceable>...</replaceable>
})
</programlisting>
</para></listitem>
</itemizedlist>
</section>
<section xml:id="sec-package-naming"><title>Package naming</title>
<para>In Nixpkgs, there are generally three different names associated with a package:
<itemizedlist>
<listitem><para>The <varname>name</varname> attribute of the
derivation (excluding the version part). This is what most users
see, in particular when using
<command>nix-env</command>.</para></listitem>
<listitem><para>The variable name used for the instantiated package
in <filename>all-packages.nix</filename>, and when passing it as a
dependency to other functions. Typically this is called the
<emphasis>package attribute name</emphasis>. This is what Nix
expression authors see. It can also be used when installing using
<command>nix-env -iA</command>.</para></listitem>
<listitem><para>The filename for (the directory containing) the Nix
expression.</para></listitem>
</itemizedlist>
Most of the time, these are the same. For instance, the package
<literal>e2fsprogs</literal> has a <varname>name</varname> attribute
<literal>"e2fsprogs-<replaceable>version</replaceable>"</literal>, is
bound to the variable name <varname>e2fsprogs</varname> in
<filename>all-packages.nix</filename>, and the Nix expression is in
<filename>pkgs/os-specific/linux/e2fsprogs/default.nix</filename>.
</para>
<para>There are a few naming guidelines:
<itemizedlist>
<listitem><para>Generally, try to stick to the upstream package
name.</para></listitem>
<listitem><para>Dont use uppercase letters in the
<literal>name</literal> attribute — e.g.,
<literal>"mplayer-1.0rc2"</literal> instead of
<literal>"MPlayer-1.0rc2"</literal>.</para></listitem>
<listitem><para>The version part of the <literal>name</literal>
attribute <emphasis>must</emphasis> start with a digit (following a
dash) — e.g., <literal>"hello-0.3.1rc2"</literal>.</para></listitem>
<listitem><para>If a package is not a release but a commit from a repository, then
the version part of the name <emphasis>must</emphasis> be the date of that
(fetched) commit. The date must be in <literal>"YYYY-MM-DD"</literal> format.
Also append <literal>"unstable"</literal> to the name - e.g.,
<literal>"pkgname-unstable-2014-09-23"</literal>.</para></listitem>
<listitem><para>Dashes in the package name should be preserved in
new variable names, rather than converted to underscores or camel
cased — e.g., <varname>http-parser</varname> instead of
<varname>http_parser</varname> or <varname>httpParser</varname>. The
hyphenated style is preferred in all three package
names.</para></listitem>
<listitem><para>If there are multiple versions of a package, this
should be reflected in the variable names in
<filename>all-packages.nix</filename>,
e.g. <varname>json-c-0-9</varname> and <varname>json-c-0-11</varname>.
If there is an obvious “default” version, make an attribute like
<literal>json-c = json-c-0-9;</literal>.
See also <xref linkend="sec-versioning" /></para></listitem>
</itemizedlist>
</para>
</section>
<section xml:id="sec-organisation"><title>File naming and organisation</title>
<para>Names of files and directories should be in lowercase, with
dashes between words — not in camel case. For instance, it should be
<filename>all-packages.nix</filename>, not
<filename>allPackages.nix</filename> or
<filename>AllPackages.nix</filename>.</para>
<section xml:id="sec-hierarchy"><title>Hierarchy</title>
<para>Each package should be stored in its own directory somewhere in
the <filename>pkgs/</filename> tree, i.e. in
<filename>pkgs/<replaceable>category</replaceable>/<replaceable>subcategory</replaceable>/<replaceable>...</replaceable>/<replaceable>pkgname</replaceable></filename>.
Below are some rules for picking the right category for a package.
Many packages fall under several categories; what matters is the
<emphasis>primary</emphasis> purpose of a package. For example, the
<literal>libxml2</literal> package builds both a library and some
tools; but its a library foremost, so it goes under
<filename>pkgs/development/libraries</filename>.</para>
<para>When in doubt, consider refactoring the
<filename>pkgs/</filename> tree, e.g. creating new categories or
splitting up an existing category.</para>
<variablelist>
<varlistentry>
<term>If its used to support <emphasis>software development</emphasis>:</term>
<listitem>
<variablelist>
<varlistentry>
<term>If its a <emphasis>library</emphasis> used by other packages:</term>
<listitem>
<para><filename>development/libraries</filename> (e.g. <filename>libxml2</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its a <emphasis>compiler</emphasis>:</term>
<listitem>
<para><filename>development/compilers</filename> (e.g. <filename>gcc</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its an <emphasis>interpreter</emphasis>:</term>
<listitem>
<para><filename>development/interpreters</filename> (e.g. <filename>guile</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its a (set of) development <emphasis>tool(s)</emphasis>:</term>
<listitem>
<variablelist>
<varlistentry>
<term>If its a <emphasis>parser generator</emphasis> (including lexers):</term>
<listitem>
<para><filename>development/tools/parsing</filename> (e.g. <filename>bison</filename>, <filename>flex</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its a <emphasis>build manager</emphasis>:</term>
<listitem>
<para><filename>development/tools/build-managers</filename> (e.g. <filename>gnumake</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Else:</term>
<listitem>
<para><filename>development/tools/misc</filename> (e.g. <filename>binutils</filename>)</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>Else:</term>
<listitem>
<para><filename>development/misc</filename></para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>If its a (set of) <emphasis>tool(s)</emphasis>:</term>
<listitem>
<para>(A tool is a relatively small program, especially one intended
to be used non-interactively.)</para>
<variablelist>
<varlistentry>
<term>If its for <emphasis>networking</emphasis>:</term>
<listitem>
<para><filename>tools/networking</filename> (e.g. <filename>wget</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its for <emphasis>text processing</emphasis>:</term>
<listitem>
<para><filename>tools/text</filename> (e.g. <filename>diffutils</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its a <emphasis>system utility</emphasis>, i.e.,
something related or essential to the operation of a
system:</term>
<listitem>
<para><filename>tools/system</filename> (e.g. <filename>cron</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its an <emphasis>archiver</emphasis> (which may
include a compression function):</term>
<listitem>
<para><filename>tools/archivers</filename> (e.g. <filename>zip</filename>, <filename>tar</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its a <emphasis>compression</emphasis> program:</term>
<listitem>
<para><filename>tools/compression</filename> (e.g. <filename>gzip</filename>, <filename>bzip2</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its a <emphasis>security</emphasis>-related program:</term>
<listitem>
<para><filename>tools/security</filename> (e.g. <filename>nmap</filename>, <filename>gnupg</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Else:</term>
<listitem>
<para><filename>tools/misc</filename></para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>If its a <emphasis>shell</emphasis>:</term>
<listitem>
<para><filename>shells</filename> (e.g. <filename>bash</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its a <emphasis>server</emphasis>:</term>
<listitem>
<variablelist>
<varlistentry>
<term>If its a web server:</term>
<listitem>
<para><filename>servers/http</filename> (e.g. <filename>apache-httpd</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its an implementation of the X Windowing System:</term>
<listitem>
<para><filename>servers/x11</filename> (e.g. <filename>xorg</filename> — this includes the client libraries and programs)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Else:</term>
<listitem>
<para><filename>servers/misc</filename></para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>If its a <emphasis>desktop environment</emphasis>:</term>
<listitem>
<para><filename>desktops</filename> (e.g. <filename>kde</filename>, <filename>gnome</filename>, <filename>enlightenment</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its a <emphasis>window manager</emphasis>:</term>
<listitem>
<para><filename>applications/window-managers</filename> (e.g. <filename>awesome</filename>, <filename>stumpwm</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its an <emphasis>application</emphasis>:</term>
<listitem>
<para>A (typically large) program with a distinct user
interface, primarily used interactively.</para>
<variablelist>
<varlistentry>
<term>If its a <emphasis>version management system</emphasis>:</term>
<listitem>
<para><filename>applications/version-management</filename> (e.g. <filename>subversion</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its for <emphasis>video playback / editing</emphasis>:</term>
<listitem>
<para><filename>applications/video</filename> (e.g. <filename>vlc</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its for <emphasis>graphics viewing / editing</emphasis>:</term>
<listitem>
<para><filename>applications/graphics</filename> (e.g. <filename>gimp</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its for <emphasis>networking</emphasis>:</term>
<listitem>
<variablelist>
<varlistentry>
<term>If its a <emphasis>mailreader</emphasis>:</term>
<listitem>
<para><filename>applications/networking/mailreaders</filename> (e.g. <filename>thunderbird</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its a <emphasis>newsreader</emphasis>:</term>
<listitem>
<para><filename>applications/networking/newsreaders</filename> (e.g. <filename>pan</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its a <emphasis>web browser</emphasis>:</term>
<listitem>
<para><filename>applications/networking/browsers</filename> (e.g. <filename>firefox</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Else:</term>
<listitem>
<para><filename>applications/networking/misc</filename></para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>Else:</term>
<listitem>
<para><filename>applications/misc</filename></para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>If its <emphasis>data</emphasis> (i.e., does not have a
straight-forward executable semantics):</term>
<listitem>
<variablelist>
<varlistentry>
<term>If its a <emphasis>font</emphasis>:</term>
<listitem>
<para><filename>data/fonts</filename></para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its related to <emphasis>SGML/XML processing</emphasis>:</term>
<listitem>
<variablelist>
<varlistentry>
<term>If its an <emphasis>XML DTD</emphasis>:</term>
<listitem>
<para><filename>data/sgml+xml/schemas/xml-dtd</filename> (e.g. <filename>docbook</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If its an <emphasis>XSLT stylesheet</emphasis>:</term>
<listitem>
<para>(Okay, these are executable...)</para>
<para><filename>data/sgml+xml/stylesheets/xslt</filename> (e.g. <filename>docbook-xsl</filename>)</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>If its a <emphasis>game</emphasis>:</term>
<listitem>
<para><filename>games</filename></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Else:</term>
<listitem>
<para><filename>misc</filename></para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="sec-versioning"><title>Versioning</title>
<para>Because every version of a package in Nixpkgs creates a
potential maintenance burden, old versions of a package should not be
kept unless there is a good reason to do so. For instance, Nixpkgs
contains several versions of GCC because other packages dont build
with the latest version of GCC. Other examples are having both the
latest stable and latest pre-release version of a package, or to keep
several major releases of an application that differ significantly in
functionality.</para>
<para>If there is only one version of a package, its Nix expression
should be named <filename>e2fsprogs/default.nix</filename>. If there
are multiple versions, this should be reflected in the filename,
e.g. <filename>e2fsprogs/1.41.8.nix</filename> and
<filename>e2fsprogs/1.41.9.nix</filename>. The version in the
filename should leave out unnecessary detail. For instance, if we
keep the latest Firefox 2.0.x and 3.5.x versions in Nixpkgs, they
should be named <filename>firefox/2.0.nix</filename> and
<filename>firefox/3.5.nix</filename>, respectively (which, at a given
point, might contain versions <literal>2.0.0.20</literal> and
<literal>3.5.4</literal>). If a version requires many auxiliary
files, you can use a subdirectory for each version,
e.g. <filename>firefox/2.0/default.nix</filename> and
<filename>firefox/3.5/default.nix</filename>.</para>
<para>All versions of a package <emphasis>must</emphasis> be included
in <filename>all-packages.nix</filename> to make sure that they
evaluate correctly.</para>
</section>
</section>
<section xml:id="sec-sources"><title>Fetching Sources</title>
<para>There are multiple ways to fetch a package source in nixpkgs. The
general guideline is that you should package sources with a high degree of
availability. Right now there is only one fetcher which has mirroring
support and that is <literal>fetchurl</literal>. Note that you should also
prefer protocols which have a corresponding proxy environment variable.
</para>
<para>You can find many source fetch helpers in <literal>pkgs/build-support/fetch*</literal>.
</para>
<para>In the file <literal>pkgs/top-level/all-packages.nix</literal> you can
find fetch helpers, these have names on the form
<literal>fetchFrom*</literal>. The intention of these are to provide
snapshot fetches but using the same api as some of the version controlled
fetchers from <literal>pkgs/build-support/</literal>. As an example going
from bad to good:
<itemizedlist>
<listitem>
<para>Bad: Uses <literal>git://</literal> which won't be proxied.
<programlisting>
src = fetchgit {
url = "git://github.com/NixOS/nix.git";
rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
sha256 = "1cw5fszffl5pkpa6s6wjnkiv6lm5k618s32sp60kvmvpy7a2v9kg";
}
</programlisting>
</para>
</listitem>
<listitem>
<para>Better: This is ok, but an archive fetch will still be faster.
<programlisting>
src = fetchgit {
url = "https://github.com/NixOS/nix.git";
rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
sha256 = "1cw5fszffl5pkpa6s6wjnkiv6lm5k618s32sp60kvmvpy7a2v9kg";
}
</programlisting>
</para>
</listitem>
<listitem>
<para>Best: Fetches a snapshot archive and you get the rev you want.
<programlisting>
src = fetchFromGitHub {
owner = "NixOS";
repo = "nix";
rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
sha256 = "04yri911rj9j19qqqn6m82266fl05pz98inasni0vxr1cf1gdgv9";
}
</programlisting>
</para>
</listitem>
</itemizedlist>
</para>
</section>
<section xml:id="sec-patches"><title>Patches</title>
<para>Patches available online should be retrieved using
<literal>fetchpatch</literal>.</para>
<para>
<programlisting>
patches = [
(fetchpatch {
name = "fix-check-for-using-shared-freetype-lib.patch";
url = "http://git.ghostscript.com/?p=ghostpdl.git;a=patch;h=8f5d285";
sha256 = "1f0k043rng7f0rfl9hhb89qzvvksqmkrikmm38p61yfx51l325xr";
})
];
</programlisting>
</para>
<para>Otherwise, you can add a <literal>.patch</literal> file to the
<literal>nixpkgs</literal> repository. In the interest of keeping our
maintenance burden to a minimum, only patches that are unique
to <literal>nixpkgs</literal> should be added in this way.</para>
<para><programlisting>
patches = [ ./0001-changes.patch ];
</programlisting></para>
<para>If you do need to do create this sort of patch file,
one way to do so is with git:
<orderedlist>
<listitem><para>Move to the root directory of the source code
you're patching.<screen>
$ cd the/program/source</screen></para></listitem>
<listitem><para>If a git repository is not already present,
create one and stage all of the source files.<screen>
$ git init
$ git add .</screen></para></listitem>
<listitem><para>Edit some files to make whatever changes need
to be included in the patch.</para></listitem>
<listitem><para>Use git to create a diff, and pipe the output
to a patch file:<screen>
$ git diff > nixpkgs/pkgs/the/package/0001-changes.patch</screen>
</para></listitem>
</orderedlist></para>
</section>
</chapter>

464
doc/configuration.xml Normal file
View File

@@ -0,0 +1,464 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="chap-packageconfig">
<title>Global configuration</title>
<para>Nix comes with certain defaults about what packages can and
cannot be installed, based on a package's metadata. By default, Nix
will prevent installation if any of the following criteria are
true:</para>
<itemizedlist>
<listitem><para>The package is thought to be broken, and has had
its <literal>meta.broken</literal> set to
<literal>true</literal>.</para></listitem>
<listitem><para>The package's <literal>meta.license</literal> is set
to a license which is considered to be unfree.</para></listitem>
<listitem><para>The package has known security vulnerabilities but
has not or can not be updated for some reason, and a list of issues
has been entered in to the package's
<literal>meta.knownVulnerabilities</literal>.</para></listitem>
</itemizedlist>
<para>Note that all this is checked during evaluation already,
and the check includes any package that is evaluated.
In particular, all build-time dependencies are checked.
<literal>nix-env -qa</literal> will (attempt to) hide any packages
that would be refused.
</para>
<para>Each of these criteria can be altered in the nixpkgs
configuration.</para>
<para>The nixpkgs configuration for a NixOS system is set in the
<literal>configuration.nix</literal>, as in the following example:
<programlisting>
{
nixpkgs.config = {
allowUnfree = true;
};
}
</programlisting>
However, this does not allow unfree software for individual users.
Their configurations are managed separately.</para>
<para>A user's of nixpkgs configuration is stored in a user-specific
configuration file located at
<filename>~/.config/nixpkgs/config.nix</filename>. For example:
<programlisting>
{
allowUnfree = true;
}
</programlisting>
</para>
<para>Note that we are not able to test or build unfree software on Hydra
due to policy. Most unfree licenses prohibit us from either executing or
distributing the software.</para>
<section xml:id="sec-allow-broken">
<title>Installing broken packages</title>
<para>There are two ways to try compiling a package which has been
marked as broken.</para>
<itemizedlist>
<listitem><para>
For allowing the build of a broken package once, you can use an
environment variable for a single invocation of the nix tools:
<programlisting>$ export NIXPKGS_ALLOW_BROKEN=1</programlisting>
</para></listitem>
<listitem><para>
For permanently allowing broken packages to be built, you may
add <literal>allowBroken = true;</literal> to your user's
configuration file, like this:
<programlisting>
{
allowBroken = true;
}
</programlisting>
</para></listitem>
</itemizedlist>
</section>
<section xml:id="sec-allow-unfree">
<title>Installing unfree packages</title>
<para>There are several ways to tweak how Nix handles a package
which has been marked as unfree.</para>
<itemizedlist>
<listitem><para>
To temporarily allow all unfree packages, you can use an
environment variable for a single invocation of the nix tools:
<programlisting>$ export NIXPKGS_ALLOW_UNFREE=1</programlisting>
</para></listitem>
<listitem><para>
It is possible to permanently allow individual unfree packages,
while still blocking unfree packages by default using the
<literal>allowUnfreePredicate</literal> configuration
option in the user configuration file.</para>
<para>This option is a function which accepts a package as a
parameter, and returns a boolean. The following example
configuration accepts a package and always returns false:
<programlisting>
{
allowUnfreePredicate = (pkg: false);
}
</programlisting>
</para>
<para>A more useful example, the following configuration allows
only allows flash player and visual studio code:
<programlisting>
{
allowUnfreePredicate = (pkg: elem (builtins.parseDrvName pkg.name).name [ "flashplayer" "vscode" ]);
}
</programlisting>
</para></listitem>
<listitem>
<para>It is also possible to whitelist and blacklist licenses
that are specifically acceptable or not acceptable, using
<literal>whitelistedLicenses</literal> and
<literal>blacklistedLicenses</literal>, respectively.
</para>
<para>The following example configuration whitelists the
licenses <literal>amd</literal> and <literal>wtfpl</literal>:
<programlisting>
{
whitelistedLicenses = with stdenv.lib.licenses; [ amd wtfpl ];
}
</programlisting>
</para>
<para>The following example configuration blacklists the
<literal>gpl3</literal> and <literal>agpl3</literal> licenses:
<programlisting>
{
blacklistedLicenses = with stdenv.lib.licenses; [ agpl3 gpl3 ];
}
</programlisting>
</para>
</listitem>
</itemizedlist>
<para>A complete list of licenses can be found in the file
<filename>lib/licenses.nix</filename> of the nixpkgs tree.</para>
</section>
<section xml:id="sec-allow-insecure">
<title>
Installing insecure packages
</title>
<para>There are several ways to tweak how Nix handles a package
which has been marked as insecure.</para>
<itemizedlist>
<listitem><para>
To temporarily allow all insecure packages, you can use an
environment variable for a single invocation of the nix tools:
<programlisting>$ export NIXPKGS_ALLOW_INSECURE=1</programlisting>
</para></listitem>
<listitem><para>
It is possible to permanently allow individual insecure
packages, while still blocking other insecure packages by
default using the <literal>permittedInsecurePackages</literal>
configuration option in the user configuration file.</para>
<para>The following example configuration permits the
installation of the hypothetically insecure package
<literal>hello</literal>, version <literal>1.2.3</literal>:
<programlisting>
{
permittedInsecurePackages = [
"hello-1.2.3"
];
}
</programlisting>
</para>
</listitem>
<listitem><para>
It is also possible to create a custom policy around which
insecure packages to allow and deny, by overriding the
<literal>allowInsecurePredicate</literal> configuration
option.</para>
<para>The <literal>allowInsecurePredicate</literal> option is a
function which accepts a package and returns a boolean, much
like <literal>allowUnfreePredicate</literal>.</para>
<para>The following configuration example only allows insecure
packages with very short names:
<programlisting>
{
allowInsecurePredicate = (pkg: (builtins.stringLength (builtins.parseDrvName pkg.name).name) &lt;= 5);
}
</programlisting>
</para>
<para>Note that <literal>permittedInsecurePackages</literal> is
only checked if <literal>allowInsecurePredicate</literal> is not
specified.
</para></listitem>
</itemizedlist>
</section>
<!--============================================================-->
<section xml:id="sec-modify-via-packageOverrides"><title>Modify
packages via <literal>packageOverrides</literal></title>
<para>You can define a function called
<varname>packageOverrides</varname> in your local
<filename>~/.config/nixpkgs/config.nix</filename> to override nix packages. It
must be a function that takes pkgs as an argument and return modified
set of packages.
<programlisting>
{
packageOverrides = pkgs: rec {
foo = pkgs.foo.override { ... };
};
}
</programlisting>
</para>
</section>
<section xml:id="sec-declarative-package-management">
<title>Declarative Package Management</title>
<section xml:id="sec-building-environment">
<title>Build an environment</title>
<para>
Using <literal>packageOverrides</literal>, it is possible to manage
packages declaratively. This means that we can list all of our desired
packages within a declarative Nix expression. For example, to have
<literal>aspell</literal>, <literal>bc</literal>,
<literal>ffmpeg</literal>, <literal>coreutils</literal>,
<literal>gdb</literal>, <literal>nixUnstable</literal>,
<literal>emscripten</literal>, <literal>jq</literal>,
<literal>nox</literal>, and <literal>silver-searcher</literal>, we could
use the following in <filename>~/.config/nixpkgs/config.nix</filename>:
</para>
<screen>
{
packageOverrides = pkgs: with pkgs; {
myPackages = pkgs.buildEnv {
name = "my-packages";
paths = [ aspell bc coreutils gdb ffmpeg nixUnstable emscripten jq nox silver-searcher ];
};
};
}
</screen>
<para>
To install it into our environment, you can just run <literal>nix-env -iA
nixpkgs.myPackages</literal>. If you want to load the packages to be built
from a working copy of <literal>nixpkgs</literal> you just run
<literal>nix-env -f. -iA myPackages</literal>. To explore what's been
installed, just look through <filename>~/.nix-profile/</filename>. You can
see that a lot of stuff has been installed. Some of this stuff is useful
some of it isn't. Let's tell Nixpkgs to only link the stuff that we want:
</para>
<screen>
{
packageOverrides = pkgs: with pkgs; {
myPackages = pkgs.buildEnv {
name = "my-packages";
paths = [ aspell bc coreutils gdb ffmpeg nixUnstable emscripten jq nox silver-searcher ];
pathsToLink = [ "/share" "/bin" ];
};
};
}
</screen>
<para>
<literal>pathsToLink</literal> tells Nixpkgs to only link the paths listed
which gets rid of the extra stuff in the profile.
<filename>/bin</filename> and <filename>/share</filename> are good
defaults for a user environment, getting rid of the clutter. If you are
running on Nix on MacOS, you may want to add another path as well,
<filename>/Applications</filename>, that makes GUI apps available.
</para>
</section>
<section xml:id="sec-getting-documentation">
<title>Getting documentation</title>
<para>
After building that new environment, look through
<filename>~/.nix-profile</filename> to make sure everything is there that
we wanted. Discerning readers will note that some files are missing. Look
inside <filename>~/.nix-profile/share/man/man1/</filename> to verify this.
There are no man pages for any of the Nix tools! This is because some
packages like Nix have multiple outputs for things like documentation (see
section 4). Let's make Nix install those as well.
</para>
<screen>
{
packageOverrides = pkgs: with pkgs; {
myPackages = pkgs.buildEnv {
name = "my-packages";
paths = [ aspell bc coreutils ffmpeg nixUnstable emscripten jq nox silver-searcher ];
pathsToLink = [ "/share/man" "/share/doc" /bin" ];
extraOutputsToInstall = [ "man" "doc" ];
};
};
}
</screen>
<para>
This provides us with some useful documentation for using our packages.
However, if we actually want those manpages to be detected by man, we need
to set up our environment. This can also be managed within Nix
expressions.
</para>
<screen>
{
packageOverrides = pkgs: with pkgs; rec {
myProfile = writeText "my-profile" ''
export PATH=$HOME/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/sbin:/bin:/usr/sbin:/usr/bin
export MANPATH=$HOME/.nix-profile/share/man:/nix/var/nix/profiles/default/share/man:/usr/share/man
'';
myPackages = pkgs.buildEnv {
name = "my-packages";
paths = [
(runCommand "profile" {} ''
mkdir -p $out/etc/profile.d
cp ${myProfile} $out/etc/profile.d/my-profile.sh
'')
aspell
bc
coreutils
ffmpeg
man
nixUnstable
emscripten
jq
nox
silver-searcher
];
pathsToLink = [ "/share/man" "/share/doc" /bin" "/etc" ];
extraOutputsToInstall = [ "man" "doc" ];
};
};
}
</screen>
<para>
For this to work fully, you must also have this script sourced when you
are logged in. Try adding something like this to your
<filename>~/.profile</filename> file:
</para>
<screen>
#!/bin/sh
if [ -d $HOME/.nix-profile/etc/profile.d ]; then
for i in $HOME/.nix-profile/etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
fi
</screen>
<para>
Now just run <literal>source $HOME/.profile</literal> and you can starting
loading man pages from your environent.
</para>
</section>
<section xml:id="sec-gnu-info-setup">
<title>GNU info setup</title>
<para>
Configuring GNU info is a little bit trickier than man pages. To work
correctly, info needs a database to be generated. This can be done with
some small modifications to our environment scripts.
</para>
<screen>
{
packageOverrides = pkgs: with pkgs; rec {
myProfile = writeText "my-profile" ''
export PATH=$HOME/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/sbin:/bin:/usr/sbin:/usr/bin
export MANPATH=$HOME/.nix-profile/share/man:/nix/var/nix/profiles/default/share/man:/usr/share/man
export INFOPATH=$HOME/.nix-profile/share/info:/nix/var/nix/profiles/default/share/info:/usr/share/info
'';
myPackages = pkgs.buildEnv {
name = "my-packages";
paths = [
(runCommand "profile" {} ''
mkdir -p $out/etc/profile.d
cp ${myProfile} $out/etc/profile.d/my-profile.sh
'')
aspell
bc
coreutils
ffmpeg
man
nixUnstable
emscripten
jq
nox
silver-searcher
texinfoInteractive
];
pathsToLink = [ "/share/man" "/share/doc" "/share/info" "/bin" "/etc" ];
extraOutputsToInstall = [ "man" "doc" "info" ];
postBuild = ''
if [ -x $out/bin/install-info -a -w $out/share/info ]; then
shopt -s nullglob
for i in $out/share/info/*.info $out/share/info/*.info.gz; do
$out/bin/install-info $i $out/share/info/dir
done
fi
'';
};
};
}
</screen>
<para>
<literal>postBuild</literal> tells Nixpkgs to run a command after building
the environment. In this case, <literal>install-info</literal> adds the
installed info pages to <literal>dir</literal> which is GNU info's default
root node. Note that <literal>texinfoInteractive</literal> is added to the
environment to give the <literal>install-info</literal> command.
</para>
</section>
</section>
</chapter>

35
doc/contributing.xml Normal file
View File

@@ -0,0 +1,35 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="chap-contributing">
<title>Contributing to this documentation</title>
<para>The DocBook sources of the Nixpkgs manual are in the <filename
xlink:href="https://github.com/NixOS/nixpkgs/tree/master/doc">doc</filename>
subdirectory of the Nixpkgs repository.</para>
<para>You can quickly check your edits with <command>make</command>:</para>
<screen>
$ cd /path/to/nixpkgs/doc
$ nix-shell
[nix-shell]$ make
</screen>
<para>If you experience problems, run <command>make debug</command>
to help understand the docbook errors.</para>
<para>After making modifications to the manual, it's important to
build it before committing. You can do that as follows:
<screen>
$ cd /path/to/nixpkgs/doc
$ nix-shell
[nix-shell]$ make clean
[nix-shell]$ nix-build .
</screen>
If the build succeeds, the manual will be in
<filename>./result/share/doc/nixpkgs/manual.html</filename>.</para>
</chapter>

View File

@@ -1,660 +0,0 @@
# Coding conventions {#chap-conventions}
## Syntax {#sec-syntax}
- Use 2 spaces of indentation per indentation level in Nix expressions, 4 spaces in shell scripts.
- Do not use tab characters, i.e. configure your editor to use soft tabs. For instance, use `(setq-default indent-tabs-mode nil)` in Emacs. Everybody has different tab settings so its asking for trouble.
- Use `lowerCamelCase` for variable names, not `UpperCamelCase`. Note, this rule does not apply to package attribute names, which instead follow the rules in [](#sec-package-naming).
- Function calls with attribute set arguments are written as
```nix
foo {
arg = ...;
}
```
not
```nix
foo
{
arg = ...;
}
```
Also fine is
```nix
foo { arg = ...; }
```
if it's a short call.
- In attribute sets or lists that span multiple lines, the attribute names or list elements should be aligned:
```nix
# A long list.
list = [
elem1
elem2
elem3
];
# A long attribute set.
attrs = {
attr1 = short_expr;
attr2 =
if true then big_expr else big_expr;
};
# Combined
listOfAttrs = [
{
attr1 = 3;
attr2 = "fff";
}
{
attr1 = 5;
attr2 = "ggg";
}
];
```
- Short lists or attribute sets can be written on one line:
```nix
# A short list.
list = [ elem1 elem2 elem3 ];
# A short set.
attrs = { x = 1280; y = 1024; };
```
- Breaking in the middle of a function argument can give hard-to-read code, like
```nix
someFunction { x = 1280;
y = 1024; } otherArg
yetAnotherArg
```
(especially if the argument is very large, spanning multiple lines).
Better:
```nix
someFunction
{ x = 1280; y = 1024; }
otherArg
yetAnotherArg
```
or
```nix
let res = { x = 1280; y = 1024; };
in someFunction res otherArg yetAnotherArg
```
- The bodies of functions, asserts, and withs are not indented to prevent a lot of superfluous indentation levels, i.e.
```nix
{ arg1, arg2 }:
assert system == "i686-linux";
stdenv.mkDerivation { ...
```
not
```nix
{ arg1, arg2 }:
assert system == "i686-linux";
stdenv.mkDerivation { ...
```
- Function formal arguments are written as:
```nix
{ arg1, arg2, arg3 }:
```
but if they don't fit on one line they're written as:
```nix
{ arg1, arg2, arg3
, arg4, ...
, # Some comment...
argN
}:
```
- Functions should list their expected arguments as precisely as possible. That is, write
```nix
{ stdenv, fetchurl, perl }: ...
```
instead of
```nix
args: with args; ...
```
or
```nix
{ stdenv, fetchurl, perl, ... }: ...
```
For functions that are truly generic in the number of arguments (such as wrappers around `mkDerivation`) that have some required arguments, you should write them using an `@`-pattern:
```nix
{ stdenv, doCoverageAnalysis ? false, ... } @ args:
stdenv.mkDerivation (args // {
... if doCoverageAnalysis then "bla" else "" ...
})
```
instead of
```nix
args:
args.stdenv.mkDerivation (args // {
... if args ? doCoverageAnalysis && args.doCoverageAnalysis then "bla" else "" ...
})
```
- Unnecessary string conversions should be avoided. Do
```nix
rev = version;
```
instead of
```nix
rev = "${version}";
```
- Building lists conditionally _should_ be done with `lib.optional(s)` instead of using `if cond then [ ... ] else null` or `if cond then [ ... ] else [ ]`.
```nix
buildInputs = lib.optional stdenv.isDarwin iconv;
```
instead of
```nix
buildInputs = if stdenv.isDarwin then [ iconv ] else null;
```
As an exception, an explicit conditional expression with null can be used when fixing a important bug without triggering a mass rebuild.
If this is done a follow up pull request _should_ be created to change the code to `lib.optional(s)`.
- Arguments should be listed in the order they are used, with the exception of `lib`, which always goes first.
## Package naming {#sec-package-naming}
The key words _must_, _must not_, _required_, _shall_, _shall not_, _should_, _should not_, _recommended_, _may_, and _optional_ in this section are to be interpreted as described in [RFC 2119](https://tools.ietf.org/html/rfc2119). Only _emphasized_ words are to be interpreted in this way.
In Nixpkgs, there are generally three different names associated with a package:
- The `name` attribute of the derivation (excluding the version part). This is what most users see, in particular when using `nix-env`.
- The variable name used for the instantiated package in `all-packages.nix`, and when passing it as a dependency to other functions. Typically this is called the _package attribute name_. This is what Nix expression authors see. It can also be used when installing using `nix-env -iA`.
- The filename for (the directory containing) the Nix expression.
Most of the time, these are the same. For instance, the package `e2fsprogs` has a `name` attribute `"e2fsprogs-version"`, is bound to the variable name `e2fsprogs` in `all-packages.nix`, and the Nix expression is in `pkgs/os-specific/linux/e2fsprogs/default.nix`.
There are a few naming guidelines:
- The `pname` attribute _should_ be identical to the upstream package name.
- The `pname` and the `version` attribute _must not_ contain uppercase letters — e.g., `"mplayer" instead of `"MPlayer"`.
- The `version` attribute _must_ start with a digit e.g`"0.3.1rc2".
- If a package is not a release but a commit from a repository, then the `version` attribute _must_ be the date of that (fetched) commit. The date _must_ be in `"unstable-YYYY-MM-DD"` format.
- Dashes in the package `pname` _should_ be preserved in new variable names, rather than converted to underscores or camel cased — e.g., `http-parser` instead of `http_parser` or `httpParser`. The hyphenated style is preferred in all three package names.
- If there are multiple versions of a package, this _should_ be reflected in the variable names in `all-packages.nix`, e.g. `json-c_0_9` and `json-c_0_11`. If there is an obvious “default” version, make an attribute like `json-c = json-c_0_9;`. See also [](#sec-versioning)
## File naming and organisation {#sec-organisation}
Names of files and directories should be in lowercase, with dashes between words — not in camel case. For instance, it should be `all-packages.nix`, not `allPackages.nix` or `AllPackages.nix`.
### Hierarchy {#sec-hierarchy}
Each package should be stored in its own directory somewhere in the `pkgs/` tree, i.e. in `pkgs/category/subcategory/.../pkgname`. Below are some rules for picking the right category for a package. Many packages fall under several categories; what matters is the _primary_ purpose of a package. For example, the `libxml2` package builds both a library and some tools; but its a library foremost, so it goes under `pkgs/development/libraries`.
When in doubt, consider refactoring the `pkgs/` tree, e.g. creating new categories or splitting up an existing category.
**If its used to support _software development_:**
- **If its a _library_ used by other packages:**
- `development/libraries` (e.g. `libxml2`)
- **If its a _compiler_:**
- `development/compilers` (e.g. `gcc`)
- **If its an _interpreter_:**
- `development/interpreters` (e.g. `guile`)
- **If its a (set of) development _tool(s)_:**
- **If its a _parser generator_ (including lexers):**
- `development/tools/parsing` (e.g. `bison`, `flex`)
- **If its a _build manager_:**
- `development/tools/build-managers` (e.g. `gnumake`)
- **Else:**
- `development/tools/misc` (e.g. `binutils`)
- **Else:**
- `development/misc`
**If its a (set of) _tool(s)_:**
(A tool is a relatively small program, especially one intended to be used non-interactively.)
- **If its for _networking_:**
- `tools/networking` (e.g. `wget`)
- **If its for _text processing_:**
- `tools/text` (e.g. `diffutils`)
- **If its a _system utility_, i.e., something related or essential to the operation of a system:**
- `tools/system` (e.g. `cron`)
- **If its an _archiver_ (which may include a compression function):**
- `tools/archivers` (e.g. `zip`, `tar`)
- **If its a _compression_ program:**
- `tools/compression` (e.g. `gzip`, `bzip2`)
- **If its a _security_-related program:**
- `tools/security` (e.g. `nmap`, `gnupg`)
- **Else:**
- `tools/misc`
**If its a _shell_:**
- `shells` (e.g. `bash`)
**If its a _server_:**
- **If its a web server:**
- `servers/http` (e.g. `apache-httpd`)
- **If its an implementation of the X Windowing System:**
- `servers/x11` (e.g. `xorg` — this includes the client libraries and programs)
- **Else:**
- `servers/misc`
**If its a _desktop environment_:**
- `desktops` (e.g. `kde`, `gnome`, `enlightenment`)
**If its a _window manager_:**
- `applications/window-managers` (e.g. `awesome`, `stumpwm`)
**If its an _application_:**
A (typically large) program with a distinct user interface, primarily used interactively.
- **If its a _version management system_:**
- `applications/version-management` (e.g. `subversion`)
- **If its a _terminal emulator_:**
- `applications/terminal-emulators` (e.g. `alacritty` or `rxvt` or `termite`)
- **If its a _file manager_:**
- `applications/file-managers` (e.g. `mc` or `ranger` or `pcmanfm`)
- **If its for _video playback / editing_:**
- `applications/video` (e.g. `vlc`)
- **If its for _graphics viewing / editing_:**
- `applications/graphics` (e.g. `gimp`)
- **If its for _networking_:**
- **If its a _mailreader_:**
- `applications/networking/mailreaders` (e.g. `thunderbird`)
- **If its a _newsreader_:**
- `applications/networking/newsreaders` (e.g. `pan`)
- **If its a _web browser_:**
- `applications/networking/browsers` (e.g. `firefox`)
- **Else:**
- `applications/networking/misc`
- **Else:**
- `applications/misc`
**If its _data_ (i.e., does not have a straight-forward executable semantics):**
- **If its a _font_:**
- `data/fonts`
- **If its an _icon theme_:**
- `data/icons`
- **If its related to _SGML/XML processing_:**
- **If its an _XML DTD_:**
- `data/sgml+xml/schemas/xml-dtd` (e.g. `docbook`)
- **If its an _XSLT stylesheet_:**
(Okay, these are executable...)
- `data/sgml+xml/stylesheets/xslt` (e.g. `docbook-xsl`)
- **If its a _theme_ for a _desktop environment_, a _window manager_ or a _display manager_:**
- `data/themes`
**If its a _game_:**
- `games`
**Else:**
- `misc`
### Versioning {#sec-versioning}
Because every version of a package in Nixpkgs creates a potential maintenance burden, old versions of a package should not be kept unless there is a good reason to do so. For instance, Nixpkgs contains several versions of GCC because other packages dont build with the latest version of GCC. Other examples are having both the latest stable and latest pre-release version of a package, or to keep several major releases of an application that differ significantly in functionality.
If there is only one version of a package, its Nix expression should be named `e2fsprogs/default.nix`. If there are multiple versions, this should be reflected in the filename, e.g. `e2fsprogs/1.41.8.nix` and `e2fsprogs/1.41.9.nix`. The version in the filename should leave out unnecessary detail. For instance, if we keep the latest Firefox 2.0.x and 3.5.x versions in Nixpkgs, they should be named `firefox/2.0.nix` and `firefox/3.5.nix`, respectively (which, at a given point, might contain versions `2.0.0.20` and `3.5.4`). If a version requires many auxiliary files, you can use a subdirectory for each version, e.g. `firefox/2.0/default.nix` and `firefox/3.5/default.nix`.
All versions of a package _must_ be included in `all-packages.nix` to make sure that they evaluate correctly.
## Fetching Sources {#sec-sources}
There are multiple ways to fetch a package source in nixpkgs. The general guideline is that you should package reproducible sources with a high degree of availability. Right now there is only one fetcher which has mirroring support and that is `fetchurl`. Note that you should also prefer protocols which have a corresponding proxy environment variable.
You can find many source fetch helpers in `pkgs/build-support/fetch*`.
In the file `pkgs/top-level/all-packages.nix` you can find fetch helpers, these have names on the form `fetchFrom*`. The intention of these are to provide snapshot fetches but using the same api as some of the version controlled fetchers from `pkgs/build-support/`. As an example going from bad to good:
- Bad: Uses `git://` which won't be proxied.
```nix
src = fetchgit {
url = "git://github.com/NixOS/nix.git";
rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
sha256 = "1cw5fszffl5pkpa6s6wjnkiv6lm5k618s32sp60kvmvpy7a2v9kg";
}
```
- Better: This is ok, but an archive fetch will still be faster.
```nix
src = fetchgit {
url = "https://github.com/NixOS/nix.git";
rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
sha256 = "1cw5fszffl5pkpa6s6wjnkiv6lm5k618s32sp60kvmvpy7a2v9kg";
}
```
- Best: Fetches a snapshot archive and you get the rev you want.
```nix
src = fetchFromGitHub {
owner = "NixOS";
repo = "nix";
rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
sha256 = "1i2yxndxb6yc9l6c99pypbd92lfq5aac4klq7y2v93c9qvx2cgpc";
}
```
Find the value to put as `sha256` by running `nix-shell -p nix-prefetch-github --run "nix-prefetch-github --rev 1f795f9f44607cc5bec70d1300150bfefcef2aae NixOS nix"`.
## Obtaining source hash {#sec-source-hashes}
Preferred source hash type is sha256. There are several ways to get it.
1. Prefetch URL (with `nix-prefetch-XXX URL`, where `XXX` is one of `url`, `git`, `hg`, `cvs`, `bzr`, `svn`). Hash is printed to stdout.
2. Prefetch by package source (with `nix-prefetch-url '<nixpkgs>' -A PACKAGE.src`, where `PACKAGE` is package attribute name). Hash is printed to stdout.
This works well when you've upgraded existing package version and want to find out new hash, but is useless if package can't be accessed by attribute or package has multiple sources (`.srcs`, architecture-dependent sources, etc).
3. Upstream provided hash: use it when upstream provides `sha256` or `sha512` (when upstream provides `md5`, don't use it, compute `sha256` instead).
A little nuance is that `nix-prefetch-*` tools produce hash encoded with `base32`, but upstream usually provides hexadecimal (`base16`) encoding. Fetchers understand both formats. Nixpkgs does not standardize on any one format.
You can convert between formats with nix-hash, for example:
```ShellSession
$ nix-hash --type sha256 --to-base32 HASH
```
4. Extracting hash from local source tarball can be done with `sha256sum`. Use `nix-prefetch-url file:///path/to/tarball` if you want base32 hash.
5. Fake hash: set fake hash in package expression, perform build and extract correct hash from error Nix prints.
For package updates it is enough to change one symbol to make hash fake. For new packages, you can use `lib.fakeSha256`, `lib.fakeSha512` or any other fake hash.
This is last resort method when reconstructing source URL is non-trivial and `nix-prefetch-url -A` isnt applicable (for example, [one of `kodi` dependencies](https://github.com/NixOS/nixpkgs/blob/d2ab091dd308b99e4912b805a5eb088dd536adb9/pkgs/applications/video/kodi/default.nix#L73)). The easiest way then would be replace hash with a fake one and rebuild. Nix build will fail and error message will contain desired hash.
::: {.warning}
This method has security problems. Check below for details.
:::
### Obtaining hashes securely {#sec-source-hashes-security}
Let's say Man-in-the-Middle (MITM) sits close to your network. Then instead of fetching source you can fetch malware, and instead of source hash you get hash of malware. Here are security considerations for this scenario:
- `http://` URLs are not secure to prefetch hash from;
- hashes from upstream (in method 3) should be obtained via secure protocol;
- `https://` URLs are secure in methods 1, 2, 3;
- `https://` URLs are not secure in method 5. When obtaining hashes with fake hash method, TLS checks are disabled. So refetch source hash from several different networks to exclude MITM scenario. Alternatively, use fake hash method to make Nix error, but instead of extracting hash from error, extract `https://` URL and prefetch it with method 1.
## Patches {#sec-patches}
Patches available online should be retrieved using `fetchpatch`.
```nix
patches = [
(fetchpatch {
name = "fix-check-for-using-shared-freetype-lib.patch";
url = "http://git.ghostscript.com/?p=ghostpdl.git;a=patch;h=8f5d285";
sha256 = "1f0k043rng7f0rfl9hhb89qzvvksqmkrikmm38p61yfx51l325xr";
})
];
```
Otherwise, you can add a `.patch` file to the `nixpkgs` repository. In the interest of keeping our maintenance burden to a minimum, only patches that are unique to `nixpkgs` should be added in this way.
If a patch is available online but does not cleanly apply, it can be modified in some fixed ways by using additional optional arguments for `fetchpatch`. Check [](#fetchpatch) for details.
```nix
patches = [ ./0001-changes.patch ];
```
If you do need to do create this sort of patch file, one way to do so is with git:
1. Move to the root directory of the source code you're patching.
```ShellSession
$ cd the/program/source
```
2. If a git repository is not already present, create one and stage all of the source files.
```ShellSession
$ git init
$ git add .
```
3. Edit some files to make whatever changes need to be included in the patch.
4. Use git to create a diff, and pipe the output to a patch file:
```ShellSession
$ git diff -a > nixpkgs/pkgs/the/package/0001-changes.patch
```
## Package tests {#sec-package-tests}
Tests are important to ensure quality and make reviews and automatic updates easy.
The following types of tests exists:
* [NixOS **module tests**](https://nixos.org/manual/nixos/stable/#sec-nixos-tests), which spawn one or more NixOS VMs. They exercise both NixOS modules and the packaged programs used within them. For example, a NixOS module test can start a web server VM running the `nginx` module, and a client VM running `curl` or a graphical `firefox`, and test that they can talk to each other and display the correct content.
* Nix **package tests** are a lightweight alternative to NixOS module tests. They should be used to create simple integration tests for packages, but cannot test NixOS services, and some programs with graphical user interfaces may also be difficult to test with them.
* The **`checkPhase` of a package**, which should execute the unit tests that are included in the source code of a package.
Here in the nixpkgs manual we describe mostly _package tests_; for _module tests_ head over to the corresponding [section in the NixOS manual](https://nixos.org/manual/nixos/stable/#sec-nixos-tests).
### Writing inline package tests {#ssec-inline-package-tests-writing}
For very simple tests, they can be written inline:
```nix
{ …, yq-go }:
buildGoModule rec {
passthru.tests = {
simple = runCommand "${pname}-test" {} ''
echo "test: 1" | ${yq-go}/bin/yq eval -j > $out
[ "$(cat $out | tr -d $'\n ')" = '{"test":1}' ]
'';
};
}
```
### Writing larger package tests {#ssec-package-tests-writing}
This is an example using the `phoronix-test-suite` package with the current best practices.
Add the tests in `passthru.tests` to the package definition like this:
```nix
{ stdenv, lib, fetchurl, callPackage }:
stdenv.mkDerivation {
passthru.tests = {
simple-execution = callPackage ./tests.nix { };
};
meta = { … };
}
```
Create `tests.nix` in the package directory:
```nix
{ runCommand, phoronix-test-suite }:
let
inherit (phoronix-test-suite) pname version;
in
runCommand "${pname}-tests" { meta.timeout = 60; }
''
# automatic initial setup to prevent interactive questions
${phoronix-test-suite}/bin/phoronix-test-suite enterprise-setup >/dev/null
# get version of installed program and compare with package version
if [[ `${phoronix-test-suite}/bin/phoronix-test-suite version` != *"${version}"* ]]; then
echo "Error: program version does not match package version"
exit 1
fi
# run dummy command
${phoronix-test-suite}/bin/phoronix-test-suite dummy_module.dummy-command >/dev/null
# needed for Nix to register the command as successful
touch $out
''
```
### Running package tests {#ssec-package-tests-running}
You can run these tests with:
```ShellSession
$ cd path/to/nixpkgs
$ nix-build -A phoronix-test-suite.tests
```
### Examples of package tests {#ssec-package-tests-examples}
Here are examples of package tests:
- [Jasmin compile test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/jasmin/test-assemble-hello-world/default.nix)
- [Lobster compile test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/lobster/test-can-run-hello-world.nix)
- [Spacy annotation test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/python-modules/spacy/annotation-test/default.nix)
- [Libtorch test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/science/math/libtorch/test/default.nix)
- [Multiple tests for nanopb](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/nanopb/default.nix)
### Linking NixOS module tests to a package {#ssec-nixos-tests-linking}
Like [package tests](#ssec-package-tests-writing) as shown above, [NixOS module tests](https://nixos.org/manual/nixos/stable/#sec-nixos-tests) can also be linked to a package, so that the tests can be easily run when changing the related package.
For example, assuming we're packaging `nginx`, we can link its module test via `passthru.tests`:
```nix
{ stdenv, lib, nixosTests }:
stdenv.mkDerivation {
...
passthru.tests = {
nginx = nixosTests.nginx;
};
...
}
```

View File

@@ -1,120 +0,0 @@
# Contributing to this documentation {#chap-contributing}
The sources of the Nixpkgs manual are in the [doc](https://github.com/NixOS/nixpkgs/tree/master/doc) subdirectory of the Nixpkgs repository. The manual is still partially written in DocBook but it is progressively being converted to [Markdown](#sec-contributing-markup).
You can quickly check your edits with `make`:
```ShellSession
$ cd /path/to/nixpkgs/doc
$ nix-shell
[nix-shell]$ make
```
If you experience problems, run `make debug` to help understand the docbook errors.
After making modifications to the manual, it's important to build it before committing. You can do that as follows:
```ShellSession
$ cd /path/to/nixpkgs/doc
$ nix-shell
[nix-shell]$ make clean
[nix-shell]$ nix-build .
```
If the build succeeds, the manual will be in `./result/share/doc/nixpkgs/manual.html`.
## Syntax {#sec-contributing-markup}
As per [RFC 0072](https://github.com/NixOS/rfcs/pull/72), all new documentation content should be written in [CommonMark](https://commonmark.org/) Markdown dialect.
Additional syntax extensions are available, though not all extensions can be used in NixOS option documentation. The following extensions are currently used:
- []{#ssec-contributing-markup-anchors}
Explicitly defined **anchors** on headings, to allow linking to sections. These should be always used, to ensure the anchors can be linked even when the heading text changes, and to prevent conflicts between [automatically assigned identifiers](https://github.com/jgm/commonmark-hs/blob/master/commonmark-extensions/test/auto_identifiers.md).
It uses the widely compatible [header attributes](https://github.com/jgm/commonmark-hs/blob/master/commonmark-extensions/test/attributes.md) syntax:
```markdown
## Syntax {#sec-contributing-markup}
```
- []{#ssec-contributing-markup-anchors-inline}
**Inline anchors**, which allow linking arbitrary place in the text (e.g. individual list items, sentences…).
They are defined using a hybrid of the link syntax with the attributes syntax known from headings, called [bracketed spans](https://github.com/jgm/commonmark-hs/blob/master/commonmark-extensions/test/bracketed_spans.md):
```markdown
- []{#ssec-gnome-hooks-glib} `glib` setup hook will populate `GSETTINGS_SCHEMAS_PATH` and then `wrapGAppsHook` will prepend it to `XDG_DATA_DIRS`.
```
- []{#ssec-contributing-markup-automatic-links}
If you **omit a link text** for a link pointing to a section, the text will be substituted automatically. For example, `[](#chap-contributing)` will result in [](#chap-contributing).
This syntax is taken from [MyST](https://myst-parser.readthedocs.io/en/latest/using/syntax.html#targets-and-cross-referencing).
- []{#ssec-contributing-markup-inline-roles}
If you want to link to a man page, you can use `` {manpage}`nix.conf(5)` ``, which will turn into {manpage}`nix.conf(5)`. The references will turn into links when a mapping exists in {file}`doc/build-aux/pandoc-filters/link-unix-man-references.lua`.
A few markups for other kinds of literals are also available:
- `` {command}`rm -rfi` `` turns into {command}`rm -rfi`
- `` {option}`networking.useDHCP` `` turns into {option}`networking.useDHCP`
- `` {file}`/etc/passwd` `` turns into {file}`/etc/passwd`
These literal kinds are used mostly in NixOS option documentation.
This syntax is taken from [MyST](https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#roles-an-in-line-extension-point). Though, the feature originates from [reStructuredText](https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-manpage) with slightly different syntax.
::: {.note}
Inline roles are available for option documentation.
:::
- []{#ssec-contributing-markup-admonitions}
**Admonitions**, set off from the text to bring attention to something.
It uses pandocs [fenced `div`s syntax](https://github.com/jgm/commonmark-hs/blob/master/commonmark-extensions/test/fenced_divs.md):
```markdown
::: {.warning}
This is a warning
:::
```
which renders as
> ::: {.warning}
> This is a warning.
> :::
The following are supported:
- [`caution`](https://tdg.docbook.org/tdg/5.0/caution.html)
- [`important`](https://tdg.docbook.org/tdg/5.0/important.html)
- [`note`](https://tdg.docbook.org/tdg/5.0/note.html)
- [`tip`](https://tdg.docbook.org/tdg/5.0/tip.html)
- [`warning`](https://tdg.docbook.org/tdg/5.0/warning.html)
::: {.note}
Admonitions are available for option documentation.
:::
- []{#ssec-contributing-markup-definition-lists}
[**Definition lists**](https://github.com/jgm/commonmark-hs/blob/master/commonmark-extensions/test/definition_lists.md), for defining a group of terms:
```markdown
pear
: green or yellow bulbous fruit
watermelon
: green fruit with red flesh
```
which renders as
> pear
> : green or yellow bulbous fruit
>
> watermelon
> : green fruit with red flesh
For contributing to the legacy parts, please see [DocBook: The Definitive Guide](https://tdg.docbook.org/) or the [DocBook rocks! primer](https://web.archive.org/web/20200816233747/https://docbook.rocks/).

View File

@@ -1,77 +0,0 @@
# Quick Start to Adding a Package {#chap-quick-start}
To add a package to Nixpkgs:
1. Checkout the Nixpkgs source tree:
```ShellSession
$ git clone https://github.com/NixOS/nixpkgs
$ cd nixpkgs
```
2. Find a good place in the Nixpkgs tree to add the Nix expression for your package. For instance, a library package typically goes into `pkgs/development/libraries/pkgname`, while a web browser goes into `pkgs/applications/networking/browsers/pkgname`. See [](#sec-organisation) for some hints on the tree organisation. Create a directory for your package, e.g.
```ShellSession
$ mkdir pkgs/development/libraries/libfoo
```
3. In the package directory, create a Nix expression — a piece of code that describes how to build the package. In this case, it should be a _function_ that is called with the package dependencies as arguments, and returns a build of the package in the Nix store. The expression should usually be called `default.nix`.
```ShellSession
$ emacs pkgs/development/libraries/libfoo/default.nix
$ git add pkgs/development/libraries/libfoo/default.nix
```
You can have a look at the existing Nix expressions under `pkgs/` to see how its done. Here are some good ones:
- GNU Hello: [`pkgs/applications/misc/hello/default.nix`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/misc/hello/default.nix). Trivial package, which specifies some `meta` attributes which is good practice.
- GNU cpio: [`pkgs/tools/archivers/cpio/default.nix`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/archivers/cpio/default.nix). Also a simple package. The generic builder in `stdenv` does everything for you. It has no dependencies beyond `stdenv`.
- GNU Multiple Precision arithmetic library (GMP): [`pkgs/development/libraries/gmp/5.1.x.nix`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/gmp/5.1.x.nix). Also done by the generic builder, but has a dependency on `m4`.
- Pan, a GTK-based newsreader: [`pkgs/applications/networking/newsreaders/pan/default.nix`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/newsreaders/pan/default.nix). Has an optional dependency on `gtkspell`, which is only built if `spellCheck` is `true`.
- Apache HTTPD: [`pkgs/servers/http/apache-httpd/2.4.nix`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/servers/http/apache-httpd/2.4.nix). A bunch of optional features, variable substitutions in the configure flags, a post-install hook, and miscellaneous hackery.
- Thunderbird: [`pkgs/applications/networking/mailreaders/thunderbird/default.nix`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/mailreaders/thunderbird/default.nix). Lots of dependencies.
- JDiskReport, a Java utility: [`pkgs/tools/misc/jdiskreport/default.nix`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/jdiskreport/default.nix). Nixpkgs doesnt have a decent `stdenv` for Java yet so this is pretty ad-hoc.
- XML::Simple, a Perl module: [`pkgs/top-level/perl-packages.nix`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/perl-packages.nix) (search for the `XMLSimple` attribute). Most Perl modules are so simple to build that they are defined directly in `perl-packages.nix`; no need to make a separate file for them.
- Adobe Reader: [`pkgs/applications/misc/adobe-reader/default.nix`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/misc/adobe-reader/default.nix). Shows how binary-only packages can be supported. In particular the [builder](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/misc/adobe-reader/builder.sh) uses `patchelf` to set the RUNPATH and ELF interpreter of the executables so that the right libraries are found at runtime.
Some notes:
- All [`meta`](#chap-meta) attributes are optional, but its still a good idea to provide at least the `description`, `homepage` and [`license`](#sec-meta-license).
- You can use `nix-prefetch-url url` to get the SHA-256 hash of source distributions. There are similar commands as `nix-prefetch-git` and `nix-prefetch-hg` available in `nix-prefetch-scripts` package.
- A list of schemes for `mirror://` URLs can be found in [`pkgs/build-support/fetchurl/mirrors.nix`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/fetchurl/mirrors.nix).
The exact syntax and semantics of the Nix expression language, including the built-in function, are described in the Nix manual in the [chapter on writing Nix expressions](https://hydra.nixos.org/job/nix/trunk/tarball/latest/download-by-type/doc/manual/#chap-writing-nix-expressions).
4. Add a call to the function defined in the previous step to [`pkgs/top-level/all-packages.nix`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/all-packages.nix) with some descriptive name for the variable, e.g. `libfoo`.
```ShellSession
$ emacs pkgs/top-level/all-packages.nix
```
The attributes in that file are sorted by category (like “Development / Libraries”) that more-or-less correspond to the directory structure of Nixpkgs, and then by attribute name.
5. To test whether the package builds, run the following command from the root of the nixpkgs source tree:
```ShellSession
$ nix-build -A libfoo
```
where `libfoo` should be the variable name defined in the previous step. You may want to add the flag `-K` to keep the temporary build directory in case something fails. If the build succeeds, a symlink `./result` to the package in the Nix store is created.
6. If you want to install the package into your profile (optional), do
```ShellSession
$ nix-env -f . -iA libfoo
```
7. Optionally commit the new package and open a pull request [to nixpkgs](https://github.com/NixOS/nixpkgs/pulls), or use [the Patches category](https://discourse.nixos.org/t/about-the-patches-category/477) on Discourse for sending a patch without a GitHub account.

View File

@@ -1,313 +0,0 @@
# Reviewing contributions {#chap-reviewing-contributions}
::: {.warning}
The following section is a draft, and the policy for reviewing is still being discussed in issues such as [#11166](https://github.com/NixOS/nixpkgs/issues/11166) and [#20836](https://github.com/NixOS/nixpkgs/issues/20836).
:::
The Nixpkgs project receives a fairly high number of contributions via GitHub pull requests. Reviewing and approving these is an important task and a way to contribute to the project.
The high change rate of Nixpkgs makes any pull request that remains open for too long subject to conflicts that will require extra work from the submitter or the merger. Reviewing pull requests in a timely manner and being responsive to the comments is the key to avoid this issue. GitHub provides sort filters that can be used to see the [most recently](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc) and the [least recently](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc) updated pull requests. We highly encourage looking at [this list of ready to merge, unreviewed pull requests](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+review%3Anone+status%3Asuccess+-label%3A%222.status%3A+work-in-progress%22+no%3Aproject+no%3Aassignee+no%3Amilestone).
When reviewing a pull request, please always be nice and polite. Controversial changes can lead to controversial opinions, but it is important to respect every community member and their work.
GitHub provides reactions as a simple and quick way to provide feedback to pull requests or any comments. The thumb-down reaction should be used with care and if possible accompanied with some explanation so the submitter has directions to improve their contribution.
pull request reviews should include a list of what has been reviewed in a comment, so other reviewers and mergers can know the state of the review.
All the review template samples provided in this section are generic and meant as examples. Their usage is optional and the reviewer is free to adapt them to their liking.
## Package updates {#reviewing-contributions-package-updates}
A package update is the most trivial and common type of pull request. These pull requests mainly consist of updating the version part of the package name and the source hash.
It can happen that non-trivial updates include patches or more complex changes.
Reviewing process:
- Ensure that the package versioning fits the guidelines.
- Ensure that the commit text fits the guidelines.
- Ensure that the package maintainers are notified.
- [CODEOWNERS](https://help.github.com/articles/about-codeowners) will make GitHub notify users based on the submitted changes, but it can happen that it misses some of the package maintainers.
- Ensure that the meta field information is correct.
- License can change with version updates, so it should be checked to match the upstream license.
- If the package has no maintainer, a maintainer must be set. This can be the update submitter or a community member that accepts to take maintainership of the package.
- Ensure that the code contains no typos.
- Building the package locally.
- pull requests are often targeted to the master or staging branch, and building the pull request locally when it is submitted can trigger many source builds.
- It is possible to rebase the changes on nixos-unstable or nixpkgs-unstable for easier review by running the following commands from a nixpkgs clone.
```ShellSession
$ git fetch origin nixos-unstable
$ git fetch origin pull/PRNUMBER/head
$ git rebase --onto nixos-unstable BASEBRANCH FETCH_HEAD
```
- The first command fetches the nixos-unstable branch.
- The second command fetches the pull request changes, `PRNUMBER` is the number at the end of the pull request title and `BASEBRANCH` the base branch of the pull request.
- The third command rebases the pull request changes to the nixos-unstable branch.
- The [nixpkgs-review](https://github.com/Mic92/nixpkgs-review) tool can be used to review a pull request content in a single command. `PRNUMBER` should be replaced by the number at the end of the pull request title. You can also provide the full github pull request url.
```ShellSession
$ nix-shell -p nixpkgs-review --run "nixpkgs-review pr PRNUMBER"
```
- Running every binary.
Sample template for a package update review is provided below.
```markdown
##### Reviewed points
- [ ] package name fits guidelines
- [ ] package version fits guidelines
- [ ] package build on ARCHITECTURE
- [ ] executables tested on ARCHITECTURE
- [ ] all depending packages build
##### Possible improvements
##### Comments
```
## New packages {#reviewing-contributions-new-packages}
New packages are a common type of pull requests. These pull requests consists in adding a new nix-expression for a package.
Review process:
- Ensure that the package versioning fits the guidelines.
- Ensure that the commit name fits the guidelines.
- Ensure that the meta fields contain correct information.
- License must match the upstream license.
- Platforms should be set (or the package will not get binary substitutes).
- Maintainers must be set. This can be the package submitter or a community member that accepts taking up maintainership of the package.
- Report detected typos.
- Ensure the package source:
- Uses mirror URLs when available.
- Uses the most appropriate functions (e.g. packages from GitHub should use `fetchFromGitHub`).
- Building the package locally.
- Running every binary.
Sample template for a new package review is provided below.
```markdown
##### Reviewed points
- [ ] package path fits guidelines
- [ ] package name fits guidelines
- [ ] package version fits guidelines
- [ ] package build on ARCHITECTURE
- [ ] executables tested on ARCHITECTURE
- [ ] `meta.description` is set and fits guidelines
- [ ] `meta.license` fits upstream license
- [ ] `meta.platforms` is set
- [ ] `meta.maintainers` is set
- [ ] build time only dependencies are declared in `nativeBuildInputs`
- [ ] source is fetched using the appropriate function
- [ ] the list of `phases` is not overridden
- [ ] when a phase (like `installPhase`) is overridden it starts with `runHook preInstall` and ends with `runHook postInstall`.
- [ ] patches that are remotely available are fetched with `fetchpatch`
##### Possible improvements
##### Comments
```
## Module updates {#reviewing-contributions-module-updates}
Module updates are submissions changing modules in some ways. These often contains changes to the options or introduce new options.
Reviewing process:
- Ensure that the module maintainers are notified.
- [CODEOWNERS](https://help.github.com/articles/about-codeowners/) will make GitHub notify users based on the submitted changes, but it can happen that it misses some of the package maintainers.
- Ensure that the module tests, if any, are succeeding.
- Ensure that the introduced options are correct.
- Type should be appropriate (string related types differs in their merging capabilities, `loaOf` and `string` types are deprecated).
- Description, default and example should be provided.
- Ensure that option changes are backward compatible.
- `mkRenamedOptionModuleWith` provides a way to make option changes backward compatible.
- Ensure that removed options are declared with `mkRemovedOptionModule`
- Ensure that changes that are not backward compatible are mentioned in release notes.
- Ensure that documentations affected by the change is updated.
Sample template for a module update review is provided below.
```markdown
##### Reviewed points
- [ ] changes are backward compatible
- [ ] removed options are declared with `mkRemovedOptionModule`
- [ ] changes that are not backward compatible are documented in release notes
- [ ] module tests succeed on ARCHITECTURE
- [ ] options types are appropriate
- [ ] options description is set
- [ ] options example is provided
- [ ] documentation affected by the changes is updated
##### Possible improvements
##### Comments
```
## New modules {#reviewing-contributions-new-modules}
New modules submissions introduce a new module to NixOS.
Reviewing process:
- Ensure that the module tests, if any, are succeeding.
- Ensure that the introduced options are correct.
- Type should be appropriate (string related types differs in their merging capabilities, `loaOf` and `string` types are deprecated).
- Description, default and example should be provided.
- Ensure that module `meta` field is present
- Maintainers should be declared in `meta.maintainers`.
- Module documentation should be declared with `meta.doc`.
- Ensure that the module respect other modules functionality.
- For example, enabling a module should not open firewall ports by default.
Sample template for a new module review is provided below.
```markdown
##### Reviewed points
- [ ] module path fits the guidelines
- [ ] module tests succeed on ARCHITECTURE
- [ ] options have appropriate types
- [ ] options have default
- [ ] options have example
- [ ] options have descriptions
- [ ] No unneeded package is added to environment.systemPackages
- [ ] meta.maintainers is set
- [ ] module documentation is declared in meta.doc
##### Possible improvements
##### Comments
```
## Individual maintainer list {#reviewing-contributions-indvidual-maintainer-list}
When adding users to `maintainers/maintainer-list.nix`, the following
checks should be performed:
- If the user has specified a GPG key, verify that the commit is
signed by their key.
First, validate that the commit adding the maintainer is signed by
the key the maintainer listed. Check out the pull request and
compare its signing key with the listed key in the commit.
If the commit is not signed or it is signed by a different user, ask
them to either recommit using that key or to remove their key
information.
Given a maintainter entry like this:
``` nix
{
example = {
email = "user@example.com";
name = "Example User";
keys = [{
fingerprint = "0000 0000 2A70 6423 0AED 3C11 F04F 7A19 AAA6 3AFE";
}];
}
};
```
First receive their key from a keyserver:
$ gpg --recv-keys 0xF04F7A19AAA63AFE
gpg: key 0xF04F7A19AAA63AFE: public key "Example <user@example.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
Then check the commit is signed by that key:
$ git log --show-signature
commit b87862a4f7d32319b1de428adb6cdbdd3a960153
gpg: Signature made Wed Mar 12 13:32:24 2003 +0000
gpg: using RSA key 000000002A7064230AED3C11F04F7A19AAA63AFE
gpg: Good signature from "Example User <user@example.com>
Author: Example User <user@example.com>
Date: Wed Mar 12 13:32:24 2003 +0000
maintainers: adding example
and validate that there is a `Good signature` and the printed key
matches the user's submitted key.
Note: GitHub's "Verified" label does not display the user's full key
fingerprint, and should not be used for validating the key matches.
- If the user has specified a `github` account name, ensure they have
also specified a `githubId` and verify the two match.
Maintainer entries that include a `github` field must also include
their `githubId`. People can and do change their GitHub name
frequently, and the ID is used as the official and stable identity
of the maintainer.
Given a maintainer entry like this:
``` nix
{
example = {
email = "user@example.com";
name = "Example User";
github = "ghost";
githubId = 10137;
}
};
```
First, make sure that the listed GitHub handle matches the author of
the commit.
Then, visit the URL `https://api.github.com/users/ghost` and
validate that the `id` field matches the provided `githubId`.
## Maintainer teams {#reviewing-contributions-maintainer-teams}
Feel free to create a new maintainer team in `maintainers/team-list.nix`
when a group is collectively responsible for a collection of packages.
Use taste and personal judgement when deciding if a team is warranted.
Teams are allowed to define their own rules about membership.
For example, some teams will represent a business or other group which
wants to carefully track its members. Other teams may be very open about
who can join, and allow anybody to participate.
When reviewing changes to a team, read the team's scope and the context
around the member list for indications about the team's membership
policy.
In any case, request reviews from the existing team members. If the team
lists no specific membership policy, feel free to merge changes to the
team after giving the existing members a few days to respond.
*Important:* If a team says it is a closed group, do not merge additions
to the team without an approval by at least one existing member.
## Other submissions {#reviewing-contributions-other-submissions}
Other type of submissions requires different reviewing steps.
If you consider having enough knowledge and experience in a topic and would like to be a long-term reviewer for related submissions, please contact the current reviewers for that topic. They will give you information about the reviewing process. The main reviewers for a topic can be hard to find as there is no list, but checking past pull requests to see who reviewed or git-blaming the code to see who committed to that topic can give some hints.
Container system, boot system and library changes are some examples of the pull requests fitting this category.
## Merging pull requests {#reviewing-contributions--merging-pull-requests}
It is possible for community members that have enough knowledge and experience on a special topic to contribute by merging pull requests.
<!--
The following paragraphs about how to deal with unactive contributors is just a proposition and should be modified to what the community agrees to be the right policy.
Please note that contributors with commit rights unactive for more than three months will have their commit rights revoked.
-->
Please see the discussion in [GitHub nixpkgs issue #50105](https://github.com/NixOS/nixpkgs/issues/50105) for information on how to proceed to be granted this level of access.
In a case a contributor definitively leaves the Nix community, they should create an issue or post on [Discourse](https://discourse.nixos.org) with references of packages and modules they maintain so the maintainership can be taken over by other contributors.

View File

@@ -1,298 +0,0 @@
# Submitting changes {#chap-submitting-changes}
## Making patches {#submitting-changes-making-patches}
- Read [Manual (How to write packages for Nix)](https://nixos.org/nixpkgs/manual/).
- Fork [the Nixpkgs repository](https://github.com/nixos/nixpkgs/) on GitHub.
- Create a branch for your future fix.
- You can make branch from a commit of your local `nixos-version`. That will help you to avoid additional local compilations. Because you will receive packages from binary cache. For example
```ShellSession
$ nixos-version --hash
0998212
$ git checkout 0998212
$ git checkout -b 'fix/pkg-name-update'
```
- Please avoid working directly on the `master` branch.
- Make commits of logical units.
- If you removed pkgs or made some major NixOS changes, write about it in the release notes for the next stable release. For example `nixos/doc/manual/release-notes/rl-2003.xml`.
- Check for unnecessary whitespace with `git diff --check` before committing.
- Format the commit in a following way:
```
(pkg-name | nixos/<module>): (from -> to | init at version | refactor | etc)
Additional information.
```
- Examples:
- `nginx: init at 2.0.1`
- `firefox: 54.0.1 -> 55.0`
- `nixos/hydra: add bazBaz option`
- `nixos/nginx: refactor config generation`
- Test your changes. If you work with
- nixpkgs:
- update pkg
- `nix-env -iA pkg-attribute-name -f <path to your local nixpkgs folder>`
- add pkg
- Make sure its in `pkgs/top-level/all-packages.nix`
- `nix-env -iA pkg-attribute-name -f <path to your local nixpkgs folder>`
- _If you dont want to install pkg in you profile_.
- `nix-build -A pkg-attribute-name <path to your local nixpkgs folder>` and check results in the folder `result`. It will appear in the same directory where you did `nix-build`.
- If you installed your package with `nix-env`, you can run `nix-env -e pkg-name` where `pkg-name` is as reported by `nix-env -q` to uninstall it from your system.
- NixOS and its modules:
- You can add new module to your NixOS configuration file (usually its `/etc/nixos/configuration.nix`). And do `sudo nixos-rebuild test -I nixpkgs=<path to your local nixpkgs folder> --fast`.
- If you have commits `pkg-name: oh, forgot to insert whitespace`: squash commits in this case. Use `git rebase -i`.
- [Rebase](https://git-scm.com/book/en/v2/Git-Branching-Rebasing) your branch against current `master`.
## Submitting changes {#submitting-changes-submitting-changes}
- Push your changes to your fork of nixpkgs.
- Create the pull request
- Follow [the contribution guidelines](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#submitting-changes).
## Submitting security fixes {#submitting-changes-submitting-security-fixes}
Security fixes are submitted in the same way as other changes and thus the same guidelines apply.
- If a new version fixing the vulnerability has been released, update the package;
- If the security fix comes in the form of a patch and a CVE is available, then add the patch to the Nixpkgs tree, and apply it to the package.
The name of the patch should be the CVE identifier, so e.g. `CVE-2019-13636.patch`; If a patch is fetched the name needs to be set as well, e.g.:
```nix
(fetchpatch {
name = "CVE-2019-11068.patch";
url = "https://gitlab.gnome.org/GNOME/libxslt/commit/e03553605b45c88f0b4b2980adfbbb8f6fca2fd6.patch";
sha256 = "0pkpb4837km15zgg6h57bncp66d5lwrlvkr73h0lanywq7zrwhj8";
})
```
If a security fix applies to both master and a stable release then, similar to regular changes, they are preferably delivered via master first and cherry-picked to the release branch.
Critical security fixes may by-pass the staging branches and be delivered directly to release branches such as `master` and `release-*`.
## Deprecating/removing packages {#submitting-changes-deprecating-packages}
There is currently no policy when to remove a package.
Before removing a package, one should try to find a new maintainer or fix smaller issues first.
### Steps to remove a package from Nixpkgs {#steps-to-remove-a-package-from-nixpkgs}
We use jbidwatcher as an example for a discontinued project here.
1. Have Nixpkgs checked out locally and up to date.
1. Create a new branch for your change, e.g. `git checkout -b jbidwatcher`
1. Remove the actual package including its directory, e.g. `git rm -rf pkgs/applications/misc/jbidwatcher`
1. Remove the package from the list of all packages (`pkgs/top-level/all-packages.nix`).
1. Add an alias for the package name in `pkgs/top-level/aliases.nix` (There is also `pkgs/applications/editors/vim/plugins/aliases.nix`. Package sets typically do not have aliases, so we can't add them there.)
For example in this case:
```
jbidwatcher = throw "jbidwatcher was discontinued in march 2021"; # added 2021-03-15
```
The throw message should explain in short why the package was removed for users that still have it installed.
1. Test if the changes introduced any issues by running `nix-env -qaP -f . --show-trace`. It should show the list of packages without errors.
1. Commit the changes. Explain again why the package was removed. If it was declared discontinued upstream, add a link to the source.
```ShellSession
$ git add pkgs/applications/misc/jbidwatcher/default.nix pkgs/top-level/all-packages.nix pkgs/top-level/aliases.nix
$ git commit
```
Example commit message:
```
jbidwatcher: remove
project was discontinued in march 2021. the program does not work anymore because ebay changed the login.
https://web.archive.org/web/20210315205723/http://www.jbidwatcher.com/
```
1. Push changes to your GitHub fork with `git push`
1. Create a pull request against Nixpkgs. Mention the package maintainer.
This is how the pull request looks like in this case: [https://github.com/NixOS/nixpkgs/pull/116470](https://github.com/NixOS/nixpkgs/pull/116470)
## Pull Request Template {#submitting-changes-pull-request-template}
The pull request template helps determine what steps have been made for a contribution so far, and will help guide maintainers on the status of a change. The motivation section of the PR should include any extra details the title does not address and link any existing issues related to the pull request.
When a PR is created, it will be pre-populated with some checkboxes detailed below:
### Tested using sandboxing {#submitting-changes-tested-with-sandbox}
When sandbox builds are enabled, Nix will setup an isolated environment for each build process. It is used to remove further hidden dependencies set by the build environment to improve reproducibility. This includes access to the network during the build outside of `fetch*` functions and files outside the Nix store. Depending on the operating system access to other resources are blocked as well (ex. inter process communication is isolated on Linux); see [sandbox](https://nixos.org/nix/manual/#conf-sandbox) in Nix manual for details.
Sandboxing is not enabled by default in Nix due to a small performance hit on each build. In pull requests for [nixpkgs](https://github.com/NixOS/nixpkgs/) people are asked to test builds with sandboxing enabled (see `Tested using sandboxing` in the pull request template) because in<https://nixos.org/hydra/> sandboxing is also used.
Depending if you use NixOS or other platforms you can use one of the following methods to enable sandboxing **before** building the package:
- **Globally enable sandboxing on NixOS**: add the following to `configuration.nix`
```nix
nix.useSandbox = true;
```
- **Globally enable sandboxing on non-NixOS platforms**: add the following to: `/etc/nix/nix.conf`
```ini
sandbox = true
```
### Built on platform(s) {#submitting-changes-platform-diversity}
Many Nix packages are designed to run on multiple platforms. As such, its important to let the maintainer know which platforms your changes have been tested on. Its not always practical to test a change on all platforms, and is not required for a pull request to be merged. Only check the systems you tested the build on in this section.
### Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests) {#submitting-changes-nixos-tests}
Packages with automated tests are much more likely to be merged in a timely fashion because it doesnt require as much manual testing by the maintainer to verify the functionality of the package. If there are existing tests for the package, they should be run to verify your changes do not break the tests. Tests can only be run on Linux. For more details on writing and running tests, see the [section in the NixOS manual](https://nixos.org/nixos/manual/index.html#sec-nixos-tests).
### Tested compilation of all pkgs that depend on this change using `nixpkgs-review` {#submitting-changes-tested-compilation}
If you are updating a packages version, you can use `nixpkgs-review` to make sure all packages that depend on the updated package still compile correctly. The `nixpkgs-review` utility can look for and build all dependencies either based on uncommitted changes with the `wip` option or specifying a GitHub pull request number.
Review changes from pull request number 12345:
```ShellSession
nix-shell -p nixpkgs-review --run "nixpkgs-review pr 12345"
```
Alternatively, with flakes (and analogously for the other commands below):
```ShellSession
nix run nixpkgs#nixpkgs-review -- pr 12345
```
Review uncommitted changes:
```ShellSession
nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
```
Review changes from last commit:
```ShellSession
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
```
### Tested execution of all binary files (usually in `./result/bin/`) {#submitting-changes-tested-execution}
Its important to test any executables generated by a build when you change or create a package in nixpkgs. This can be done by looking in `./result/bin` and running any files in there, or at a minimum, the main executable for the package. For example, if you make a change to texlive, you probably would only check the binaries associated with the change you made rather than testing all of them.
### Meets Nixpkgs contribution standards {#submitting-changes-contribution-standards}
The last checkbox is fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md). The contributing document has detailed information on standards the Nix community has for commit messages, reviews, licensing of contributions you make to the project, etc\... Everyone should read and understand the standards the community has for contributing before submitting a pull request.
## Hotfixing pull requests {#submitting-changes-hotfixing-pull-requests}
- Make the appropriate changes in you branch.
- Dont create additional commits, do
- `git rebase -i`
- `git push --force` to your branch.
## Commit policy {#submitting-changes-commit-policy}
- Commits must be sufficiently tested before being merged, both for the master and staging branches.
- Hydra builds for master and staging should not be used as testing platform, its a build farm for changes that have been already tested.
- When changing the bootloader installation process, extra care must be taken. Grub installations cannot be rolled back, hence changes may break peoples installations forever. For any non-trivial change to the bootloader please file a PR asking for review, especially from \@edolstra.
```{.graphviz caption="Staging workflow"}
digraph {
"small changes" [shape=none]
"mass-rebuilds and other large changes" [shape=none]
"critical security fixes" [shape=none]
"broken staging-next fixes" [shape=none]
"small changes" -> master
"mass-rebuilds and other large changes" -> staging
"critical security fixes" -> master
"broken staging-next fixes" -> "staging-next"
"staging-next" -> master [color="#E85EB0"] [label="stabilization ends"] [fontcolor="#E85EB0"]
"staging" -> "staging-next" [color="#E85EB0"] [label="stabilization starts"] [fontcolor="#E85EB0"]
master -> "staging-next" -> staging [color="#5F5EE8"] [label="every six hours (GitHub Action)"] [fontcolor="#5F5EE8"]
}
```
[This GitHub Action](https://github.com/NixOS/nixpkgs/blob/master/.github/workflows/periodic-merge-6h.yml) brings changes from `master` to `staging-next` and from `staging-next` to `staging` every 6 hours; these are the blue arrows in the diagram above. The purple arrows in the diagram above are done manually and much less frequently. You can get an idea of how often these merges occur by looking at the git history.
### Master branch {#submitting-changes-master-branch}
The `master` branch is the main development branch. It should only see non-breaking commits that do not cause mass rebuilds.
### Staging branch {#submitting-changes-staging-branch}
The `staging` branch is a development branch where mass-rebuilds go. Mass rebuilds are commits that cause rebuilds for many packages, like more than 500 (or perhaps, if it's 'light' packages, 1000). It should only see non-breaking mass-rebuild commits. That means it is not to be used for testing, and changes must have been well tested already. If the branch is already in a broken state, please refrain from adding extra new breakages.
### Staging-next branch {#submitting-changes-staging-next-branch}
The `staging-next` branch is for stabilizing mass-rebuilds submitted to the `staging` branch prior to merging them into `master`. Mass-rebuilds must go via the `staging` branch. It must only see non-breaking commits that are fixing issues blocking it from being merged into the `master ` branch.
If the branch is already in a broken state, please refrain from adding extra new breakages. Stabilize it for a few days and then merge into master.
### Stable release branches {#submitting-changes-stable-release-branches}
The same staging workflow applies to stable release branches, but the main branch is called `release-*` instead of `master`.
Example branch names: `release-21.11`, `staging-21.11`, `staging-next-21.11`.
Most changes added to the stable release branches are cherry-picked (“backported”) from the `master` and staging branches.
#### Automatically backporting a Pull Request {#submitting-changes-stable-release-branches-automatic-backports}
Assign label `backport <branch>` (e.g. `backport release-21.11`) to the PR and a backport PR is automatically created after the PR is merged.
#### Manually backporting changes {#submitting-changes-stable-release-branches-manual-backports}
Cherry-pick changes via `git cherry-pick -x <original commit>` so that the original commit id is included in the commit message.
Add a reason for the backport when it is not obvious from the original commit message. You can do this by cherry picking with `git cherry-pick -xe <original commit>`, which allows editing the commit message. This is not needed for minor version updates that include security and bug fixes but don't add new features or when the commit fixes an otherwise broken package.
Here is an example of a cherry-picked commit message with good reason description:
```
zfs: Keep trying root import until it works
Works around #11003.
(cherry picked from commit 98b213a11041af39b39473906b595290e2a4e2f9)
Reason: several people cannot boot with ZFS on NVMe
```
Other examples of reasons are:
- Previously the build would fail due to, e.g., `getaddrinfo` not being defined
- The previous download links were all broken
- Crash when starting on some X11 systems
#### Acceptable backport criteria
The stable branch does have some changes which cannot be backported. Most notable are breaking changes. The desire is to have stable users be uninterrupted when updating packages.
However, many changes are able to be backported, including:
- New Packages / Modules
- Security / Patch updates
- Version updates which include new functionality (but no breaking changes)
- Services which require a client to be up-to-date regardless. (E.g. `spotify`, `steam`, or `discord`)
- Security critical applications (E.g. `firefox`)

View File

@@ -1,45 +0,0 @@
# Vulnerability Roundup {#chap-vulnerability-roundup}
## Issues {#vulnerability-roundup-issues}
Vulnerable packages in Nixpkgs are managed using issues.
Currently opened ones can be found using the following:
[github.com/NixOS/nixpkgs/issues?q=is:issue+is:open+"Vulnerability+roundup"](https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+%22Vulnerability+roundup%22)
Each issue correspond to a vulnerable version of a package; As a consequence:
- One issue can contain several CVEs;
- One CVE can be shared across several issues;
- A single package can be concerned by several issues.
A "Vulnerability roundup" issue usually respects the following format:
```txt
<link to relevant package search on search.nix.gsc.io>, <link to relevant files in Nixpkgs on GitHub>
<list of related CVEs, their CVSS score, and the impacted NixOS version>
<list of the scanned Nixpkgs versions>
<list of relevant contributors>
```
Note that there can be an extra comment containing links to previously reported (and still open) issues for the same package.
## Triaging and Fixing {#vulnerability-roundup-triaging-and-fixing}
**Note**: An issue can be a "false positive" (i.e. automatically opened, but without the package it refers to being actually vulnerable).
If you find such a "false positive", comment on the issue an explanation of why it falls into this category, linking as much information as the necessary to help maintainers double check.
If you are investigating a "true positive":
- Find the earliest patched version or a code patch in the CVE details;
- Is the issue already patched (version up-to-date or patch applied manually) in Nixpkgs's `master` branch?
- **No**:
- [Submit a security fix](#submitting-changes-submitting-security-fixes);
- Once the fix is merged into `master`, [submit the change to the vulnerable release branch(es)](https://nixos.org/manual/nixpkgs/stable/#submitting-changes-stable-release-branches);
- **Yes**: [Backport the change to the vulnerable release branch(es)](https://nixos.org/manual/nixpkgs/stable/#submitting-changes-stable-release-branches).
- When the patch has made it into all the relevant branches (`master`, and the vulnerable releases), close the relevant issue(s).

308
doc/cross-compilation.xml Normal file
View File

@@ -0,0 +1,308 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="chap-cross">
<title>Cross-compilation</title>
<section xml:id="sec-cross-intro">
<title>Introduction</title>
<para>
"Cross-compilation" means compiling a program on one machine for another type of machine.
For example, a typical use of cross compilation is to compile programs for embedded devices.
These devices often don't have the computing power and memory to compile their own programs.
One might think that cross-compilation is a fairly niche concern, but there are advantages to being rigorous about distinguishing build-time vs run-time environments even when one is developing and deploying on the same machine.
Nixpkgs is increasingly adopting the opinion that packages should be written with cross-compilation in mind, and nixpkgs should evaluate in a similar way (by minimizing cross-compilation-specific special cases) whether or not one is cross-compiling.
</para>
<para>
This chapter will be organized in three parts.
First, it will describe the basics of how to package software in a way that supports cross-compilation.
Second, it will describe how to use Nixpkgs when cross-compiling.
Third, it will describe the internal infrastructure supporting cross-compilation.
</para>
</section>
<!--============================================================-->
<section xml:id="sec-cross-packaging">
<title>Packaging in a cross-friendly manner</title>
<section>
<title>Platform parameters</title>
<para>
Nixpkgs follows the <link xlink:href="https://gcc.gnu.org/onlinedocs/gccint/Configure-Terms.html">common historical convention of GNU autoconf</link> of distinguishing between 3 types of platform: <wordasword>build</wordasword>, <wordasword>host</wordasword>, and <wordasword>target</wordasword>.
In summary, <wordasword>build</wordasword> is the platform on which a package is being built, <wordasword>host</wordasword> is the platform on which it is to run. The third attribute, <wordasword>target</wordasword>, is relevant only for certain specific compilers and build tools.
</para>
<para>
In Nixpkgs, these three platforms are defined as attribute sets under the names <literal>buildPlatform</literal>, <literal>hostPlatform</literal>, and <literal>targetPlatform</literal>.
All three are always defined as attributes in the standard environment, and at the top level. That means one can get at them just like a dependency in a function that is imported with <literal>callPackage</literal>:
<programlisting>{ stdenv, buildPlatform, hostPlatform, fooDep, barDep, .. }: ...buildPlatform...</programlisting>, or just off <varname>stdenv</varname>:
<programlisting>{ stdenv, fooDep, barDep, .. }: ...stdenv.buildPlatform...</programlisting>.
</para>
<variablelist>
<varlistentry>
<term><varname>buildPlatform</varname></term>
<listitem><para>
The "build platform" is the platform on which a package is built.
Once someone has a built package, or pre-built binary package, the build platform should not matter and be safe to ignore.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>hostPlatform</varname></term>
<listitem><para>
The "host platform" is the platform on which a package will be run.
This is the simplest platform to understand, but also the one with the worst name.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>targetPlatform</varname></term>
<listitem>
<para>
The "target platform" attribute is, unlike the other two attributes, not actually fundamental to the process of building software.
Instead, it is only relevant for compatibility with building certain specific compilers and build tools.
It can be safely ignored for all other packages.
</para>
<para>
The build process of certain compilers is written in such a way that the compiler resulting from a single build can itself only produce binaries for a single platform.
The task specifying this single "target platform" is thus pushed to build time of the compiler.
The root cause of this mistake is often that the compiler (which will be run on the host) and the the standard library/runtime (which will be run on the target) are built by a single build process.
</para>
<para>
There is no fundamental need to think about a single target ahead of time like this.
If the tool supports modular or pluggable backends, both the need to specify the target at build time and the constraint of having only a single target disappear.
An example of such a tool is LLVM.
</para>
<para>
Although the existance of a "target platfom" is arguably a historical mistake, it is a common one: examples of tools that suffer from it are GCC, Binutils, GHC and Autoconf.
Nixpkgs tries to avoid sharing in the mistake where possible.
Still, because the concept of a target platform is so ingrained, it is best to support it as is.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
The exact schema these fields follow is a bit ill-defined due to a long and convoluted evolution, but this is slowly being cleaned up.
You can see examples of ones used in practice in <literal>lib.systems.examples</literal>; note how they are not all very consistent.
For now, here are few fields can count on them containing:
</para>
<variablelist>
<varlistentry>
<term><varname>system</varname></term>
<listitem>
<para>
This is a two-component shorthand for the platform.
Examples of this would be "x86_64-darwin" and "i686-linux"; see <literal>lib.systems.doubles</literal> for more.
This format isn't very standard, but has built-in support in Nix, such as the <varname>builtins.currentSystem</varname> impure string.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>config</varname></term>
<listitem>
<para>
This is a 3- or 4- component shorthand for the platform.
Examples of this would be "x86_64-unknown-linux-gnu" and "aarch64-apple-darwin14".
This is a standard format called the "LLVM target triple", as they are pioneered by LLVM and traditionally just used for the <varname>targetPlatform</varname>.
This format is strictly more informative than the "Nix host double", as the previous format could analogously be termed.
This needs a better name than <varname>config</varname>!
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>parsed</varname></term>
<listitem>
<para>
This is a nix representation of a parsed LLVM target triple with white-listed components.
This can be specified directly, or actually parsed from the <varname>config</varname>.
[Technically, only one need be specified and the others can be inferred, though the precision of inference may not be very good.]
See <literal>lib.systems.parse</literal> for the exact representation.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>libc</varname></term>
<listitem>
<para>
This is a string identifying the standard C library used.
Valid identifiers include "glibc" for GNU libc, "libSystem" for Darwin's Libsystem, and "uclibc" for µClibc.
It should probably be refactored to use the module system, like <varname>parse</varname>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>is*</varname></term>
<listitem>
<para>
These predicates are defined in <literal>lib.systems.inspect</literal>, and slapped on every platform.
They are superior to the ones in <varname>stdenv</varname> as they force the user to be explicit about which platform they are inspecting.
Please use these instead of those.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>platform</varname></term>
<listitem>
<para>
This is, quite frankly, a dumping ground of ad-hoc settings (it's an attribute set).
See <literal>lib.systems.platforms</literal> for examples—there's hopefully one in there that will work verbatim for each platform that is working.
Please help us triage these flags and give them better homes!
</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section>
<title>Specifying Dependencies</title>
<para>
In this section we explore the relationship between both runtime and buildtime dependencies and the 3 Autoconf platforms.
</para>
<para>
A runtime dependency between 2 packages implies that between them both the host and target platforms match.
This is directly implied by the meaning of "host platform" and "runtime dependency":
The package dependency exists while both packages are running on a single host platform.
</para>
<para>
A build time dependency, however, implies a shift in platforms between the depending package and the depended-on package.
The meaning of a build time dependency is that to build the depending package we need to be able to run the depended-on's package.
The depending package's build platform is therefore equal to the depended-on package's host platform.
Analogously, the depending package's host platform is equal to the depended-on package's target platform.
</para>
<para>
In this manner, given the 3 platforms for one package, we can determine the three platforms for all its transitive dependencies.
This is the most important guiding principle behind cross-compilation with Nixpkgs, and will be called the <wordasword>sliding window principle</wordasword>.
</para>
<para>
Some examples will probably make this clearer.
If a package is being built with a <literal>(build, host, target)</literal> platform triple of <literal>(foo, bar, bar)</literal>, then its build-time dependencies would have a triple of <literal>(foo, foo, bar)</literal>, and <emphasis>those packages'</emphasis> build-time dependencies would have triple of <literal>(foo, foo, foo)</literal>.
In other words, it should take two "rounds" of following build-time dependency edges before one reaches a fixed point where, by the sliding window principle, the platform triple no longer changes.
Indeed, this happens with cross compilation, where only rounds of native dependencies starting with the second necessarily coincide with native packages.
</para>
<note><para>
The depending package's target platform is unconstrained by the sliding window principle, which makes sense in that one can in principle build cross compilers targeting arbitrary platforms.
</para></note>
<para>
How does this work in practice? Nixpkgs is now structured so that build-time dependencies are taken from <varname>buildPackages</varname>, whereas run-time dependencies are taken from the top level attribute set.
For example, <varname>buildPackages.gcc</varname> should be used at build time, while <varname>gcc</varname> should be used at run time.
Now, for most of Nixpkgs's history, there was no <varname>buildPackages</varname>, and most packages have not been refactored to use it explicitly.
Instead, one can use the six (<emphasis>gasp</emphasis>) attributes used for specifying dependencies as documented in <xref linkend="ssec-stdenv-dependencies"/>.
We "splice" together the run-time and build-time package sets with <varname>callPackage</varname>, and then <varname>mkDerivation</varname> for each of four attributes pulls the right derivation out.
This splicing can be skipped when not cross compiling as the package sets are the same, but is a bit slow for cross compiling.
Because of this, a best-of-both-worlds solution is in the works with no splicing or explicit access of <varname>buildPackages</varname> needed.
For now, feel free to use either method.
</para>
<note><para>
There is also a "backlink" <varname>targetPackages</varname>, yielding a package set whose <varname>buildPackages</varname> is the current package set.
This is a hack, though, to accommodate compilers with lousy build systems.
Please do not use this unless you are absolutely sure you are packaging such a compiler and there is no other way.
</para></note>
</section>
<section>
<title>Cross packagaing cookbook</title>
<para>
Some frequently problems when packaging for cross compilation are good to just spell and answer.
Ideally the information above is exhaustive, so this section cannot provide any new information,
but its ludicrous and cruel to expect everyone to spend effort working through the interaction of many features just to figure out the same answer to the same common problem.
Feel free to add to this list!
</para>
<qandaset>
<qandaentry>
<question><para>
What if my package's build system needs to build a C program to be run under the build environment?
</para></question>
<answer><para>
<programlisting>depsBuildBuild = [ buildPackages.stdenv.cc ];</programlisting>
Add it to your <function>mkDerivation</function> invocation.
</para></answer>
</qandaentry>
<qandaentry>
<question><para>
My package fails to find <command>ar</command>.
</para></question>
<answer><para>
Many packages assume that an unprefixed <command>ar</command> is available, but Nix doesn't provide one.
It only provides a prefixed one, just as it only does for all the other binutils programs.
It may be necessary to patch the package to fix the build system to use a prefixed `ar`.
</para></answer>
</qandaentry>
<qandaentry>
<question><para>
My package's testsuite needs to run host platform code.
</para></question>
<answer><para>
<programlisting>doCheck = stdenv.hostPlatform != stdenv.buildPlatfrom;</programlisting>
Add it to your <function>mkDerivation</function> invocation.
</para></answer>
</qandaentry>
</qandaset>
</section>
</section>
<!--============================================================-->
<section xml:id="sec-cross-usage">
<title>Cross-building packages</title>
<note><para>
More information needs to moved from the old wiki, especially <link xlink:href="https://nixos.org/wiki/CrossCompiling" />, for this section.
</para></note>
<para>
Nixpkgs can be instantiated with <varname>localSystem</varname> alone, in which case there is no cross compiling and everything is built by and for that system,
or also with <varname>crossSystem</varname>, in which case packages run on the latter, but all building happens on the former.
Both parameters take the same schema as the 3 (build, host, and target) platforms defined in the previous section.
As mentioned above, <literal>lib.systems.examples</literal> has some platforms which are used as arguments for these parameters in practice.
You can use them programmatically, or on the command line: <programlisting>
nix-build &lt;nixpkgs&gt; --arg crossSystem '(import &lt;nixpkgs/lib&gt;).systems.examples.fooBarBaz' -A whatever</programlisting>
</para>
<note>
<para>
Eventually we would like to make these platform examples an unnecessary convenience so that <programlisting>
nix-build &lt;nixpkgs&gt; --arg crossSystem.config '&lt;arch&gt;-&lt;os&gt;-&lt;vendor&gt;-&lt;abi&gt;' -A whatever</programlisting>
works in the vast majority of cases.
The problem today is dependencies on other sorts of configuration which aren't given proper defaults.
We rely on the examples to crudely to set those configuration parameters in some vaguely sane manner on the users behalf.
Issue <link xlink:href="https://github.com/NixOS/nixpkgs/issues/34274">#34274</link> tracks this inconvenience along with its root cause in crufty configuration options.
</para>
</note>
<para>
While one is free to pass both parameters in full, there's a lot of logic to fill in missing fields.
As discussed in the previous section, only one of <varname>system</varname>, <varname>config</varname>, and <varname>parsed</varname> is needed to infer the other two.
Additionally, <varname>libc</varname> will be inferred from <varname>parse</varname>.
Finally, <literal>localSystem.system</literal> is also <emphasis>impurely</emphasis> inferred based on the platform evaluation occurs.
This means it is often not necessary to pass <varname>localSystem</varname> at all, as in the command-line example in the previous paragraph.
</para>
<note>
<para>
Many sources (manual, wiki, etc) probably mention passing <varname>system</varname>, <varname>platform</varname>, along with the optional <varname>crossSystem</varname> to nixpkgs:
<literal>import &lt;nixpkgs&gt; { system = ..; platform = ..; crossSystem = ..; }</literal>.
Passing those two instead of <varname>localSystem</varname> is still supported for compatibility, but is discouraged.
Indeed, much of the inference we do for these parameters is motivated by compatibility as much as convenience.
</para>
</note>
<para>
One would think that <varname>localSystem</varname> and <varname>crossSystem</varname> overlap horribly with the three <varname>*Platforms</varname> (<varname>buildPlatform</varname>, <varname>hostPlatform,</varname> and <varname>targetPlatform</varname>; see <varname>stage.nix</varname> or the manual).
Actually, those identifiers are purposefully not used here to draw a subtle but important distinction:
While the granularity of having 3 platforms is necessary to properly *build* packages, it is overkill for specifying the user's *intent* when making a build plan or package set.
A simple "build vs deploy" dichotomy is adequate: the sliding window principle described in the previous section shows how to interpolate between the these two "end points" to get the 3 platform triple for each bootstrapping stage.
That means for any package a given package set, even those not bound on the top level but only reachable via dependencies or <varname>buildPackages</varname>, the three platforms will be defined as one of <varname>localSystem</varname> or <varname>crossSystem</varname>, with the former replacing the latter as one traverses build-time dependencies.
A last simple difference then is <varname>crossSystem</varname> should be null when one doesn't want to cross-compile, while the <varname>*Platform</varname>s are always non-null.
<varname>localSystem</varname> is always non-null.
</para>
</section>
<!--============================================================-->
<section xml:id="sec-cross-infra">
<title>Cross-compilation infrastructure</title>
<para>To be written.</para>
<note><para>
If one explores nixpkgs, they will see derivations with names like <literal>gccCross</literal>.
Such <literal>*Cross</literal> derivations is a holdover from before we properly distinguished between the host and target platforms
—the derivation with "Cross" in the name covered the <literal>build = host != target</literal> case, while the other covered the <literal>host = target</literal>, with build platform the same or not based on whether one was using its <literal>.nativeDrv</literal> or <literal>.crossDrv</literal>.
This ugliness will disappear soon.
</para></note>
</section>
</chapter>

View File

@@ -1,24 +1,36 @@
{ pkgs ? (import ./.. { }), nixpkgs ? { }}:
let
pkgs = import ./.. { };
lib = pkgs.lib;
doc-support = import ./doc-support { inherit pkgs nixpkgs; };
in pkgs.stdenv.mkDerivation {
sources = lib.sourceFilesBySuffices ./. [".xml"];
sources-langs = ./languages-frameworks;
in
pkgs.stdenv.mkDerivation {
name = "nixpkgs-manual";
nativeBuildInputs = with pkgs; [
pandoc
graphviz
libxml2
libxslt
zip
jing
xmlformat
buildInputs = with pkgs; [ pandoc libxml2 libxslt zip jing ];
src = ./.;
# Hacking on these variables? Make sure to close and open
# nix-shell between each test, maybe even:
# $ nix-shell --run "make clean all"
# otherwise they won't reapply :)
HIGHLIGHTJS = pkgs.documentation-highlighter;
XSL = "${pkgs.docbook5_xsl}/xml/xsl";
RNG = "${pkgs.docbook5}/xml/rng/docbook/docbook.rng";
xsltFlags = lib.concatStringsSep " " [
"--param section.autolabel 1"
"--param section.label.includes.component.label 1"
"--stringparam html.stylesheet 'style.css overrides.css highlightjs/mono-blue.css'"
"--stringparam html.script './highlightjs/highlight.pack.js ./highlightjs/loader.js'"
"--param xref.with.number.and.title 1"
"--param toc.section.depth 3"
"--stringparam admon.style ''"
"--stringparam callout.graphics.extension .svg"
];
src = lib.cleanSource ./.;
postPatch = ''
ln -s ${doc-support} ./doc-support/result
echo ${lib.nixpkgsVersion} > .version
'';
installPhase = ''
@@ -31,9 +43,5 @@ in pkgs.stdenv.mkDerivation {
mkdir -p $out/nix-support/
echo "doc manual $dest manual.html" >> $out/nix-support/hydra-build-products
echo "doc manual $dest nixpkgs-manual.epub" >> $out/nix-support/hydra-build-products
'';
# Environment variables
PANDOC_LUA_FILTERS_DIR = "${pkgs.pandoc-lua-filters}/share/pandoc/filters";
}

View File

@@ -1,69 +0,0 @@
{ pkgs ? (import ../.. {}), nixpkgs ? { }}:
let
inherit (pkgs) lib;
inherit (lib) hasPrefix removePrefix;
locationsXml = import ./lib-function-locations.nix { inherit pkgs nixpkgs; };
functionDocs = import ./lib-function-docs.nix { inherit locationsXml pkgs; };
version = pkgs.lib.version;
epub-xsl = pkgs.writeText "epub.xsl" ''
<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:import href="${pkgs.docbook_xsl_ns}/xml/xsl/docbook/epub/docbook.xsl" />
<xsl:import href="${./parameters.xml}"/>
</xsl:stylesheet>
'';
xhtml-xsl = pkgs.writeText "xhtml.xsl" ''
<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:import href="${pkgs.docbook_xsl_ns}/xml/xsl/docbook/xhtml/docbook.xsl" />
<xsl:import href="${./parameters.xml}"/>
</xsl:stylesheet>
'';
# NB: This file describes the Nixpkgs manual, which happens to use module
# docs infra originally developed for NixOS.
optionsDoc = pkgs.nixosOptionsDoc {
inherit (pkgs.lib.evalModules { modules = [ ../../pkgs/top-level/config.nix ]; }) options;
documentType = "none";
transformOptions = opt:
opt // {
declarations =
map
(decl:
if hasPrefix (toString ../..) (toString decl)
then
let subpath = removePrefix "/" (removePrefix (toString ../..) (toString decl));
in { url = "https://github.com/NixOS/nixpkgs/blob/master/${subpath}"; name = subpath; }
else decl)
opt.declarations;
};
};
in pkgs.runCommand "doc-support" {}
''
mkdir result
(
cd result
ln -s ${locationsXml} ./function-locations.xml
ln -s ${functionDocs} ./function-docs
ln -s ${optionsDoc.optionsDocBook} ./config-options.docbook.xml
ln -s ${pkgs.docbook5}/xml/rng/docbook/docbook.rng ./docbook.rng
ln -s ${pkgs.docbook_xsl_ns}/xml/xsl ./xsl
ln -s ${epub-xsl} ./epub.xsl
ln -s ${xhtml-xsl} ./xhtml.xsl
ln -s ${../../nixos/doc/xmlformat.conf} ./xmlformat.conf
ln -s ${pkgs.documentation-highlighter} ./highlightjs
echo -n "${version}" > ./version
)
mv result $out
''

View File

@@ -1,27 +0,0 @@
# Generates the documentation for library functons via nixdoc. To add
# another library function file to this list, the include list in the
# file `doc/functions/library.xml` must also be updated.
{ pkgs ? import ./.. {}, locationsXml }:
with pkgs; stdenv.mkDerivation {
name = "nixpkgs-lib-docs";
src = ./../../lib;
buildInputs = [ nixdoc ];
installPhase = ''
function docgen {
nixdoc -c "$1" -d "$2" -f "../lib/$1.nix" > "$out/$1.xml"
}
mkdir -p $out
ln -s ${locationsXml} $out/locations.xml
docgen strings 'String manipulation functions'
docgen trivial 'Miscellaneous functions'
docgen lists 'List manipulation functions'
docgen debug 'Debugging functions'
docgen options 'NixOS / nixpkgs option handling'
docgen sources 'Source filtering functions'
'';
}

View File

@@ -1,85 +0,0 @@
{ pkgs ? (import ./.. { }), nixpkgs ? { }}:
let
revision = pkgs.lib.trivial.revisionWithDefault (nixpkgs.revision or "master");
libDefPos = set:
builtins.map
(name: {
name = name;
location = builtins.unsafeGetAttrPos name set;
})
(builtins.attrNames set);
libset = toplib:
builtins.map
(subsetname: {
subsetname = subsetname;
functions = libDefPos toplib.${subsetname};
})
(builtins.filter
(name: builtins.isAttrs toplib.${name})
(builtins.attrNames toplib));
nixpkgsLib = pkgs.lib;
flattenedLibSubset = { subsetname, functions }:
builtins.map
(fn: {
name = "lib.${subsetname}.${fn.name}";
value = fn.location;
})
functions;
locatedlibsets = libs: builtins.map flattenedLibSubset (libset libs);
removeFilenamePrefix = prefix: filename:
let
prefixLen = (builtins.stringLength prefix) + 1; # +1 to remove the leading /
filenameLen = builtins.stringLength filename;
substr = builtins.substring prefixLen filenameLen filename;
in substr;
removeNixpkgs = removeFilenamePrefix (builtins.toString pkgs.path);
liblocations =
builtins.filter
(elem: elem.value != null)
(nixpkgsLib.lists.flatten
(locatedlibsets nixpkgsLib));
fnLocationRelative = { name, value }:
{
inherit name;
value = value // { file = removeNixpkgs value.file; };
};
relativeLocs = (builtins.map fnLocationRelative liblocations);
sanitizeId = builtins.replaceStrings
[ "'" ]
[ "-prime" ];
urlPrefix = "https://github.com/NixOS/nixpkgs/blob/${revision}";
xmlstrings = (nixpkgsLib.strings.concatMapStrings
({ name, value }:
''
<section><title>${name}</title>
<para xml:id="${sanitizeId name}">
Located at
<link
xlink:href="${urlPrefix}/${value.file}#L${builtins.toString value.line}">${value.file}:${builtins.toString value.line}</link>
in <literal>&lt;nixpkgs&gt;</literal>.
</para>
</section>
'')
relativeLocs);
in pkgs.writeText
"locations.xml"
''
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5">
<title>All the locations for every lib function</title>
<para>This file is only for inclusion by other files.</para>
${xmlstrings}
</section>
''

View File

@@ -1,15 +0,0 @@
<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:param name="section.autolabel" select="1" />
<xsl:param name="section.label.includes.component.label" select="1" />
<xsl:param name="html.stylesheet" select="'style.css overrides.css highlightjs/mono-blue.css'" />
<xsl:param name="html.script" select="'./highlightjs/highlight.pack.js ./highlightjs/loader.js'" />
<xsl:param name="xref.with.number.and.title" select="1" />
<xsl:param name="use.id.as.filename" select="1" />
<xsl:param name="toc.section.depth" select="0" />
<xsl:param name="admon.style" select="''" />
<xsl:param name="callout.graphics.extension" select="'.svg'" />
<xsl:param name="generate.consistent.ids" select="1" />
</xsl:stylesheet>

View File

@@ -1,14 +1,706 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="chap-functions">
<title>Functions reference</title>
<para>
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>
<xi:include href="functions/library.xml" />
<xi:include href="functions/generators.section.xml" />
<xi:include href="functions/debug.section.xml" />
<xi:include href="functions/prefer-remote-fetch.section.xml" />
<xi:include href="functions/nix-gitignore.section.xml" />
</para>
<section xml:id="sec-overrides">
<title>Overriding</title>
<para>
Sometimes one wants to override parts of
<literal>nixpkgs</literal>, e.g. derivation attributes, the results of
derivations or even the whole package set.
</para>
<section xml:id="sec-pkg-override">
<title>&lt;pkg&gt;.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>import pkgs.path { overlays = [ (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-pkg-overrideAttrs">
<title>&lt;pkg&gt;.overrideAttrs</title>
<para>
The function <varname>overrideAttrs</varname> allows overriding the
attribute set passed to a <varname>stdenv.mkDerivation</varname> call,
producing a new derivation based on the original one.
This function is available on all derivations produced by the
<varname>stdenv.mkDerivation</varname> function, which is most packages
in the nixpkgs expression <varname>pkgs</varname>.
</para>
<para>
Example usage:
<programlisting>helloWithDebug = pkgs.hello.overrideAttrs (oldAttrs: rec {
separateDebugInfo = true;
});</programlisting>
</para>
<para>
In the above example, the <varname>separateDebugInfo</varname> attribute is
overridden to be true, thus building debug info for
<varname>helloWithDebug</varname>, while all other attributes will be
retained from the original <varname>hello</varname> package.
</para>
<para>
The argument <varname>oldAttrs</varname> is conventionally used to refer to
the attr set originally passed to <varname>stdenv.mkDerivation</varname>.
</para>
<note>
<para>
Note that <varname>separateDebugInfo</varname> is processed only by the
<varname>stdenv.mkDerivation</varname> function, not the generated, raw
Nix derivation. Thus, using <varname>overrideDerivation</varname> will
not work in this case, as it overrides only the attributes of the final
derivation. It is for this reason that <varname>overrideAttrs</varname>
should be preferred in (almost) all cases to
<varname>overrideDerivation</varname>, i.e. to allow using
<varname>sdenv.mkDerivation</varname> to process input arguments, as well
as the fact that it is easier to use (you can use the same attribute
names you see in your Nix code, instead of the ones generated (e.g.
<varname>buildInputs</varname> vs <varname>nativeBuildInputs</varname>,
and involves less typing.
</para>
</note>
</section>
<section xml:id="sec-pkg-overrideDerivation">
<title>&lt;pkg&gt;.overrideDerivation</title>
<warning>
<para>You should prefer <varname>overrideAttrs</varname> in almost all
cases, see its documentation for the reasons why.
<varname>overrideDerivation</varname> is not deprecated and will continue
to work, but is less nice to use and does not have as many abilities as
<varname>overrideAttrs</varname>.
</para>
</warning>
<warning>
<para>Do not use this function in Nixpkgs as it evaluates a Derivation
before modifying it, which breaks package abstraction and removes
error-checking of function arguments. In addition, this
evaluation-per-function application incurs a performance penalty,
which can become a problem if many overrides are used.
It is only intended for ad-hoc customisation, such as in
<filename>~/.config/nixpkgs/config.nix</filename>.
</para>
</warning>
<para>
The function <varname>overrideDerivation</varname> creates a new derivation
based on an existing one by overriding the original's attributes with
the attribute set produced by the specified function.
This function is available on all
derivations defined using the <varname>makeOverridable</varname> function.
Most standard derivation-producing functions, such as
<varname>stdenv.mkDerivation</varname>, are defined using this
function, which means most packages in the nixpkgs expression,
<varname>pkgs</varname>, have this function.
</para>
<para>
Example usage:
<programlisting>mySed = pkgs.gnused.overrideDerivation (oldAttrs: {
name = "sed-4.2.2-pre";
src = fetchurl {
url = ftp://alpha.gnu.org/gnu/sed/sed-4.2.2-pre.tar.bz2;
sha256 = "11nq06d131y4wmf3drm0yk502d2xc6n5qy82cg88rb9nqd2lj41k";
};
patches = [];
});</programlisting>
</para>
<para>
In the above example, the <varname>name</varname>, <varname>src</varname>,
and <varname>patches</varname> of the derivation will be overridden, while
all other attributes will be retained from the original derivation.
</para>
<para>
The argument <varname>oldAttrs</varname> is used to refer to the attribute set of
the original derivation.
</para>
<note>
<para>
A package's attributes are evaluated *before* being modified by
the <varname>overrideDerivation</varname> function.
For example, the <varname>name</varname> attribute reference
in <varname>url = "mirror://gnu/hello/${name}.tar.gz";</varname>
is filled-in *before* the <varname>overrideDerivation</varname> function
modifies the attribute set. This means that overriding the
<varname>name</varname> attribute, in this example, *will not* change the
value of the <varname>url</varname> attribute. Instead, we need to override
both the <varname>name</varname> *and* <varname>url</varname> attributes.
</para>
</note>
</section>
<section xml:id="sec-lib-makeOverridable">
<title>lib.makeOverridable</title>
<para>
The function <varname>lib.makeOverridable</varname> is used to 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>
</section>
<section xml:id="sec-generators">
<title>Generators</title>
<para>
Generators are functions that create file formats from nix
data structures, e.g. for configuration files.
There are generators available for: <literal>INI</literal>,
<literal>JSON</literal> and <literal>YAML</literal>
</para>
<para>
All generators follow a similar call interface: <code>generatorName
configFunctions data</code>, where <literal>configFunctions</literal> is a
set of user-defined functions that format variable parts of the content.
They each have common defaults, so often they do not need to be set
manually. An example is <code>mkSectionName ? (name: libStr.escape [ "[" "]"
] name)</code> from the <literal>INI</literal> generator. It gets the name
of a section and returns a sanitized name. The default
<literal>mkSectionName</literal> escapes <literal>[</literal> and
<literal>]</literal> with a backslash.
</para>
<note><para>Nix store paths can be converted to strings by enclosing a
derivation attribute like so: <code>"${drv}"</code>.</para></note>
<para>
Detailed documentation for each generator can be found in
<literal>lib/generators.nix</literal>.
</para>
</section>
<section xml:id="sec-fhs-environments">
<title>buildFHSUserEnv</title>
<para>
<function>buildFHSUserEnv</function> provides a way to build and run
FHS-compatible lightweight sandboxes. It creates an isolated root with
bound <filename>/nix/store</filename>, so its footprint in terms of disk
space needed is quite small. This allows one to run software which is hard or
unfeasible to patch for NixOS -- 3rd-party source trees with FHS assumptions,
games distributed as tarballs, software with integrity checking and/or external
self-updated binaries. It uses Linux namespaces feature to create
temporary lightweight environments which are destroyed after all child
processes exit, without root user rights requirement. Accepted arguments are:
</para>
<variablelist>
<varlistentry>
<term><literal>name</literal></term>
<listitem><para>Environment name.</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>targetPkgs</literal></term>
<listitem><para>Packages to be installed for the main host's architecture
(i.e. x86_64 on x86_64 installations). Along with libraries binaries are also
installed.</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>multiPkgs</literal></term>
<listitem><para>Packages to be installed for all architectures supported by
a host (i.e. i686 and x86_64 on x86_64 installations). Only libraries are
installed by default.</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>extraBuildCommands</literal></term>
<listitem><para>Additional commands to be executed for finalizing the
directory structure.</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>extraBuildCommandsMulti</literal></term>
<listitem><para>Like <literal>extraBuildCommands</literal>, but
executed only on multilib architectures.</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>extraOutputsToInstall</literal></term>
<listitem><para>Additional derivation outputs to be linked for both
target and multi-architecture packages.</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>extraInstallCommands</literal></term>
<listitem><para>Additional commands to be executed for finalizing the
derivation with runner script.</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>runScript</literal></term>
<listitem><para>A command that would be executed inside the sandbox and
passed all the command line arguments. It defaults to
<literal>bash</literal>.</para></listitem>
</varlistentry>
</variablelist>
<para>
One can create a simple environment using a <literal>shell.nix</literal>
like that:
</para>
<programlisting><![CDATA[
{ pkgs ? import <nixpkgs> {} }:
(pkgs.buildFHSUserEnv {
name = "simple-x11-env";
targetPkgs = pkgs: (with pkgs;
[ udev
alsaLib
]) ++ (with pkgs.xorg;
[ libX11
libXcursor
libXrandr
]);
multiPkgs = pkgs: (with pkgs;
[ udev
alsaLib
]);
runScript = "bash";
}).env
]]></programlisting>
<para>
Running <literal>nix-shell</literal> would then drop you into a shell with
these libraries and binaries available. You can use this to run
closed-source applications which expect FHS structure without hassles:
simply change <literal>runScript</literal> to the application path,
e.g. <filename>./bin/start.sh</filename> -- relative paths are supported.
</para>
</section>
<section xml:id="sec-pkgs-dockerTools">
<title>pkgs.dockerTools</title>
<para>
<varname>pkgs.dockerTools</varname> is a set of functions for creating and
manipulating Docker images according to the
<link xlink:href="https://github.com/moby/moby/blob/master/image/spec/v1.2.md#docker-image-specification-v120">
Docker Image Specification v1.2.0
</link>. Docker itself is not used to perform any of the operations done by these
functions.
</para>
<warning>
<para>
The <varname>dockerTools</varname> API is unstable and may be subject to
backwards-incompatible changes in the future.
</para>
</warning>
<section xml:id="ssec-pkgs-dockerTools-buildImage">
<title>buildImage</title>
<para>
This function is analogous to the <command>docker build</command> command,
in that can used to build a Docker-compatible repository tarball containing
a single image with one or multiple layers. As such, the result
is suitable for being loaded in Docker with <command>docker load</command>.
</para>
<para>
The parameters of <varname>buildImage</varname> with relative example values are
described below:
</para>
<example xml:id='ex-dockerTools-buildImage'><title>Docker build</title>
<programlisting>
buildImage {
name = "redis"; <co xml:id='ex-dockerTools-buildImage-1' />
tag = "latest"; <co xml:id='ex-dockerTools-buildImage-2' />
fromImage = someBaseImage; <co xml:id='ex-dockerTools-buildImage-3' />
fromImageName = null; <co xml:id='ex-dockerTools-buildImage-4' />
fromImageTag = "latest"; <co xml:id='ex-dockerTools-buildImage-5' />
contents = pkgs.redis; <co xml:id='ex-dockerTools-buildImage-6' />
runAsRoot = '' <co xml:id='ex-dockerTools-buildImage-runAsRoot' />
#!${stdenv.shell}
mkdir -p /data
'';
config = { <co xml:id='ex-dockerTools-buildImage-8' />
Cmd = [ "/bin/redis-server" ];
WorkingDir = "/data";
Volumes = {
"/data" = {};
};
};
}
</programlisting>
</example>
<para>The above example will build a Docker image <literal>redis/latest</literal>
from the given base image. Loading and running this image in Docker results in
<literal>redis-server</literal> being started automatically.
</para>
<calloutlist>
<callout arearefs='ex-dockerTools-buildImage-1'>
<para>
<varname>name</varname> specifies the name of the resulting image.
This is the only required argument for <varname>buildImage</varname>.
</para>
</callout>
<callout arearefs='ex-dockerTools-buildImage-2'>
<para>
<varname>tag</varname> specifies the tag of the resulting image.
By default it's <literal>latest</literal>.
</para>
</callout>
<callout arearefs='ex-dockerTools-buildImage-3'>
<para>
<varname>fromImage</varname> is the repository tarball containing the base image.
It must be a valid Docker image, such as exported by <command>docker save</command>.
By default it's <literal>null</literal>, which can be seen as equivalent
to <literal>FROM scratch</literal> of a <filename>Dockerfile</filename>.
</para>
</callout>
<callout arearefs='ex-dockerTools-buildImage-4'>
<para>
<varname>fromImageName</varname> can be used to further specify
the base image within the repository, in case it contains multiple images.
By default it's <literal>null</literal>, in which case
<varname>buildImage</varname> will peek the first image available
in the repository.
</para>
</callout>
<callout arearefs='ex-dockerTools-buildImage-5'>
<para>
<varname>fromImageTag</varname> can be used to further specify the tag
of the base image within the repository, in case an image contains multiple tags.
By default it's <literal>null</literal>, in which case
<varname>buildImage</varname> will peek the first tag available for the base image.
</para>
</callout>
<callout arearefs='ex-dockerTools-buildImage-6'>
<para>
<varname>contents</varname> is a derivation that will be copied in the new
layer of the resulting image. This can be similarly seen as
<command>ADD contents/ /</command> in a <filename>Dockerfile</filename>.
By default it's <literal>null</literal>.
</para>
</callout>
<callout arearefs='ex-dockerTools-buildImage-runAsRoot'>
<para>
<varname>runAsRoot</varname> is a bash script that will run as root
in an environment that overlays the existing layers of the base image with
the new resulting layer, including the previously copied
<varname>contents</varname> derivation.
This can be similarly seen as
<command>RUN ...</command> in a <filename>Dockerfile</filename>.
<note>
<para>
Using this parameter requires the <literal>kvm</literal>
device to be available.
</para>
</note>
</para>
</callout>
<callout arearefs='ex-dockerTools-buildImage-8'>
<para>
<varname>config</varname> is used to specify the configuration of the
containers that will be started off the built image in Docker.
The available options are listed in the
<link xlink:href="https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions">
Docker Image Specification v1.2.0
</link>.
</para>
</callout>
</calloutlist>
<para>
After the new layer has been created, its closure
(to which <varname>contents</varname>, <varname>config</varname> and
<varname>runAsRoot</varname> contribute) will be copied in the layer itself.
Only new dependencies that are not already in the existing layers will be copied.
</para>
<para>
At the end of the process, only one new single layer will be produced and
added to the resulting image.
</para>
<para>
The resulting repository will only list the single image
<varname>image/tag</varname>. In the case of <xref linkend='ex-dockerTools-buildImage'/>
it would be <varname>redis/latest</varname>.
</para>
<para>
It is possible to inspect the arguments with which an image was built
using its <varname>buildArgs</varname> attribute.
</para>
<note>
<para>
If you see errors similar to <literal>getProtocolByName: does not exist (no such protocol name: tcp)</literal>
you may need to add <literal>pkgs.iana-etc</literal> to <varname>contents</varname>.
</para>
</note>
<note>
<para>
If you see errors similar to <literal>Error_Protocol ("certificate has unknown CA",True,UnknownCa)</literal>
you may need to add <literal>pkgs.cacert</literal> to <varname>contents</varname>.
</para>
</note>
</section>
<section xml:id="ssec-pkgs-dockerTools-fetchFromRegistry">
<title>pullImage</title>
<para>
This function is analogous to the <command>docker pull</command> command,
in that can be used to fetch a Docker image from a Docker registry.
Currently only registry <literal>v1</literal> is supported.
By default <link xlink:href="https://hub.docker.com/">Docker Hub</link>
is used to pull images.
</para>
<para>
Its parameters are described in the example below:
</para>
<example xml:id='ex-dockerTools-pullImage'><title>Docker pull</title>
<programlisting>
pullImage {
imageName = "debian"; <co xml:id='ex-dockerTools-pullImage-1' />
imageTag = "jessie"; <co xml:id='ex-dockerTools-pullImage-2' />
imageId = null; <co xml:id='ex-dockerTools-pullImage-3' />
sha256 = "1bhw5hkz6chrnrih0ymjbmn69hyfriza2lr550xyvpdrnbzr4gk2"; <co xml:id='ex-dockerTools-pullImage-4' />
indexUrl = "https://index.docker.io"; <co xml:id='ex-dockerTools-pullImage-5' />
registryVersion = "v1";
}
</programlisting>
</example>
<calloutlist>
<callout arearefs='ex-dockerTools-pullImage-1'>
<para>
<varname>imageName</varname> specifies the name of the image to be downloaded,
which can also include the registry namespace (e.g. <literal>library/debian</literal>).
This argument is required.
</para>
</callout>
<callout arearefs='ex-dockerTools-pullImage-2'>
<para>
<varname>imageTag</varname> specifies the tag of the image to be downloaded.
By default it's <literal>latest</literal>.
</para>
</callout>
<callout arearefs='ex-dockerTools-pullImage-3'>
<para>
<varname>imageId</varname>, if specified this exact image will be fetched, instead
of <varname>imageName/imageTag</varname>. However, the resulting repository
will still be named <varname>imageName/imageTag</varname>.
By default it's <literal>null</literal>.
</para>
</callout>
<callout arearefs='ex-dockerTools-pullImage-4'>
<para>
<varname>sha256</varname> is the checksum of the whole fetched image.
This argument is required.
</para>
<note>
<para>The checksum is computed on the unpacked directory, not on the final tarball.</para>
</note>
</callout>
<callout arearefs='ex-dockerTools-pullImage-5'>
<para>
In the above example the default values are shown for the variables
<varname>indexUrl</varname> and <varname>registryVersion</varname>.
Hence by default the Docker.io registry is used to pull the images.
</para>
</callout>
</calloutlist>
</section>
<section xml:id="ssec-pkgs-dockerTools-exportImage">
<title>exportImage</title>
<para>
This function is analogous to the <command>docker export</command> command,
in that can used to flatten a Docker image that contains multiple layers.
It is in fact the result of the merge of all the layers of the image.
As such, the result is suitable for being imported in Docker
with <command>docker import</command>.
</para>
<note>
<para>
Using this function requires the <literal>kvm</literal>
device to be available.
</para>
</note>
<para>
The parameters of <varname>exportImage</varname> are the following:
</para>
<example xml:id='ex-dockerTools-exportImage'><title>Docker export</title>
<programlisting>
exportImage {
fromImage = someLayeredImage;
fromImageName = null;
fromImageTag = null;
name = someLayeredImage.name;
}
</programlisting>
</example>
<para>
The parameters relative to the base image have the same synopsis as
described in <xref linkend='ssec-pkgs-dockerTools-buildImage'/>, except that
<varname>fromImage</varname> is the only required argument in this case.
</para>
<para>
The <varname>name</varname> argument is the name of the derivation output,
which defaults to <varname>fromImage.name</varname>.
</para>
</section>
<section xml:id="ssec-pkgs-dockerTools-shadowSetup">
<title>shadowSetup</title>
<para>
This constant string is a helper for setting up the base files for managing
users and groups, only if such files don't exist already.
It is suitable for being used in a
<varname>runAsRoot</varname> <xref linkend='ex-dockerTools-buildImage-runAsRoot'/> script for cases like
in the example below:
</para>
<example xml:id='ex-dockerTools-shadowSetup'><title>Shadow base files</title>
<programlisting>
buildImage {
name = "shadow-basic";
runAsRoot = ''
#!${stdenv.shell}
${shadowSetup}
groupadd -r redis
useradd -r -g redis redis
mkdir /data
chown redis:redis /data
'';
}
</programlisting>
</example>
<para>
Creating base files like <literal>/etc/passwd</literal> or
<literal>/etc/login.defs</literal> are necessary for shadow-utils to
manipulate users and groups.
</para>
</section>
</section>
</chapter>

View File

@@ -1,5 +0,0 @@
# Debugging Nix Expressions {#sec-debug}
Nix is a unityped, dynamic language, this means every value can potentially appear anywhere. Since it is also non-strict, evaluation order and what ultimately is evaluated might surprise you. Therefore it is important to be able to debug nix expressions.
In the `lib/debug.nix` file you will find a number of functions that help (pretty-)printing values while evaluation is running. You can even specify how deep these values should be printed recursively, and transform them on the fly. Please consult the docstrings in `lib/debug.nix` for usage information.

View File

@@ -1,56 +0,0 @@
# Generators {#sec-generators}
Generators are functions that create file formats from nix data structures, e.g. for configuration files. There are generators available for: `INI`, `JSON` and `YAML`
All generators follow a similar call interface: `generatorName configFunctions data`, where `configFunctions` is an attrset of user-defined functions that format nested parts of the content. They each have common defaults, so often they do not need to be set manually. An example is `mkSectionName ? (name: libStr.escape [ "[" "]" ] name)` from the `INI` generator. It receives the name of a section and sanitizes it. The default `mkSectionName` escapes `[` and `]` with a backslash.
Generators can be fine-tuned to produce exactly the file format required by your application/service. One example is an INI-file format which uses `: ` as separator, the strings `"yes"`/`"no"` as boolean values and requires all string values to be quoted:
```nix
with lib;
let
customToINI = generators.toINI {
# specifies how to format a key/value pair
mkKeyValue = generators.mkKeyValueDefault {
# specifies the generated string for a subset of nix values
mkValueString = v:
if v == true then ''"yes"''
else if v == false then ''"no"''
else if isString v then ''"${v}"''
# and delegats all other values to the default generator
else generators.mkValueStringDefault {} v;
} ":";
};
# the INI file can now be given as plain old nix values
in customToINI {
main = {
pushinfo = true;
autopush = false;
host = "localhost";
port = 42;
};
mergetool = {
merge = "diff3";
};
}
```
This will produce the following INI file as nix string:
```INI
[main]
autopush:"no"
host:"localhost"
port:42
pushinfo:"yes"
str\:ange:"very::strange"
[mergetool]
merge:"diff3"
```
::: {.note}
Nix store paths can be converted to strings by enclosing a derivation attribute like so: `"${drv}"`.
:::
Detailed documentation for each generator can be found in `lib/generators.nix`.

View File

@@ -1,30 +0,0 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="sec-functions-library">
<title>Nixpkgs Library Functions</title>
<para>
Nixpkgs provides a standard library at <varname>pkgs.lib</varname>, or through <code>import &lt;nixpkgs/lib&gt;</code>.
</para>
<xi:include href="./library/asserts.xml" />
<xi:include href="./library/attrsets.xml" />
<!-- These docs are generated via nixdoc. To add another generated
library function file to this list, the file
`lib-function-docs.nix` must also be updated. -->
<xi:include href="./library/generated/strings.xml" />
<xi:include href="./library/generated/trivial.xml" />
<xi:include href="./library/generated/lists.xml" />
<xi:include href="./library/generated/debug.xml" />
<xi:include href="./library/generated/options.xml" />
<xi:include href="./library/generated/sources.xml" />
</section>

View File

@@ -1,112 +0,0 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="sec-functions-library-asserts">
<title>Assert functions</title>
<section xml:id="function-library-lib.asserts.assertMsg">
<title><function>lib.asserts.assertMsg</function></title>
<subtitle><literal>assertMsg :: Bool -> String -> Bool</literal>
</subtitle>
<xi:include href="./locations.xml" xpointer="lib.asserts.assertMsg" />
<para>
Print a trace message if <literal>pred</literal> is false.
</para>
<para>
Intended to be used to augment asserts with helpful error messages.
</para>
<variablelist>
<varlistentry>
<term>
<varname>pred</varname>
</term>
<listitem>
<para>
Condition under which the <varname>msg</varname> should <emphasis>not</emphasis> be printed.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<varname>msg</varname>
</term>
<listitem>
<para>
Message to print.
</para>
</listitem>
</varlistentry>
</variablelist>
<example xml:id="function-library-lib.asserts.assertMsg-example-false">
<title>Printing when the predicate is false</title>
<programlisting><![CDATA[
assert lib.asserts.assertMsg ("foo" == "bar") "foo is not bar, silly"
stderr> trace: foo is not bar, silly
stderr> assert failed
]]></programlisting>
</example>
</section>
<section xml:id="function-library-lib.asserts.assertOneOf">
<title><function>lib.asserts.assertOneOf</function></title>
<subtitle><literal>assertOneOf :: String -> String ->
StringList -> Bool</literal>
</subtitle>
<xi:include href="./locations.xml" xpointer="lib.asserts.assertOneOf" />
<para>
Specialized <function>asserts.assertMsg</function> for checking if <varname>val</varname> is one of the elements of <varname>xs</varname>. Useful for checking enums.
</para>
<variablelist>
<varlistentry>
<term>
<varname>name</varname>
</term>
<listitem>
<para>
The name of the variable the user entered <varname>val</varname> into, for inclusion in the error message.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<varname>val</varname>
</term>
<listitem>
<para>
The value of what the user provided, to be compared against the values in <varname>xs</varname>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<varname>xs</varname>
</term>
<listitem>
<para>
The list of valid values.
</para>
</listitem>
</varlistentry>
</variablelist>
<example xml:id="function-library-lib.asserts.assertOneOf-example">
<title>Ensuring a user provided a possible value</title>
<programlisting><![CDATA[
let sslLibrary = "bearssl";
in lib.asserts.assertOneOf "sslLibrary" sslLibrary [ "openssl" "libressl" ];
=> false
stderr> trace: sslLibrary must be one of "openssl", "libressl", but is: "bearssl"
]]></programlisting>
</example>
</section>
</section>

File diff suppressed because it is too large Load Diff

View File

@@ -1,49 +0,0 @@
# pkgs.nix-gitignore {#sec-pkgs-nix-gitignore}
`pkgs.nix-gitignore` is a function that acts similarly to `builtins.filterSource` but also allows filtering with the help of the gitignore format.
## Usage {#sec-pkgs-nix-gitignore-usage}
`pkgs.nix-gitignore` exports a number of functions, but you\'ll most likely need either `gitignoreSource` or `gitignoreSourcePure`. As their first argument, they both accept either 1. a file with gitignore lines or 2. a string with gitignore lines, or 3. a list of either of the two. They will be concatenated into a single big string.
```nix
{ pkgs ? import <nixpkgs> {} }:
nix-gitignore.gitignoreSource [] ./source
# Simplest version
nix-gitignore.gitignoreSource "supplemental-ignores\n" ./source
# This one reads the ./source/.gitignore and concats the auxiliary ignores
nix-gitignore.gitignoreSourcePure "ignore-this\nignore-that\n" ./source
# Use this string as gitignore, don't read ./source/.gitignore.
nix-gitignore.gitignoreSourcePure ["ignore-this\nignore-that\n", ~/.gitignore] ./source
# It also accepts a list (of strings and paths) that will be concatenated
# once the paths are turned to strings via readFile.
```
These functions are derived from the `Filter` functions by setting the first filter argument to `(_: _: true)`:
```nix
gitignoreSourcePure = gitignoreFilterSourcePure (_: _: true);
gitignoreSource = gitignoreFilterSource (_: _: true);
```
Those filter functions accept the same arguments the `builtins.filterSource` function would pass to its filters, thus `fn: gitignoreFilterSourcePure fn ""` should be extensionally equivalent to `filterSource`. The file is blacklisted if it\'s blacklisted by either your filter or the gitignoreFilter.
If you want to make your own filter from scratch, you may use
```nix
gitignoreFilter = ign: root: filterPattern (gitignoreToPatterns ign) root;
```
## gitignore files in subdirectories {#sec-pkgs-nix-gitignore-usage-recursive}
If you wish to use a filter that would search for .gitignore files in subdirectories, just like git does by default, use this function:
```nix
gitignoreFilterRecursiveSource = filter: patterns: root:
# OR
gitignoreRecursiveSource = gitignoreFilterSourcePure (_: _: true);
```

View File

@@ -1,17 +0,0 @@
# prefer-remote-fetch overlay {#sec-prefer-remote-fetch}
`prefer-remote-fetch` is an overlay that download sources on remote builder. This is useful when the evaluating machine has a slow upload while the builder can fetch faster directly from the source. To use it, put the following snippet as a new overlay:
```nix
self: super:
(super.prefer-remote-fetch self super)
```
A full configuration example for that sets the overlay up for your own account, could look like this
```ShellSession
$ mkdir ~/.config/nixpkgs/overlays/
$ cat > ~/.config/nixpkgs/overlays/prefer-remote-fetch.nix <<EOF
self: super: super.prefer-remote-fetch self super
EOF
```

View File

@@ -1,10 +0,0 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="chap-hooks">
<title>Hooks reference</title>
<para>
Nixpkgs has several hook packages that augment the stdenv phases.
</para>
<xi:include href="./postgresql-test-hook.section.xml" />
</chapter>

Some files were not shown because too many files have changed in this diff Show More