Compare commits

..

1263 Commits

Author SHA1 Message Date
Tomas Hlavaty
cc7c261731 unittest-cpp: init at 1.6.1
(cherry picked from commit 800a379cb3)
2017-03-22 14:45:15 +00:00
Eelco Dolstra
3727911b46 minisat: Fix build on Darwin
(cherry picked from commit c5b96ca801)
2016-12-09 19:58:56 +01:00
Gabriel Ebner
bdbe6803a8 minisat: support clang
(cherry picked from commit cc0b3bbcc2)
2016-12-09 16:09:59 +01:00
Gabriel Ebner
5e9cb9dfb8 minisat: migrate from builderDefsPackage to mkDerivation
(cherry picked from commit 516f331227)
2016-12-09 16:09:53 +01:00
Scott R. Parish
a888bbacb1 chromium: Update to latest stable, beta, and dev channels
stable 51.0.2704.63 => 51.0.2704.103
beta   51.0.2704.63 => 52.0.2743.41
dev    52.0.2743.10 => 53.0.2767.4

This addresses 15 security fixes, including:

 * High   CVE-2015-1696: Cross-origin bypass in Extension bindings. Credit to
                         anonymous.
 * High   CVE-2015-1697: Cross-origin bypass in Blink. Credit to Mariusz
                         Mlynski.
 * Medium CVE-2016-1698: Information leak in Extension bindings. Credit to
                         Rob Wu.
 * Medium CVE-2016-1699: Parameter sanitization failure in DevTools. Credit
                         to Gregory Panakkal.
 * Medium CVE-2016-1700: Use-after-free in Extensions. Credit to Rob Wu.
 * Medium CVE-2016-1701: Use-after-free in Autofill. Credit to Rob Wu.
 * Medium CVE-2016-1702: Out-of-bounds read in Skia. Credit to cloudfuzzer.

See: http://googlechromereleases.blogspot.com/2016/06/stable-channel-update.html
(cherry picked from commit 1f1f0f049b)
Reason: 18 Security fixes for the stable channel.
2016-06-20 18:50:34 +02:00
aszlig
a3521b60e6 Merge pull request #15762 (Chromium update)
This is the original pull request plus some commits from me to bring all
channels to the latest versions, because the fixed security
vulnerabilites might not be fixed in the dev version we had before.

I've tested the whole changeset on my Hydra at:

https://headcounter.org/hydra/eval/322006

Thanks to @srp for the initial commit and thus implicitly also for the
security notice.

Cc: @abbradar
(backported from commit b5f95a5303)
Reason: Lots of security fixes (see e2d067d)
2016-05-28 21:30:36 +02:00
aszlig
4f32d2c565 chromium: Update to latest beta and dev channels
Overview of the updated versions:

beta: 50.0.2661.49 -> 51.0.2704.47
dev:  51.0.2693.2  -> 52.0.2729.3

It has been a while since we had a major Chromium update that compiled
and worked without troubles, but version 52 builds and the VM tests are
successful as well:

https://headcounter.org/hydra/eval/320335

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit ad2c8d3510)
Reason: 50.0.2661.102 fixes a bunch of security vulnerabilities and
        we want to have them fixed in beta/dev as well.
2016-05-15 05:27:16 +02:00
Scott R. Parish
0b0591810e chromium: Update stable to 50.0.2661.102 for multiple security fixes
This addresses the following security fixes:

 * High   CVE-2016-1667: Same origin bypass in DOM. Credit to
                         Mariusz Mlynski.
 * High   CVE-2016-1668: Same origin bypass in Blink V8 bindings. Credit
                         to Mariusz Mlynski.
 * High   CVE-2016-1669: Buffer overflow in V8. Credit to Choongwoo Han.
 * Medium CVE-2016-1670: Race condition in loader. Credit to anonymous.
 * Medium CVE-2016-1671: Directory traversal using the file scheme on
                         Android. Credit to Jann Horn.

See: http://googlechromereleases.blogspot.com/2016/05/stable-channel-update.html

Signed-off-by: Scott R. Parish <srparish@gmail.com>
Tested-by: aszlig <aszlig@redmoonstudios.org>
Closes: #15446
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 5ebf20db0f)
2016-05-15 05:27:05 +02:00
Vladimír Čunát
e263fdae1d Merge #15447: glibc security updates
(cherry picked from commit 45a14c873b)
I just tested it builds on x86_64-linux.
2016-05-14 22:22:37 +02:00
taku0
4245d58fc4 flashplayer: 11.2.202.616 -> 11.2.202.621
(cherry picked from commit cade2f36e5)
2016-05-12 20:21:36 +02:00
Bjørn Forsman
91371c2bb6 sigrok: update whole suite to latest (2016-01)
Release announcement, 2016-01-30:
https://www.sigrok.org/blog/major-sigrok-releases-libsigrok-libsigrokdecode-sigrok-cli-pulseview

I first tried updating the projects in separate commits. But later I
found cyclic dependencies, that would break git bisect, so I ended up
squashing the commits:

* libsigrok: 0.3.0 -> 0.4.0
  Enable building libsigrokcxx.so, the C++ bindings for libsigrok, by
  adding doxygen, glibmm and python as build deps. This is needed for
  Pulseview >= 0.3.0. Also update the firmware (sigrok-firmware-fx2lafw)
  while at it.

* libsigrokdecode: 0.3.0 -> 0.4.0

* sigrok-cli: 0.5.0 -> 0.6.0

* pulseview: 0.2.0 -> 0.3.0
  New dependency: glibmm (due to libsigrokcxx.pc from libsigrok).

Note that collectd is incompatible with the new libsigrok release, so
I let it use the old one (0.3.0).

(cherry picked from commit 300e495101)
2016-05-11 22:30:58 +02:00
Bjørn Forsman
1d1eefead8 libserialport: 0.1.0 -> 0.1.1
(cherry picked from commit f768098e3e)
2016-05-11 22:30:27 +02:00
Bjørn Forsman
2a12fb370b hashcat: 0.49 -> 2.00
The current URL is broken, upstream has moved the download from .../files/ to
.../files_legacy/. But after fixing that, starting hashcat results in:

  $ ./result/bin/hashcat
  ERROR: this copy of hashcat is outdated. Get a more recent version.

So just update to latest.

New releases are on github, the license is now MIT and there are build
system changes.

(cherry picked from commit 800042b310)
2016-05-11 19:29:16 +02:00
Bjørn Forsman
1066ba6f2a moreutils: add meta.platforms (= all)
(cherry picked from commit 977cd5de36)
2016-05-09 20:37:17 +02:00
aszlig
1983ddf2f1 john: Enable parallel building by default.
I've built this a lot of times on different machines without getting
compile errors, so I'd assume this to be safe. Of course, the compile
time is very small in comparison to bigger packages but it's still an
annoyance to wait for up to a few minutes, especially during
development.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 37429a2c74)
2016-05-09 15:10:34 +02:00
aszlig
c111cc896e john: Make package work out of the box.
So far it was only possible to run john if you've either copied over the
default configuration over to ~/.john and substitute $JOHN with the
right path or set $JOHN to the store path directly.

Both methods are not really a very good user experience, so we're now
patching in the resulting paths into the default rules/configurations.

This also splits off configuration files into $out/etc/john instead of
putting everything into $out/share/john and now also properly installs
the auxiliary programs into $out/bin.

Closes #8792.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Reported-by: devhell <"^"@regexmail.net>
Cc: @offlinehacker
(cherry picked from commit 902bcf1422)
2016-05-09 15:10:27 +02:00
aszlig
fd471f2bb9 john: Disable building with -march=native.
It prevents john from running with older CPUs such as Core2Duo and gives
an illegal hardware instruction error on these CPUs.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit cf4e2c426e)
2016-05-09 15:10:21 +02:00
aszlig
e8d96539d8 john: Clean up and Update to v1.8.0-jumbo-1.
Cleanups are mostly stylistic, like putting src more to the top (to make
sure it won't be missed on updates of the version attribute) or using
mkdir -p instead of ensureDir.

The most significant change here is that we update the package to
1.8.0-jumbo-1, which is the latest tag available and contains community
updates which were already in magnumripper/JohnTheRipper@93f061bc41.

We're now also using fetchurl to ensure that we don't need to clone the
whole repository and keep download times low.

And the derivation name is now "john" instead of "JohnTheRipper",
because most users would expect "nix-env -i john" to work.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 2a1bf2a776)
2016-05-09 15:10:14 +02:00
aszlig
6edbeb8b47 Merge branch 'stage1-dont-kill-kthreads'
Merges pull request #15275:

    This addresses #15226 and fixes killing of processes before
    switching from the initrd to the real root.

    Right now, the pkill that is issued not only kills user space
    processes but also sends a SIGKILL to kernel threads as well.
    Usually these threads ignore signals, but some of these processes do
    handle signals, like for example the md module, which happened in
    #15226.

    It also adds a small check for the swraid installer test and a
    standalone test which checks on just that problem, so in the future
    this shouldn't happen again.

This has been acked by @edolstra on IRC.

The reason I'm merging this to 15.09 is that this branch fixes #15226
and thus also fixes mdraid setups out there.

Tested using the boot-stage1.nix NixOS test against release-15.09.
2016-05-06 22:19:47 +02:00
aszlig
fc88ff2a90 nixos/tests/boot-stage1: Add myself to maintainers
As @edolstra pointed out that the kernel module might be painful to
maintain. I strongly disagree because it's only a small module and it's
good to have such a canary in the tests no matter how the bootup process
looks like, so I'm going the masochistic route and try to maintain it.

If it *really* becomes too much maintenance burden, we can still drop or
disable kcanary.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2016-05-06 22:16:41 +02:00
aszlig
10a671af45 nixos/release-combined: Add boot-stage1 test
We don't want to push out a channel update whenever this test fails,
because that might have unexpected and confused side effects and it
*really* means that stage 1 of our boot up is broken.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2016-05-06 22:16:41 +02:00
aszlig
a5b7e1c1b1 nixos/tests: Add a test for boot stage 1
We already have a small regression test for #15226 within the swraid
installer test. Unfortunately, we only check there whether the md
kthread got signalled but not whether other rampaging processes are
still alive that *should* have been killed.

So in order to do this we provide multiple canary processes which are
checked after the system has booted up:

 * canary1: It's a simple forking daemon which just sleeps until it's
            going to be killed. Of course we expect this process to not
            be alive anymore after boot up.
 * canary2: Similar to canary1, but tries to mimick a kthread to make
            sure that it's going to be properly killed at the end of
            stage 1.
 * canary3: Like canary2, but this time using a @ in front of its
            command name to actually prevent it from being killed.
 * kcanary: This one is a real kthread and it runs until killed, which
            shouldn't be the case.

Tested with and without 67223ee and everything works as expected, at
least on my machine.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2016-05-06 22:15:19 +02:00
aszlig
263efd476e nixos/tests/installer/swraid: Check for safemode
This is a regression test for #15226, so that the test will fail once we
accidentally kill one or more of the md kthreads (aka: if safe mode is
enabled).

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2016-05-06 22:14:35 +02:00
aszlig
c5691ed424 nixos/stage-1: Don't kill kernel threads
Unfortunately, pkill doesn't distinguish between kernel and user space
processes, so we need to make sure we don't accidentally kill kernel
threads.

Normally, a kernel thread ignores all signals, but there are a few that
do. A quick grep on the kernel source tree (as of kernel 4.6.0) shows
the following source files which use allow_signal():

  drivers/isdn/mISDN/l1oip_core.c
  drivers/md/md.c
  drivers/misc/mic/cosm/cosm_scif_server.c
  drivers/misc/mic/cosm_client/cosm_scif_client.c
  drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
  drivers/staging/rtl8188eu/core/rtw_cmd.c
  drivers/staging/rtl8712/rtl8712_cmd.c
  drivers/target/iscsi/iscsi_target.c
  drivers/target/iscsi/iscsi_target_login.c
  drivers/target/iscsi/iscsi_target_nego.c
  drivers/usb/atm/usbatm.c
  drivers/usb/gadget/function/f_mass_storage.c
  fs/jffs2/background.c
  fs/lockd/clntlock.c
  fs/lockd/svc.c
  fs/nfs/nfs4state.c
  fs/nfsd/nfssvc.c

While not all of these are necessarily kthreads and some functionality
may still be unimpeded, it's still quite harmful and can cause
unexpected side-effects, especially because some of these kthreads are
storage-related (which we obviously don't want to kill during bootup).

During discussion at #15226, @dezgeg suggested the following
implementation:

for pid in $(pgrep -v -f '@'); do
    if [ "$(cat /proc/$pid/cmdline)" != "" ]; then
        kill -9 "$pid"
    fi
done

This has a few downsides:

 * User space processes which use an empty string in their command line
   won't be killed.
 * It results in errors during bootup because some shell-related
   processes are already terminated (maybe it's pgrep itself, haven't
   checked).
 * The @ is searched within the full command line, not just at the
   beginning of the string. Of course, we already had this until now, so
   it's not a problem of his implementation.

I posted an alternative implementation which doesn't suffer from the
first point, but even that one wasn't sufficient:

for pid in $(pgrep -v -f '^@'); do
    readlink "/proc/$pid/exe" &> /dev/null || continue
    echo "$pid"
done | xargs kill -9

This one spawns a subshell, which would be included in the processes to
kill and actually kills itself during the process.

So what we have now is even checking whether the shell process itself is
in the list to kill and avoids killing it just to be sure.

Also, we don't spawn a subshell anymore and use /proc/$pid/exe to
distinguish between user space and kernel processes like in the comments
of the following StackOverflow answer:

http://stackoverflow.com/a/12231039

We don't need to take care of terminating processes, because what we
actually want IS to terminate the processes.

The only point where this (and any previous) approach falls short if we
have processes that act like fork bombs, because they might spawn
additional processes between the pgrep and the killing. We can only
address this with process/control groups and this still won't save us
because the root user can escape from that as well.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Fixes: #15226
2016-05-06 22:14:35 +02:00
Domen Kožar
8a6b697af6 pythonPackages.cryptography: 1.1.1 -> 1.2.3 (fix openssl build)
(cherry picked from commit baf7f98b45)

[Bjørn: some tweaks needed to apply to release-15.09]
2016-05-05 13:52:46 +02:00
Bjørn Forsman
1649c9d4cc pythonPackages.hypothesis: 0.7.0 -> 1.14.0
Needed for newer 'cryptography', which is needed to fix build against
latest openssl.

Based on 4b23328e39 ("buildPythonPackage: fix more wheels failures").
2016-05-05 13:51:25 +02:00
Eelco Dolstra
e389e194ef Add a regression test for #14623
(cherry picked from commit a42698d2a4)
2016-05-04 11:14:27 +02:00
Eelco Dolstra
c0e03b6a9a Fix X11 tests broken by the removal of -ac
Probably missed a few. Also adding xauth to the system path (it was
already in the closure).

(cherry picked from commit 9153d8ed64)
2016-05-04 11:14:18 +02:00
Eelco Dolstra
297fa6ae85 openssl: 1.0.2g -> 1.0.2h, 1.0.1s -> 1.0.1t 2016-05-04 11:10:02 +02:00
Théophane Hufschmitt
89649f3e44 moreutils : 0.57 -> 0.58
(cherry picked from commit 93856f36a2)
2016-05-04 11:01:24 +02:00
Bjørn Forsman
556b76b1be nixos/jenkins: fix typo in docstring (s/adress/address/)
(cherry picked from commit b2d0886b37)
2016-05-04 10:38:16 +02:00
Bjørn Forsman
9a5eb3b5f3 nixos/jenkins: rename option 'host' to 'listenAddress'
I think the name 'listenAddress' is more descriptive. Other NixOS
modules that define 'host' either use it as listen address or as address
a client connects to. listenAddress is unambiguous.

The addition of 'host' was added earlier today[1], so not bothering with
./nixos/modules/rename.nix.

[1]: 44ea184997 ("jenkins ci enhancement: add port and prefix option")

(cherry picked from commit c6b251f5d5)
2016-05-04 09:48:55 +02:00
Augustin Borsu
6c50a0ff98 jenkins ci enhancement: add port and prefix option
As named these options enable to specify a bind host and url prefix
to be used by jenkins. Adding these options in the config rather than
using extra arguments allows us to re-use those information in other
services using jenkins such as jenkins-job-builder or a reverse proxy.

(cherry picked from commit 44ea184997)
2016-05-04 09:39:59 +02:00
Bjørn Forsman
30d582384b jenkins service: improve curl call in postStart
* Perform HTTP HEAD request instead of full GET (lighter weight)
* Don't log output of curl to the journal (it's noise/debug)
* Use explicit http:// URL scheme
* Reduce poll interval from 10s to 2s (respond to state changes
  quicker). Probably not relevant on boot (lots of services compete for
  the CPU), but online service restarts/reloads should be quicker.
* Pass --fail to curl (should be more robust against false positives)
* Use 4 space indent for shell code.

(cherry picked from commit 78b6e8c319)
2016-05-03 23:17:55 +02:00
Bjørn Forsman
c87078d694 jenkins service: remove unneeded (and brittle) part of postStart
The current postStart code holds Jenkins off the "started" state until
Jenkins becomes idle. But it should be enough to wait until Jenkins
start handling HTTP requests to consider it "started".

More reasons why the current approach is bad and we should remove it,
from @coreyoconnor in
https://github.com/NixOS/nixpkgs/issues/14991#issuecomment-216572571:

  1. Repeatedly curling for a specific human-readable string to
  determine "Active" is fragile. For instance, what happens when jenkins
  is localized?

  2. The time jenkins takes to initializes is variable. This (at least
  used to) depend on the number of jobs and any plugin upgrades requested.

  3. Jenkins can be requested to restart from the UI. Which will not
  affect the status of the service. This means that the service being
  "active" does not imply jenkins is initialized. Downstream services
  cannot assume jenkins is initialized if the service is active. Might
  as well accept that and remove the initialized test from service
  startup.

Fixes #14991.

(cherry picked from commit 51e5beca42)
2016-05-03 23:17:29 +02:00
Nikolay Amiantov
2a72b02b5b flashplayer: cleanup, add comment to maintainers
(cherry picked from commit d45ac41e87)
2016-05-02 16:45:55 +02:00
taku0
b2c26fd513 flashplayer: fix build on 32-bit platform
(cherry picked from commit 28232c3746)
2016-05-02 16:45:43 +02:00
taku0
e1499bb3f2 flashplayer: 11.2.202.577 -> 11.2.202.616
(cherry picked from commit 03e74fb117)
2016-05-02 16:45:32 +02:00
taku0
6ca38564a8 flashplayer: 11.2.202.559 -> 11.2.202.577
(cherry picked from commit 218901bdb6)
2016-05-02 16:45:02 +02:00
Al Zohali
75c83e8372 flashplayer-standalone: init at 11.2.202.559
(cherry picked from commit d9066cd36f)
2016-05-02 16:43:31 +02:00
Bjørn Forsman
3b6be3dfd0 eagle: 6.6.0 -> 7.5.0
* It grew a couple of extra (hard) dependencies:
  libxcb, cups, xkeyboardconfig
* It is also available in native 64-bit version (yay!)

(cherry picked from commit c27de52d39)
2016-05-02 16:36:28 +02:00
Tobias Geerinckx-Rice
ac7f84881a stress-ng: 0.05.00 -> 0.05.25
(cherry picked from commit d51a55366e)
2016-05-02 16:24:11 +02:00
Tobias Geerinckx-Rice
0b404abd89 stress-ng 0.04.21 -> 0.05.00
(cherry picked from commit 0efb1f7963)
2016-05-02 16:21:23 +02:00
Tobias Geerinckx-Rice
de7c14bdfc stress-ng 0.04.20 -> 0.04.21
(cherry picked from commit 6d7273571c)
2016-05-02 16:21:17 +02:00
Tobias Geerinckx-Rice
5678ac1e5b stress-ng: 0.04.19 -> 0.04.20
(cherry picked from commit 0e1a15f2da)
2016-05-02 16:21:12 +02:00
Tobias Geerinckx-Rice
296e914389 stress-ng: 0.04.18 -> 0.04.19
(cherry picked from commit 33d2f27d95)
2016-05-02 16:21:06 +02:00
Tobias Geerinckx-Rice
e93d050a96 stress-ng: 0.04.17 -> 0.04.18
(cherry picked from commit 2ea03ece86)
2016-05-02 16:20:33 +02:00
Tobias Geerinckx-Rice
13d6ae580c stress-ng: 0.04.16 -> 0.04.17
(cherry picked from commit 69e828b5a1)
2016-05-02 16:20:24 +02:00
Tobias Geerinckx-Rice
83260d1b6d stress-ng: 0.04.15 -> 0.04.16
(cherry picked from commit 9aa595ef50)
2016-05-02 16:20:06 +02:00
Svein Ove Aas
4d0e8a1ef2 mprime: Init at 28.7
(cherry picked from commit 6efcbd8950)
2016-05-02 16:08:57 +02:00
Joachim Fasting
c289b20031 Merge pull request #15144 from Beauhurst/php_updates_r15.09
PHP security updates (r15.09 backport)
2016-05-02 01:55:16 +02:00
Robert Scott
717e6c02ae php: 5.5.34 -> 5.4.35 2016-05-01 11:49:31 +00:00
Robert Scott
4bf320c116 php: 5.6.20 -> 5.6.21 2016-05-01 11:49:31 +00:00
Joachim Fasting
56b4040409 Merge pull request #15116 from Beauhurst/squid_r15.09
Squid security fixes (15.09 backport)
2016-04-30 19:19:24 +02:00
Robert Scott
844f4e31e1 squid: 3.2.13 -> 3.2.14 (though many CVEs still have no fix on this branch!) 2016-04-30 16:57:11 +00:00
Robert Scott
453dcfdb24 squid: 3.4.11 -> 3.4.14 (though many CVEs still have no fix on this branch!) 2016-04-30 16:57:10 +00:00
Robert Scott
be91f50ca9 squid: 3.5.15 -> 3.5.17 (resolving CVE-2016-3947, CVE-2016-3948, CVE-2016-4051, CVE-2016-4052, CVE-2016-4053, CVE-2016-4054)
squid supplies patches for advisories, but patches for the above advisories applied together don't compile, hence the version bump for stable
2016-04-30 16:57:10 +00:00
Rob Vermaas
240ebc730d nlopt: Remove broken flag from meta. 2016-04-27 13:31:36 +00:00
Rob Vermaas
6c8fbed541 Fix nlopt build. 2016-04-27 09:22:45 +00:00
Bjørn Forsman
6372599c4e xulrunner: use bundled sqlite (unbreak build)
sqlite on release-15.09 is too old, use bundled sqlite instead to fix this
build issue:

  configure:24978: checking for sqlite3 >= 3.9.1
  configure: error: Library requirements (sqlite3 >= 3.9.1) not met; [...]

This is the same fix as in commit 969c67f48c
("firefox: Fix build").
2016-04-26 22:01:45 +02:00
Eelco Dolstra
d7c7c0e357 X server: Enable local access control
For the last ten years we have been passing -ac to the X server, which
is very bad idea.

Fixes #14623.

(cherry picked from commit 1541fa351b)
2016-04-23 16:11:20 +02:00
Robin Gloster
2d32ae48b0 Merge pull request #14599 from Beauhurst/php_updates_r15.09
PHP security updates (r15.09 backport)
2016-04-11 15:55:45 +02:00
Robert Scott
9784118793 php: 5.6.19 -> 5.6.20 2016-04-11 11:01:38 +00:00
Robert Scott
5ca0898228 php55: 5.5.33 -> 5.5.34 2016-04-11 11:01:38 +00:00
joachifm
ee55f5b7ce Merge pull request #14553 from sheenobu/bugfix/spotify/2016-04-09-15.09
spotify: 1.0.26.125.g64dc8bc6-14 -> 1.0.27.71.g0a26e3b2-9, release-15.09
2016-04-09 18:02:42 +02:00
Sheena Artrip
27063d4078 spotify: 1.0.26.125.g64dc8bc6-14 -> 1.0.27.71.g0a26e3b2-9 2016-04-09 06:46:45 -04:00
Domen Kožar
e28f821f6a pythonPackages.{boto,httpretty}: use requests2 2016-04-07 20:45:08 +03:00
Igor Pashev
6a8c17edf5 Allow enum of integers (and any other type)
Closes #9826.
2016-04-07 20:45:08 +03:00
Cole Mickens
2f25157a5c azure-cli 0.9.13 -> 0.9.15 2016-04-07 20:45:07 +03:00
Evgeny Egorochkin
b11c9f255b azure-cli: fix dependencies 2016-04-07 20:45:07 +03:00
Evgeny Egorochkin
7c8624d2f0 azure-cli: init at 0.9.13 2016-04-07 20:45:07 +03:00
Evgeny Egorochkin
2ac482441a pythonPackages.azure-*: package the 1.* branch 2016-04-07 20:45:06 +03:00
Evgeny Egorochkin
ea665e20ba python.adal: init at 0.1.0 2016-04-07 20:45:06 +03:00
Evgeny Egorochkin
037f300184 pythonPackages.azure-*: package some of the 1.* branch modules 2016-04-07 20:45:05 +03:00
Rob Vermaas
c0a4a01fa1 Remove another maintainer (cherrypick gone wrong). 2016-04-07 11:19:03 +00:00
Rob Vermaas
ad9641744d Fix eval 2016-04-07 11:14:43 +00:00
Frederik Rietdijk
a849372f70 python-packages statsmodels: init at 0.6.1
(cherry picked from commit ce41204fa0)
2016-04-07 11:00:49 +00:00
Lluís Batlle i Rossell
0cee564b46 Making trac/ldap handle httpd 2.4.
The option authzldapauthoritative had been removed in 2.4

I pushed this into 16.03 instead of master first. My fault.
(cherry picked from commit 516f47efef)

(cherry picked from commit e1bcc27f1a)
2016-04-07 11:56:58 +02:00
aszlig
8156d2c2f1 chromium: Update all channels to latest versions
Overview of the updated versions:

stable: 49.0.2623.87 -> 49.0.2623.110
beta:   50.0.2661.26 -> 50.0.2661.49
dev:    50.0.2661.18 -> 51.0.2693.2

Most notably, this includes a series of urgent security fixes:

 * CVE-2016-1646: Out-of-bounds read in V8. Credit to Wen Xu from
                  Tencent KeenLab.
 * CVE-2016-1647: Use-after-free in Navigation. Credit to anonymous.
 * CVE-2016-1648: Use-after-free in Extensions. Credit to anonymous.
 * CVE-2016-1649: Buffer overflow in libANGLE. Credit to lokihardt
                  working with HP's Zero Day Initiative / Pwn2Own.
 * CVE-2016-1650: Denial of service in PageCaptureSaveAsMHTMLFunction

The official release announcement with details about these fixes can be
found here:

http://googlechromereleases.blogspot.de/2016/03/stable-channel-update_24.html

Beta and stable could be also affected, although I didn't do a detailed
check whether that's the case.

As this introduces Chromium 51 as the dev version, I had to make the
following changes to make it build:

 * libexif got removed, so let's do that on our end as well.
   See https://codereview.chromium.org/1803883002 for details.
 * Chromium doesn't seem to compile with our version of libpng, so let's
   resort to the bundled libpng for now.
 * site_engagement_ui.cc uses isnan outside of std namespace, so
   we're fixing that in postPatch using sed.

I have successfully built all versions on i686-linux and x86_64-linux
and tested it using the VM tests.

Test reports can be found at the following evaluation of my Hydra:

https://headcounter.org/hydra/eval/314584

Thanks to @grahamc for reporting this.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Reported-by: Graham Christensen <graham@grahamc.com>
Fixes: #14299
(cherry picked from commit ef753d210e)
2016-03-30 15:28:42 +02:00
Leroy Hopson
83ed8f6bf6 fail2ban service: fix formatting of example
(cherry picked from commit eb90705d45)
2016-03-30 13:43:13 +02:00
Svein Ove Aas
e0da216fbd nixos/fail2ban: Enable jails by default
With jails defaulting to 'enabled = true', the sshd jail that NixOS
defines will now be enabled.

[Bjørn: tweak commit message]

(cherry picked from commit f16594e18b)
2016-03-30 13:43:01 +02:00
Franz Pletz
3614f64d58 dhcpcd: 6.9.4 -> 6.10.1 (security)
Fixes CVE-2016-1503 & CVE-2016-1504.

Changelog:
  - http://roy.marples.name/archives/dhcpcd-discuss/2016/1143.html
  - http://roy.marples.name/archives/dhcpcd-discuss/2016/1146.html

(cherry picked from commit 5aa986fba2)

See #14313.
2016-03-30 13:11:00 +02:00
Brad Ediger
68fc694eb6 spotify: 1.0.25.127 -> 1.0.26.125
(cherry picked from commit 066042e3fa)
(cherry picked from commit 3a13d4707b)
Signed-off-by: Domen Kožar <domen@dev.si>
2016-03-30 10:07:22 +01:00
Franz Pletz
e8e1cb8ddb Merge pull request #14254 from risicle/osrm_fixes_r15.09
Osrm build fixes (r15.09 backport)
2016-03-30 08:15:38 +02:00
Robert Scott
65df18a7d8 osrm-backend: switch src to use fetchFromGitHub 2016-03-27 20:47:55 +00:00
Robert Scott
0679444696 osrm-backend: add patch fixing build by un-hard-coding gcc-ar and gcc-ranlib paths 2016-03-27 20:47:55 +00:00
Eelco Dolstra
f8a795e882 nixpkgs-metrics: Suppress build products
(cherry picked from commit 03df731fb5)
2016-03-25 16:39:57 +01:00
Eelco Dolstra
1bf1d3b46e Add metrics job to unstable aggregate
(cherry picked from commit c23e9e12f8)
2016-03-25 16:39:57 +01:00
Eelco Dolstra
fbc034cc55 Keep track of Nixpkgs/NixOS evaluation statistics
(cherry picked from commit fab439201e)
2016-03-25 16:39:57 +01:00
Eelco Dolstra
58e44b4a7f Catalyst::Action::Rest: 1.19 -> 1.20
(cherry picked from commit 6e08bd27fc)
2016-03-25 14:51:52 +01:00
Pascal Wittmann
38ccd010aa perl-Catalyst-Action-REST: 1.17 -> 1.19
(cherry picked from commit 635ac2e589)
2016-03-25 14:51:45 +01:00
Eelco Dolstra
8f56c381f3 Revert "kernel: 3.18.26 -> 3.18.29 (close #14057)"
This reverts commit e63847f672. See
d8a1eaa142.
2016-03-22 14:05:10 +01:00
Franz Pletz
2fc790cc63 nss: 3.22.2 -> 3.23 (security)
Fixes CVE-2016-1950.

See: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_3.23_release_notes

(cherry picked from commit 1a9b272c09)
2016-03-21 21:30:04 +01:00
Graham Christensen
3044d74b1f squid: 3.5.1 -> 3.5.15 for CVE-2016-2571
(cherry picked from commit 75c90fff39)
2016-03-21 18:49:44 +01:00
Tim Steinbach
e63847f672 kernel: 3.18.26 -> 3.18.29 (close #14057)
(cherry picked from commit 6476075ccf)
2016-03-21 12:42:11 +01:00
Tim Steinbach
86bff842d0 kernel: 4.1.17 -> 4.1.20 (close #14058)
(cherry picked from commit 379709b404)
2016-03-21 12:40:16 +01:00
Vladimír Čunát
8799016391 Merge #14073: backport php security updates 2016-03-21 11:58:52 +01:00
aszlig
da4a26dbce chromium: Fix comment of upstream-info.nix
As of 6041cfe, the upstream-info.nix (back then it was called
sources.nix) is no longer in the source/ subdirectory, so we need to fix
that comment to say that the file is autogenerated from update.sh in the
*same* directory.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 5ebd629c6f)
2016-03-21 04:41:59 +01:00
aszlig
5266e62064 chromium: Move source/default.nix into common.nix
This addresses #12794 so that we now have only a single tarball where we
base our build on instead of splitting the source into different outputs
first and then reference the outputs.

The reason I did this in the first place is that we previously built the
sandbox as a different derivation and unpacking the whole source tree
just for building the sandbox was a bit too much.

As we now have namespaces sandbox built in by default we no longer have
that derivation anymore. It still might come up however if we want to
build NaCl as a separate derivation (see #8560), but splitting the
source code into things only NaCl might require is already too much work
and doesn't weight out the benefits.

Another issue with the source splitup is that Hydra now has an output
limit for non-fixed-output derivations which we're already hitting.

Tested the build against the stable channel and it went well, but I
haven't tested running the browser.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 4f981b4f84)
2016-03-21 04:39:04 +01:00
aszlig
d2713b9356 chromium: Move fetchurl calls to getChannel
We always do something like "fetchurl channelProduct", so let's move it
to getChannel directly so we can avoid those fetchurl calls all over the
place.

Also, we can still access subattributes from the fetchurl call if we
need to, so there really is no need to expose the product's attributes
directly.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(backported from commit 37dbd62a83)
2016-03-21 04:38:42 +01:00
aszlig
b013878d27 chromium/common.nix: Remove unreferenced attrs
We're going to refactor things anyway, so let's first get rid of
everything that's not used anymore.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 985df3900d)
2016-03-21 04:33:54 +01:00
aszlig
533d5424f3 chromium/source: Move update.nix to parent dir
We now should have only the default.nix left in the source directory and
we can start to factor out the pieces into the Chromium main derivation
attributes.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(backported from commit 6041cfe2af)
2016-03-21 04:33:42 +01:00
aszlig
026531a04a chromium: Rename sources.nix to upstream-info.nix
The "sources.nix" also contains information about where to get binary
packages, so calling it "upstream-info.nix" fits better in terms of
naming.

Also, we're moving it away from the sources dir, because the latter will
soon vanish.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(backported from commit 2d9a604907)
2016-03-21 04:30:26 +01:00
aszlig
603297b3e8 chromium/source: Move patches into its own subdir
We're going to reference the patches in the Chromium main build rather
than applying it to the sources. So as a first step, this should keep
the patches away from the "source" subdirectory so we can make it flat.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit d6b11ed722)
2016-03-21 04:25:21 +01:00
Franz Pletz
d10be236f1 bind: 9.10.3 -> 9.10.3-P4 (security)
Fixes:

  * CVE-2016-1285: https://kb.isc.org/article/AA-01352/
  * CVE-2016-1286: https://kb.isc.org/article/AA-01353/

(cherry picked from commit 404a699a20)
2016-03-21 04:06:32 +01:00
Sander van der Burg
437c60242c dysnomia: bump to version 0.5.1
(cherry picked from commit 7ed3dc6cfc)
2016-03-20 15:22:35 +00:00
Yann Hodique
7664d23f45 git: 2.7.3 -> 2.7.4
(cherry picked from commit 31c317e09e)
2016-03-19 15:56:12 +01:00
Robert Scott
fc56fd8722 php: 5.6.18 -> 5.6.19 (security update) 2016-03-19 13:58:39 +00:00
Robert Scott
9b1c377621 php: 5.5.32 -> 5.5.33 (security update) 2016-03-19 13:58:38 +00:00
Joachim Fasting
5ab13933e3 Revert "Merge pull request #13998 from namore/add-rake-pkg"
I didn't notice that this was opened against the 15.09 branch, so
merging this was a mistake on my part, sorry.

This reverts commit b997ce6237, reversing
changes made to d8a1eaa142.
2016-03-18 23:19:47 +01:00
joachifm
b997ce6237 Merge pull request #13998 from namore/add-rake-pkg
rake: init at 11.1.1
2016-03-18 22:13:02 +00:00
Roman Naumann
1766e8d866 rake: init at 11.1.1 2016-03-18 11:37:46 +01:00
Eelco Dolstra
d8a1eaa142 Revert "linux: 3.18.26 -> 3.18.27"
This reverts commit e5a4d10559. Linux
3.18.27 breaks LUKS:

https://bugzilla.redhat.com/show_bug.cgi?id=1311286
https://bugzilla.kernel.org/show_bug.cgi?id=112631

http://hydra.nixos.org/build/33388465

machine# Failed to setup dm-crypt key mapping for device /dev/vda3.
machine# Check that kernel supports aes-xts-plain64 cipher (check syslog for more info).
2016-03-17 17:57:17 +01:00
Eelco Dolstra
350c8f2aca Revert "linux: 3.18.27 -> 3.18.28"
This reverts commit 114118624c.
2016-03-17 17:57:07 +01:00
Eelco Dolstra
9f3ca76cc2 linux: Pass through configuration file
This enables "nix-build -A linux.configfile" to get the generated
kernel config.

(cherry picked from commit 50ab972b5a)
2016-03-17 17:23:37 +01:00
Eelco Dolstra
114118624c linux: 3.18.27 -> 3.18.28
CVE-2016-2085

(cherry picked from commit 6faa0aea88)
2016-03-17 13:36:11 +01:00
Eelco Dolstra
6035d1104e thunderbird: 38.3.0 -> 38.7.0
Lots of security fixes: https://www.mozilla.org/en-US/security/known-vulnerabilities/thunderbird/#thunderbird38.7

(cherry picked from commit aa6ab92d93)
2016-03-17 13:35:06 +01:00
Vladimír Čunát
2baa76eebd firefox: disable optimization hack (i686-linux)
It seems to build fine even without it, so the original reason doesn't
hold anymore:
https://github.com/NixOS/nixpkgs/commit/f4b5671b0d9e8904a4ad6b3fd85268

(cherry picked from commit 9be0c7d463)
2016-03-17 13:25:27 +01:00
Franz Pletz
9612ed4a09 firefox-esr: 38.5.2esr -> 38.6.1esr
(cherry picked from commit 657c56678c)
2016-03-17 13:25:27 +01:00
Eelco Dolstra
f9a5a48ec2 firefox: 44.0.2 -> 45.0
(cherry picked from commit 0d6d91739f)
2016-03-17 13:25:26 +01:00
Franz Pletz
e5a4d10559 linux: 3.18.26 -> 3.18.27
(cherry picked from commit d756ff9354)
2016-03-17 13:25:26 +01:00
Peter Simons
b30419acfc git: update from version 2.5.4 to 2.7.3 2016-03-16 21:38:42 +01:00
Eelco Dolstra
4c26a7a8e6 Combine ISO generation steps
This folds adding hydra-build-products into the actual ISO generation,
preventing an unnecessary download of the ISO.

(cherry picked from commit 10293b87a9)
2016-03-16 17:18:51 +01:00
Eelco Dolstra
84e7f6a29b Combine OVA generation steps
Previously this was done in three derivations (one to build the raw
disk image, one to convert to OVA, one to add a hydra-build-products
file). Now it's done in one step to reduce the amount of copying
to/from S3. In particular, not uploading the raw disk image prevents
us from hitting hydra-queue-runner's size limit of 2 GiB.

(cherry picked from commit 5cc7bcda30)
2016-03-16 17:18:20 +01:00
Sander van der Burg
0862be0ac4 disnixos: bump to version 0.4.1
(cherry picked from commit 0f46200f26)
2016-03-16 13:28:41 +00:00
Graham Christensen
f83947135c ilbc: extract-cfile.awk has fallen off the internet
Close #13923.

(cherry picked from commit 2aae2af845)
2016-03-14 21:42:39 +01:00
Graham Christensen
71ba0c8d2c graphite2: security update 1.2.4 -> 1.3.6 (close #13918)
CVE-2016-1977 CVE-2016-2790 CVE-2016-2791 CVE-2016-2792
CVE-2016-2793 CVE-2016-2794 CVE-2016-2795 CVE-2016-2796
CVE-2016-2797 CVE-2016-2798 CVE-2016-2799 CVE-2016-2800
CVE-2016-2801 CVE-2016-2802

vcunat fixed the tarball name and redirected to github.

(cherry picked from commit c310cb9e46)
2016-03-14 21:32:14 +01:00
Graham Christensen
fd725a9999 eduke32: 20150420-5160 moved to the old releases directory
Close #13922.

(cherry picked from commit f165334492)
2016-03-14 20:49:31 +01:00
Graham Christensen
3b51bc36f9 d4x: Update download URL to fedora, d4k.krasu.ru no longer exists
(cherry picked from commit 2c8cb42c71)
2016-03-14 20:49:31 +01:00
Rob Vermaas
19a3dd8243 Remove kill -9 -1 from initrd of amazon-image.nix. This causes a kernel panic.
(cherry picked from commit ed5920ec65)
2016-03-14 19:26:28 +01:00
Vladimír Čunát
fcb92c445a samba: security update 4.2.3 -> 4.2.9
/cc #13919.
2016-03-14 18:19:02 +01:00
Frederik Rietdijk
6cc1ba2051 Merge pull request #13887 from Beauhurst/r15.09_django_updates
django security updates (backport to release-15.09)
2016-03-13 10:56:08 -04:00
Robert Scott
9512e2a963 django: 1.9 -> 1.9.4, 1.8.4 -> 1.8.11, 1.7.10 -> 1.7.11 2016-03-13 14:42:29 +00:00
Graham Christensen
89c580b07b chromium: 49.0.2626.75 -> 50.0.2661.26 for CVE-2016-1643 CVE-2016-1644 CVE-2016-1645
(cherry picked from commit e54434751a)
2016-03-13 12:39:26 +01:00
aszlig
8b913e96e5 chromium: Update all channels to latest versions
Overview of the updated versions:

stable: 48.0.2564.116 -> 49.0.2623.75
beta:   49.0.2623.63  -> 49.0.2623.75
dev:    50.0.2657.0   -> 50.0.2661.11

Stable and beta are now in par because of the release of a major stable
update.

The release addresses 26 security vulnerabilities, the following with an
assigned CVE:

 * CVE-2016-1630: Same-origin bypass in Blink. Credit to Mariusz
                  Mlynski.
 * CVE-2016-1631: Same-origin bypass in Pepper Plugin. Credit to Mariusz
                  Mlynski.
 * CVE-2016-1632: Bad cast in Extensions. Credit to anonymous.
 * CVE-2016-1633: Use-after-free in Blink. Credit to cloudfuzzer.
 * CVE-2016-1634: Use-after-free in Blink. Credit to cloudfuzzer.
 * CVE-2016-1635: Use-after-free in Blink. Credit to Rob Wu.
 * CVE-2016-1636: SRI Validation Bypass. Credit to Ryan Lester and
                  Bryant Zadegan.
 * CVE-2015-8126: Out-of-bounds access in libpng. Credit to
                  joerg.bornemann.
 * CVE-2016-1637: Information Leak in Skia. Credit to Keve Nagy.
 * CVE-2016-1638: WebAPI Bypass. Credit to Rob Wu.
 * CVE-2016-1639: Use-after-free in WebRTC. Credit to Khalil Zhani.
 * CVE-2016-1640: Origin confusion in Extensions UI. Credit to Luan
                  Herrera.
 * CVE-2016-1641: Use-after-free in Favicon. Credit to Atte Kettunen of
                  OUSPG.

The full announcement which also includes the link to the bug tracker
can be found here:

http://googlechromereleases.blogspot.de/2016/03/stable-channel-update.html

Also, the 32bit Chrome package needed for the Flash and Widevine plugins
doesn't exist anymore, because Google has dropped support for 32bit
distros, see here for the announcement:

https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/FoE6sL-p6oU

On our end, we need to fix the patch for the plugin paths to work for
the latest dev channel. The change is very minor, because the
nix_plugin_paths_46.patch only doesn't apply because of an iOS-related
ifdef.

Built and tested on my Hydra at:

https://headcounter.org/hydra/eval/311511

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Fixes: #13665
(cherry picked from commit 8b97ca270e)
2016-03-13 12:39:20 +01:00
Domen Kožar
6c6f901fb3 Merge pull request #13872 from sheenobu/backport-spotify
spotify: 0.9.17.1 -> 1.0.25.127 , 15.09 backport
2016-03-13 10:24:54 +00:00
Sheena Artrip
26fb999448 spotify: backport of 1.0.25.127 to 15.09
spotify: fix repo format

spotify: fix missing ffmpeg_0_10 dependency, fixes #11877

This makes local playback work.

spotify: 0.9.17.1 -> 1.0.19.106

changes by @globin:
used wrapper instead of propagatedUserEnvPkgs for zenity

closes #12191

Signed-off-by: Robin Gloster <mail@glob.in>

spotify: fix icons

spotify: 1.0.19.106 -> 1.0.23.93

spotify: 1.0.23.93 -> 1.0.25.127
2016-03-12 19:52:26 -05:00
Lluís Batlle i Rossell
26f2d567a8 Adding rowhammer test.
(cherry picked from commit e026b5c243)
2016-03-11 14:33:22 +01:00
Domen Kožar
3076830900 nss: 3.21 -> 3.22.2 (CVE-2016-1950)
(cherry picked from commit 603ea2652f)
Signed-off-by: Domen Kožar <domen@dev.si>
2016-03-11 12:22:12 +00:00
Franz Pletz
b16a7b7071 Merge pull request #13797 from grahamc/libotr-15.09
libotr: upgrade v4, remove v3, and pidgin-otr for CVE-2016-2851 (15.09)
2016-03-10 00:24:46 +01:00
Graham Christensen
353fe784b9 pidgin-otr: 4.0.1 -> 4.0.2 for CVE-2016-2851
(cherry picked from commit 6f8a914d57b5696e20c961659649aee286c4c7e6)
2016-03-09 17:21:31 -06:00
Graham Christensen
0d0aab8625 libotr_3_2: remove, not updated since 2012, and unused.
(cherry picked from commit 6f574732a43ac24832ac92df99e8c826b301a4eb)
2016-03-09 17:21:30 -06:00
Franz Pletz
b1180bf903 libotr: 4.1.0 -> 4.1.1 (CVE-2016-2851)
https://www.x41-dsec.de/lab/advisories/x41-2016-001-libotr/
(cherry picked from commit 728cf25e16)
2016-03-10 00:14:18 +01:00
Jaka Hudoklin
06e44b867f dd-agent: add docker support
(cherry picked from commit 4acbfe7d9a)
2016-03-09 15:33:55 +00:00
Franz Pletz
f6d1666b4c linux_3_14: 3.14.61 -> 3.14.63
(cherry picked from commit af40e356fe)
2016-03-07 23:36:38 +01:00
Franz Pletz
8510cfd521 linux_3_12: 3.12.54 -> 3.12.55
(cherry picked from commit 354a1935d3)
2016-03-07 23:36:36 +01:00
Franz Pletz
77d4b5d2fa linux_3_10: 3.10.97 -> 3.10.99
(cherry picked from commit 5b8361c118)
2016-03-07 23:36:33 +01:00
Jaka Hudoklin
1c4c474504 dd-agent: 5.4.3 -> 5.5.2
(cherry picked from commit b4ece28aac)
2016-03-07 16:31:10 +00:00
Luca Bruno
a33dbb3248 chromium: add StartupWMClass to desktop file. Fixes #12433
(cherry picked from commit 5f8311775c)
2016-03-06 23:38:21 +01:00
Lluís Batlle i Rossell
e603afd3db Update ghdl mcode to 0.33.
(cherry picked from commit e9d6aadc51ecdd274cd383a99ea840a94b58d954)
(cherry picked from commit 7f7c2171c0)
2016-03-03 16:06:14 +01:00
Eelco Dolstra
23395c4ed6 m2crypto: 0.21.1 -> 0.23.0
The previous version broke because it required SSLv2 support in OpenSSL:

ImportError: /nix/store/c0z7qlycaa2jhqjq0v9vy3j4nw4layw2-python2.7-m2crypto-0.21.1/lib/python2.7/site-packages/M2Crypto/__m2crypto.so: undefined symbol: SSLv2_method
(cherry picked from commit 49f23a6028)
2016-03-02 19:59:07 +01:00
Lluís Batlle i Rossell
cfadda9450 gtkwave: update to 3.3.70
(cherry picked from commit a95e65b1eb)
2016-03-02 12:42:52 +01:00
Matthias Beyer
4b9048133f neon: Put version into own variable
(cherry picked from commit f92d27d214)
2016-03-02 11:36:44 +01:00
Matthias Beyer
b265128683 neon: 0.29.6 -> 0.30.1
(cherry picked from commit d2c32179fe)

Necessary because the old version was calling SSLv2_server_method,
which OpenSSL no longer provides by default. Fixes #13605.
2016-03-02 11:35:55 +01:00
Eelco Dolstra
19de56397e openssl: 1.0.1r -> 1.0.1s, 1.0.2f -> 1.0.2g
CVE-2016-0800

Xref cdbd14a1a8.
2016-03-01 15:24:59 +01:00
Eelco Dolstra
ff444d6278 Drop chromium as a release blocker
The build timed out after 10 hours: http://hydra.nixos.org/build/32505548.
2016-03-01 14:14:25 +01:00
Thomas Tuegel
e692e1b15a Merge pull request #13054 from bendlas/update-dropbox-stable
dropbox: 3.12.6 -> 3.14.7 (release 15.09)
2016-02-29 11:16:08 -06:00
Franz Pletz
941a900a24 Merge pull request #13457 from grahamc/chromium-15.09
chromium{,Beta,Dev}: 48.0.2564.97 -> 48.0.2564.116 (release-15.09)
2016-02-28 20:08:21 +01:00
aszlig
225fe0adcf chromium: Provide SHA256s for beta/dev plugins
As stated in the parent commit, the 32bit Chrome package is not
available upstream, so let's at least provide the SHA256 hash for the
64bit package.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 716b79d3a5)
2016-02-28 12:49:07 -06:00
Bjørn Forsman
40b212ec4c gitstats: init at 2016-01-08
Upstream does not make releases, using latest commit from master branch.

(cherry picked from commit 070dccae7b)
2016-02-28 15:04:20 +01:00
Bjørn Forsman
f864b73e55 gitinspector: 0.4.1 -> 0.4.4
(cherry picked from commit d589391202)
2016-02-28 11:33:55 +01:00
Vladimír Čunát
f8d08ad08c nixos copySystemConfiguration: fix when chrooted
Fixes #7974. Also makes the description more informative.

(cherry picked from commit f8516a0717)
2016-02-28 10:09:25 +01:00
Franz Pletz
6c9421370a Merge pull request #12787 from phunehehe/bundler-head-1.8.9
bump bundler-head to 1.8.9
2016-02-28 04:54:30 +01:00
Graham Christensen
aad885192d cpio: patch CVE-2016-2037, out of bounds write (close #13489)
(cherry picked from commit 483a130f89)
2016-02-26 22:56:34 +01:00
Graham Christensen
e49d3ba6d7 libssh2: 1.6.0 -> 1.7.0
This release includes the following changes:
      o libssh2_session_set_last_error: Add function
      o mac: Add support for HMAC-SHA-256 and HMAC-SHA-512
      o WinCNG: support for SHA256/512 HMAC
      o kex: Added diffie-hellman-group-exchange-sha256 support
      o OS/400 crypto library QC3 support
    This release includes the following security advisory:
      o diffie_hellman_sha256: convert bytes to bits
        CVE-2016-0787: http://www.libssh2.org/adv_20160223.html
    This release includes the following bugfixes:
      o SFTP: Increase speed and datasize in SFTP read
      o openssl: make libssh2_sha1 return error code
      o openssl: fix memleak in _libssh2_dsa_sha1_verify()
      o cmake: include CMake files in the release tarballs
      o Fix builds with Visual Studio 2015
      o hostkey.c: Fix compiling error when OPENSSL_NO_MD5 is defined
      o GNUmakefile: add support for LIBSSH2_LDFLAG_EXTRAS
      o GNUmakefile: add -m64 CFLAGS when targeting mingw64
      o kex: free server host key before allocating it (again)
      o SCP: add libssh2_scp_recv2 to support large (> 2GB) files on windows
      o channel: Detect bad usage of libssh2_channel_process_startup
      o userauth: Fix off by one error when reading public key file
      o kex: removed dupe entry from libssh2_kex_methods
      o _libssh2_error: Support allocating the error message
      o hostkey: fix invalid memory access if libssh2_dsa_new fails
      o hostkey: align code path of ssh_rsa_init to ssh_dss_init
      o libssh2.pc.in: fix the output of pkg-config --libs
      o wincng: fixed possible memory leak in _libssh2_wincng_hash
      o wincng: fixed _libssh2_wincng_hash_final return value
      o add OpenSSL 1.1.0-pre2 compatibility
      o agent_disconnect_unix: unset the agent fd after closing it
      o sftp: stop reading when buffer is full
      o sftp: Send at least one read request before reading
      o sftp: Don't return EAGAIN if data was written to buffer
      o sftp: Check read packet file offset
      o configure: build "silent" if possible
      o openssl: add OpenSSL 1.1.0-pre3-dev compatibility
      o GNUmakefile: list system libs after user libs

(cherry picked from commit 737e808913)

Security fix. See #13473.
2016-02-26 19:35:30 +01:00
Graham Christensen
c7834513bd xerces-c: 3.1.1 -> 3.1.3
Security & bugfix release. See #13454.

(cherry picked from commit f91c979f8a)
2016-02-26 11:26:04 +01:00
Tim Steinbach
ba559fcbfc linux_3_10: 3.10.96 -> 3.10.97 (close #13405)
(cherry picked from commit 7506c58d74)
2016-02-25 23:21:36 +01:00
Tuomas Tynkkynen
27a86495a3 linux-3.10: fixup config by a slightly hacky way
For explanation see:
https://github.com/NixOS/nixpkgs/pull/13405#issuecomment-188357637

(cherry picked from commit 0e1319f03f)
2016-02-25 23:21:28 +01:00
Graham Christensen
9b9a9ee7ca chromium{,Beta,Dev}: 48.0.2564.97 -> 48.0.2564.116
From the debian security mailing list:

Several vulnerabilities have been discovered in the chromium web browser.

CVE-2016-1622

    It was discovered that a maliciously crafted extension could bypass
    the Same Origin Policy.

CVE-2016-1623

    Mariusz Mlynski discovered a way to bypass the Same Origin Policy.

CVE-2016-1624

    lukezli discovered a buffer overflow issue in the Brotli library.

CVE-2016-1625

    Jann Horn discovered a way to cause the Chrome Instant feature to
    navigate to unintended destinations.

CVE-2016-1626

    An out-of-bounds read issue was discovered in the openjpeg library.

CVE-2016-1627

    It was discovered that the Developer Tools did not validate URLs.

CVE-2016-1628

    An out-of-bounds read issue was discovered in the pdfium library.

CVE-2016-1629

    A way to bypass the Same Origin Policy was discovered in Blink/WebKit,
    along with a way to escape the chromium sandbox.

(cherry picked from commit 712d59225e)
2016-02-25 12:50:22 -06:00
taku0
d8aae2964d thunderbird-bin: 38.5.1 -> 38.6.0 (close #13437)
(cherry picked from commit ce763e2d66)
2016-02-25 08:19:36 +01:00
Vladimír Čunát
a376adce73 libssh: security update 0.7.1 -> 0.7.3
It's supposed to fix CVE-2016-0739: weak secret with diffie-hellman.

(cherry picked from commit 0ee46ddffb)
I'm lazy to isolate a patch for CVE itself, so we're getting the usual
bugfixes as well.
2016-02-24 15:05:08 +01:00
Tim Steinbach
8bdb164a1c linux_3_12: 3.12.53 -> 3.12.54 (close #13406)
(cherry picked from commit 642517fbda)
2016-02-24 08:30:25 +01:00
Tim Steinbach
b28ed38457 linux_3_14: 3.14.60 -> 3.14.61 (close #13407)
(cherry picked from commit 08cf57204f)
2016-02-24 08:30:18 +01:00
Tim Steinbach
208b620bf0 linux_4_3: 4.3.4 -> 4.3.6 (close #13408)
(cherry picked from commit a2bd90650d)
2016-02-24 08:30:00 +01:00
Charles Strahan
6dc374c91f ghcjs-shims: 2016/01/07 -> 2016/02/10
Bump revisions: 45f44f5f027 -> 4df1808d031

(cherry picked from commit c374ce26b0)
2016-02-23 21:03:23 -05:00
Charles Strahan
ffe80607f7 ghcjs: replace integer-simple with integer-gmp
GHCJS uses integer-gmp, but cabal2nix generates a dependency list that
includes integer-simple instead. This tweaks the stage2 generator to
replace any instance of integer-simple with integer-gmp.

Things currently still work without this change (assuming
integer-simple is defined as null), as ghcjs includes integer-gmp in
its stage1 packages - so it's always available.

However, this change makes things a bit more explicit, rather than
leaving things to chance. If at any point the stage1 packages are also
split up into separate derivations, the integer-gmp package will need to
be passed along to the packages that depend on it. This change should
prevent some confusion going forward.

(cherry picked from commit 516057ffa9)
2016-02-23 21:03:23 -05:00
Charles Strahan
1504cc7b04 ghcjs: don't propagate Cabal to all packages
Previously, we were compiling Setup.hs with ghcjs (instead of  ghc),
and that required that Cabal be available, otherwise the Setup.hs would
fail to compile.

Now that we are compiling Setup.hs with ghc, it's no longer necessary
to add Cabal as a dependency to all ghcjs packages.

(cherry picked from commit e6e9970891)
2016-02-23 21:03:22 -05:00
Charles Strahan
8ea0c7cf6e ghcjs: use native ghc to build Setup.hs
(cherry picked from commit 97d9071b95)
2016-02-23 21:03:22 -05:00
Charles Strahan
6647ce67fa ghcjs: fix building with cabal-install-1.22.8.0
(cherry picked from commit bbce88302a)
2016-02-23 21:03:22 -05:00
Vladimír Čunát
478d32d64a kde5: fix #13359: download URLs no longer valid
15.04.3 got moved on the mirrors.
2016-02-22 09:48:02 +01:00
Eelco Dolstra
c18fd96a8c aws-sdk-cpp: Allow building some APIS and disabling custom memory management
(cherry picked from commit 7b2ac69ada)
2016-02-19 18:10:29 +01:00
Eelco Dolstra
f4f9dc5b62 aws-sdk-cpp: Init at 0.9.6
(cherry picked from commit 108a0ae881)
2016-02-19 18:10:20 +01:00
Herwig Hochleitner
fe32d292bf dropbox: 3.14.5 -> 3.14.7 2016-02-17 16:24:06 +01:00
Rob Vermaas
c9ef3b51a3 Fix xclip hash, make revision explicit, in stead of depending on HEAD. 2016-02-17 11:57:04 +00:00
Vladimír Čunát
6db8b1ea01 pkgconfig: add a http-only mirror
It seems we don't really need `fetchurlBoot` here ATM, but let's keep it.
https://github.com/NixOS/nixpkgs/issues/12816#issuecomment-185083205

(cherry picked from commit 2f3eae3a87)
2016-02-17 08:52:34 +01:00
Herwig Hochleitner
37252fe6da dropbox: 3.12.6 -> 3.14.5 (release 15.09)
Also updates qt5 dependency to qt55, as per release notes: https://www.dropboxforum.com/hc/en-us/community/posts/205672126-Release-Candidate-3-14-5
2016-02-16 21:29:30 +01:00
Nathan Zadoks
9220f03d08 glibc: fix cve-2015-7547.patch so it applies cleanly
(cherry picked from commit fc48bf5a2c)
2016-02-16 11:26:19 -05:00
Nathan Zadoks
aacd8ac5f4 glibc: patch CVE-2015-7547
The glibc DNS client side resolver is vulnerable to a stack-based buffer
overflow when the getaddrinfo() library function is used. Software using
this function may be exploited with attacker-controlled domain names,
attacker-controlled DNS servers, or through a man-in-the-middle attack.
https://googleonlinesecurity.blogspot.co.uk/2016/02/cve-2015-7547-glibc-getaddrinfo-stack.html

(cherry picked from commit b5aa8a4e64)
2016-02-16 10:22:39 -05:00
Eelco Dolstra
969c67f48c firefox: Fix build
Fixes #13026.
2016-02-16 13:18:19 +01:00
Lluís Batlle i Rossell
602e0da970 linux: adding PCI Expresscard Hotplug support
(cherry picked from commit b2dc647c1e)
2016-02-16 09:24:00 +01:00
Franz Pletz
7ea9bb75e1 grafana: 2.5.0 -> 2.6.0, fixes #12978 #12970
(cherry picked from commit 70e47ab981)
2016-02-15 15:49:22 +01:00
Jaka Hudoklin
9e50c6c6c2 grafana module: update
(cherry picked from commit 9671d36011)
2016-02-15 15:48:51 +01:00
Jaka Hudoklin
0335e693a6 grafana: 2.0.0-beta1 -> 2.5.0
(cherry picked from commit abda14309f)
2016-02-15 15:48:51 +01:00
Jaka Hudoklin
ff9acf1a9b grafana: fix package naming
(cherry picked from commit 572ebb2f20)
2016-02-15 15:48:51 +01:00
Domen Kožar
2c53fccaef Merge pull request #12982 from davidak/syncthing-12
update Syncthing to 0.12.x #11329 on stable branch
2016-02-14 20:13:11 +00:00
Shea Levy
4a26a7a0e7 Merge branch 'logstash-15.09' of https://github.com/jgillich/nixpkgs into release-15.09 2016-02-14 07:05:33 -05:00
Vladimír Čunát
fe1c9c7498 pstree: add a working mirror to fix #12989
/cc maintainer @mornfall.

(cherry picked from commit 16d7237beb)
2016-02-14 08:37:36 +01:00
davidak
d218e2252c apply changes from #11329 to stable branch 2016-02-14 00:39:54 +01:00
makefu
26701af05d logstash: fix bin path
with the last commit for logstash plugin the bin path was not being used and the executables
were written directly in the root directory
this results in the failure of the logstash service configuration.
additionally the logstash tool itself does not start because it cannot source shell libraries relative
to the current location
2016-02-13 23:36:51 +01:00
Rob Vermaas
104fde593d plot.ly: upgrade to 1.9.5 2016-02-12 20:51:13 +00:00
Eelco Dolstra
f121cc3f65 nixUnstable: 1.11.1 -> 1.11.2 2016-02-12 16:14:42 +01:00
Franz Pletz
05a08024cd firefox: 44.0 -> 44.0.2
(cherry picked from commit 70925f0a92)
2016-02-12 16:14:30 +01:00
Franz Pletz
354c1754ad firefox: 43.0.4 -> 44.0
(cherry picked from commit 1026673f37)
2016-02-12 16:14:29 +01:00
Eelco Dolstra
70aa0b8c26 firefox: 43.0.3 -> 43.0.4
(cherry picked from commit 094723f0bc)
2016-02-12 16:14:29 +01:00
Eelco Dolstra
fb8d208a88 postgresql: Update to 9.5.1, 9.4.6, 9.3.11, 9.2.15, 9.1.20
(cherry picked from commit 5e6962ff2e)
2016-02-12 16:01:02 +01:00
Tom Burdick
a356047d0e postgresql: (94 -> 95)
Updates postgresql to its latest versions

(cherry picked from commit 2c23a311cd)
2016-02-12 16:01:02 +01:00
Eelco Dolstra
9a7b24ad04 php: 5.5.31 -> 5.5.32
(cherry picked from commit 42634fe6cc)
2016-02-11 11:29:46 +01:00
Eelco Dolstra
1e9ca1a91f php: 5.6.17 -> 5.6.18
(cherry picked from commit b061225c54)
2016-02-11 11:29:42 +01:00
Eelco Dolstra
af8d5fac75 mediawiki: 1.23.9 -> 1.23.13
(cherry picked from commit 86c2a0f783)
2016-02-11 11:29:37 +01:00
Steve Müller
3081f58d9b php: 5.5.30 -> 5.5.31
(cherry picked from commit 5250326474)
2016-02-11 11:29:27 +01:00
Steve Müller
c31b64e289 php: 5.6.16 -> 5.6.17
(cherry picked from commit 7c54bca127)
2016-02-11 11:29:22 +01:00
Eelco Dolstra
70cc29b51c Disable build of rPackages on Hydra
This reduces the release-15.09 jobset by ~14K jobs. Less invasive
version of ccd1029f58 (#12203).
2016-02-10 15:55:41 +01:00
Peter Simons
fa75e54869 all-packages.nix: drop trailing white space 2016-02-09 20:40:18 +01:00
Peter Simons
4ddf8e0e64 Update default Haskell compiler from 7.10.2 to 7.10.3.
I suppose this qualifies as a stable, bug-fixing update.
2016-02-09 20:39:38 +01:00
Peter Simons
5fd541cf8b haskell: synchronize setup with master branch
This update was generated by hackage2nix v20151217-10-ga610b1b using the following inputs:

  - Nixpkgs: 45176e62ca
  - Hackage: 4eb7681703
  - LTS Haskell: e7c3629999
  - Stackage Nightly: a84b3a147a
2016-02-09 20:36:26 +01:00
Rob Vermaas
ea43515da1 Add etsy/hound 2016-02-09 14:09:54 +00:00
Eelco Dolstra
14f5b32b6a Revert "curl: Change default src url (close #12851)"
This reverts commit ad8cd01d7d. The
upstream binary is mirrored on tarballs.nixos.org now.
2016-02-08 17:48:18 +01:00
Eelco Dolstra
ad287483e0 nixUnstable: Update to 1.11.1 2016-02-08 17:46:12 +01:00
Tony White
ad8cd01d7d curl: Change default src url (close #12851)
- Changes the default src url away from http://curl.haxx.se
to an official mirror because haxx.se resolves to https and
bootstrap curl doesn't have https support.
Please see https://github.com/NixOS/nixpkgs/issues/12816
for more info.

(cherry picked from commit 98ffc61e2f)
2016-02-07 13:41:05 +01:00
Vladimír Čunát
04777ed282 videolan.org sources: prefer http://get.videolan.org
Some of the original URLs were broken now.
It seems that set of mirrors is preferred and faster than the others.
In the x264 case the source isn't there so http://download.videolan.org
is used instead.

(cherry picked from commit 1e04d875db)
2016-02-07 13:21:55 +01:00
Nikolay Amiantov
22c0263ccd display-manager module: load pulseaudio's module-device-manager only for KDE
(cherry picked from commit ae662cdb11)
2016-02-06 22:19:05 +03:00
Bart Brouns
6abde3b56a ladspaH: move src to mirror, please also merge in 15.09
(cherry picked from commit 3b6b47976e)
Signed-off-by: Robin Gloster <mail@glob.in>
2016-02-06 19:07:57 +00:00
Vladimír Čunát
5af600479a libxslt: fix CVE-2015-7995 by upstream patch
(cherry picked from commit e4728dd05f)
2016-02-06 13:28:16 +01:00
Rickard Nilsson
dff27e0494 opensmtpd: Add option that can disable adding sendmail to the system path
(cherry picked from commit 5c20877d40)
2016-02-06 11:55:37 +01:00
Robin Gloster
7af7694b2a curl: 7.45 -> 7.47 (/cc #12723)
This fixes CVE-2016-0755:
https://curl.haxx.se/docs/adv_20160127A.html

Mostly cherry-picked from 0876a44169.
vcunat stripped it to minimum needed to get the security update.
2016-02-05 11:45:49 +01:00
Rob Vermaas
44347381aa Fix patches.nix, merge conflict got committed by accident. 2016-02-05 09:57:44 +00:00
Dan Peebles
1c1a5d3baf linux: 4.3.3 -> 4.34 (and update grsecurity patches, too)
(cherry picked from commit 78956c77c0)
2016-02-05 07:33:33 +01:00
Eelco Dolstra
8fd946228f linux: Update to 3.10.96, 3.12.53, 3.14.60, 3.18.26, 4.1.17
(cherry picked from commit 7b772ae398)
2016-02-05 07:33:33 +01:00
Eelco Dolstra
eacbf41d1f ec2: Don't use ephemeral disks for /nix unionfs
This is a regression introduced by merging the EBS and S3 images. The
EBS images had a special marker /.ebs to prevent the initrd from using
ephemeral storage for the unionfs, but this marker was missing in the
consolidated image.

The fix is to check the file ami-manifest-path on the metadata server
to see if we're an S3-based instance. This does require networking in
the initrd.

Issue #12613.

(cherry picked from commit 06731dfcae)
2016-02-05 07:33:33 +01:00
Eelco Dolstra
ffd3e88cd0 Don't make chromium-beta/dev release blockers
Generally we shouldn't ship pre-release versions anyway, and we
certainly don't want them to be release blockers. Also, chromium
builds are just too slow to have them blocking the channel (see
https://github.com/NixOS/nixpkgs/issues/12794).

(cherry picked from commit 69ec09f38a)
2016-02-05 07:33:33 +01:00
taku0
b5173754e3 thunderbird-bin: 38.5.0 -> 38.5.1
(cherry picked from commit 4e9729298e)
2016-02-05 07:33:33 +01:00
taku0
2107206c71 thunderbird-bin: 38.4.0 -> 38.5.0
(cherry picked from commit 66cddef221)
2016-02-05 07:33:32 +01:00
taku0
9917950f28 thunderbird-bin: 38.3.0 -> 38.4.0
(cherry picked from commit 50a842fb37)
2016-02-05 07:33:32 +01:00
taku0
b304385a73 firefox-bin: 43.0.4 -> 44.0
(cherry picked from commit 85f5394c5f)
2016-02-05 07:33:32 +01:00
taku0
7ac05effbb firefox-bin: 43.0.3 -> 43.0.4
(cherry picked from commit a9abdc8426)
2016-02-05 07:33:32 +01:00
taku0
5cb71dda51 firefox-bin: 43.0.2 -> 43.0.3
(cherry picked from commit 12a6fc722f)
2016-02-05 07:33:32 +01:00
taku0
26d1b33cf1 firefox-bin: 43.0.1 -> 43.0.2
(cherry picked from commit fe287dea9b)
2016-02-05 07:33:32 +01:00
taku0
7feb207dc4 firefox-bin: 43.0 -> 43.0.1
(cherry picked from commit e24211df8f)
2016-02-05 07:33:32 +01:00
taku0
08790a4f63 firefox-bin: 42.0 -> 43.0
(cherry picked from commit df02ed5696)
2016-02-05 07:33:32 +01:00
taku0
ac783c0a26 firefox-bin: 41.0.2 -> 42.0 (close #10821)
(cherry picked from commit b3a40786c0)
2016-02-05 07:33:32 +01:00
taku0
00784ffde2 firefox-bin: 41.0.1 -> 41.0.2
(cherry picked from commit 45705d584a)
2016-02-05 07:33:32 +01:00
taku0
84727e2a8b firefox-bin: 41.0 -> 41.0.1, thunderbird-bin: 38.2.0 -> 38.3.0
(cherry picked from commit 57155e04a7)
2016-02-05 07:33:32 +01:00
taku0
b2f551174c firefox-bin: 40.0.3 -> 41.0
(cherry picked from commit 50355a22a4)
2016-02-05 07:33:31 +01:00
Frederik Rietdijk
bdfda98890 Merge pull request #12821 from Beauhurst/kombu_amqp_update_backport
Kombu amqp update backport
2016-02-04 21:46:36 +01:00
Robert Scott
e9abbe867c kombu 3.0.30 -> 3.0.33 2016-02-04 16:00:00 +00:00
Robert Scott
3bdeb9a33f amqp 1.4.7 -> 1.4.9 2016-02-04 15:59:07 +00:00
Rickard Nilsson
217bfcf517 goPackages.oauth2_proxy: init at 20160120
Also add missing dependency:

goPackages.hmacauth: init at 20151013

(cherry picked from commit 23beba4994)
2016-02-04 11:44:14 +01:00
Hoang Xuan Phu
9dbef54378 bump bundler-head to 1.8.9 2016-02-03 11:33:26 +07:00
Nathan Zadoks
e83aed4c10 fish: don't use manpath(1) from PATH in functions/man.fish
Close #12762.

(cherry picked from commit 1072e2bf4d)
2016-02-02 06:18:35 +01:00
Luca Bruno
644b277b24 Merge pull request #12754 from vandenoever/davmail
davmail: 4.7.0 -> 4.7.1
2016-02-01 23:46:18 +01:00
Jos van den Oever
cf327c3dcf davmail: 4.7.0 -> 4.7.1
Bugfix release, mainly for Carddav regression over EWS, also includes an NTLM support enhancement.

Enhancement:
- Improve NTLM support try to send hostname as workstation name instead of UNKNOWN
- Fix notification dialog message
- Prepare ExchangeSessionFactory refactoring
- Fix typo in french translation
- Fix broken Sourceforge link in About dialog

Carddav:
- Carddav: fix regression on contact update with empty field triggering DeleteItemField
2016-02-01 21:11:59 +01:00
Tony White
9fe0c23a23 chromium: 47.0.2526.106 - > 48.0.2564.97
- Fixes CVE-2016-1612 CVE-2016-1613 CVE-2016-1614 CVE-2016-1615
  CVE-2016-1616 CVE-2016-1617 CVE-2016-1618 CVE-2016-1619 CVE-2016-1620.
- Moves chromium stable and beta channels up one version major.
  vcunat made dev channel stay for now, as it wouldn't download otherwise.
  This is most of PR #12717.

(cherry picked from commit 8491d0d1ca)
They are security updates. I briefly tested the default version against 15.09.
2016-02-01 12:13:08 +01:00
Vladimír Čunát
3d83991892 liberation-fonts: fix meta after 2012 changes
/cc maintainer @7c6f434c.

(cherry picked from commit 576746970e)
This doesn't even change hashes.
2016-02-01 08:52:51 +01:00
Matthew O'Gorman
1def2d06c8 gerbv: init at git-2015-10-07
(cherry picked from commit a76241c6cb)
2016-01-31 18:16:41 +01:00
Matthew O'Gorman
6d206ea3e4 geda: refdes_renum called /usr/bin/perl
(cherry picked from commit f076a0867f)
2016-01-31 18:16:41 +01:00
Peter Jones
3bfd411a6f geda: init at 1.8.2-20130925
(cherry picked from commit 1d4135eab9)
2016-01-31 18:16:41 +01:00
Bjørn Forsman
f6e55c29ca gnuradio: 3.7.8 -> 3.7.8.1
Tested with nox-review.

(cherry picked from commit 1909a6335e)
2016-01-31 18:09:30 +01:00
Matthew O'Gorman
afc221b5d7 gnuradio-nacl: init at 2015-11-05
(cherry picked from commit f761f06988)
2016-01-31 18:09:30 +01:00
Bjørn Forsman
0d2419a880 gnuradio: rename *-wrapper and *-full attributes to *-with-packages
Having both *-wrapper and *-full attribute names is rather confusing
(what's the difference?). And further, both packages are named
gnuradio-with-packages:

  $ nix-env -f. -qaP ".*gnuradio.*"
  gnuradio          gnuradio-3.7.7.1
  gnuradio-osmosdr  gnuradio-osmosdr-0.1.4
  gnuradio-full     gnuradio-with-packages-3.7.7.1
  gnuradio-wrapper  gnuradio-with-packages-3.7.7.1

Get rid of *-wrapper and rename *-full to *-with-packages, to align it
with the package name.

Now:

  $ nix-env -f. -qaP ".*gnuradio.*"
  gnuradio                gnuradio-3.7.7.1
  gnuradio-osmosdr        gnuradio-osmosdr-0.1.4
  gnuradio-with-packages  gnuradio-with-packages-3.7.7.1

And you can customize the *-with-packages variant like this:

  gnuradio-with-packages.override { extraPackages = [...]; }

(cherry picked from commit e9ad37e231)

FOR STABLE BRANCH: I added backward compatibility aliases.
2016-01-31 18:09:30 +01:00
Jaka Hudoklin
bdecd50588 gnuradio: 3.7.7.1 -> 3.7.8
(cherry picked from commit a4df29aee3)
2016-01-31 18:09:30 +01:00
Bart Brouns
47642db221 ladspa-sdk: change source url to mirror
ladspa.org has been down for a feew weeks, and I couldn't find info on a
cause or a solution.

Closes #12640.

Signed-off-by: Franz Pletz <fpletz@fnordicwalking.de>

(cherry picked from commit ee9d7f09ea)
2016-01-31 13:50:34 +01:00
Vladimír Čunát
ecf617bf6a Revert "chromium: Do not rely on import-from-derivation"
This reverts commit 2fd9d7bf92.
In this form it causes problems #12710.
2016-01-31 10:01:25 +01:00
Robert Helgesson
8773ffd94e eclipse-plugin-checkstyle: 6.11.1 -> 6.14.0
(cherry picked from commit 057e54f2ad)
2016-01-30 23:12:04 +01:00
Bjørn Forsman
b604d217d3 eclipse-scala-sdk: fix typo in package name
Change underscore to hyphen.

(cherry picked from commit ee0dc91157)
2016-01-30 23:01:18 +01:00
Bjørn Forsman
79eaf9fe44 eclipse-cpp: 4.5 -> 4.5.1
(cherry picked from commit b0b7fe2cce)
2016-01-30 23:01:18 +01:00
Bjørn Forsman
3b8a5c8877 eclipse-cpp: 4.4 -> 4.4.2
(cherry picked from commit 75d3b418a5)
2016-01-30 23:01:18 +01:00
Bjørn Forsman
86776a19a1 eclipse: remove old to-do comment about "mirror://eclipse/"
The comment is from 2011, before we started using officially mirrored
URLs[1] like

  http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=THE_FILE

I think using upstream mirrored URLs is better than mirror://eclipse:

  - upstream mirror list is always up to date
  - the closest / fastest mirror will be selected automatically

[1]: http://wiki.eclipse.org/IT_Infrastructure_Doc#Use_mirror_sites.2Fsee_which_mirrors_are_mirroring_my_files.3F

(cherry picked from commit bf2dfb9d99)
2016-01-30 23:01:18 +01:00
Bjørn Forsman
53e0a4e871 eclipse: align attrnames with pkgnames (underscore => hyphen)
Keep old attrnames too, for backward compatibility.

`nix-env -f . -qaP -A eclipses` only prints the new attributes (yay!).

(cherry picked from commit d5c9db8dd3)
2016-01-30 23:01:18 +01:00
Demin Dmitriy
0c787c0fc1 pinta: Add installation of manpages and .desktop, locale and icon files
(cherry picked from commit 0d12bbe574)
2016-01-30 22:52:47 +01:00
Demin Dmitriy
4d455825ca pinta: 1.4 -> 1.6
(cherry picked from commit 0ec62e0759)
2016-01-30 22:52:47 +01:00
Demin Dmitriy
3b77306288 dotnet Mono.Addins: init at 1.2
(cherry picked from commit f67184e9a9)
2016-01-30 22:52:47 +01:00
Demin Dmitriy
7af2a9b5a0 build-dotnet-package: add optional makeWrapperArgs argument
3 lines of code are shamelessly stolen from buildPythonPackage

(cherry picked from commit dc70fcd94b)
2016-01-30 22:46:51 +01:00
Franz Pletz
ac3cad2358 clawsMail: 3.13.1 -> 3.13.2 (security fix)
(cherry picked from commit ead58a86ba)
2016-01-30 21:18:08 +01:00
Bjørn Forsman
6951305e65 eclipse-plugin-gnuarmeclipse: 2.8.1-201504061754 -> 2.11.1-201512141335
Upstream switched from sourceforge to github.

(cherry picked from commit bdc9bfc3fa)
2016-01-30 12:38:23 +01:00
José Romildo Malaquias
508496f6bd eclipse-plugin-cup: init at 1.0.0.201412081321
(cherry picked from commit a654e783c6)
2016-01-30 12:38:19 +01:00
Eelco Dolstra
b943435cd7 debian: 8.2 -> 8.3
(cherry picked from commit 9855cbcbf8)
2016-01-30 11:09:20 +01:00
Eelco Dolstra
42c71bb1f0 slim: Sort sessions
This ensures that xfce and most others DMs are preferred over
xterm. Previously slim used directory order, which is undefined.

Of course, it's just lucky that xfce < xterm lexicographically, but
that also applies to the other display managers, AFAIK. We should have
a way to specify a DM order, but that can be accomodated by generating
desktop entries like "<NN>-session.desktop".

Fixes #4300. Parenthetical to #12516.

(cherry picked from commit eeb9231009)
2016-01-30 10:49:06 +01:00
Domen Kožar
eeaf0f8ca3 Merge pull request #12691 from falsifian/iso_fix_15.09
Cherry-pick fix for #10367 to release-15.09.
2016-01-30 09:43:08 +00:00
Domen Kožar
2987bb2473 Fix ISO building from a channel
Building config.system.build.isoImage would fail with the following
error using the channel:

  ln: failed to create symbolic link
'/nix/store/zz0hzi5imrg4927v6f8mv281qs6v6pbq-nixos-16.03pre69762.e916273/nixos/nixpkgs/.': File exists

The fix skips symlink as it already exists if the channel
nixpkgs copy is used.

Fixes #10367

(cherry picked from commit 75284b09e1 by
falsifian)
2016-01-29 19:45:43 -08:00
Vladimír Čunát
3f1b5623d2 lib/maintainers: add spinus to fix evaluation 2016-01-29 21:06:26 +01:00
aszlig
2fd9d7bf92 chromium: Do not rely on import-from-derivation
This has been introduced by me in 690a845 and discovered by @vcunat in
his comment over at:

690a845de9 (commitcomment-14209868)

It's really a bit ugly to have builds running during evaluation, but
back when I made that commit the reason was to avoid having to shell
quote the hell out of it (see the comment in mkPluginInfo for the
reason).

Now we propagate plugin flags and environment variables as a list of
arguments in a plain file that's appended verbatim to makeWrapper, so
it shouldn't do any builds anymore during instantiation.

I have tested this with both just WideVine and just Flash enabled as
well as both in combination and none of the plugins and the output seems
correct. However I didn't test to run Chromium with the new
implementation.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Reported-by: Vladimír Čunát <vcunat@gmail.com>
(cherry picked from commit 38c77bb72c)
2016-01-29 20:16:05 +01:00
Robert Helgesson
a017286bfe colordiff: add archive URL
When a new version of colordiff is released the old tarball is moved to
the archive directory. This breaks builds until the derivation is
updated to the new version. This commit lets fetchurl know about the
archive URL.
2016-01-29 17:05:32 +01:00
Eelco Dolstra
b637eb857b openssl: 1.0.1q -> 1.0.1r
CVE-2015-3197 (low severity)

(cherry picked from commit 2ecb6b4574)
2016-01-28 20:38:08 +01:00
Vladimír Čunát
79d63be7a5 openssl_1_0_2: high-severity security update e -> f
Fixes CVE-2016-0701 and CVE-2015-3197.

(cherry picked from commit a92c2cb994)
2016-01-28 20:37:54 +01:00
Tomasz Czyż
d1b9587f73 quicksynergy: init at 0.9.0 (close #12325)
vcunat moved `version` into the derivation.

(cherry picked from commit 7362936cd6)
Adding a new package should break nothing.
2016-01-28 20:37:22 +01:00
Thomas Tuegel
aa63776451 qt55.qtbase: fix path typo in resolv patch
This is a bug fix from master.

(cherry picked from commit 9695e139ec)
2016-01-28 11:20:23 -06:00
Thomas Tuegel
2424d84f3c qt54.qtbase: fix path typo in resolv patch
This is a bug fix from master.

(cherry picked from commit 9e743fd151)
2016-01-28 11:18:42 -06:00
Rob Vermaas
c833f5e537 Fix fetchbower by quoting arguments. 2016-01-28 08:44:58 +00:00
Sander van der Burg
23ab2f1bc7 disnix: add a target for services activated and deactivated by dysnomia
(cherry picked from commit a744aa74aa)
2016-01-27 23:27:37 +00:00
Jakob Gillich
30eba9222c axis2: 1.6.3 -> 1.6.4
fixes CVE-2013-0248

(cherry picked from commit ff02a4e3c2)
2016-01-27 23:25:29 +00:00
Sander van der Burg
7d012b657b disnix: bump to version 0.5
(cherry picked from commit a6bda1a62a)
2016-01-27 23:19:01 +00:00
Robert Helgesson
61eae44e2a eclipse-plugin-scala: 4.1.1.20151201 -> 4.3.0.201512011535
(cherry picked from commit 49f55ebf97)
2016-01-27 19:40:21 +01:00
Robert Helgesson
3ff7be3f22 eclipse-plugin-cdt: 8.7.0 -> 8.8.0
(cherry picked from commit bf00cf7457)
2016-01-27 19:40:21 +01:00
Robert Helgesson
611d765450 eclipse-plugin-jdt: 4.5 -> 4.5.1
(cherry picked from commit 799296d9e7)
2016-01-27 19:40:21 +01:00
Robert Helgesson
1074cc9988 eclipse-platform: 4.5 -> 4.5.1
(cherry picked from commit 887bed2853)
2016-01-27 19:40:21 +01:00
Robert Helgesson
2ac1fe22ab eclipseWithPlugins: lazier evaluation
Unfortunately the `readFile`/`writeText` functions forces realisation of
the eclipse package at evaluation time. By creating the configuration
file inside the build command we avoid realisation until installation.

(cherry picked from commit 40890b2b95)
2016-01-27 19:40:21 +01:00
Damien Cassou
db616fe25a Avoid CamelCase in filenames and add buildEclipse
(cherry picked from commit 6115684b73)
2016-01-27 19:40:21 +01:00
Murad Ulityonok
236c475d7a homogenized style
(cherry picked from commit ace6ed9127)
2016-01-27 19:40:21 +01:00
Murad Ulityonok
80dc896b73 added Eclipse Mars SDK 4.5.1
(cherry picked from commit 2a8129924b)
2016-01-27 19:40:21 +01:00
Murad Ulityonok
89fc4b7562 modularized Eclipse package
(cherry picked from commit 5b4fa99f1d)
2016-01-27 19:40:21 +01:00
Robert Helgesson
519bd744d0 eclipse-plugin-testng: 6.9.10.201511281504 -> 6.9.10.201512020421
(cherry picked from commit 414a1660f4)
2016-01-27 19:40:21 +01:00
Robert Helgesson
683433d4b0 eclipse-plugin-scala: 4.1.1.20150911 -> 4.1.1.20151201
(cherry picked from commit 777d3e5927)
2016-01-27 19:40:21 +01:00
Robert Helgesson
19de54d810 eclipse-plugin-anyedit: 2.5.0 -> 2.6.0
(cherry picked from commit 1a70229641)
2016-01-27 19:40:21 +01:00
Robert Helgesson
444371b3d3 eclipse-plugin-testng: 6.9.8 -> 6.9.10
(cherry picked from commit 55ab2a1eeb)
2016-01-27 19:40:21 +01:00
Robert Helgesson
03e0576a6b eclipse-plugin-anyedittools: 2.4.15 -> 2.5.0
(cherry picked from commit d64835da6f)
2016-01-27 19:40:20 +01:00
Robert Helgesson
0272d2ad0b eclipse-plugin-checkstyle: 6.11.0 -> 6.11.1
(cherry picked from commit ab605f0a99)
2016-01-27 19:40:20 +01:00
Robert Helgesson
0b70ac1029 eclipse-plugin-testng: 6.9.7 -> 6.9.8
(cherry picked from commit 3a6439f8d5)
2016-01-27 19:40:20 +01:00
Robert Helgesson
0994868151 eclipse-plugin-checkstyle: 6.9.0 -> 6.11.0
(cherry picked from commit e2acc25cbc)
2016-01-27 19:40:20 +01:00
Robert Helgesson
17fbd2a65f eclipse-plugin-testng: 6.9.5 -> 6.9.7
(cherry picked from commit abd63d4147)
2016-01-27 19:40:20 +01:00
Rok Garbas
2f263300fa nginx: 1.8.0 -> 1.8.1, 1.9.3 -> 1.9.10 2016-01-26 21:46:13 +01:00
Rickard Nilsson
12dc3c2f05 nixos/bosun: Make the check frequency configurable
(cherry picked from commit fa3dad1f9c)
2016-01-26 05:25:21 +01:00
Vladimír Čunát
55b03266cf nixos-generate-config: fix #12595: broadcom quoting
(cherry picked from commit 3e1599f57b)
2016-01-25 07:58:18 +01:00
Aaron Schif
3253257467 homesick: init at 1.1.3 (close #12465)
(cherry picked from commit 9aac99ccb0)
Adding a package should break nothing.
2016-01-24 17:22:49 +01:00
Tony White
a736968545 ati-drivers: Restore opengl & direct rendering
Pull request #12508. Fixes ATI unfree drivers; I cannot test this myself, but
reportedly they don't work at all now (#11817), so this can't make things worse.

- Removed a collision in the nix store
- Removed dependency on qt
- Fixed opengl and direct rendering by correcting some link paths
- Some code refactored in builder.sh
- Comments added/modified

This pull request fixes #11740 and I recommend that it be considered
as a hotfix for the stable channel due to the fact that opengl
and direct rendering are broken there too.

(cherry picked from commit 722c616b8f)
2016-01-23 12:18:14 +03:00
Graham Christensen
74e97e9275 awscli: Install less to fix help docs
Without less, we get:

```
2016-01-22 10:31:59,098 - MainThread - awscli.help - DEBUG - Running command: ['groff', '-man', '-T', 'ascii']
2016-01-22 10:31:59,109 - MainThread - awscli.help - DEBUG - Running command: ['less', '-R']
2016-01-22 10:31:59,111 - MainThread - awscli.clidriver - DEBUG - Exception caught in main()
Traceback (most recent call last):
  File "/nix/store/jmgflkyf1yfz6an82pvhq084mp1j0bjn-awscli-1.7.41/lib/python2.7/site-packages/awscli/clidriver.py", line 183, in main
    return command_table[parsed_args.command](remaining, parsed_args)
  File "/nix/store/jmgflkyf1yfz6an82pvhq084mp1j0bjn-awscli-1.7.41/lib/python2.7/site-packages/awscli/help.py", line 245, in __call__
    self.renderer.render(self.doc.getvalue())
  File "/nix/store/jmgflkyf1yfz6an82pvhq084mp1j0bjn-awscli-1.7.41/lib/python2.7/site-packages/awscli/help.py", line 81, in render
    self._send_output_to_pager(converted_content)
  File "/nix/store/jmgflkyf1yfz6an82pvhq084mp1j0bjn-awscli-1.7.41/lib/python2.7/site-packages/awscli/help.py", line 86, in _send_output_to_pager
    p = self._popen(cmdline, stdin=PIPE)
  File "/nix/store/jmgflkyf1yfz6an82pvhq084mp1j0bjn-awscli-1.7.41/lib/python2.7/site-packages/awscli/help.py", line 90, in _popen
    return Popen(*args, **kwargs)
  File "/nix/store/6a1x9r9wywa27v9gvp0yqgq0mmkfa3ww-python-2.7.11/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/nix/store/6a1x9r9wywa27v9gvp0yqgq0mmkfa3ww-python-2.7.11/lib/python2.7/subprocess.py", line 1335, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
2016-01-22 10:31:59,112 - MainThread - awscli.clidriver - DEBUG - Exiting with rc 255

[Errno 2] No such file or directory
```

Import less along with groff

Fixes #12549.

(cherry picked from commit 4a6602c3cd)
2016-01-22 18:33:51 +01:00
aszlig
b962204fc2 nixpart0: Fix race condition in formatting devices
This adds a backport of rhinstaller/blivet#39 to the pinned blivet
version 0.17, it's addressing the following upstream bug:

https://bugzilla.redhat.com/show_bug.cgi?id=1196397

It has been reported at aszlig/nixpart#7 and tested by @manveru (the
issue reporter), thanks a lot.

Thanks also to @domenkozar for finding the upstream issue.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Reported-by: Michael Fellinger <m.fellinger@gmail.com>
Fixes: aszlig/nixpart#7
(cherry picked from commit 24ae34c0d7)
2016-01-22 13:32:07 +01:00
Peter Simons
678359493c ghc-8.0.1: drop unused docbooc-related build inputs
The documentation is now built via Sphinx (todo).

(cherry picked from commit 623664daaa)
2016-01-21 21:15:56 +01:00
Jude Taylor
fd11002786 package GHC-8.0.1-rc1
(cherry picked from commit 552207f5ef)
2016-01-21 21:15:56 +01:00
Jude Taylor
4ae8dd76fb haskell-packages.nix: add package set for GHC 7.10.3 2016-01-21 21:15:56 +01:00
Peter Simons
d05a9b7dca ghc-HEAD: update build instructions and bump version to current Git master
Closes https://github.com/NixOS/nixpkgs/issues/10752.

(cherry picked from commit 1f108490f1)
2016-01-21 21:15:56 +01:00
Peter Simons
1f7202aff9 ghc-7.10.3: remove the obsolete build.mk file
New versions of GHC allow us to specify those things on the
command-line, so the build.mk file is no longer necessary.

(cherry picked from commit 878692e645)
2016-01-21 21:15:56 +01:00
Peter Simons
19756d34e5 ghc-7.10.3: don't pass compiler or linker flags through a response file
The new GHC version contains a patch [1] that passes linker and compiler flags
to GCC via response files rather than directly on the command-line. This is
supposed to be beneficial on Windows and other platforms that have trouble
dealing with long argument lists. On NixOS, however, this feature breaks the
flag handling provided by gcc-wrapper [2] and therefore causes the entire GHC
build to fail.

This issue has been reported upstream at [3]. It's not clear yet how to remedy
this problem, but until we've figured that out we just don't pass compiler flags
in response files on NixOS to fix https://github.com/NixOS/nixpkgs/issues/10752.

[1] 296bc70b5f
[2] https://github.com/NixOS/nixpkgs/issues/11762
[3] https://ghc.haskell.org/trac/ghc/ticket/11147

(cherry picked from commit a421e7bd4a)
2016-01-21 21:15:56 +01:00
Peter Simons
d55e6e481f ghc: update version 7.10.3 to 7.10.3a
Apply upstream patches that fix minor cosmetic issues in the documentation.

(cherry picked from commit eae27e7798)
2016-01-21 21:15:56 +01:00
Peter Simons
7928f03978 ghc: add version 7.10.3
(cherry picked from commit 4cca974eb6)
2016-01-21 21:15:56 +01:00
Vladimír Čunát
85f5c12468 kde5: fix plasma source URLs to download again
Fixes #12514. /cc maintainer @ttuegel.
2016-01-21 16:32:17 +01:00
Vladimír Čunát
68768baf5d glib-networking: fix certificate problems
... by upstream patch. Discussed on
https://github.com/NixOS/nixpkgs/issues/12518#issuecomment-173531178
https://bugzilla.redhat.com/show_bug.cgi?id=1284655
2016-01-21 12:04:44 +01:00
Vladimír Čunát
7406bb37c7 gnome3.epiphany: fix https when not running gnome-3
This (only) fixes the probem of not finding glib_networking,
not any certificate problems. Discussion: #12518.

(cherry picked from commit 97f4fa5196)
2016-01-21 11:43:52 +01:00
Vladimír Čunát
3030145ea1 linux-4.2: remove as it's no longer maintained upstream
grsecurity still holds a reference to it,
but I prefer it to fail than to use a version
that is most likely not secure anymore.

(cherry picked from commit 4824f73cb3)
2016-01-20 20:19:14 +01:00
Nathan Zadoks
5a4e18397b linux: patch CVE-2016-0728 (close #12492)
The PoC provided successfully escalates privileges from a local user to
root. The vulnerability affects any Linux Kernel version 3.8 and higher.
http://perception-point.io/2016/01/14/analysis-and-exploitation-of-a-linux-kernel-vulnerability-cve-2016-0728/

(cherry picked from commit 23f5e3c90f)
2016-01-20 09:37:56 +01:00
Bryan Gardiner
5f514c1188 claws-mail: add glib_networking for fancy to load HTTPS content, fixes #10421 2016-01-20 02:31:56 +01:00
Eelco Dolstra
a58217a4a9 make-tarball.nix: Allow passing in a different Nix
Used by the Nix tests (9fff492561).

(cherry picked from commit ac0c49970b)
2016-01-19 21:30:01 +01:00
Vladimír Čunát
0d95c80b22 zeroad: do not build on Hydra
It should be possible to build binaries without data and then compose by
a wrapper, e.g. similarly to what simutrans does.

(cherry picked from commit c860e27ef2)
2016-01-19 12:17:08 +01:00
Rob Vermaas
80a2cb9155 nixops: 1.3 -> 1.3.1 2016-01-18 13:54:37 +00:00
Vladimír Čunát
61a2952192 ffmpeg(-2.7 and 2.6): security update to fix #12437
They are claimed to fix CVE-2016-{1897,1898}.
The corresponding staging commit 85628148de updated different versions.
2016-01-17 10:20:51 +01:00
Tim Steinbach
b4c64b9f37 kernel: 4.3.2 -> 4.3.3
(cherry picked from commit f318049964)
2016-01-15 20:11:27 +01:00
William A. Kennington III
b26d95b0cd kernel: 4.2.5 -> 4.2.6
(cherry picked from commit 3950ab9eb9)
2016-01-15 20:10:58 +01:00
William A. Kennington III
08089ecdc5 kernel: 3.12.47 -> 3.12.50
(cherry picked from commit d33c63c19d)
2016-01-15 20:09:33 +01:00
William A. Kennington III
2959a98b90 kernel: 3.10.88 -> 3.10.92
(cherry picked from commit 4eaa66c9d2)
2016-01-15 20:08:30 +01:00
Simon Jagoe
e31752f435 kernel: 4.1.12 -> 4.1.15 (close #12408)
(cherry picked from commit 42d4175e4e)
2016-01-15 20:03:01 +01:00
Domen Kožar
d1af4dcb36 Chromium updates
(cherry picked from commit 6da327b433)
2016-01-15 20:01:45 +01:00
Ambroz Bizjak
45ef168a8e chromium: Updates.
- dev: 48.0.2564.22 -> 49.0.2587.3
- beta: 48.0.2564.23 -> 48.0.2564.41
- stable: 47.0.2526.73 -> 47.0.2526.80

(cherry picked from commit 03cf5e6627)
2016-01-15 20:01:44 +01:00
Ambroz Bizjak
e905ad1305 chromium: Updates, fixes #11492
Built and run Beta and Stable locally. Dev is surrently superseded by Stable so
it doesn't matter much.

- Dev: 47.0.2508.0 -> 48.0.2564.22
- Beta: 46.0.2490.64 -> 48.0.2564.23
- Stable: 45.0.2454.101 -> 47.0.2526.73

Changed the SSL dependencies to the supported configuration on Linux (according
to Torne @Freenode/#chromium-support).

- NSS is a dependency since it is used to access the ceritiface store.
- Dropped system OpenSSL support, the bundled BoringSSL is used.

This probably fixes issue #10555. Note that without this adjustment the build
fails even.

Dropped uneeded old patches.

(cherry picked from commit b9093f1c64)
Some previous updates were skipped, which resulted into trivial conflicts.
2016-01-15 20:01:44 +01:00
Eelco Dolstra
3d138869a9 separateDebugInfo: Create symlinks matching original binaries
For instance, a binary like libfoo.so will cause a symlink
lib/debug/libfoo.so.debug -> .build-id/<build-ID>.debug to be
created. This is primarily useful for use with eu-addr2line, if you
know the name of a binary and the relative address, but not the build
ID.

(cherry picked from commit 2fcee55e5f)
2016-01-15 16:17:29 +01:00
Vladimír Čunát
aad16cf876 gst_all: add dashed-named aliases
(cherry picked from commit 521ed1802f)
This should break nothing.
2016-01-15 09:08:35 +01:00
Nathan Zadoks
b3bba00885 go: 1.5.1 -> 1.5.3 (close #12384)
This addresses CVE-2015-8618 (a vulnerability in math/big)
This issue can affect RSA computations in crypto/rsa, which is used by
crypto/tls. TLS servers on 32-bit systems could plausibly leak their RSA
private key due to this issue. Other protocol implementations that
create many RSA signatures could also be impacted in the same way.
https://groups.google.com/forum/#!topic/golang-dev/MEATuOi_ei4

Backported to 15.09 from 174221b744
2016-01-14 16:51:28 +01:00
Franz Pletz
a1742be79e openssh: Disable roaming (security fix)
Fixes CVE-2016-0777 and CVE-0216-0778.

Closes #12385.

(cherry picked from commit 2d65772950)
2016-01-14 16:44:42 +01:00
Nikolay Amiantov
9e86366693 xserver service: wait for systemd-logind
This seems the right thing to do, and most likely has fixed the race condition
described at https://github.com/NixOS/nixpkgs/issues/12132#issuecomment-171284532

(cherry picked from commit b292e19fbd)
2016-01-14 14:34:18 +03:00
Nikolay Amiantov
ca431d1db9 teamviewer: 10.0.37742 -> 11.0.53191
(rebased version of commits c3d503d33d and a81b396a2e)

Extra care is taken to save old versions to minimize changes. Closes #12362
2016-01-14 14:08:29 +03:00
Rob Vermaas
dc451e1402 Actually use openjdk8 binary build for x86_64-darwin.
(cherry picked from commit 73359a3cbe)
2016-01-14 10:31:34 +00:00
Rob Vermaas
9cb7bcca9f Add binary openjdk 8 build for x86_64-darwin, similar to the openjdk 7 build for x86_64-darwin.
(cherry picked from commit 5f3e33b8ec)
2016-01-14 10:28:50 +00:00
Louis Taylor
1f3d32e993 source-code-pro: use fetchFromGitHub to fix hash
Fixes #12372, Close #12376.

(cherry picked from commit f917a7f908)
2016-01-14 09:18:18 +01:00
Eric Sagnes
28b60a660e newsbeuter: patch memory leak (close #12374)
vcunat fixed the patch hash.

(cherry picked from commit 0eeda4e36f)
2016-01-14 08:49:22 +01:00
Bjørn Forsman
53286a8886 gnome-terminal: enable GNOME Shell search provider
Silly ./configure, it looks for dbus file from gnome-shell in the
installation tree of the package it is configuring. Fix by copying the
needed file from gnome-shell before ./configure is run.

This change makes gnome-shell a build time dependency (not runtime).

(cherry picked from commit 3d81213509)
2016-01-12 08:10:05 +01:00
Lancelot SIX
bc4bba68ac pkgs.gdb: 7.10 -> 7.10.1
See https://lists.gnu.org/archive/html/info-gnu/2015-12/msg00003.html

(cherry picked from commit 5aa99f680e)
2016-01-11 17:10:18 +01:00
Eelco Dolstra
90f79de9ef linux: Make Unix domain sockets builtin
This hopefully fixes intermittent initrd failures where udevd cannot
create a Unix domain socket:

  machine# running udev...
  machine# error getting socket: Address family not supported by protocol
  machine# error initializing udev control socket
  machine# error getting socket: Address family not supported by protocol

The "unix" kernel module is supposed to be loaded automatically, and
clearly that works most of the time, but maybe there is a race
somewhere. In any case, no sane person would run a kernel without Unix
domain sockets, so we may as well make it builtin.

http://hydra.nixos.org/build/30001448
(cherry picked from commit e4b4e9b986)
2016-01-11 17:10:18 +01:00
Vladimír Čunát
28e333d60f Merge: burp: init at 1.3.48 and 1.4.40
It's ported from master. /cc #10812.
2016-01-09 13:41:24 +01:00
Vladimír Čunát
a49e2c8fd4 maintainers: add tokudan from master to support burp 2016-01-09 13:37:42 +01:00
Daniel Frank
9f71b21aba burp: updates to match the coding conventions
(cherry picked from commit 0d18edd645)
2016-01-09 13:32:56 +01:00
Daniel Frank
3692bfd7f8 burp: remove unnecessary CHANGELOG entry in burp
(cherry picked from commit 97e6595752)
2016-01-09 13:32:54 +01:00
Daniel Frank
769d3b46cf burp: new package (backup program)
(cherry picked from commit b2a958157d)
2016-01-09 13:32:45 +01:00
Svein Ove Aas
788f56ae15 zfs:Add zfs.devNodes option for zpool import -d
(cherry picked from commit 9a82dd87f7)

Reason: Importing devices from /dev/disk/by-id can prevent certain bugs
that lead to ZFS pool corruption, as mentioned in #11668.

That said, although this adds the option to import from /dev/disk/by-id,
I'm not yet changing the default import path in the stable channel
because possibly some block devices may not show up in /dev/disk/by-id,
causing a perfectly-working system to become unbootable. It's probably
safer to battle test the new default path in the unstable channel
instead, and let it become part of the stable channel as part of the
next NixOS release.
2016-01-07 13:52:54 +01:00
Rok Garbas
e0246b7614 python27: 2.7.10 -> 2.7.11
(cherry picked from commit 124e70a459)
Signed-off-by: Domen Kožar <domen@dev.si>
2016-01-07 11:21:05 +01:00
Domen Kožar
f0898a4664 python: 3.4.3 -> 3.4.4
(cherry picked from commit 78096e9b89)
Signed-off-by: Domen Kožar <domen@dev.si>
2016-01-07 11:20:05 +01:00
Jakob Gillich
21bfd2f952 plib: fix CVE-2012-4552 (close #12195)
patch source: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=694810#10

(cherry picked from commit 90b853b706)
2016-01-07 10:27:53 +01:00
Jakob Gillich
6f3b3fe71f libxml2: security update 2.9.2 -> 2.9.3 (close #12197)
(cherry picked from commit aee934b3aa)
It solves a dozen DOS vulnerabilities.
2016-01-07 10:22:43 +01:00
Jakob Gillich
ea4a7f50ac mcrypt: fix several security issues (close #12194)
CVE-2012-4409, CVE-2012-4426, CVE-2012-4527

Patches taken from https://gitweb.gentoo.org/repo/gentoo.git/tree/app-crypt/mcrypt/files

(cherry picked from commit 4f4eebbded)
2016-01-07 10:11:01 +01:00
Mathijs Kwik
aa2d714375 geolite-legacy 2015-11-23 -> 2016-01-06
(cherry picked from commit c90be3dd3a)
2016-01-06 12:05:03 +01:00
Tobias Geerinckx-Rice
0ad8f7e066 geolite-legacy 2015-11-17 -> 2015-11-23
(cherry picked from commit 71e3811cde)
2016-01-06 12:05:03 +01:00
Tobias Geerinckx-Rice
39d6c494af geolite-legacy 2015-11-04 -> 2015-11-17
(cherry picked from commit 8d33c88c4f)
2016-01-06 12:05:03 +01:00
Tobias Geerinckx-Rice
c8e53ef038 geolite-legacy 2015-11-02 -> 2015-11-04
(cherry picked from commit 8fb1ee3c2a)
2016-01-06 12:05:03 +01:00
Tobias Geerinckx-Rice
17163dd188 geolite-legacy 2015-10-27 -> 2015-11-02
(cherry picked from commit 4435e317e9)
2016-01-06 12:05:03 +01:00
Tobias Geerinckx-Rice
bb0cddba6e geolite-legacy 2015-10-19 -> 2015-10-27
(cherry picked from commit d5ea5f0a5d)
2016-01-06 12:05:03 +01:00
Tobias Geerinckx-Rice
585e625720 geolite-legacy 2015-10-13 -> 2015-10-19
(cherry picked from commit a6626bef1a)
2016-01-06 12:05:03 +01:00
Tobias Geerinckx-Rice
20debce15f geolite-legacy 2015-10-09 -> 2015-10-13
(cherry picked from commit 7d8602e78e)
2016-01-06 12:05:02 +01:00
Tobias Geerinckx-Rice
db3c7d574a geolite-legacy 2015-10-08 -> 2015-10-09
Jeez.

(cherry picked from commit 2cd4e12f6c)
2016-01-06 12:05:02 +01:00
Tobias Geerinckx-Rice
3e49bfa092 geolite-legacy 2015-10-06 -> 2015-10-08
(cherry picked from commit 9108533d4e)
2016-01-06 12:05:02 +01:00
Tobias Geerinckx-Rice
1e3b93d988 geolite-legacy 2015-10-05 -> 2015-10-06 (bis)
Previous patch was incomplete.

(cherry picked from commit 883cca5f36)
2016-01-06 12:05:02 +01:00
Tobias Geerinckx-Rice
59e7a268d1 geolite-legacy 2015-10-05 -> 2015-10-06
(cherry picked from commit 056c3b8bc6)
2016-01-06 12:05:02 +01:00
Tobias Geerinckx-Rice
bcce304f3d geolite-legacy: update 2015-09-29 -> 2015-10-05
(cherry picked from commit 1f3bb8ba8c)
2016-01-06 12:05:02 +01:00
Tobias Geerinckx-Rice
8faf97bf7e geolite-legacy: update 2015-09-22 -> 2015-09-29
(cherry picked from commit 9515611009)
2016-01-06 12:05:02 +01:00
Tobias Geerinckx-Rice
6f9141cbd3 geolite-legacy: update 2015-09-14 -> 2015-09-22
(cherry picked from commit ceb94adffe)
2016-01-06 12:05:02 +01:00
Tobias Geerinckx-Rice
b82cc8d532 geolite-legacy: update 2015-09-08 -> 2015-09-14
(cherry picked from commit 6dc2a827c0)
2016-01-06 12:05:02 +01:00
Tobias Geerinckx-Rice
d48f7b09dd geolite-legacy: update 2015-09-03 -> 2015-09-08
(cherry picked from commit b313fb0997)
2016-01-06 12:05:02 +01:00
Tobias Geerinckx-Rice
7f612b1f79 geolite-legacy: update 2015-08-31 -> 2015-09-03
(cherry picked from commit a9b1c91285)
2016-01-06 12:05:02 +01:00
Tobias Geerinckx-Rice
500fee5f53 geolite-legacy: update 2015-08-24 -> 2015-08-31
(cherry picked from commit 2245e09218)
2016-01-06 12:05:01 +01:00
Peter Simons
4022a6d101 youtube-dl: take advantage of the improved getVersion function
(cherry picked from commit af8c1f3368)
2016-01-05 20:15:41 +01:00
Peter Simons
8017d3d617 youtube-dl: remove meta.version
(cherry picked from commit 41a91a5495)
2016-01-05 20:15:34 +01:00
Peter Simons
5c6d82a055 lib.getVersion: extend the function to cope with strings as well as derivations 2016-01-05 20:13:21 +01:00
Eelco Dolstra
6d7a6b8018 install-grub: Make more robust against GC'ed system profile entries
Previously this barfed with:

  updating GRUB 2 menu...
  fileparse(): need a valid pathname at /nix/store/zldbbngl0f8g5iv4rslygxwp0dbg1624-install-grub.pl line 391.
  warning: error(s) occured while switching to the new configuration

(cherry picked from commit 1ba2015450)
2016-01-05 16:56:51 +01:00
Eelco Dolstra
97918d89d7 firefox-esr: 38.5.0 -> 38.5.2
(cherry picked from commit bab578f961)
2016-01-05 16:56:28 +01:00
Eelco Dolstra
f2c95d2bc2 firefox: 43.0 -> 43.0.3
(cherry picked from commit 9bce31e9b6)
2016-01-05 16:56:27 +01:00
Eelco Dolstra
385dcc90d2 kdmrc: Build locally
(cherry picked from commit 22848d55e2)
2016-01-05 16:56:27 +01:00
Tobias Geerinckx-Rice
7c06bf69d7 liferea, graphite service: fix typo (agregator -> aggregator)
(cherry picked from commit a133ef9a0c)
2016-01-05 09:34:00 +01:00
Vladimír Čunát
100c4a328d liferea: maintenance update 1.10.16 -> 1.10.17
Also refactor meta.

(cherry picked from commit fff938f72a)
2016-01-05 09:33:41 +01:00
Eelco Dolstra
014260a9d6 NixOS tests: Increase hung_task_timeout_secs
This hopefully fixes intermittent test failures like

  http://hydra.nixos.org/build/29962437

  router# [  240.128835] INFO: task mke2fs:99 blocked for more than 120 seconds.
  router# [  240.130135]       Not tainted 3.18.25 #1-NixOS
  router# [  240.131110] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.

assuming that these are caused by high load on the host.

(cherry picked from commit 6d02d7e740)
2016-01-04 17:08:59 +01:00
Bjørn Forsman
0f7519a082 system-config-printer: set meta.platforms
(cherry picked from commit d1cb42f297)
2016-01-04 14:38:20 +01:00
Vladimír Čunát
5b1a0a9584 kernel: do not load configs module (close #10912)
... because we make it built-in by default.
I can't imagine anyone who wanted to purge this module from his/her system,
so let's keep it simple, at least for now.

(cherry picked from commit 0e1fe66aad)
This change should "only" get rid of an annoying error in logs.
2016-01-04 14:04:20 +01:00
Rok Garbas
9a4806e9d9 libreoffice: adding polish language 2016-01-04 12:08:56 +01:00
Domen Kožar
4e12825cd4 networkmanager: set uid/gid for the networkmanager openvpn agent
Backports c515be4651

The same uid/gid is taken for future compatibility.
2016-01-04 11:41:53 +01:00
Bart Brouns
69fb1b1930 jackaudio: compile without profiling
(cherry picked from commit 79b1e05b42)
It doesn't make sense except for jackaudio devs.
2016-01-04 09:24:21 +01:00
Mateusz Kowalczyk
adc6e9b5c1 youtube-dl: 2015.11.24 -> 2016.01.01
(cherry picked from commit 1e630749d8)
2016-01-03 22:12:51 +01:00
Bjørn Forsman
2732772ae1 colord: fix use of /var
Currently the package is built with /var in $out/var. That fails when it
tries to create/write things at runtime (nix store is read-only).
Instead, tell it to use /var (global directory) and fixup the
installation phase so it doesn't touch /var (leave that for runtime).

This unbreaks the colord dbus service, which apparently is needed by
cups to create color profiles for printers.

(cherry picked from commit 9cdf17e822)
2016-01-03 21:26:57 +01:00
Tobias Geerinckx-Rice
c2b35f9dd3 nixos: samba module: fix typo & clarify
(cherry picked from commit b6c24c12b4)
2016-01-03 20:30:39 +01:00
Bjørn Forsman
71897db586 system-config-printer: align attrname with pkgname
s/system_config_printer/system-config-printer/

(cherry picked from commit ee807863ee)
2016-01-03 15:21:41 +01:00
Philipp Hausmann
1f3ae904d3 maintainers: Make attrname match my github account
(cherry picked from commit b574af31f4)
2016-01-03 10:30:28 +01:00
Bjørn Forsman
e08ed22749 cups-bjnp: align attrname with pkgname (s/cupsBjnp/cups-bjnp/)
(cherry picked from commit 0ec3f4d339)
2016-01-03 00:15:27 +01:00
Bjørn Forsman
2efc99a7f7 cups-bjnp: add meta.description
(cherry picked from commit a1ddb32a45)
2016-01-03 00:13:42 +01:00
Bjørn Forsman
4d99a87240 system-config-printer: remove bad /usr/bin reference in dbus service file
(cherry picked from commit 1979034956)
2016-01-03 00:13:34 +01:00
Bjørn Forsman
6e3df3cd5d cups-pk-helper: init at 0.2.5
Adding this package to environment.systemPackages stops the
"Add new printer" button in gnome-control-center from being grayed out
and stops it from printing:

  (gnome-control-center:16664): printers-cc-panel-WARNING **: Your system does not have the cups-pk-helper's policy "org.opensuse.cupspkhelper.mechanism.all-edit" installed. Please check your installation

But completing the printer setup requires some additional packaging
work. This is what happens when trying to _add_ a printer:

  (gnome-control-center:18733): printers-cc-panel-WARNING **: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.fedoraproject.Config.Printing was not provided by any .service files
  (gnome-control-center:18733): printers-cc-panel-WARNING **: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.PackageKit was not provided by any .service files

(cherry picked from commit 92a0140ff8)
2016-01-03 00:12:46 +01:00
Anders Lundstedt
9fbda0d4bf youtube-dl: 2015.11.19 -> 2015.11.24
(cherry picked from commit 49a4a141f9)
2016-01-02 14:15:06 +01:00
Anders Lundstedt
d5891f45aa youtube-dl: 2015.11.13 -> 2015.11.19
(cherry picked from commit af56acc23b)
2016-01-02 14:14:52 +01:00
Jan Malakhovski
2072391d5d youtube-dl: 2015.11.10 -> 2015.11.13
(cherry picked from commit 21c8d1024b)
2016-01-02 14:14:40 +01:00
Anders Lundstedt
182992efa1 youtube-dl: 2015.10.24 -> 2015.11.10
(cherry picked from commit a3448fad5f)
2016-01-02 14:14:29 +01:00
AndersonTorres
f71875aff5 youtube-DL: 2015.08.28 -> 2015.10.24
(cherry picked from commit 68a198f74b)
2016-01-02 14:14:14 +01:00
Ricardo M. Correia
1678cbba99 youtube-dl: 2015.08.28 -> 2015.10.06.2
(cherry picked from commit f86080cdb3)
2016-01-02 14:14:03 +01:00
Mateusz Kowalczyk
3eddcb7c13 youtube-dl: update to 2015.08.28
(cherry picked from commit adbb5d7ca6)
2016-01-02 14:09:18 +01:00
Emery Hemingway
a09c1f5be8 Rename 'emery' maintainer handle to 'ehmry', fixes #11493
Communication happens on Github so names should be consistent.

(cherry picked from commit 2b6dcdfcd0)
Best be consistent with active release branches as well.
2016-01-02 12:35:25 +01:00
Vladimír Čunát
020521ab79 unrar: fix #12084: wrong license
(cherry picked from commit 8781743edb)
2016-01-02 12:32:48 +01:00
Michael Alan Dorman
b04d511643 flashplayer: 11.2.202.554 -> 11.2.202.559 (#12066)
(cherry picked from commit c140bd697b)
It might contain security fixes.
2016-01-01 23:05:22 +01:00
Eelco Dolstra
75974d9220 Force another rebuild
Unfortunately, yesterday Nix got reverted to a version with broken
passAsFile implementation on some Hydra machines, so we have corrupted
files again. (E.g. http://hydra.nixos.org/build/29777678.) Forcing
another gratuitous rebuild to get rid of them.
2015-12-31 22:16:52 +01:00
Eelco Dolstra
27215b2c15 glibc: Fix assertion failure when using incompatible locale data
Borrowed from

  http://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/patches/glibc-locale-incompatibility.patch

https://github.com/NixOS/nix/issues/599

We may also want to apply

  http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/patches/glibc-versioned-locpath.patch

but we'll need to ditch locale-archive first. (Apparently
locale-archive is not very useful anymore anyway.)

(cherry picked from commit 6a766f47c2)

Yes, this is a mass rebuild, but we can't leave all our binaries
segfaulting on recent (Glibc 2.22) Linux distributions. Also a good
way to get rid of the Hydra corruption caused by the passAsFile bug.
2015-12-30 15:18:29 +01:00
Vladimír Čunát
2290ab087f rsync: security update 3.1.1 -> 3.1.2
This should fix CVE-2014-9512.
https://download.samba.org/pub/rsync/src/rsync-3.1.2-NEWS

(cherry picked from commit 468f698f60)
The release bump also contains some features,
but I'm lazy to separate the security parts myself.
2015-12-30 12:07:43 +01:00
Vladimír Čunát
617d0bce65 libpng-1.2: security update 1.2.54 -> 1.2.55
It should finally fix #11030 and CVE-2015-8126 for 1.2.

(cherry picked from commit 8627b26874)
2015-12-30 11:41:33 +01:00
Reno Reckling
ec205c2c91 ding: init at 1.8 (close #11989)
vcunat improved meta.

(cherry picked from commit a1e0894cb4)
Adding a new package should break nothing.
2015-12-29 21:05:52 +01:00
Eelco Dolstra
7f19e6508e nixUnstable: 1.11pre4334_7431932 -> 1.11pre4345_b8258a4
(cherry picked from commit 63bf2a551e)
2015-12-29 17:56:18 +01:00
tv
248619a805 exim: 4.85 -> 4.86
(cherry picked from commit 84295986e7)
2015-12-29 17:28:16 +01:00
Eelco Dolstra
b739c56065 Add some preferLocalBuild
(cherry picked from commit 7906169ce1)
2015-12-29 17:22:22 +01:00
Eelco Dolstra
f4d49f6c83 linux: 3.18.24 -> 3.18.25
(cherry picked from commit f6df6d8d46)
2015-12-29 17:22:18 +01:00
Eelco Dolstra
fac7ff90dd Force rebuild of some corrupted files
(cherry picked from commit 74aac17878)
2015-12-29 16:40:27 +01:00
Yann Hodique
f56c4604e4 mesa: add download url (close #11942)
vcunat refactored a bit (too long line, etc.) and reordered the URLs.

(cherry picked from commit bc6e050f21)
This will be useful mainly here on older branches.
2015-12-29 14:24:39 +01:00
Bjørn Forsman
226b2f1f96 conky: add meta.platforms
(cherry picked from commit 4f3d769d6f)
2015-12-29 13:32:15 +01:00
Vladimír Čunát
1c74f149c7 archiveopteryx: improve install paths, parallel build
(cherry picked from commit 39c43bc6e2)
2015-12-27 08:22:06 +01:00
Hoang Xuan Phu
f905e48b16 archiveopteryx: init at 3.2.0
(cherry picked from commit b8bc82a459)
Adding new packages should break nothing.
2015-12-27 08:21:41 +01:00
Tuomas Tynkkynen
0d544537ca installation-cd: Add separate boot entry that has 'nomodeset'
We seem to be in an unfortunate situation: booting without 'nomodeset'
causes hangs when booting on some NVIDIA cards (6948c3ab80), but on the
other hand adding 'nomodeset' prevents X from starting on other hardware
(e.g. issue #10381 and my Thinkpad X250 with an integrated Broadwell GPU).

Attempt to remedy this situation a bit by adding a separate entry in the
ISOLINUX menu (with the non-'nomodeset' being the default).

(cherry picked from commit 269f261c73)
2015-12-26 07:37:09 -05:00
Nathan Zadoks
47e3abd51e despotify: fix missing hash (close #11913)
(cherry picked from commit 77affc495f)
The source wouldn't download before this commit if chrooted.
2015-12-23 23:09:40 +01:00
Franz Pletz
c767e07ad8 clawsMail: 3.13.0 -> 3.13.1 (CVE-2015-8614)
Fixes a remotely triggerable buffer overflow.
http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=3557
Close #11910.

(cherry picked from commit cbada77b0b)
2015-12-23 18:53:00 +01:00
Thomas Tuegel
ddad6a369b Merge pull request #11903 from ttuegel/dropbox-stable
dropbox: 3.12.5 -> 3.12.6
2015-12-23 08:56:42 -06:00
Thomas Tuegel
2357330d4c dropbox: 3.12.5 -> 3.12.6
Update required because outdated versions stop working.

(cherry picked from commit 077a3102cc)
2015-12-23 08:37:53 -06:00
Vladimír Čunát
a16c0e3ff8 buildRubyGem: use a saner default version to fix #11805
Previously the gems defaulted to "ruby" as the name and
"${ruby-version}-${gem-name}-${gem-version}" as the version,
which was just insane.

https://github.com/NixOS/nixpkgs/issues/9771#issuecomment-141041414
Noone is reacting so it's high time to take at least some action.
/cc @cstrahan.

(cherry picked from commit fdf3aa9923)
The renaming seems rather unlikely to break anything,
and it seems very useful (to some people at least).
2015-12-23 09:11:17 +01:00
Svein Ove Aas
65e5ba5a4b znc: 1.6.1 -> 1.6.2, fixes #11862
The 1.6.1 version no longer exists on the upstream site.

(It would be good not to have external dependencies in nixpkgs.)
2015-12-23 02:20:48 +01:00
Vladimír Čunát
15cc8e3985 texlive: add xdvi binary part (fixes #11816)
It seems to work fine for me now, after adding dependency on metafont.

(cherry picked from commit e16d3d0d8a)
Adding it should break nothing.
2015-12-22 16:58:16 +01:00
Matthias C. M. Troffaes
ec4bf82be5 cbatticon: use fetchzip to fix sha256 issues
(cherry picked from commit 9b2d64f310)
/cc #11519.
2015-12-22 10:19:33 +01:00
Carles Pagès
bced18ab92 yafc: update to 1.3.6
(cherry picked from commit 1145130e9b)
2015-12-22 09:11:19 +01:00
Vladimír Čunát
8d6a8ad405 beret: mark as broken; it doesn't download
/cc maintainer @lovek323.

(cherry picked from commit 3ddd19959c)
2015-12-21 12:10:41 +01:00
Robert Helgesson
1d8ea0b999 keepassx: 0.4.3 -> 0.4.4
Fixes CVE-2015-8359 and CVE-2015-8378. Also switch URL to new download
location.
2015-12-21 08:06:37 +01:00
Domen Kožar
1451f004c7 add Django 1.9 2015-12-20 22:54:11 +01:00
Thomas Tuegel
0df1e6e2fd Merge pull request #11836 from bendlas/update-dropbox-stable
dropbox: 3.12.4 -> 3.12.5; libGL fix (stable)
2015-12-19 12:22:52 -06:00
Herwig Hochleitner
bd8db38924 dropbox: add libGL fallback to LD_LIBRARY_PATH
This fixes pyqt for cases where libGL is not on LD_LIBRARY_PATH, e.g. with
plain nixpkgs. fixes #11728
2015-12-19 17:55:13 +01:00
Herwig Hochleitner
e5d5e01740 dropbox: 3.12.4 -> 3.12.5 2015-12-19 17:48:50 +01:00
Karn Kallio
97bf081fa6 signond : update the URL, which has changed
Patch contributed by Karn Kallio <tierpluspluslists@skami.org>.
Committed by falsifian <jcook@cs.berkeley.edu>.

(cherry picked from commit 75ffec77ee)
2015-12-19 10:27:40 +01:00
Matthias C. M. Troffaes
360168d3d1 namecoin: fix sha256 using fetchzip
(cherry picked from commit 0a9b784acc)
Originally from #11520.
2015-12-19 10:22:48 +01:00
Tobias Geerinckx-Rice
a1c74deffd liboauth: add nss3 path to liboauth.la
Fixes the following libgdata build error:
```
  CCLD     gdata/libgdata.la
/nix/store/5kdjp8200hazaydx0dmwn5qghqkyi3py-binutils-2.23.1/bin/ld: cannot find -lssl3
/nix/store/5kdjp8200hazaydx0dmwn5qghqkyi3py-binutils-2.23.1/bin/ld: cannot find -lsmime3
/nix/store/5kdjp8200hazaydx0dmwn5qghqkyi3py-binutils-2.23.1/bin/ld: cannot find -lnss3
/nix/store/5kdjp8200hazaydx0dmwn5qghqkyi3py-binutils-2.23.1/bin/ld: cannot find -lnssutil3
collect2: error: ld returned 1 exit status
```

(cherry picked from commit 996a0a9abf)
It stopped building even here on 15.09, perhaps after `nss` update.
2015-12-19 08:25:00 +01:00
Eelco Dolstra
80917d2473 Merge pull request #11808 from AveryGlitch/fix/auto-upgrade
autoUpgrade: added a 'dates' option, to allow you to switch when the …
2015-12-18 11:25:48 +01:00
Avery Glitch
aba90f5186 autoUpgrade: added a 'dates' option, to allow you to switch when the upgrade happens 2015-12-18 19:13:06 +11:00
Eric Sagnes
f77e3886c1 eventstore: fix source hash (close #11732)
(cherry picked from commit eab677ea21)
2015-12-18 09:12:40 +01:00
Vladimír Čunát
16c191a449 indilib: fix src URL; /cc #11782 2015-12-18 07:38:51 +01:00
Vincent Laporte
dc22ebe2b6 ocaml: add local copy of the ocamlbuild patch
(cherry picked from commit a3fa690fa2)
The URL was changing its contents; /cc #11782.
2015-12-18 07:23:12 +01:00
Eelco Dolstra
1303d4eee2 firefox: 42.0 -> 43.0
(cherry picked from commit 7651680615)
2015-12-17 19:39:36 +01:00
Eelco Dolstra
8dd481e5b2 nss: 3.20.1 -> 3.21
(cherry picked from commit 86bf3662df)
2015-12-17 19:39:26 +01:00
Eelco Dolstra
b76ff3cf15 nspr: 4.10.10 -> 4.11
(cherry picked from commit f8c6ced636)
2015-12-17 19:39:22 +01:00
Eelco Dolstra
7ab754920b firefox-esr: 38.4.0 -> 38.5.0
(cherry picked from commit d8d04c8cf3)
2015-12-17 19:39:17 +01:00
Peter Simons
cdf210d35c cabal2nix: update to version 20151217
(cherry picked from commit b376bda2a7e6698f0f8ae25e02f28aa5e3e2459e)
2015-12-17 14:42:36 +01:00
Nikolay Amiantov
db7e764d37 flashplayer: fix 32-bit version
(cherry picked from commit 8c1770769f)
2015-12-17 14:15:58 +01:00
Nikolay Amiantov
fc587614d4 flashplayer: cleanup, use archive as a source
Most work done by ericsagnes

(cherry picked from commit 26e738206c)
It will simplify picking security updates from master.
2015-12-17 09:44:06 +01:00
Echo Nolan
665922823e Remove Echo Nolan from maintainers
I'm not using Nix anymore.

(cherry picked from commit f01c56f109)
2015-12-17 09:43:29 +01:00
Vladimír Čunát
0dd23a622f libpng: security update
It should finally fix #11030 and CVE-2015-8126

(cherry picked from commit 04d993417f)
2015-12-17 08:57:00 +01:00
William A. Kennington III
faf57def9c nvidia: 352.55 -> 352.63
(cherry picked from commit 8d01a4a4e4)
2015-12-16 23:38:25 +01:00
Peter Simons
ffd10ac482 git-annex: use the full version by default
The 'gitAndTools.gitAnnex' attribute referred to a minimal build of git-annex
that lacked advanced features, like the Assistant. This commit switches the
attribute to the full version.

Fixes https://github.com/NixOS/nixpkgs/issues/11708.
2015-12-16 22:34:28 +01:00
Eelco Dolstra
b095728cae git: 2.5.2 -> 2.5.4
CVE-2015-7082.

Master is already at 2.6.3 but we don't want that on the stable
branch.
2015-12-16 15:47:05 +01:00
Robin Gloster
3ff662cf6c php56: 5.6.15 -> 5.6.16
(cherry picked from commit ef4f3e6ff4)
2015-12-16 15:24:39 +01:00
Robin Gloster
b25b9e92d8 php: 5.6.14 -> 5.6.15
(cherry picked from commit 0ceec8420c)
2015-12-16 15:24:27 +01:00
Eelco Dolstra
534458fd85 subversion: 1.8.14 -> 1.8.15
CVE-2015-5343.

e7ae72cfb1 in master.
2015-12-16 15:23:25 +01:00
Pascal Wittmann
3623cea1ab Merge pull request #11761 from lancelotsix/fix_slurm-llnl-14.11.5-dl-url
pkgs.slurm-llnl: fix download URL
2015-12-16 13:01:43 +01:00
Eelco Dolstra
0fbf96e188 copy-tarballs.pl: Fix --expr
(cherry picked from commit a6ca6bbed9)
2015-12-16 11:08:38 +01:00
Eelco Dolstra
8577444a76 Allow uploading multiple files
(cherry picked from commit 903803a1f3)
2015-12-16 11:08:33 +01:00
Eelco Dolstra
e8b52c4112 copy-tarballs.pl: Remove redundant check
(cherry picked from commit 8f5856ce63)
2015-12-16 11:08:10 +01:00
Eelco Dolstra
9d2e9e0612 copy-tarballs: Use an S3 bucket for tarballs.nixos.org
Tarballs.nixos.org is now stored in an S3 bucket rather than an EBS
volume. Redirects are used to simulate symlinks.

The function find-tarballs.nix now filters out fetchzip, fetchpatch
and the like.

(cherry picked from commit 567e002545)
2015-12-16 11:07:44 +01:00
Lancelot SIX
791d1f3dba pkgs.slurm-llnl: fix download URL 2015-12-16 08:14:06 +00:00
Michael Raskin
cf0904d656 flashplayer: 11.2.202.540 -> 11.2.202.554
(cherry picked from commit 0a64071932)
2015-12-14 16:22:10 +01:00
Svein Ove Aas
7b85b8a08f unifi:Update download location; the binaries moved
(cherry picked from commit 75dbf02d85)
2015-12-13 11:58:21 +01:00
Shea Levy
d326c9b732 Linux 4.3: 4.3 -> 4.3.2
(cherry picked from commit 18af0f88d0)
2015-12-12 08:46:43 -05:00
Robert Helgesson
f7006cd23b screen: patch CVE-2015-6806
Fixes a possible denial of service of the screen tool. Patch sourced
from upstream GIT repository.

(cherry picked from commit c4ab553c92)
2015-12-11 19:41:48 +01:00
Allan Espinosa
6ecfa25446 screen: fix utmp.c compile problem in darwin
Apply the patch specified in http://savannah.gnu.org/bugs/?45359

(cherry picked from commit 80ac72bbab)
2015-12-11 19:41:42 +01:00
Vladimír Čunát
d7031f1a24 blas: fix remains of hardcoded version
Thanks to @knedlsepp for pointing out
2b71fdbbc3 (commitcomment-14919659)

(cherry picked from commit ffb72182a6)
2015-12-11 10:26:56 +01:00
Eelco Dolstra
fb1377a14a Add option to link additional package outputs into system.path
This is necessary to get stuff like separate manpages, info files,
debug symbols, etc.

(cherry picked with resolved conflicts from commit 58e9440)
2015-12-10 18:38:14 +01:00
Eelco Dolstra
ac7e70a0c9 linux: 3.14.56 -> 3.14.58
(cherry picked from commit 54d6f1f683)
2015-12-10 16:33:44 +01:00
Eelco Dolstra
37595474de perf: Fix libbfd dependency
This fixes C++ symbol demangling.

(cherry picked from commit 789504dadf)
2015-12-10 16:15:31 +01:00
Eelco Dolstra
13aa85fe1d Add Fedora 23
(cherry picked from commit 75e41b0210)
2015-12-10 16:14:53 +01:00
Eelco Dolstra
79ef8606c5 Add Ubuntu 15.10
(cherry picked from commit e4eee41ad0)
2015-12-10 16:14:48 +01:00
Eelco Dolstra
9138888a97 nixUnstable: 1.11pre4273_71039be -> 1.11pre4334_7431932
(cherry picked from commit 2de76b2753)
2015-12-10 16:14:16 +01:00
Anthony Cowley
5f203492d2 Nix darwin use libsodium
(cherry picked from commit 7dbea7aa78)
2015-12-10 16:14:05 +01:00
Eelco Dolstra
1bbfd33c7b nixUnstable: Update to 1.11pre4273_71039be
(cherry picked from commit 58f9896a43)
2015-12-10 16:13:22 +01:00
Eelco Dolstra
6f717c7aa9 fetchurl: Always use tarballs.nixos.org
Otherwise, if the upstream mirror changes (rather than deletes) a
file, then tarballs.nixos.org won't be used even if it has a copy of
the original file, and so we'll get a hash mismatch.

(cherry picked from commit bb672805cd)
2015-12-10 16:12:05 +01:00
Eelco Dolstra
7b2291b1f3 Add option environment.enableDebugInfo
This makes the debug outputs of packages that have them available to
programs like gdb.

(cherry picked from commit d9d5c98c56)
2015-12-10 16:11:52 +01:00
Eelco Dolstra
e3cc3c9b16 Factor out "man" into a separate module and add "man" outputs to system.path
Fixes #10270.

(cherry picked from commit c20403631d)
2015-12-10 16:11:34 +01:00
Bjørn Forsman
1a86bf8aae nixos/redmine: improve assert message
Give the user more context.

(cherry picked from commit 2acf59efa4)
2015-12-08 22:53:59 +01:00
Herwig Hochleitner
b5d1d2eb43 dropbox-cli: 2015.02.12 -> 2015.10.28, fixes #11539 2015-12-08 02:15:25 +01:00
Herwig Hochleitner
5606d25a4c dropbox: 3.10.11 -> 3.12.4 2015-12-08 02:14:10 +01:00
Aristid Breitkreuz
a5a1f4a441 update postgresql binaries
(cherry picked from commit 054a5ee9d9)
2015-12-07 21:07:50 +01:00
Bart Brouns
5df488af97 yoshimi: 1.3.6 -> 1.3.7.1
(cherry picked from commit b94a2db590)
2015-12-06 15:16:29 +01:00
codsl
95af80c585 openssl: security update 1.0.2d -> 1.0.2e
Fixes CVE-2015-3193, CVE-2015-3194, CVE-2015-3195 and CVE-2015-3196.
Close #11469.

(cherry picked from commit 51a5f49d70)
2015-12-05 11:37:56 +01:00
codsl
ca9f79dec2 openssl: security update 1.0.1p -> 1.0.1q
Fixes CVE-2015-3194 and CVE-2015-3195.
Taken from #11469.

(cherry picked from commit fb3b9f5f8b)
2015-12-05 11:28:38 +01:00
Peter Simons
db51a5841b Update list of gnupg.org mirror sites.
The list we had before contained a lot of junk, i.e. sites that were no
longer online or no longer in sync. The new list of sites comes from
https://gnupg.org/download/index.html.

(cherry picked from commit 65f3932f6e)
2015-12-05 08:38:19 +01:00
Maciek Starzyk
ba0d05c76c obnam: 1.18.1 -> 1.18.2 2015-12-04 10:52:43 +01:00
Maciek Starzyk
328065b53e obnam: 1.17 -> 1.18.1 2015-12-04 10:52:43 +01:00
Maciek Starzyk
a97cc77aa9 obnam: 1.16 -> 1.17 2015-12-04 10:52:42 +01:00
Maciek Starzyk
818740034b obnam: 1.15 -> 1.16 2015-12-04 10:52:42 +01:00
Arseniy Seroka
88765ae8da Merge pull request #11439 from whiteley/chef-dk-0.10.0
chefdk: 0.4.0 -> 0.10.0
2015-12-03 23:56:23 +03:00
Matt Whiteley
991dca5dea chefdk: 0.4.0 -> 0.10.0 2015-12-03 11:19:28 -08:00
Thomas Mader
e5c344b7ef dmd: add gcc runtime dependency because dmd uses the linker of gcc on linux.
From #11327.

(cherry picked from commit ef17efa99b)
2015-12-03 16:33:27 +01:00
Rob Vermaas
18f1e6a194 Fix hash for oauth-0.9.12 2015-12-01 13:53:31 +00:00
Rob Vermaas
fe8fd63e39 Add plotly 1.9.1 python package 2015-12-01 08:18:34 +00:00
Vladimír Čunát
54196e54a8 fish: use absolute path to clear when pressing ^L
It was unable to find `clear` for me.
/cc maintainer @ocharles.

(cherry picked from commit 10135e6f41)
2015-11-29 12:02:11 +01:00
Shea Levy
15dfd9b299 Merge branch 'idris-packages'
(cherry picked from commit f7c2cd3347)
2015-11-27 13:50:11 -05:00
Matthias C. M. Troffaes
16d2eaf14e wolfssl: init at 3.7.0
Picked from #11287.

(cherry picked from commit b5e06b04a7)
2015-11-27 11:01:21 +01:00
Eelco Dolstra
e354ff9a24 Revert "cherry-pick lib.sandbox into master"
This reverts commit 473d8ca3fa. Let's
not put controversial features like this in the release branch.
2015-11-25 14:16:50 +01:00
Pascal Wittmann
d1df177f43 Merge pull request #11255 from vandenoever/davmail
Upgrade Davmail to 4.7.0.
2015-11-25 12:43:16 +01:00
Jos van den Oever
68499fd794 davmail: 4.6.1 -> 4.7.0
Upgrade message: http://sourceforge.net/p/davmail/mailman/message/34597887/

This new release contains a lot of fixes from user feedback, a new
-notray command line
option to force window mode and avoid tricky tray icon issues on Linux
and native
smartcard support on Windows.

Caldav:
- Caldav: Map additional priority levels
- Caldav: fix missing LAST-MODIFIED in events

Enhancements:
- Improved tray icon with alpha blend
- Fix imports
- Prepare mutual SSL authentication between client and DavMail
implementation
- Implement -notray command line option as a workaround for broken SWT
and Unity issues
- Change warning messages to debug in close method
- Improve client certificate dialog, build description from certificate
- Exclude client certificates not issued by server provided issuers list

IMAP:
- IMAP: Additional translations and doc for new IMAP setting
- IMAP: Merge patch by Mauro Cicognini, add a new setting to always send
approximate message in RFC822.SIZE to avoid downloading full message body
- IMAP: fix regression with quotes inside folder names
- IMAP: handle quotes inside folder names correctly

OSX:
- OSX link local address on loopback interface
- Exclude arguments starting with dash to avoid patch 38 regression on OSX

Documentation:
- Doc: Document -notray option
- Switch to OpenHub instead of Ohloh

EWS:
- EWS: prepare distribution list implementation
- Fix #254 davmail.exchange.ews.EWSException:
ErrorIncorrectUpdatePropertyCount

Linux:
- Refresh davmail.spec, make RPM noarch
- Handle missing or broken SWT library

Windows:
- Windows: Make MSCAPI keystore type available in Settings for Windows
native smartcard support
- Instantiate MSCAPI explicitly to access Windows Smartcards
- Enable native Windows SmartCard access through MSCAPI (no PKCS11
config required)

Carddav:
- Carddav: Test case for comma in ADR field
- Carddav: Do not replace comma on ADR field, see support request 255
- Caldav: Ignore missing END:VCALENDAR line on modified occurrences
- CardDav: Add empty property test case
2015-11-25 12:34:30 +01:00
Peter Simons
c6b5f5bdb0 r-modules: update list of broken packages
(cherry picked from commit de02462a36)
2015-11-25 11:55:26 +01:00
Nikolay Amiantov
2d08d7e649 r-modules: regenerate CRAN, BIOC and IRKernel
(cherry picked from commit bd4297dc4d)
2015-11-25 11:55:26 +01:00
Nikolay Amiantov
28eda4e24e r-modules: use HTTPS, allow passing args from generated set, use MRAN
(cherry picked from commit 287f99bada)
2015-11-25 11:55:26 +01:00
Peter Simons
5edc1de64c pkgs/development/haskell-modules: simplify use of standard fix' and extends functions
My original version of 'extend' had its arguments flipped compared to the one
we now have in stdenv.lib.

(cherry picked from commit 69add60b5c)
2015-11-25 11:37:45 +01:00
Peter Simons
41f7d34703 lib/trivial.nix: improve spelling
(cherry picked from commit 89a5717c7a)
2015-11-25 11:37:07 +01:00
Peter Simons
6ef61fd5f9 lib: document fix and add fix', extends functions
These functions used to live in pkgs/development/haskell-modules/default.nix,
but they are generic, really, and should be easily accessible to everyone.

(cherry picked from commit 405fda497a)
2015-11-25 11:37:06 +01:00
Peter Simons
492a99477f r-tikzDevice: update to new texlive
(cherry picked from commit f46b1a34989ef4b4e29fdccb293e5fc33cc1b7ce)
2015-11-24 17:26:16 +01:00
Peter Simons
6c9911ddee pkgs/top-level/release.nix: enable building the R package set
The R people don't bother providing stable URLs for their package
releases. Released versions are edited or flat-out disappear at will,
which causes us a bit of trouble, like in [1]. Hopefully, enabling R
builds on Hydra will mitigate those problems by caching the release
tarballs.

[1] https://github.com/NixOS/nixpkgs/issues/11230
2015-11-24 10:14:16 +01:00
Peter Simons
525a5f1690 Synchronize state of R with 'master'.
* Update R from version 3.2.1 to 3.2.2.
 * Update the CRAN and BIOC package sets.
 * Add the IKERNEL package set.

Closes issue https://github.com/NixOS/nixpkgs/issues/11230.
2015-11-24 10:10:25 +01:00
Vladimír Čunát
2a31d7b9c7 pbzip2: fix a problem due to my bad refactoring
(cherry picked from commit 60e5e837bb)
2015-11-24 10:08:33 +01:00
Vladimír Čunát
671cb41c16 pbzip2: maintenance updates 1.1.9 -> 1.1.12
(cherry picked from commit bf58d24fe6)
2015-11-24 10:05:42 +01:00
Mitch Tishmack
954b36d397 pbzip2: g++ -> c++ to fix on darwin (close #11212)
vcunat made it apply unconditionally, as it works OK on Linux at least.
/cc maintainer @viric.

(cherry picked from commit 642ee7a77f)
2015-11-24 10:05:34 +01:00
Karn Kallio
3f05f9df74 xulrunner: fix path to configure script 2015-11-24 08:52:18 +01:00
Jan Malakhovski
a82e6fd2ab ranger: fix paths to w3m and share
Picked from #11222.

(cherry picked from commit b13c7186d6)
2015-11-23 22:24:34 +01:00
Vladimír Čunát
cfee4aef2c putty: security update 0.65 -> 0.66
It's claimed to fix CVE-2015-5309.

(cherry picked from commit d748ac851c)
2015-11-21 20:36:07 +01:00
Shea Levy
ecc6bc333c nix-exec: 4.1.2 -> 4.1.3 bugfix release
(cherry picked from commit df9f0d7060)
2015-11-20 09:16:44 -05:00
Jude Taylor
473d8ca3fa cherry-pick lib.sandbox into master
(cherry picked from commit 7039b24cdc)
2015-11-19 17:43:38 -05:00
Pascal Wittmann
d0f307e785 calibre: fix url 2015-11-18 16:19:50 +01:00
Lluís Batlle i Rossell
8a18bc8722 Updating freecad to 0.15 2015-11-18 15:02:02 +01:00
Carter Charbonneau
ef6bd92068 retroshare: 0.6-svn-7445 -> 0.6-git-fabc3a3 (close #9542)
(cherry picked from commit 170177ad26)
2015-11-18 15:02:02 +01:00
Domen Kožar
03f9477654 Merge pull request #11117 from bendlas/update-dropbox-stable
dropbox: 3.10.9 -> 3.10.11 (nixos stable)
2015-11-18 10:37:19 +01:00
Herwig Hochleitner
4b0c3ca604 dropbox: 3.10.9 -> 3.10.11 2015-11-18 09:47:56 +01:00
Peter Simons
7e5e0b3f80 Merge pull request #10941 from peti/update-haskell-packages-in-release-branch
hackage-packages.nix: update Haskell package set
2015-11-17 16:53:31 +01:00
Vladimír Čunát
43f23f771e libpng12: security update 1.2.53 -> 1.2.54
Part of fix for #11030.
Also refactor meta.

(cherry picked from commit 31aa281919)
2015-11-17 12:57:53 +01:00
Robbin C
7bf4567613 Change argument --port to --listen in nix-serve.nix
(cherry picked from commit c75d1e761a)
2015-11-16 11:48:45 +01:00
Matthew O'Gorman
facb3d50d0 xscreensaver: security update 5.33 -> 5.34 (close #10845)
Fixes a crash when hot-swapping monitors while locked.

(cherry picked from commit 7df0fefcbc)
2015-11-16 08:38:31 +01:00
Vladimír Čunát
018c272a2a libpng: security and maintenance 1.6.18 -> 1.6.19
Fixes #11030, CVE-2015-{7981,8126}.

(cherry picked from commit cc86857601)
2015-11-16 08:14:05 +01:00
Lluís Batlle i Rossell
a890f8e696 Making iodine client find ifconfig. 2015-11-16 00:07:38 +01:00
Domen Kožar
2276be4b66 Merge pull request #11021 from dasjoe/zfs-0.6.5.3
spl+zfs: cherry-pick 0.6.5.3
2015-11-15 10:41:59 +01:00
William A. Kennington III
b784505b1b spl: 0.6.5.2 -> 0.6.5.3 2015-11-14 16:19:00 +01:00
Ricardo M. Correia
dbfd6831ed spl: 0.6.5 -> 0.6.5.2 2015-11-14 16:18:43 +01:00
William A. Kennington III
3d17f9abe2 zfs: 0.6.5.2 -> 0.6.5.3 2015-11-14 16:18:21 +01:00
Ricardo M. Correia
5e5d17c4f7 zfs: 0.6.5.1 -> 0.6.5.2 2015-11-14 16:18:11 +01:00
Eelco Dolstra
4d9166084d Remove zfs-git and spl-git
See https://github.com/NixOS/nixpkgs/pull/10042#commitcomment-13422343.
2015-11-14 16:17:57 +01:00
Guillaume Maudoux
5f79c8dacf lighttpd: fix mod_rewrite appearing twice
(cherry picked from commit 60ba5ad479)
2015-11-14 15:53:11 +01:00
Bjørn Forsman
068a7df8e6 jenkins: 1.637 -> 1.638 (important security fixes)
I fat fingered the previous update, *this* is the real important
security updates:

https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2015-11-11
(cherry picked from commit 30313d5c6e)
2015-11-12 13:40:54 +01:00
Bjørn Forsman
d754c3c4ff jenkins: 1.636 -> 1.637 (security fixes)
https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2015-11-11
(cherry picked from commit 7a1c4ab324)
2015-11-12 13:35:36 +01:00
Nikolay Amiantov
6202090f31 fhs-env: symlink /usr/lib to libs for the main architecture 2015-11-12 03:33:42 +03:00
Thomas Tuegel
45128deb40 Merge pull request #10918 from bjornfor/backport-qt55-improvements
Backport Qt 5.5 improvements to release-15.09
2015-11-10 09:37:36 -06:00
Peter Simons
d203574d06 hackage-packages.nix: update Haskell package set
This update was generated by hackage2nix v20150922-36-ge0ee7ef using the following inputs:

  - Nixpkgs: 29fff27a55
  - Hackage: fccc42cccb
  - LTS Haskell: 1ae555e197
  - Stackage Nightly: ec7b421c66
2015-11-10 16:26:24 +01:00
Bjørn Forsman
59ad6a4dfe qtcreator: add qtdeclarative to QML2_IMPORT_PATH
When building with Qt 5.4 this is not a problem, but with Qt 5.5 (tested
locally), it is clear that this dependency is missing:

$ ./result/bin/qtcreator
file:///nix/store/zmpf6ydrjdydd85wh6splpywv6aj4782-qtcreator-3.4.2/share/qtcreator/welcomescreen/welcomescreen.qml:31:1:
module "QtQuick" is not installed
     import QtQuick 2.1
     ^

With Qt 5.4 something else is pulling in the qtdeclarative dependency,
it can be seen in the qtcreator wrapper script.

Note to self: "import QtQuick" != qtquickcontrols. QtQuick is
apparently located in the qtdeclarative module.

(cherry picked from commit ff4d8513b4)
2015-11-09 21:02:13 +01:00
Bjørn Forsman
c44a129bb9 qt55: fix qtmultimedia gstreamer support
Without this, configure will say:

  Checking for openal... no
  /tmp/nix-build-qtmultimedia-5.5.0.drv-0/qtmultimedia-opensource-src-5.5.0/qtmultimedia.pro:28:
  Variable GST_VERSION is not defined.
  Checking for resourcepolicy... no

And there may be application runtime errors like

  defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.camera"

After this fix, configure will say:

  Checking for openal... no
  Checking for gstreamer... yes
  Checking for gstreamer_photography... no
  Checking for gstreamer_encodingprofiles... yes
  Checking for gstreamer_appsrc... yes
  Checking for linux_v4l... yes
  Checking for resourcepolicy... no

And the above runtime error will not appear.

This fix is similar to 449b6028 ("qt5.multimedia: fix gstreamer
support."), except with Qt 5.5 we also need to set GST_VERSION.

(cherry picked from commit 2cec70ce6c)
2015-11-09 13:32:59 +01:00
Thomas Tuegel
46217b9b01 makeQtWrapper: wrap XDG directories
(cherry picked from commit 24babaad9a)
2015-11-09 13:32:58 +01:00
Thomas Tuegel
287a4ce71f qtbase: copy qmake to temp dir
Fixes #10273.

(cherry picked from commit dcd70c54aa)
2015-11-09 13:32:58 +01:00
Thomas Tuegel
0fd7664a41 qtbase: propagate runtime dependencies
This is done so that makeQtWrapper works correctly.

(cherry picked from commit 361b1165ef)
2015-11-09 13:32:58 +01:00
Thomas Tuegel
aa7b051c41 kdoctools: set XDG_DATA_DIRS in setupHook
(cherry picked from commit 9fa17aa293)

Resolve conflicts in kde-frameworks by removing the change (that
package/version doesn't exist in release-15.09).
2015-11-09 13:32:40 +01:00
Thomas Tuegel
22471e4979 makeQtWrapper: always wrap impurely
(cherry picked from commit 5a2c45427b)

Resolve plasma-5.4/plasma-workspace conflict by dropping the change
(doesn't exist in release-15.09 branch).
2015-11-09 13:31:18 +01:00
Thomas Tuegel
f0c0b7a942 qt55: set QML import paths from NIX_PROFILES
(cherry picked from commit fb375f1a2e)
2015-11-09 13:15:43 +01:00
Thomas Tuegel
e1046843ce qt55: set Qt Quick import paths from NIX_PROFILES
(cherry picked from commit b1f904f69a)
2015-11-09 13:15:35 +01:00
Thomas Tuegel
5371ddd5ea qt55: set library paths from NIX_PROFILES
(cherry picked from commit a3855ef9ae)
2015-11-09 13:15:20 +01:00
Thomas Tuegel
88ab75fe39 separate makeQtWrapper from qtbase setup-hook
(cherry picked from commit d57e50d840)

I resolved some trivial conflicts: drop changes to packages that have
been switched to qt55 in master, but not in release-15.09.
2015-11-09 13:13:11 +01:00
Thomas Tuegel
6736fbe506 qtmultimedia: build with gstreamer-1.0
Fixes #10289.

(cherry picked from commit 89d31daa8f)
2015-11-09 13:11:38 +01:00
Thomas Tuegel
c805a0c36f qt55.qtbase: add makeQtWrapper
(cherry picked from commit a122ca8ba3)
2015-11-09 13:11:28 +01:00
Thomas Tuegel
3aed93ee4d qtbase: remove redundant directory checks
addToSearchPath already checks if the directory exists before adding it
to the path; it's not necessary to check it again.

(cherry picked from commit ebb9c07168)
2015-11-09 13:11:13 +01:00
Thomas Tuegel
22da1ba93f qtbase: include current package in runtime paths
The runtime paths QT_PLUGIN_PATH, QML_IMPORT_PATH, QML2_IMPORT_PATH, and
XDG_DATA_DIRS did not include the appropriate paths from the current
package being built because addToSearchPath does not add directories
which don't exist.

(cherry picked from commit b44923561b)
2015-11-09 13:10:55 +01:00
Bjørn Forsman
5d550918e5 qt55: apply mkspecs-libgl.patch from qt54
(cherry picked from commit 3dec100104)
2015-11-09 13:10:32 +01:00
Thomas Tuegel
1944d28961 qt5Full: only include derivations
(cherry picked from commit e5b124e492)
2015-11-09 13:08:01 +01:00
Peter Simons
ef7a81396b lambdabot: mark build as broken
custom-config.patch not longer applies to recent versions
2015-11-08 18:28:08 +01:00
Raymond Gauthier
57816df113 mousepad: fix the Using the 'memory' GSettings backend issue.
Close #10867.
It means that settings couldn't be saved. The issue appeared
since upgrade to nixos 15.09 and fall as part of #4415.

Tested on nixos.
 -  No longer has a stderr when running the application.
 -  Settings are effectively saved.

(cherry picked from commit 34eb56e16b)
2015-11-07 18:42:28 +01:00
William A. Kennington III
b77502cea2 linux-4.3: Fix build failure.
The package has been cherry-picked into the 15.09 release at 9bae8f6,
unfortunately without the fixes that were introduced by the upgrades in
linux-testing.

As it is now the current "_latest" in 15.09, we really don't want the
build to fail.

This is a partial cherry-pick from 9fbbbd5 because that commit was
updating linux-testing as well.

Tested with the latestKernel.login VM test.

Signed-off-by: William A. Kennington III <william@wkennington.com>
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-11-06 20:32:48 +01:00
taku0
f6b3ca11ab oraclejdk: 8u60 -> 8u65, 8u66
(cherry picked from commit 3f51f4c463)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-11-06 16:21:50 +01:00
aszlig
9125e02a3b mariadb: 10.0.21 -> 10.0.22
Fixes the following security vulnerabilities:

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4802
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4807
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4815
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4826
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4830
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4836
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4858
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4861
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4870
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4913
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4792

Release notes can be found here:

https://mariadb.com/kb/en/mariadb/mariadb-10022-release-notes/

Detailled changelog:

https://mariadb.com/kb/en/mariadb/mariadb-10022-changelog/

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 9846e69ae2)
2015-11-06 16:13:30 +01:00
William A. Kennington III
f7ec9e9dff nss: 3.20 -> 3.20.1
(cherry picked from commit e8cbf833ef)
2015-11-05 18:29:23 -08:00
William A. Kennington III
4327130d12 nspr: 4.10.9 -> 4.10.10
(cherry picked from commit d80f4c49b0)
2015-11-05 18:29:13 -08:00
William A. Kennington III
2f6e7c15e2 firefox: Updates
- 41.0.2 -> 42.0
  - 38.3.0 -> 38.4.0

(cherry picked from commit 588a950df9)
2015-11-05 07:19:02 -08:00
Vladimír Čunát
ab42fb6249 goPackages: include buildFromGithub to fix #10805
(cherry picked from commit fa7d863af0)
2015-11-05 16:08:42 +01:00
Nikolay Amiantov
16c0f4c14b nixos/tlp: workaround early build trigger 2015-11-05 16:25:39 +03:00
Bjørn Forsman
050bdc3534 nixos: add services.jenkins.jobBuilder option
This option allows to define (declarative) Jenkins jobs, using Jenkins
Job Builder (JJB) as backend.

Example:

  services.jenkins = {
    enable = true;
    jobBuilder = {
      enable = true;
      yamlJobs = ''
        - job:
            name: jenkins-job-test
            builders:
              - shell: echo 'Hello world!'
      '';
    };
  };

Jobs can be defined using YAML, JSON and Nix.

Note that it really is declarative configuration; if you remove a
previously defined job, the module will remove the jobdir under
$JENKINS_HOME.

Jobs managed through the Jenkins WebUI (or by other means) are not
touched by this module.

Changes v1 -> v2:
* add nixJobs
* let jsonJobs take a list of strings (allows merge)
* 4 space indent in shell code

(cherry picked from commit 27f41d8c0a)
2015-11-05 09:05:28 +01:00
Brian McKenna
e0b5ed849d chromium: include WideVine patch to get NetFlix
Close #10444, fixes #8749.
For some reason it's more involved than just setting gyp configuration,
we also have to set some definitions in widevine_cdm_version.h according
to the comments left in the file. Arch Linux does this already and so we
should probably just use the patch they created while getting Netflix to
work:

https://code.google.com/p/chromium/issues/detail?id=429452#c16
(cherry picked from commit 492ccdd52d)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-11-05 09:01:58 +01:00
Pascal Wittmann
86bea14262 audiofile: fix CVE-2015-7747
closes #10678

(cherry picked from commit 6aea1c55c0669540cffd5472fdf7c4b607d4c324 by
falsifian)
2015-11-04 18:56:51 -08:00
Lluís Batlle i Rossell
5e432c047e Updating homebank to 5.0.6.
The old 5.0.0 is not available anymore.

I use the gtk33 hook to get proper icons, but still some icons are
broken (open, save, ...)
2015-11-04 22:22:23 +01:00
Lluís Batlle i Rossell
819f8b70d6 Fixing the raspberrypi kernel to fit both pi1 and pi2
I added a patch that makes the pi2 kernel not add any localversion.
2015-11-04 15:32:48 +01:00
aszlig
d621ebec11 python-hetzner: Update to bugfix version 0.7.4.
Fixes pinned CA root certificate and probing for system CA bundle.

Closes NixOS/nixops#354.

I'm using fetchFromGitHub now because it's use of fetchzip is more
stable for autogenerated tarballs from GitHub.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 1d1cf4845f)
2015-11-04 14:05:03 +01:00
Eelco Dolstra
e55c249822 linux: Update to 3.18.24
(cherry picked from commit 827adff712)
2015-11-04 13:24:37 +01:00
William A. Kennington III
234766be0c kernel: 3.18.22 -> 3.18.23
(cherry picked from commit ea49c910a5)
2015-11-04 13:24:33 +01:00
William A. Kennington III
9bae8f6ccc linux: Add 4.3
(cherry picked from commit 4b7f374b7d)
2015-11-04 07:14:50 -05:00
Lluís Batlle i Rossell
916c06783b Revert "Fixing modVersion path in Pi kernel."
This reverts commit 3e1eae1187.

The pi2 kernel adds "-v7" to LOCALVERSION. We have to trim this out, and make
it like the pi1. Or make it dependant on the pi1/pi2 platform.
2015-11-04 12:43:49 +01:00
Lluís Batlle i Rossell
56ff659e5d Fixing the logic in coreutils to avoid stdenv rebuild.
It was using 'null' instead of '[]' in case of no patches. So I change
it to provide 'null'.
2015-11-04 12:41:35 +01:00
Lluís Batlle i Rossell
1b36f489b6 coreutils 8.24 have a bug exhibited in a test in the Pi2. Patching.
I pick the patch from upstream, and I apply only for ARM to avoid rebuilding
stdenv.
2015-11-04 12:04:20 +01:00
Lluís Batlle i Rossell
3e1eae1187 Fixing modVersion path in Pi kernel. 2015-11-04 12:04:19 +01:00
Peter Simons
7f7d9eaadb postfix: don't create a symlink inside of /var/spool/mail if /var/mail exists already
(cherry picked from commit 2bb705da15)
2015-11-02 14:34:07 +01:00
Bjørn Forsman
55784a0e03 jenkins: 1.633 -> 1.636
(cherry picked from commit eeced1bc51)
2015-11-02 10:40:29 +01:00
Utku Demir
b264d4d60b jenkins: 1.631 -> 1.633
(cherry picked from commit 57ad847982)
2015-11-02 10:40:22 +01:00
Bjørn Forsman
c2ca3044e6 nixos/jenkins: force .war (re)extraction at start-up
Or else we might run stale Jenkins.

(cherry picked from commit f25b36df3c)
2015-11-02 10:40:14 +01:00
Domen Kožar
05f1980eb0 unzip: CVE-2015-7696, CVE-2015-7697
(cherry picked from commit aff3a23d67)
2015-11-01 20:05:43 -08:00
William A. Kennington III
ca8f15994b kernel: 4.1.7 -> 4.1.12, /cc #10607
(cherry picked from commit 658d7b285b)
2015-10-31 22:48:14 +01:00
Domen Kožar
1f86c9d4c4 Merge pull request #10730 from msteen/tilda
tilda: 1.2.2 -> 1.2.4
2015-10-31 22:12:23 +01:00
Karn Kallio
d3cec7d2d0 symbola: fix zip hash and adjust documentation installation
Close #10740.
(cherry picked from commit ff742d5475)
2015-10-31 09:18:07 +01:00
Matthijs Steen
94ac7e8cb5 tilda: 1.2.2 -> 1.2.4 2015-10-30 22:12:09 +01:00
William A. Kennington III
22e313f37f kernel: 4.2.3 -> 4.2.5
(cherry picked from commit 221a970e82)
2015-10-30 13:34:52 -04:00
Shea Levy
a7138fd761 Really disable the firmware loader user helper fallback
(cherry picked from commit 3c14c32975)
2015-10-30 13:31:58 -04:00
Shea Levy
a43ede7a82 Revert unnecessary rebuild of systemd 2015-10-30 11:03:41 -04:00
Eelco Dolstra
0135f255a2 Revert required Nix version to 1.8
1.10 isn't actually needed.
2015-10-30 15:32:10 +01:00
Shea Levy
a524b007c3 Remove firmware loader fallback.
Systemd dropped support in 207 (would be nice if configure failed with a bad flag),
so all this does is add an annoying delay if firmware can't be found by the kernel

(cherry picked from commit a7157fa2f0)
2015-10-30 10:30:51 -04:00
William A. Kennington III
0dfeffdc05 linuxFirmware: 2015-09-07 -> 2015-10-18
(cherry picked from commit d03661b606)
2015-10-30 09:55:49 -04:00
William A. Kennington III
3f40ac94c1 kernel: 3.14.54 -> 3.14.56
(cherry picked from commit 850fff4448)
2015-10-30 11:09:07 +01:00
Eelco Dolstra
b9cd5e6082 nvidia-x11: Update to 352.55
(cherry picked from commit db19779965)
2015-10-30 11:08:45 +01:00
Domen Kožar
67d2972645 atom: 1.0.4 -> 1.1.0
(cherry picked from commit a862dd2ad2)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-10-30 09:52:50 +01:00
Thomas Tuegel
4053e6f6f6 Merge pull request #10698 from bendlas/update-dropbox-stable
dropbox: 3.8.9 -> 3.10.9 (release-15.09)
2015-10-29 16:42:42 -05:00
Herwig Hochleitner
7df7d75730 dropbox: 3.8.9 -> 3.10.9 2015-10-29 16:42:50 +01:00
Lluís Batlle i Rossell
4a830de032 Bringing back eo symbols for xkb
I port the patch for esperanto symbols removed in
1be2acd131 to the current
xkeyboardconfig.
2015-10-29 13:29:20 +01:00
Domen Kožar
551dad3ffd nm-openvpn: add user/group, closes #10689 2015-10-29 09:58:38 +01:00
Domen Kožar
76d7932f39 pythonPackages.beaker: 1.6.4 -> 1.7.0 (CVE-2012-3458)
(cherry picked from commit c3a506943c)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-10-28 11:56:08 +01:00
Domen Kožar
bc73b34d1c pythonPackages.reviewboard: 1.6.16 -> 1.6.22 (CVE-2013-4795)
(cherry picked from commit 4c026eee39)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-10-28 11:56:08 +01:00
Domen Kožar
643fc4b254 pythonPackages.suds: apply patch CVE-2013-2217
(cherry picked from commit d60718d57a)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-10-28 11:56:08 +01:00
Eelco Dolstra
272675ab90 linux: Fix i686 build
(cherry picked from commit d2918797bb)
2015-10-28 11:10:28 +01:00
aszlig
71ba2cdc0d vmTools.commonDebPackages: Add "mawk".
While debugging an issue with running NixOps tests, I found out that the
output from debClosureGenerator is not deterministic.

The reason behind this is the way how Provides and Replaces fields are
handled. I haven't yet found out what's the exact issue, but so far
packages "Provides" are more or less picked at random.

So, running the NixOps Hetzner tests we get either mawk, original-awk or
gawk altering on every invocation.

While for the test it isn't poisionous whether wi have mawk or gawk,
having original-awk certainly is, because live-build only works with
mawk or gawk.

The best solution would obviously be to make debClosureGenerator
deterministic, but in the case of "Provides: awk", we can safely pick
mawk by default, because the latter has a "Priority: required" in its
package description.

This also has the advantage that we can safely cherry-pick this to
release-15.09 because it's very unlikely that we'll break the
debClosureGenerator by adding a dependency to commonDebPackages.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 82d88b5bcb)
2015-10-26 20:57:39 +01:00
Eelco Dolstra
7270bd05c0 linux: Support x2APIC
Without this, certain servers with lots of CPU cores would show only
one core.

(cherry picked from commit 52c9e4415b)
2015-10-26 16:22:47 +01:00
Domen Kožar
628761169c nova-image: use make-disk-image.nix
(cherry picked from commit f1508b3a23)
2015-10-26 16:20:40 +01:00
Domen Kožar
8c44b4542d add sslmate: easy to buy, deploy, and manage your SSL certs
(cherry picked from commit 8f977608f4)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-10-26 12:58:15 +01:00
Domen Kožar
350ffdcc84 kde: add glib include paths to NIX_CFLAGS_COMPILE 2015-10-25 20:01:07 +01:00
aszlig
b56f67dcaf nixos/postgresql: Fix execution of initialScript.
Regression introduced by b21fd5d066.

The initialScript is only executed whenever there is a .first-startup in
the dataDir, so silently dropping the file essentially breaks
initialScript functionality.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 60d407b209)
2015-10-25 16:06:36 +01:00
Domen Kožar
283eae85aa kde4.kde_runtime: depend on glib due to networkmanager
(cherry picked from commit 87b4bdfa24)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-10-25 13:11:49 +01:00
Robin Gloster
8ec9b797cc pythonPackages.geventhttpclient: 1.1.0 -> 1.2.0
This fixes a potential security vulnerability of it hard-coding SSLv3
https://github.com/gwik/geventhttpclient/issues/55

Affects dulwich, therefor mercurial, rabbitvcs, hg-git, klaus

(cherry picked from commit 91b3960664)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-10-25 13:11:15 +01:00
Lengyel Balázs
45921e6cb9 network-manager 1.0.2 -> 1.0.6
Updated everything except network-manager-openconnect, as there is no newer version
2015-10-25 13:11:15 +01:00
Sander van der Burg
e4d00fea74 dysnomia: bump to version 0.4.1
(cherry picked from commit 644dd145c9)
2015-10-24 18:24:43 +00:00
Vladimír Čunát
e641e69cb3 flashplayer: update 11.2.202.535 -> 11.2.202.540
Tested by @wedens.

(cherry picked from commit 6d31e9b81d)
2015-10-24 13:33:37 +02:00
Ricardo M. Correia
f7e99596ad flashplayer: 11.2.202.521 -> 11.2.202.535, fixes #10571
(cherry picked from commit 18cad45480)
2015-10-24 12:20:02 +02:00
Domen Kožar
4c2bbb248c networkmanager: don't check if subject is active (false in my X session) 2015-10-23 20:15:56 +02:00
Bjørn Forsman
2e089e6b7c build-fhs-chrootenv: add /etc/mtab -> /proc/mounts symlink
Needed to be able to run some programs (e.g. tune2fs) in the chroot.

AFAIK, /etc/mtab is deprecated, but programs still use it.

(cherry picked from commit ad49db64da)
2015-10-23 17:56:53 +02:00
Nikolay Amiantov
f2f7d1e941 buildFHSEnv: create /etc/profile with writeText
This should avoid accidential expansion of variables, i.e. in
"export PATH=/some/path:$PATH"
$PATH would have been expanded in the environment builder!

(cherry picked from commit da38314be6)
2015-10-23 17:56:53 +02:00
Nikolay Amiantov
27e8c4fdd3 chroot-env: simplify, clean directories structure
(cherry picked from commit ab730370ba)
2015-10-23 17:56:53 +02:00
Nikolay Amiantov
dfbee8a073 build-fhs-{chroot,user}env: document new extra bind mounts option
(cherry picked from commit fa53fbe086)
2015-10-23 17:56:53 +02:00
Nikolay Amiantov
682b14a11b build-fhs-userenv: fix extraBindMounts
(cherry picked from commit 46de04489b)
2015-10-23 17:56:52 +02:00
Nikolay Amiantov
8d642759ad build-fhs-userenv: add extraBindMounts support
(cherry picked from commit 5897433b31)
2015-10-23 17:56:52 +02:00
Arseniy Seroka
d676196a11 Merge pull request #10552 from msteen/vino
vino: updated the dependencies
2015-10-23 02:48:16 +03:00
Eelco Dolstra
9c65751443 Prevent future store path references in the manual
(cherry picked from commit 5b8dae8ef3)
2015-10-23 01:21:33 +02:00
Eelco Dolstra
fe770728c5 Manual: Remove store path references
(cherry picked from commit 89e983786a)
2015-10-23 01:21:27 +02:00
Matthijs Steen
ee88f76483 vino: updated the dependencies
The libXtst dependency was missing, which was required to enable remote control. The other dependencies have been updated as well to reflect the dependencies stated at:
https://wiki.gnome.org/Projects/Vino
https://git.gnome.org/browse/vino/tree/configure.ac
2015-10-22 23:03:55 +02:00
Vladimír Čunát
98e901488d blas: fix by updating, fixes #10420, close #10545
The new URL also looks more stable.

(cherry picked from commit 2b71fdbbc3)
2015-10-22 20:13:50 +02:00
Domen Kožar
af3774a319 Merge pull request #10486 from dasjoe/asterisk
release-15.09 asterisk: fix service installation and upgrade to 13.6.0
2015-10-22 14:23:44 +02:00
aszlig
8c631197ea thttpd: Fix SHA256 of the upstream tarball.
It's a bit unfortunate to see this, but while looking online to download
the old version of the file I found that MacPorts and FreeBSD had the
same issue:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199562

I've checked the diff as well and found no big functional changes,
except a function rename, copyright updates and changed syslog
priorities:

https://bz-attachments.freebsd.org/attachment.cgi?id=155775

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit f15420b0fe)
2015-10-21 17:16:48 +02:00
aszlig
f6075050e8 nixpart0: Don't search for libudev using SO major.
The SO major is going to change in the upcoming update of the Hetzner
rescue system, which will cause NixOps to break because it's statically
using the SO major 0 while the new rescue system will have the major
number 1.

I'm still keeping the udevSoMajor attribute to retain backwards-
compatibility with older NixOps versions.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 3bf3d19759)
2015-10-21 17:16:48 +02:00
Brandon Dimcheff
d0dc98c5f8 cups-filters: make shell string longer (close #10493)
The cstring for the shell path is too short for nixos in cups-filters,
causing it to be truncated.  This was previously fixed in #5428, but
regressed.

This is a permanent solution accepted even upstream
https://bugs.linuxfoundation.org/show_bug.cgi?id=1325
http://bzr.linuxfoundation.org/loggerhead/openprinting/cups-filters/revision/7401

(cherry picked from commit c0a963e3cc)
2015-10-20 17:16:12 +02:00
Rickard Nilsson
22db82bca0 google-cloud-sdk: 0.9.74 -> 0.9.82
(cherry picked from commit 321a6b2248)
2015-10-20 12:17:26 +02:00
Hajo Möller
2f3fe48a26 service.asterisk: fix dir creation 2015-10-19 23:03:38 +02:00
Hajo Möller
70f30e7174 asterisk: 13.3.2 -> 13.6.0 2015-10-19 23:03:27 +02:00
Vladimír Čunát
d94b3bac85 mesa: maintenance update 10.6.7 -> 10.6.9
This is anticipated to be the last update on the branch.
(speaking of both mesa 10.* and nixpkgs 15.09)
2015-10-19 10:24:48 +02:00
James Cook
e3401ce7f8 gdk-pixbuf: Patches for CVE-2015-7673 and CVE-2015-7674. 2015-10-19 00:38:35 -07:00
Robert Irelan
8dc5a168ac xorg.xf86-video-ast: 0.98.0 -> 1.1.5 (close #10451)
Fix failure of 0.98.0 to compile with NixOS 15.09 (due to referencing a
symbol `IOADDRESS` that has been removed from X.org drivers).

(cherry picked from commit 678c81b74d)
2015-10-19 09:08:51 +02:00
Bryan Gardiner
c4f07094c4 claws-mail: fix conflict with shared_mime_info link
Fixes #10156. Close #10157. Together with ancestor commits, fixes #10421.

(cherry picked from commit 4eb5068a13)
2015-10-18 08:39:21 +02:00
Bryan Gardiner
1923e5053e claws-mail: add hicolor_icon_theme dependency
We want the hicolor_icon_theme hook to strip Claws's icon-theme.cache.

(cherry picked from commit c39a557095)
2015-10-18 08:37:46 +02:00
Bryan Gardiner
56eec8622b claws-mail: fix attachment MIME type detection
Adds support for shared-mime-info to Claws, to fix attachments in
outgoing messages always having MIME type application/octet-stream
because Claws doesn't know where to look, instead complaining:

/nix/store/...-claws-mail-3.11.1/etc/mime.types: fopen: No such file or directory

Moreover, Claws relies on incoming MIME types for knowing when e.g. to
display an attached image, so sending application/octet-stream
unnecessarily is bad.

Tested against release-15.09.

(cherry picked from commit 268b4d5cfe)
2015-10-18 08:37:45 +02:00
Michael Raskin
4d0e76d60d firefox: 41.0.1 -> 41.0.2
(Cherry-picked by falsifian from commit fe6226af8ac1dc65c554664a7e2f9cbd9fe1bb47.)
2015-10-16 22:23:21 -07:00
Shea Levy
022d006fb0 haskell-hscurses: fix undeclared dependency on ncurses
(cherry picked from commit f17ae73d58)
2015-10-16 12:11:27 -04:00
Shea Levy
0edf68a2cf libvirt: Fix typo introduced by 556151911e
(cherry picked from commit 326ed47a97)
2015-10-15 16:48:15 -04:00
Shea Levy
9d3cdda200 virt-manager: Fixup path to libvirt's cpu_map.xml
(cherry picked from commit 556151911e)
2015-10-15 16:46:29 -04:00
Eelco Dolstra
729ec1ece2 Bump minimum required Nix version
Issue #10337.

(cherry picked from commit 2e5b6362ae)
2015-10-15 19:57:07 +02:00
Pascal Wittmann
71e29b42df Merge pull request #10384 from robbinch/fix-statd
Fix typo in nixos/modules/tasks/filesystems/nfs.nix.
(cherry picked from commit 78b2851724)

Close #10394.
2015-10-15 09:33:57 +02:00
Peter Simons
e4fe8204b6 Merge pull request #10383 from nathanielbaxter/dev/teamspeak_security_update
teamspeak_client security update for release branch/es
2015-10-14 09:58:20 +02:00
Nathaniel Baxter
8e5be37d63 teamspeak_client: Fixed qt and quazip lib references. 2015-10-14 10:14:19 +11:00
Matthias Beyer
b82c7a92ee teamspeak_client: 3.0.16 -> 3.0.18.1 (Added missing SHA update) 2015-10-14 10:14:18 +11:00
Matthias Beyer
8961020b32 teamspeak_client: 3.0.16 -> 3.18.1 2015-10-14 10:14:18 +11:00
Vladimír Čunát
8b8697993e synapse, hamster-time-tracker: get rid of icon-theme.cache
Fixes #10370.

(cherry picked from commit 2f540cbe48)
2015-10-13 14:49:16 +02:00
Domen Kožar
1d3403ac97 crashplan: mark as broken
(cherry picked from commit 1c174d107c)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-10-13 14:46:13 +02:00
Lluís Batlle i Rossell
0eb404129f Fixing the gtk attach file dialog for pond.
I forgot to wrap the programs for the proper XDG_DATA_DIRS. Thanks Lethalman!
2015-10-13 10:30:30 +02:00
Nikolay Amiantov
b662c2aeef mumble: use bundled celt library again 2015-10-12 17:56:32 +03:00
makefu
002da098e1 duplicity: add paramiko,pycrypto,ecdsa to deps
paramiko enables sftp://

[Bjørn: clean up expression arguments (coding style)]

(cherry picked from commit cd1732f58e)
2015-10-10 22:00:54 +02:00
Eelco Dolstra
dbf2827184 nixUnstable: Update to 1.11pre4244_133a421
(cherry picked from commit 1286435499)
2015-10-09 14:49:22 +02:00
karsten gebbert
bdd63d5c9d recoll: replace path to perl in filters
Closes #10287, fixes #10286.

(cherry picked from commit dffed1a512)
2015-10-09 14:40:50 +02:00
Thomas Tuegel
d12d164ac4 lilypond: disable argv[0] passthrough
Fixes #10290. Lilypond finds its Guile libraries by looking at the path
in argv[0], so it should be hardcoded to the real absolute path to the
executable.

(cherry picked from commit 2de259f574)
2015-10-09 07:31:42 -05:00
Eelco Dolstra
18b210344e nixUnstable: Update to 1.11pre4243_2075ec8
(cherry picked from commit 24483ebe47)
2015-10-08 15:58:21 +02:00
Eelco Dolstra
dfc1a3444a debian: Update to 7.9, 8.2
(cherry picked from commit 7260c04266)
2015-10-08 11:22:00 +02:00
Eelco Dolstra
43509b5328 Give more memory for the disk image builder
http://hydra.nixos.org/build/26480662
(cherry picked from commit 106738b196)
2015-10-08 11:21:44 +02:00
Eelco Dolstra
06ea5a4775 php: Update to 5.5.30, 5.6.14
(cherry picked from commit bcc7673a44)
2015-10-08 11:21:44 +02:00
Bjørn Forsman
53481fee51 nixos/jenkins: reduce default environment
Don't pull in all of environment.sessionVariables, only add what's
needed for nix and HTTPS to work (which was the point of the previous
patch).

(cherry picked from commit 04e748e61f)
2015-10-07 16:02:03 +02:00
Bjørn Forsman
3e77e3962a nixos/jenkins: rework environment handling
Jenkins gets (by default) an additional environment of

  { NIX_REMOTE = "daemon"; }

This has the following problems:

  1. NIX_REMOTE disappears when users specify additional environment
     variables, because defaults have low merge priority.
  2. nix cannot be used without additional NIX_PATH envvar, which is
     currently missing.
  3. If you try to use HTTPS, you'll see that jenkins lacks
     SSL_CERT_FILE envvar, causing it to fail.

This commit adds config.environment.sessionVariables and NIX_REMOTE to
the set of variables that are always there for jenkins, making nix and
HTTPS work out of the box.

services.jenkins.environment is now empty by default.

(cherry picked from commit 67723df930)
2015-10-07 16:02:03 +02:00
Nikolay Amiantov
b7d0730f66 glibc_multi: fix ldd for 64-bit ELFs 2015-10-07 16:46:49 +03:00
Bjørn Forsman
cbe6af180a virtualbox: 5.0.4 -> 5.0.6
Tested on release-15.09 branch.

(cherry picked from commit 5fee5c6d08)
2015-10-07 15:17:00 +02:00
Bjørn Forsman
f16c06efaf jquery-ui: 1.11.1 -> 1.11.4
(cherry picked from commit f91c5bcc7a)
2015-10-06 19:34:53 +02:00
Matthias Beyer
38be553cb8 jquery: 1.11.2 -> 1.11.3
[Bjørn: add 2nd hash (for the "uncompressed" download)]

(cherry picked from commit bff59c5f00)
2015-10-06 19:34:44 +02:00
Rob Vermaas
7c55e7b36c Update hologram 2015-10-06 15:07:46 +00:00
Rob Vermaas
e170fb4cb7 hologram-server: use bin output of goPackages.hologram. 2015-10-06 09:35:52 +00:00
Lluís Batlle i Rossell
f2264ec42a Updating twisterd to 0.9.30 2015-10-06 11:28:01 +02:00
Lluís Batlle i Rossell
159cae96e2 Updating internetarchive from 0.8.3 to 0.9.3
I had to update pyyaml for it to work.
2015-10-05 23:10:50 +02:00
Thomas Tuegel
580f3606e0 wrapQtProgram: --set does not take separator
The --set flag to wrapProgram does not take a separator character, just
a value.

(cherry picked from commit a5a031c8ff)
2015-10-05 21:50:30 +02:00
Eelco Dolstra
20556b6b8b thunderbird: Update to 38.3.0
(cherry picked from commit 562851a068)
2015-10-05 11:38:11 +02:00
Eelco Dolstra
a4a76c4bba thunderbird: Update to 38.2.0
(cherry picked from commit 422e3736d5)
2015-10-05 11:38:11 +02:00
Eelco Dolstra
eb6cab886f firefox: Update to 41.0.1
(cherry picked from commit 25bb1e10f3)
2015-10-05 11:38:11 +02:00
Eelco Dolstra
f6cd2cdcff linux: Update to 3.14.54
(cherry picked from commit 277d44f8fb)
2015-10-05 11:38:11 +02:00
William A. Kennington III
b0250c8750 kernel: 3.14.52 -> 3.14.53
(cherry picked from commit 97200b7808)
2015-10-05 11:38:11 +02:00
Lluís Batlle i Rossell
a1107b2bd2 Making pond with GUI (gtk). 2015-10-05 10:31:00 +02:00
William A. Kennington III
f120b1d4f8 kernel: 3.18.21 -> 3.18.22
(cherry picked from commit 62fa68e00c)
2015-10-05 09:33:22 +02:00
Eelco Dolstra
c6d11a1f0d Fix nixos-upgrade
(cherry picked from commit e65b8fcebe)
2015-10-05 09:32:55 +02:00
Eelco Dolstra
f7cd0f256d Remove qt55 hack 2015-10-05 09:31:42 +02:00
Edward Tjörnhammar
8e34eae42c makemkv: 1.9.5 -> 1.9.7 2015-10-04 17:08:39 +02:00
Bjørn Forsman
5b2d4084ef build-fhs-chrootenv: add /etc/os-release from host
This allows software inside the chroot to identify the host OS via the
standard /etc/os-release file.

(cherry picked from commit 05668fbe92)
2015-10-04 15:36:05 +02:00
Echo Nolan
5ba622f59f flashplayer: add myself to maintainers
(cherry picked from commit 89931277de)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-10-04 15:25:13 +02:00
Echo Nolan
ea304dba4d flashplayer: 11.2.202.508 -> 11.2.202.521 security
Several CVEs, listed here:
https://helpx.adobe.com/security/products/flash-player/apsb15-23.html

Tested by installing firefox-wrapper with nix-env and running twitch.tv
and a flash game.

(cherry picked from commit 78dd7f8543)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-10-04 15:25:01 +02:00
Bjørn Forsman
ab0a464e4b nixos/docker: default storageDriver to "devicemapper"
Commit 9bfe92ecee ("docker: Minor improvements, fix failing test") added
the services.docker.storageDriver option, made it mandatory but didn't
give it a default value. This results in an ugly traceback when users
enable docker, if they don't pay enough attention to also set the
storageDriver option. (An attempt was made to add an assertion, but it
didn't work, possibly because of how "mkMerge" works.)

The arguments against a default value were that the optimal value
depends on the filesystem on the host. This is, AFAICT, only in part
true. (It seems some backends are filesystem agnostic.) Also, docker
itself uses a default storage driver, "devicemapper", when no
--storage-driver=x options are given. Hence, we use the same value as
default.

Add a FIXME comment that 'devicemapper' breaks NixOS VM tests (for yet
unknown reasons), so we still run those with the 'overlay' driver.

Closes #10100 and #10217.

(cherry picked from commit 5f17aeb403)
2015-10-04 14:36:38 +02:00
Bjørn Forsman
01906ec98a nixos/modules: simplify pkgs.zfs handling
Thanks, @lethalman.

(cherry picked from commit 424e6e501a)
2015-10-04 14:33:03 +02:00
Casey Ransom
b9791bbf2f nixos/docker: Include ZFS commands in PATH for ZFS storagedriver
When using the ZFS storagedriver in docker, it shells out for the ZFS
commands. The path configuration for the systemd task does not include
ZFS, so if the driver is set to ZFS, add ZFS utilities to the PATH.

This will resolve https://github.com/NixOS/nixpkgs/issues/10127

[Bjørn: prefix commit message with "nixos/docker:", remove extra space
before ';']

(cherry picked from commit 791b600aac)
2015-10-04 14:15:04 +02:00
Shea Levy
59654c07bc Fix kernel config names for BRCMFMAC_*
(cherry picked from commit fc719c2437)
2015-10-03 15:35:24 -04:00
Shea Levy
d5e0d22d0f Linux: Enable PCIe and USB support for brcmfmac
(cherry picked from commit e7f0b0297d)
2015-10-03 15:26:27 -04:00
Shea Levy
a7dce5d910 Linux 4.2: Bump
(cherry picked from commit edefa43d49)
2015-10-03 15:26:11 -04:00
William A. Kennington III
6bafb04be9 kernel: Remove uneeded patch for 4.2
(cherry picked from commit e45e777c37)
2015-10-03 15:25:55 -04:00
William A. Kennington III
7f36016e0d kernel: 4.2.1 -> 4.2.2
(cherry picked from commit 05fd70b4be)
2015-10-03 15:25:44 -04:00
William A. Kennington III
0751b54c9b kernel: 4.2 -> 4.2.1
(cherry picked from commit 40396584eb)
2015-10-03 15:25:30 -04:00
Bjørn Forsman
cad293f28b build-fhs-chrootenv: add missing /usr/include
This patch brings the include/ directories of all specified packages to
appear under /usr/include in the FHS chroot. As per spec[1].

[1] http://www.pathname.com/fhs/pub/fhs-2.3.html#USRINCLUDEDIRECTORYFORSTANDARDINCLU

(cherry picked from commit cd22214e0e)
2015-10-03 13:37:38 +02:00
Renzo Carbonara
e64b9e7d1b nvidiabl: fix for kernel >= 4 (close #10174)
(cherry picked from commit 4902ec1c78)
2015-10-02 12:32:55 +02:00
Vladimír Čunát
6856df5528 qt55: mark lowPrio
Discussed in https://github.com/NixOS/nixpkgs/commit/cbe318d53170d#commitcomment-13493084
I didn't notice any non-derivation in the expressions,
but evaluation errors suggested there are some.
2015-10-01 13:07:38 +02:00
Thomas Tuegel
40234262ce qt55: init at 5.5.0
(cherry picked from commit fe49213ba6)
2015-10-01 12:50:43 +02:00
Thomas Tuegel
00bc3b86a7 lib.licenses: add fdl13
(cherry picked from commit e92cbb73e4)
2015-10-01 12:49:50 +02:00
Thomas Tuegel
d402ff6367 lib: add makeScope
(cherry picked from commit f9e5745efa)
2015-10-01 12:49:34 +02:00
Eelco Dolstra
9c31c72caf Revert "nixos/fonts: Add unifont to list of default fonts."
This reverts commit 53746ff9d2 because
it increases default system closure size significantly. It's also
unnecessary - people can always add fonts themselves.
2015-09-30 21:46:06 +02:00
Domen Kožar
5af517518e typos
(cherry picked from commit aca373c6b2)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-30 21:27:37 +02:00
Nicolas B. Pierron
15760fbaba Add pkgs module argument documentation for #6794 incompatible change.
(cherry picked from commit 50146ce815)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-30 21:27:30 +02:00
Eelco Dolstra
9cbf796fd2 Bump fallback Nix store paths
(cherry picked from commit 3231424c37)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-30 21:26:58 +02:00
aszlig
53746ff9d2 nixos/fonts: Add unifont to list of default fonts.
This fixes #10077 because after some debugging it turns out that by
default we don't have a font which is able to display Chinese symbols.

Thanks to @anderspapitto, @kmicu and hyper_ch on IRC to help debugging
this issue, see log at:

http://nixos.org/irc/logs/log.20150926 starting at 19:46

With unifont we have a reasonable fallback font to ensure that every
written language is rendered correctly and thus less surprise for new
users who keep their font settings at the default.

Reported-by: Anders Papitto <anderspapitto@gmail.com>
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit ebf1f51641)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-30 21:06:46 +02:00
Domen Kožar
e13b657670 update release notes for 15.09 2015-09-30 19:04:04 +02:00
Rickard Nilsson
8c35333e09 opentsdb nixos module: Add option for defining OpenTSDB's configuration
(cherry picked from commit c0a83cbc49)
2015-09-30 18:32:16 +02:00
Peter Simons
f9c5756d8f configuration-hackage2nix.yaml: update list of broken packages
(cherry picked from commit 67fb69c23b)
2015-09-30 17:34:14 +02:00
Peter Simons
1e4a50a176 hackage-packages.nix: update Haskell package set
This update was generated by hackage2nix v20150922-6-g5d5ccfe-dirty using the following inputs:

  - Nixpkgs: 7a2a9bbe15
  - Hackage: 82f4bbff1b
  - LTS Haskell: 831a37566b
  - Stackage Nightly: e7fd25c827

(cherry picked from commit 750e15fbd7)
2015-09-30 17:34:14 +02:00
Peter Simons
d011140520 configuration-hackage2nix.yaml: update list of broken packages
(cherry picked from commit 741437dffc)
2015-09-30 17:34:13 +02:00
Peter Simons
ea633c8d94 hackage-packages.nix: update Haskell package set
This update was generated by hackage2nix v20150922-6-g5d5ccfe using the following inputs:

  - Nixpkgs: d64ca94227
  - Hackage: 8f14dec431
  - LTS Haskell: 831a37566b
  - Stackage Nightly: e7fd25c827

(cherry picked from commit 96c1c16771)
2015-09-30 17:34:13 +02:00
Bjørn Forsman
97b00149e0 jenkins: 1.594 -> 1.631
(cherry picked from commit f35de8ea64)
2015-09-30 17:27:03 +02:00
Peter Simons
a06d46cd2d rl-1509.xml: update Haskell-related release notes
- Update the link to the manual to refer to the proper place.
 - Mention LTS Haskell and Stackage Nightly.
 - Minor cosmetic to improve readability.

(cherry picked from commit 8e00de424497d2cc6447c529785efa985bd3383c)
2015-09-30 16:16:45 +02:00
Rob Vermaas
0f2597ca1e Remove nixops unstable expression, until we reintroduce it again. Currently it is not referenced, as nixopsUnstable = nixops.
(cherry picked from commit df9fc0f8e0)
2015-09-30 12:49:39 +00:00
aszlig
1b1658f99b firefox: Drop crash_OTMC+GTK3.patch.
The patch only applies for Firefox versions between 37.0 and 40.1.

Because we're on version 41.0 the changes are already included upstream
and thus the patch doesn't apply and is even unnecessary.

As for version 38.3 for ESR, the patch doesn't apply as well if compiled
with enableGTK3. Of course, this is a bit unfortunate but I don't have
the time right now to properly rebase the patch on 38.3.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Reported-by: devhell <"^"@regexmail.net>
(cherry picked from commit 592f0f7ead)
2015-09-30 14:12:59 +02:00
Rickard Nilsson
60bc814f51 opentsdb: 2.1.0 -> 2.1.1
(cherry picked from commit 94eac9ccbd)
2015-09-30 13:01:34 +02:00
Tobias Geerinckx-Rice
da347ec20a {,pythonPackages.}libvirt: 1.2.18 -> 1.2.19
The previous bump erroneously said 1.2.19. Make it so.

(cherry picked from commit 8b29707592)
2015-09-30 13:01:11 +02:00
Tobias Geerinckx-Rice
7fbe0b7f82 {,pythonPackages.}libvirt: 1.2.17 -> 1.2.19
(cherry picked from commit 336b79e6e3)
2015-09-30 13:00:31 +02:00
Karn Kallio
b9beb0e5e5 texlive: Fix download file names to be current.
(cherry picked from commit 5ed03241be)
2015-09-30 09:23:15 +02:00
Rob Vermaas
a91d4f8a24 nixops: 1.2 -> 1.3 2015-09-29 19:53:19 +00:00
Marcus Crestani
d802492482 libxkbcommon: Remove --version-script on Darwin
Close #10094. Simplified by vcunat.
On 15.09 we have a different version, but still, the change shouldn't hurt.

(cherry picked from commit c6de42d4d4)
2015-09-29 15:32:30 +02:00
Gabriel Ebner
8aed85c40e qt5.multimedia: fix gstreamer support.
(cherry picked from commit 449b6028a6)

[Bjørn: Without this, one may get runtime errors like
  defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.camera"
or
  The camera service is missing
]
2015-09-29 15:13:34 +02:00
Peter Simons
eb382dc3b4 Remove the haskell.packages.ghc6104 package set.
It's broken, and no-one seems to care enough to fix it (which would be a
tricky endeavor, anyway).

(cherry picked from commit 391549c5f4)
2015-09-29 14:50:01 +02:00
Peter Simons
9f4caf9fe6 Fix nix-env -f "<nixpkgs>" -qaP -A haskell.packages.ghc6123.
(cherry picked from commit 664de99887)
2015-09-29 14:50:00 +02:00
Luca Bruno
5f8e6fb0cd heimdal: try disabling parallel builds due to hydra issues
cc @wkennington

(cherry picked from commit 51512d4c8f)
2015-09-29 10:52:03 +02:00
Luca Bruno
29a71c6a00 xulrunner: disable gconf
(cherry picked from commit b7f49e89af)
2015-09-29 10:31:35 +02:00
Peter Simons
972ddda147 Add LTS Haskell 3.7.
(cherry picked from commit e23d69c6f3)
2015-09-29 10:08:04 +02:00
Peter Simons
3e0b927057 Fix or disable broken Haskell builds.
(cherry picked from commit 5602d609c7)
2015-09-29 10:07:32 +02:00
Peter Simons
2b86307e06 haskell-pandoc-citeproc has spurious test suite failures.
(cherry picked from commit a14264db3e)
2015-09-29 10:07:32 +02:00
Peter Simons
35febcbd0b hackage-packages.nix: update Haskell package set
This update was generated by hackage2nix v20150922-6-g5d5ccfe using the following inputs:

  - Nixpkgs: f21f116631
  - Hackage: f8855b5494
  - LTS Haskell: 831a37566b
  - Stackage Nightly: 96ef887f31

(cherry picked from commit 0139c51f1b)
2015-09-29 10:07:31 +02:00
Peter Simons
ad65464e16 haskell-hpack: disable broken test suite
(cherry picked from commit 5c161d43ed)
2015-09-29 10:07:30 +02:00
Renzo Carbonara
f8144a03dd ghcjs packages: reflex, reflex-dom, dependent-sum_0_2_0_1, dependent-map_0_1_1_3, dependent-sum-template
(cherry picked from commit 431507d11a)
2015-09-29 10:07:30 +02:00
Renzo Carbonara
ccb983c753 bump ghcjs-dom
(cherry picked from commit f546d389b6)
2015-09-29 10:07:30 +02:00
Peter Simons
3e6cc32991 Drop obsolete Haskell overrides.
These overrides are now hard-coded directly in hackage2nix.

(cherry picked from commit d6805a820d)
2015-09-29 10:07:30 +02:00
Peter Simons
6edc6c3aa9 hackage-packages.nix: update Haskell package set
This update was generated by hackage2nix v20150922-6-g5d5ccfe using the following inputs:

  - Nixpkgs: eaa43c65b3
  - Hackage: c048a402d3
  - LTS Haskell: c7012a704b
  - Stackage Nightly: a74568b554

(cherry picked from commit dacc96be28)
2015-09-29 10:07:29 +02:00
Peter Simons
9c08a81dcd configuration-hackage2nix.yaml: fix evaluation errors on Darwin
(cherry picked from commit 69db836dbc)
2015-09-29 10:06:57 +02:00
Eelco Dolstra
7adab119b3 wget: Reduce closure size
This reduces the wget closure from 377 MiB to 49 MiB, which is in
particular good for EC2 images, since they include wget. The main
changes:

* Disable libpsl - this isn't very big itself, but it pulls in libicu,
  which is 36 MiB. It also adds build-time dependencies on packages
  like gtk-doc, dblatex, tetex etc.

* Replace gnutls with openssl. The former pulls in runtime
  dependencies like guile, python, binutils, gcc, ncurses, etc.

(cherry picked from commit 9e38b81af8)
2015-09-28 22:51:53 +02:00
Eelco Dolstra
373000cba6 Blacklist the xen_fbfront kernel module
This gets rid of a 30 second delay during boot. See e.g
https://github.com/coreos/bugs/issues/208.

(cherry picked from commit cab1483a95)
2015-09-28 22:51:49 +02:00
Eelco Dolstra
6d0601d433 Wait for udev after resizing partitions
Otherwise the EC2 boot may panic.

(cherry picked from commit e866840a12)
2015-09-28 22:51:43 +02:00
Eelco Dolstra
2214082073 Test whether EC2 root volume resizing works
(cherry picked from commit f125d194e8)
2015-09-28 22:51:36 +02:00
Eelco Dolstra
323b0e77c7 Make EBS volumes much smaller
Since they're resized on first boot anyway, they don't need to be big.

(cherry picked from commit ab0ddac8f9)
2015-09-28 22:51:31 +02:00
obadz
47026669ba orpie: init at 1.5.2
[Bjørn: add meta.platforms]

(cherry picked from commit db31c1c438)
2015-09-28 21:06:00 +02:00
Bjørn Forsman
d54a77b2fb dbench: move loadfiles from $out/share/ to $out/share/loadfiles/
Seems cleaner.

Hm, there are also loadfiles in $out/share/doc/dbench/loadfiles/
(installed by the upstream build system), but there is no iscsi/
directory in there.

(cherry picked from commit 3f27be8e5d)
2015-09-28 19:09:31 +02:00
Bjørn Forsman
6e6d20f392 dbench: expression clean-up
Whitespace, ordering, add meta attributes.

(cherry picked from commit dc06278641)
2015-09-28 19:09:31 +02:00
Bjørn Forsman
7aa74290d0 dbench: 20101121 -> 2013-01-01 (latest)
This fixes the build (the old version has wrong hash now).

(cherry picked from commit 8e7ce3de00)
2015-09-28 19:09:31 +02:00
Bjørn Forsman
60cd04658d qt54: add missing mesa include dir
Try to build e.g. the Qt5 Camera Example[1] and see that qmake fails to
find <GL/gl.h>. This fixes it.

[1] http://doc.qt.io/qt-5/qtmultimediawidgets-camera-example.html
(Although since nixpkgs qtcreator still lacks 'examples', we have to
download the sources manually and use "qmake && make".)

(cherry picked from commit 583845d00b)
2015-09-28 16:34:20 +02:00
Eelco Dolstra
4e18cdda7f Shut up a KDE warning when a user first logs in
It was complaining about not having write permission to
$HOME/.local/share/user-places.xbel (because .local/share didn't exist
yet).

(cherry picked from commit 1b728846a8)
2015-09-28 15:29:04 +02:00
Eelco Dolstra
724cf98bdf Fix Nix database in generated images
This prevents seeing lots of warnings about missing hashes/sizes in the
database when running "nix-store --verify --check-contents" for the
first time.

(cherry picked from commit 64aed5e78f)
2015-09-28 15:29:00 +02:00
Eelco Dolstra
b5f8225c50 Use make-disk-image.nix for VirtualBox images
(cherry picked from commit b3347287be)
2015-09-28 15:28:55 +02:00
Eelco Dolstra
9f7d8f2b01 Disable the ec2-config test
"amazon-init.nix" is not included in the default AMIs because it
unconditionally runs a nixos-rebuild. Also, the test has never worked
(http://hydra.nixos.org/job/nixos/trunk-combined/nixos.tests.ec2-config).

(cherry picked from commit f596f0323f)
2015-09-28 15:28:51 +02:00
Eelco Dolstra
7df65ef2d1 Fix the EC2 test
(cherry picked from commit 412477e914)
2015-09-28 15:28:43 +02:00
Eelco Dolstra
64e7656feb Fix GRUB syntax in EC2 HVM images
There is no "root" command in GRUB 2, and it's not needed anyway. This
command delayed HVM boots for a few seconds.

(cherry picked from commit 640dff2918)
2015-09-28 15:28:39 +02:00
Eelco Dolstra
355b69ebbb ec2-data.nix: Remove superfluous check
(cherry picked from commit 7338f5ff46)
2015-09-28 15:28:34 +02:00
Rob Vermaas
7ef887a04c Revert "nixops: 1.2 -> 1.3."
This reverts commit fcaf96b8d4.
2015-09-28 11:41:26 +00:00
Rob Vermaas
fcaf96b8d4 nixops: 1.2 -> 1.3. 2015-09-28 11:33:26 +00:00
Eelco Dolstra
b9ecc096e1 texinfo: Disable tests
These appear to fail randomly:

  http://hydra.nixos.org/build/26194907/nixlog/325/raw

(cherry picked from commit e7631452e9)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-28 11:59:44 +02:00
Edward Tjörnhammar
92f2a1ca7e idea-{community,ultimate}: 14.1.4 -> 14.1.5 2015-09-28 07:25:40 +02:00
Enrico Fasoli
bfef25de61 ogre: replace broken hg clone url with http url (to speed up download)
Old package expression had two problems:

* source download link was broken
* when working, it downloaded almost 400 MB of data because it cloned
  the entire mercurial repo, via http it's only about 140 MB.

[Bjørn: extend commit message]

(cherry picked from commit fb6403aeaa)
2015-09-27 22:14:18 +02:00
Eelco Dolstra
22d6cf3dbd Update AMI generator
The EBS and S3 (instance-store) AMIs are now created from the same
image. HVM instance-store AMIs are also generated.

Disk image generation has been factored out into a function
(nixos/lib/make-disk-image.nix) that can be used to build other kinds
of images.

(cherry picked from commit e018e10ba64e3277f11f4123bc46fc68def970dd)
2015-09-27 21:10:28 +02:00
Eelco Dolstra
31425d8406 channel.nix: Fix broken flag to skip substitutes
(cherry picked from commit 95a8c49a15a774f64deee2532db3f87e8c8491c9)
2015-09-27 21:10:17 +02:00
Eelco Dolstra
f28cb27fb1 Add filesystem option to automatically grow to the maximum size
This is primarily for EC2 and other cloud environments, where the disk
may be bigger than the original image.

(cherry picked from commit 9d92bd7845)
2015-09-27 21:09:00 +02:00
Eelco Dolstra
1db8195d0c Remove relatime mount option
This has been the kernel default for a long time.

(cherry picked from commit f40c7ed143)
2015-09-27 21:08:55 +02:00
Vladimír Čunát
2756c12cc0 haskell: make ghc, cabal-install, and stack visible
Thanks to @peti. Close #10035.

(cherry picked from commit 6070cd09fc)
2015-09-27 17:23:20 +02:00
Vladimír Čunát
993b9a023c beets: fix tarball evaluation by asserting isLinux
/cc #10069.

(cherry picked from commit 1f73d482d6)
2015-09-27 07:55:18 +02:00
michael bishop
f203ea5011 bonnie++: init at 1.03e
[Bjørn: sort alphabetically in all-packages.nix, shorten
meta.description.]

(cherry picked from commit 569baff20d)
2015-09-26 21:48:10 +02:00
aszlig
c512b78f1f release-notes/15.09: Document changes for vboxsf.
Since 74209a4 we have initial support for the "vboxsf" (VirtualBox
shared folder) file system support. This will be cherry-picked to
release-15.09 so we need to notice people about the change.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 39a03b679a)
2015-09-26 11:08:35 +02:00
aszlig
b6d0e5abe5 release-notes/15.09: Use <option/> for options.
There were quite a few configuration options which were tagged via
<literal/>, so in order to keep consistency with other docbook manuals
in the source tree, let's use <option/> here.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 02c2500195)
2015-09-26 11:08:34 +02:00
aszlig
310c30089e nixos/tests/virtualbox: Don't parallelize VM boot.
I'm not quite sure why the official Hydra gets a kernel panic in one of
two VMs using the exact same kernels:

https://hydra.nixos.org/build/26339384

Because the kernel panic happens before stage 1, let's wait for the
first VM to boot up and after the bootup is done, start the second one
in hope that it won't trigger the panic.

Oddly enough, whenever I run the test on my own Hydra and on my local
machines, I don't get anything like that.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit baf1d1dcd7)
2015-09-26 11:08:34 +02:00
aszlig
e1841ac3ec nixos/tests/virtualbox: Destroy detectvirt VM.
I forgot to do this in da0e642. It shouldn't be a big problem but it's
more clean to destroy the VM once we're done testing.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 764a767d5f)
2015-09-26 11:08:34 +02:00
aszlig
df5fe9b64b nixos/tests/virtualbox: Give VMs more memory.
We previously had 1024 MB of memory to fit a VirtualBox VM with 512 MB
plus the memory needed of the VirtualBox host VM. That obviously won't
work for two VirtualBox VMs, which are used for testing networking
between two VirtualBox guests.

Now, we have 2048 MB on the qemu guest (the VirtualBox host) and 768 MB
for each VirtualBox guest. That should be enough to fit in two
VirtualBox guests (I hope).

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 3e6bb402b1)
2015-09-26 11:08:33 +02:00
aszlig
45be9edaee nixos/filesystems: Skip check for vboxsf.
We don't even have any means to check a VirtualBox shared folder, so
let's not even try to.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit f9766f885d)
2015-09-26 11:08:33 +02:00
aszlig
b714bd7a1b nixos/filesystems: Improve vboxsf default options.
The default options for all file systems currently are
"defaults.relatime", which works well on file systems which support the
relatime option.

Unfortunately, this is not the case for the VirtualBox shared folder
filesystem, so until now, you need to set something like:

fileSystems."/foo" = {
  device = "foo";
  fsType = "vboxsf";
  options = "defaults";
};

Otherwise mounting the file system would fail.

Now, we provide only the "defaults" option to the "vboxsf" file system,
so something like this is enough:

fileSystems."/foo" = {
  device = "foo";
  fsType = "vboxsf";
};

An alternative to that could be to document that you need to set default
options, but we really should do what users expect instead of forcing
them to look up the documentation as to why this has failed.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit cd4caed35a)
2015-09-26 11:08:33 +02:00
Jaka Hudoklin
32e768770b virtualbox service: add support for vboxsf guest filesystem
Closes #9358

Signed-off-by: Jaka Hudoklin <jakahudoklin@gmail.com>
Fix reference to bin/mount.vboxsf.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>

(cherry picked from commit 74209a4ca8)
2015-09-26 11:08:32 +02:00
aszlig
4da90c0dbe tests/virtualbox: Add a subtest for host USB.
Unfortunately, we can't test whether USB is really working, but we can
make sure that VirtualBox has access to the USB devices.

This is essentially testing #9736, which I haven't yet been able to
reproduce though, but it makes sense to test it so it won't happen in
future releases.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 9a39c2e943)
2015-09-26 11:08:32 +02:00
Vladimír Čunát
60aa924d06 doc/release notes (15.09): mention texlive
(cherry picked from commit 48200a96e0)
2015-09-25 14:26:00 +02:00
Eelco Dolstra
a8e91daaa7 pcre: Smaller patch for CVE-2015-3210, CVE-2015-5073
(cherry picked from commit 2896861c7e)
2015-09-25 12:00:28 +02:00
Eelco Dolstra
c7a3b6da61 Revert "pcre: Updates to fix a number of vulnerabilities"
This reverts commit 3a472db679.
2015-09-25 12:00:08 +02:00
Vladimír Čunát
efc0f6c3b4 vorbis-tools: security patches and fix meta
Patches: CVE-2014-9638, CVE-2014-9639, CVE-2015-6749, and some non-security.
Also drop glibc from buildInputs.

(cherry picked from commit 000a2108ba)
2015-09-25 11:49:30 +02:00
William A. Kennington III
bce799594c Merge pull request #10042 from dasjoe/release-15.09
zfs + zfs_git: 0.6.5 -> 0.6.5.1
2015-09-25 00:30:03 -07:00
William A. Kennington III
086cad92c4 zfs + zfs_git: 0.6.5 -> 0.6.5.1 2015-09-24 20:00:48 +02:00
Lluís Batlle i Rossell
fc80b21fd6 Fix my-env so it includes gcc, as it used to do.
This is a reaction to 1014620bce, that
moved some paths from nix source to the builder.sh of stdenv.

(cherry picked from commit 263c13481c)
2015-09-24 14:12:36 +00:00
Eelco Dolstra
f01ac81a8f ec2-api-tools: Update to 1.7.5.1
(cherry picked from commit 5ab7a37feb)
2015-09-24 15:30:43 +02:00
Eelco Dolstra
f1f5181f4c ec2-ami-tools: Update to 1.5.7
(cherry picked from commit b3d4b1bef2)
2015-09-24 15:30:39 +02:00
Eelco Dolstra
d398c6aa68 firefox-esr: Update to 38.3.0esr
(cherry picked from commit 4bcbfb33f8)
2015-09-24 15:30:27 +02:00
Eelco Dolstra
7dfdf4dd59 ec2-data.nix: Print all SSH host keys
Also, don't barf if there is no DSA key.

(cherry picked from commit e73b19ae4e)
2015-09-24 15:30:19 +02:00
Eelco Dolstra
fa274e36da ec2-data.nix: Support ed25519 host keys
(cherry picked from commit df665ded7e)
2015-09-24 15:30:17 +02:00
William A. Kennington III
3a472db679 pcre: Updates to fix a number of vulnerabilities
- CVE-2015-3210
  - CVE-2015-5073
  - http://seclists.org/oss-sec/2015/q3/295

(cherry picked from commit 453b986d2f)
2015-09-24 15:28:59 +02:00
Jan Malakhovski
71b93c799b nixos: show the manual in system's /share/doc (close #9928)
(cherry picked from commit 9cc7859b2e)
2015-09-24 12:32:51 +02:00
Eelco Dolstra
dc18f39bfb firefox: Update to 41.0
(cherry picked from commit f46fe7b909)
2015-09-23 21:11:49 -07:00
Andreas Wagner
96a155bc8c urjtag: enable various features
[Bjørn: commit message: enabled -> enable]

(cherry picked from commit 23ed438d5a)
2015-09-23 21:18:37 +02:00
Andreas Wagner
4130b67d93 urjtag: path fixes, use svn to get version string
If built from svn:

  $ jtag --version
  UrJTAG 0.10 #2051

If built from git:
  $ jtag --version
  UrJTAG 0.10 #

Also, with svn we don't need to download the web/ subdirectory because
svn supports partial repository clones.

[Bjørn: extend commit message]

(cherry picked from commit 52379183e1)
2015-09-23 21:18:33 +02:00
Andreas Wagner
e1373e4b54 urjtag: init at 0.10
[Bjørn: make the function argument lines occupy less vertical space.]

(cherry picked from commit e7a024abc4)
2015-09-23 21:17:59 +02:00
Vladimír Čunát
202747864f fix evaluation 2015-09-23 17:29:38 +02:00
Robert Helgesson
4c97e3e61e eclipse-plugin-scala: 4.1.1 -> 4.1.1.20150911
No URL change since the update, unfortunately, happens in-place.

(cherry picked from commit 17c468c9c7)
2015-09-23 17:27:28 +02:00
Jan Malakhovski
2e066350e1 doc: update haskell-users-guide.xml with ghcWithHoogle stuff
(cherry picked from commit 8358272046)
2015-09-23 17:05:34 +02:00
Nikolay Amiantov
c20724a350 lambdabot: rework custom modules and configuration
(cherry picked from commit 57c33c1c54)
2015-09-23 17:04:52 +02:00
Peter Simons
496a5e44c3 cabal2nix: update to version 20150922
(cherry picked from commit 5c1afdd5f6)
2015-09-23 17:04:52 +02:00
Renzo Carbonara
d4f4bed45f bump ghcjs, ghcjs-boot, ghcjs-shims
(cherry picked from commit 8ce1f6efcd)
2015-09-23 17:04:52 +02:00
Peter Simons
c821d78c03 Port the LTS Haskell feature into the release-15.09 branch.
The package set was generated by hackage2nix v20150922-4-g3df9130 using the following inputs:

  - Nixpkgs: 5eb46915ca
  - Hackage: 238be6f443
  - LTS Haskell: c7012a704b
  - Stackage Nightly: a46ea057c9
2015-09-23 17:04:51 +02:00
Peter Simons
3270939c2c haskell-generic-builder: drop "haskell-" prefix from interactive environment's names
(cherry picked from commit a3540d9bb7)
2015-09-23 17:00:02 +02:00
Allen Nelson
dbbab403b3 add shellHook argument so that users can pass in their own
(cherry picked from commit d2457ea991)
2015-09-23 17:00:02 +02:00
Peter Simons
e4adb2bcfd ghc: re-add version 7.8.3, which is required for LTS support
(cherry picked from commit 73d79ed945)
2015-09-23 16:08:44 +02:00
Vladimír Čunát
62f68203cc separateDebugInfo: pick changes from master 2015-09-23 13:56:29 +02:00
Vladimír Čunát
d3bdd8f461 jitsi: fix meta.license and refactor meta
And take the maintainer from master.

(cherry picked from commit 68bd8e4a9d)
2015-09-23 13:55:15 +02:00
Vladimír Čunát
6b0a59c6a4 all-packages: rename remaining xlibs -> xorg 2015-09-23 13:34:30 +02:00
Vladimír Čunát
1c681d21bf all-packages: don't recurse into aliased sets
So far nix-env -qP would prefer e.g. `xlibs.*` to `xorg.*`,
so we just disallow recursing into aliased sets
while keeping them available for explicit usage.

Consequently, `xlibs` references should get killed on the next
regeneration.

(cherry picked from commit c10f7050c5)
(also added 63f3fef08e and 1caa62ae42)
2015-09-23 13:29:36 +02:00
Vladimír Čunát
178f4e7753 Merge: xlibs and x11 attribute cleanup
Frequently using multiple *almost* identical attributes is bad.

(cherry picked from commit 76ef7a93e3)
2015-09-23 13:03:12 +02:00
Eelco Dolstra
9a6c99b95e hello/ex-2 -> hello
(cherry picked from commit 645441c207)
2015-09-23 12:11:05 +02:00
Eelco Dolstra
fae61545e6 separateDebugInfo: Assert Linux
Also remove some unintended setting of separateDebugInfo.

(cherry picked from commit 2a28bc6691)
2015-09-23 12:11:01 +02:00
Eelco Dolstra
1bcda85e8d swig2: Enable on Darwin
(cherry picked from commit fbaaa9cccc)

Conflicts:
	pkgs/development/tools/misc/swig/3.x.nix
2015-09-23 12:10:49 +02:00
Bjørn Forsman
52a88113a7 gitinspector: init at 0.4.1
(cherry picked from commit 452ebd1987)
2015-09-22 16:37:43 +02:00
Eelco Dolstra
6176d03312 m2crypto: Use SWIG 2
Fixes "AttributeError: 'module' object has no attribute 'PKCS5_SALT_LEN'".

Fixes #9457.

(cherry picked from commit 6d42b79b29)
2015-09-22 11:15:41 +02:00
Eelco Dolstra
71c82e8cb1 Update 15.09 release notes
(cherry picked from commit ddb39be324)
2015-09-22 11:15:35 +02:00
Eelco Dolstra
cda0dca254 gdb: Update to 7.10
(cherry picked from commit f81982e779)
2015-09-22 11:15:15 +02:00
Eelco Dolstra
450db3136e gdb: Look for debug info in /run/current-system/sw/lib/debug
The previous default was $out/lib/debug, which wasn't very useful.

This ensures that you can do

  environment.systemPackages = [ pkgs.hello.debug ];

to install debug info.

(cherry picked from commit e636e0a532)
2015-09-22 11:15:10 +02:00
Eelco Dolstra
26c5e9423e Enable separate debug info
You can now pass

  separateDebugInfo = true;

to mkDerivation. This causes debug info to be separated from ELF
binaries and stored in the "debug" output. The advantage is that it
enables installing lean binaries, while still having the ability to
make sense of core dumps, etc.

(cherry picked from commit ec5b66eb4a)
2015-09-22 11:15:05 +02:00
William A. Kennington III
7870f20941 btrfsProgs: 4.1.2 -> 4.2 (close #9975)
(cherry picked from commit e968dd9be5)
2015-09-21 08:57:45 +02:00
Vladimír Čunát
ccaa370b54 Merge new texlive infrastructure, /CC #287
(cherry picked from commit 0fdb93864e)
2015-09-21 08:48:09 +02:00
宋文武
6999dfe5d6 farstream: use pythonPackages.gst-python
(cherry picked from commit 16e01531de)
2015-09-20 16:30:04 +02:00
宋文武
f2fb4d590e pitivi: 0.93 -> 0.94 (close #9894)
(cherry picked from commit d79463365a)
2015-09-20 16:30:04 +02:00
宋文武
db0a0cb1cc gst-python -> pythonPackages.gst-python
(cherry picked from commit 38812685ed)
2015-09-20 16:30:04 +02:00
Vladimír Čunát
7d6868eaba beast: switch to a working src location, fixes #9936
It also needs an update, it seems, but I don't know this SW.

(cherry picked from commit ccce09a396)
2015-09-20 11:27:33 +02:00
Vladimír Čunát
e8f9260e2e xgd-utils: update p7 -> p46 (close #9851)
This update probably contains a fix for CVE-2014-9622.
Thanks to @jb55 for the PR. We take even newer version.

(cherry picked from commit aaa985e317)
2015-09-20 10:04:25 +02:00
Vladimír Čunát
16d4251cf5 djview: update 4.8 -> 4.10.3
Also kill tabs, remove unneeded (and failing) patch.
No qt5 yet, unfortunately.

(cherry picked from commit a4d721efd7)
2015-09-20 08:45:12 +02:00
Charles Strahan
8e92a8e1d2 broadcom-sta: fix build on kernel >= 4.2 (close #9953)
Also cherry-pick a licensing fix from torvalds/linux@7d3e2eb178
necessary for building broadcom-sta on kernel 4.2.

For more details, see:
https://github.com/longsleep/bcmwl-ubuntu/issues/6

Fixes #9948.

(cherry picked from commit f08fb6e6c7)
2015-09-20 08:02:27 +02:00
Domen Kožar
cef54e7d67 chromium: remove preferLocalBuild
It's another attempt to fix chromium builds.

See http://hydra.nixos.org/build/26086977/nixlog/4/raw

Unpacking sources is actually taking more than 2h so build fails.
Instead, rather build it remotely and then copy over the output as
we don't have limits for download time.

See 089bdce621 for reference

cc @aszlig
2015-09-20 01:17:49 +02:00
Thomas Tuegel
82a6dde6c4 julia03: add i686-linux to platforms
(cherry picked from 87e5b5c3ef)
2015-09-19 09:47:19 -05:00
Thomas Tuegel
dbb484f5ce julia03: re-enable tests
(cherry picked from 32b9ac5117)
2015-09-19 09:46:59 -05:00
Thomas Tuegel
7e36b26c5a julia03: re-enable tests
(cherry picked from 51bbf7f2a3)
2015-09-19 09:46:42 -05:00
Thomas Tuegel
bdd6248e1a julia03: use system LLVM
It should be safe to use the Nixpkgs LLVM again, now that the approriate
patches have been backported. Hopefully, this will also fix the i686
build.

(cherry picked from 1daa0b39f6)
2015-09-19 09:46:24 -05:00
Thomas Tuegel
ce6c83e38f llvm_33: backport patch from LLVM 3.5
This patch was backported from LLVM 3.5 by the Julia project.

(cherry picked from 4a8fbb789a)
2015-09-19 09:46:00 -05:00
Domen Kožar
9a401ca404 nixopsUnstable: bump 2015-09-19 16:36:59 +02:00
Thomas Tuegel
3741b81ee4 julia: re-enable tests
(cherry picked from 2948e85526)
2015-09-18 12:21:54 -05:00
Thomas Tuegel
5494101d26 julia: does not currently build on i686-linux
(cherry picked from 5428096873)
2015-09-18 12:21:29 -05:00
Thomas Tuegel
aba731285b Revert "julia: fix i686 build"
This reverts commit 02fc4551f5.

(cherry picked from 1c40404cb2)
2015-09-18 12:21:08 -05:00
Luca Bruno
5cd5fe376b Revert "spice-protocol: 0.12.7 -> 0.12.8"
This reverts commit cf63c0982a.

cc @wkennington breaks qemu build and all nixos tests

Can we stop breaking stuff for a couple of days please?
2015-09-18 10:39:30 +02:00
William A. Kennington III
47f64030ae chromium: Updates
- dev: 47.0.2503.0 -> 47.0.2508.0
  - beta: 46.0.2490.22 -> 46.0.2490.33
  - stable: 45.0.2454.85 -> 45.0.2454.93
2015-09-17 15:52:49 -07:00
William A. Kennington III
ec765da36f libs3: Only builds on linux 2015-09-17 15:47:04 -07:00
William A. Kennington III
f39594461e libressl: 2.2.2 -> 2.2.3 2015-09-17 15:46:58 -07:00
William A. Kennington III
2682544dc1 openldap: Fix CVE-2015-6908 2015-09-17 15:46:52 -07:00
William A. Kennington III
cf63c0982a spice-protocol: 0.12.7 -> 0.12.8 2015-09-17 15:46:44 -07:00
William A. Kennington III
ca46ff5e44 audit: 2.4.2 -> 2.4.4 2015-09-17 15:46:39 -07:00
William A. Kennington III
10a7fb5423 nftables: 0.4 -> 0.5 2015-09-17 15:46:34 -07:00
William A. Kennington III
85863443ab libnftnl: 1.0.3 -> 1.0.5 2015-09-17 15:46:26 -07:00
William A. Kennington III
c520bfcbc9 dhcp: 4.3.2 -> 4.3.3 2015-09-17 15:46:19 -07:00
William A. Kennington III
301536c37e bind: 9.10.2-P4 -> 9.10.3 2015-09-17 15:46:12 -07:00
William A. Kennington III
5f7d85d24a grsecurity: Update patches 2015-09-17 15:45:57 -07:00
William A. Kennington III
1fef429170 heimdal: 2015-06-17 -> 2015-09-13 2015-09-17 15:45:50 -07:00
William A. Kennington III
d1e4a98c8b libtasn1: 4.5 -> 4.7 2015-09-17 15:45:42 -07:00
William A. Kennington III
e6670c88de kernel: 4.1.6 -> 4.1.7 2015-09-17 15:45:36 -07:00
William A. Kennington III
a751fcda89 kernel: 3.14.51 -> 3.14.52 2015-09-17 15:45:27 -07:00
William A. Kennington III
1a0a1f0578 kernel: 3.10.87 -> 3.10.88 2015-09-17 15:45:21 -07:00
William A. Kennington III
ea826ddd84 chromiumBeta: Update 2015-09-17 15:44:44 -07:00
Rob Vermaas
d6a43e705e Update libcloud to 0.18.0. Needed for newer nixops.
(cherry picked from commit 7994c99d6f)
2015-09-17 19:23:05 +00:00
Vladimír Čunát
5d351183a2 oracle{jdk,jre}: add meta.platforms to fix #9786
It won't be built by Hydra anyway due to being unfree.

(cherry picked from commit e922b6b0a2)
2015-09-17 20:18:21 +02:00
aszlig
ccb77084aa systemd: Backport fix for detecting VirtualBox.
This is a backport of systemd/systemd@e32886e.

As noted by @ts468 in #9876, systemd-detect-virt will report KVM if
we're running inside VirtualBox 5.x. Instead of just disabling the
check, this essentially fixes systemd to be able to detect VirtualBox
again.

Tested this against nixos/tests/simple.nix (just to make sure systemd is
still working) and nixos/tests/virtualbox.nix (all tests succeed).

Thanks a lot to @ts468 for catching this and also to @domenkozar for
testing various things concerning that bug.

Fixes #9876.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 389e654e03)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-17 17:13:32 +02:00
aszlig
17485470cb tests/virtualbox: Add systemd-detect-virt subtest.
Addresses #9876 in the way that we want to make sure that VirtualBox 5.x
is going to be properly detected. Right now the result is "kvm", so the
subtest fails as expected with:

error: systemd-detect-virt returned "kvm" instead of "oracle" at (eval
       14) line 414, <__ANONIO__> line 92.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit da0e642c2b)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-17 17:13:29 +02:00
aszlig
576a1cd792 nixos/virtualbox-image: Use 32MB of video memory.
Booting the demo/installer image won't work if the video memory is too
low. It boots into KDE, shows the background image and doesn't do
anything, according to @domenkozar.

Thanks to @domenkozar for reporting and testing this with 32MB.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 03730319bd)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-17 17:13:25 +02:00
aszlig
c889294b24 nixos/virtualbox-image: Enable PAE on 32bit.
pkgs/os-specific/linux/kernel/common-config.nix defines HIGHMEM64G on
line 441 for 32bit systems, which implies PAE.

We now creating the OVA with PAE support enabled, which fixes bootup of
the image if people are just importing it without setting PAE
explicitly.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 4e23f1f908)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-17 17:13:22 +02:00
aszlig
6bdb6383e2 tests/virtualbox: Fix long line in guestAdditions.
This is essentially not only "wrapping" the line but refactoring into a
shorter name which is used in two places.

And yes, I know I'm very pedantic if it comes to whitespaces and line
lengths, but I made sure this doesn't change any functionality:

$ nix-instantiate nixos/tests/virtualbox.nix
...
/nix/store/cldxyrxqvwpqm02cd3lvknnmj4qmblyn-vm-test-run-virtualbox.drv
$ git stash pop
...
$ nix-instantiate nixos/tests/virtualbox.nix
...
/nix/store/cldxyrxqvwpqm02cd3lvknnmj4qmblyn-vm-test-run-virtualbox.drv
$

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 17f58275a0)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-17 17:13:19 +02:00
aszlig
f63b79b055 tests/virtualbox: Allow to call it with debug attr.
Instead of manually setting debug to true or false, this should make it
possible to now run the test like this:

nix-build nixos/tests/virtualbox.nix --arg debug true

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 8f98226f50)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-17 17:13:17 +02:00
Vladimír Čunát
32a9989234 qemu: qemu-2.4.0-x86-only -> qemu-x86-only-2.4.0
(cherry picked from commit ab295420c5)
2015-09-17 12:49:43 +02:00
Bjørn Forsman
eece5c3ee6 opencv3: add enableContrib flag
If true, enable the repository of extra modules for OpenCV.
Build tested.

Based on patch from Bas van Dijk <v.dijk.bas@gmail.com>.

(cherry picked from commit d7a0becf37)
2015-09-17 12:23:32 +02:00
Bjørn Forsman
403dccbeee opencv3: add enableIpp flag
Intel Integrated Performance Primitives (IPP) speeds up parts of OpenCV
on Intel processors (and compatible). It increases the store path from
220 MiB to 300 MiB, so it defaults to off.

Original patch from Bas van Dijk <v.dijk.bas@gmail.com>.

I tried applying the same change to opencv(2.x). OpenCV 2.x didn't
automatically detect IPP, so I reverted the change.

(cherry picked from commit affcf2e030)
2015-09-17 12:23:23 +02:00
Bjørn Forsman
1a9d198bc4 lftp: 4.6.3a -> 4.6.4
Upstream says:

  2015-08-20: lftp-4.6.4 released. Some bugs fixed, minor features added.

(cherry picked from commit b0336c9854)
2015-09-17 12:21:48 +02:00
Thomas Tuegel
d3ff46f8f6 dropbox: 3.8.5 -> 3.8.9
(cherry picked from 3faf5b53a5)
2015-09-16 17:55:59 -05:00
Bjørn Forsman
7ea1ee02f4 duply: 1.9.1 -> 1.9.2
(cherry picked from commit c9a6b811d6)
2015-09-16 19:48:55 +02:00
Edward Tjörnhammar
d802a036d7 gitRepo: 1.21 -> 1.22 2015-09-16 19:22:44 +02:00
Bjørn Forsman
aa4d34082a wireshark: 1.12.5 -> 1.12.7
Build and run tested.

(cherry picked from commit b95bec7917)
2015-09-16 19:01:43 +02:00
aszlig
7df9d8d39a tests/virtualbox: Give test machines more memory.
Sometimes there are random kernel panics do to the lack of memory in the
qemu guests, but as we're setting the VirtualBox memory size relatively
low, 1024 MB should be enough for the qemu guests.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 0d4a3ce485)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-16 18:44:59 +02:00
aszlig
84bce4f3e1 tests/virtualbox: Start systemwide DBus in guests.
We want to check whether DBus functionality is working, so let's make
sure it is running in our mini-initrd.

DBus unfortunately requires to have users properly set up and another
configuration file other than in ${dbus.daemon}/etc/dbus-1/system.conf,
so we do provide that as well.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 7707c7df7f)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-16 18:44:54 +02:00
Tobias Geerinckx-Rice
ad9658c970 phc-intel: 0.4.0-rev{17 -> 18} for Linux 4.2
Fix build failure: http://hydra.nixos.org/build/25314451/nixlog/1

(cherry picked from commit d35d991028)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-16 18:44:23 +02:00
aszlig
6d2d7ddbfb virtualbox: Fix load of dbus library at runtime.
VirtualBox had support for DBUS even in version 4.x, but it appears that
nothing in our VM test triggered it to load, thus I didn't notice the
runtime error:

rtldrNativeLoad: dlopen('libdbus-1.so.3', RTLD_NOW | RTLD_LOCAL) failed:
                 libdbus-1.so.3: cannot open shared object file: No such
                 file or directory

The upstream commits I think are responsible for this to come to surface
are _probably_ (did I ever mention that I love SVN? *cough*) one of
these:

https://www.virtualbox.org/changeset/55664/vbox
https://www.virtualbox.org/changeset/55602/vbox

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 89b6831ffd)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-16 18:44:23 +02:00
Nikolay Amiantov
7aeb6049e5 julia: 0.3.10 -> 0.3.11
(cherry picked from commit 1967d9135a)
2015-09-16 11:24:55 -05:00
Bjørn Forsman
73a236fac2 pidgin-sipe: 1.18.1 -> 1.20.0
Build and run tested (on release-15.09 branch).

(cherry picked from commit 0af5fccf2a)
2015-09-16 15:49:18 +02:00
Bjørn Forsman
4f97d13453 diffstat: 1.59 -> 1.60
2015/07/07 (diffstat 1.60)
	+ add configure option --with-man2html

	+ update configure macros

	+ update config.guess, config.sub

(cherry picked from commit b8e776bbe4)
2015-09-16 07:55:45 +02:00
Bjørn Forsman
d22e8532ba ascii: 3.14 -> 3.15
(cherry picked from commit a8b75d8777)
2015-09-16 07:51:49 +02:00
Bjørn Forsman
17eb818264 lighttpd: 1.4.35 -> 1.4.37
(cherry picked from commit 0b9d83737c)
2015-09-16 07:47:40 +02:00
Robert Helgesson
261909afa1 eclipse-plugin-bytecode-outline: init at 2.4.3
(cherry picked from commit d243a5d0c9)
2015-09-15 22:14:10 +02:00
Vladimír Čunát
04607593fc ccl: fix fetchsvn hash (fixes #9746)
No idea what's changed.

(cherry picked from commit 83df5ae07b)
2015-09-15 21:55:46 +02:00
Vladimír Čunát
6c81eb4260 mesa: maintenance update 10.6.6 -> 10.6.7
(cherry picked from commit baf20fbcab)
2015-09-15 15:52:06 +02:00
Vladimír Čunát
0f095f3808 mesa: maintenance update 10.6.5 -> 10.6.6
(cherry picked from commit f67ddbaa6f)
2015-09-15 15:52:02 +02:00
Vladimír Čunát
cf77c0c605 mass rewrite of find parameters to cross-platform style
Fixes #9044, close #9667. Thanks to @taku0 for suggesting this solution.
Now we have no modes starting with `/` or `+`.

Rewrite the `-perm` parameters of find:
 - completely safe: rewrite `/0100` and `+100` to `-0100`,
 - slightly semantics-changing: rewrite `+111` to `-0100`.
I cross-verified the `find` manual pages for Linux, Darwin, FreeBSD.

(cherry picked from commit 8f33b8cc93)
2015-09-15 15:51:02 +02:00
William A. Kennington III
4533bc896b bash4.3: p39 -> p42
(cherry picked from commit 461a9ee562)
2015-09-15 15:51:02 +02:00
William A. Kennington III
8962ce3b39 bash: Remove stale 4.1 patches
(cherry picked from commit 883fadf6d1)
2015-09-15 15:51:02 +02:00
William A. Kennington III
ccb43912f8 curl: 7.43.0 -> 7.44.0
(cherry picked from commit 86e53bdff3)
2015-09-15 15:51:02 +02:00
Jude Taylor
fada91036b darwin: use system dyld
see https://github.com/NixOS/nixpkgs/issues/9432

(cherry picked from commit 80e09678f7)
2015-09-15 15:51:02 +02:00
Eelco Dolstra
9fd74a8e15 Make the jdk/jre attributes work on Darwin
(cherry picked from commit 4e1b21d133)
2015-09-15 12:07:11 +02:00
Eelco Dolstra
c850712458 Make the "openjdk7" attribute work on Darwin
(cherry picked from commit ef490c6b14)
2015-09-15 12:07:06 +02:00
Eelco Dolstra
a257690692 Fix Darwin eval
(cherry picked from commit acd97de64d)
2015-09-15 12:07:01 +02:00
Eelco Dolstra
9092954483 Disambiguate openjdk/openjre
This makes "nix-env -i openjre" work again.

Also get rid of some unnecessary aliases.

(cherry picked from commit 77f3fe79b2)
2015-09-15 12:06:56 +02:00
Eelco Dolstra
3ffd55da3d openjdk8: Add missing setup hooks
(cherry picked from commit b0fd35e174)
2015-09-15 12:06:51 +02:00
Eelco Dolstra
83f162a6b1 Rename OpenJDK expressions
It's silly to have OpenJDK 7 in default.nix when it's not in fact the
default.

(cherry picked from commit 7a1aa50908)
2015-09-15 12:06:46 +02:00
Bjørn Forsman
56e7192f2a cudatoolkit: don't move $out/include to $out/usr_include
This effectively reverts 86c283824f
("If cuda headers are presented to nix [...]") and all the following
workarounds that was added due to that commit.

As far as I can tell[1] this hack isn't needed anymore. And moving
includes to $out/usr_include causes pain for cudatoolkit users, so
better get rid of it.

In patches that did more than the $out/usr_include workaround, I only
changed the line back to $out/include instead of re-generating the
patches and fully removing the changed line.

[1]: I build tested blender and caffe, and temporarily added
recurseIntoAttrs to rPackages and haskellPackages so that nox-review
could get proper coverage. However, many of the packages do not build
even before this patch. I also built CUDA samples with cudatoolkit7
that ran fine.

(cherry picked from commit 22321f2e58)
2015-09-15 08:16:09 +02:00
Domen Kožar
77f2309585 Merge pull request #9816 from ktosiek/stable-kernel-bump
linux: Add 4.2.0 (backport to release-15.09)
2015-09-15 06:11:24 +02:00
Tomasz Kontusz
1b83abb27b lttng-modules: 2.6.2-1-g7a88f8b -> 2.6.3
This also drops the assertion about kernel.version - we don't have
anything older than 3.4 in nixpkgs anyway.

(cherry picked from commit 135fc6a769)
2015-09-14 21:52:44 +02:00
Tomasz Kontusz
43899f4d2e openafs: patches for linux 4.2 2015-09-14 21:00:11 +02:00
William A. Kennington III
e82614d0d4 lxd: 2015-08-05 -> 0.17 2015-09-13 22:08:10 -07:00
William A. Kennington III
92294c93fd git: 2.5.0 -> 2.5.2 2015-09-13 20:10:15 -07:00
William A. Kennington III
5927cbb15f gnutls: 3.4.4 -> 3.4.5 2015-09-13 19:52:38 -07:00
William A. Kennington III
fda676d020 gnutls33: 3.3.17 -> 3.3.18 2015-09-13 19:52:38 -07:00
Domen Kožar
b02bbbc3b6 vboot_reference: whitespace change to restart the build.. 2015-09-13 19:41:17 +02:00
Mathnerd314
3c559278b4 kmod-debian-aliases: init at 21-1 (close #9669)
(cherry picked from commit 87012187b2)
2015-09-13 18:21:45 +02:00
Domen Kožar
83cc494542 disable chronos /cc @offlinehacker 2015-09-13 14:26:46 +02:00
Domen Kožar
66e6f99d40 libreoffice: 5.0.0.5 -> 5.0.1.2, refactor
I've extracted some of libraries and made expression simpler.
2015-09-13 14:25:19 +02:00
Tomasz Kontusz
a1734c3045 lttng-modules: 2.6.2-1-g7a88f8b -> 2.6.3
This also drops the assertion about kernel.version - we don't have
anything older than 3.4 in nixpkgs anyway.
2015-09-13 10:34:06 +02:00
Robert Helgesson
6b2ef7b068 pecita: update and download from difference source
Close #9806.
The upstream URL of the Pecita font is often changed in-place resulting
in frequent hash mismatches. With this commit an archived version of the
font is used instead.

(cherry picked from commit 667f26cabf)
2015-09-13 10:02:17 +02:00
Cillian de Róiste
9ec1ea4259 yoshimi: update from 1.3.5.1 to 1.3.5.2 2015-09-12 19:18:52 +02:00
Bryan Gardiner
8709dcd8b8 claws-mail: install the .desktop file
(cherry picked from commit ab206a0e9a)
2015-09-12 15:56:34 +02:00
Bryan Gardiner
75914cd06a claws-mail: add myself as maintainer
(cherry picked from commit 7d7e983393)
2015-09-12 15:56:25 +02:00
Eelco Dolstra
c46c1c9941 virtualbox: Update to 5.0.4
(cherry picked from commit 972c0e5df4)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-12 13:19:20 +02:00
aszlig
4e530db022 virtualbox: Fix revision/hash for guest additions.
Regression introduced in 7ffb1f3bde.

Also added a small notice so that this hopefully won't happen with
future updates.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 8be8193bd5)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-12 13:19:14 +02:00
Eelco Dolstra
b2e5f331bc virtualbox: Update to 5.0.2
(cherry picked from commit 7ffb1f3bde)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-12 13:19:09 +02:00
Domen Kožar
de1cce92c7 blcr: drop support for kernel 3.12
(cherry picked from commit 54e430a689)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-12 13:17:16 +02:00
Domen Kožar
8d9915c388 Revert "Revert "qemu: 2.2.1 -> 2.4.0""
This reverts commit 863c121c07.

Segfaults on build machines were not caused by qemu bump.
2015-09-12 12:55:48 +02:00
William A. Kennington III
5de569f742 zfs: Update to 0.6.5 2015-09-11 17:47:41 -07:00
William A. Kennington III
ec6dc1fcd3 spl: Update to 0.6.5 2015-09-11 17:47:10 -07:00
William A. Kennington III
57d766277a ceph-git: 2015-09-04 -> 2015-09-11 2015-09-11 16:21:29 -07:00
William A. Kennington III
0cac29ad5d ceph-dev: Fix for i686-linux 2015-09-11 16:21:29 -07:00
William A. Kennington III
8ca25a6d33 linux: Add 4.2.0 2015-09-11 21:56:39 +02:00
William A. Kennington III
90b5b768ca gpa: 0.9.7 -> 0.9.9 2015-09-11 12:42:21 -07:00
William A. Kennington III
6372df39be gnupg: 2.1.7 -> 2.1.8 2015-09-11 12:42:20 -07:00
Tobias Geerinckx-Rice
638a83c669 htop: fix version suffix
It may be an improvement, but it's still a downgrade.
2015-09-11 10:15:28 -07:00
Luca Bruno
07da766101 nixos containers: fix system path when reloading
(cherry picked from commit 682777ed24)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-11 18:42:46 +02:00
Tobias Geerinckx-Rice
5b9203fc03 htop: also touch headers in subdirectories
(cherry picked from commit 5d50acceeb)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-11 18:41:47 +02:00
Eelco Dolstra
577b08b88a systemd: Backport some journalctl performance improvements
Before:

$ time journalctl > /dev/null

real    6m12.470s
user    5m51.439s
sys     0m19.265s

After:

real    0m40.067s
user    0m37.717s
sys     0m2.383s

Before:

$ time journalctl --since '2015-08-01' _TRANSPORT=kernel

real    1m9.817s
user    0m13.318s
sys     0m56.626s

After:

real    0m0.689s
user    0m0.521s
sys     0m0.221s

(cherry picked from commit c34953ed24)
2015-09-11 14:16:16 +02:00
Eelco Dolstra
06a318a6ab php: Latest versions
(cherry picked from commit 0ea1169dae)
2015-09-11 14:16:16 +02:00
Eelco Dolstra
4da70720a8 nixos-container: Fix show-host-key
We don't generate ecdsa keys by default anymore, so print ed25519
instead if available.

(cherry picked from commit c904dfa87c)
2015-09-11 14:16:16 +02:00
Eelco Dolstra
5bbb8fbce3 upower: Update to 0.99.3
(cherry picked from commit af82c983fc)
2015-09-11 14:16:16 +02:00
Eelco Dolstra
361d6cf566 upower: Remove unused dependencies
(cherry picked from commit a6a73a1429)
2015-09-11 14:16:16 +02:00
Eelco Dolstra
7def439cda Remove upower-old
(cherry picked from commit 2a2cb8354e)
2015-09-11 14:16:16 +02:00
Eelco Dolstra
469b79bcc7 Remove openjdk namespace pollution
Fixes #9743.

(cherry picked from commit ee83598688)
2015-09-11 14:16:16 +02:00
William A. Kennington III
afd73615d6 gnutls: Fix parallel build issue introduced in 3.4.x 2015-09-10 15:16:06 -07:00
aszlig
273472444f neko: Add patch fixing arg handling on 32bit.
The error was reported at HaxeFoundation/haxelib#152 and was fixed by
HaxeFoundation/neko#41 in HaxeFoundation/neko@ccc78c2, the latter being
fetchpatch'ed by us now.

This has caused the hxcpp build to fail on i686-linux with an "Invalid
array access" error.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit 2cc8680b88)
2015-09-10 18:39:21 +02:00
Luca Bruno
84ceab0547 gcr: disable parallel builds
(cherry picked from commit fe25f52cce)
2015-09-10 12:59:05 +02:00
Peter Simons
f90b3095d0 doc: update haskell-users-guide.xml to reflect that we've update GHC 7.10.1 to 7.10.2
(cherry picked from commit d6396cc5d8)
2015-09-09 21:31:52 +02:00
Robert Helgesson
0641ccdcd3 eclipse-plugin-checkstyle: 6.5.0.201504121610 -> 6.9.0.201508291549
(cherry picked from commit 11693943de)
2015-09-09 09:48:45 +02:00
Vladimír Čunát
b1c6d53731 tango-icon-theme: add cache file
After discussion at
https://github.com/NixOS/nixpkgs/commit/aae9e49cbc0c8#commitcomment-13041853

(cherry picked from commit 409f8515fd)
2015-09-09 09:27:47 +02:00
William A. Kennington III
7141227936 syncthing: 0.11.23 -> 0.11.24 2015-09-08 23:41:37 -07:00
William A. Kennington III
571a0a31db syncthing: Pin to go1.4 pending upstream go fixes and disable tests until fixed 2015-09-08 23:41:37 -07:00
William A. Kennington III
2f71a811c9 go: 1.5 -> 1.5.1 2015-09-08 23:41:37 -07:00
William A. Kennington III
be3c06f30f htop: 8f07868f -> 229d0058
This fixes sopme of the strange rendering issues as well as some
intermittent crashes.
2015-09-08 23:41:37 -07:00
William A. Kennington III
2694b75591 gnupg: 2.0.28 -> 2.0.29 2015-09-08 23:41:37 -07:00
William A. Kennington III
0094d74ca7 libgcrypt: 1.6.3 -> 1.6.4 2015-09-08 23:41:37 -07:00
William A. Kennington III
6787e2afb5 go-packages: Fix version string output 2015-09-08 23:41:37 -07:00
William A. Kennington III
582a312d3d chromium: Dev / Beta Updates 2015-09-08 23:41:37 -07:00
Rok Garbas
f9799e72d0 marking junit and dolphinEmu as broken 2015-09-08 14:03:51 +02:00
Eelco Dolstra
71861c955c Remove references to /root/test-firmware
This is no longer supported by systemd.

(cherry picked from commit 3ebe5f802b)
2015-09-08 11:30:04 +02:00
Eelco Dolstra
6d05583323 nix-repl: Update
Fixes #9710.

(cherry picked from commit a5ea7ddb08)
2015-09-08 11:29:58 +02:00
Eelco Dolstra
7483622dc6 Nix: Update to 1.10
(cherry picked from commit 86eaeb4c0a)
2015-09-08 11:29:52 +02:00
Luca Bruno
2d300886dc popcorntime: fix sha of x86 build (ZHF) 2015-09-08 10:32:04 +02:00
William A. Kennington III
e7cf7f7f80 linux-firmware: 2015-07-23 -> 2015-09-07 2015-09-07 23:15:15 -07:00
Peter Simons
a584a6b9e7 cabal2nix: fix version number 20180903 to 20150903
Thanks to @drvink for pointing this out.

(cherry picked from commit ca9158fa82)
2015-09-07 23:38:49 +02:00
obadz
dd3b84561b nixos: environment.pathsToLink += some desktop dirs
Close #9622.
(adding common desktop locations and locations specified in
http://standards.freedesktop.org/menu-spec/1.1/)

(cherry picked from commit afdfe76bbd)
2015-09-07 21:17:42 +02:00
Peter Simons
1cf4a34515 cabal2nix: fix https://github.com/NixOS/cabal2nix/issues/203 some more
(cherry picked from commit 06a7b22985)
2015-09-07 17:35:18 +02:00
Peter Simons
4250b6f1da cabal2nix: re-generate the build files to make sure all dependencies are listed correctly
Fixes https://github.com/NixOS/cabal2nix/issues/203.

(cherry picked from commit d4f7bf9c29)
2015-09-07 16:04:42 +02:00
Bjørn Forsman
75639f54ec grabserial: drop pythonX.Y- name prefix
It's an application, not a library/module.

(cherry picked from commit afdbfd9552)
2015-09-07 15:54:58 +02:00
Domen Kožar
b01eebf021 nginx: include mimetypes mapping 2015-09-07 14:43:07 +02:00
Jaka Hudoklin
5a255bb501 kubernetes service: add a few options 2015-09-07 12:50:43 +02:00
Jaka Hudoklin
a8261794c3 openvswitch service: fix ipsec startup order 2015-09-07 12:50:22 +02:00
Domen Kožar
863c121c07 Revert "qemu: 2.2.1 -> 2.4.0"
This reverts commit 0e0e3c0c08.

I've been seeing quite some QEMU segfaults on Hydra,
hopefully reverting the bump will fix the issue.
2015-09-07 12:21:40 +02:00
Domen Kožar
072196adb0 atom: 1.0.0 -> 1.0.4 2015-09-07 12:21:40 +02:00
Jim Garrison
dcd301b4f8 vte (gtk2): apply change-scroll-region.patch (close #9688)
More info (including upstream fix):
cb07c67478/index.html (L754-L773)
Patch from: https://bug542087.bugzilla-attachments.gnome.org/attachment.cgi?id=176035

(cherry picked from commit 7a2c69c785)
2015-09-07 10:57:34 +02:00
Domen Kožar
03e06f2c52 perlPaclages.UnicodeICUCollator: mark as broken 2015-09-06 16:01:06 +02:00
Jaka Hudoklin
1cf322c9da logstash service: fix tests
(cherry picked from commit 93132d1717)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-06 15:59:56 +02:00
Jaka Hudoklin
fe10eaeef7 logstash service: fix startup
(cherry picked from commit 77356690fb)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-06 15:59:53 +02:00
Jaka Hudoklin
ade993815a logstash: fix description and make install process more compact
(cherry picked from commit f364702bb7)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-06 15:59:49 +02:00
Jaka Hudoklin
4ab9327fec etcd service: fix tests
(cherry picked from commit a79d732243)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-06 15:59:45 +02:00
Domen Kožar
cc06f9c0be cups: 2.0.3 -> 2.0.4, fix transient failure 2015-09-06 15:59:18 +02:00
Nikolay Amiantov
ccaeff0b65 julia: fix i686 build 2015-09-05 09:29:07 -05:00
Bob van der Linden
090363255d popcorntime: 0.3.7.2 -> 0.3.8-3
(cherry picked from commit e6e338401f)
2015-09-05 16:02:53 +02:00
Bob van der Linden
48ad172426 node-webkit: added nwjs 0.12.3
(cherry picked from commit b5da2e0237)
2015-09-05 16:02:52 +02:00
Rok Garbas
6b1585ba62 pythonPackages.cython: 0.22.1 -> 0.23.1 2015-09-05 15:00:12 +02:00
Rok Garbas
373c3f9575 pythonPackages.sipsimple: 2.5.0 -> 2.5.1 2015-09-05 15:00:12 +02:00
Rok Garbas
980312ff87 pycangjie: 1.0 -> (master)361bb413203fd43bab624d98edf6f7d20ce6bfd3 2015-09-05 15:00:12 +02:00
Rok Garbas
73d9902402 libcangjie: 1.1 -> (master)a73c1d8783f7b6526fd9b2cc44a669ffa5518d3d 2015-09-05 15:00:12 +02:00
Rok Garbas
747f36df2f blink: 1.4.0 -> 1.4.1 2015-09-05 15:00:11 +02:00
William A. Kennington III
2705e5804e goPackages: Make sure bin is the only output in all-packages 2015-09-05 02:35:04 -07:00
William A. Kennington III
b94b4bed87 goPackages: Cleanups and fixes 2015-09-05 02:32:44 -07:00
William A. Kennington III
a9febe1c8c pond: Fix x86_64 optimizations to be correctly applied to only x86_64 2015-09-05 01:42:14 -07:00
William A. Kennington III
896d62a7e5 drive: Migrate to go-packages 2015-09-05 01:42:14 -07:00
William A. Kennington III
fdb2bfe232 go-repo-root: Move to go-packages 2015-09-05 01:42:14 -07:00
William A. Kennington III
e85ef89c53 gotags: Move to go-packages 2015-09-05 01:42:14 -07:00
William A. Kennington III
27dbdcf380 goimports: Move to go-packages 2015-09-05 01:42:14 -07:00
William A. Kennington III
c13a1141f4 gocode: Move to go-packages 2015-09-05 01:42:13 -07:00
William A. Kennington III
dd858ba537 influxdb-backup: Move to go-packages 2015-09-05 01:42:13 -07:00
William A. Kennington III
bd7274a224 mesos-dns: Move to go-packages 2015-09-05 01:42:13 -07:00
William A. Kennington III
5d2d87265e skydns: Move to go-packages 2015-09-05 01:42:12 -07:00
William A. Kennington III
deea3309e1 bosun: Move to go-packages 2015-09-05 01:42:02 -07:00
William A. Kennington III
0d0cd64556 syncthing: Move to go-packages 2015-09-05 01:42:00 -07:00
William A. Kennington III
a61ab1a44a gpgme: 1.5.5 -> 1.6.0 2015-09-05 01:40:12 -07:00
William A. Kennington III
28a8d8f0b0 libassuan: 2.2.1 -> 2.3.0 2015-09-05 01:40:12 -07:00
William A. Kennington III
4f72a5a65a libgpg-error: 1.19 -> 1.20 2015-09-05 01:40:12 -07:00
William A. Kennington III
1fdbcdd1c5 libassuan2_1: remove
This library was orphaned and out of date so it is fit for removal.
2015-09-05 01:40:12 -07:00
William A. Kennington III
473ca8dc03 libevdev: 1.4.3 -> 1.4.4 2015-09-05 01:40:12 -07:00
William A. Kennington III
141525686c lxd: Don't build test binary 2015-09-04 20:29:32 -07:00
Rickard Nilsson
b05dcea92a bosun,scollector: Fix NixOS modules to use bin attr of go pkgs
(cherry picked from commit ed140ff927)
2015-09-04 21:46:43 +02:00
William A. Kennington III
3b222b449c ceph-git: 2015-08-29 -> 2015-09-04 2015-09-04 12:03:10 -07:00
William A. Kennington III
655d1253e7 ceph-dev: 9.0.2 -> 9.0.3 2015-09-04 12:03:09 -07:00
William A. Kennington III
0f0d286925 ceph-git: 2015-08-18 -> 2015-08-29 2015-09-04 12:03:09 -07:00
William A. Kennington III
1cd5bf00b4 ceph: 0.94.2 -> 0.94.3 2015-09-04 12:03:09 -07:00
William A. Kennington III
b3f29bda9c dhcpcd: 6.9.2 -> 6.9.3 2015-09-04 11:56:01 -07:00
William A. Kennington III
08bafb1a94 tinc_pre: 2015-07-17 -> 2015-07-22 2015-09-04 11:55:52 -07:00
Domen Kožar
3e7fd66ae4 Revert "Updated atom to 1.0.10"
This reverts commit 33a2b03d5f.
2015-09-04 20:15:49 +02:00
Domen Kožar
c8c1adb7bd Revert "accelio: enable tests"
This reverts commit 8b663509b1.

Fails to build kernel modules.

(cherry picked from commit 1819011291)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-04 18:48:12 +02:00
Domen Kožar
f7db087ae6 i3: 4.10.2 -> 4.10.3
(cherry picked from commit 950d9de3c9)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-04 18:48:12 +02:00
Domen Kožar
df7d3cdc6b Xorg: apply patch to fix X crashes
(cherry picked from commit dc0fe8ebf40b7724de1ca0b195236854591fdb5f)
Signed-off-by: Domen Kožar <domen@dev.si>
(cherry picked from commit 66214fba8d)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-04 18:48:12 +02:00
lethalman
ab063687c2 Merge pull request #9642 from Mathnerd314/power-fix
Remove desktopManagerHandlesLidAndPower
(cherry picked from commit 8bfacda44c)
2015-09-04 18:11:31 +02:00
Eelco Dolstra
959f05dfbb Rename users.extraUsers -> users.users, users.extraGroup -> users.groups
The "extra" part hasn't made sense for years.

(cherry picked from commit 14321ae243)
2015-09-04 15:02:47 +02:00
Eelco Dolstra
a54ce7fcd9 command-not-found: Fix nix-env invocation
(cherry picked from commit c090efb9d8)
2015-09-04 15:02:41 +02:00
Eelco Dolstra
7a89feed0a command-not-found: Use attribute name
(cherry picked from commit 13532ee161)
2015-09-04 15:02:37 +02:00
Eelco Dolstra
e248b37a18 Add firefox-esr
(cherry picked from commit a536eda82e)
2015-09-04 15:02:30 +02:00
Eelco Dolstra
d01c55fccc Remove ad hoc README
It's unlikely that people will see this file, so it's kind of
pointless.

(cherry picked from commit 882b2465c2)
2015-09-04 15:02:10 +02:00
Eelco Dolstra
92ee13ce54 Shorten inhibit message
This also makes it consistent with KDE's inhibit message.

(cherry picked from commit f223448d5d)
2015-09-04 15:02:06 +02:00
Eelco Dolstra
8452d2a316 linux: Update to 3.18.21
(cherry picked from commit 90dc8da64d)
2015-09-04 15:01:54 +02:00
Eelco Dolstra
ef04e87fc6 Remove Linux 4.0
It's EOL.

(cherry picked from commit 38a74e27de)
2015-09-04 15:01:50 +02:00
Peter Simons
aa6d17e920 emacs-ido-ubiquitous: add version 3.6-4-gb659bf8
(cherry picked from commit 398fc5d9fe)
2015-09-04 12:42:56 +02:00
Nikolay Amiantov
4a1460f6e7 Revert "bundler-HEAD: fix checksum"
This reverts commit 9cea5bcf2c.
See 9cea5bcf2c (commitcomment-13058505)

(cherry picked from commit c31a677482)
2015-09-04 12:19:14 +02:00
Domen Kožar
4ed27ba319 categories: mark as broken cc #9471 2015-09-04 10:43:12 +02:00
Daniel Fox Franke
ec602c08c3 accelio: enable tests
The patch committed with 88471b684e6544da7691937a9b68cefa49d260d5
makes them work again.

(cherry picked from commit 8b663509b1)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-04 10:00:16 +02:00
Daniel Fox Franke
0d41e2f23c accelio: fix i686-linux build
* Compile with gcc5 to avoid the compiler bug described in
  https://gcc.gnu.org/ml/gcc-patches/2014-05/msg02560.html

* Add a patch to fix the many incorrect printf format specifiers and
  other sloppy type conversions that gcc5 catches and warns on
  (erroring out due to -Werror).

(cherry picked from commit 3129142f80)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-04 10:00:05 +02:00
Ragnar Dahlén
c2d1617b91 docker: Minor improvements, fix failing test
- Replace usage of deprecated CLI flag `--daemon`
- Introduce `storageDriver` option for module
- Fix failing test by using `overlay` storage driver

(cherry picked from commit 9bfe92ecee)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-04 09:55:26 +02:00
Tuomas Tynkkynen
32f5fb74e3 linuxPackages_*.perf: Fix build after kernel 4.1
In 4.1, the build system changed, and it now wants to execute ld like this:

ld -r -o util/scripting-engines/libperf-in.o util/scripting-engines/trace-event-perl.o util/scripting-engines/trace-event-python.o

The actual problem seems to be that `buildInputs = [elfutils ...]`
causes 'ld' to point to elfutils in PATH instead of the usual binutils.

So remove elfutils from buildInputs and set NIX_CFLAGS_* manually. This
is a slight hack, but there is some precedent:
0761f81da7/pkgs/tools/package-management/rpm/default.nix (L13)

Fixes #9095.

(cherry picked from commit 710c4c3c9d)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-04 09:54:57 +02:00
Nikolay Amiantov
c3bb10dc34 julia03: use bundled llvm 2015-09-04 03:29:23 +03:00
Vladimír Čunát
8909f1ea21 hhvm: fixup build
(cherry picked from commit 4af33f24ac)
2015-09-03 22:11:13 +02:00
William A. Kennington III
4d0d7a9068 pond: Migrate to go-packages 2015-09-03 11:30:27 -07:00
William A. Kennington III
76b8513946 goPackages: Update appengine 2015-09-03 11:30:27 -07:00
William A. Kennington III
7061ec8b3f dclxvi: Init at 2013-01-27 2015-09-03 11:30:27 -07:00
William A. Kennington III
e91428717a bind: 9.10.2-P3 -> 9.10.2-P4 2015-09-03 11:30:27 -07:00
William A. Kennington III
8b36a0a1b4 nsq: Remove benchmark utilies as they are uneeded 2015-09-03 11:30:27 -07:00
William A. Kennington III
2067e6ecb3 goPackages: More cleanups 2015-09-03 11:30:26 -07:00
William A. Kennington III
c5849a3918 nsq: Move to go-packages and 0.2.28 -> 0.3.5 2015-09-03 11:30:26 -07:00
William A. Kennington III
d0179b917e serfdom: Migrate to go-packages 2015-09-03 11:30:26 -07:00
William A. Kennington III
a38aefb2d9 asciinema: Move to go-packages 2015-09-03 11:30:26 -07:00
William A. Kennington III
bac23af875 mtpfs: Fix accidental deletion 2015-09-03 11:30:26 -07:00
William A. Kennington III
6159dbc771 mtpfs: Update to 2015-08-01 and move to go-packages 2015-09-03 11:30:26 -07:00
William A. Kennington III
7b10d9c6db all-packages: goPackages Cleanups 2015-09-03 11:30:25 -07:00
William A. Kennington III
e5231900a4 fzf: Move to go-packages and 0.10.0 -> 0.10.4 2015-09-03 11:30:25 -07:00
William A. Kennington III
b4109214af ngrok: Move to go-packages 2015-09-03 11:30:25 -07:00
William A. Kennington III
0f4503f8d7 flannel: Migrate to go-packages 2015-09-03 11:30:25 -07:00
William A. Kennington III
3120b87aa5 rocksdb: 3.12.1 -> 3.13.1 2015-09-03 11:30:24 -07:00
William A. Kennington III
070765f17d chromium: Updates
This bumps the stable and dev track forward a version
2015-09-03 11:30:24 -07:00
Cillian de Róiste
231ff4730a jack2: apply patch to fix build with gcc5 2015-09-03 11:23:17 -07:00
Cillian de Róiste
70e89d8bb8 Revert "jack2: 1.9.10 -> 2015-06-02"
This reverts commit fd829968c7.
2015-09-03 11:23:16 -07:00
Artjom Vejsel
29294bab2f qtcreator: add missing QML modules (fixes #9629)
Fixes empty welcome screen because of missing QML modules.

(cherry picked from commit d169882bb2)
2015-09-03 19:26:46 +02:00
Eelco Dolstra
538958bf17 Create /var/log/journal
Fixes #9614.

(cherry picked from commit 6ab7e0de29)
2015-09-03 18:04:26 +02:00
Peter Simons
8ce463948f cabal2nix: update to version 20180903
(cherry picked from commit 65a415a1b2)
2015-09-03 17:58:38 +02:00
Luca Bruno
e2ebe91991 ffmpeg-full: fix src
(cherry picked from commit e27c796b51)
2015-09-03 16:11:03 +02:00
Peter Simons
88119e0600 haskell-sophia: disable failing test suite 2015-09-03 15:35:56 +02:00
Peter Simons
96cd323239 haskell-base32-bytestring: disable failing test suite 2015-09-03 15:35:56 +02:00
Peter Simons
592626f723 hackage-packages.nix: update to d7dddc66da with hackage2nix v20150824-72-g87526c2 2015-09-03 15:35:56 +02:00
lethalman
854574d83c Merge pull request #9636 from ragnard/rkt-fix-build
rkt: Don't download stage1 image during build.
(cherry picked from commit 66429fa043)
2015-09-03 15:17:10 +02:00
RoboNickBot
a30ecea8f1 texlive-moderntimeline: 0.8 (broken) -> 0.9 (close #9612)
The v0.8 build was broken because the CTAN package updated to v0.9 and
CTAN doesn't keep old versions of packages.

Besides bumping the version, this commit changes the src url from the
unversioned CTAN link (which would break the derivation every time a new
version of the package released, as it did yesterday) to the versioned
Github release link.

(cherry picked from commit 126d8dba96)
2015-09-03 12:03:38 +02:00
Nikolay Amiantov
dae4dc0c6a bundler-HEAD: fix checksum
Related to #8567
2015-09-03 12:23:14 +03:00
Luca Bruno
742cfd37c7 wml: fix build and unbreak
(cherry picked from commit ad99ea6912)
2015-09-03 11:11:05 +02:00
Rok Garbas
15146015d9 dragonegg: does not build with gcc49
https://llvm.org/bugs/show_bug.cgi?id=19847
(cherry picked from commit c7580cd175)
2015-09-03 11:04:13 +02:00
Nikolay Amiantov
28ab937f18 texLiveModerntimeline: fix sha256 checksum
Looks like an upstream update. cc @peti
2015-09-03 12:01:50 +03:00
Domen Kožar
bb776b6226 panamax_ui: fix libv8 pinpoint
(cherry picked from commit c0e97bb547)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-03 10:30:27 +02:00
Domen Kožar
2cfdef1edb redmine: shorten flags line to avoid yaml parsing bug 2015-09-03 10:11:29 +02:00
Bjørn Forsman
8c60418dd3 ffmpeg-full: align pkgname with attrname
Without this, users are presented with this endless loop:

  $ ffplay
  The program ‘ffplay’ is currently not installed. You can install it by
  typing:
    nix-env -i ffmpeg
  $ nix-env -i ffmpeg
  $ ffplay
  The program ‘ffplay’ is currently not installed. You can install it by
  typing:
    nix-env -i ffmpeg

(cherry picked from commit 6483cf1d91)
2015-09-03 09:34:28 +02:00
Rok Garbas
f9500fcaae zbar: typo in previous commit 2015-09-03 03:39:35 +02:00
Rok Garbas
bde0f2c062 zbar: ghostscript was missing for zbar 2015-09-03 03:38:44 +02:00
Cillian de Róiste
93a41c510c Remove tessel: too outdated, and broken
(cherry picked from commit 424ad5302e)
2015-09-02 22:14:20 +02:00
Domen Kožar
1a392bd62e racket: don't build docs as it causes failures sometimes 2015-09-02 21:16:00 +02:00
Domen Kožar
6cfbdda1e9 pcg-c: mark as broken on i686 2015-09-02 20:35:46 +02:00
Domen Kožar
36b406fd1b ocaml.asn1-combinators: mark broken on i686 2015-09-02 20:29:09 +02:00
Domen Kožar
dd3c176717 meshlab: broken on i686
(cherry picked from commit 0dfdb8938b)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-02 20:26:22 +02:00
Domen Kožar
57391b7322 qbittorrent: partial revert of 1d78f31b76
It still fails on 32bit:
http://hydra.nixos.org/build/25460116/nixlog/1/raw
2015-09-02 20:23:06 +02:00
Tobias Geerinckx-Rice
b3dd65100a cassandra: use mirrors
Upstream likes to move "old" releases to an archive mirror as soon as a
new one is released. This is now handled for free by mirrors.nix.

(No idea why cs.utah.edu was used to begin with; it's now added to
mirrors.nix. Note that it doesn't support SSL, but that applies to
several others so I don't see the harm.)

(cherry picked from commit 5385a0a82a)
2015-09-02 20:17:05 +02:00
Tobias Geerinckx-Rice
c75c6a95e2 cassandra: 2.1.8 -> 2.1.9
The 2.1.8 sources have been removed upstream.

(cherry picked from commit 6c377c864a)
2015-09-02 20:14:58 +02:00
Domen Kožar
6d928f4fcc rhpl: really remove 2015-09-02 19:25:53 +02:00
Eelco Dolstra
2f2a4df986 Manual: Document system.autoUpgrade
(cherry picked from commit e70f8c58cc)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-02 19:23:23 +02:00
Eelco Dolstra
9f79592562 If !cfg.mutableUsers, require a password or SSH authorized key
Fixes https://github.com/NixOS/nixpkgs/issues/7308

(cherry picked from commit 6e76765795)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-02 19:22:44 +02:00
Domen Kožar
cd0791f19e remove rhpl, unmaintained since 2009 2015-09-02 19:10:25 +02:00
Shaun Bruce
33a2b03d5f Updated atom to 1.0.10
(cherry picked from commit 6a974efdd2)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-09-02 19:06:58 +02:00
Peter Simons
34189216a6 emacs-haskell-mode: update to version 13.14-169-g0d3569d
(cherry picked from commit f33f8e1b34)
2015-09-02 17:52:59 +02:00
Peter Simons
19a3aa1c5a hoogle: use $NIX_BUILD_CORES to determine the proper level of parallelism for database creation
(cherry picked from commit 07542d12ea)
2015-09-02 17:51:44 +02:00
Peter Simons
f7713cb6b1 hackage-packages.nix: update to 23452bdddd with hackage2nix v20150824-68-ga8b9f17
(cherry picked from commit 7182ef35f4)
2015-09-02 17:51:21 +02:00
Peter Simons
db080e9cde cabal2nix: update to version 20150824-66-gd281a60
This patch fixes https://github.com/NixOS/nixpkgs/issues/9599.

(cherry picked from commit ada81b80fd)
2015-09-02 17:51:19 +02:00
Peter Simons
f6edea1f1c haskell-generic-builder: improve meta.platforms vs. meta.hydraPlatforms logic
hydraPlatforms now defaults to the value of meta.platforms rather than
defaulting to ghc.meta.hydraPlatforms. This solution is, in fact, still
sub-optimal. See https://github.com/NixOS/nixpkgs/issues/9608 for further
details.

(cherry picked from commit dc5bf39bfe)
2015-09-02 16:59:22 +02:00
Bjørn Forsman
ddc34382d2 nixos: document nvidia legacy driver options
(cherry picked from commit bd84ebaa1e)
2015-09-02 13:26:43 +02:00
Peter Simons
2c9596b8ed ikiwiki: use PerlMagick with imagemagickBig rather than the light version
Ikiwiki needs a version of PerlMagick that has ghostscript to fix
https://github.com/NixOS/nixpkgs/issues/9473.

This patch is brought to you courtesy of the venerable @vcunat.
2015-09-02 12:57:07 +02:00
Peter Simons
3f79ef5fe9 all-packages.nix: instantiate 'perlPackages' with callPackage rather than import
This allows us to override the attributes passed to the package set, which is
needed to pass "imagemagickBig" to PerlMagic rather than the normal one (see
next commit).

This patch is brought to you courtesy of the venerable @vcunat.
2015-09-02 12:57:07 +02:00
Peter Simons
2352ef5223 hackage-packages.nix: update to 23452bdddd with hackage2nix v20150824-65-g80afb21 2015-09-02 12:45:12 +02:00
Peter Simons
34f347aae8 Disable test suites of Haskell packages RSA and kademlia.
Those test suites run for 2+ hours and thus fail with a timeout error.

(cherry picked from commit c456073e03)
2015-09-02 12:29:17 +02:00
Luca Bruno
60f22a2409 imagemagickBig: enable ghostscript
(cherry picked from commit 873a6ce9a8)
2015-09-02 11:48:01 +02:00
Rok Garbas
df0f7639fd pythonPackages.scikitlearn: fix for python2
test_standard_scaler_numerical_stability test fails on all i686 platforms
2015-09-02 10:37:19 +02:00
Bjørn Forsman
3a3e377cdc freenect: cosmetic (2 space indents)
(cherry picked from commit c54d939d6d)
2015-09-02 10:28:38 +02:00
Thomas Strobel
bb5c3029b5 xen: remove 4.4.1 + fixes compilation of 4.5.x, fixes #9572 2015-09-02 08:34:23 +02:00
Benjamin Staffin
95bcd9ae95 Add hydra links for upcoming 15.09 release
(cherry picked from commit 8ddc086c35)
2015-09-02 06:14:34 +02:00
Peter Jones
2cf6f7892d curaLulzbot: init at 15.02.1-1.03-5064
(cherry picked from commit 674d0a7992)
2015-09-02 06:14:12 +02:00
Kovacsics Robert (NixOS-SSD2)
12be2af723 txt2tags: init at 2.6
txt2tags is a KISS markup language

(cherry picked from commit 7234e89913)
2015-09-02 06:13:56 +02:00
Profpatsch
4ea3e12b1a desktopManagerHandlesLidAndPower default false`
Changes the option and explicitely sets it for each desktopManager.

Reasoning: Currently,
services.xserver.displayManager.desktopManagerHandlesLidAndPower is set
to true by default. This creates a problem for users without desktop
environments activated, since lid management simply doesn't work
(and they have to be lucky to find this option).

See issue #9671

(cherry picked from commit 44c12dc0ff)
2015-09-02 06:13:34 +02:00
Eelco Dolstra
fadadfdb09 inotifyTools -> inotify-tools
Fixes #9456.

(cherry picked from commit 9013dc5826)
2015-09-02 06:13:17 +02:00
Eelco Dolstra
efca1b8dcb Move some misplaced attributes
(cherry picked from commit 217fbea5f9)
2015-09-02 06:13:01 +02:00
Tobias Geerinckx-Rice
4f49c64675 yodl: Sourceforge -> (fetchFrom)GitHub
Cosmetic tweaks; maintain.

CC@ pSub

(cherry picked from commit cfe12c7edd)
2015-09-02 06:12:26 +02:00
Tobias Geerinckx-Rice
555705da6b icmake: Sourceforge -> (fetchFrom)GitHub
Also add myself as a maintainer.

CC@ pSub

(cherry picked from commit 687d60ec73)
2015-09-02 06:12:00 +02:00
rnhmjoj
199f3a9182 bdf2psf: init at 1.132
(cherry picked from commit d4b4647857)
2015-09-02 06:11:14 +02:00
Gabriel Ebner
3821cfa33c qalculate-gtk: init at 0.9.7
(cherry picked from commit 6b42cd852a)
2015-09-02 06:11:07 +02:00
Andrew Kelley
dbc05b1db2 ffmpeg: 2.7.1 -> 2.7.2
(cherry picked from commit 9dd6f4f6ce)
2015-09-02 06:09:32 +02:00
Kamil Chmielewski
8ca86055d5 bleujeans: fix hanging on connect screen
(cherry picked from commit 4b522294c8)
2015-09-02 06:08:13 +02:00
Nicolas Barbey
1b0f19eab4 fuseiso: init at 20070708
(cherry picked from commit b4215fdda5)
2015-09-02 06:07:56 +02:00
William A. Kennington III
55c0a2ec2b nvidia: 352.30 -> 352.41
(cherry picked from commit dc506110c1)
2015-09-02 06:07:15 +02:00
Nikolay Amiantov
f54020d9c6 wesnoth: 1.10.7 -> 1.12.4
(cherry picked from commit 1d78437848)
2015-09-02 06:06:18 +02:00
Bjørn Forsman
5d8d6fdb63 qt5: embed path to mesa (libGL) in Qt mkspecs file
Fixes this problem, when building apps in QtCreator:

  ...(compile output window)
  g++ -Wl,-rpath,/nix/store/1w7h7p6s2srfw2ady90k7072991lrnpp-qtbase-5.4.2/lib \
      -o qt-test3 main.o mainwindow.o moc_mainwindow.o \
      -L/nix/store/1w7h7p6s2srfw2ady90k7072991lrnpp-qtbase-5.4.2/lib \
      -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread
  /nix/store/b8qhjrwf8sf9ggkjxqqav7f1m6w83bh0-binutils-2.23.1/bin/ld: cannot find -lGL
  collect2: error: ld returned 1 exit status

mesa is already in the closure of Qt, so there is no size increase.
The patch is copied into both qt-5.3 and qt-5.4 directories, like other
patches are.

Note that programs still can _run_ against a different libGL (e.g. one
provided by nvidia) by configuring the dynamic linker. For instance,
NixOS sets the LD_LIBRARY_PATH environment variable to
/run/opengl-driver/lib/, meaning that whatever libGL is found there
will be used instead of the default (mesa).

(cherry picked from commit 06ed82677a)
2015-09-02 06:05:54 +02:00
Daniel Fox Franke
42d3daeb2c cvs-fast-export: don't link against librt
It's superfluous on Linux, and it breaks the build on Darwin.

(cherry picked from commit 07903b1617)
2015-09-02 06:03:43 +02:00
Damien Cassou
f182e4ba7f Change my email address
(cherry picked from commit 41507ce415)
2015-09-02 06:01:30 +02:00
William A. Kennington III
16401f477b kernel: 3.12.46 -> 3.12.47
(cherry picked from commit 5a303519fa)
2015-09-02 06:01:09 +02:00
Enrico Fasoli
33e855b326 ne: init at 3.0.1
ne: building improvements
(cherry picked from commit 0f041e5487)
2015-09-02 06:01:09 +02:00
taku0
34e4caa5ec firefox-bin: 40.0.2 -> 40.0.3
(cherry picked from commit 3f14b5f226)
2015-09-02 06:01:08 +02:00
Benjamin Staffin
af903ecef6 vimproc: Fix when run on non-NixOS linux distros
Prior to this change, if there exists a /lib*/ld-linux*.so.2 on a
system, vimproc will try to load vimproc_linux64.so or
vimproc_linux32.so instead of vimproc_unix.so, which is what nix
actually builds.

(cherry picked from commit a166119486)
2015-09-02 06:00:07 +02:00
Alexander Lebedev
a016d1d8e6 qmidiroute: init at 0.3.0
(cherry picked from commit e96ee79006)
2015-09-02 05:59:42 +02:00
Eelco Dolstra
426156be25 Revert "all-packages: warn when using deprecated attributes"
This reverts commit c53018c9a1. This
causes problems for "nix-env -qa", so we'll have to come up with a
clean solution first.

Issue #9456.

(cherry picked from commit 3ea329c6aa)
2015-09-02 05:58:53 +02:00
Cillian de Róiste
3ce61e11d1 Add artha 1.0.3: an offline thesaurus
(cherry picked from commit cef7bccbbf)
2015-09-02 05:53:17 +02:00
Daniel Fox Franke
d95518332f cvs-fast-export: patch shebangs in source tree
This allows unit tests to run successfully in chroot build
environments, which lack /usr/bin/env.

(cherry picked from commit 0912bdfa92)
2015-09-02 05:53:17 +02:00
Daniel Fox Franke
d77c70c72b cvs-fast-export: init at 1.32
(cherry picked from commit 2194295fff)
2015-09-02 05:53:17 +02:00
Daniel Fox Franke
1186b1216a reposurgeon: init at 3.28
(cherry picked from commit 686fec3ce7)
2015-09-02 05:50:26 +02:00
Jeffrey David Johnson
b284a78bf8 add bitcoin-xt as a separate package
(cherry picked from commit 17c0af24d2)
2015-09-02 05:50:26 +02:00
Kamil Chmielewski
2e67227b49 vimPlugins: add molokai
(cherry picked from commit 86b34e3a0d)
2015-09-02 05:50:26 +02:00
Raymond Gauthier
079632eaf2 libreoffice: improvements.
Icons no longer missing (fix #5509).

In `*.desktop` files:

 -  Replaced absolute path to the the store by the program name.

    This is so that files can be dragged elsewhere by the user
    (e.g.: desktop, bar) and still work after upgrade + garbage
    collection and can be shared between machines.

 -  Replace program name `soffice` by program name `libreoffice`
    so that we're sure the desktop file really refers to our
    package's binary and not start office or open office.

Add the possibility of building without the help. This build is
not modular and take a really long time to complete so I want
a mean of improving shortcuts without having to rebuild the
whole thing (see #899). A wrapper script is the next step.

Tested (build and ran the program) with `en_US` only and
without the help module.

(cherry picked from commit d12563475a)
2015-09-02 05:46:30 +02:00
Vladimír Čunát
09b4a53025 libunwind: security fix for CVE-2015-3239
Thanks to the monitor. Low security and high rebuild impact, but still...

(cherry picked from commit 2dccca399c)
2015-09-02 05:28:31 +02:00
Vladimír Čunát
ff4d55bc00 libevent: remove unused vulnerable 1.4.x version
(cherry picked from commit 0327ee3f8e)
2015-09-02 05:28:31 +02:00
Vladimír Čunát
46bddaeede firefox-gtk3: fix crashes by a Fedora-backported patch
These might be the same crashes as with gtk2 and system cairo #9368.

(cherry picked from commit f2d25c5a4d)
2015-09-02 05:28:30 +02:00
Vladimír Čunát
134b4b4365 firefox: fix argv0 with enableGTK3 (/cc #9562)
Also add a simple test detecting such problems.

(cherry picked from commit f65b692a07)
2015-09-02 05:28:30 +02:00
Thomas Tuegel
25a2acaab6 makeWrapper: accept --argv0 flag (/cc #9562)
By default `makeWrapper` will not set argv[0] (this is a reversion to
the old default behavior). Based on the breakage we have seen from
changing the default, this is what most people want. The `wrapProgram`
function will send `--argv0 '"$0"'` to `makeWrapper`, i.e. it will
continue to pass-through the argv[0] that the wrapper is called with.

(cherry picked from commit 61cad61ebf)
2015-09-02 05:28:30 +02:00
Vladimír Čunát
e0ce2921ee nvidia-x11: don't install libvdpau* that we have already
Besides being redundant to inject libvdpau via LD_LIBRARY_PATH,
currently the drivers come with a vulnerable version.
https://devtalk.nvidia.com/default/topic/873035

(cherry picked from commit 1464a4de57)
2015-09-02 05:27:50 +02:00
Vladimír Čunát
c992f44644 libvdpau: security update 1.1 -> 1.1.1
CVE-2015-{5198,5199,5200}

(cherry picked from commit 5d5c053f68)
2015-09-02 05:27:47 +02:00
Rommel M. Martinez
8c6d4588f7 doc/haskell: fix typos (close #9561)
(cherry picked from commit 23a00d212f)
2015-09-02 05:27:46 +02:00
Vladimír Čunát
9213a2b435 nixos: kill services.virtualboxGuest to fix #9600
(cherry picked from commit 54c4aab662)
2015-09-02 04:55:48 +02:00
William A. Kennington III
02a7cb17e6 syncthing: Fix top-level expression 2015-09-01 19:28:13 -07:00
Bjørn Forsman
c228f1b559 opencv3: unbreak build (set "-DWITH_IPP=OFF")
OpenCV tries to download IPP itself at build time. That doesn't work
well with nix.

(cherry picked from commit fe85ba5806)
2015-09-01 22:26:08 +02:00
Carles Pagès
e3c57169d1 opencv: add version 3.0
Adding as a separate expression, as it is not api compatible with 2.x.

(cherry picked from commit b4ad13f667)
2015-09-01 22:26:05 +02:00
Rok Garbas
1de04e8d7c pythonPackages.scikitlearn: apply patch for doctests on i686 and skip one test
fixes #9472
related scikit-learn/scikit-learn/#5198, scikit-learn/scikit-learn/#5197
2015-09-01 21:44:11 +02:00
Peter Simons
0b57105c12 haskell-bloomfilter: patch to fix build on 32 bit platforms
(cherry picked from commit 2b71e4643e)
2015-09-01 18:03:30 +02:00
Peter Simons
115a19c3fc haskell-bloomfilter: re-enable 32-bit builds to verify whether the issue has in fact been fixed upstream
(cherry picked from commit 8c1c38ee27)
2015-09-01 17:56:27 +02:00
Peter Simons
602b15894c hackage-packages.nix: update to 53c766e346 with hackage2nix v20150824-62-gb54260a
(cherry picked from commit 64629ec611)
2015-09-01 17:56:21 +02:00
Luca Bruno
87adabe576 cromfs: use gcc 4.8 to fix build on i686 (ZHF)
(cherry picked from commit 561fecb239)
2015-09-01 17:39:20 +02:00
Peter Simons
228b7798b6 haskell-DSA fails its test suite.
(cherry picked from commit c7a9fa11c0)
2015-09-01 17:08:21 +02:00
Peter Simons
2c884f3e1e haskell-amazonka-core: test suite build failure has been fixed upstream
(cherry picked from commit 34687b53e6)
2015-09-01 17:08:09 +02:00
Peter Simons
f541f33fd9 haskell-MFlow: build fixed upstream
(cherry picked from commit 0059984294)
2015-09-01 17:08:00 +02:00
Daniel Fox Franke
c6674f84e2 haskell-comonad: re-enable tests
https://github.com/ekmett/comonad/issues/25 is fixed now and they
work again.

(cherry picked from commit 76a497c95e)
2015-09-01 17:07:49 +02:00
Daniel Fox Franke
b51d230229 haskell-lucid: disable tests
They buggily make assumptions about the order in which strings appear
in a hash table and thereby fail on i686-linux. See
http://hydra.nixos.org/build/25132604/log/raw and
https://github.com/chrisdone/lucid/issues/25

(cherry picked from commit cf3e2a5f5b)
2015-09-01 17:07:28 +02:00
Peter Simons
85113ef531 hackage-packages.nix: update to e6301b9ed8 with hackage2nix v20150824-58-g80c45f8
(cherry picked from commit c30410e2dc)
2015-09-01 17:05:45 +02:00
Kosyrev Serge
f8f2f399be ghcNokinds: 2015-07-18 -> 2015-08-26 2015-09-01 17:03:45 +02:00
Peter Simons
f2d10e2c21 ghc-head: update to current HEAD 2015-09-01 17:03:45 +02:00
Peter Simons
8011ceec44 haskell-generic-builder: stop pre-pending "haskell-" to package names
A derivation of the Hackage package "foo" is called "haskell-foo" if it is a
library, but only "foo" if it is an executable (without a library). This
distinction used to be fine when Haskell packages where visible to operations
like "nix-env -qa" or "nix-env -i", but after our switch to Haskell NG it has
no more purpose. Consequently, this patch removes the name prefix from all
Haskell packages -- every Haskell package is now called exactly like it's
called on Hackage.

Closes https://github.com/NixOS/nixpkgs/pull/9538.

(cherry picked from commit 4a8797d827)
2015-09-01 17:02:40 +02:00
Peter Simons
d690c8c2ea ghc-7.10.2: enable documentation builds by passing the required XML/XSLT toolchain
Closes https://github.com/NixOS/nixpkgs/issues/9265.

Also, pass a hscolour binary to get source code links in the generated Haddock
documentation: closes https://github.com/NixOS/nixpkgs/issues/2985.

(cherry picked from commit dea5d87e42)
2015-09-01 17:02:31 +02:00
Peter Simons
1375be2edd ghc: install bash completion shipped in version 7.10.x and later
Addresses one half of https://github.com/NixOS/nixpkgs/issues/9265.

(cherry picked from commit de2c043d5f)
2015-09-01 17:02:25 +02:00
Peter Simons
8a85d5c999 ghc: drop obsolete version 7.10.1
The new 7.10.2 version works fine.

(cherry picked from commit d7055b15b7)
2015-09-01 17:02:18 +02:00
Luca Bruno
e244cfeb35 rosegarden: disable parallel builds
(cherry picked from commit 65c1afd238)
2015-09-01 14:37:56 +02:00
Eelco Dolstra
42b95b2a32 Doh
(cherry picked from commit 79a8a9327d)
2015-09-01 14:21:08 +02:00
Eelco Dolstra
11761d2117 programs.ssh.knownHosts: Use attribute name
This allows writing:

  programs.ssh.knownHosts."10.1.2.3".publicKey = "bar";

instead of

  programs.ssh.knownHosts = [ { hostNames = [ "10.1.2.3" ]; publicKey = "bar"; } ];

(cherry picked from commit f6eece6f8f)
2015-09-01 14:19:33 +02:00
Eelco Dolstra
b023d0dc2c programs.ssh.knownHosts: Use submodule
(cherry picked from commit 7c6ff6c1da)
2015-09-01 14:19:28 +02:00
Eelco Dolstra
d6f69cb3d9 Rename services.openssh.knownHosts -> programs.ssh.knownHosts
This option configures the SSH client, not the server.

(cherry picked from commit 287c08d8a3)
2015-09-01 14:19:23 +02:00
Eelco Dolstra
bdf6095a1d bibtex-tools: Mark as broken
Tarball is missing.

(cherry picked from commit 4725d21583)
2015-09-01 14:18:48 +02:00
Eelco Dolstra
b68fc67f9d openvpn: Update to 2.3.7
(cherry picked from commit 9000ddce90)
2015-09-01 14:18:40 +02:00
Eelco Dolstra
80548a869d Revert "openvpn: 2.3.6 -> 2.3.8"
This reverts commit f547eaab44 because
it breaks asking passphrased via systemd.

(cherry picked from commit a88b9bf19e)
2015-09-01 14:18:36 +02:00
Eelco Dolstra
dc87ca0377 Make proxy test more robust
http://hydra.nixos.org/build/25322489
(cherry picked from commit c839c988f4)
2015-09-01 14:18:30 +02:00
Eelco Dolstra
505fa35cad Mark some packages with undownloadable source as broken
(cherry picked from commit 8fc039188e)
2015-09-01 14:18:16 +02:00
Eelco Dolstra
55fd40b6a3 praat: Update to 5417
Mostly because the old URL didn't work.

(cherry picked from commit 7f0c5a2c8f)
2015-09-01 14:18:12 +02:00
Eelco Dolstra
b76c2cd198 vboot_reference: Fix Git URL
(cherry picked from commit 0f78de00b8)
2015-09-01 14:18:08 +02:00
Eelco Dolstra
07c2ffa70d Fix NFSv4 test
http://hydra.nixos.org/build/25349071
(cherry picked from commit ea7b5bb8b0)
2015-09-01 14:18:01 +02:00
Eelco Dolstra
a882eaa168 Fix tests that use the Valgrind docs
(cherry picked from commit 1852e65776)
2015-09-01 14:17:42 +02:00
Eelco Dolstra
eff6424306 valgrind: Separate doc output
(cherry picked from commit 4e41b64511)
2015-09-01 14:17:25 +02:00
Luca Bruno
a2d110f41f lttng-modules: 2.6.0-5 -> 2.6.2-1, fixes build on kernel 3.18
(cherry picked from commit ffb8143cb1)
2015-09-01 14:11:29 +02:00
Cillian de Róiste
dd27ecff9d helmholtz: unset the curl user-agent to fix the download
I've checked this with the developer to ensure it isn't blocked
deliberately and she said it was just a problem with the hosting
provider, so it is fine to work around it.

(cherry picked from commit 3c7f1431c0)
2015-09-01 13:24:33 +02:00
Luca Bruno
76d7b9f24b ngrok: fix build
(cherry picked from commit 24ae56e7fe)
2015-09-01 11:59:14 +02:00
lethalman
5935245f67 Merge pull request #9589 from ragnard/rkt-fix-image-download
rkt: Don't download stage1 image during build (fixes hydra build).
(cherry picked from commit 81e47bce00)
2015-09-01 11:18:54 +02:00
Rok Garbas
2a0d180693 pythonPackages: fix pyutil on pypy platform 2015-09-01 11:10:52 +02:00
William A. Kennington III
2f989502ef go: Backport changes from master
This also includes a change to gnu parallel to support being used inside
of a nix builder.
2015-09-01 01:57:19 -07:00
Vladimír Čunát
95e761660b desktop and xmonad wrappers: preferLocalBuild
Also no substitution.

(cherry picked from commit b92c4a51e6)
2015-09-01 09:44:08 +02:00
Vladimír Čunát
2a237e7ab3 root: fix build by -lX11
The pkgconfig change didn't help, but I'd leave it in.

(cherry picked from commit a839a48b0a)
2015-09-01 08:23:30 +02:00
Tobias Geerinckx-Rice
2d66fa679a fmit: qt53Full -> modular qt5 (currently 5.4)
See https://github.com/NixOS/nixpkgs/pull/9560.

"Native" Qt audio capture is now broken (patches/time welcome). ALSA
should work just as well and is now enabled by default until Qt is fixed.

(cherry picked from commit be91ec0fd7)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-08-31 19:58:55 +02:00
Luca Bruno
164f2da752 goPackages.image: update to fix build 2015-08-31 14:24:43 +02:00
Luca Bruno
8835e9b121 mongodb-tools: fix top-level definition 2015-08-31 14:19:07 +02:00
Luca Bruno
2ee89e421f mongo-tools: fix build and use go 1.5 2015-08-31 14:17:52 +02:00
Nikolay Amiantov
e87797893e deadbeef: fix patch checksum 2015-08-31 14:58:56 +03:00
Cillian de Róiste
0575243db2 mednafen: fix src url (sourceforge -> mednafen.fobby.net)
Also bump the minor version 0.9.38.5 -> 0.9.38.6

(cherry picked from commit 75f880b1d1)
2015-08-31 13:51:34 +02:00
Aycan iRiCAN
5fba4c5df2 cabal2nix: fixed sha256 hash
(cherry picked from commit 523cd395c7)
2015-08-31 13:20:03 +02:00
Hoang Xuan Phu
986bce5d83 add note about using profiledHaskellPackages
(cherry picked from commit 4f4bf1f79c)
2015-08-31 13:01:40 +02:00
Vladimír Čunát
8e8e23de33 all-packages: warn when using deprecated attributes
The aliases are split into two groups, as mass-renaming is anticipated.
Also added fold markers as in the rest of file.
https://github.com/NixOS/nixpkgs/issues/9456

(cherry picked from commit c53018c9a1)
2015-08-31 09:57:24 +02:00
Tuomas Tynkkynen
6300b4717b xrdb: Use mcpp as the preprocessor
Close #9501, fixes #9480.

By default, xrdb uses GCC as the preprocessor at runtime for X resource files.
However, gcc is a large dependency, so replace it with mcpp, a much smaller
preprocessor (currently under a megabyte on i686).

Arch Linux already does this as well, so this should be relatively safe:
https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/xorg-xrdb

(cherry picked from commit 6b866a37fc)
2015-08-31 09:57:07 +02:00
Daniel Fox Franke
c6e2c62fe4 policycoreutils: fix i686-linux compilation error, closes #9544
This adds a patch to quiet a compiler warning which would be harmless
except that it breaks the build due to use of -Werror.
See http://hydra.nixos.org/build/25151888/nixlog/1
2015-08-31 09:39:54 +02:00
Daniel Fox Franke
9491dad2ea openafs-client: 1.6.9 -> 1.6.14, fix build
* Upgrade 1.6.9 -> 1.6.14
* Support all kernels
* Clean up nested smart-quotes that seemed to be causing a build failure
* Remove redundant `assert isLinux`: already checked by meta.platforms

(cherry picked from commit dbf8feb815)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-08-31 00:18:42 +02:00
Jaka Hudoklin
838034c637 docker: add blkid from utillinux to path
(cherry picked from commit ff0575a2f1)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-08-31 00:15:13 +02:00
Domen Kožar
b4b6b914c4 nettle27: remove uneeded package superseeded by 3.x 2015-08-31 00:07:36 +02:00
Frederik Rietdijk
2ea19c7241 scikit-learn: fix i686 build failures
Currently i686 builds fail because a couple of doctests fail.
The values are correct, but the dtype is missing.
This commit disables doctests.

(cherry picked from commit 46e51883d8)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-08-31 00:06:10 +02:00
Cillian de Róiste
8f826c395d calf: fix src URL (sourceforge->calf-studio-gear.org)
(cherry picked from commit 2c5e423a77)
2015-08-30 19:04:13 +02:00
Thomas Tuegel
7c37002c16 wrapFirefox: remove (broken) sed trick
This sed trick to set argv[0] is made obsolete by c234f37, which sets
argv[0] correctly anyway.
2015-08-30 09:22:37 -05:00
Peter Simons
e979c0f3a1 haskell-lib: make sdistTarball and buildStrictly functions fuzzier to cope with Hydra builds
In Hydra CI environments, the version strings we get from Hydra don't
necessarily match those hard-coded into the Cabal files. To make those builds
succeed anyway, we have to apply some pattern matching.

(cherry picked from commit 78f1720532)
2015-08-30 15:20:53 +02:00
Thomas Tuegel
8b4ab1a043 cantor: patch to fix filename string type 2015-08-30 07:24:41 -05:00
Peter Simons
8531cd862e cabal2nix: add myself as a maintainer
(cherry picked from commit b2c3c58476)
2015-08-30 12:50:59 +02:00
Thomas Tuegel
1a49b0b189 Merge branch 'qt-creator' into release-15.09
Backport some recent fixes for qt5Full and qtcreator to the stable
branch.
2015-08-29 18:15:18 -05:00
Thomas Tuegel
52761ad5b9 qt5Full: build from Qt 5.4 with qtEnv 2015-08-29 18:14:52 -05:00
Thomas Tuegel
101a31964b Add qtEnv 2015-08-29 18:14:43 -05:00
Thomas Tuegel
a27531323e Merge pull request #9343 from akaWolf/qtcreator
qtcreator: refactor for using qt54; qt4SDK, qt5SDK: commented
2015-08-29 18:14:10 -05:00
Benjamin Staffin
ead5cd80f9 consul: revert to stable 0.5.2 rather than a snapshot
Follup to #9515: It appears that Prometheus doesn't actually require an
unreleased version of Consul.
2015-08-29 23:28:11 +02:00
Rok Garbas
5e31bd3d40 pythonPackages.pycdio: applied patch since driver_id can be also long type 2015-08-29 22:04:11 +02:00
Rok Garbas
a902e70d5c pythonPackages.gcutil: fix pinning of google_apputils version
also added some more metadata to the package
2015-08-29 21:38:25 +02:00
Rok Garbas
30a342568c pythonPackages.qscintilla: dont build on py3 and pypy
because qscintilla is not a standard python package ``buildPythonPackage`` is
not used and ``disabled`` does do anything.

diff --git a/pkgs/top-level/python-packages.nix
b/pkgs/top-level/python-packages.nix index 93d40c3..925ceb0 100644 ---
a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix
@@ -11823,35 +11823,36 @@ let }; };

-  qscintilla = pkgs.stdenv.mkDerivation rec {
-    # TODO: Qt5 support
-    name = "qscintilla-${version}";
-    version = pkgs.qscintilla.version;
-    disabled = isPy3k || isPyPy;
-
-    src = pkgs.qscintilla.src;
-
-    buildInputs = with pkgs; [ xorg.lndir qt4 pyqt4 python ];
-
-    preConfigure = ''
-      mkdir -p $out
-      lndir ${pkgs.pyqt4} $out
-      cd Python
-      ${python.executable} ./configure-old.py \
-          --destdir $out/lib/${python.libPrefix}/site-packages/PyQt4 \
-          --apidir $out/api/${python.libPrefix} \
-          -n ${pkgs.qscintilla}/include \
-          -o ${pkgs.qscintilla}/lib \
-          --sipdir $out/share/sip
-    '';
+  qscintilla = if isPy3k || isPyPy
+    then throw "qscintilla-${pkgs.qscintilla.version} not supported for interpreter ${python.executable}"
+    else pkgs.stdenv.mkDerivation rec {
+      # TODO: Qt5 support
+      name = "qscintilla-${version}";
+      version = pkgs.qscintilla.version;
+
+      src = pkgs.qscintilla.src;
+
+      buildInputs = with pkgs; [ xorg.lndir qt4 pyqt4 python ];
+
+      preConfigure = ''
+        mkdir -p $out
+        lndir ${pkgs.pyqt4} $out
+        cd Python
+        ${python.executable} ./configure-old.py \
+            --destdir $out/lib/${python.libPrefix}/site-packages/PyQt4 \
+            --apidir $out/api/${python.libPrefix} \
+            -n ${pkgs.qscintilla}/include \
+            -o ${pkgs.qscintilla}/lib \
+            --sipdir $out/share/sip
+      '';

-    meta = with stdenv.lib; {
-      description = "A Python binding to QScintilla, Qt based text editing control";
-      license = licenses.lgpl21Plus;
-      maintainers = [ "abcz2.uprola@gmail.com" ];
-      platforms = platforms.linux;
+      meta = with stdenv.lib; {
+        description = "A Python binding to QScintilla, Qt based text editing control";
+        license = licenses.lgpl21Plus;
+        maintainers = [ "abcz2.uprola@gmail.com" ];
+        platforms = platforms.linux;
+      };
     };
-  };

   qserve = buildPythonPackage rec {
2015-08-29 21:26:54 +02:00
Peter Simons
c20433c779 haskell-MFlow: fix build
(cherry picked from commit 6b1bcc66ae)
2015-08-29 20:02:06 +02:00
Daniel Fox Franke
337c34c88a haskellPackages.tar: disable tests
They fail on i686-linux: http://hydra.nixos.org/build/25088435/nixlog/2

(cherry picked from commit 17667cd6ac)
2015-08-29 16:10:08 +02:00
Bjørn Forsman
c925898c7e calibre: 2.35.0 -> 2.36.0
Unbreaks build, as the 2.35.0 source URL returns HTTP error 404.

(cherry picked from commit f6135c9fba)
2015-08-29 16:00:16 +02:00
Peter Simons
9b22f386fa Revert "Added K Framework package."
This reverts commit de02110903. The package doesn't
compile: https://github.com/NixOS/nixpkgs/pull/7419#issuecomment-135972366.

(cherry picked from commit 69b648ea95)
2015-08-29 15:39:22 +02:00
Joachim Fasting
3c53718204 fuppes: mark as broken
This package has been broken since 2014-01-20, according to Hydra [1]. I tried
various ad-hoc patching & adding missing dependencies, uncovering yet more
errors. Updating is also out of the question, as nixpkgs already contains the
latest version.

[1]: https://hydra.nixos.org/build/25188337

(cherry picked from commit 624eba1885)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-08-29 14:54:49 +02:00
Domen Kožar
dc8e1c199c petrifoo: fix build 2015-08-29 14:12:18 +02:00
Daniel Fox Franke
3490a95bca glob2: fix build failure
The same issue was reported here to Debian:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=746854

Apparently this failure only cropped up with g++-4.9, but looking at
the code I have no idea how it ever worked without this patch.

(cherry picked from commit 7f26d95dcf)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-08-29 14:05:54 +02:00
Benjamin Staffin
1b89ad283f prometheus: 0.14.0 -> 0.15.1 2015-08-29 14:02:27 +02:00
Benjamin Staffin
be47fc4672 goPackages: update various Prometheus dependencies
Improving style and adding dates along the dependency tree.
2015-08-29 14:02:27 +02:00
Domen Kožar
172d2793b9 pythonPackages.protobuf: disable on pypy 2015-08-29 13:16:22 +02:00
Frederik Rietdijk
6ad387b378 importlib: disable for Python>2.6 and PyPy
importlib is part of the standard library for Python > 2.6 and PyPy.

Tested with nix-shell for all *Packages.importlib versions.

(cherry picked from commit 50aed1ee10)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-08-29 13:13:18 +02:00
Frederik Rietdijk
9bb81411a9 nibabel: remove failing test
One of the tests explicitly calls python, which will fail with python3.
The issue has been reported upstream,
https://github.com/nipy/nibabel/issues/341
For now, remove the test.

Fix also the license type.

(cherry picked from commit 2927f1a883)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-08-29 13:11:10 +02:00
Frederik Rietdijk
2b689c9a51 pyfribidi: disable for pypy
Extension module. pypy is unsupported.

(cherry picked from commit 15aa28f71b)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-08-29 13:11:01 +02:00
Sibi
113d702d13 Add myself as maintainer (close #9495).
Related to https://github.com/NixOS/cabal2nix/pull/196

(cherry picked from commit 89cec3c895)
2015-08-29 10:38:10 +02:00
Peter Simons
a9fbc485ae doc: add "other resources" section to haskell-users-guide.xml
(cherry picked from commit ab37ad22f7)
2015-08-28 23:00:17 +02:00
Peter Simons
27858fde0f haskell-modules: synchronize overrides with "master" at d34f7ded49
This should reduce the number of Haskell related build errors to zero on
Linux/x86_64 and (hopefully) on Linux/i686, too. Further efforts are necessary
to achieve the same on Darwin.

This patches is related to https://github.com/NixOS/nixpkgs/issues/9471.
2015-08-28 22:31:25 +02:00
Peter Simons
c43e9a5e7b hackage-packages.nix: update to ca23e76c2e with hackage2nix v20150824-45-g9a3a80d 2015-08-28 22:29:50 +02:00
Eelco Dolstra
4a63983ba3 Don't barf JSON at users in error messages
(cherry picked from commit f15270833a)
2015-08-28 20:55:39 +02:00
Eelco Dolstra
13715ccddb Revert "Apache service module: allow compression"
This reverts commit 164f6ff2a8 per
https://github.com/NixOS/nixpkgs/pull/9407#issuecomment-134523359
(it's too site-specific). Furthermore this should be an option at the
virtual host level.

(cherry picked from commit 9d82f7e53e)
2015-08-28 20:55:20 +02:00
Eelco Dolstra
7e3a8b382a Rename rl-unstable.xml -> rl-1509.xml
(cherry picked from commit d4ccd68648)
2015-08-28 20:54:35 +02:00
Eelco Dolstra
33d3fe8a08 firefox: Update to 40.0.3
(cherry picked from commit 0619a23236)
2015-08-28 20:54:10 +02:00
Domen Kožar
ca93c2592d hedgewars: add missing patch
(cherry picked from commit 93e8a121c8)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-08-28 17:09:53 +02:00
Luca Bruno
68a4111111 gcloud-golang: mark as broken
(cherry picked from commit 01a874b3cf)
2015-08-28 15:19:42 +02:00
Domen Kožar
d48f46c1f4 hedgewars: 0.9.20.5 -> 0.9.21, fix build 2015-08-28 13:59:57 +02:00
Luca Bruno
9be7d99671 gcr: 3.14.0 -> 3.16.0, should fix race condition during build
(cherry picked from commit 77354ebacd)
2015-08-28 11:35:41 +02:00
Frederik Rietdijk
7d1a63d173 gmpy/gmpy2 disable for PyPy
gmpy and gmpy2 are both extension modules that cannot be used with PyPy.

(cherry picked from commit 6ec74dfdef)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-08-28 10:28:20 +02:00
Domen Kožar
43b3f6e59d setuptools: 18.0.1 -> 18.2 2015-08-27 18:45:48 +02:00
Domen Kožar
6339f48dfb Revert "vagrant: use ruby 2.2"
This reverts commit c00405d8d9.
2015-08-27 13:41:55 +02:00
Domen Kožar
59e02e5d61 docker: fix build on i686
(cherry picked from commit e65fce3af6)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-08-27 13:22:54 +02:00
Domen Kožar
959ab2ebcc fix python_fedora build 2015-08-27 12:52:23 +02:00
Luca Bruno
ec9ccc6865 pidginsipe: add nss and nspr (ZHF)
(cherry picked from commit c91d360cec)
2015-08-27 12:30:04 +02:00
Luca Bruno
4a1c7fdaac freeswitch: use gcc 4.8 to fix build (ZHF)
(cherry picked from commit 591d43ec91)
2015-08-27 12:00:42 +02:00
Eelco Dolstra
a905765f1b firefox: Build with internal cairo
This might fix the recent segfaults, according to
https://bugzilla.redhat.com/show_bug.cgi?id=1253086.

Fixes #9368.

(cherry picked from commit 320f963e16)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-08-27 11:34:39 +02:00
Domen Kožar
434a06532d mongodb-tools, drive, bosun, scollector: use Go 1.4
(cherry picked from commit 9855a8fcc0)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-08-27 11:34:00 +02:00
Domen Kožar
5384c08ea6 upgrade python-fedora, taskw 2015-08-27 11:16:04 +02:00
Bjørn Forsman
1af712b95c opencv: remove duplicated -DCMAKE_BUILD_TYPE=Release flag
The standard builder already does this.

(cherry picked from commit ac613f0748)
2015-08-27 10:54:50 +02:00
Domen Kožar
c00405d8d9 vagrant: use ruby 2.2 2015-08-27 10:51:37 +02:00
Jascha Geerds
db542ceecf cups: Fix printing test
(cherry picked from commit ab70c601b6)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-08-27 09:37:31 +02:00
Domen Kožar
7ea892d49e Get rid of newline in .version 2015-08-27 00:33:49 +02:00
Domen Kožar
f8785253d7 set the channel and commit count in the release 2015-08-27 00:25:31 +02:00
Domen Kožar
423f7ad646 15.08 -> 15.09 2015-08-27 00:12:40 +02:00
37247 changed files with 1273718 additions and 3244489 deletions

View File

@@ -1,97 +0,0 @@
# EditorConfig configuration for nixpkgs
# https://EditorConfig.org
# Top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file, utf-8 charset
[*]
end_of_line = lf
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}]
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}]
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
# Although Markdown/CommonMark allows using two trailing spaces to denote
# a hard line break, we do not use that feature in nixpkgs since
# it forces the surrounding paragraph to become a <literallayout> which
# does not wrap reasonably.
# Instead of a hard line break, start a new paragraph by inserting a blank line.
[*.md]
trim_trailing_whitespace = true
# binaries
[*.nib]
end_of_line = unset
insert_final_newline = unset
trim_trailing_whitespace = unset
charset = 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

View File

@@ -1,41 +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
# fix indentation in meteor default.nix
a37a6de881ec4c6708e6b88fd16256bbc7f26bbd

17
.gitattributes vendored
View File

@@ -1,17 +0,0 @@
**/deps.nix linguist-generated
**/deps.json 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

313
.github/CODEOWNERS vendored
View File

@@ -1,313 +0,0 @@
# CODEOWNERS file
#
# This file is used to describe who owns what in this repository. This file does not
# replace `meta.maintainers` but is instead used for other things than derivations
# and modules, like documentation, package sets, and other assets.
#
# 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/path.* @infinisil @fricklerhandwerk
# 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/generic/check-meta.nix @Ericson2314 @matthewbauer @piegamesde
/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 make-disk-image
/doc/builders/images/makediskimage.section.md @raitobezarius
/nixos/lib/make-disk-image.nix @raitobezarius
# Nixpkgs documentation
/maintainers/scripts/db-to-md.sh @jtojnar @ryantm
/maintainers/scripts/doc @jtojnar @ryantm
/doc/* @fricklerhandwerk
/doc/build-aux/pandoc-filters @jtojnar
/doc/builders/trivial-builders.chapter.md @fricklerhandwerk
/doc/contributing/ @fricklerhandwerk
/doc/contributing/contributing-to-documentation.chapter.md @jtojnar @fricklerhandwerk
/doc/stdenv @fricklerhandwerk
/doc/using @fricklerhandwerk
# NixOS Internals
/nixos/default.nix @nbp @infinisil
/nixos/lib/from-env.nix @nbp @infinisil
/nixos/lib/eval-config.nix @nbp @infinisil
/nixos/doc/manual/configuration/abstractions.xml @nbp
/nixos/doc/manual/configuration/config-file.xml @nbp
/nixos/doc/manual/configuration/config-syntax.xml @nbp
/nixos/doc/manual/configuration/modularity.xml @nbp
/nixos/doc/manual/development/assertions.xml @nbp
/nixos/doc/manual/development/meta-attributes.xml @nbp
/nixos/doc/manual/development/option-declarations.xml @nbp
/nixos/doc/manual/development/option-def.xml @nbp
/nixos/doc/manual/development/option-types.xml @nbp
/nixos/doc/manual/development/replace-modules.xml @nbp
/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/modules/system/activation/bootspec.nix @grahamc @cole-h @raitobezarius
/nixos/modules/system/activation/bootspec.cue @grahamc @cole-h @raitobezarius
# 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 @mweinelt
/pkgs/development/tools/poetry2nix @adisbladis
/pkgs/development/interpreters/python/hooks @FRidh @jonringer
# 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 @dasJ
/pkgs/top-level/perl-packages.nix @stigtsp @zakame @dasJ
/pkgs/development/perl-modules @stigtsp @zakame @dasJ
# R
/pkgs/applications/science/math/R @jbedo
/pkgs/development/r-modules @jbedo
# Ruby
/pkgs/development/interpreters/ruby @marsam
/pkgs/development/ruby-modules @marsam
# Rust
/pkgs/development/compilers/rust @Mic92 @LnL7 @zowoq @winterqt @figsoda
/pkgs/build-support/rust @zowoq @winterqt @figsoda
/doc/languages-frameworks/rust.section.md @zowoq @winterqt @figsoda
# 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
# Certificate Authorities
pkgs/data/misc/cacert/ @ajs124 @lukegb @mweinelt
pkgs/development/libraries/nss/ @ajs124 @lukegb @mweinelt
pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
# Jetbrains
/pkgs/applications/editors/jetbrains @edwtjo
# Licenses
/lib/licenses.nix @alyssais
# 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/modules/services/monitoring/prometheus/exporters/kea.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 @figsoda @jonringer @teto
# VimPlugins
/pkgs/applications/editors/vim/plugins @figsoda @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
/pkgs/build-support/make-hardcode-gsettings-patch @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
/nixos/modules/services/misc/heisenbridge.nix @piegamesde
/nixos/modules/services/misc/matrix-conduit.nix @piegamesde
/nixos/tests/matrix-conduit.nix @piegamesde
# Dotnet
/pkgs/build-support/dotnet @IvarWithoutBones
/pkgs/development/compilers/dotnet @IvarWithoutBones
# Node.js
/pkgs/build-support/node/build-npm-package @winterqt
/pkgs/build-support/node/fetch-npm-deps @winterqt
/doc/languages-frameworks/javascript.section.md @winterqt

View File

@@ -1,11 +0,0 @@
## Issue description
### Steps to reproduce
## Technical details
Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result.

View File

@@ -1,41 +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,39 +0,0 @@
---
name: Build failure
about: Create a report to help us improve
title: 'Build failure: PACKAGENAME'
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,32 +0,0 @@
---
name: Missing or incorrect documentation
about: Help us improve the Nixpkgs and NixOS reference manuals
title: 'Documentation: '
labels: '9.needs: documentation'
assignees: ''
---
## Problem
<!-- describe your problem -->
## Proposal
<!-- propose a solution (optional) -->
## Checklist
<!-- make sure this issue is not redundant or obsolete -->
- [ ] checked [latest Nixpkgs manual] \([source][nixpkgs-source]) and [latest NixOS manual] \([source][nixos-source])
- [ ] checked [open documentation issues] for possible duplicates
- [ ] checked [open documentation pull requests] for possible solutions
[latest Nixpkgs manual]: https://nixos.org/manual/nixpkgs/unstable/
[latest NixOS manual]: https://nixos.org/manual/nixos/unstable/
[nixpkgs-source]: https://github.com/NixOS/nixpkgs/tree/master/doc
[nixos-source]: https://github.com/NixOS/nixpkgs/tree/master/nixos/doc/manual
[open documentation issues]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+label%3A%229.needs%3A+documentation%22
[open documentation pull requests]: https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+is%3Apr+label%3A%228.has%3A+documentation%22%2C%226.topic%3A+documentation%22

View File

@@ -1,28 +0,0 @@
---
name: Out-of-date package reports
about: For packages that are out-of-date
title: 'Update request: PACKAGENAME OLDVERSION → NEWVERSION'
labels: '9.needs: package (update)'
assignees: ''
---
- Package name:
- Latest released version:
<!-- Search your package here: https://search.nixos.org/packages?channel=unstable -->
- Current version on the unstable channel:
- Current version on the stable/release channel:
<!--
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)
**Notify maintainers**
<!-- If the search.nixos.org result shows no maintainers, tag the person that last updated the package. -->
-----
Note for maintainers: Please tag this issue in your PR.

View File

@@ -1,19 +0,0 @@
---
name: Packaging requests
about: For packages that are missing
title: 'Package request: PACKAGENAME'
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,31 +0,0 @@
---
name: Unreproducible package
about: A package that does not produce a bit-by-bit reproducible result each time it is built
title: ''
labels: [ '0.kind: enhancement', '6.topic: reproducible builds' ]
assignees: ''
---
Building this package twice does not produce the bit-by-bit identical result each time, making it harder to detect CI breaches. You can read more about this at https://reproducible-builds.org/ .
Fixing bit-by-bit reproducibility also has additional advantages, such as avoiding hard-to-reproduce bugs, making content-addressed storage more effective and reducing rebuilds in such systems.
### Steps To Reproduce
```
nix-build '<nixpkgs>' -A ... --check --keep-failed
```
You can use `diffoscope` to analyze the differences in the output of the two builds.
To view the build log of the build that produced the artifact in the binary cache:
```
nix-store --read-log $(nix-instantiate '<nixpkgs>' -A ...)
```
### Additional context
(please share the relevant fragment of the diffoscope output here,
and any additional analysis you may have done)

View File

@@ -1,40 +0,0 @@
###### Description of changes
<!--
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. -->
- 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/`)
- [23.05 Release Notes (or backporting 22.11 Release notes)](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#generating-2305-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
- [ ] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/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+)

View File

@@ -1,6 +0,0 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"

181
.github/labeler.yml vendored
View File

@@ -1,181 +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/**/*
- nixos/modules/services/x11/desktop-managers/cinnamon.nix
- nixos/tests/cinnamon.nix
"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: Enlightenment DE":
- nixos/modules/services/x11/desktop-managers/enlightenment.nix
- pkgs/desktops/enlightenment/**/*
- pkgs/development/python-modules/python-efl/*
"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: Lumina DE":
- nixos/modules/services/x11/desktop-managers/lumina.nix
- pkgs/desktops/lumina/**/*
"6.topic: LXQt":
- nixos/modules/services/x11/desktop-managers/lxqt.nix
- pkgs/desktops/lxqt/**/*
"6.topic: mate":
- nixos/modules/services/x11/desktop-managers/mate.nix
- nixos/tests/mate.nix
- pkgs/desktops/mate/**/*
"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: vscode":
- pkgs/applications/editors/vscode/**/*
"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,34 +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 korthout/backport-action to create branch
pull-requests: write # for korthout/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:
ref: ${{ github.event.pull_request.head.sha }}
- name: Create backport PRs
uses: korthout/backport-action@v1.1.0
with:
# Config README: https://github.com/korthout/backport-action#backport-action
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@v18
- uses: cachix/cachix-action@v12
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,21 +0,0 @@
#!/usr/bin/env nix-shell
#! nix-shell -i bash -p html-tidy
set -euo pipefail
shopt -s inherit_errexit
normalize() {
tidy \
--anchor-as-name no \
--coerce-endtags no \
--escape-scripts no \
--fix-backslash no \
--fix-style-tags no \
--fix-uri no \
--indent yes \
--wrap 0 \
< "$1" \
2> /dev/null
}
diff -U3 <(normalize "$1") <(normalize "$2")

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 "ismerge=$ISMERGE" >> $GITHUB_OUTPUT
# 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 treewide]')"
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@v18
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' && !contains(github.event.pull_request.title, '[skip treewide]')"
steps:
- uses: actions/labeler@v4
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
sync-labels: true

View File

@@ -1,39 +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@v18
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
- uses: cachix/cachix-action@v12
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 with DocBook options
run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true nixos/release.nix -A manual.x86_64-linux
- name: Building NixOS manual with Markdown options
run: |
export NIX_PATH=nixpkgs=$(pwd)
nix-build \
--option restrict-eval true \
--arg configuration '{ documentation.nixos.options.allowDocBook = false; }' \
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@v18
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
- uses: cachix/cachix-action@v12
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,64 +0,0 @@
name: "Check NixOS Manual DocBook rendering against MD rendering"
on:
schedule:
# * is a special character in YAML so you have to quote this string
# Check every 24 hours
- cron: '0 0 * * *'
permissions:
contents: read
jobs:
check-rendering-equivalence:
permissions:
pull-requests: write # for peter-evans/create-or-update-comment to create or update comment
if: github.repository_owner == 'NixOS'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v18
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
- uses: cachix/cachix-action@v12
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: Build DocBook and MD manuals
run: |
export NIX_PATH=nixpkgs=$(pwd)
nix-build \
--option restrict-eval true \
-o docbook nixos/release.nix \
-A manual.x86_64-linux
nix-build \
--option restrict-eval true \
--arg configuration '{ documentation.nixos.options.allowDocBook = false; }' \
-o md nixos/release.nix \
-A manual.x86_64-linux
- name: Compare DocBook and MD manuals
id: check
run: |
export NIX_PATH=nixpkgs=$(pwd)
.github/workflows/compare-manuals.sh \
docbook/share/doc/nixos/options.html \
md/share/doc/nixos/options.html
# if the manual can't be built we don't want to notify anyone.
# while this may temporarily hide rendering failures it will be a lot
# less noisy until all nixpkgs pull requests have stopped using
# docbook for option docs.
- name: Comment on failure
uses: peter-evans/create-or-update-comment@v2
if: ${{ failure() && steps.check.conclusion == 'failure' }}
with:
issue-number: 189318
body: |
Markdown and DocBook manuals do not agree.
Check https://github.com/NixOS/nixpkgs/actions/runs/${{ github.run_id }} for details.

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,33 +0,0 @@
name: "Set pending OfBorg status"
on:
pull_request_target:
# Sets the ofborg-eval status to "pending" to signal that we are waiting for
# OfBorg even if it is running late. The status will be overwritten by OfBorg
# once it starts evaluation.
# WARNING:
# When extending this action, be aware that $GITHUB_TOKEN allows (restricted) 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:
if: github.repository_owner == 'NixOS'
permissions:
statuses: write
runs-on: ubuntu-latest
steps:
- name: "Set pending OfBorg status"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
curl \
-X POST \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: Bearer $GITHUB_TOKEN" \
-d '{"context": "ofborg-eval", "state": "pending", "description": "Waiting for OfBorg..."}' \
"https://api.github.com/repos/NixOS/nixpkgs/commits/${{ github.event.pull_request.head.sha }}/statuses"

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
pull-requests: 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.11
into: staging-next-22.11
- from: staging-next-22.11
into: staging-22.11
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
pull-requests: 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,57 +0,0 @@
name: "Update terraform-providers"
on:
schedule:
- cron: "0 3 * * *"
workflow_dispatch:
permissions:
contents: read
jobs:
tf-providers:
permissions:
contents: write # for peter-evans/create-pull-request to create branch
pull-requests: write # for peter-evans/create-pull-request to create a PR, for peter-evans/create-or-update-comment to create or update comment
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@v18
with:
nix_path: nixpkgs=channel:nixpkgs-unstable
- name: setup
id: setup
run: |
echo "title=terraform-providers: update $(date -u +"%Y-%m-%d")" >> $GITHUB_OUTPUT
- name: update terraform-providers
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config user.name "github-actions[bot]"
echo | nix-shell \
maintainers/scripts/update.nix \
--argstr commit true \
--argstr keep-going true \
--argstr max-workers 2 \
--argstr path terraform-providers
- name: clean repo
run: |
git clean -f
- 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.
https://github.com/NixOS/nixpkgs/actions/runs/${{ github.run_id }}
Check that all providers build with:
```
@ofborg build terraform.full
```
branch: terraform-providers-update
delete-branch: false
title: ${{ steps.setup.outputs.title }}
token: ${{ secrets.GITHUB_TOKEN }}

23
.gitignore vendored
View File

@@ -2,32 +2,17 @@
,*
.*.swp
.*.swo
.\#*
\#*\#
.idea/
.vscode/
outputs/
result-*
result
!pkgs/development/python-modules/result
result-*
/doc/NEWS.html
/doc/NEWS.txt
/doc/manual.html
/doc/manual.pdf
/result
/source/
.version-suffix
.DS_Store
.mypy_cache
__pycache__
/pkgs/applications/kde-apps-*/tmp/
/pkgs/development/libraries/kde-frameworks-*/tmp/
/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/plasma-*/tmp/

View File

@@ -1,14 +0,0 @@
ajs124 <git@ajs124.de> <ajs124@users.noreply.github.com>
Anderson Torres <torres.anderson.85@protonmail.com>
Daniel Løvbrøtte Olsen <me@dandellion.xyz> <daniel.olsen99@gmail.com>
Fabian Affolter <mail@fabian-affolter.ch> <fabian@affolter-engineering.ch>
Janne Heß <janne@hess.ooo> <dasJ@users.noreply.github.com>
Jörg Thalheim <joerg@thalheim.io> <Mic92@users.noreply.github.com>
Martin Weinelt <hexa@darmstadt.ccc.de> <mweinelt@users.noreply.github.com>
R. RyanTM <ryantm-bot@ryantm.com>
Robert Hensing <robert@roberthensing.nl> <roberth@users.noreply.github.com>
Sandro Jäckel <sandro.jaeckel@gmail.com>
Sandro Jäckel <sandro.jaeckel@gmail.com> <sandro.jaeckel@sap.com>
superherointj <5861043+superherointj@users.noreply.github.com>
Vladimír Čunát <v@cunat.cz> <vcunat@gmail.com>
Vladimír Čunát <v@cunat.cz> <vladimir.cunat@nic.cz>

6
.travis.yml Normal file
View File

@@ -0,0 +1,6 @@
language: python
python: "3.4"
sudo: required
before_install: ./maintainers/scripts/travis-nox-review-pr.sh nix
install: ./maintainers/scripts/travis-nox-review-pr.sh nox
script: ./maintainers/scripts/travis-nox-review-pr.sh build

View File

@@ -1 +1 @@
23.05
15.09

View File

@@ -1,145 +1,12 @@
# 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
* [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
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 short, just one sentence.
* Be capitalized.
* Not start with the package name.
* More generally, it should not refer to the package name.
* Not end with a period (or any punctuation for that matter).
* `meta.license` must be set and fit the upstream license.
* If there is no upstream license, `meta.license` should default to `lib.licenses.unfree`.
* If in doubt, try to contact the upstream developers for clarification.
* `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.
Package version upgrades usually allow for simpler commit messages, including attribute name, old and new version, as well as a reference to the relevant release notes/changelog. Every once in a while a package upgrade requires more extensive changes, and that subsequently warrants a more verbose message.
Pull requests should not be squash merged in order to keep complete commit messages and GPG signatures intact and must not be when the change doesn't make sense as a single commit.
This means that, when addressing review comments in order to keep the pull request in an always mergeable status, you will sometimes need to rewrite your branch's history and then force-push it with `git push --force-with-lease`.
Useful git commands that can help a lot with this are `git commit --patch --amend` and `git rebase --interactive`. For more details consult the git man pages or online resources like [git-rebase.io](https://git-rebase.io/) or [The Pro Git Book](https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History).
## 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 assume that the current branch, called `feature`,
is based on `master`, and we rebase it onto the merge base between
`master` and `staging` so that the PR can eventually be retargeted to
`staging` without causing a mess. The example uses `upstream` as the remote for `NixOS/nixpkgs.git`
while `origin` is the remote you are pushing to.
```console
# Rebase your commits onto the common merge base
git rebase --onto upstream/staging... upstream/master
# Force push your changes
git push origin feature --force-with-lease
```
The syntax `upstream/staging...` is equivalent to `upstream/staging...HEAD` and
stands for the merge base between `upstream/staging` and `HEAD` (hence between
`upstream/staging` and `upstream/master`).
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 feature --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.11` 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.11`. Do not use a _channel branch_ like `nixos-22.11` or `nixpkgs-22.11-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.11`) as the target branch of the pull request, and link to the pull request in which the original change was committed to `master`. The pull request title should be the commit title with the release version as prefix, e.g. `[22.11]`.
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 23.05 Release Notes
<!--
note: title unchanged even though we don't need regeneration because extant
PRs will link here. definitely change the title for 23.11 though.
-->
Documentation in nixpkgs is transitioning to a markdown-centric workflow. In the past release notes required a translation step to convert from markdown to a compatible docbook document, but this is no longer necessary.
Steps for updating 23.05 Release notes:
1. Edit `nixos/doc/manual/release-notes/rl-2305.section.md` with the desired changes
2. Commit changes to `rl-2305.section.md`.
## Reviewing contributions
See the nixpkgs manual for more details on how to [Review contributions](https://nixos.org/nixpkgs/manual/#chap-reviewing-contributions).
See the nixpkgs manual for details on how to [Submit changes to nixpkgs](http://hydra.nixos.org/job/nixpkgs/trunk/manual/latest/download-by-type/doc/manual#chap-submitting-changes).

13
COPYING
View File

@@ -1,4 +1,4 @@
Copyright (c) 2003-2023 Eelco Dolstra and the Nixpkgs/NixOS contributors
Copyright (c) 2003-2006 Eelco Dolstra
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
@@ -18,3 +18,14 @@ 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.). Also, the license does not apply
to some of the binaries used for bootstrapping Nixpkgs (e.g.,
pkgs/stdenv/linux/tools/bash). 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.

139
README.md
View File

@@ -1,119 +1,44 @@
<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="http://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>
[![Build Status](https://travis-ci.org/NixOS/nixpkgs.svg?branch=master)](https://travis-ci.org/NixOS/nixpkgs)
[![Issue Stats](http://www.issuestats.com/github/nixos/nixpkgs/badge/pr)](http://www.issuestats.com/github/nixos/nixpkgs)
[![Issue Stats](http://www.issuestats.com/github/nixos/nixpkgs/badge/issue)](http://www.issuestats.com/github/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](http://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-14.12` for the latest
release and `nixos-unstable` for the latest successful build of master:
# Community
```
% git remote update channels
% git rebase channels/nixos-14.12
```
* [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/)
* [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
* [Continuous package builds for the NixOS 22.11 release](https://hydra.nixos.org/jobset/nixos/release-22.11)
* [Continuous package builds for 14.12 release](https://hydra.nixos.org/jobset/nixos/release-14.12)
* [Continuous package builds for 15.09 release](https://hydra.nixos.org/jobset/nixos/release-15.09)
* [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)
* [Tests for the NixOS 22.11 release](https://hydra.nixos.org/job/nixos/release-22.11/tested#tabs-constituents)
* [Tests for 14.12 release](https://hydra.nixos.org/job/nixos/release-14.12/tested#tabs-constituents)
* [Tests for 15.09 release](https://hydra.nixos.org/job/nixos/release-15.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](http://lists.science.uu.nl/mailman/listinfo/nix-dev)
* [IRC - #nixos on freenode.net](irc://irc.freenode.net/#nixos)

View File

@@ -1,28 +1,9 @@
let requiredVersion = import ./lib/minver.nix; in
let requiredVersion = "1.8"; in
if ! builtins ? nixVersion || builtins.compareVersions requiredVersion builtins.nixVersion == 1 then
abort ''
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 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
''
abort "This version of Nixpkgs requires Nix >= ${requiredVersion}, please upgrade! See https://nixos.org/wiki/How_to_update_when_Nix_is_too_old_to_evaluate_Nixpkgs"
else
import ./pkgs/top-level/impure.nix
import ./pkgs/top-level/all-packages.nix

8
doc/.gitignore vendored
View File

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

View File

@@ -1,116 +0,0 @@
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 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=$(PANDOC_LINK_MANPAGES_FILTER) \
--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
.PHONY: all
all: validate format 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
.PHONY: validate
validate: manual-full.xml doc-support/result
jing doc-support/result/docbook.rng manual-full.xml
out/html/index.html: doc-support/result manual-full.xml style.css highlightjs
mkdir -p out/html
xsltproc \
--nonet --xinclude \
--output $@ \
doc-support/result/xhtml.xsl \
./manual-full.xml
mkdir -p out/html/highlightjs/
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/
chmod u+w -R out/html/
out/epub/manual.epub: manual-full.xml
mkdir -p out/epub/scratch
xsltproc --nonet \
--output out/epub/scratch/ \
doc-support/result/epub.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/
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
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/
manual-full.xml: ${MD_TARGETS} .version functions/library/locations.xml functions/library/generated *.xml **/*.xml **/**/*.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
%.section.xml: %.section.md
$(PANDOC) $^ -t docbook \
$(pandoc_flags) \
-o $@
%.chapter.xml: %.chapter.md
$(PANDOC) $^ -t docbook \
--top-level-division=chapter \
$(pandoc_flags) \
-o $@

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,44 +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'
elseif elem.attributes['role'] == 'var' then
tag = 'varname'
elseif elem.attributes['role'] == 'env' then
tag = 'envar'
end
if tag ~= nil then
return pandoc.RawInline('docbook', '<' .. tag .. '>' .. content .. '</' .. tag .. '>')
end
end
end

View File

@@ -1,28 +0,0 @@
{ pkgs ? import ../../.. {} }:
let
inherit (pkgs) lib;
manpageURLs = builtins.fromJSON (builtins.readFile (pkgs.path + "/doc/manpage-urls.json"));
in pkgs.writeText "link-manpages.lua" ''
--[[
Adds links to known man pages that aren't already in a link.
]]
local manpage_urls = {
${lib.concatStringsSep "\n" (lib.mapAttrsToList (man: url:
" [${builtins.toJSON man}] = ${builtins.toJSON url},") manpageURLs)}
}
traverse = 'topdown'
-- Returning false as the second value aborts processing of child elements.
function Link(elem)
return elem, false
end
function Code(elem)
local is_man_role = elem.classes:includes('interpreted-text') and elem.attributes['role'] == 'manpage'
if is_man_role and manpage_urls[elem.text] ~= nil then
return pandoc.Link(elem, manpage_urls[elem.text]), false
end
end
''

View File

@@ -1,36 +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.
-- Allow preceding punctuation (eg '('), otherwise '({file}`...`)'
-- does not match. Also allow anything followed by a non-breaking space
-- since pandoc emits those after certain abbreviations (e.g. e.g.).
local prefix, role = first.text:match('^(.*){([-._+:%w]+)}$')
if role ~= nil and (prefix == '' or prefix:match("^.*[%p ]$") ~= nil) then
if prefix == '' then
inlines:remove(i)
else
first.text = prefix
end
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,192 +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";
hash = "sha256-lTeyxzJNQeMdu1IVdovNMtgn77jRIhSybLdMbTkf2Ww=";
};
```
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";
hash = "sha256-lTeyxzJNQeMdu1IVdovNMtgn77jRIhSybLdMbTkf2Ww=";
};
```
**This will reuse the old contents**.
Remember to invalidate the hash argument, in this case by setting the `hash` attribute to an empty string.
```nix
fetchurl {
url = "http://www.example.org/hello-1.1.tar.gz";
hash = "";
};
```
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-lTeyxzJNQeMdu1IVdovNMtgn77jRIhSybLdMbTkf2Ww=
```
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 `hash`, although many more hash algorithms are supported. Nixpkgs contributors are currently recommended to use `hash`. 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";
hash = "sha256-BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB=";
};
}
```
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 `hash` 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 `hash`.
## `fetchgit` {#fetchgit}
Used with Git. Expects `url` to a Git repo, `rev`, and `hash`. `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) for more information:
```nix
{ stdenv, fetchgit }:
stdenv.mkDerivation {
name = "hello";
src = fetchgit {
url = "https://...";
sparseCheckout = [
"directory/to/be/included"
"another/directory"
];
hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
};
}
```
## `fetchfossil` {#fetchfossil}
Used with Fossil. Expects `url` to a Fossil archive, `rev`, and `hash`.
## `fetchcvs` {#fetchcvs}
Used with CVS. Expects `cvsRoot`, `tag`, and `hash`.
## `fetchhg` {#fetchhg}
Used with Mercurial. Expects `url`, `rev`, and `hash`.
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, `hash` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available but `hash` 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, `hash` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available, but `hash` 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 `hash`, 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`.
## `requireFile` {#requirefile}
`requireFile` allows requesting files that cannot be fetched automatically, but whose content is known.
This is a useful last-resort workaround for license restrictions that prohibit redistribution, or for downloads that are only accessible after authenticating interactively in a browser.
If the requested file is present in the Nix store, the resulting derivation will not be built, because its expected output is already available.
Otherwise, the builder will run, but fail with a message explaining to the user how to provide the file. The following code, for example:
```
requireFile {
name = "jdk-${version}_linux-x64_bin.tar.gz";
url = "https://www.oracle.com/java/technologies/javase-jdk11-downloads.html";
sha256 = "94bd34f85ee38d3ef59e5289ec7450b9443b924c55625661fffe66b03f2c8de2";
}
```
results in this error message:
```
***
Unfortunately, we cannot download file jdk-11.0.10_linux-x64_bin.tar.gz automatically.
Please go to https://www.oracle.com/java/technologies/javase-jdk11-downloads.html to download it yourself, and add it to the Nix store
using either
nix-store --add-fixed sha256 jdk-11.0.10_linux-x64_bin.tar.gz
or
nix-prefetch-url --type sha256 file:///path/to/jdk-11.0.10_linux-x64_bin.tar.gz
***
```

View File

@@ -1,15 +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" />
<xi:include href="images/portableservice.section.xml" />
<xi:include href="images/makediskimage.section.xml" />
<xi:include href="images/binarycache.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";
hash = "sha256-OqTitCeZ6xmWbqYTXp8sDrmVgTNjPZNW0hzUPW++mq4=";
};
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,49 +0,0 @@
# pkgs.mkBinaryCache {#sec-pkgs-binary-cache}
`pkgs.mkBinaryCache` is a function for creating Nix flat-file binary caches. Such a cache exists as a directory on disk, and can be used as a Nix substituter by passing `--substituter file:///path/to/cache` to Nix commands.
Nix packages are most commonly shared between machines using [HTTP, SSH, or S3](https://nixos.org/manual/nix/stable/package-management/sharing-packages.html), but a flat-file binary cache can still be useful in some situations. For example, you can copy it directly to another machine, or make it available on a network file system. It can also be a convenient way to make some Nix packages available inside a container via bind-mounting.
Note that this function is meant for advanced use-cases. The more idiomatic way to work with flat-file binary caches is via the [nix-copy-closure](https://nixos.org/manual/nix/stable/command-ref/nix-copy-closure.html) command. You may also want to consider [dockerTools](#sec-pkgs-dockerTools) for your containerization needs.
## Example
The following derivation will construct a flat-file binary cache containing the closure of `hello`.
```nix
mkBinaryCache {
rootPaths = [hello];
}
```
- `rootPaths` specifies a list of root derivations. The transitive closure of these derivations' outputs will be copied into the cache.
Here's an example of building and using the cache.
Build the cache on one machine, `host1`:
```shellSession
nix-build -E 'with import <nixpkgs> {}; mkBinaryCache { rootPaths = [hello]; }'
```
```shellSession
/nix/store/cc0562q828rnjqjyfj23d5q162gb424g-binary-cache
```
Copy the resulting directory to the other machine, `host2`:
```shellSession
scp result host2:/tmp/hello-cache
```
Substitute the derivation using the flat-file binary cache on the other machine, `host2`:
```shellSession
nix-build -A hello '<nixpkgs>' \
--option require-sigs false \
--option trusted-substituters file:///tmp/hello-cache \
--option substituters file:///tmp/hello-cache
```
```shellSession
/nix/store/gl5a41azbpsadfkfmbilh9yk40dh5dl0-hello-2.12.1
```

View File

@@ -1,539 +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" = { }; };
};
diskSize = 1024;
buildVMMemorySize = 512;
}
```
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).
- `architecture` is _optional_ and used to specify the image architecture, this is useful for multi-architecture builds that don't need cross compiling. If not specified it will default to `hostPlatform`.
- `diskSize` is used to specify the disk size of the VM used to build the image in megabytes. By default it's 1024 MiB.
- `buildVMMemorySize` is used to specify the memory size of the VM to build the image in megabytes. By default it's 512 MiB.
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_
`architecture` is _optional_ and used to specify the image architecture, this is useful for multi-architecture builds that don't need cross compiling. If not specified it will default to `hostPlatform`.
: Run-time configuration of the container. A full list of the options available is 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:473a2b527958665554806aea24d0131bacec46d23af09fef4598eeab331850fa";
finalImageName = "nix";
finalImageTag = "2.11.1";
sha256 = "sha256-qvhj+Hlmviz+KEBVmsyPIzTB3QlVAFzwAY1zDPIBGxc=";
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`.
## Environment Helpers {#ssec-pkgs-dockerTools-helpers}
Some packages expect certain files to be available globally.
When building an image from scratch (i.e. without `fromImage`), these files are missing.
`pkgs.dockerTools` provides some helpers to set up an environment with the necessary files.
You can include them in `copyToRoot` like this:
```nix
buildImage {
name = "environment-example";
copyToRoot = with pkgs.dockerTools; [
usrBinEnv
binSh
caCertificates
fakeNss
];
}
```
### usrBinEnv {#sssec-pkgs-dockerTools-helpers-usrBinEnv}
This provides the `env` utility at `/usr/bin/env`.
### binSh {#sssec-pkgs-dockerTools-helpers-binSh}
This provides `bashInteractive` at `/bin/sh`.
### caCertificates {#sssec-pkgs-dockerTools-helpers-caCertificates}
This sets up `/etc/ssl/certs/ca-certificates.crt`.
### fakeNss {#sssec-pkgs-dockerTools-helpers-fakeNss}
Provides `/etc/passwd` and `/etc/group` that contain root and nobody.
Useful when packaging binaries that insist on using nss to look up
username/groups (like nginx).
### 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" ];
};
}
```
## buildNixShellImage {#ssec-pkgs-dockerTools-buildNixShellImage}
Create a Docker image that sets up an environment similar to that of running `nix-shell` on a derivation.
When run in Docker, this environment somewhat resembles the Nix sandbox typically used by `nix-build`, with a major difference being that access to the internet is allowed.
It additionally also behaves like an interactive `nix-shell`, running things like `shellHook` and setting an interactive prompt.
If the derivation is fully buildable (i.e. `nix-build` can be used on it), running `buildDerivation` inside such a Docker image will build the derivation, with all its outputs being available in the correct `/nix/store` paths, pointed to by the respective environment variables like `$out`, etc.
::: {.warning}
The behavior doesn't match `nix-shell` or `nix-build` exactly and this function is known not to work correctly for e.g. fixed-output derivations, content-addressed derivations, impure derivations and other special types of derivations.
:::
### Arguments
`drv`
: The derivation on which to base the Docker image.
Adding packages to the Docker image is possible by e.g. extending the list of `nativeBuildInputs` of this derivation like
```nix
buildNixShellImage {
drv = someDrv.overrideAttrs (old: {
nativeBuildInputs = old.nativeBuildInputs or [] ++ [
somethingExtra
];
});
# ...
}
```
Similarly, you can extend the image initialization script by extending `shellHook`
`name` _optional_
: The name of the resulting image.
*Default:* `drv.name + "-env"`
`tag` _optional_
: Tag of the generated image.
*Default:* the resulting image derivation output path's hash
`uid`/`gid` _optional_
: The user/group ID to run the container as. This is like a `nixbld` build user.
*Default:* 1000/1000
`homeDirectory` _optional_
: The home directory of the user the container is running as
*Default:* `/build`
`shell` _optional_
: The path to the `bash` binary to use as the shell. This shell is started when running the image.
*Default:* `pkgs.bashInteractive + "/bin/bash"`
`command` _optional_
: Run this command in the environment of the derivation, in an interactive shell. See the `--command` option in the [`nix-shell` documentation](https://nixos.org/manual/nix/stable/command-ref/nix-shell.html?highlight=nix-shell#options).
*Default:* (none)
`run` _optional_
: Same as `command`, but runs the command in a non-interactive shell instead. See the `--run` option in the [`nix-shell` documentation](https://nixos.org/manual/nix/stable/command-ref/nix-shell.html?highlight=nix-shell#options).
*Default:* (none)
### Example
The following shows how to build the `pkgs.hello` package inside a Docker container built with `buildNixShellImage`.
```nix
with import <nixpkgs> {};
dockerTools.buildNixShellImage {
drv = hello;
}
```
Build the derivation:
```console
nix-build hello.nix
```
these 8 derivations will be built:
/nix/store/xmw3a5ln29rdalavcxk1w3m4zb2n7kk6-nix-shell-rc.drv
...
Creating layer 56 from paths: ['/nix/store/crpnj8ssz0va2q0p5ibv9i6k6n52gcya-stdenv-linux']
Creating layer 57 with customisation...
Adding manifests...
Done.
/nix/store/cpyn1lc897ghx0rhr2xy49jvyn52bazv-hello-2.12-env.tar.gz
Load the image:
```console
docker load -i result
```
0d9f4c4cd109: Loading layer [==================================================>] 2.56MB/2.56MB
...
ab1d897c0697: Loading layer [==================================================>] 10.24kB/10.24kB
Loaded image: hello-2.12-env:pgj9h98nal555415faa43vsydg161bdz
Run the container:
```console
docker run -it hello-2.12-env:pgj9h98nal555415faa43vsydg161bdz
```
[nix-shell:/build]$
In the running container, run the build:
```console
buildDerivation
```
unpacking sources
unpacking source archive /nix/store/8nqv6kshb3vs5q5bs2k600xpj5bkavkc-hello-2.12.tar.gz
...
patching script interpreter paths in /nix/store/z5wwy5nagzy15gag42vv61c2agdpz2f2-hello-2.12
checking for references to /build/ in /nix/store/z5wwy5nagzy15gag42vv61c2agdpz2f2-hello-2.12...
Check the build result:
```console
$out/bin/hello
```
Hello, world!

View File

@@ -1,107 +0,0 @@
# `<nixpkgs/nixos/lib/make-disk-image.nix>` {#sec-make-disk-image}
`<nixpkgs/nixos/lib/make-disk-image.nix>` is a function to create _disk images_ in multiple formats: raw, QCOW2 (QEMU), QCOW2-Compressed (compressed version), VDI (VirtualBox), VPC (VirtualPC).
This function can create images in two ways:
- using `cptofs` without any virtual machine to create a Nix store disk image,
- using a virtual machine to create a full NixOS installation.
When testing early-boot or lifecycle parts of NixOS such as a bootloader or multiple generations, it is necessary to opt for a full NixOS system installation.
Whereas for many web servers, applications, it is possible to work with a Nix store only disk image and is faster to build.
NixOS tests also use this function when preparing the VM. The `cptofs` method is used when `virtualisation.useBootLoader` is false (the default). Otherwise the second method is used.
## Features
For reference, read the function signature source code for documentation on arguments: <https://github.com/NixOS/nixpkgs/blob/master/nixos/lib/make-disk-image.nix>.
Features are separated in various sections depending on if you opt for a Nix-store only image or a full NixOS image.
### Common
- arbitrary NixOS configuration
- automatic or bound disk size: `diskSize` parameter, `additionalSpace` can be set when `diskSize` is `auto` to add a constant of disk space
- multiple partition table layouts: EFI, legacy, legacy + GPT, hybrid, none through `partitionTableType` parameter
- OVMF or EFI firmwares and variables templates can be customized
- root filesystem `fsType` can be customized to whatever `mkfs.${fsType}` exist during operations
- root filesystem label can be customized, defaults to `nix-store` if it's a Nix store image, otherwise `nixpkgs/nixos`
- arbitrary code can be executed after disk image was produced with `postVM`
- the current nixpkgs can be realized as a channel in the disk image, which will change the hash of the image when the sources are updated
- additional store paths can be provided through `additionalPaths`
### Full NixOS image
- arbitrary contents with permissions can be placed in the target filesystem using `contents`
- a `/etc/nixpkgs/nixos/configuration.nix` can be provided through `configFile`
- bootloaders are supported
- EFI variables can be mutated during image production and the result is exposed in `$out`
- boot partition size when partition table is `efi` or `hybrid`
### On bit-to-bit reproducibility
Images are **NOT** deterministic, please do not hesitate to try to fix this, source of determinisms are (not exhaustive) :
- bootloader installation have timestamps
- SQLite Nix store database contain registration times
- `/etc/shadow` is in a non-deterministic order
A `deterministic` flag is available for best efforts determinism.
## Usage
To produce a Nix-store only image:
```nix
let
pkgs = import <nixpkgs> {};
lib = pkgs.lib;
make-disk-image = import <nixpkgs/nixos/lib/make-disk-image.nix>;
in
make-disk-image {
inherit pkgs lib;
config = {};
additionalPaths = [ ];
format = "qcow2";
onlyNixStore = true;
partitionTableType = "none";
installBootLoader = false;
touchEFIVars = false;
diskSize = "auto";
additionalSpace = "0M"; # Defaults to 512M.
copyChannel = false;
}
```
Some arguments can be left out, they are shown explicitly for the sake of the example.
Building this derivation will provide a QCOW2 disk image containing only the Nix store and its registration information.
To produce a NixOS installation image disk with UEFI and bootloader installed:
```nix
let
pkgs = import <nixpkgs> {};
lib = pkgs.lib;
make-disk-image = import <nixpkgs/nixos/lib/make-disk-image.nix>;
evalConfig = import <nixpkgs/nixos/lib/eval-config.nix>;
in
make-disk-image {
inherit pkgs lib;
config = evalConfig {
modules = [
{
fileSystems."/" = { device = "/dev/vda"; fsType = "ext4"; autoFormat = true; };
boot.grub.device = "/dev/vda";
}
];
};
format = "qcow2";
onlyNixStore = false;
partitionTableType = "legacy+gpt";
installBootLoader = true;
touchEFIVars = true;
diskSize = "auto";
additionalSpace = "0M"; # Defaults to 512M.
copyChannel = false;
}
```

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,81 +0,0 @@
# pkgs.portableService {#sec-pkgs-portableService}
`pkgs.portableService` is a function to create _portable service images_,
as read-only, immutable, `squashfs` archives.
systemd supports a concept of [Portable Services](https://systemd.io/PORTABLE_SERVICES/).
Portable Services are a delivery method for system services that uses two specific features of container management:
* Applications are bundled. I.e. multiple services, their binaries and
all their dependencies are packaged in an image, and are run directly from it.
* Stricter default security policies, i.e. sandboxing of applications.
This allows using Nix to build images which can be run on many recent Linux distributions.
The primary tool for interacting with Portable Services is `portablectl`,
and they are managed by the `systemd-portabled` system service.
::: {.note}
Portable services are supported starting with systemd 239 (released on 2018-06-22).
:::
A very simple example of using `portableService` is described below:
[]{#ex-pkgs-portableService}
```nix
pkgs.portableService {
pname = "demo";
version = "1.0";
units = [ demo-service demo-socket ];
}
```
The above example will build an squashfs archive image in `result/$pname_$version.raw`. The image will contain the
file system structure as required by the portable service specification, and a subset of the Nix store with all the
dependencies of the two derivations in the `units` list.
`units` must be a list of derivations, and their names must be prefixed with the service name (`"demo"` in this case).
Otherwise `systemd-portabled` will ignore them.
::: {.note}
The `.raw` file extension of the image is required by the portable services specification.
:::
Some other options available are:
- `description`, `homepage`
Are added to the `/etc/os-release` in the image and are shown by the portable services tooling.
Default to empty values, not added to os-release.
- `symlinks`
A list of attribute sets {object, symlink}. Symlinks will be created in the root filesystem of the image to
objects in the Nix store. Defaults to an empty list.
- `contents`
A list of additional derivations to be included in the image Nix store, as-is. Defaults to an empty list.
- `squashfsTools`
Defaults to `pkgs.squashfsTools`, allows you to override the package that provides `mksquashfs`.
- `squash-compression`, `squash-block-size`
Options to `mksquashfs`. Default to `"xz -Xdict-size 100%"` and `"1M"` respectively.
A typical usage of `symlinks` would be:
```nix
symlinks = [
{ object = "${pkgs.cacert}/etc/ssl"; symlink = "/etc/ssl"; }
{ object = "${pkgs.bash}/bin/bash"; symlink = "/bin/sh"; }
{ object = "${pkgs.php}/bin/php"; symlink = "/usr/bin/php"; }
];
```
to create these symlinks for legacy applications that assume them existing globally.
Once the image is created, and deployed on a host in `/var/lib/portables/`, you can attach the image and run the service. As root run:
```console
portablectl attach demo_1.0.raw
systemctl enable --now demo.socket
systemctl enable --now demo.service
```
::: {.note}
See the [man page](https://www.freedesktop.org/software/systemd/man/portablectl.html) of `portablectl` for more info on its usage.
:::

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 = "...";
hash = "...";
};
# 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.com/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://citrix.github.io/receiver-for-linux-command-reference/), 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";
hash = "sha256-123";
};
srcPlugin = fetchurl {
url = "http:///plugins/myplugin1.jar";
hash = "sha256-123";
};
});
(plugins.buildEclipseUpdateSite {
name = "myplugin2-1.0";
src = fetchurl {
stripRoot = false;
url = "http:///myplugin2.zip";
hash = "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";
hash = "sha256-2e73AbmYZlZXCP5ptYVcFjQYdjDp4iPoEPEOSCVF5sA=";
})
];
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/).
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";
hash = "...";
};
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,11 +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" />
<xi:include href="special/darwin-builder.section.xml" />
</chapter>

View File

@@ -1,63 +0,0 @@
# darwin.builder {#sec-darwin-builder}
`darwin.builder` provides a way to bootstrap a Linux builder on a macOS machine.
This requires macOS version 12.4 or later.
This also requires that port 22 on your machine is free (since Nix does not
permit specifying a non-default SSH port for builders).
You will also need to be a trusted user for your Nix installation. In other
words, your `/etc/nix/nix.conf` should have something like:
```
extra-trusted-users = <your username goes here>
```
To launch the builder, run the following flake:
```ShellSession
$ nix run nixpkgs#darwin.builder
```
That will prompt you to enter your `sudo` password:
```
+ sudo --reset-timestamp /nix/store/…-install-credentials.sh ./keys
Password:
```
… so that it can install a private key used to `ssh` into the build server.
After that the script will launch the virtual machine and automatically log you
in as the `builder` user:
```
<<< Welcome to NixOS 22.11.20220901.1bd8d11 (aarch64) - ttyAMA0 >>>
Run 'nixos-help' for the NixOS manual.
nixos login: builder (automatic login)
[builder@nixos:~]$
```
> Note: When you need to stop the VM, run `shutdown now` as the `builder` user.
To delegate builds to the remote builder, add the following options to your
`nix.conf` file:
```
# - Replace ${ARCH} with either aarch64 or x86_64 to match your host machine
# - Replace ${MAX_JOBS} with the maximum number of builds (pick 4 if you're not sure)
builders = ssh-ng://builder@localhost ${ARCH}-linux /etc/nix/builder_ed25519 ${MAX_JOBS} - - - c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUpCV2N4Yi9CbGFxdDFhdU90RStGOFFVV3JVb3RpQzVxQkorVXVFV2RWQ2Igcm9vdEBuaXhvcwo=
# Not strictly necessary, but this will reduce your disk utilization
builders-use-substitutes = true
```
… and then restart your Nix daemon to apply the change:
```ShellSession
$ sudo launchctl kickstart -k system/org.nixos.nix-daemon
```

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,211 +0,0 @@
# Testers {#chap-testers}
This chapter describes several testing builders which are available in the <literal>testers</literal> namespace.
## `hasPkgConfigModule` {#tester-hasPkgConfigModule}
Checks whether a package exposes a certain `pkg-config` module.
Example:
```nix
passthru.tests.pkg-config = testers.hasPkgConfigModule {
package = finalAttrs.finalPackage;
moduleName = "libfoo";
}
```
## `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 = testers.testVersion { package = hello; };
passthru.tests.version = testers.testVersion {
package = seaweedfs;
command = "weed version";
};
passthru.tests.version = testers.testVersion {
package = key;
command = "KeY --help";
# Wrong '2.5' version in the code. Drop on next version.
version = "2.5";
};
passthru.tests.version = testers.testVersion {
package = ghr;
# The output needs to contain the 'version' string without any prefix or suffix.
version = "v${version}";
};
```
## `testBuildFailure` {#tester-testBuildFailure}
Make sure that a build does not succeed. This is useful for testing testers.
This returns a derivation with an override on the builder, with the following effects:
- Fail the build when the original builder succeeds
- Move `$out` to `$out/result`, if it exists (assuming `out` is the default output)
- Save the build log to `$out/testBuildFailure.log` (same)
Example:
```nix
runCommand "example" {
failed = testers.testBuildFailure (runCommand "fail" {} ''
echo ok-ish >$out
echo failing though
exit 3
'');
} ''
grep -F 'ok-ish' $failed/result
grep -F 'failing though' $failed/testBuildFailure.log
[[ 3 = $(cat $failed/testBuildFailure.exit) ]]
touch $out
'';
```
While `testBuildFailure` is designed to keep changes to the original builder's
environment to a minimum, some small changes are inevitable.
- The file `$TMPDIR/testBuildFailure.log` is present. It should not be deleted.
- `stdout` and `stderr` are a pipe instead of a tty. This could be improved.
- One or two extra processes are present in the sandbox during the original
builder's execution.
- The derivation and output hashes are different, but not unusual.
- The derivation includes a dependency on `buildPackages.bash` and
`expect-failure.sh`, which is built to include a transitive dependency on
`buildPackages.coreutils` and possibly more. These are not added to `PATH`
or any other environment variable, so they should be hard to observe.
## `testEqualContents` {#tester-equalContents}
Check that two paths have the same contents.
Example:
```nix
testers.testEqualContents {
assertion = "sed -e performs replacement";
expected = writeText "expected" ''
foo baz baz
'';
actual = runCommand "actual" {
# not really necessary for a package that's in stdenv
nativeBuildInputs = [ gnused ];
base = writeText "base" ''
foo bar baz
'';
} ''
sed -e 's/bar/baz/g' $base >$out
'';
}
```
## `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
testers.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 = testers.invalidateFetcherByDrvHash fetchgit {
name = "nix-source";
url = "https://github.com/NixOS/nix";
rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a";
hash = "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.

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

@@ -0,0 +1,665 @@
<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>. TODO: naming of
attributes in
<filename>all-packages.nix</filename>?</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. 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-pre-r3910"</literal> instead of
<literal>"hello-svn-r3910"</literal>, as the latter would be seen as
a package named <literal>hello-svn</literal> by
<command>nix-env</command>.</para></listitem>
<listitem><para>If package is fetched from git's commit 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 add <literal>"git"</literal> to the name - e.g.,
<literal>"pkgname-git-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
(which was convention up to around 2013 and most names
still have underscores instead of dashes) — e.g.,
<varname>http-parser</varname> instead of
<varname>http_parser</varname>.</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 intented
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>compiz</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 guidline 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>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>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>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>
</chapter>

20
doc/contributing.xml Normal file
View File

@@ -0,0 +1,20 @@
<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. If you make modifications to
the manual, it's important to build it before committing. You can do that as follows:
<screen>
$ cd /path/to/nixpkgs
$ nix-build doc
</screen>
If the build succeeds, the manual will be in
<filename>./result/share/doc/nixpkgs/manual.html</filename>.</para>
</chapter>

View File

@@ -1,691 +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 `pname` attribute of the derivation. 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 `pname` attribute `"e2fsprogs"`, 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`)
- **If its a _language server_:**
- `development/tools/language-servers` (e.g. `ccls` or `rnix-lsp`)
- **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"
url = "git://github.com/NixOS/nix.git";
rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
hash = "sha256-7D4m+saJjbSFP5hOwpQq2FGR2rr+psQMTcyb1ZvtXsQ=";
}
```
- Better: This is ok, but an archive fetch will still be faster.
```nix
src = fetchgit {
url = "https://github.com/NixOS/nix.git";
rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
hash = "sha256-7D4m+saJjbSFP5hOwpQq2FGR2rr+psQMTcyb1ZvtXsQ=";
}
```
- Best: Fetches a snapshot archive and you get the rev you want.
```nix
src = fetchFromGitHub {
owner = "NixOS";
repo = "nix";
rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
hash = "ha256-7D4m+saJjbSFP5hOwpQq2FGR2rr+psQMTcyb1ZvtXsQ=;
}
```
When fetching from GitHub, commits must always be referenced by their full commit hash. This is because GitHub shares commit hashes among all forks and returns `404 Not Found` when a short commit hash is ambiguous. It already happens for some short, 6-character commit hashes in `nixpkgs`.
It is a practical vector for a denial-of-service attack by pushing large amounts of auto generated commits into forks and was already [demonstrated against GitHub Actions Beta](https://blog.teddykatz.com/2019/11/12/github-actions-dos.html).
Find the value to put as `hash` 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 the hash to one of
- `""`
- `lib.fakeHash`
- `lib.fakeSha256`
- `lib.fakeSha512`
in the package expression, attempt build and extract correct hash from error messages.
::: {.warning}
You must use one of these four fake hashes and not some arbitrarily-chosen hash.
See [](#sec-source-hashes-security).
:::
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.
### 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 secure in method 5 *only if* you use one of the listed fake hashes. If you use any other hash, `fetchurl` will pass `--insecure` to `curl` and may then degrade to HTTP in case of TLS certificate expiration.
## 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";
hash = "sha256-uRcxaCjd+WAuGrXOmGfFeu79cUILwkRdBu48mwcBE7g=";
})
];
```
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;
};
...
}
```
### Import From Derivation {#ssec-import-from-derivation}
Import From Derivation (IFD) is disallowed in Nixpkgs for performance reasons:
[Hydra] evaluates the entire package set, and sequential builds during evaluation would increase evaluation times to become impractical.
[Hydra]: https://github.com/NixOS/hydra
Import From Derivation can be worked around in some cases by committing generated intermediate files to version control and reading those instead.
<!-- TODO: remove the following and link to Nix manual once https://github.com/NixOS/nix/pull/7332 is merged -->
See also [NixOS Wiki: Import From Derivation].
[NixOS Wiki: Import From Derivation]: https://nixos.wiki/wiki/Import_From_Derivation

View File

@@ -1,118 +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, all of which 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}
```
::: {.note}
NixOS option documentation does not support headings in general.
:::
- []{#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/manpage-urls.json`.
A few markups for other kinds of literals are also available:
- `` {command}`rm -rfi` `` turns into {command}`rm -rfi`
- `` {env}`XDG_DATA_DIRS` `` turns into {env}`XDG_DATA_DIRS`
- `` {file}`/etc/passwd` `` turns into {file}`/etc/passwd`
- `` {option}`networking.useDHCP` `` turns into {option}`networking.useDHCP`
- `` {var}`/etc/passwd` `` turns into {var}`/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.
- []{#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)
- []{#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.
- buildMozillaMach: [`pkgs/applications/networking/browser/firefox/common.nix`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/browsers/firefox/common.nix). A reusable build function for Firefox, Thunderbird and Librewolf.
- 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,319 +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-individual-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.
In case the PR is stuck waiting for the original author to apply a trivial
change (a typo, capitalisation change, etc.) and the author allowed the members
to modify the PR, consider applying it yourself. (or commit the existing review
suggestion) You should pay extra attention to make sure the addition doesn't go
against the idea of the original PR and would not be opposed by the author.
<!--
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,302 +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";
hash = "sha256-SEKe/8HcW0UBHCfPTTOnpRlzmV2nQPPeL6HOMxBZd14=";
})
```
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.
During the process of a releasing a new NixOS version, this branch or the release-critical packages can be restricted to non-breaking changes.
### 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.
During the process of a releasing a new NixOS version, this branch or the release-critical packages can be restricted to non-breaking changes.
### 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).

View File

@@ -1,39 +1,45 @@
{ pkgs ? (import ./.. { }), nixpkgs ? { }}:
let
doc-support = import ./doc-support { inherit pkgs nixpkgs; };
in pkgs.stdenv.mkDerivation {
with import ./.. { };
with lib;
stdenv.mkDerivation {
name = "nixpkgs-manual";
nativeBuildInputs = with pkgs; [
pandoc
graphviz
libxml2
libxslt
zip
jing
xmlformat
];
sources = sourceFilesBySuffices ./. [".xml"];
src = pkgs.nix-gitignore.gitignoreSource [] ./.;
buildInputs = [ libxml2 libxslt ];
postPatch = ''
ln -s ${doc-support} ./doc-support/result
xsltFlags = ''
--param section.autolabel 1
--param section.label.includes.component.label 1
--param html.stylesheet 'style.css'
--param xref.with.number.and.title 1
--param toc.section.depth 3
--param admon.style '''
--param callout.graphics.extension '.gif'
'';
installPhase = ''
dest="$out/share/doc/nixpkgs"
mkdir -p "$(dirname "$dest")"
mv out/html "$dest"
mv "$dest/index.html" "$dest/manual.html"
buildCommand = ''
ln -s $sources/*.xml . # */
mv out/epub/manual.epub "$dest/nixpkgs-manual.epub"
echo ${nixpkgsVersion} > .version
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
xmllint --noout --nonet --xinclude --noxincludenode \
--relaxng ${docbook5}/xml/rng/docbook/docbook.rng \
manual.xml
dst=$out/share/doc/nixpkgs
mkdir -p $dst
xsltproc $xsltFlags --nonet --xinclude \
--output $dst/manual.html \
${docbook5_xsl}/xml/xsl/docbook/xhtml/docbook.xsl \
./manual.xml
cp ${./style.css} $dst/style.css
mkdir -p $dst/images/callouts
cp ${docbook5_xsl}/xml/xsl/docbook/images/callouts/*.gif $dst/images/callouts/
mkdir -p $out/nix-support
echo "doc manual $dst manual.html" >> $out/nix-support/hydra-build-products
'';
# Environment variables
PANDOC_LUA_FILTERS_DIR = "${pkgs.pandoc-lua-filters}/share/pandoc/filters";
PANDOC_LINK_MANPAGES_FILTER = import build-aux/pandoc-filters/link-manpages.nix { inherit pkgs; };
}

View File

@@ -1,84 +0,0 @@
{ pkgs ? (import ../.. {}), nixpkgs ? { }}:
let
inherit (pkgs) lib;
inherit (lib) hasPrefix removePrefix;
libsets = [
{ name = "asserts"; description = "assertion functions"; }
{ name = "attrsets"; description = "attribute set functions"; }
{ name = "strings"; description = "string manipulation functions"; }
{ name = "versions"; description = "version string functions"; }
{ name = "trivial"; description = "miscellaneous functions"; }
{ name = "lists"; description = "list manipulation functions"; }
{ name = "debug"; description = "debugging functions"; }
{ name = "options"; description = "NixOS / nixpkgs option handling"; }
{ name = "path"; description = "path functions"; }
{ name = "filesystem"; description = "filesystem functions"; }
{ name = "sources"; description = "source filtering functions"; }
{ name = "cli"; description = "command-line serialization functions"; }
];
locationsXml = import ./lib-function-locations.nix { inherit pkgs nixpkgs libsets; };
functionDocs = import ./lib-function-docs.nix { inherit locationsXml pkgs libsets; };
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,36 +0,0 @@
# Generates the documentation for library functions via nixdoc.
{ pkgs, locationsXml, libsets }:
with pkgs; stdenv.mkDerivation {
name = "nixpkgs-lib-docs";
src = ../../lib;
buildInputs = [ nixdoc ];
installPhase = ''
function docgen {
# TODO: wrap lib.$1 in <literal>, make nixdoc not escape it
if [[ -e "../lib/$1.nix" ]]; then
nixdoc -c "$1" -d "lib.$1: $2" -f "$1.nix" > "$out/$1.xml"
else
nixdoc -c "$1" -d "lib.$1: $2" -f "$1/default.nix" > "$out/$1.xml"
fi
echo "<xi:include href='$1.xml' />" >> "$out/index.xml"
}
mkdir -p "$out"
cat > "$out/index.xml" << 'EOF'
<?xml version="1.0" encoding="utf-8"?>
<root xmlns:xi="http://www.w3.org/2001/XInclude">
EOF
${lib.concatMapStrings ({ name, description }: ''
docgen ${name} ${lib.escapeShellArg description}
'') libsets}
echo "</root>" >> "$out/index.xml"
ln -s ${locationsXml} $out/locations.xml
'';
}

View File

@@ -1,85 +0,0 @@
{ pkgs, nixpkgs ? { }, libsets }:
let
revision = pkgs.lib.trivial.revisionWithDefault (nixpkgs.revision or "master");
libDefPos = prefix: set:
builtins.concatMap
(name: [{
name = builtins.concatStringsSep "." (prefix ++ [name]);
location = builtins.unsafeGetAttrPos name set;
}] ++ nixpkgsLib.optionals
(builtins.length prefix == 0 && builtins.isAttrs set.${name})
(libDefPos (prefix ++ [name]) set.${name})
) (builtins.attrNames set);
libset = toplib:
builtins.map
(subsetname: {
subsetname = subsetname;
functions = libDefPos [] toplib.${subsetname};
})
(builtins.map (x: x.name) libsets);
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,19 +0,0 @@
<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:param name="chapter.autolabel" select="0" />
<xsl:param name="part.autolabel" select="0" />
<xsl:param name="preface.autolabel" select="0" />
<xsl:param name="reference.autolabel" select="0" />
<xsl:param name="section.autolabel" select="0" />
<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="0" />
<xsl:param name="use.id.as.filename" select="1" />
<xsl:param name="generate.section.toc.level" 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,287 @@
<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-pkgs-overridePackages">
<title>pkgs.overridePackages</title>
<para>
This function inside the nixpkgs expression (<varname>pkgs</varname>)
can be used to override the set of packages itself.
</para>
<para>
Warning: this function is expensive and must not be used from within
the nixpkgs repository.
</para>
<para>
Example usage:
<programlisting>let
pkgs = import &lt;nixpkgs&gt; {};
newpkgs = pkgs.overridePackages (self: super: {
foo = super.foo.override { ... };
};
in ...</programlisting>
</para>
<para>
The resulting <varname>newpkgs</varname> will have the new <varname>foo</varname>
expression, and all other expressions depending on <varname>foo</varname> will also
use the new <varname>foo</varname> expression.
</para>
<para>
The behavior of this function is similar to <link
linkend="sec-modify-via-packageOverrides">config.packageOverrides</link>.
</para>
<para>
The <varname>self</varname> parameter refers to the final package set with the
applied overrides. Using this parameter may lead to infinite recursion if not
used consciously.
</para>
<para>
The <varname>super</varname> parameter refers to the old package set.
It's equivalent to <varname>pkgs</varname> in the above example.
</para>
</section>
<section xml:id="sec-pkg-override">
<title>&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>pkgs.overridePackages (self: super: {
foo = super.foo.override { barSupport = true ; };
})</programlisting>
<programlisting>mypkg = pkgs.callPackage ./mypkg.nix {
mydep = pkgs.mydep.override { ... };
})</programlisting>
</para>
<para>
In the first example, <varname>pkgs.foo</varname> is the result of a function call
with some default arguments, usually a derivation.
Using <varname>pkgs.foo.override</varname> will call the same function with
the given new arguments.
</para>
</section>
<section xml:id="sec-pkg-overrideDerivation">
<title>&lt;pkg&gt;.overrideDerivation</title>
<para>
The function <varname>overrideDerivation</varname> is usually available for all the
derivations in the nixpkgs expression (<varname>pkgs</varname>).
</para>
<para>
It is used to create a new derivation by overriding the attributes of
the original derivation according to the given 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 name, src and patches 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>
</section>
<section xml:id="sec-lib-makeOverridable">
<title>lib.makeOverridable</title>
<para>
The function <varname>lib.makeOverridable</varname> is used make the result
of a function easily customizable. This utility only makes sense for functions
that accept an argument set and return an attribute set.
</para>
<para>
Example usage:
<programlisting>f = { a, b }: { result = a+b; }
c = lib.makeOverridable f { a = 1; b = 2; }</programlisting>
</para>
<para>
The variable <varname>c</varname> is the value of the <varname>f</varname> function
applied with some default arguments. Hence the value of <varname>c.result</varname>
is <literal>3</literal>, in this example.
</para>
<para>
The variable <varname>c</varname> however also has some additional functions, like
<link linkend="sec-pkg-override">c.override</link> which can be used to
override the default arguments. In this example the value of
<varname>(c.override { a = 4; }).result</varname> is 6.
</para>
</section>
<section xml:id="sec-fhs-environments">
<title>buildFHSChrootEnv/buildFHSUserEnv</title>
<para>
<function>buildFHSChrootEnv</function> and
<function>buildFHSUserEnv</function> provide a way to build and run
FHS-compatible lightweight sandboxes. They get their own isolated root with
binded <filename>/nix/store</filename>, so their 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.
</para>
<para>
<function>buildFHSChrootEnv</function> allows to create persistent
environments, which can be constructed, deconstructed and entered by
multiple users at once. A downside is that it requires
<literal>root</literal> access for both those who create and destroy and
those who enter it. It can be useful to create environments for daemons that
one can enter and observe.
</para>
<para>
<function>buildFHSUserEnv</function> uses Linux namespaces feature to create
temporary lightweight environments which are destroyed after all child
processes exit. It does not require root access, and can be useful to create
sandboxes and wrap applications.
</para>
<para>
Those functions both rely on <function>buildFHSEnv</function>, which creates
an actual directory structure given a list of necessary packages and extra
build commands.
<function>buildFHSChrootEnv</function> and <function>buildFHSUserEnv</function>
both accept those arguments which are passed to
<function>buildFHSEnv</function>:
</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).</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).</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>extraBuildCommandsMulti</literal>, but
executed only on multilib architectures.</para></listitem>
</varlistentry>
</variablelist>
<para>
Additionally, <function>buildFHSUserEnv</function> accepts
<literal>runScript</literal> parameter, which is a command that would be
executed inside the sandbox and passed all the command line arguments. It
default to <literal>bash</literal>.
</para>
<para>
It also uses <literal>CHROOTENV_EXTRA_BINDS</literal> environment variable
for binding extra directories in the sandbox to outside places. The format of
the variable is <literal>/mnt=test-mnt:/data</literal>, where
<literal>/mnt</literal> would be mounted as <literal>/test-mnt</literal>
and <literal>/data</literal> would be mounted as <literal>/data</literal>.
<literal>extraBindMounts</literal> array argument to
<function>buildFHSUserEnv</function> function is prepended to this variable.
Latter entries take priority if defined several times -- i.e. in case of
<literal>/data=data1:/data=data2</literal> the actual bind path would be
<literal>/data2</literal>.
</para>
<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
]) ++ (with [];
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>
</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`.

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