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
51026 changed files with 1348169 additions and 5427850 deletions

View File

@@ -1,122 +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
# We want readFile .version to return the version without a newline.
[.version]
insert_final_newline = false
# 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
# Match package.json, which are generally pulled from upstream and accept them as they are
[package.json]
indent_style = unset
# 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/misc/documentation-highlighter/**]
insert_final_newline = unset
[pkgs/servers/dict/wordnet_structures.py]
trim_trailing_whitespace = unset
[pkgs/tools/misc/timidity/timidity.cfg]
trim_trailing_whitespace = unset
[pkgs/tools/virtualization/ovftool/*.ova]
end_of_line = unset
insert_final_newline = unset
trim_trailing_whitespace = unset
charset = unset
[lib/tests/*.plist]
indent_style = tab
insert_final_newline = unset
[pkgs/kde/generated/**]
insert_final_newline = unset
end_of_line = unset

View File

@@ -1,208 +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
# pkgs/stdenv/make-derivation: Reindent
b4cc2a2479a7ab0f6440b2e1319221920ef72699
# treewide: automatically md-convert option descriptions
2e751c0772b9d48ff6923569adfa661b030ab6a2
# nixos/*: automatically convert option docs
087472b1e5230ffc8ba642b1e4f9218adf4634a2
# nixos/*: automatically convert option descriptions
ef176dcf7e76c3639571d7c6051246c8fbadf12a
# nixos/*: automatically convert option docs to MD
61e93df1891972bae3e0c97a477bd44e8a477aa0
# nixos/*: convert options with admonitions to MD
722b99bc0eb57711c0498a86a3f55e6c69cdb05f
# nixos/*: automatically convert option docs
6039648c50c7c0858b5e506c6298773a98e0f066
# nixos/*: md-convert options with unordered lists
c915b915b5e466a0b0b2af2906cd4d2380b8a1de
# nixos/*: convert options with listings
f2ea09ecbe1fa1da32eaa6e036d64ac324a2986f
# nixos/*: convert straggler options to MD
1d41cff3dc4c8f37bb5841f51fcbff705e169178
# nixos/*: normalize manpage references to single-line form
423545fe4865d126e86721ba30da116e29c65004
# nixos/documentation: split options doc build
fc614c37c653637e5475a0b0a987489b4d1f351d
# nixos/*: convert options with admonitions to MD
722b99bc0eb57711c0498a86a3f55e6c69cdb05f
# nixos/*: convert internal option descriptions to MD
9547123258f69efd92b54763051d6dc7f3bfcaca
# nixos/*: replace </para><para> with double linebreaks
694d5b19d30bf66687b42fb77f43ea7cd1002a62
# treewide: add defaultText for options with simple interpolation defaults
fb0e5be84331188a69b3edd31679ca6576edb75a
# nixos/*: mark pre-existing markdown descriptions as mdDoc
7e7d68a250f75678451cd44f8c3d585bf750461e
# nixos/*: normalize link format
3aebb4a2be8821a6d8a695f0908d8567dc00de31
# nixos/*: replace <code> in option docs with <literal>
16102dce2fbad670bd47dd75c860a8daa5fe47ad
# nixos/*: add trivial defaultText for options with simple defaults
25124556397ba17bfd70297000270de1e6523b0a
# systemd: rewrite comments
92dfeb7b3dab820ae307c56c216d175c69ee93cd
# systemd: break too long lines of Nix code
67643f8ec84bef1482204709073e417c9f07eb87
# {pkgs/development/cuda-modules,pkgs/test/cuda,pkgs/top-level/cuda-packages.nix}: reformat all CUDA files with nixfmt-rfc-style 2023-03-01
802a1b4d3338f24cbc4efd704616654456d75a94
# postgresql: move packages.nix to ext/default.nix
719034f6f6749d624faa28dff259309fc0e3e730
# php ecosystem: reformat with nixfmt-rfc-style
75ae7621330ff8db944ce4dff4374e182d5d151f
c759efa5e7f825913f9a69ef20f025f50f56dc4d
# pkgs/os-specific/bsd: Reformat with nixfmt-rfc-style 2024-03-01
3fe3b055adfc020e6a923c466b6bcd978a13069a
# k3s: format with nixfmt-rfc-style
6cfcd3c75428ede517bc6b15a353d704837a2830
# python3Packages: format with nixfmt
59b1aef59071cae6e87859dc65de973d2cc595c0
# treewide description changes (#317959)
bf995e3641950f4183c1dd9010349263dfa0123b
755b915a158c9d588f08e9b08da9f7f3422070cc
f8c4a98e8e138e21353a2c33b90db3359f539b37
# vscode-extensions.*: format with nixfmt (RFC 166)
7bf9febfa6271012b1ef86647a3a06f06875fdcf
# remove uses of mdDoc (#303841)
1a24330f792c8625746d07d842290e6fd95ae6f9
acd0e3898feb321cb9a71a0fd376f1157d0f4553
1b28414d2886c57343864326dbb745a634d3e37d
6afb255d976f85f3359e4929abd6f5149c323a02
# azure-cli: move to by-name, nixfmt #325950
96cd538b68bd1d0a0a37979356d669abbba32ebc
# poptracker: format with nixfmt-rfc-style (#326697)
ff5c8f6cc3d1f2e017e86d50965c14b71f00567b
# mangal: format with nixfmt-rfc-style #328284
3bb5e993cac3a6e1c3056d2bc9bf43eb2c7a5951
# pico-sdk: switch to finalAttrs (#329438)
8946018b0391ae594d167f1e58497b18de068968
# ollama: format with nixfmt-rfc-style (#329353)
bdfde18037f8d9f9b641a4016c8ada4dc4cbf856
# nixos/ollama: format with nixfmt-rfc-style (#329561)
246d1ee533810ac1946d863bbd9de9b525818d56
# steam: cleanup (#216972)
ad815aebfbfe1415ff6436521d545029c803c3fb
# nixos/nvidia: apply nixfmt-rfc-style (#313440)
fbdcdde04a7caa007e825a8b822c75fab9adb2d6
# treewide: reformat files which need reformatting after (#341407)
e0464e47880a69896f0fb1810f00e0de469f770a
# step-cli: format package.nix with nixfmt (#331629)
fc7a83f8b62e90de5679e993d4d49ca014ea013d
# ndn-cxx: format with nixfmt-rfc-style
160b2b769c3b8a6d1ae9947afa77520fa2887db7
# ndn-tools: format with nixfmt-rfc-style
4882ef721ce3d7bb3b5e48ff80125255db515013
# nfd: format with nixfmt-rfc-style
548c2377fa81e2abfc192fbf4f521e601251c468
# darwin.stdenv: format with nixfmt-rfc-style (#333962)
93c10ac9e561c6594d3baaeaff2341907390d9b8
# nrr: format with nixfmt-rfc-style (#334578)
cffc27daf06c77c0d76bc35d24b929cb9d68c3c9
# nixos/kanidm: inherit lib, nixfmt
8f18393d380079904d072007fb19dc64baef0a3a
# fetchurl: nixfmt-rfc-style
ce21e97a1f20dee15da85c084f9d1148d84f853b
# percona: apply nixfmt
8d14fa2886fec877690c6d28cfcdba4503dbbcea
# nixos/virtualisation: format image-related files
# Original formatting commit that was reverted
04fadac429ca7d6b92025188652376c230205730
# Revert commit
4cec81a9959ce612b653860dcca53101a36f328a
# Final commit that does the formatting
88b285c01d84de82c0b2b052fd28eaf6709c2d26
# sqlc: format with nixfmt
2bdec131b2bb2c8563f4556d741d34ccb77409e2
# treewide: migrate packages to pkgs/by-name, take 1
571c71e6f73af34a229414f51585738894211408

20
.gitattributes vendored
View File

@@ -1,20 +0,0 @@
**/deps.nix linguist-generated
**/deps.json linguist-generated
**/deps.toml 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
ci/OWNERS linguist-language=CODEOWNERS

View File

@@ -1,11 +0,0 @@
## Issue description
### Steps to reproduce
## Technical details
<!-- Please insert the output of running `nix-shell -p nix-info --run "nix-info -m"` below this line -->

View File

@@ -1,54 +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. -->
## Metadata
<!-- Please insert the output of running `nix-shell -p nix-info --run "nix-info -m"` below this line -->
## 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.
-->
---
Note for maintainers: Please tag this issue in your PR.
---
Add a :+1: [reaction] to [issues you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc

View File

@@ -1,53 +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
<!-- insert build log in code block in collapsable section -->
<details>
<summary>Build Log</summary>
```
```
</details>
## Additional context
<!-- Add any other context about the problem here. -->
## Metadata
<!-- Please insert the output of running `nix-shell -p nix-info --run "nix-info -m"` below this line -->
## 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.
-->
---
Note for maintainers: Please tag this issue in your PR.
---
Add a :+1: [reaction] to [issues you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc

View File

@@ -1,41 +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
---
Note for maintainers: Please tag this issue in your PR.
---
Add a :+1: [reaction] to [issues you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
[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,27 +0,0 @@
---
name: Module requests
about: For NixOS modules that you would like to see
title: 'Module request: MODULENAME'
labels: '9.needs: module (new)'
assignees: ''
---
## Description
<!-- Describe what the module should accomplish: -->
## Notify maintainers
<!-- If applicable, tag the maintainers of the package that corresponds to the module. 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.
---
Add a :+1: [reaction] to [issues you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc

View File

@@ -1,42 +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 Information
<!-- Search for the package here: https://search.nixos.org/packages?channel=unstable -->
- Package name:
- Latest released version:
- Current version on the unstable channel:
- Current version on the stable/release channel:
## Checklist
<!--
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.
---
Add a :+1: [reaction] to [issues you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc

View File

@@ -1,30 +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, ...
---
Note for maintainers: Please tag this issue in your PR.
---
Add a :+1: [reaction] to [issues you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc

View File

@@ -1,104 +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: ''
---
<!--
Hello dear reporter,
Thank you for bringing attention to this issue. Your insights are valuable to
us, and we appreciate the time you took to document the problem.
I wanted to kindly point out that in this issue template, it would be beneficial
to replace the placeholder `<package>` with the actual, canonical name of the
package you're reporting the issue for. Doing so will provide better context and
facilitate quicker troubleshooting for anyone who reads this issue in the
future.
Best regards
-->
Building this package multiple times does not yield bit-by-bit identical
results, complicating the detection of Continuous Integration (CI) breaches. For
more information on this issue, visit
[reproducible-builds.org](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
In the following steps, replace `<package>` with the canonical name of the
package.
### 1. Build the package
This step will build the package. Specific arguments are passed to the command
to keep the build artifacts so we can compare them in case of differences.
Execute the following command:
```
nix-build '<nixpkgs>' -A <package> && nix-build '<nixpkgs>' -A <package> --check --keep-failed
```
Or using the new command line style:
```
nix build nixpkgs#<package> && nix build nixpkgs#<package> --rebuild --keep-failed
```
### 2. Compare the build artifacts
If the previous command completes successfully, no differences were found and
there's nothing to do, builds are reproducible.
If it terminates with the error message `error: derivation '<X>' may not be
deterministic: output '<Y>' differs from '<Z>'`, use `diffoscope` to investigate
the discrepancies between the two build outputs. You may need to add the
`--exclude-directory-metadata recursive` option to ignore files and directories
metadata (*e.g. timestamp*) differences.
```
nix run nixpkgs#diffoscopeMinimal -- --exclude-directory-metadata recursive <Y> <Z>
```
### 3. Examine the build log
To examine the build log, use:
```
nix-store --read-log $(nix-instantiate '<nixpkgs>' -A <package>)
```
Or with the new command line style:
```
nix log $(nix path-info --derivation nixpkgs#<package>)
```
## Additional context
(please share the relevant fragment of the diffoscope output here, and any additional analysis you may have done)
## 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.
-->
---
Note for maintainers: Please tag this issue in your PR.
---
Add a :+1: [reaction] to [issues you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc

View File

@@ -1,50 +0,0 @@
<!--
^ Please summarise the changes you have done and explain why they are necessary here ^
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 sandboxing enabled in `nix.conf`? (See [Nix manual](https://nixos.org/manual/nix/stable/command-ref/conf-file.html))
- [ ] `sandbox = relaxed`
- [ ] `sandbox = true`
- [ ] 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://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#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://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#linking-nixos-module-tests-to-a-package) 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/`)
- [24.11 Release Notes](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2411.section.md) (or backporting [23.11](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2311.section.md) and [24.05](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2405.section.md) 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://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#reviewing-contributions
-->
---
Add a :+1: [reaction] to [pull requests you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[pull requests you find important]: https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+sort%3Areactions-%2B1-desc

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"

568
.github/labeler.yml vendored
View File

@@ -1,568 +0,0 @@
# NOTE: bsd, darwin and cross-compilation labels are handled by ofborg
"6.topic: agda":
- any:
- changed-files:
- any-glob-to-any-file:
- 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":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/modules/services/x11/desktop-managers/cinnamon.nix
- nixos/tests/cinnamon.nix
- nixos/tests/cinnamon-wayland.nix
- pkgs/by-name/ci/cinnamon-*/**/*
- pkgs/by-name/cj/cjs/**/*
- pkgs/by-name/mu/muffin/**/*
- pkgs/by-name/ne/nemo/**/*
- pkgs/by-name/ne/nemo-*/**/*
"6.topic: continuous integration":
- any:
- changed-files:
- any-glob-to-any-file:
- .github/**/*
- ci/**/*
"6.topic: coq":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/applications/science/logic/coq/**/*
- pkgs/development/coq-modules/**/*
- pkgs/top-level/coq-packages.nix
"6.topic: crystal":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/development/compilers/crystal/**/*
"6.topic: cuda":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/development/cuda-modules/**/*
- pkgs/top-level/cuda-packages.nix
"6.topic: deepin":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/modules/services/desktops/deepin/**/*
- pkgs/desktops/deepin/**/*
"6.topic: docker tools":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/applications/virtualization/docker/**/*
"6.topic: dotnet":
- any:
- changed-files:
- any-glob-to-any-file:
- doc/languages-frameworks/dotnet.section.md
- maintainers/scripts/update-dotnet-lockfiles.nix
- pkgs/build-support/dotnet/**/*
- pkgs/development/compilers/dotnet/**/*
- pkgs/test/dotnet/**/*
- pkgs/top-level/dotnet-packages.nix
"6.topic: emacs":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/modules/services/editors/emacs.nix
- nixos/modules/services/editors/emacs.xml
- nixos/tests/emacs-daemon.nix
- pkgs/applications/editors/emacs/build-support/**/*
- pkgs/applications/editors/emacs/elisp-packages/**/*
- pkgs/applications/editors/emacs/**/*
- pkgs/top-level/emacs-packages.nix
"6.topic: Enlightenment DE":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/modules/services/x11/desktop-managers/enlightenment.nix
- pkgs/desktops/enlightenment/**/*
- pkgs/development/python-modules/python-efl/*
"6.topic: erlang":
- any:
- changed-files:
- any-glob-to-any-file:
- 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":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/build-support/fetch*/**/*
"6.topic: flakes":
- any:
- changed-files:
- any-glob-to-any-file:
- '**/flake.nix'
- lib/systems/flake-systems.nix
- nixos/modules/config/nix-flakes.nix
"6.topic: flutter":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/build-support/flutter/*.nix
- pkgs/development/compilers/flutter/**/*.nix
"6.topic: games":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/games/**/*
"6.topic: GNOME":
- any:
- changed-files:
- any-glob-to-any-file:
- 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":
- any:
- changed-files:
- any-glob-to-any-file:
- doc/languages-frameworks/go.section.md
- pkgs/build-support/go/**/*
- pkgs/development/compilers/go/**/*
"6.topic: hardware":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/modules/hardware/**/*
"6.topic: haskell":
- any:
- changed-files:
- any-glob-to-any-file:
- 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: java":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/modules/programs/java.nix
- pkgs/development/compilers/graalvm/**/*
- pkgs/development/compilers/openjdk/**/*
- pkgs/development/compilers/temurin-bin/**/*
- pkgs/development/compilers/zulu/**/*
- pkgs/development/java-modules/**/*
- pkgs/top-level/java-packages.nix
"6.topic: jitsi":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/modules/services/networking/jitsi-videobridge.nix
- nixos/modules/services/web-apps/jitsi-meet.nix
- pkgs/servers/web-apps/jitsi-meet/**/*
- pkgs/servers/jitsi-videobridge/**/*
- pkgs/applications/networking/instant-messengers/jitsi/**/*
"6.topic: julia":
- any:
- changed-files:
- any-glob-to-any-file:
- doc/languages-frameworks/julia.section.md
- pkgs/development/compilers/julia/**/*
- pkgs/development/julia-modules/**/*
"6.topic: jupyter":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/development/python-modules/jupyter*/**/*
- pkgs/development/python-modules/mkdocs-jupyter/*
- nixos/modules/services/development/jupyter/**/*
- pkgs/applications/editors/jupyter-kernels/**/*
- pkgs/applications/editors/jupyter/**/*
"6.topic: k3s":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/modules/services/cluster/k3s/**/*
- nixos/tests/k3s/**/*
- pkgs/applications/networking/cluster/k3s/**/*
"6.topic: kernel":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/build-support/kernel/**/*
- pkgs/os-specific/linux/kernel/**/*
"6.topic: lib":
- any:
- changed-files:
- any-glob-to-any-file:
- lib/**
"6.topic: llvm/clang":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/development/compilers/llvm/**/*
"6.topic: lua":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/development/tools/misc/luarocks/*
- pkgs/development/interpreters/lua-5/**/*
- pkgs/development/interpreters/luajit/**/*
- pkgs/development/lua-modules/**/*
- pkgs/top-level/lua-packages.nix
"6.topic: Lumina DE":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/modules/services/x11/desktop-managers/lumina.nix
- pkgs/desktops/lumina/**/*
"6.topic: LXQt":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/modules/services/x11/desktop-managers/lxqt.nix
- pkgs/desktops/lxqt/**/*
"6.topic: mate":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/modules/services/x11/desktop-managers/mate.nix
- nixos/tests/mate.nix
- pkgs/desktops/mate/**/*
"6.topic: module system":
- any:
- changed-files:
- any-glob-to-any-file:
- lib/modules.nix
- lib/types.nix
- lib/options.nix
- lib/tests/modules.sh
- lib/tests/modules/**
"6.topic: musl":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/os-specific/linux/musl/**/*
"6.topic: nixos":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/**/*
- pkgs/by-name/sw/switch-to-configuration-ng/**/*
- pkgs/os-specific/linux/nixos-rebuild/**/*
"6.topic: nixos-container":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/modules/virtualisation/nixos-containers.nix
- pkgs/tools/virtualization/nixos-container/**/*
"6.topic: nim":
- any:
- changed-files:
- any-glob-to-any-file:
- doc/languages-frameworks/nim.section.md
- pkgs/build-support/build-nim-package.nix
- pkgs/by-name/ni/nim*
- pkgs/top-level/nim-overrides.nix
"6.topic: nodejs":
- any:
- changed-files:
- any-glob-to-any-file:
- doc/languages-frameworks/javascript.section.md
- pkgs/build-support/node/**/*
- pkgs/development/node-packages/**/*
- pkgs/development/tools/yarn/*
- pkgs/development/tools/yarn2nix-moretea/**/*
- pkgs/development/tools/pnpm/**/*
- pkgs/development/web/nodejs/*
"6.topic: nvidia":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/modules/hardware/video/nvidia.nix
- nixos/modules/services/hardware/nvidia-container-toolkit/**/*
- nixos/modules/services/hardware/nvidia-optimus.nix
- pkgs/os-specific/linux/nvidia-x11/**/*
"6.topic: ocaml":
- any:
- changed-files:
- any-glob-to-any-file:
- 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":
- any:
- changed-files:
- any-glob-to-any-file:
- 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: php":
- any:
- changed-files:
- any-glob-to-any-file:
- doc/languages-frameworks/php.section.md
- nixos/tests/php/**/*
- pkgs/build-support/php/**/*
- pkgs/development/interpreters/php/**/*
- pkgs/development/php-packages/**/*
- pkgs/test/php/default.nix
- pkgs/top-level/php-packages.nix
"6.topic: policy discussion":
- any:
- changed-files:
- any-glob-to-any-file:
- .github/**/*
- CONTRIBUTING.md
- pkgs/README.md
- nixos/README.md
- maintainers/README.md
- lib/README.md
- doc/README.md
"6.topic: printing":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/modules/services/printing/cupsd.nix
- pkgs/misc/cups/**/*
"6.topic: python":
- any:
- changed-files:
- any-glob-to-any-file:
- doc/languages-frameworks/python.section.md
- pkgs/development/interpreters/python/**/*
- pkgs/development/python-modules/**/*
- pkgs/top-level/python-packages.nix
"6.topic: qt/kde":
- any:
- changed-files:
- any-glob-to-any-file:
- 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: R":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/applications/science/math/R/**/*
- pkgs/development/r-modules/**/*
"6.topic: rocm":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/development/rocm-modules/**/*
"6.topic: ruby":
- any:
- changed-files:
- any-glob-to-any-file:
- doc/languages-frameworks/ruby.section.md
- pkgs/development/interpreters/ruby/**/*
- pkgs/development/ruby-modules/**/*
"6.topic: rust":
- any:
- changed-files:
- any-glob-to-any-file:
- doc/languages-frameworks/rust.section.md
- pkgs/build-support/rust/**/*
- pkgs/development/compilers/rust/**/*
"6.topic: stdenv":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/stdenv/**/*
"6.topic: steam":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/games/steam/**/*
"6.topic: systemd":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/os-specific/linux/systemd/**/*
- nixos/modules/system/boot/systemd*/**/*
"6.topic: tcl":
- any:
- changed-files:
- any-glob-to-any-file:
- doc/languages-frameworks/tcl.section.md
- pkgs/development/interpreters/tcl/*
- pkgs/development/tcl-modules/**/*
- pkgs/top-level/tcl-packages.nix
"6.topic: TeX":
- any:
- changed-files:
- any-glob-to-any-file:
- doc/languages-frameworks/texlive.section.md
- pkgs/test/texlive/**
- pkgs/tools/typesetting/tex/**/*
"6.topic: testing":
- any:
- changed-files:
- any-glob-to-any-file:
# NOTE: Let's keep the scope limited to test frameworks that are
# *developed in this repo*;
# - not individual tests
# - not packages for test frameworks
- pkgs/build-support/testers/**
- nixos/lib/testing/**
- nixos/lib/test-driver/**
- nixos/tests/nixos-test-driver/**
- nixos/lib/testing-python.nix # legacy
- nixos/tests/make-test-python.nix # legacy
# lib/debug.nix has a test framework (runTests) but it's not the main focus
"6.topic: updaters":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/common-updater/**/*
"6.topic: vim":
- any:
- changed-files:
- any-glob-to-any-file:
- 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":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/applications/editors/vscode/**/*
"6.topic: windows":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/os-specific/windows/**/*
"6.topic: xen-project":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/modules/virtualisation/xen*
- pkgs/by-name/xe/xen/*
- pkgs/by-name/qe/qemu_xen/*
- pkgs/by-name/xe/xen-guest-agent/*
- pkgs/by-name/xt/xtf/*
- pkgs/build-support/xen/*
- pkgs/development/ocaml-modules/xen*/*
- pkgs/development/ocaml-modules/vchan/*
"6.topic: xfce":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/doc/manual/configuration/xfce.xml
- nixos/modules/services/x11/desktop-managers/xfce.nix
- nixos/tests/xfce.nix
- pkgs/desktops/xfce/**/*
"6.topic: zig":
- any:
- changed-files:
- any-glob-to-any-file:
- pkgs/development/compilers/zig/**/*
- doc/hooks/zig.section.md
"8.has: changelog":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/doc/manual/release-notes/**/*
"8.has: documentation":
- any:
- changed-files:
- any-glob-to-any-file:
- doc/**/*
- nixos/doc/**/*
"8.has: module (update)":
- any:
- changed-files:
- any-glob-to-any-file:
- nixos/modules/**/*
"8.has: maintainer-list (update)":
- any:
- changed-files:
- any-glob-to-any-file:
- maintainers/maintainer-list.nix

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,40 +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: {}
jobs:
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:
# Use a GitHub App to create the PR so that CI gets triggered
# The App is scoped to Repository > Contents and Pull Requests: write for Nixpkgs
- uses: actions/create-github-app-token@5d869da34e18e7287c1daad50e0b8ea0f506ce69 # v1.11.0
id: app-token
with:
app-id: ${{ vars.BACKPORT_APP_ID }}
private-key: ${{ secrets.BACKPORT_PRIVATE_KEY }}
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ github.event.pull_request.head.sha }}
token: ${{ steps.app-token.outputs.token }}
- name: Create backport PRs
uses: korthout/backport-action@bd410d37cdcae80be6d969823ff5a225fe5c833f # v3.0.2
with:
# Config README: https://github.com/korthout/backport-action#backport-action
copy_labels_pattern: 'severity:\ssecurity'
github_token: ${{ steps.app-token.outputs.token }}
pull_description: |-
Bot-based backport to `${target_branch}`, triggered by a label in #${pull_number}.
* [ ] Before merging, ensure that this backport is [acceptable for the release](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#changes-acceptable-for-releases).
* Even as a non-commiter, if you find that it is not acceptable, leave a comment.

View File

@@ -1,31 +0,0 @@
name: Basic evaluation checks
on:
workflow_dispatch
# pull_request:
# branches:
# - master
# - release-**
# push:
# branches:
# - master
# - release-**
permissions:
contents: read
jobs:
tests:
name: basic-eval-checks
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
- uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
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 }}'
- run: nix --experimental-features 'nix-command flakes' flake check --all-systems --no-build
# explicit list of supportedSystems is needed until aarch64-darwin becomes part of the trunk jobset
- run: nix-build pkgs/top-level/release.nix -A release-checks --arg supportedSystems '[ "aarch64-darwin" "aarch64-linux" "x86_64-linux" "x86_64-darwin" ]'

View File

@@ -1,26 +0,0 @@
name: "Check cherry-picks"
on:
pull_request_target:
branches:
- 'release-**'
- 'staging-**'
- '!staging-next'
permissions: {}
jobs:
check:
name: cherry-pick-check
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
filter: blob:none
- name: Check cherry-picks
env:
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
run: |
./maintainers/scripts/check-cherry-picks.sh "$BASE_SHA" "$HEAD_SHA"

View File

@@ -1,29 +0,0 @@
name: "Check that maintainer list is sorted"
on:
pull_request_target:
paths:
- 'maintainers/maintainer-list.nix'
permissions:
contents: read
jobs:
nixos:
name: maintainer-list-check
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
# Only these directories to perform the check
sparse-checkout: |
lib
maintainers
- uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
- name: Check that maintainer-list.nix is sorted
run: nix-instantiate --eval maintainers/scripts/check-maintainers-sorted.nix

View File

@@ -1,91 +0,0 @@
# This file was copied mostly from check-maintainers-sorted.yaml.
# NOTE: Formatting with the RFC-style nixfmt command is not yet stable. See
# https://github.com/NixOS/rfcs/pull/166.
# Because of this, this action is not yet enabled for all files -- only for
# those who have opted in.
name: Check that Nix files are formatted
on:
pull_request_target:
# See the comment at the same location in ./nixpkgs-vet.yml
types: [opened, synchronize, reopened, edited]
permissions:
contents: read
jobs:
nixos:
name: nixfmt-check
runs-on: ubuntu-latest
if: "!contains(github.event.pull_request.title, '[skip treewide]')"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
# Fetches the merge commit and its parents
fetch-depth: 2
- name: Checking out base branch
run: |
base=$(mktemp -d)
baseRev=$(git rev-parse HEAD^1)
git worktree add "$base" "$baseRev"
echo "baseRev=$baseRev" >> "$GITHUB_ENV"
echo "base=$base" >> "$GITHUB_ENV"
- name: Get Nixpkgs revision for nixfmt
run: |
# pin to a commit from nixpkgs-unstable to avoid e.g. building nixfmt
# from staging
# This should not be a URL, because it would allow PRs to run arbitrary code in CI!
rev=$(jq -r .rev ci/pinned-nixpkgs.json)
echo "url=https://github.com/NixOS/nixpkgs/archive/$rev.tar.gz" >> "$GITHUB_ENV"
- uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
nix_path: nixpkgs=${{ env.url }}
- name: Install nixfmt
run: "nix-env -f '<nixpkgs>' -iAP nixfmt-rfc-style"
- name: Check that Nix files are formatted according to the RFC style
run: |
unformattedFiles=()
# TODO: Make this more parallel
# Loop through all Nix files touched by the PR
while readarray -d '' -n 2 entry && (( ${#entry[@]} != 0 )); do
type=${entry[0]}
file=${entry[1]}
case $type in
A*)
source=""
dest=$file
;;
M*)
source=$file
dest=$file
;;
C*|R*)
source=$file
read -r -d '' dest
;;
*)
echo "Ignoring file $file with type $type"
continue
esac
# Ignore files that weren't already formatted
if [[ -n "$source" ]] && ! nixfmt --check ${{ env.base }}/"$source" 2>/dev/null; then
echo "Ignoring file $file because it's not formatted in the base commit"
elif ! nixfmt --check "$dest"; then
unformattedFiles+=("$dest")
fi
done < <(git diff -z --name-status ${{ env.baseRev }} -- '*.nix')
if (( "${#unformattedFiles[@]}" > 0 )); then
echo "Some new/changed Nix files are not properly formatted"
echo "Please go to the Nixpkgs root directory, run \`nix-shell\`, then:"
echo "nixfmt ${unformattedFiles[*]@Q}"
echo "Make sure your branch is up to date with master, rebase if not."
echo "If you're having trouble, please ping @NixOS/nix-formatting"
exit 1
fi

View File

@@ -1,129 +0,0 @@
name: Check changed Nix files with nixf-tidy (experimental)
on:
pull_request_target:
types: [opened, synchronize, reopened, edited]
permissions:
contents: read
jobs:
nixos:
name: exp-nixf-tidy-check
runs-on: ubuntu-latest
if: "!contains(github.event.pull_request.title, '[skip treewide]')"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
# Fetches the merge commit and its parents
fetch-depth: 2
- name: Checking out base branch
run: |
base=$(mktemp -d)
baseRev=$(git rev-parse HEAD^1)
git worktree add "$base" "$baseRev"
echo "baseRev=$baseRev" >> "$GITHUB_ENV"
echo "base=$base" >> "$GITHUB_ENV"
- name: Get Nixpkgs revision for nixf
run: |
# pin to a commit from nixpkgs-unstable to avoid e.g. building nixf
# from staging
# This should not be a URL, because it would allow PRs to run arbitrary code in CI!
rev=$(jq -r .rev ci/pinned-nixpkgs.json)
echo "url=https://github.com/NixOS/nixpkgs/archive/$rev.tar.gz" >> "$GITHUB_ENV"
- uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
nix_path: nixpkgs=${{ env.url }}
- name: Install nixf and jq
# provided jq is incompatible with our expression
run: "nix-env -f '<nixpkgs>' -iAP nixf jq"
- name: Check that Nix files pass nixf-tidy
run: |
# Filtering error messages we don't like
nixf_wrapper(){
nixf-tidy --variable-lookup < "$1" | jq -r '
[
"sema-escaping-with"
]
as $ignored_errors|[.[]|select(.sname as $s|$ignored_errors|index($s)|not)]
'
}
failedFiles=()
# Don't report errors to file overview
# to avoid duplicates when editing title and description
if [[ "${{ github.event.action }}" == 'edited' ]] && [[ -z "${{ github.event.edited.changes.base }}" ]]; then
DONT_REPORT_ERROR=1
else
DONT_REPORT_ERROR=
fi
# TODO: Make this more parallel
# Loop through all Nix files touched by the PR
while readarray -d '' -n 2 entry && (( ${#entry[@]} != 0 )); do
type=${entry[0]}
file=${entry[1]}
case $type in
A*)
source=""
dest=$file
;;
M*)
source=$file
dest=$file
;;
C*|R*)
source=$file
read -r -d '' dest
;;
*)
echo "Ignoring file $file with type $type"
continue
esac
if [[ -n "$source" ]] && [[ "$(nixf_wrapper ${{ env.base }}/"$source")" != '[]' ]] 2>/dev/null; then
echo "Ignoring file $file because it doesn't pass nixf-tidy in the base commit"
echo # insert blank line
else
nixf_report="$(nixf_wrapper "$dest")"
if [[ "$nixf_report" != '[]' ]]; then
echo "$dest doesn't pass nixf-tidy. Reported by nixf-tidy:"
errors=$(echo "$nixf_report" | jq -r --arg dest "$dest" '
def getLCur: "line=" + (.line+1|tostring) + ",col=" + (.column|tostring);
def getRCur: "endLine=" + (.line+1|tostring) + ",endColumn=" + (.column|tostring);
def getRange: "file=\($dest)," + (.lCur|getLCur) + "," + (.rCur|getRCur);
def getBody: . as $top|(.range|getRange) + ",title="+ .sname + "::" +
(.message|sub("{}" ; ($top.args.[]|tostring)));
def getNote: "\n::notice " + (.|getBody);
def getMessage: "::error " + (.|getBody) + (if (.notes|length)>0 then
([.notes.[]|getNote]|add) else "" end);
.[]|getMessage
')
if [[ -z "$DONT_REPORT_ERROR" ]]; then
echo "$errors"
else
# just print in plain text
echo "$errors" | sed 's/^:://'
echo # add one empty line
fi
failedFiles+=("$dest")
fi
fi
done < <(git diff -z --name-status ${{ env.baseRev }} -- '*.nix')
if [[ -n "$DONT_REPORT_ERROR" ]]; then
echo "Edited the PR but didn't change the base branch, only the description/title."
echo "Not reporting errors again to avoid duplication."
echo # add one empty line
fi
if (( "${#failedFiles[@]}" > 0 )); then
echo "Some new/changed Nix files don't pass nixf-tidy."
echo "See ${{ github.event.pull_request.html_url }}/files for reported errors."
echo "If you believe this is a false positive, ping @Aleksanaa and @inclyc in this PR."
exit 1
fi

View File

@@ -1,31 +0,0 @@
name: "Check shell"
on:
pull_request_target:
permissions: {}
jobs:
x86_64-linux:
name: shell-check-x86_64-linux
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
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@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
- name: Build shell
run: nix-build shell.nix
aarch64-darwin:
name: shell-check-aarch64-darwin
runs-on: macos-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
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@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
- name: Build shell
run: nix-build shell.nix

View File

@@ -1,104 +0,0 @@
name: Codeowners v2
# This workflow depends on two GitHub Apps with the following permissions:
# - For checking code owners:
# - Permissions:
# - Repository > Administration: read-only
# - Organization > Members: read-only
# - Install App on this repository, setting these variables:
# - OWNER_RO_APP_ID (variable)
# - OWNER_RO_APP_PRIVATE_KEY (secret)
# - For requesting code owners:
# - Permissions:
# - Repository > Administration: read-only
# - Organization > Members: read-only
# - Repository > Pull Requests: read-write
# - Install App on this repository, setting these variables:
# - OWNER_APP_ID (variable)
# - OWNER_APP_PRIVATE_KEY (secret)
#
# This split is done because checking code owners requires handling untrusted PR input,
# while requesting code owners requires PR write access, and those shouldn't be mixed.
on:
pull_request_target:
types: [opened, ready_for_review, synchronize, reopened, edited]
# We don't need any default GitHub token
permissions: {}
env:
OWNERS_FILE: ci/OWNERS
# Don't do anything on draft PRs
DRY_MODE: ${{ github.event.pull_request.draft && '1' || '' }}
jobs:
# Check that code owners is valid
check:
name: Check
runs-on: ubuntu-latest
steps:
- uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
- uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
if: github.repository_owner == 'NixOS'
with:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
name: nixpkgs-ci
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
# Important: Because we use pull_request_target, this checks out the base branch of the PR, not the PR itself.
# We later build and run code from the base branch with access to secrets,
# so it's important this is not the PRs code.
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
path: base
- name: Build codeowners validator
run: nix-build base/ci -A codeownersValidator
- uses: actions/create-github-app-token@5d869da34e18e7287c1daad50e0b8ea0f506ce69 # v1.11.0
id: app-token
with:
app-id: ${{ vars.OWNER_RO_APP_ID }}
private-key: ${{ secrets.OWNER_RO_APP_PRIVATE_KEY }}
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: refs/pull/${{ github.event.number }}/merge
path: pr
- name: Validate codeowners
run: result/bin/codeowners-validator
env:
OWNERS_FILE: pr/${{ env.OWNERS_FILE }}
GITHUB_ACCESS_TOKEN: ${{ steps.app-token.outputs.token }}
REPOSITORY_PATH: pr
OWNER_CHECKER_REPOSITORY: ${{ github.repository }}
# Set this to "notowned,avoid-shadowing" to check that all files are owned by somebody
EXPERIMENTAL_CHECKS: "avoid-shadowing"
# Request reviews from code owners
request:
name: Request
runs-on: ubuntu-latest
steps:
- uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
# Important: Because we use pull_request_target, this checks out the base branch of the PR, not the PR head.
# This is intentional, because we need to request the review of owners as declared in the base branch.
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/create-github-app-token@5d869da34e18e7287c1daad50e0b8ea0f506ce69 # v1.11.0
id: app-token
with:
app-id: ${{ vars.OWNER_APP_ID }}
private-key: ${{ secrets.OWNER_APP_PRIVATE_KEY }}
- name: Build review request package
run: nix-build ci -A requestReviews
- name: Request reviews
run: result/bin/request-reviews.sh ${{ github.repository }} ${{ github.event.number }} "$OWNERS_FILE"
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}

View File

@@ -1,44 +0,0 @@
name: "Checking EditorConfig v2"
permissions:
pull-requests: read
contents: read
on:
# avoids approving first time contributors
pull_request_target:
branches-ignore:
- 'release-**'
jobs:
tests:
name: editorconfig-check
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
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@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
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: Checking EditorConfig
run: |
cat "$HOME/changed_files" | nix-shell -p editorconfig-checker --run '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,30 +0,0 @@
name: "Building Nixpkgs lib-tests"
permissions:
contents: read
on:
pull_request_target:
paths:
- 'lib/**'
jobs:
get-merge-commit:
uses: ./.github/workflows/get-merge-commit.yml
nixpkgs-lib-tests:
name: nixpkgs-lib-tests
runs-on: ubuntu-latest
needs: get-merge-commit
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
if: needs.get-merge-commit.outputs.mergedSha
with:
# pull_request_target checks out the base branch by default
ref: ${{ needs.get-merge-commit.outputs.mergedSha }}
- uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
- name: Building Nixpkgs lib-tests
run: |
nix-build --arg pkgs "(import ./ci/. {}).pkgs" ./lib/tests/release.nix

View File

@@ -1,284 +0,0 @@
name: Eval
on:
pull_request_target:
push:
# Keep this synced with ci/request-reviews/dev-branches.txt
branches:
- master
- staging
- release-*
- staging-*
- haskell-updates
- python-updates
permissions:
contents: read
jobs:
get-merge-commit:
uses: ./.github/workflows/get-merge-commit.yml
attrs:
name: Attributes
runs-on: ubuntu-latest
needs: get-merge-commit
outputs:
mergedSha: ${{ needs.get-merge-commit.outputs.mergedSha }}
baseSha: ${{ steps.baseSha.outputs.baseSha }}
systems: ${{ steps.systems.outputs.systems }}
steps:
- name: Check out the PR at the test merge commit
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# Add this to _all_ subsequent steps to skip them
if: needs.get-merge-commit.outputs.mergedSha
with:
ref: ${{ needs.get-merge-commit.outputs.mergedSha }}
fetch-depth: 2
path: nixpkgs
- name: Determine base commit
if: github.event_name == 'pull_request_target' && needs.get-merge-commit.outputs.mergedSha
id: baseSha
run: |
baseSha=$(git -C nixpkgs rev-parse HEAD^1)
echo "baseSha=$baseSha" >> "$GITHUB_OUTPUT"
- name: Install Nix
uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
if: needs.get-merge-commit.outputs.mergedSha
- name: Evaluate the list of all attributes and get the systems matrix
id: systems
if: needs.get-merge-commit.outputs.mergedSha
run: |
nix-build nixpkgs/ci -A eval.attrpathsSuperset
echo "systems=$(<result/systems.json)" >> "$GITHUB_OUTPUT"
- name: Upload the list of all attributes
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
if: needs.get-merge-commit.outputs.mergedSha
with:
name: paths
path: result/*
eval-aliases:
name: Eval nixpkgs with aliases enabled
runs-on: ubuntu-latest
needs: attrs
steps:
- name: Check out the PR at the test merge commit
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ needs.attrs.outputs.mergedSha }}
path: nixpkgs
- name: Install Nix
uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
- name: Query nixpkgs with aliases enabled to check for basic syntax errors
run: |
time nix-env -I ./nixpkgs -f ./nixpkgs -qa '*' --option restrict-eval true --option allow-import-from-derivation false >/dev/null
outpaths:
name: Outpaths
runs-on: ubuntu-latest
needs: attrs
# Skip this and future steps if the PR can't be merged
if: needs.attrs.outputs.mergedSha
strategy:
matrix:
system: ${{ fromJSON(needs.attrs.outputs.systems) }}
steps:
- name: Download the list of all attributes
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: paths
path: paths
- name: Check out the PR at the test merge commit
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ needs.attrs.outputs.mergedSha }}
path: nixpkgs
- name: Install Nix
uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
- name: Evaluate the ${{ matrix.system }} output paths for all derivation attributes
env:
MATRIX_SYSTEM: ${{ matrix.system }}
run: |
nix-build nixpkgs/ci -A eval.singleSystem \
--argstr evalSystem "$MATRIX_SYSTEM" \
--arg attrpathFile ./paths/paths.json \
--arg chunkSize 10000
# If it uses too much memory, slightly decrease chunkSize
- name: Upload the output paths and eval stats
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
if: needs.attrs.outputs.mergedSha
with:
name: intermediate-${{ matrix.system }}
path: result/*
process:
name: Process
runs-on: ubuntu-latest
needs: [ outpaths, attrs ]
outputs:
baseRunId: ${{ steps.baseRunId.outputs.baseRunId }}
steps:
- name: Download output paths and eval stats for all systems
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
pattern: intermediate-*
path: intermediate
- name: Check out the PR at the test merge commit
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ needs.attrs.outputs.mergedSha }}
path: nixpkgs
- name: Install Nix
uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
- name: Combine all output paths and eval stats
run: |
nix-build nixpkgs/ci -A eval.combine \
--arg resultsDir ./intermediate \
-o prResult
- name: Upload the combined results
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with:
name: result
path: prResult/*
- name: Get base run id
if: needs.attrs.outputs.baseSha
id: baseRunId
run: |
# Get the latest eval.yml workflow run for the PR's base commit
if ! run=$(gh api --method GET /repos/"$REPOSITORY"/actions/workflows/eval.yml/runs \
-f head_sha="$BASE_SHA" -f event=push \
--jq '.workflow_runs | sort_by(.run_started_at) | .[-1]') \
|| [[ -z "$run" ]]; then
echo "Could not find an eval.yml workflow run for $BASE_SHA, cannot make comparison"
exit 0
fi
echo "Comparing against $(jq .html_url <<< "$run")"
runId=$(jq .id <<< "$run")
conclusion=$(jq -r .conclusion <<< "$run")
while [[ "$conclusion" == null ]]; do
echo "Workflow not done, waiting 10 seconds before checking again"
sleep 10
conclusion=$(gh api /repos/"$REPOSITORY"/actions/runs/"$runId" --jq '.conclusion')
done
if [[ "$conclusion" != "success" ]]; then
echo "Workflow was not successful, cannot make comparison"
exit 0
fi
echo "baseRunId=$runId" >> "$GITHUB_OUTPUT"
env:
REPOSITORY: ${{ github.repository }}
BASE_SHA: ${{ needs.attrs.outputs.baseSha }}
GH_TOKEN: ${{ github.token }}
- uses: actions/download-artifact@v4
if: steps.baseRunId.outputs.baseRunId
with:
name: result
path: baseResult
github-token: ${{ github.token }}
run-id: ${{ steps.baseRunId.outputs.baseRunId }}
- name: Compare against the base branch
if: steps.baseRunId.outputs.baseRunId
run: |
nix-build nixpkgs/ci -A eval.compare \
--arg beforeResultDir ./baseResult \
--arg afterResultDir ./prResult \
-o comparison
cat comparison/step-summary.md >> "$GITHUB_STEP_SUMMARY"
# TODO: Request reviews from maintainers for packages whose files are modified in the PR
- name: Upload the combined results
if: steps.baseRunId.outputs.baseRunId
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with:
name: comparison
path: comparison/*
# Separate job to have a very tightly scoped PR write token
tag:
name: Tag
runs-on: ubuntu-latest
needs: process
if: needs.process.outputs.baseRunId
permissions:
pull-requests: write
statuses: write
steps:
- name: Download process result
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: comparison
path: comparison
- name: Tagging pull request
run: |
# Get all currently set rebuild labels
gh api \
/repos/"$REPOSITORY"/issues/"$NUMBER"/labels \
--jq '.[].name | select(startswith("10.rebuild"))' \
| sort > before
# And the labels that should be there
jq -r '.labels[]' comparison/changed-paths.json \
| sort > after
# Remove the ones not needed anymore
while read -r toRemove; do
echo "Removing label $toRemove"
gh api \
--method DELETE \
/repos/"$REPOSITORY"/issues/"$NUMBER"/labels/"$toRemove"
done < <(comm -23 before after)
# And add the ones that aren't set already
while read -r toAdd; do
echo "Adding label $toAdd"
gh api \
--method POST \
/repos/"$REPOSITORY"/issues/"$NUMBER"/labels \
-f "labels[]=$toAdd"
done < <(comm -13 before after)
env:
GH_TOKEN: ${{ github.token }}
REPOSITORY: ${{ github.repository }}
NUMBER: ${{ github.event.number }}
- name: Add eval summary to commit statuses
if: ${{ github.event_name == 'pull_request_target' }}
run: |
description=$(jq -r '
"Package: added " + (.attrdiff.added | length | tostring) +
", removed " + (.attrdiff.removed | length | tostring) +
", changed " + (.attrdiff.changed | length | tostring) +
", Rebuild: linux " + (.rebuildCountByKernel.linux | tostring) +
", darwin " + (.rebuildCountByKernel.darwin | tostring)
' <comparison/changed-paths.json)
target_url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID?pr=$NUMBER"
gh api --method POST \
-H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" \
"/repos/$GITHUB_REPOSITORY/statuses/$PR_HEAD_SHA" \
-f "context=Eval / Summary" -f "state=success" -f "description=$description" -f "target_url=$target_url"
env:
GH_TOKEN: ${{ github.token }}
PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
NUMBER: ${{ github.event.number }}

View File

@@ -1,43 +0,0 @@
name: Get merge commit
on:
workflow_call:
outputs:
mergedSha:
description: "The merge commit SHA"
value: ${{ jobs.resolve-merge-commit.outputs.mergedSha }}
# We need a token to query the API, but it doesn't need any special permissions
permissions: {}
jobs:
resolve-merge-commit:
runs-on: ubuntu-latest
outputs:
mergedSha: ${{ steps.merged.outputs.mergedSha }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
path: base
sparse-checkout: ci
- name: Check if the PR can be merged and get the test merge commit
id: merged
env:
GH_TOKEN: ${{ github.token }}
GH_EVENT: ${{ github.event_name }}
run: |
case "$GH_EVENT" in
push)
echo "mergedSha=${{ github.sha }}" >> "$GITHUB_OUTPUT"
;;
pull_request_target)
if mergedSha=$(base/ci/get-merge-commit.sh ${{ github.repository }} ${{ github.event.number }}); then
echo "Checking the merge commit $mergedSha"
echo "mergedSha=$mergedSha" >> "$GITHUB_OUTPUT"
else
# Skipping so that no notifications are sent
echo "Skipping the rest..."
fi
;;
esac
rm -rf base

View File

@@ -1,25 +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:
name: label-pr
runs-on: ubuntu-latest
if: "github.repository_owner == 'NixOS' && !contains(github.event.pull_request.title, '[skip treewide]')"
steps:
- uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
sync-labels: true

View File

@@ -1,33 +0,0 @@
name: "Build NixOS manual v2"
permissions:
contents: read
on:
pull_request_target:
branches:
- master
paths:
- 'nixos/**'
jobs:
nixos:
name: nixos-manual-build
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
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@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
- uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
with:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
name: nixpkgs-ci
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Building NixOS manual
run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true nixos/release.nix -A manual.x86_64-linux

View File

@@ -1,35 +0,0 @@
name: "Build Nixpkgs manual v2"
permissions:
contents: read
on:
pull_request_target:
branches:
- master
paths:
- 'doc/**'
- 'lib/**'
- 'pkgs/tools/nix/nixdoc/**'
jobs:
nixpkgs:
name: nixpkgs-manual-build
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
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@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
- uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
with:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
name: nixpkgs-ci
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Building Nixpkgs manual
run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true pkgs/top-level/release.nix -A manual -A manual.tests

View File

@@ -1,45 +0,0 @@
name: "Check whether nix files are parseable v2"
permissions:
pull-requests: read
contents: read
on:
# avoids approving first time contributors
pull_request_target:
branches-ignore:
- 'release-**'
jobs:
tests:
name: nix-files-parseable-check
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 --raw-output '.[] | select(.status != "removed" and (.filename | endswith(".nix"))) | .filename' \
> "$HOME/changed_files"
if [[ -s "$HOME/changed_files" ]]; then
echo "CHANGED_FILES=$HOME/changed_files" > "$GITHUB_ENV"
fi
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
if: ${{ env.CHANGED_FILES && env.CHANGED_FILES != '' }}
- uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
with:
nix_path: nixpkgs=channel:nixpkgs-unstable
- name: Parse all changed or added nix files
run: |
ret=0
while IFS= read -r file; do
out="$(nix-instantiate --parse "$file")" || { echo "$out" && ret=1; }
done < "$HOME/changed_files"
exit "$ret"
if: ${{ env.CHANGED_FILES && env.CHANGED_FILES != '' }}

View File

@@ -1,74 +0,0 @@
# `nixpkgs-vet` is a tool to vet Nixpkgs: its architecture, package structure, and more.
# Among other checks, it makes sure that `pkgs/by-name` (see `../../pkgs/by-name/README.md`) follows the validity rules outlined in [RFC 140](https://github.com/NixOS/rfcs/pull/140).
# When you make changes to this workflow, please also update `ci/nixpkgs-vet.sh` to reflect the impact of your work to the CI.
# See https://github.com/NixOS/nixpkgs-vet for details on the tool and its checks.
name: Vet nixpkgs
on:
# Using pull_request_target instead of pull_request avoids having to approve first time contributors.
pull_request_target:
# This workflow depends on the base branch of the PR, but changing the base branch is not included in the default trigger events, which would be `opened`, `synchronize` or `reopened`.
# Instead it causes an `edited` event, so we need to add it explicitly here.
# While `edited` is also triggered when the PR title/body is changed, this PR action is fairly quick, and PRs don't get edited **that** often, so it shouldn't be a problem.
# There is a feature request for adding a `base_changed` event: https://github.com/orgs/community/discussions/35058
types: [opened, synchronize, reopened, edited]
permissions: {}
# We don't use a concurrency group here, because the action is triggered quite often (due to the PR edit trigger), and contributors would get notified on any canceled run.
# There is a feature request for suppressing notifications on concurrency-canceled runs: https://github.com/orgs/community/discussions/13015
jobs:
get-merge-commit:
uses: ./.github/workflows/get-merge-commit.yml
check:
name: nixpkgs-vet
# This needs to be x86_64-linux, because we depend on the tooling being pre-built in the GitHub releases.
runs-on: ubuntu-latest
# This should take 1 minute at most, but let's be generous. The default of 6 hours is definitely too long.
timeout-minutes: 10
needs: get-merge-commit
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
if: needs.get-merge-commit.outputs.mergedSha
with:
# pull_request_target checks out the base branch by default
ref: ${{ needs.get-merge-commit.outputs.mergedSha }}
# Fetches the merge commit and its parents
fetch-depth: 2
- name: Checking out base branch
if: needs.get-merge-commit.outputs.mergedSha
run: |
base=$(mktemp -d)
git worktree add "$base" "$(git rev-parse HEAD^1)"
echo "base=$base" >> "$GITHUB_ENV"
- uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
if: needs.get-merge-commit.outputs.mergedSha
- name: Fetching the pinned tool
if: needs.get-merge-commit.outputs.mergedSha
# Update the pinned version using ci/nixpkgs-vet/update-pinned-tool.sh
run: |
# The pinned version of the tooling to use.
toolVersion=$(<ci/nixpkgs-vet/pinned-version.txt)
# Fetch the x86_64-linux-specific release artifact containing the gzipped NAR of the pre-built tool.
toolPath=$(curl -sSfL https://github.com/NixOS/nixpkgs-vet/releases/download/"$toolVersion"/x86_64-linux.nar.gz \
| gzip -cd | nix-store --import | tail -1)
# Adds a result symlink as a GC root.
nix-store --realise "$toolPath" --add-root result
- name: Running nixpkgs-vet
if: needs.get-merge-commit.outputs.mergedSha
env:
# Force terminal colors to be enabled. The library that `nixpkgs-vet` uses respects https://bixense.com/clicolors/
CLICOLOR_FORCE: 1
run: |
if result/bin/nixpkgs-vet --base "$base" .; then
exit 0
else
exitCode=$?
echo "To run locally: ./ci/nixpkgs-vet.sh $GITHUB_BASE_REF https://github.com/$GITHUB_REPOSITORY.git"
echo "If you're having trouble, ping @NixOS/nixpkgs-vet"
exit "$exitCode"
fi

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,34 +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:
name: set-ofborg-pending
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,60 +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 * * *'
workflow_dispatch:
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-24.05
into: staging-next-24.05
- from: staging-next-24.05
into: staging-24.05
name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
uses: devmasx/merge-branch@854d3ac71ed1e9deb668e0074781b81fdd6e771f # 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@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
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,58 +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 * * *'
workflow_dispatch:
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
uses: devmasx/merge-branch@854d3ac71ed1e9deb668e0074781b81fdd6e771f # 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@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
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 }}).

28
.gitignore vendored
View File

@@ -2,37 +2,17 @@
,*
.*.swp
.*.swo
.\#*
\#*\#
.idea/
.nixos-test-history
.vscode/
.helix/
outputs/
result-*
result
repl-result-*
tags
!pkgs/development/python-modules/result
result-*
/doc/NEWS.html
/doc/NEWS.txt
/doc/manual.html
/doc/manual.pdf
/source/
.version-suffix
.direnv
.envrc
.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,26 +0,0 @@
ajs124 <git@ajs124.de> <ajs124@users.noreply.github.com>
Anderson Torres <torres.anderson.85@protonmail.com>
Atemu <git@atemu.net> <atemu.main@gmail.com>
Christina Sørensen <christina@cafkafk.com>
Christina Sørensen <christina@cafkafk.com> <christinaafk@gmail.com>
Christina Sørensen <christina@cafkafk.com> <89321978+cafkafk@users.noreply.github.com>
Daniel Løvbrøtte Olsen <me@dandellion.xyz> <daniel.olsen99@gmail.com>
Fabian Affolter <mail@fabian-affolter.ch> <fabian@affolter-engineering.ch>
Fiona Behrens <me@kloenk.dev>
Fiona Behrens <me@kloenk.dev> <me@kloenk.de>
goatastronaut0212 <goatastronaut0212@outlook.com> <goatastronaut0212@proton.me>
Janne Heß <janne@hess.ooo> <dasJ@users.noreply.github.com>
Jörg Thalheim <joerg@thalheim.io> <Mic92@users.noreply.github.com>
Lin Jian <me@linj.tech> <linj.dev@outlook.com>
Lin Jian <me@linj.tech> <75130626+jian-lin@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>
Tomodachi94 <tomodachi94@protonmail.com> Tomo <68489118+Tomodachi94@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>
Yifei Sun <ysun@hey.com> StepBroBD <Hi@StepBroBD.com>
Yifei Sun <ysun@hey.com> <ysun+git@stepbrobd.com>

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 +0,0 @@
lib/.version

1
.version Normal file
View File

@@ -0,0 +1 @@
15.09

View File

@@ -1,802 +1,12 @@
# Contributing to Nixpkgs
# How to contribute
This document is for people wanting to contribute to the implementation of Nixpkgs.
This involves interacting with implementation changes that are proposed using [GitHub](https://github.com/) [pull requests](https://docs.github.com/pull-requests) to the [Nixpkgs](https://github.com/nixos/nixpkgs/) repository (which you're in right now).
## Opening issues
As such, a GitHub account is recommended, which you can sign up for [here](https://github.com/signup).
See [here](https://discourse.nixos.org/t/about-the-patches-category/477) for how to contribute without a GitHub account.
* Make sure you have a [GitHub account](https://github.com/signup/free)
* [Submit an issue](https://github.com/NixOS/nixpkgs/issues) - assuming one does not already exist.
* Clearly describe the issue including steps to reproduce when it is a bug.
* Include information what version of nixpkgs and Nix are you using (nixos-version or git revision).
Additionally this document assumes that you already know how to use GitHub and Git.
If that's not the case, we recommend learning about it first [here](https://docs.github.com/en/get-started/quickstart/hello-world).
## Submitting changes
## Overview
[overview]: #overview
This file contains general contributing information, but individual parts also have more specific information to them in their respective `README.md` files, linked here:
- [`lib`](./lib/README.md): Sources and documentation of the [library functions](https://nixos.org/manual/nixpkgs/stable/#chap-functions)
- [`maintainers`](./maintainers/README.md): Nixpkgs maintainer and team listings, maintainer scripts
- [`pkgs`](./pkgs/README.md): Package and [builder](https://nixos.org/manual/nixpkgs/stable/#part-builders) definitions
- [`doc`](./doc/README.md): Sources and infrastructure for the [Nixpkgs manual](https://nixos.org/manual/nixpkgs/stable/)
- [`nixos`](./nixos/README.md): Implementation of [NixOS](https://nixos.org/manual/nixos/stable/)
# How to's
## How to create pull requests
[pr-create]: #how-to-create-pull-requests
This section describes in some detail how changes can be made and proposed with pull requests.
> [!Note]
> Be aware that contributing implies licensing those contributions under the terms of [COPYING](./COPYING), an MIT-like license.
0. Set up a local version of Nixpkgs to work with using GitHub and Git
1. [Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo#forking-a-repository) the [Nixpkgs repository](https://github.com/nixos/nixpkgs/).
1. [Clone the forked repository](https://docs.github.com/en/get-started/quickstart/fork-a-repo#cloning-your-forked-repository) into a local `nixpkgs` directory.
1. [Configure the upstream Nixpkgs repository](https://docs.github.com/en/get-started/quickstart/fork-a-repo#configuring-git-to-sync-your-fork-with-the-upstream-repository).
1. Figure out the branch that should be used for this change by going through [this section][branch].
If in doubt use `master`, that's where most changes should go.
This can be changed later by [rebasing][rebase].
2. Create and switch to a new Git branch, ideally such that:
- The name of the branch hints at the change you'd like to implement, e.g. `update-hello`.
- The base of the branch includes the most recent changes on the base branch from step 1, we'll assume `master` here.
```bash
# Make sure you have the latest changes from upstream Nixpkgs
git fetch upstream
# Create and switch to a new branch based off the master branch in Nixpkgs
git switch --create update-hello upstream/master
```
To avoid having to download and build potentially many derivations, at the expense of using a potentially outdated version, you can base the branch off a specific [Git commit](https://www.git-scm.com/docs/gitglossary#def_commit) instead:
- The commit of the latest `nixpkgs-unstable` channel, available [here](https://channels.nixos.org/nixpkgs-unstable/git-revision).
- The commit of a local Nixpkgs downloaded using [nix-channel](https://nixos.org/manual/nix/stable/command-ref/nix-channel), available using `nix-instantiate --eval --expr '(import <nixpkgs/lib>).trivial.revisionWithDefault null'`
- If you're using NixOS, the commit of your NixOS installation, available with `nixos-version --revision`.
Once you have an appropriate commit you can use it instead of `upstream/master` in the above command:
```bash
git switch --create update-hello <the desired base commit>
```
3. Make the desired changes in the local Nixpkgs repository using an editor of your choice.
Make sure to:
- Adhere to both the [general code conventions][code-conventions], and the code conventions specific to the part you're making changes to.
See the [overview section][overview] for more specific information.
- Test the changes.
See the [overview section][overview] for more specific information.
- If necessary, document the change.
See the [overview section][overview] for more specific information.
4. Commit your changes using `git commit`.
Make sure to adhere to the [commit conventions](#commit-conventions).
Repeat the steps 3-4 as many times as necessary.
Advance to the next step if all the commits (viewable with `git log`) make sense together.
5. Push your commits to your fork of Nixpkgs.
```
git push --set-upstream origin HEAD
```
The above command will output a link that allows you to directly quickly do the next step:
```
remote: Create a pull request for 'update-hello' on GitHub by visiting:
remote: https://github.com/myUser/nixpkgs/pull/new/update-hello
```
6. [Create a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request#creating-the-pull-request) from the new branch in your Nixpkgs fork to the upstream Nixpkgs repository.
Use the branch from step 2 as the pull requests base branch.
Go through the [pull request template](#pull-request-template) in the pre-filled default description.
7. Respond to review comments, potential CI failures and potential merge conflicts by updating the pull request.
Always keep the pull request in a mergeable state.
This process is covered in more detail from the non-technical side in [I opened a PR, how do I get it merged?](#i-opened-a-pr-how-do-i-get-it-merged).
The custom [OfBorg](https://github.com/NixOS/ofborg) CI system will perform various checks to help ensure code quality, whose results you can see at the bottom of the pull request.
See [the OfBorg Readme](https://github.com/NixOS/ofborg#readme) for more details.
- To add new commits, repeat steps 3-4 and push the result using
```
git push
```
- To change existing commits you will have to [rewrite Git history](https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History).
Useful Git commands that can help a lot with this are `git commit --patch --amend` and `git rebase --interactive`.
With a rewritten history you need to force-push the commits using
```
git push --force-with-lease
```
- In case of merge conflicts you will also have to [rebase the branch](https://git-scm.com/book/en/v2/Git-Branching-Rebasing) on top of current `master`.
Sometimes this can be done [on GitHub directly](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/keeping-your-pull-request-in-sync-with-the-base-branch#updating-your-pull-request-branch), but if not you will have to rebase locally using
```
git fetch upstream
git rebase upstream/master
git push --force-with-lease
```
- If you need to change the base branch of the pull request, you can do so by [rebasing][rebase].
8. If your pull request is merged and [acceptable for releases][release-acceptable] you may [backport][pr-backport] the pull request.
### Pull request template
[pr-template]: #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
When sandbox builds are enabled, Nix will set up 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 is blocked as well (e.g., inter-process communication is isolated on Linux); see [sandbox](https://nixos.org/manual/nix/stable/command-ref/conf-file#conf-sandbox) in the Nix manual for details.
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 [Hydra](https://nixos.org/hydra/) sandboxing is also used.
If you are on Linux, sandboxing is enabled by default.
On other platforms, sandboxing is disabled by default due to a small performance hit on each build.
Please enable sandboxing **before** building the package by adding the following to: `/etc/nix/nix.conf`:
```ini
sandbox = true
```
#### Built on platform(s)
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)
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`
If you are modifying a package, 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/`)
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
The last checkbox is about whether it fits the guidelines in this `CONTRIBUTING.md` file. This 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.
### Rebasing between branches (i.e. from master to staging)
[rebase]: #rebasing-between-branches-ie-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.
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 be retargeted to
`staging`. 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
```
## How to backport pull requests
[pr-backport]: #how-to-backport-pull-requests
Once a pull request has been merged into `master`, a backport pull request to the corresponding `release-YY.MM` branch can be created either automatically or manually.
### Automatically backporting changes
> [!Note]
> You have to be a [Nixpkgs maintainer](./maintainers) to automatically create a backport pull request.
Add the [`backport release-YY.MM` label](https://github.com/NixOS/nixpkgs/labels?q=backport) to the pull request on the `master` branch.
This will cause [a GitHub Action](.github/workflows/backport.yml) to open a pull request to the `release-YY.MM` branch a few minutes later.
This can be done on both open or already merged pull requests.
### Manually backporting changes
To manually create a backport pull request, follow [the standard pull request process][pr-create], with these notable differences:
- Use `release-YY.MM` for the base branch, both for the local branch and the pull request.
> [!Warning]
> Do not use the `nixos-YY.MM` branch, that is a branch pointing to the tested release channel commit
- Instead of manually making and committing the changes, use [`git cherry-pick -x`](https://git-scm.com/docs/git-cherry-pick) for each commit from the pull request you'd like to backport.
Either `git cherry-pick -x <commit>` when the reason for the backport is obvious (such as minor versions, fixes, etc.), otherwise use `git cherry-pick -xe <commit>` to add a reason for the backport to the commit message.
Here is [an example](https://github.com/nixos/nixpkgs/commit/5688c39af5a6c5f3d646343443683da880eaefb8) of this.
> [!Warning]
> 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.
- In the pull request description, link to the original pull request to `master`.
The pull request title should include `[YY.MM]` matching the release you're backporting to.
- 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.
## How to review pull requests
[pr-review]: #how-to-review-pull-requests
> [!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.
When doing a review:
- Aim to drive the proposal to a timely conclusion.
- Focus on the proposed changes to keep the scope of the discussion narrow.
- Help the contributor prioritise their efforts towards getting their change merged.
If you find anything related that could be improved but is not immediately required for acceptance, consider
- Implementing the changes yourself in a follow-up pull request (and request review from the person who inspired you)
- Tracking your idea in an issue
- Offering the original contributor to review a follow-up pull request
- Making concrete [suggestions](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/incorporating-feedback-in-your-pull-request) in the same pull request.
For example, follow-up changes could involve refactoring code in the affected files.
But please remember not to make such additional considerations a blocker, and communicate that to the contributor, for example by following the [conventional comments](https://conventionalcomments.org/) pattern.
If the related change is essential for the contribution at hand, make clear why you think it is important to address that first.
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.
To get more information about how to review specific parts of Nixpkgs, refer to the documents linked to in the [overview section][overview].
If a pull request contains documentation changes that might require feedback from the documentation team, ping [@NixOS/documentation-team](https://github.com/orgs/nixos/teams/documentation-team) on the pull request.
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.
## How to merge pull requests yourself
[pr-merge]: #how-to-merge-pull-requests
To streamline automated updates, leverage the nixpkgs-merge-bot by simply commenting `@NixOS/nixpkgs-merge-bot merge`. The bot will verify if the following conditions are met, refusing to merge otherwise:
- the PR author should be @r-ryantm;
- the commenter that issued the command should be among the package maintainers;
- the package should reside in `pkgs/by-name`.
Further, nixpkgs-merge-bot will ensure all ofBorg checks (except the Darwin-related ones) are successfully completed before merging the pull request. Should the checks still be underway, the bot patiently waits for ofBorg to finish before attempting the merge again.
For other pull requests, please see [I opened a PR, how do I get it merged?](#i-opened-a-pr-how-do-i-get-it-merged).
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 #321665](https://github.com/NixOS/nixpkgs/issues/321665) 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.
# Flow of merged pull requests
After a pull request is merged, it eventually makes it to the [official Hydra CI](https://hydra.nixos.org/).
Hydra regularly evaluates and builds Nixpkgs, updating [the official channels](https://channels.nixos.org/) when specific Hydra jobs succeeded.
See [Nix Channel Status](https://status.nixos.org/) for the current channels and their state.
Here's a brief overview of the main Git branches and what channels they're used for:
- `master`: The main branch, used for the unstable channels such as `nixpkgs-unstable`, `nixos-unstable` and `nixos-unstable-small`.
- `release-YY.MM` (e.g. `release-24.05`): The NixOS release branches, used for the stable channels such as `nixos-24.05`, `nixos-24.05-small` and `nixpkgs-24.05-darwin`.
When a channel is updated, a corresponding Git branch is also updated to point to the corresponding commit.
So e.g. the [`nixpkgs-unstable` branch](https://github.com/nixos/nixpkgs/tree/nixpkgs-unstable) corresponds to the Git commit from the [`nixpkgs-unstable` channel](https://channels.nixos.org/nixpkgs-unstable).
Nixpkgs in its entirety is tied to the NixOS release process, which is documented in the [NixOS Release Wiki](https://nixos.github.io/release-wiki/).
See [this section][branch] to know when to use the release branches.
## Staging
[staging]: #staging
The staging workflow exists to batch Hydra builds of many packages together.
It is coordinated in the [Staging room](https://matrix.to/#/#staging:nixos.org) on Matrix.
It works by directing commits that cause [mass rebuilds][mass-rebuild] to a separate `staging` branch that isn't directly built by Hydra.
Regularly, the `staging` branch is _manually_ merged into a `staging-next` branch to be built by Hydra using the [`nixpkgs:staging-next` jobset](https://hydra.nixos.org/jobset/nixpkgs/staging-next).
The `staging-next` branch should then only receive changes that fix Hydra builds;
**for anything else, ask the [Staging room](https://matrix.to/#/#staging:nixos.org) first**.
Once it is verified that there are no major regressions, it is merged into `master` using [a pull request](https://github.com/NixOS/nixpkgs/pulls?q=head%3Astaging-next).
This is done manually in order to ensure it's a good use of Hydra's computing resources.
By keeping the `staging-next` branch separate from `staging`, this batching does not block developers from merging changes into `staging`.
In order for the `staging` and `staging-next` branches to be up-to-date with the latest commits on `master`, there are regular _automated_ merges from `master` into `staging-next` and `staging`.
This is implemented using GitHub workflows [here](.github/workflows/periodic-merge-6h.yml) and [here](.github/workflows/periodic-merge-24h.yml).
> [!Note]
> Changes must be sufficiently tested before being merged into any branch.
> Hydra builds should not be used as testing platform.
Here is a Git history diagram showing the flow of commits between the three branches:
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'gitInv0': '#ff0000',
'gitInv1': '#ff0000',
'git2': '#ff4444',
'commitLabelFontSize': '15px'
},
'gitGraph': {
'showCommitLabel':true,
'mainBranchName': 'master',
'rotateCommitLabel': true
}
} }%%
gitGraph
commit id:" "
branch staging
commit id:" "
branch staging-next
merge master id:"automatic"
checkout staging
merge staging-next id:"automatic "
checkout staging-next
merge staging type:HIGHLIGHT id:"manual"
commit id:"fixup"
checkout master
checkout staging
checkout master
commit id:" "
checkout staging-next
merge master id:"automatic "
checkout staging
merge staging-next id:"automatic "
checkout staging-next
commit id:"fixup "
checkout master
merge staging-next type:HIGHLIGHT id:"manual (PR)"
```
Here's an overview of the different branches:
| branch | `master` | `staging-next` | `staging` |
| --- | --- | --- | --- |
| Used for development | ✔️ | ❌ | ✔️ |
| Built by Hydra | ✔️ | ✔️ | ❌ |
| [Mass rebuilds][mass-rebuild] | ❌ | ⚠️ Only to fix Hydra builds | ✔️ |
| Critical security fixes | ✔️ for non-mass-rebuilds | ✔️ for mass-rebuilds | ❌ |
| Automatically merged into | `staging-next` | `staging` | - |
| Manually merged into | - | `master` | `staging-next` |
The staging workflow is used for all main branches, `master` and `release-YY.MM`, with corresponding names:
- `master`/`release-YY.MM`
- `staging`/`staging-YY.MM`
- `staging-next`/`staging-next-YY.MM`
# Conventions
## Branch conventions
<!-- This section is relevant to both contributors and reviewers -->
[branch]: #branch-conventions
Most changes should go to the `master` branch, but sometimes other branches should be used instead.
Use the following decision process to figure out which one it should be:
Is the change [acceptable for releases][release-acceptable] and do you wish to have the change in the release?
- No: Use the `master` branch, do not backport the pull request.
- Yes: Can the change be implemented the same way on the `master` and release branches?
For example, a packages major version might differ between the `master` and release branches, such that separate security patches are required.
- Yes: Use the `master` branch and [backport the pull request](#how-to-backport-pull-requests).
- No: Create separate pull requests to the `master` and `release-XX.YY` branches.
Furthermore, if the change causes a [mass rebuild][mass-rebuild], use the appropriate staging branch instead:
- Mass rebuilds to `master` should go to `staging` instead.
- Mass rebuilds to `release-XX.YY` should go to `staging-XX.YY` instead.
See [this section][staging] for more details about such changes propagate between the branches.
### Changes acceptable for releases
[release-acceptable]: #changes-acceptable-for-releases
Only changes to supported releases may be accepted.
The oldest supported release (`YYMM`) can be found using
```
nix-instantiate --eval -A lib.trivial.oldestSupportedRelease
```
The release branches should generally only receive backwards-compatible changes, both for the Nix expressions and derivations.
Here are some examples of backwards-compatible changes that are okay to backport:
- ✔️ New packages, modules and functions
- ✔️ Security fixes
- ✔️ Package version updates
- ✔️ Patch versions with fixes
- ✔️ Minor versions with new functionality, but no breaking changes
In addition, major package version updates with breaking changes are also acceptable for:
- ✔️ Services that would fail without up-to-date client software, such as `spotify`, `steam`, and `discord`
- ✔️ Security critical applications, such as `firefox` and `chromium`
### Changes causing mass rebuilds
[mass-rebuild]: #changes-causing-mass-rebuilds
Which changes cause mass rebuilds is not formally defined.
In order to help the decision, CI automatically assigns [`rebuild` labels](https://github.com/NixOS/nixpkgs/labels?q=rebuild) to pull requests based on the number of packages they cause rebuilds for.
As a rule of thumb, if the number of rebuilds is **over 500**, it can be considered a mass rebuild.
To get a sense for what changes are considered mass rebuilds, see [previously merged pull requests to the staging branches](https://github.com/NixOS/nixpkgs/issues?q=base%3Astaging+-base%3Astaging-next+is%3Amerged).
## Commit conventions
[commit-conventions]: #commit-conventions
- Create a commit for each logical unit.
- Check for unnecessary whitespace with `git diff --check` before committing.
- If you have commits `pkg-name: oh, forgot to insert whitespace`: squash commits in this case. Use `git rebase -i`.
See [Squashing Commits](https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History#_squashing) for 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).
- When adding yourself as maintainer in the same pull request, make a separate
commit with the message `maintainers: add <handle>`.
Add the commit before those making changes to the package or module.
See [Nixpkgs Maintainers](./maintainers/README.md) for details.
- Make sure you read about any commit conventions specific to the area you're touching. See:
- [Commit conventions](./pkgs/README.md#commit-conventions) for changes to `pkgs`.
- [Commit conventions](./lib/README.md#commit-conventions) for changes to `lib`.
- [Commit conventions](./nixos/README.md#commit-conventions) for changes to `nixos`.
- [Commit conventions](./doc/README.md#commit-conventions) for changes to `doc`, the Nixpkgs manual.
### Writing good commit messages
[writing-good-commit-messages]: #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.
## Code conventions
[code-conventions]: #code-conventions
### Release notes
If you removed packages or made some major NixOS changes, write about it in the release notes for the next stable release in [`nixos/doc/manual/release-notes`](./nixos/doc/manual/release-notes).
### File naming and 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`.
### Syntax
- Set up [editorconfig](https://editorconfig.org/) for your editor, such that [the settings](./.editorconfig) are automatically applied.
- Use `lowerCamelCase` for variable names, not `UpperCamelCase`. Note, this rule does not apply to package attribute names, which instead follow the rules in [package naming](./pkgs/README.md#package-naming).
- New files must be formatted by entering the `nix-shell` from the repository root and running `nixfmt`.
- 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 // {
foo = if doCoverageAnalysis then "bla" else "";
})
```
instead of
```nix
args:
args.stdenv.mkDerivation (args // {
foo = 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.hostPlatform.isDarwin iconv;
}
```
instead of
```nix
{
buildInputs = if stdenv.hostPlatform.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)`.
# Practical contributing advice
To contribute effectively and efficiently, you need to be aware of how the contributing process generally works.
This section aims to document the process as we live it in Nixpkgs to set expectations right and give practical tips on how to work with it.
## I opened a PR, how do I get it merged?
[i-opened-a-pr-how-do-i-get-it-merged]:#i-opened-a-pr-how-do-i-get-it-merged
In order for your PR to be merged, someone with merge permissions on the repository ("committer") needs to review and merge it.
Because the group of people with merge permissions is mostly a collection of independent unpaid volunteers who do this in their own free time, this can take some time to happen.
It is entirely normal for your PR to sit around without any feedback for days, weeks or sometimes even months.
We strive to avoid the latter cases of course but the reality of it is that this does happen quite frequently.
Even when you get feedback, follow-up feedback may take similarly long.
Don't be intimidated by this and kindly ask for feedback again every so often.
If your change is good it will eventually be merged at some point.
There are some things you can do to help speed up the process of your PR being merged though.
In order to speed the process up, you need to know what needs to happen before a committer will actually hit the merge button.
This section intends to give a little overview and insight of what happens after you create your PR.
### The committer's perspective
PRs have varying quality and even the best people make mistakes.
It is the role of the committer team to assess whether any PR's changes are good changes or not.
In order for any PR to be merged, at least one committer needs to be convinced of its quality enough to merge it.
Committers typically assess three aspects of your PR:
1. Whether the change's intention is necessary and desirable
2. Whether the code quality of your changes is good
3. Whether the artefacts produced by the code are good
If you want your PR to get merged quickly and smoothly, it is in your best interest to help convince committers in these three aspects.
### How to help committers assess your PR
For the committer to judge your intention, it's best to explain why you've made your change.
This does not apply to trivial changes like version updates because the intention is obvious (though linking the changelog is appreciated).
For any more nuanced changed or even major version upgrades, it helps if you explain the background behind your change a bit.
E.g. if you're adding a package, explain what it is and why it should be in Nixpkgs.
This goes hand in hand with [Writing good commit messages](#writing-good-commit-messages).
For the code quality assessment, you cannot do anything yourself as only the committer can do this and they already have your code to look at.
In order to minimise the need for back and forth though, do take a look over your code changes yourself and try to put yourself into the shoes of someone who didn't just write that code.
Would you immediately know what the code does or why it is needed by glancing at it?
If not, reviewers will notice this and will ask you to clarify the code by refactoring it and/or adding a few explanations in code comments.
Doing this preemptively can save you and the committer a lot of time.
To better convey the "story" of your change, consider dividing your change into multiple atomic commits.
There is a balance to strike however: over-fragmentation causes friction.
The code artefacts are the hardest for committers to assess because PRs touch all sorts of components: applications, libraries, NixOS modules, editor plugins and many many other things.
Any individual committer can only really assess components that they themselves know how to use however and yet they must still be convinced somehow.
There isn't a good generic solution to this but there are some ways easing the committer's job here:
- Provide smoke tests that the committer can run without much research or setup.
Committers usually don't have the time or interest to learn how your component works and how they could test its functionality.
If you can provide a quick guide on how to use the component in a meaningful way or a ready-made command that demonstrates that the component works as expected, the committer can easily convince themselves that your change is good.
If it can be automated, you could even turn this smoke test into an automated NixOS test which reviewers could simply run via Nix.
- Invite other users of the component to try it out and report their findings.
If a committer sees the testimonials of other users trying your change and it works as expected for them, that too can convince the committer of your PR's quality.
- Describe what you have done to test your PR.
If you can convince the committer that you have done sufficient quality assurance on your changes and they trust your report, this too can convince them of your PR's quality, albeit not as strongly as the methods above.
- Become a maintainer of the component.
This isn't something you can do on your first few PRs touching a component but listed maintainers generally receive more trust when it comes to changes to their maintained components and committers may opt to merge changes without deeper review when they see they're done by their respective maintainer.
Even if you adhere to all of these recommendations, it is still quite possible for your PR to be forgotten or abandoned by any given committer.
Please remain mindful of the fact that they are doing this on their own volition and unpaid in their free time and therefore [owe you nothing](https://mikemcquaid.com/open-source-maintainers-owe-you-nothing/).
Causing a stink in such a situation is a surefire way to get any other potential committer to not want to look at your PR either.
Ask them nicely whether they still intend to review your PR and find yourself another committer to look at your PR if not.
### How can I get a committer to look at my PR?
- Improve skimmability: use a simple descriptive PR title (details go in commit titles) outlining _what_ is done and _why_.
- Improve discoverability: apply all relevant labels, tick all relevant PR body checkboxes.
- Wait. Reviewers frequently browse open PRs and may happen to run across yours and take a look.
- Get non-committers to review/approve. Many committers filter open PRs for low-hanging fruit that are already been reviewed.
- [@-mention](https://github.blog/news-insights/mention-somebody-they-re-notified/) someone and ask them nicely
- Post in one of the channels made for this purpose if there has been no activity for at least one week
- The current "PRs ready for review" or "PRs already reviewed" threads in the [NixOS Discourse](https://discourse.nixos.org/c/dev/14) (of course choose the one that applies to your situation)
- The [Nixpkgs Review Requests Matrix room](https://matrix.to/#/#review-requests:nixos.org).
### CI failed or got stuck on my PR, what do I do?
First ensure that the failure is actually related to your change.
Sometimes, the CI system simply has a hiccup or the check was broken by someone else before you made your changes.
Read through the error message; it's usually quite easy to tell whether it is caused by anything you did by checking whether it mentions the component you touched anywhere.
If it is indeed caused by your change, obviously try to fix it.
Don't be afraid of asking for advice if you're uncertain how to do that, others have likely fixed such issues dozens of times and can help you out.
Your PR is unlikely to be merged if it has a known issue and it is the purpose of CI to alert you aswell as reviewers to these issues.
ofBorg builds can often get stuck, particularly in PRs targeting `staging` and in builders for the Darwin platform. Reviewers will know how to handle them or when to ignore them.
Don't worry about it.
If there is a build failure however and it happened due to a package related to your change, you need to investigate it of course.
If ofBorg reveals the build to be broken on some platform and you don't have access to that platform, you should set your package's `meta.broken` accordingly.
When in any doubt, please ask via a comment in your PR or through one of the help channels.
## I received a review on my PR, how do I get it over the finish line?
In the review process, the committer will have left some sort of feedback on your PR.
They may have immediately approved of your PR or even merged it but the more likely case is that they want you to change a few things or that they require further input.
A reviewer may have taken a look at the code and it looked good to them ("Diff LGTM") but they still need to be convinced of the artefact's quality.
They might also be waiting on input from other users of the component or its listed maintainer on whether the intention of your PR makes sense for the component.
If you know of people who could help clarify any of this, please bring the PR to their attention.
The current state of the PR is frequently not clearly communicated, so please don't hesitate to ask about it if it's unclear to you.
It's also possible for the reviewer to not be convinced that your PR is necessary or that the method you've chose to achieve your intention is the right one.
Please explain your intentions and reasoning to the committer in such a case.
There may be constraints you had to work with which they're not aware of or qualities of your approach that they didn't immediately notice.
(If these weren't clear to the reviewer, that's a good sign you should explain them in your commit message or code comments!)
There are some further pitfalls and realities which this section intends to make you aware of.
### Aim to reduce cycles
Please be prepared for it to take a while before the reviewer gets back to you after you respond.
This is simply the reality of community projects at the scale of Nixpkgs.
As such, make sure to respond to _all_ feedback, either by applying suggested changes or argue in favor of something else or no change.
It wastes everyone time waiting for a couple of days just for the reviewer to remind you to address something they asked for.
### A reviewer requested a bunch of insubstantial changes on my PR
The people involved in Nixpkgs care about code quality because, once in Nixpkgs, it needs to be maintained for many years to come.
It is therefore likely that other people will ask you to do some things in another way or adhere to some standard.
Sometimes however, they also care a bit too much and may ask you to adhere to a personal preference of theirs.
It's not always easy to tell which is which and whether the requests are critically important to merging the PR.
Sometimes another reviewer may also come along with totally different opinions on some points too.
It is convention to mark review comments that are not critical to the PR as nitpicks but this is not always followed.
As the PR author, you should still take a look at these as they will often reveal best practices and unwritten rules that usually have good reasons behind them and you may want to incorporate them into your modus operandi.
Please keep in mind that reviewers almost always mean well here.
Their intent is not to denounce your code, they want your code to be as good as it can be.
Through their experience, they may also take notice of a seemingly insignificant issues that have caused significant burden before.
Sometimes however, they can also get a bit carried away and become too perfectionistic.
If you feel some of the requests are unreasonable, out of scope, or merely a matter of personal preference, try to nicely remind the reviewers that you may not intend this code to be 100% perfect or that you have different taste in some regards and press them on whether they think that these requests are *critical* to the PR's success.
While we do have a set of [official standards for the Nix community](https://github.com/NixOS/rfcs/), we don't have standards for everything and there are often multiple valid ways to achieve the same goal.
Unless there are standards forbidding the patterns used in your code or there are serious technical, maintainability or readability issues with your code, you can insist to keep the code the way you made it and disregard the requests.
Please communicate this clearly though; a simple "I prefer it this way and see no major issue with it" can save you a lot of arguing.
If you are unsure about some change requests, please ask reviewers *why* they requested them.
This will usually reveal how important they deem it to be and will help educate you about standards, best practices, unwritten rules aswell as preferences people have and why.
Some committers may have stronger opinions on some things and therefore (understandably) may not want to merge your PR if you don't follow their requests.
It is totally fine to get yourself a second or third opinion in such a case.
### Committers work on a push-basis
It's possible for you to get a review but nothing happens afterwards, even if you reply to review comments.
A committer not following up on your PR does not necessarily mean they're disinterested or unresponsive, they may have simply forgotten to follow up on it or had some other circumstances preventing them from doing so.
Committers typically handle many other PRs besides yours and it is not realistic for them to keep up with all of them to a degree where they could reasonably remember to follow up on all PRs that they had intended following up upon.
If someone left an approving review on your PR and didn't merge a few days later, the most likely case is that they simply forgot.
Please see it as your responsibility to actively remind reviewers of your open PRs.
The easiest way to do so is to cause them a Github notification.
Github notifies people involved in the PR whenever you add a comment to your PR, push your PR or re-request their review.
Doing any of that will get you people's attention again.
Everyone deserves proper attention, and yes that includes you!
However please be mindful that committers can sadly not always give everyone the attention they deserve.
It may very well be the case that you have to do this every time you need the committer to follow up upon your PR.
Again, this is a community project so please be mindful of people's circumstances here; be nice when requesting reviews again.
It may also be the case that the committer has lost interest or isn't familiar enough with the component you're touching to be comfortable merging your PR.
They will likely not immediately state that fact however, so please ask for clarification and don't hesitate to find yourself another committer to take a look at your PR.
### Nothing helped
If you followed these guidelines but still got no results or if you feel that you have been wronged in some way, please explicitly reach out to the greater community via its communication channels.
The [NixOS Discourse](https://discourse.nixos.org/) is a great place to do this as it has historically been the asynchronous medium with the greatest concentration of committers and other people who are significantly involved in Nixpkgs.
There is a dedicated discourse thread [PRs in distress](https://discourse.nixos.org/t/prs-in-distress/3604) where you can link your PR if everything else fails.
The [Nixpkgs / NixOS contributions Matrix channel](https://matrix.to/#/#dev:nixos.org) is the best synchronous channel with the same qualities.
Please reserve these for cases where you've made a serious effort in trying to get the attention of multiple active committers and provided realistic means for them to assess your PR's quality though.
As mentioned previously, it is unfortunately perfectly normal for a PR to sit around for weeks on end due to the realities of this being a community project.
Please don't blow up situations where progress is happening but is merely not going fast enough for your tastes.
Honking in a traffic jam will not make you go any faster.
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-2024 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.

121
README.md
View File

@@ -1,101 +1,44 @@
<p align="center">
<a href="https://nixos.org">
<picture>
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png">
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/NixOS/nixos-artwork/master/logo/nixos-white.png">
<img src="https://raw.githubusercontent.com/NixOS/nixos-homepage/main/public/logo/nixos-hires.png" width="500px" alt="NixOS logo">
</picture>
</a>
</p>
[<img src="http://nixos.org/logo/nixos-hires.png" width="500px" alt="logo" />](https://nixos.org/nixos)
<p align="center">
<a href="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
100,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/)
* [Official wiki](https://wiki.nixos.org/)
* [Community-maintained list of ways to get in touch](https://wiki.nixos.org/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 24.11 release](https://hydra.nixos.org/jobset/nixos/release-24.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 24.11 release](https://hydra.nixos.org/job/nixos/release-24.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.
For more information about contributing to the project, please visit
the [contributing page](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)

431
ci/OWNERS
View File

@@ -1,431 +0,0 @@
# This file is used to describe who owns what in this repository.
# Users/teams will get review requests for PRs that change their files.
#
# 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.
#
# This file uses the same syntax as the natively supported CODEOWNERS file,
# see https://help.github.com/articles/about-codeowners/ for documentation.
# However it comes with some notable differences:
# - There is no need for user/team listed here to have write access.
# - No reviews will be requested for PRs that target the wrong base branch.
#
# Processing of this file is implemented in workflows/codeowners-v2.yml
# CI
/.github/workflows @NixOS/Security @Mic92 @zowoq @infinisil
/.github/workflows/check-nix-format.yml @infinisil
/.github/workflows/nixpkgs-vet.yml @infinisil @philiptaron
/.github/workflows/codeowners-v2.yml @infinisil
/ci @infinisil @philiptaron @NixOS/Security
/ci/OWNERS @infinisil @philiptaron
# Development support
/.editorconfig @Mic92 @zowoq
/shell.nix @infinisil @NixOS/Security
# Libraries
/lib @infinisil
/lib/systems @alyssais @ericson2314 @NixOS/stdenv
/lib/generators.nix @infinisil @Profpatsch
/lib/cli.nix @infinisil @Profpatsch
/lib/debug.nix @infinisil @Profpatsch
/lib/asserts.nix @infinisil @Profpatsch
/lib/path/* @infinisil
/lib/fileset @infinisil
## Libraries / Module system
/lib/modules.nix @infinisil @roberth
/lib/types.nix @infinisil @roberth
/lib/options.nix @infinisil @roberth
/lib/tests/modules.sh @infinisil @roberth
/lib/tests/modules @infinisil @roberth
# Nixpkgs Internals
/default.nix @Ericson2314
/pkgs/top-level/default.nix @Ericson2314
/pkgs/top-level/impure.nix @Ericson2314
/pkgs/top-level/stage.nix @Ericson2314
/pkgs/top-level/splice.nix @Ericson2314
/pkgs/top-level/release-cross.nix @Ericson2314
/pkgs/top-level/by-name-overlay.nix @infinisil @philiptaron
/pkgs/stdenv @philiptaron @NixOS/stdenv
/pkgs/stdenv/generic @Ericson2314 @NixOS/stdenv
/pkgs/stdenv/generic/check-meta.nix @Ericson2314 @NixOS/stdenv
/pkgs/stdenv/cross @Ericson2314 @NixOS/stdenv
/pkgs/build-support @philiptaron
/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/by-name/au/auto-patchelf @layus
/pkgs/pkgs-lib @infinisil
## Format generators/serializers
/pkgs/pkgs-lib/formats/libconfig @h7x4
/pkgs/pkgs-lib/formats/hocon @h7x4
# Nixpkgs build-support
/pkgs/build-support/writers @lassulus @Profpatsch
# Nixpkgs make-disk-image
/doc/build-helpers/images/makediskimage.section.md @raitobezarius
/nixos/lib/make-disk-image.nix @raitobezarius
# Nix, the package manager
# @raitobezarius is not "code owner", but is listed here to be notified of changes
# pertaining to the Nix package manager.
# i.e. no authority over those files.
pkgs/tools/package-management/nix/ @NixOS/nix-team @raitobezarius
nixos/modules/installer/tools/nix-fallback-paths.nix @NixOS/nix-team @raitobezarius
# Nixpkgs documentation
/maintainers/scripts/db-to-md.sh @jtojnar @ryantm
/maintainers/scripts/doc @jtojnar @ryantm
# Contributor documentation
/CONTRIBUTING.md @infinisil
/.github/PULL_REQUEST_TEMPLATE.md @infinisil
/doc/contributing/ @infinisil
/doc/contributing/contributing-to-documentation.chapter.md @jtojnar @infinisil
/lib/README.md @infinisil
/doc/README.md @infinisil
/nixos/README.md @infinisil
/pkgs/README.md @infinisil
/pkgs/by-name/README.md @infinisil
/maintainers/README.md @infinisil
# User-facing development documentation
/doc/development.md @infinisil
/doc/development @infinisil
# NixOS Internals
/nixos/default.nix @infinisil
/nixos/lib/from-env.nix @infinisil
/nixos/lib/eval-config.nix @infinisil
/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
# NixOS QEMU virtualisation
/nixos/modules/virtualisation/qemu-vm.nix @raitobezarius
# ACME
/nixos/modules/security/acme @NixOS/acme
# 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
# Systemd-boot
/nixos/modules/system/boot/loader/systemd-boot @JulienMalka
# Images and installer media
/nixos/modules/profiles/installation-device.nix @ElvishJerricco
/nixos/modules/installer/cd-dvd/ @ElvishJerricco
/nixos/modules/installer/sd-card/
# Amazon
/nixos/modules/virtualisation/amazon-init.nix @arianvp
/nixos/modules/virtualisation/ec2-data.nix @arianvp
/nixos/modules/virtualisation/amazon-options.nix @arianvp
/nixos/modules/virtualisation/amazon-image.nix @arianvp
/nixos/maintainers/scripts/ec2/ @arianvp
/nixos/modules/services/misc/amazon-ssm-agent.nix @arianvp
/nixos/tests/amazon-ssm-agent.nix @arianvp
/nixos/modules/system/boot/grow-partition.nix @arianvp
# 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
/doc/languages-frameworks/python.section.md @mweinelt @natsukium
/maintainers/scripts/update-python-libraries @mweinelt @natsukium
/pkgs/development/interpreters/python @mweinelt @natsukium
/pkgs/top-level/python-packages.nix @natsukium
/pkgs/top-level/release-python.nix @natsukium
# Haskell
/doc/languages-frameworks/haskell.section.md @sternenseemann @maralorn
/maintainers/scripts/haskell @sternenseemann @maralorn
/pkgs/development/compilers/ghc @sternenseemann @maralorn
/pkgs/development/haskell-modules @sternenseemann @maralorn
/pkgs/test/haskell @sternenseemann @maralorn
/pkgs/top-level/release-haskell.nix @sternenseemann @maralorn
/pkgs/top-level/haskell-packages.nix @sternenseemann @maralorn
# Perl
/pkgs/development/interpreters/perl @stigtsp @zakame @marcusramberg
/pkgs/top-level/perl-packages.nix @stigtsp @zakame @marcusramberg
/pkgs/development/perl-modules @stigtsp @zakame @marcusramberg
# R
/pkgs/applications/science/math/R @jbedo
/pkgs/development/r-modules @jbedo
# Rust
/pkgs/development/compilers/rust @alyssais @Mic92 @zowoq @winterqt @figsoda
/pkgs/build-support/rust @zowoq @winterqt @figsoda
/doc/languages-frameworks/rust.section.md @zowoq @winterqt @figsoda
# Tcl
/pkgs/development/interpreters/tcl @fgaz
/pkgs/development/libraries/tk @fgaz
/pkgs/top-level/tcl-packages.nix @fgaz
/pkgs/development/tcl-modules @fgaz
/doc/languages-frameworks/tcl.section.md @fgaz
# C compilers
/pkgs/development/compilers/gcc
/pkgs/development/compilers/llvm @alyssais @RossComputerGuy @NixOS/llvm
/pkgs/development/compilers/emscripten @raitobezarius
/doc/languages-frameworks/emscripten.section.md @raitobezarius
# Audio
/nixos/modules/services/audio/botamusique.nix @mweinelt
/nixos/modules/services/audio/snapserver.nix @mweinelt
/nixos/tests/botamusique.nix @mweinelt
/nixos/tests/snapcast.nix @mweinelt
# Browsers
/pkgs/applications/networking/browsers/firefox @mweinelt
/pkgs/applications/networking/browsers/chromium @emilylange @networkException
/nixos/tests/chromium.nix @emilylange @networkException
# Certificate Authorities
pkgs/data/misc/cacert/ @ajs124 @lukegb @mweinelt
pkgs/development/libraries/nss/ @ajs124 @lukegb @mweinelt
pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
# Java
/doc/languages-frameworks/java.section.md @NixOS/java
/doc/languages-frameworks/gradle.section.md @NixOS/java
/doc/languages-frameworks/maven.section.md @NixOS/java
/pkgs/top-level/java-packages.nix @NixOS/java
# Jetbrains
/pkgs/applications/editors/jetbrains @edwtjo
# Licenses
/lib/licenses.nix @alyssais
# Qt
/pkgs/development/libraries/qt-5 @K900 @NickCao @SuperSandro2000 @ttuegel
/pkgs/development/libraries/qt-6 @K900 @NickCao @SuperSandro2000 @ttuegel
# KDE / Plasma 5
/pkgs/applications/kde @K900 @NickCao @SuperSandro2000 @ttuegel
/pkgs/desktops/plasma-5 @K900 @NickCao @SuperSandro2000 @ttuegel
/pkgs/development/libraries/kde-frameworks @K900 @NickCao @SuperSandro2000 @ttuegel
# KDE / Plasma 6
/pkgs/kde @K900 @NickCao @SuperSandro2000 @ttuegel
/maintainers/scripts/kde @K900 @NickCao @SuperSandro2000 @ttuegel
# PostgreSQL and related stuff
/pkgs/servers/sql/postgresql @NixOS/postgres
/nixos/modules/services/databases/postgresql.md @NixOS/postgres
/nixos/modules/services/databases/postgresql.nix @NixOS/postgres
/nixos/tests/postgresql @NixOS/postgres
# Hardened profile & related modules
/nixos/modules/profiles/hardened.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/ @fabianhjr @joachifm
# Home Automation
/nixos/modules/services/home-automation/home-assistant.nix @mweinelt
/nixos/modules/services/home-automation/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/by-name/ch/chrony @thoughtpolice
/pkgs/by-name/nt/ntp @thoughtpolice
/pkgs/by-name/op/openntpd @thoughtpolice
/nixos/modules/services/networking/ntp @thoughtpolice
# Network
/pkgs/by-name/ke/kea @mweinelt
/pkgs/by-name/ba/babeld @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
# Web servers
/doc/packages/nginx.section.md @raitobezarius
/pkgs/servers/http/nginx/ @raitobezarius
/nixos/modules/services/web-servers/nginx/ @raitobezarius
# Dhall
/pkgs/development/dhall-modules @Gabriella439 @Profpatsch @ehmry
/pkgs/development/interpreters/dhall @Gabriella439 @Profpatsch @ehmry
# Idris
/pkgs/development/idris-modules @Infinisil
/pkgs/development/compilers/idris2 @mattpolzin
# 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 @NixOS/emacs
/pkgs/applications/editors/emacs @NixOS/emacs
/pkgs/top-level/emacs-packages.nix @NixOS/emacs
/doc/packages/emacs.section.md @NixOS/emacs
/nixos/modules/services/editors/emacs.md @NixOS/emacs
# Kakoune
/pkgs/applications/editors/kakoune @philiptaron
# Neovim
/pkgs/applications/editors/neovim @NixOS/neovim
# VimPlugins
/pkgs/applications/editors/vim/plugins @NixOS/neovim
# VsCode Extensions
/pkgs/applications/editors/vscode/extensions
# PHP interpreter, packages, extensions, tests and documentation
/doc/languages-frameworks/php.section.md @aanderse @drupol @globin @ma27 @talyz
/nixos/tests/php @aanderse @drupol @globin @ma27 @talyz
/pkgs/build-support/php/build-pecl.nix @aanderse @drupol @globin @ma27 @talyz
/pkgs/build-support/php @drupol
/pkgs/development/interpreters/php @jtojnar @aanderse @drupol @globin @ma27 @talyz
/pkgs/development/php-packages @aanderse @drupol @globin @ma27 @talyz
/pkgs/top-level/php-packages.nix @jtojnar @aanderse @drupol @globin @ma27 @talyz
# Docker tools
/pkgs/build-support/docker @roberth
/nixos/tests/docker-tools* @roberth
/doc/build-helpers/images/dockertools.section.md @roberth
# Blockchains
/pkgs/applications/blockchains @mmahut @RaghavSood
# Go
/doc/languages-frameworks/go.section.md @kalbasit @katexochen @Mic92 @zowoq
/pkgs/build-support/go @kalbasit @katexochen @Mic92 @zowoq
/pkgs/development/compilers/go @kalbasit @katexochen @Mic92 @zowoq
# GNOME
/pkgs/desktops/gnome @jtojnar
/pkgs/desktops/gnome/extensions @jtojnar
/pkgs/build-support/make-hardcode-gsettings-patch @jtojnar
# Cinnamon
/pkgs/by-name/ci/cinnamon-* @mkg20001
/pkgs/by-name/cj/cjs @mkg20001
/pkgs/by-name/mu/muffin @mkg20001
/pkgs/by-name/ne/nemo @mkg20001
/pkgs/by-name/ne/nemo-* @mkg20001
# Xfce
/doc/hooks/xfce4-dev-tools.section.md @NixOS/xfce
# nim
/doc/languages-frameworks/nim.section.md @ehmry
/pkgs/build-support/build-nim-package.nix @ehmry
/pkgs/top-level/nim-overrides.nix @ehmry
# terraform providers
/pkgs/applications/networking/cluster/terraform-providers @zowoq
# Forgejo
nixos/modules/services/misc/forgejo.nix @adamcstephens @bendlas @emilylange
pkgs/by-name/fo/forgejo/ @adamcstephens @bendlas @emilylange
# Dotnet
/pkgs/build-support/dotnet @corngood
/pkgs/development/compilers/dotnet @corngood
/pkgs/test/dotnet @corngood
/doc/languages-frameworks/dotnet.section.md @corngood
# 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
/pkgs/development/tools/pnpm @Scrumplex @gepbird
# OCaml
/pkgs/build-support/ocaml @ulrikstrid
/pkgs/development/compilers/ocaml @ulrikstrid
/pkgs/development/ocaml-modules @ulrikstrid
# ZFS
pkgs/os-specific/linux/zfs/2_1.nix @raitobezarius
pkgs/os-specific/linux/zfs/generic.nix @raitobezarius
nixos/modules/tasks/filesystems/zfs.nix @raitobezarius
nixos/tests/zfs.nix @raitobezarius
# Zig
/pkgs/development/compilers/zig @figsoda
/doc/hooks/zig.section.md @figsoda
# Buildbot
nixos/modules/services/continuous-integration/buildbot @Mic92 @zowoq
nixos/tests/buildbot.nix @Mic92 @zowoq
pkgs/development/tools/continuous-integration/buildbot @Mic92 @zowoq
# Pretix
pkgs/by-name/pr/pretix/ @mweinelt
pkgs/by-name/pr/pretalx/ @mweinelt
nixos/modules/services/web-apps/pretix.nix @mweinelt
nixos/modules/services/web-apps/pretalx.nix @mweinelt
nixos/tests/web-apps/pretix.nix @mweinelt
nixos/tests/web-apps/pretalx.nix @mweinelt
# incus/lxc
nixos/maintainers/scripts/incus/ @adamcstephens
nixos/modules/virtualisation/incus.nix @adamcstephens
nixos/modules/virtualisation/lxc* @adamcstephens
nixos/tests/incus/ @adamcstephens
pkgs/by-name/in/incus/ @adamcstephens
pkgs/by-name/lx/lxc* @adamcstephens
# ExpidusOS, Flutter
/pkgs/development/compilers/flutter @RossComputerGuy
/pkgs/desktops/expidus @RossComputerGuy
# GNU Tar & Zip
/pkgs/tools/archivers/gnutar @RossComputerGuy
/pkgs/by-name/zi/zip @RossComputerGuy
# SELinux
/pkgs/by-name/ch/checkpolicy @RossComputerGuy
/pkgs/by-name/li/libselinux @RossComputerGuy
/pkgs/by-name/li/libsepol @RossComputerGuy
# installShellFiles
/pkgs/by-name/in/installShellFiles/* @Ericson2314
/pkgs/test/install-shell-files/* @Ericson2314
/doc/hooks/installShellFiles.section.md @Ericson2314
# Darwin
/pkgs/by-name/ap/apple-sdk @NixOS/darwin-core
/pkgs/os-specific/darwin/apple-source-releases @NixOS/darwin-core
/pkgs/stdenv/darwin @NixOS/darwin-core

View File

@@ -1,85 +0,0 @@
# CI support files
This directory contains files to support CI, such as [GitHub Actions](https://github.com/NixOS/nixpkgs/tree/master/.github/workflows) and [Ofborg](https://github.com/nixos/ofborg).
This is in contrast with [`maintainers/scripts`](../maintainers/scripts) which is for human use instead.
## Pinned Nixpkgs
CI may need certain packages from Nixpkgs.
In order to ensure that the needed packages are generally available without building,
[`pinned-nixpkgs.json`](./pinned-nixpkgs.json) contains a pinned Nixpkgs version tested by Hydra.
Run [`update-pinned-nixpkgs.sh`](./update-pinned-nixpkgs.sh) to update it.
## `ci/nixpkgs-vet.sh BASE_BRANCH [REPOSITORY]`
Runs the [`nixpkgs-vet` tool](https://github.com/NixOS/nixpkgs-vet) on the HEAD commit, closely matching what CI does. This can't do exactly the same as CI, because CI needs to rely on GitHub's server-side Git history to compute the mergeability of PRs before the check can be started.
In turn, when contributors are running this tool locally, we don't want to have to push commits to test them, and we can also rely on the local Git history to do the mergeability check.
Arguments:
- `BASE_BRANCH`: The base branch to use, e.g. master or release-24.05
- `REPOSITORY`: The repository from which to fetch the base branch. Defaults to <https://github.com/NixOS/nixpkgs.git>.
## `ci/nixpkgs-vet`
This directory contains scripts and files used and related to [`nixpkgs-vet`](https://github.com/NixOS/nixpkgs-vet/), which the CI uses to implement `pkgs/by-name` checks, along with many other Nixpkgs architecture rules.
See also the [CI GitHub Action](../.github/workflows/nixpkgs-vet.yml).
## `ci/nixpkgs-vet/update-pinned-tool.sh`
Updates the pinned [`nixpkgs-vet` tool](https://github.com/NixOS/nixpkgs-vet) in [`ci/nixpkgs-vet/pinned-version.txt`](./nixpkgs-vet/pinned-version.txt) to the latest [release](https://github.com/NixOS/nixpkgs-vet/releases).
Each release contains a pre-built `x86_64-linux` version of the tool which is used by CI.
This script currently needs to be called manually when the CI tooling needs to be updated.
Why not just build the tooling right from the PRs Nixpkgs version?
- Because it allows CI to check all PRs, even if they would break the CI tooling.
- Because it makes the CI check very fast, since no Nix builds need to be done, even for mass rebuilds.
- Because it improves security, since we don't have to build potentially untrusted code from PRs.
The tool only needs a very minimal Nix evaluation at runtime, which can work with [readonly-mode](https://nixos.org/manual/nix/stable/command-ref/opt-common.html#opt-readonly-mode) and [restrict-eval](https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-restrict-eval).
## `get-merge-commit.sh GITHUB_REPO PR_NUMBER`
Check whether a PR is mergeable and return the test merge commit as
[computed by GitHub](https://docs.github.com/en/rest/guides/using-the-rest-api-to-interact-with-your-git-database?apiVersion=2022-11-28#checking-mergeability-of-pull-requests).
Arguments:
- `GITHUB_REPO`: The repository of the PR, e.g. `NixOS/nixpkgs`
- `PR_NUMBER`: The PR number, e.g. `1234`
Exit codes:
- 0: The PR can be merged, the test merge commit hash is returned on stdout
- 1: The PR cannot be merged because it's not open anymore
- 2: The PR cannot be merged because it has a merge conflict
- 3: The merge commit isn't being computed, GitHub is likely having internal issues, unknown if the PR is mergeable
### Usage
This script is implemented as a reusable GitHub Actions workflow, and can be used as follows:
```yaml
on: pull_request_target
# We need a token to query the API, but it doesn't need any special permissions
permissions: {}
jobs:
get-merge-commit:
# use the relative path of the get-merge-commit workflow yaml here
uses: ./.github/workflows/get-merge-commit.yml
build:
name: Build
runs-on: ubuntu-latest
needs: get-merge-commit
steps:
- uses: actions/checkout@<VERSION>
# Add this to _all_ subsequent steps to skip them
if: needs.get-merge-commit.outputs.mergedSha
with:
ref: ${{ needs.get-merge-commit.outputs.mergedSha }}
- ...
```

View File

@@ -1,31 +0,0 @@
{
buildGoModule,
fetchFromGitHub,
fetchpatch,
}:
buildGoModule {
name = "codeowners-validator";
src = fetchFromGitHub {
owner = "mszostok";
repo = "codeowners-validator";
rev = "f3651e3810802a37bd965e6a9a7210728179d076";
hash = "sha256-5aSmmRTsOuPcVLWfDF6EBz+6+/Qpbj66udAmi1CLmWQ=";
};
patches = [
# https://github.com/mszostok/codeowners-validator/pull/222
(fetchpatch {
name = "user-write-access-check";
url = "https://github.com/mszostok/codeowners-validator/compare/f3651e3810802a37bd965e6a9a7210728179d076...840eeb88b4da92bda3e13c838f67f6540b9e8529.patch";
hash = "sha256-t3Dtt8SP9nbO3gBrM0nRE7+G6N/ZIaczDyVHYAG/6mU=";
})
# Undoes part of the above PR: We don't want to require write access
# to the repository, that's only needed for GitHub's native CODEOWNERS.
# Furthermore, it removes an unneccessary check from the code
# that breaks tokens generated for GitHub Apps.
./permissions.patch
# Allows setting a custom CODEOWNERS path using the OWNERS_FILE env var
./owners-file-name.patch
];
postPatch = "rm -r docs/investigation";
vendorHash = "sha256-R+pW3xcfpkTRqfS2ETVOwG8PZr0iH5ewroiF7u8hcYI=";
}

View File

@@ -1,15 +0,0 @@
diff --git a/pkg/codeowners/owners.go b/pkg/codeowners/owners.go
index 6910bd2..e0c95e9 100644
--- a/pkg/codeowners/owners.go
+++ b/pkg/codeowners/owners.go
@@ -39,6 +39,10 @@ func NewFromPath(repoPath string) ([]Entry, error) {
// openCodeownersFile finds a CODEOWNERS file and returns content.
// see: https://help.github.com/articles/about-code-owners/#codeowners-file-location
func openCodeownersFile(dir string) (io.Reader, error) {
+ if file, ok := os.LookupEnv("OWNERS_FILE"); ok {
+ return fs.Open(file)
+ }
+
var detectedFiles []string
for _, p := range []string{".", "docs", ".github"} {
pth := path.Join(dir, p)

View File

@@ -1,36 +0,0 @@
diff --git a/internal/check/valid_owner.go b/internal/check/valid_owner.go
index a264bcc..610eda8 100644
--- a/internal/check/valid_owner.go
+++ b/internal/check/valid_owner.go
@@ -16,7 +16,6 @@ import (
const scopeHeader = "X-OAuth-Scopes"
var reqScopes = map[github.Scope]struct{}{
- github.ScopeReadOrg: {},
}
type ValidOwnerConfig struct {
@@ -223,10 +222,7 @@ func (v *ValidOwner) validateTeam(ctx context.Context, name string) *validateErr
for _, t := range v.repoTeams {
// GitHub normalizes name before comparison
if strings.EqualFold(t.GetSlug(), team) {
- if t.Permissions["push"] {
- return nil
- }
- return newValidateError("Team %q cannot review PRs on %q as neither it nor any parent team has write permissions.", team, v.orgRepoName)
+ return nil
}
}
@@ -245,10 +241,7 @@ func (v *ValidOwner) validateGitHubUser(ctx context.Context, name string) *valid
for _, u := range v.repoUsers {
// GitHub normalizes name before comparison
if strings.EqualFold(u.GetLogin(), userName) {
- if u.Permissions["push"] {
- return nil
- }
- return newValidateError("User %q cannot review PRs on %q as they don't have write permissions.", userName, v.orgRepoName)
+ return nil
}
}

View File

@@ -1,30 +0,0 @@
let
pinnedNixpkgs = builtins.fromJSON (builtins.readFile ./pinned-nixpkgs.json);
in
{
system ? builtins.currentSystem,
nixpkgs ? null,
}:
let
nixpkgs' =
if nixpkgs == null then
fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/${pinnedNixpkgs.rev}.tar.gz";
sha256 = pinnedNixpkgs.sha256;
}
else
nixpkgs;
pkgs = import nixpkgs' {
inherit system;
config = { };
overlays = [ ];
};
in
{
inherit pkgs;
requestReviews = pkgs.callPackage ./request-reviews { };
codeownersValidator = pkgs.callPackage ./codeowners-validator { };
eval = pkgs.callPackage ./eval { };
}

View File

@@ -1,19 +0,0 @@
# Nixpkgs CI evaluation
The code in this directory is used by the [eval.yml](../../.github/workflows/eval.yml) GitHub Actions workflow to evaluate the majority of Nixpkgs for all PRs, effectively making sure that when the development branches are processed by Hydra, no evaluation failures are encountered.
Furthermore it also allows local evaluation using
```
nix-build ci -A eval.full \
--max-jobs 4
--cores 2
--arg chunkSize 10000
```
- `--max-jobs`: The maximum number of derivations to run at the same time. Only each [supported system](../supportedSystems.nix) gets a separate derivation, so it doesn't make sense to set this higher than that number.
- `--cores`: The number of cores to use for each job. Recommended to set this to the amount of cores on your system divided by `--max-jobs`.
- `chunkSize`: The number of attributes that are evaluated simultaneously on a single core. Lowering this decreases memory usage at the cost of increased evaluation time. If this is too high, there won't be enough chunks to process them in parallel, and will also increase evaluation time.
A good default is to set `chunkSize` to 10000, which leads to about 3.6GB max memory usage per core, so suitable for fully utilising machines with 4 cores and 16GB memory, 8 cores and 32GB memory or 16 cores and 64GB memory.
Note that 16GB memory is the recommended minimum, while with less than 8GB memory evaluation time suffers greatly.

View File

@@ -1,164 +0,0 @@
# Turns
#
# {
# "hello.aarch64-linux": "a",
# "hello.x86_64-linux": "b",
# "hello.aarch64-darwin": "c",
# "hello.x86_64-darwin": "d"
# }
#
# into
#
# {
# "hello": {
# "linux": {
# "aarch64": "a",
# "x86_64": "b"
# },
# "darwin": {
# "aarch64": "c",
# "x86_64": "d"
# }
# }
# }
#
# while filtering out any attribute paths that don't match this pattern
def expand_system:
to_entries
| map(
.key |= split(".")
| select(.key | length > 1)
| .double = (.key[-1] | split("-"))
| select(.double | length == 2)
)
| group_by(.key[0:-1])
| map(
{
key: .[0].key[0:-1] | join("."),
value:
group_by(.double[1])
| map(
{
key: .[0].double[1],
value: map(.key = .double[0]) | from_entries
}
)
| from_entries
})
| from_entries
;
# Transposes
#
# {
# "a": [ "x", "y" ],
# "b": [ "x" ],
# }
#
# into
#
# {
# "x": [ "a", "b" ],
# "y": [ "a" ]
# }
def transpose:
[
to_entries[]
| {
key: .key,
value: .value[]
}
]
| group_by(.value)
| map({
key: .[0].value,
value: map(.key)
})
| from_entries
;
# Computes the key difference for two objects:
# {
# added: [ <keys only in the second object> ],
# removed: [ <keys only in the first object> ],
# changed: [ <keys with different values between the two objects> ],
# }
#
def diff($before; $after):
{
added: $after | delpaths($before | keys | map([.])) | keys,
removed: $before | delpaths($after | keys | map([.])) | keys,
changed:
$before
| to_entries
| map(
$after."\(.key)" as $after2
| select(
# Filter out attributes that don't exist anymore
($after2 != null)
and
# Filter out attributes that are the same as the new value
(.value != $after2)
)
| .key
)
}
;
($before[0] | expand_system) as $before
| ($after[0] | expand_system) as $after
| .attrdiff = diff($before; $after)
| .rebuildsByKernel = (
[
(
.attrdiff.changed[]
| {
key: .,
value: diff($before."\(.)"; $after."\(.)").changed
}
)
,
(
.attrdiff.added[]
| {
key: .,
value: ($after."\(.)" | keys)
}
)
]
| from_entries
| transpose
)
| .rebuildCountByKernel = (
.rebuildsByKernel
| with_entries(.value |= length)
| pick(.linux, .darwin)
| {
linux: (.linux // 0),
darwin: (.darwin // 0),
}
)
| .labels = (
.rebuildCountByKernel
| to_entries
| map(
"10.rebuild-\(.key): " +
if .value == 0 then
"0"
elif .value <= 10 then
"1-10"
elif .value <= 100 then
"11-100"
elif .value <= 500 then
"101-500"
elif .value <= 1000 then
"501-1000"
elif .value <= 2500 then
"1001-2500"
elif .value <= 5000 then
"2501-5000"
else
"5001+"
end
)
)

View File

@@ -1,303 +0,0 @@
{
lib,
runCommand,
writeShellScript,
linkFarm,
time,
procps,
nixVersions,
jq,
sta,
}:
let
nixpkgs =
with lib.fileset;
toSource {
root = ../..;
fileset = unions (
map (lib.path.append ../..) [
"default.nix"
"doc"
"lib"
"maintainers"
"nixos"
"pkgs"
".version"
"ci/supportedSystems.nix"
]
);
};
nix = nixVersions.nix_2_24;
supportedSystems = import ../supportedSystems.nix;
attrpathsSuperset =
runCommand "attrpaths-superset.json"
{
src = nixpkgs;
nativeBuildInputs = [
nix
time
];
env.supportedSystems = builtins.toJSON supportedSystems;
passAsFile = [ "supportedSystems" ];
}
''
export NIX_STATE_DIR=$(mktemp -d)
mkdir $out
export GC_INITIAL_HEAP_SIZE=4g
command time -v \
nix-instantiate --eval --strict --json --show-trace \
"$src/pkgs/top-level/release-attrpaths-superset.nix" \
-A paths \
-I "$src" \
--option restrict-eval true \
--option allow-import-from-derivation false \
--arg enableWarnings false > $out/paths.json
mv "$supportedSystemsPath" $out/systems.json
'';
singleSystem =
{
# The system to evaluate.
# Note that this is intentionally not called `system`,
# because `--argstr system` would only be passed to the ci/default.nix file!
evalSystem,
# The path to the `paths.json` file from `attrpathsSuperset`
attrpathFile,
# The number of attributes per chunk, see ./README.md for more info.
chunkSize,
checkMeta ? true,
includeBroken ? true,
# Whether to just evaluate a single chunk for quick testing
quickTest ? false,
}:
let
singleChunk = writeShellScript "single-chunk" ''
set -euo pipefail
chunkSize=$1
myChunk=$2
system=$3
outputDir=$4
export NIX_SHOW_STATS=1
export NIX_SHOW_STATS_PATH="$outputDir/stats/$myChunk"
echo "Chunk $myChunk on $system start"
set +e
command time -f "Chunk $myChunk on $system done [%MKB max resident, %Es elapsed] %C" \
nix-env -f "${nixpkgs}/pkgs/top-level/release-attrpaths-parallel.nix" \
--option restrict-eval true \
--option allow-import-from-derivation false \
--query --available \
--no-name --attr-path --out-path \
--show-trace \
--arg chunkSize "$chunkSize" \
--arg myChunk "$myChunk" \
--arg attrpathFile "${attrpathFile}" \
--arg systems "[ \"$system\" ]" \
--arg checkMeta ${lib.boolToString checkMeta} \
--arg includeBroken ${lib.boolToString includeBroken} \
-I ${nixpkgs} \
-I ${attrpathFile} \
> "$outputDir/result/$myChunk"
exitCode=$?
set -e
if (( exitCode != 0 )); then
echo "Evaluation failed with exit code $exitCode"
# This immediately halts all xargs processes
kill $PPID
fi
'';
in
runCommand "nixpkgs-eval-${evalSystem}"
{
nativeBuildInputs = [
nix
time
procps
jq
];
env = {
inherit evalSystem chunkSize;
};
}
''
export NIX_STATE_DIR=$(mktemp -d)
nix-store --init
echo "System: $evalSystem"
cores=$NIX_BUILD_CORES
echo "Cores: $cores"
attrCount=$(jq length "${attrpathFile}")
echo "Attribute count: $attrCount"
echo "Chunk size: $chunkSize"
# Same as `attrCount / chunkSize` but rounded up
chunkCount=$(( (attrCount - 1) / chunkSize + 1 ))
echo "Chunk count: $chunkCount"
mkdir $out
# Record and print stats on free memory and swap in the background
(
while true; do
availMemory=$(free -b | grep Mem | awk '{print $7}')
freeSwap=$(free -b | grep Swap | awk '{print $4}')
echo "Available memory: $(( availMemory / 1024 / 1024 )) MiB, free swap: $(( freeSwap / 1024 / 1024 )) MiB"
if [[ ! -f "$out/min-avail-memory" ]] || (( availMemory < $(<$out/min-avail-memory) )); then
echo "$availMemory" > $out/min-avail-memory
fi
if [[ ! -f $out/min-free-swap ]] || (( availMemory < $(<$out/min-free-swap) )); then
echo "$freeSwap" > $out/min-free-swap
fi
sleep 4
done
) &
seq_end=$(( chunkCount - 1 ))
${lib.optionalString quickTest ''
seq_end=0
''}
chunkOutputDir=$(mktemp -d)
mkdir "$chunkOutputDir"/{result,stats}
seq -w 0 "$seq_end" |
command time -f "%e" -o "$out/total-time" \
xargs -I{} -P"$cores" \
${singleChunk} "$chunkSize" {} "$evalSystem" "$chunkOutputDir"
if (( chunkSize * chunkCount != attrCount )); then
# A final incomplete chunk would mess up the stats, don't include it
rm "$chunkOutputDir"/stats/"$seq_end"
fi
# Make sure the glob doesn't break when there's no files
shopt -s nullglob
cat "$chunkOutputDir"/result/* > $out/paths
cat "$chunkOutputDir"/stats/* > $out/stats.jsonstream
'';
combine =
{
resultsDir,
}:
runCommand "combined-result"
{
nativeBuildInputs = [
jq
sta
];
}
''
mkdir -p $out
# Transform output paths to JSON
cat ${resultsDir}/*/paths |
jq --sort-keys --raw-input --slurp '
split("\n") |
map(select(. != "") | split(" ") | map(select(. != ""))) |
map(
{
key: .[0],
value: .[1] | split(";") | map(split("=") |
if length == 1 then
{ key: "out", value: .[0] }
else
{ key: .[0], value: .[1] }
end) | from_entries}
) | from_entries
' > $out/outpaths.json
# Computes min, mean, error, etc. for a list of values and outputs a JSON from that
statistics() {
local stat=$1
sta --transpose |
jq --raw-input --argjson stat "$stat" -n '
[
inputs |
split("\t") |
{ key: .[0], value: (.[1] | fromjson) }
] |
from_entries |
{
key: ($stat | join(".")),
value: .
}'
}
# Gets all available number stats (without .sizes because those are constant and not interesting)
readarray -t stats < <(jq -cs '.[0] | del(.sizes) | paths(type == "number")' ${resultsDir}/*/stats.jsonstream)
# Combines the statistics from all evaluations
{
echo "{ \"key\": \"minAvailMemory\", \"value\": $(cat ${resultsDir}/*/min-avail-memory | sta --brief --min) }"
echo "{ \"key\": \"minFreeSwap\", \"value\": $(cat ${resultsDir}/*/min-free-swap | sta --brief --min) }"
cat ${resultsDir}/*/total-time | statistics '["totalTime"]'
for stat in "''${stats[@]}"; do
cat ${resultsDir}/*/stats.jsonstream |
jq --argjson stat "$stat" 'getpath($stat)' |
statistics "$stat"
done
} |
jq -s from_entries > $out/stats.json
'';
compare =
{ beforeResultDir, afterResultDir }:
runCommand "compare"
{
nativeBuildInputs = [
jq
];
}
''
mkdir $out
jq -n -f ${./compare.jq} \
--slurpfile before ${beforeResultDir}/outpaths.json \
--slurpfile after ${afterResultDir}/outpaths.json \
> $out/changed-paths.json
jq -r -f ${./generate-step-summary.jq} < $out/changed-paths.json > $out/step-summary.md
# TODO: Compare eval stats
'';
full =
{
# Whether to evaluate just a single system, by default all are evaluated
evalSystem ? if quickTest then "x86_64-linux" else null,
# The number of attributes per chunk, see ./README.md for more info.
chunkSize,
quickTest ? false,
}:
let
systems = if evalSystem == null then supportedSystems else [ evalSystem ];
results = linkFarm "results" (
map (evalSystem: {
name = evalSystem;
path = singleSystem {
inherit quickTest evalSystem chunkSize;
attrpathFile = attrpathsSuperset + "/paths.json";
};
}) systems
);
in
combine {
resultsDir = results;
};
in
{
inherit
attrpathsSuperset
singleSystem
combine
compare
# The above three are used by separate VMs in a GitHub workflow,
# while the below is intended for testing on a single local machine
full
;
}

View File

@@ -1,15 +0,0 @@
def truncate(xs; n):
if xs | length > n then xs[:n] + ["..."]
else xs
end;
def itemize_packages(xs):
# we truncate the list to stay below the GitHub limit of 1MB per step summary.
truncate(xs; 3000) | map("- [\(.)](https://search.nixos.org/packages?channel=unstable&show=\(.)&from=0&size=50&sort=relevance&type=packages&query=\(.))") | join("\n");
def section(title; xs):
"<details> <summary>" + title + " (" + (xs | length | tostring) + ")</summary>\n\n" + itemize_packages(xs) + "</details>";
section("Added packages"; .attrdiff.added) + "\n\n" +
section("Removed packages"; .attrdiff.removed) + "\n\n" +
section("Changed packages"; .attrdiff.changed)

View File

@@ -1,62 +0,0 @@
#!/usr/bin/env bash
# See ./README.md for docs
set -euo pipefail
log() {
echo "$@" >&2
}
if (( $# < 2 )); then
log "Usage: $0 GITHUB_REPO PR_NUMBER"
exit 99
fi
repo=$1
prNumber=$2
# Retry the API query this many times
retryCount=5
# Start with 5 seconds, but double every retry
retryInterval=5
while true; do
log "Checking whether the pull request can be merged"
prInfo=$(gh api \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"/repos/$repo/pulls/$prNumber")
# Non-open PRs won't have their mergeability computed no matter what
state=$(jq -r .state <<< "$prInfo")
if [[ "$state" != open ]]; then
log "PR is not open anymore"
exit 1
fi
mergeable=$(jq -r .mergeable <<< "$prInfo")
if [[ "$mergeable" == "null" ]]; then
if (( retryCount == 0 )); then
log "Not retrying anymore. It's likely that GitHub is having internal issues: check https://www.githubstatus.com/"
exit 3
else
(( retryCount -= 1 )) || true
# null indicates that GitHub is still computing whether it's mergeable
# Wait a couple seconds before trying again
log "GitHub is still computing whether this PR can be merged, waiting $retryInterval seconds before trying again ($retryCount retries left)"
sleep "$retryInterval"
(( retryInterval *= 2 )) || true
fi
else
break
fi
done
if [[ "$mergeable" == "true" ]]; then
log "The PR can be merged"
jq -r .merge_commit_sha <<< "$prInfo"
else
log "The PR has a merge conflict"
exit 2
fi

View File

@@ -1,71 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p jq
set -o pipefail -o errexit -o nounset
trace() { echo >&2 "$@"; }
tmp=$(mktemp -d)
cleanup() {
# Don't exit early if anything fails to cleanup
set +o errexit
trace -n "Cleaning up.. "
[[ -e "$tmp/base" ]] && git worktree remove --force "$tmp/base"
[[ -e "$tmp/merged" ]] && git worktree remove --force "$tmp/merged"
rm -rf "$tmp"
trace "Done"
}
trap cleanup exit
repo=https://github.com/NixOS/nixpkgs.git
if (( $# != 0 )); then
baseBranch=$1
shift
else
trace "Usage: $0 BASE_BRANCH [REPOSITORY]"
trace "BASE_BRANCH: The base branch to use, e.g. master or release-23.11"
trace "REPOSITORY: The repository to fetch the base branch from, defaults to $repo"
exit 1
fi
if (( $# != 0 )); then
repo=$1
shift
fi
if [[ -n "$(git status --porcelain)" ]]; then
trace -e "\e[33mWarning: Dirty tree, uncommitted changes won't be taken into account\e[0m"
fi
headSha=$(git rev-parse HEAD)
trace -e "Using HEAD commit \e[34m$headSha\e[0m"
trace -n "Creating Git worktree for the HEAD commit in $tmp/merged.. "
git worktree add --detach -q "$tmp/merged" HEAD
trace "Done"
trace -n "Fetching base branch $baseBranch to compare against.. "
git fetch -q "$repo" refs/heads/"$baseBranch"
baseSha=$(git rev-parse FETCH_HEAD)
trace -e "\e[34m$baseSha\e[0m"
trace -n "Creating Git worktree for the base branch in $tmp/base.. "
git worktree add -q "$tmp/base" "$baseSha"
trace "Done"
trace -n "Merging base branch into the HEAD commit in $tmp/merged.. "
git -C "$tmp/merged" merge -q --no-edit "$baseSha"
trace -e "\e[34m$(git -C "$tmp/merged" rev-parse HEAD)\e[0m"
trace -n "Reading pinned nixpkgs-vet version from pinned-version.txt.. "
toolVersion=$(<"$tmp/merged/ci/nixpkgs-vet/pinned-version.txt")
trace -e "\e[34m$toolVersion\e[0m"
trace -n "Building tool.. "
nix-build https://github.com/NixOS/nixpkgs-vet/tarball/"$toolVersion" -o "$tmp/tool" -A build
trace "Running nixpkgs-vet.."
"$tmp/tool/bin/nixpkgs-vet" --base "$tmp/base" "$tmp/merged"

View File

@@ -1 +0,0 @@
0.1.4

View File

@@ -1,22 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p jq curl
set -o pipefail -o errexit -o nounset
trace() { echo >&2 "$@"; }
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
repository=NixOS/nixpkgs-vet
pin_file=$SCRIPT_DIR/pinned-version.txt
trace -n "Fetching latest release of $repository.. "
latestRelease=$(curl -sSfL \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/"$repository"/releases/latest)
latestVersion=$(jq .tag_name -r <<< "$latestRelease")
trace "$latestVersion"
trace "Updating $pin_file"
echo "$latestVersion" > "$pin_file"

View File

@@ -1,4 +0,0 @@
{
"rev": "929116e316068c7318c54eb4d827f7d9756d5e9c",
"sha256": "1am61kcakn9j47435k4cgsarvypb8klv4avszxza0jn362hp3ck8"
}

View File

@@ -1,43 +0,0 @@
{
lib,
stdenvNoCC,
makeWrapper,
coreutils,
codeowners,
jq,
curl,
github-cli,
gitMinimal,
}:
stdenvNoCC.mkDerivation {
name = "request-reviews";
src = lib.fileset.toSource {
root = ./.;
fileset = lib.fileset.unions [
./get-reviewers.sh
./request-reviews.sh
./verify-base-branch.sh
./dev-branches.txt
];
};
nativeBuildInputs = [ makeWrapper ];
dontBuild = true;
installPhase = ''
mkdir -p $out/bin
mv dev-branches.txt $out/bin
for bin in *.sh; do
mv "$bin" "$out/bin"
wrapProgram "$out/bin/$bin" \
--set PATH ${
lib.makeBinPath [
coreutils
codeowners
jq
curl
github-cli
gitMinimal
]
}
done
'';
}

View File

@@ -1,8 +0,0 @@
# Trusted development branches:
# These generally require PRs to update and are built by Hydra.
# Keep this synced with the branches in .github/workflows/eval.yml
master
staging
release-*
staging-*
haskell-updates

View File

@@ -1,126 +0,0 @@
#!/usr/bin/env bash
# Get the code owners of the files changed by a PR,
# suitable to be consumed by the API endpoint to request reviews:
# https://docs.github.com/en/rest/pulls/review-requests?apiVersion=2022-11-28#request-reviewers-for-a-pull-request
set -euo pipefail
log() {
echo "$@" >&2
}
if (( "$#" < 7 )); then
log "Usage: $0 GIT_REPO OWNERS_FILE BASE_REPO BASE_REF HEAD_REF PR_NUMBER PR_AUTHOR"
exit 1
fi
gitRepo=$1
ownersFile=$2
baseRepo=$3
baseRef=$4
headRef=$5
prNumber=$6
prAuthor=$7
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' exit
git -C "$gitRepo" diff --name-only --merge-base "$baseRef" "$headRef" > "$tmp/touched-files"
readarray -t touchedFiles < "$tmp/touched-files"
log "This PR touches ${#touchedFiles[@]} files"
# Get the owners file from the base, because we don't want to allow PRs to
# remove code owners to avoid pinging them
git -C "$gitRepo" show "$baseRef":"$ownersFile" > "$tmp"/codeowners
# Associative array with the user as the key for easy de-duplication
# Make sure to always lowercase keys to avoid duplicates with different casings
declare -A users=()
for file in "${touchedFiles[@]}"; do
result=$(codeowners --file "$tmp"/codeowners "$file")
read -r file owners <<< "$result"
if [[ "$owners" == "(unowned)" ]]; then
log "File $file is unowned"
continue
fi
log "File $file is owned by $owners"
# Split up multiple owners, separated by arbitrary amounts of spaces
IFS=" " read -r -a entries <<< "$owners"
for entry in "${entries[@]}"; do
# GitHub technically also supports Emails as code owners,
# but we can't easily support that, so let's not
if [[ ! "$entry" =~ @(.*) ]]; then
warn -e "\e[33mCodeowner \"$entry\" for file $file is not valid: Must start with \"@\"\e[0m" >&2
# Don't fail, because the PR for which this script runs can't fix it,
# it has to be fixed in the base branch
continue
fi
# The first regex match is everything after the @
entry=${BASH_REMATCH[1]}
if [[ "$entry" =~ (.*)/(.*) ]]; then
# Teams look like $org/$team
org=${BASH_REMATCH[1]}
team=${BASH_REMATCH[2]}
# Instead of requesting a review from the team itself,
# we request reviews from the individual users.
# This is because once somebody from a team reviewed the PR,
# the API doesn't expose that the team was already requested for a review,
# so we wouldn't be able to avoid rerequesting reviews
# without saving some some extra state somewhere
# We could also consider implementing a more advanced heuristic
# in the future that e.g. only pings one team member,
# but escalates to somebody else if that member doesn't respond in time.
gh api \
--cache=1h \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"/orgs/$org/teams/$team/members" \
--jq '.[].login' > "$tmp/team-members"
readarray -t members < "$tmp/team-members"
log "Team $entry has these members: ${members[*]}"
for user in "${members[@]}"; do
users[${user,,}]=
done
else
# Everything else is a user
users[${entry,,}]=
fi
done
done
# Cannot request a review from the author
if [[ -v users[${prAuthor,,}] ]]; then
log "One or more files are owned by the PR author, ignoring"
unset 'users[${prAuthor,,}]'
fi
gh api \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"/repos/$baseRepo/pulls/$prNumber/reviews" \
--jq '.[].user.login' > "$tmp/already-reviewed-by"
# And we don't want to rerequest reviews from people who already reviewed
while read -r user; do
if [[ -v users[${user,,}] ]]; then
log "User $user is a code owner but has already left a review, ignoring"
unset 'users[${user,,}]'
fi
done < "$tmp/already-reviewed-by"
# Turn it into a JSON for the GitHub API call to request PR reviewers
jq -n \
--arg users "${!users[*]}" \
'{
reviewers: $users | split(" "),
}'

View File

@@ -1,95 +0,0 @@
#!/usr/bin/env bash
# Requests reviews for a PR after verifying that the base branch is correct
set -euo pipefail
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' exit
SCRIPT_DIR=$(dirname "$0")
log() {
echo "$@" >&2
}
effect() {
if [[ -n "${DRY_MODE:-}" ]]; then
log "Skipping in dry mode:" "${@@Q}"
else
"$@"
fi
}
if (( $# < 3 )); then
log "Usage: $0 GITHUB_REPO PR_NUMBER OWNERS_FILE"
exit 1
fi
baseRepo=$1
prNumber=$2
ownersFile=$3
log "Fetching PR info"
prInfo=$(gh api \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"/repos/$baseRepo/pulls/$prNumber")
baseBranch=$(jq -r .base.ref <<< "$prInfo")
log "Base branch: $baseBranch"
prRepo=$(jq -r .head.repo.full_name <<< "$prInfo")
log "PR repo: $prRepo"
prBranch=$(jq -r .head.ref <<< "$prInfo")
log "PR branch: $prBranch"
prAuthor=$(jq -r .user.login <<< "$prInfo")
log "PR author: $prAuthor"
extraArgs=()
if pwdRepo=$(git rev-parse --show-toplevel 2>/dev/null); then
# Speedup for local runs
extraArgs+=(--reference-if-able "$pwdRepo")
fi
log "Fetching Nixpkgs commit history"
# We only need the commit history, not the contents, so we can do a tree-less clone using tree:0
# https://github.blog/open-source/git/get-up-to-speed-with-partial-clone-and-shallow-clone/#user-content-quick-summary
git clone --bare --filter=tree:0 --no-tags --origin upstream "${extraArgs[@]}" https://github.com/"$baseRepo".git "$tmp"/nixpkgs.git
log "Fetching the PR commit history"
# Fetch the PR
git -C "$tmp/nixpkgs.git" remote add fork https://github.com/"$prRepo".git
# This remote config is the same as --filter=tree:0 when cloning
git -C "$tmp/nixpkgs.git" config remote.fork.partialclonefilter tree:0
git -C "$tmp/nixpkgs.git" config remote.fork.promisor true
git -C "$tmp/nixpkgs.git" fetch --no-tags fork "$prBranch"
headRef=$(git -C "$tmp/nixpkgs.git" rev-parse refs/remotes/fork/"$prBranch")
log "Checking correctness of the base branch"
if ! "$SCRIPT_DIR"/verify-base-branch.sh "$tmp/nixpkgs.git" "$headRef" "$baseRepo" "$baseBranch" "$prRepo" "$prBranch" | tee "$tmp/invalid-base-error" >&2; then
log "Posting error as comment"
if ! response=$(effect gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"/repos/$baseRepo/issues/$prNumber/comments" \
-F "body=@$tmp/invalid-base-error"); then
log "Failed to post the comment: $response"
fi
exit 1
fi
log "Getting code owners to request reviews from"
"$SCRIPT_DIR"/get-reviewers.sh "$tmp/nixpkgs.git" "$ownersFile" "$baseRepo" "$baseBranch" "$headRef" "$prNumber" "$prAuthor" > "$tmp/reviewers.json"
log "Requesting reviews from: $(<"$tmp/reviewers.json")"
if ! response=$(effect gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"/repos/$baseRepo/pulls/$prNumber/requested_reviewers" \
--input "$tmp/reviewers.json"); then
log "Failed to request reviews: $response"
exit 1
fi
log "Successfully requested reviews"

View File

@@ -1,104 +0,0 @@
#!/usr/bin/env bash
# Check that a PR doesn't include commits from other development branches.
# Fails with next steps if it does
set -euo pipefail
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' exit
SCRIPT_DIR=$(dirname "$0")
log() {
echo "$@" >&2
}
# Small helper to check whether an element is in a list
# Usage: `elementIn foo "${list[@]}"`
elementIn() {
local e match=$1
shift
for e; do
if [[ "$e" == "$match" ]]; then
return 0
fi
done
return 1
}
if (( $# < 6 )); then
log "Usage: $0 LOCAL_REPO HEAD_REF BASE_REPO BASE_BRANCH PR_REPO PR_BRANCH"
exit 1
fi
localRepo=$1
headRef=$2
baseRepo=$3
baseBranch=$4
prRepo=$5
prBranch=$6
# All development branches
devBranchPatterns=()
while read -r pattern; do
if [[ "$pattern" != '#'* ]]; then
devBranchPatterns+=("$pattern")
fi
done < "$SCRIPT_DIR/dev-branches.txt"
git -C "$localRepo" branch --list --format "%(refname:short)" "${devBranchPatterns[@]}" > "$tmp/dev-branches"
readarray -t devBranches < "$tmp/dev-branches"
if [[ "$baseRepo" == "$prRepo" ]] && elementIn "$prBranch" "${devBranches[@]}"; then
log "This PR merges $prBranch into $baseBranch, no commit check necessary"
exit 0
fi
# The current merge base of the PR
prMergeBase=$(git -C "$localRepo" merge-base "$baseBranch" "$headRef")
log "The PR's merge base with the base branch $baseBranch is $prMergeBase"
# This is purely for debugging
git -C "$localRepo" rev-list --reverse "$baseBranch".."$headRef" > "$tmp/pr-commits"
log "The PR includes these $(wc -l < "$tmp/pr-commits") commits:"
cat <"$tmp/pr-commits" >&2
for testBranch in "${devBranches[@]}"; do
if [[ -z "$(git -C "$localRepo" rev-list -1 --since="1 month ago" "$testBranch")" ]]; then
log "Not checking $testBranch, was inactive for the last month"
continue
fi
log "Checking if commits from $testBranch are included in the PR"
# We need to check for any commits that are in the PR which are also in the test branch.
# We could check each commit from the PR individually, but that's unnecessarily slow.
#
# This does _almost_ what we want: `git rev-list --count headRef testBranch ^baseBranch`,
# except that it includes commits that are reachable from _either_ headRef or testBranch,
# instead of restricting it to ones reachable by both
# Easily fixable though, because we can use `git merge-base testBranch headRef`
# to get the least common ancestor (aka merge base) commit reachable by both.
# If the branch being tested is indeed the right base branch,
# this is then also the commit from that branch that the PR is based on top of.
testMergeBase=$(git -C "$localRepo" merge-base "$testBranch" "$headRef")
# And then use the `git rev-list --count`, but replacing the non-working
# `headRef testBranch` with the merge base of the two.
extraCommits=$(git -C "$localRepo" rev-list --count "$testMergeBase" ^"$baseBranch")
if (( extraCommits != 0 )); then
log -e "\e[33m"
echo "The PR's base branch is set to $baseBranch, but $extraCommits commits from the $testBranch branch are included. Make sure you know the [right base branch for your changes](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#branch-conventions), then:"
echo "- If the changes should go to the $testBranch branch, [change the base branch](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-base-branch-of-a-pull-request) to $testBranch"
echo "- If the changes should go to the $baseBranch branch, rebase your PR onto the merge base with the $baseBranch branch:"
echo " \`\`\`bash"
echo " # git rebase --onto \$(git merge-base upstream/$baseBranch HEAD) \$(git merge-base upstream/$testBranch HEAD)"
echo " git rebase --onto $prMergeBase $testMergeBase"
echo " git push --force-with-lease"
echo " \`\`\`"
log -e "\e[m"
exit 1
fi
done
log "Base branch is correct, no commits from development branches are included"

View File

@@ -1,6 +0,0 @@
[
"aarch64-linux"
"aarch64-darwin"
"x86_64-linux"
"x86_64-darwin"
]

View File

@@ -1,17 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p jq
set -euo pipefail
# https://stackoverflow.com/a/246128
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
repo=https://github.com/nixos/nixpkgs
branch=nixpkgs-unstable
file=$SCRIPT_DIR/pinned-nixpkgs.json
defaultRev=$(git ls-remote "$repo" refs/heads/"$branch" | cut -f1)
rev=${1:-$defaultRev}
sha256=$(nix-prefetch-url --unpack "$repo/archive/$rev.tar.gz" --name source)
jq -n --arg rev "$rev" --arg sha256 "$sha256" '$ARGS.named' | tee /dev/stderr > $file

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

View File

@@ -1,387 +0,0 @@
# Contributing to the Nixpkgs reference manual
This directory houses the sources files for the Nixpkgs reference manual.
> [!IMPORTANT]
> We are actively restructuring our documentation to follow the [Diátaxis framework](https://diataxis.fr/)
>
> Going forward, this directory should **only** contain [reference documentation](https://nix.dev/contributing/documentation/diataxis#reference).
> For tutorials, guides and explanations, contribute to <https://nix.dev/> instead.
>
> We are actively working to generate **all** reference documentation from the [doc-comments](https://github.com/NixOS/rfcs/blob/master/rfcs/0145-doc-strings.md) present in code.
> This also provides the benefit of using `:doc` in the `nix repl` to view reference documentation locally on the fly.
For documentation only relevant for contributors, use Markdown files next to the source and regular code comments.
> [!TIP]
> Feedback for improving support for parsing and rendering doc-comments is highly appreciated.
> [Open an issue](https://github.com/NixOS/nixpkgs/issues/new?labels=6.topic%3A+documentation&title=Doc%3A+) to request bugfixes or new features.
Rendered documentation:
- [Unstable (from master)](https://nixos.org/manual/nixpkgs/unstable/)
- [Stable (from latest release)](https://nixos.org/manual/nixpkgs/stable/)
The rendering tool is [nixos-render-docs](../pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs), sometimes abbreviated `nrd`.
## Contributing to this documentation
You can quickly check your edits with `nix-build`:
```ShellSession
$ cd /path/to/nixpkgs
$ nix-build doc
```
If the build succeeds, the manual will be in `./result/share/doc/nixpkgs/manual.html`.
### devmode
The shell in the manual source directory makes available a command, `devmode`.
It is a daemon, that:
1. watches the manual's source for changes and when they occur — rebuilds
2. HTTP serves the manual, injecting a script that triggers reload on changes
3. opens the manual in the default browser
## Syntax
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:
#### Tables
Tables, using the [GitHub-flavored Markdown syntax](https://github.github.com/gfm/#tables-extension-).
#### 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.
#### Inline Anchors
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 `wrapGApps*` hook will prepend it to `XDG_DATA_DIRS`.
```
#### 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)`.
This syntax is taken from [MyST](https://myst-parser.readthedocs.io/en/latest/using/syntax.html#targets-and-cross-referencing).
#### HTML
Inlining HTML is not allowed. Parts of the documentation gets rendered to various non-HTML formats, such as man pages in the case of NixOS manual.
#### Roles
If you want to link to a man page, you can use `` {manpage}`nix.conf(5)` ``. The references will turn into links when a mapping exists in [`doc/manpage-urls.json`](./manpage-urls.json).
A few markups for other kinds of literals are also available:
- `` {command}`rm -rfi` ``
- `` {env}`XDG_DATA_DIRS` ``
- `` {file}`/etc/passwd` ``
- `` {option}`networking.useDHCP` ``
- `` {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.
#### 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
:::
```
The following are supported:
- `caution`
- `important`
- `note`
- `tip`
- `warning`
- `example`
Example admonitions require a title to work.
If you don't provide one, the manual won't be built.
```markdown
::: {.example #ex-showing-an-example}
# Title for this example
Text for the example.
:::
```
#### [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
```
## Commit conventions
- Make sure you read about the [commit conventions](../CONTRIBUTING.md#commit-conventions) common to Nixpkgs as a whole.
- If creating a commit purely for documentation changes, format the commit message in the following way:
```
doc: (documentation summary)
(Motivation for change, relevant links, additional information.)
```
Examples:
* doc: update the kernel config documentation to use `nix-shell`
* doc: add information about `nix-update-script`
Closes #216321.
- If the commit contains more than just documentation changes, follow the commit message format relevant for the rest of the changes.
## Documentation conventions
In an effort to keep the Nixpkgs manual in a consistent style, please follow the conventions below, unless they prevent you from properly documenting something.
In that case, please open an issue about the particular documentation convention and tag it with a "needs: documentation" label.
When needed, each convention explain why it exists, so you can make a decision whether to follow it or not based on your particular case.
Note that these conventions are about the **structure** of the manual (and its source files), not about the content that goes in it.
You, as the writer of documentation, are still in charge of its content.
### One sentence per line
Put each sentence in its own line.
This makes reviews and suggestions much easier, since GitHub's review system is based on lines.
It also helps identifying long sentences at a glance.
### Callouts and examples
Use the [admonition syntax](#admonitions) for callouts and examples.
### Provide self-contained examples
Provide at least one example per function, and make examples self-contained.
This is easier to understand for beginners.
It also helps with testing that it actually works especially once we introduce automation.
Example code should be such that it can be passed to `pkgs.callPackage`.
Instead of something like:
```nix
pkgs.dockerTools.buildLayeredImage {
name = "hello";
contents = [ pkgs.hello ];
}
```
Write something like:
```nix
{ dockerTools, hello }:
dockerTools.buildLayeredImage {
name = "hello";
contents = [ hello ];
}
```
### REPLs
When showing inputs/outputs of any [REPL](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop), such as a shell or the Nix REPL, use a format as you'd see in the REPL, while trying to visually separate inputs from outputs.
This means that for a shell, you should use a format like the following:
```shell
$ nix-build -A hello '<nixpkgs>' \
--option require-sigs false \
--option trusted-substituters file:///tmp/hello-cache \
--option substituters file:///tmp/hello-cache
/nix/store/zhl06z4lrfrkw5rp0hnjjfrgsclzvxpm-hello-2.12.1
```
Note how the input is preceded by `$` on the first line and indented on subsequent lines, and how the output is provided as you'd see on the shell.
For the Nix REPL, you should use a format like the following:
```shell
nix-repl> builtins.attrNames { a = 1; b = 2; }
[ "a" "b" ]
```
Note how the input is preceded by `nix-repl>` and the output is provided as you'd see on the Nix REPL.
### Headings for inputs, outputs and examples
When documenting functions or anything that has inputs/outputs and example usage, use nested headings to clearly separate inputs, outputs, and examples.
Keep examples as the last nested heading, and link to the examples wherever applicable in the documentation.
The purpose of this convention is to provide a familiar structure for navigating the manual, so any reader can expect to find content related to inputs in an "inputs" heading, examples in an "examples" heading, and so on.
An example:
```
## buildImage
Some explanation about the function here.
Describe a particular scenario, and point to [](#ex-dockerTools-buildImage), which is an example demonstrating it.
### Inputs
Documentation for the inputs of `buildImage`.
Perhaps even point to [](#ex-dockerTools-buildImage) again when talking about something specifically linked to it.
### Passthru outputs
Documentation for any passthru outputs of `buildImage`.
### Examples
Note that this is the last nested heading in the `buildImage` section.
:::{.example #ex-dockerTools-buildImage}
# Using `buildImage`
Example of how to use `buildImage` goes here.
:::
```
### Function arguments
Use [definition lists](#definition-lists) to document function arguments, and the attributes of such arguments as well as their [types](https://nixos.org/manual/nix/stable/language/values).
For example:
```markdown
# pkgs.coolFunction {#pkgs.coolFunction}
`pkgs.coolFunction` *`name`* *`config`*
Description of what `callPackage` does.
## Inputs {#pkgs-coolFunction-inputs}
If something's special about `coolFunction`'s general argument handling, you can say so here.
Otherwise, just describe the single argument or start the arguments' definition list without introduction.
*`name`* (String)
: The name of the resulting image.
*`config`* (Attribute set)
: Introduce the parameter. Maybe you have a test to make sure `{ }` is a sensible default; then you can say: these attributes are optional; `{ }` is a valid argument.
`outputHash` (String; _optional_)
: A brief explanation including when and when not to pass this attribute.
: _Default:_ the output path's hash.
```
Checklist:
- Start with a synopsis, to show the order of positional arguments.
- Metavariables are in emphasized code spans: ``` *`arg1`* ```. Metavariables are placeholders where users may write arbitrary expressions. This includes positional arguments.
- Attribute names are regular code spans: ``` `attr1` ```. These identifiers can _not_ be picked freely by users, so they are _not_ metavariables.
- _optional_ attributes have a _`Default:`_ if it's easily described as a value.
- _optional_ attributes have a _`Default behavior:`_ if it's not easily described using a value.
- Nix types aren't in code spans, because they are not code
- Nix types are capitalized, to distinguish them from the camelCase Module System types, which _are_ code and behave like functions.
#### Examples
To define a referenceable figure use the following fencing:
```markdown
:::{.example #an-attribute-set-example}
# An attribute set example
You can add text before
```nix
{ a = 1; b = 2;}
```
and after code fencing
:::
```
Defining examples through the `example` fencing class adds them to a "List of Examples" section after the Table of Contents.
Though this is not shown in the rendered documentation on nixos.org.
#### Figures
To define a referenceable figure use the following fencing:
```markdown
::: {.figure #nixos-logo}
# NixOS Logo
![NixOS logo](./nixos_logo.png)
:::
```
Defining figures through the `figure` fencing class adds them to a `List of Figures` after the `Table of Contents`.
Though this is not shown in the rendered documentation on nixos.org.
#### Footnotes
To add a foonote explanation, use the following syntax:
```markdown
Sometimes it's better to add context [^context] in a footnote.
[^context]: This explanation will be rendered at the end of the chapter.
```
#### Inline comments
Inline comments are supported with following syntax:
```markdown
<!-- This is an inline comment -->
```
The comments will not be rendered in the rendered HTML.
#### Link reference definitions
Links can reference a label, for example, to make the link target reusable:
```markdown
::: {.note}
Reference links can also be used to [shorten URLs][url-id] and keep the markdown readable.
:::
[url-id]: https://github.com/NixOS/nixpkgs/blob/19d4f7dc485f74109bd66ef74231285ff797a823/doc/README.md
```
This syntax is taken from [CommonMark](https://spec.commonmark.org/0.30/#link-reference-definitions).
#### Typographic replacements
Typographic replacements are enabled. Check the [list of possible replacement patterns check](https://github.com/executablebooks/markdown-it-py/blob/3613e8016ecafe21709471ee0032a90a4157c2d1/markdown_it/rules_core/replacements.py#L1-L15).
## Getting help
If you need documentation-specific help or reviews, ping [@NixOS/documentation-team](https://github.com/orgs/nixos/teams/documentation-team) on your pull request.

View File

@@ -1,3 +0,0 @@
document.addEventListener('DOMContentLoaded', function(event) {
anchors.add('h1[id]:not(div.note h1, div.warning h1, div.tip h1, div.caution h1, div.important h1), h2[id]:not(div.note h2, div.warning h2, div.tip h2, div.caution h2, div.important h2), h3[id]:not(div.note h3, div.warning h3, div.tip h3, div.caution h3, div.important h3), h4[id]:not(div.note h4, div.warning h4, div.tip h4, div.caution h4, div.important h4), h5[id]:not(div.note h5, div.warning h5, div.tip h5, div.caution h5, div.important h5), h6[id]:not(div.note h6, div.warning h6, div.tip h6, div.caution h6, div.important h6)');
});

9
doc/anchor.min.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -1,29 +0,0 @@
# Build helpers {#part-builders}
A build helper is a function that produces derivations.
:::{.warning}
This is not to be confused with the [`builder` argument of the Nix `derivation` primitive](https://nixos.org/manual/nix/unstable/language/derivations.html), which refers to the executable that produces the build result, or [remote builder](https://nixos.org/manual/nix/stable/advanced-topics/distributed-builds.html), which refers to a remote machine that could run such an executable.
:::
Such a function is usually designed to abstract over a typical workflow for a given programming language or framework.
This allows declaring a build recipe by setting a limited number of options relevant to the particular use case instead of using the `derivation` function directly.
[`stdenv.mkDerivation`](#part-stdenv) is the most widely used build helper, and serves as a basis for many others.
In addition, it offers various options to customize parts of the builds.
There is no uniform interface for build helpers.
[Trivial build helpers](#chap-trivial-builders) and [fetchers](#chap-pkgs-fetchers) have various input types for convenience.
[Language- or framework-specific build helpers](#chap-language-support) usually follow the style of `stdenv.mkDerivation`, which accepts an attribute set or a fixed-point function taking an attribute set.
```{=include=} chapters
build-helpers/fetchers.chapter.md
build-helpers/trivial-build-helpers.chapter.md
build-helpers/testers.chapter.md
build-helpers/dev-shell-tools.chapter.md
build-helpers/special.md
build-helpers/images.md
hooks/index.md
languages-frameworks/index.md
packages/index.md
```

View File

@@ -1,75 +0,0 @@
# Development Shell helpers {#chap-devShellTools}
The `nix-shell` command has popularized the concept of transient shell environments for development or testing purposes.
<!--
We should try to document the product, not its development process in the Nixpkgs reference manual,
but *something* needs to be said to provide context for this library.
This is the most future proof sentence I could come up with while Nix itself does yet make use of this.
Relevant is the current status of the devShell attribute "project": https://github.com/NixOS/nix/issues/7501
-->
However, `nix-shell` is not the only way to create such environments, and even `nix-shell` itself can indirectly benefit from this library.
This library provides a set of functions that help create such environments.
## `devShellTools.valueToString` {#sec-devShellTools-valueToString}
Converts Nix values to strings in the way the [`derivation` built-in function](https://nix.dev/manual/nix/2.23/language/derivations) does.
:::{.example}
## `valueToString` usage examples
```nix
devShellTools.valueToString (builtins.toFile "foo" "bar")
=> "/nix/store/...-foo"
```
```nix
devShellTools.valueToString false
=> ""
```
:::
## `devShellTools.unstructuredDerivationInputEnv` {#sec-devShellTools-unstructuredDerivationInputEnv}
Convert a set of derivation attributes (as would be passed to [`derivation`]) to a set of environment variables that can be used in a shell script.
This function does not support `__structuredAttrs`, but does support `passAsFile`.
:::{.example}
## `unstructuredDerivationInputEnv` usage example
```nix
devShellTools.unstructuredDerivationInputEnv {
drvAttrs = {
name = "foo";
buildInputs = [ hello figlet ];
builder = bash;
args = [ "-c" "${./builder.sh}" ];
};
}
=> {
name = "foo";
buildInputs = "/nix/store/...-hello /nix/store/...-figlet";
builder = "/nix/store/...-bash";
}
```
Note that `args` is not included, because Nix does not added it to the builder process environment.
:::
## `devShellTools.derivationOutputEnv` {#sec-devShellTools-derivationOutputEnv}
Takes the relevant parts of a derivation and returns a set of environment variables, that would be present in the derivation.
:::{.example}
## `derivationOutputEnv` usage example
```nix
let
pkg = hello;
in
devShellTools.derivationOutputEnv { outputList = pkg.outputs; outputMap = pkg; }
```
:::

View File

@@ -1,931 +0,0 @@
# Fetchers {#chap-pkgs-fetchers}
Building software with Nix often requires downloading source code and other files from the internet.
To this end, we use functions that we call _fetchers_, which obtain remote sources via various protocols and services.
Nix provides built-in fetchers such as [`builtins.fetchTarball`](https://nixos.org/manual/nix/stable/language/builtins.html#builtins-fetchTarball).
Nixpkgs provides its own fetchers, which work differently:
- A built-in fetcher will download and cache files at evaluation time and produce a [store path](https://nixos.org/manual/nix/stable/glossary#gloss-store-path).
A Nixpkgs fetcher will create a ([fixed-output](https://nixos.org/manual/nix/stable/glossary#gloss-fixed-output-derivation)) [derivation](https://nixos.org/manual/nix/stable/glossary#gloss-derivation), and files are downloaded at build time.
- Built-in fetchers will invalidate their cache after [`tarball-ttl`](https://nixos.org/manual/nix/stable/command-ref/conf-file#conf-tarball-ttl) expires, and will require network activity to check if the cache entry is up to date.
Nixpkgs fetchers only re-download if the specified hash changes or the store object is not available.
- Built-in fetchers do not use [substituters](https://nixos.org/manual/nix/stable/command-ref/conf-file#conf-substituters).
Derivations produced by Nixpkgs fetchers will use any configured binary cache transparently.
This significantly reduces the time needed to evaluate Nixpkgs, and allows [Hydra](https://nixos.org/hydra) to retain and re-distribute sources used by Nixpkgs in the [public binary cache](https://cache.nixos.org).
For these reasons, Nix's built-in fetchers are not allowed in Nixpkgs.
The following table summarises the differences:
| Fetchers | Download | Output | Cache | Re-download when |
|-|-|-|-|-|
| `builtins.fetch*` | evaluation time | store path | `/nix/store`, `~/.cache/nix` | `tarball-ttl` expires, cache miss in `~/.cache/nix`, output store object not in local store |
| `pkgs.fetch*` | build time | derivation | `/nix/store`, substituters | output store object not available |
:::{.tip}
`pkgs.fetchFrom*` helpers retrieve _snapshots_ of version-controlled sources, as opposed to the entire version history, which is more efficient.
`pkgs.fetchgit` by default also has the same behaviour, but can be changed through specific attributes given to it.
:::
## Caveats {#chap-pkgs-fetchers-caveats}
Because Nixpkgs fetchers are fixed-output derivations, an [output hash](https://nixos.org/manual/nix/stable/language/advanced-attributes#adv-attr-outputHash) has to be specified, usually indirectly through a `hash` attribute.
This hash refers to the derivation output, which can be different from the remote source itself!
This has the following implications that you should be aware of:
- Use Nix (or Nix-aware) tooling to produce the output hash.
- When changing any fetcher parameters, always update the output hash.
Use one of the methods from [](#sec-pkgs-fetchers-updating-source-hashes).
Otherwise, existing store objects that match the output hash will be re-used rather than fetching new content.
:::{.note}
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.
:::
## Updating source hashes {#sec-pkgs-fetchers-updating-source-hashes}
There are several ways to obtain the hash corresponding to a remote source.
Unless you understand how the fetcher you're using calculates the hash from the downloaded contents, you should use [the fake hash method](#sec-pkgs-fetchers-updating-source-hashes-fakehash-method).
1. []{#sec-pkgs-fetchers-updating-source-hashes-fakehash-method} The fake hash method: In your package recipe, set the hash to one of
- `""`
- `lib.fakeHash`
- `lib.fakeSha256`
- `lib.fakeSha512`
Attempt to build, extract the calculated hashes from error messages, and put them into the recipe.
:::{.warning}
You must use one of these four fake hashes and not some arbitrarily-chosen hash.
See [](#sec-pkgs-fetchers-secure-hashes) for details.
:::
:::{.example #ex-fetchers-update-fod-hash}
# Update source hash with the fake hash method
Consider the following recipe that produces a plain file:
```nix
{ fetchurl }:
fetchurl {
url = "https://raw.githubusercontent.com/NixOS/nixpkgs/23.05/.version";
hash = "sha256-ZHl1emidXVojm83LCVrwULpwIzKE/mYwfztVkvpruOM=";
}
```
A common mistake is to update a fetcher parameter, such as `url`, without updating the hash:
```nix
{ fetchurl }:
fetchurl {
url = "https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/.version";
hash = "sha256-ZHl1emidXVojm83LCVrwULpwIzKE/mYwfztVkvpruOM=";
}
```
**This will produce the same output as before!**
Set the hash to an empty string:
```nix
{ fetchurl }:
fetchurl {
url = "https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/.version";
hash = "";
}
```
When building the package, use the error message to determine the correct hash:
```shell
$ nix-build
(some output removed for clarity)
error: hash mismatch in fixed-output derivation '/nix/store/7yynn53jpc93l76z9zdjj4xdxgynawcw-version.drv':
specified: sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
got: sha256-BZqI7r0MNP29yGH5+yW2tjU9OOpOCEvwWKrWCv5CQ0I=
error: build of '/nix/store/bqdjcw5ij5ymfbm41dq230chk9hdhqff-version.drv' failed
```
:::
2. Prefetch the source with [`nix-prefetch-<type> <URL>`](https://search.nixos.org/packages?buckets={%22package_attr_set%22%3A[%22No%20package%20set%22]%2C%22package_license_set%22%3A[]%2C%22package_maintainers_set%22%3A[]%2C%22package_platforms%22%3A[]}&query=nix-prefetch), where `<type>` is one of
- `url`
- `git`
- `hg`
- `cvs`
- `bzr`
- `svn`
The hash is printed to stdout.
3. Prefetch by package source (with `nix-prefetch-url '<nixpkgs>' -A <package>.src`, where `<package>` is package attribute name).
The hash is printed to stdout.
This works well when you've upgraded the existing package version and want to find out new hash, but is useless if the package can't be accessed by attribute or the package has multiple sources (`.srcs`, architecture-dependent sources, etc).
4. Upstream hash: use it when upstream provides `sha256` or `sha512`.
Don't use it when upstream provides `md5`, compute `sha256` instead.
A little nuance is that `nix-prefetch-*` tools produce hashes with the `nix32` encoding (a Nix-specific base32 adaptation), but upstream usually provides hexadecimal (`base16`) encoding.
Fetchers understand both formats.
Nixpkgs does not standardise on any one format.
You can convert between hash formats with [`nix-hash`](https://nixos.org/manual/nix/stable/command-ref/nix-hash).
5. Extract the hash from a local source archive with `sha256sum`.
Use `nix-prefetch-url file:///path/to/archive` if you want the custom Nix `base32` hash.
## Obtaining hashes securely {#sec-pkgs-fetchers-secure-hashes}
It's always a good idea to avoid Man-in-the-Middle (MITM) attacks when downloading source contents.
Otherwise, you could unknowingly download malware instead of the intended source, and instead of the actual source hash, you'll end up using the hash of malware.
Here are security considerations for this scenario:
- `http://` URLs are not secure to prefetch hashes.
- Upstream hashes should be obtained via a secure protocol.
- `https://` URLs give you more protections when using `nix-prefetch-*` or for upstream hashes.
- `https://` URLs are secure when using the [fake hash method](#sec-pkgs-fetchers-updating-source-hashes-fakehash-method) *only if* you use one of the listed fake hashes.
If you use any other hash, the download will be exposed to MITM attacks even if you use HTTPS URLs.
In more concrete terms, if you use any other hash, the [`--insecure` flag](https://curl.se/docs/manpage.html#-k) will be passed to the underlying call to `curl` when downloading content.
## Proxy usage {#sec-pkgs-fetchers-proxy}
Nixpkgs fetchers can make use of a http(s) proxy. Each fetcher will automatically inherit proxy-related environment variables (`http_proxy`, `https_proxy`, etc) via [impureEnvVars](https://nixos.org/manual/nix/stable/language/advanced-attributes#adv-attr-impureEnvVars).
The environment variable `NIX_SSL_CERT_FILE` is also inherited in fetchers, and can be used to provide a custom certificate bundle to fetchers. This is usually required for a https proxy to work without certificate validation errors.
[]{#fetchurl}
## `fetchurl` {#sec-pkgs-fetchers-fetchurl}
`fetchurl` returns a [fixed-output derivation](https://nixos.org/manual/nix/stable/glossary.html#gloss-fixed-output-derivation) which downloads content from a given URL and stores the unaltered contents within the Nix store.
It uses {manpage}`curl(1)` internally, and allows its behaviour to be modified by specifying a few attributes in the argument to `fetchurl` (see the documentation for attributes `curlOpts`, `curlOptsList`, and `netrcPhase`).
The resulting [store path](https://nixos.org/manual/nix/stable/store/store-path) is determined by the hash given to `fetchurl`, and also the `name` (or `pname` and `version`) values.
If neither `name` nor `pname` and `version` are specified when calling `fetchurl`, it will default to using the [basename](https://nixos.org/manual/nix/stable/language/builtins.html#builtins-baseNameOf) of `url` or the first element of `urls`.
If `pname` and `version` are specified, `fetchurl` will use those values and will ignore `name`, even if it is also specified.
### Inputs {#sec-pkgs-fetchers-fetchurl-inputs}
`fetchurl` requires an attribute set with the following attributes:
`url` (String; _optional_)
: The URL to download from.
:::{.note}
Either `url` or `urls` must be specified, but not both.
:::
All URLs of the format [specified here](https://curl.se/docs/url-syntax.html#rfc-3986-plus) are supported.
_Default value:_ `""`.
`urls` (List of String; _optional_)
: A list of URLs, specifying download locations for the same content.
Each URL will be tried in order until one of them succeeds with some content or all of them fail.
See [](#ex-fetchers-fetchurl-nixpkgs-version-multiple-urls) to understand how this attribute affects the behaviour of `fetchurl`.
:::{.note}
Either `url` or `urls` must be specified, but not both.
:::
_Default value:_ `[]`.
`hash` (String; _optional_)
: Hash of the derivation output of `fetchurl`, following the format for integrity metadata as defined by [SRI](https://www.w3.org/TR/SRI/).
For more information, see [](#chap-pkgs-fetchers-caveats).
:::{.note}
It is recommended that you use the `hash` attribute instead of the other hash-specific attributes that exist for backwards compatibility.
If `hash` is not specified, you must specify `outputHash` and `outputHashAlgo`, or one of `sha512`, `sha256`, or `sha1`.
:::
_Default value:_ `""`.
`outputHash` (String; _optional_)
: Hash of the derivation output of `fetchurl` in the format expected by Nix.
See [the documentation on the Nix manual](https://nixos.org/manual/nix/stable/language/advanced-attributes.html#adv-attr-outputHash) for more information about its format.
:::{.note}
It is recommended that you use the `hash` attribute instead.
If `outputHash` is specified, you must also specify `outputHashAlgo`.
:::
_Default value:_ `""`.
`outputHashAlgo` (String; _optional_)
: Algorithm used to generate the value specified in `outputHash`.
See [the documentation on the Nix manual](https://nixos.org/manual/nix/stable/language/advanced-attributes.html#adv-attr-outputHashAlgo) for more information about the values it supports.
:::{.note}
It is recommended that you use the `hash` attribute instead.
The value specified in `outputHashAlgo` will be ignored if `outputHash` isn't also specified.
:::
_Default value:_ `""`.
`sha1` (String; _optional_)
: SHA-1 hash of the derivation output of `fetchurl` in the format expected by Nix.
See [the documentation on the Nix manual](https://nixos.org/manual/nix/stable/language/advanced-attributes.html#adv-attr-outputHash) for more information about its format.
:::{.note}
It is recommended that you use the `hash` attribute instead.
:::
_Default value:_ `""`.
`sha256` (String; _optional_)
: SHA-256 hash of the derivation output of `fetchurl` in the format expected by Nix.
See [the documentation on the Nix manual](https://nixos.org/manual/nix/stable/language/advanced-attributes.html#adv-attr-outputHash) for more information about its format.
:::{.note}
It is recommended that you use the `hash` attribute instead.
:::
_Default value:_ `""`.
`sha512` (String; _optional_)
: SHA-512 hash of the derivation output of `fetchurl` in the format expected by Nix.
See [the documentation on the Nix manual](https://nixos.org/manual/nix/stable/language/advanced-attributes.html#adv-attr-outputHash) for more information about its format.
:::{.note}
It is recommended that you use the `hash` attribute instead.
:::
_Default value:_ `""`.
`name` (String; _optional_)
: The symbolic name of the downloaded file when saved in the Nix store.
See [the `fetchurl` overview](#sec-pkgs-fetchers-fetchurl) for details on how the name of the file is decided.
_Default value:_ `""`.
`pname` (String; _optional_)
: A base name, which will be combined with `version` to form the symbolic name of the downloaded file when saved in the Nix store.
See [the `fetchurl` overview](#sec-pkgs-fetchers-fetchurl) for details on how the name of the file is decided.
:::{.note}
If `pname` is specified, you must also specify `version`, otherwise `fetchurl` will ignore the value of `pname`.
:::
_Default value:_ `""`.
`version` (String; _optional_)
: A version, which will be combined with `pname` to form the symbolic name of the downloaded file when saved in the Nix store.
See [the `fetchurl` overview](#sec-pkgs-fetchers-fetchurl) for details on how the name of the file is decided.
_Default value:_ `""`.
`recursiveHash` (Boolean; _optional_) []{#sec-pkgs-fetchers-fetchurl-inputs-recursiveHash}
: If set to `true`, will signal to Nix that the hash given to `fetchurl` was calculated using the `"recursive"` mode.
See [the documentation on the Nix manual](https://nixos.org/manual/nix/stable/language/advanced-attributes.html#adv-attr-outputHashMode) for more information about the existing modes.
By default, `fetchurl` uses `"recursive"` mode when the `executable` attribute is set to `true`, so you don't need to specify `recursiveHash` in this case.
_Default value:_ `false`.
`executable` (Boolean; _optional_)
: If `true`, sets the executable bit on the downloaded file.
_Default value_: `false`.
`downloadToTemp` (Boolean; _optional_) []{#sec-pkgs-fetchers-fetchurl-inputs-downloadToTemp}
: If `true`, saves the downloaded file to a temporary location instead of the expected Nix store location.
This is useful when used in conjunction with `postFetch` attribute, otherwise `fetchurl` will not produce any meaningful output.
The location of the downloaded file will be set in the `$downloadedFile` variable, which should be used by the script in the `postFetch` attribute.
See [](#ex-fetchers-fetchurl-nixpkgs-version-postfetch) to understand how to work with this attribute.
_Default value:_ `false`.
`postFetch` (String; _optional_)
: Script executed after the file has been downloaded successfully, and before `fetchurl` finishes running.
Useful for post-processing, to check or transform the file in some way.
See [](#ex-fetchers-fetchurl-nixpkgs-version-postfetch) to understand how to work with this attribute.
_Default value:_ `""`.
`netrcPhase` (String or Null; _optional_)
: Script executed to create a {manpage}`netrc(5)` file to be used with {manpage}`curl(1)`.
The script should create the `netrc` file (note that it does not begin with a ".") in the directory it's currently running in (`$PWD`).
The script is executed during the setup done by `fetchurl` before it runs any of its code to download the specified content.
:::{.note}
If specified, `fetchurl` will automatically alter its invocation of {manpage}`curl(1)` to use the `netrc` file, so you don't need to add anything to `curlOpts` or `curlOptsList`.
:::
:::{.caution}
Since `netrcPhase` needs to be specified in your source Nix code, any secrets that you put directly in it will be world-readable by design (both in your source code, and when the derivation gets created in the Nix store).
If you want to avoid this behaviour, see the documentation of `netrcImpureEnvVars` for an alternative way of dealing with these secrets.
:::
_Default value_: `null`.
`netrcImpureEnvVars` (List of String; _optional_)
: If specified, `fetchurl` will add these environment variable names to the list of [impure environment variables](https://nixos.org/manual/nix/stable/language/advanced-attributes.html#adv-attr-impureEnvVars), which will be passed from the environment of the calling user to the builder running the `fetchurl` code.
This is useful when used with `netrcPhase` to hide any secrets that are used in it, because the script in `netrcPhase` only needs to reference the environment variables with the secrets in them instead.
However, note that these are called _impure_ variables for a reason:
the environment that starts the build needs to have these variables declared for everything to work properly, which means that additional setup is required outside what Nix controls.
_Default value:_ `[]`.
`curlOpts` (String; _optional_)
: If specified, this value will be appended to the invocation of {manpage}`curl(1)` when downloading the URL(s) given to `fetchurl`.
Multiple arguments can be separated by spaces normally, but values with whitespaces will be interpreted as multiple arguments (instead of a single value), even if the value is escaped.
See `curlOptsList` for a way to pass values with whitespaces in them.
_Default value:_ `""`.
`curlOptsList` (List of String; _optional_)
: If specified, each element of this list will be passed as an argument to the invocation of {manpage}`curl(1)` when downloading the URL(s) given to `fetchurl`.
This allows passing values that contain spaces, with no escaping needed.
_Default value:_ `[]`.
`showURLs` (Boolean; _optional_)
: If set to `true`, this will stop `fetchurl` from downloading anything at all.
Instead, it will output a list of all the URLs it would've used to download the content (after resolving `mirror://` URLs, for example).
This is useful for debugging.
_Default value:_ `false`.
`meta` (Attribute Set; _optional_)
: Specifies any [meta-attributes](#chap-meta) for the derivation returned by `fetchurl`.
_Default value:_ `{}`.
`passthru` (Attribute Set; _optional_)
: Specifies any extra [`passthru`](#chap-passthru) attributes for the derivation returned by `fetchurl`.
Note that `fetchurl` defines [`passthru` attributes of its own](#ssec-pkgs-fetchers-fetchurl-passthru-outputs).
Attributes specified in `passthru` can override the default attributes returned by `fetchurl`.
_Default value:_ `{}`.
`preferLocalBuild` (Boolean; _optional_)
: This is the same attribute as [defined in the Nix manual](https://nixos.org/manual/nix/stable/language/advanced-attributes.html#adv-attr-preferLocalBuild).
It is `true` by default because making a remote machine download the content just duplicates network traffic (since the local machine might download the results from the derivation anyway), but this could be useful in cases where network access is restricted on local machines.
_Default value:_ `true`.
`nativeBuildInputs` (List of Attribute Set; _optional_)
: Additional packages needed to download the content.
This is useful if you need extra packages for `postFetch` or `netrcPhase`, for example.
Has the same semantics as in [](#var-stdenv-nativeBuildInputs).
See [](#ex-fetchers-fetchurl-nixpkgs-version-postfetch) to understand how this can be used with `postFetch`.
_Default value:_ `[]`.
### Passthru outputs {#ssec-pkgs-fetchers-fetchurl-passthru-outputs}
`fetchurl` also defines its own [`passthru`](#chap-passthru) attributes:
`url` (String)
: The same `url` attribute passed in the argument to `fetchurl`.
### Examples {#ssec-pkgs-fetchers-fetchurl-examples}
:::{.example #ex-fetchers-fetchurl-nixpkgs-version}
# Using `fetchurl` to download a file
The following package downloads a small file from a URL and shows the most common way to use `fetchurl`:
```nix
{ fetchurl }:
fetchurl {
url = "https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/.version";
hash = "sha256-BZqI7r0MNP29yGH5+yW2tjU9OOpOCEvwWKrWCv5CQ0I=";
}
```
After building the package, the file will be downloaded and place into the Nix store:
```shell
$ nix-build
(output removed for clarity)
/nix/store/4g9y3x851wqrvim4zcz5x2v3zivmsq8n-version
$ cat /nix/store/4g9y3x851wqrvim4zcz5x2v3zivmsq8n-version
23.11
```
:::
:::{.example #ex-fetchers-fetchurl-nixpkgs-version-multiple-urls}
# Using `fetchurl` to download a file with multiple possible URLs
The following package adapts [](#ex-fetchers-fetchurl-nixpkgs-version) to use multiple URLs.
The first URL was crafted to intentionally return an error to illustrate how `fetchurl` will try multiple URLs until it finds one that works (or all URLs fail).
```nix
{ fetchurl }:
fetchurl {
urls = [
"https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/does-not-exist"
"https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/.version"
];
hash = "sha256-BZqI7r0MNP29yGH5+yW2tjU9OOpOCEvwWKrWCv5CQ0I=";
}
```
After building the package, both URLs will be used to download the file:
```shell
$ nix-build
(some output removed for clarity)
trying https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/does-not-exist
(some output removed for clarity)
curl: (22) The requested URL returned error: 404
trying https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/.version
(some output removed for clarity)
/nix/store/n9asny31z32q7sdw6a8r1gllrsfy53kl-does-not-exist
$ cat /nix/store/n9asny31z32q7sdw6a8r1gllrsfy53kl-does-not-exist
23.11
```
However, note that the name of the file was derived from the first URL (this is further explained in [the `fetchurl` overview](#sec-pkgs-fetchers-fetchurl)).
To ensure the result will have the same name regardless of which URLs are used, we can modify the package:
```nix
{ fetchurl }:
fetchurl {
name = "nixpkgs-version";
urls = [
"https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/does-not-exist"
"https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/.version"
];
hash = "sha256-BZqI7r0MNP29yGH5+yW2tjU9OOpOCEvwWKrWCv5CQ0I=";
}
```
After building the package, the result will have the name we specified:
```shell
$ nix-build
(output removed for clarity)
/nix/store/zczb6wl3al6jm9sm5h3pr6nqn0i5ji9z-nixpkgs-version
```
:::
:::{.example #ex-fetchers-fetchurl-nixpkgs-version-postfetch}
# Manipulating the content downloaded by `fetchurl`
It might be useful to manipulate the content downloaded by `fetchurl` directly in its derivation.
In this example, we'll adapt [](#ex-fetchers-fetchurl-nixpkgs-version) to append the result of running the `hello` package to the contents we download, purely to illustrate how to manipulate the content.
```nix
{ fetchurl, hello, lib }:
fetchurl {
url = "https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/.version";
nativeBuildInputs = [ hello ];
downloadToTemp = true;
postFetch = ''
${lib.getExe hello} >> $downloadedFile
mv $downloadedFile $out
'';
hash = "sha256-ceooQQYmDx5+0nfg40uU3NNI2yKrixP7HZ/xLZUNv+w=";
}
```
After building the package, the resulting file will have "Hello, world!" appended to it:
```shell
$ nix-build
(output removed for clarity)
/nix/store/ifi6pp7q0ag5h7c5v9h1c1c7bhd10c7f-version
$ cat /nix/store/ifi6pp7q0ag5h7c5v9h1c1c7bhd10c7f-version
23.11
Hello, world!
```
Note that the `hash` specified in the package is different than the hash specified in [](#ex-fetchers-fetchurl-nixpkgs-version), because the contents of the output have changed (even though the actual file that was downloaded is the same).
See [](#chap-pkgs-fetchers-caveats) for more details on how to work with the `hash` attribute when the output changes.
:::
## `fetchzip` {#sec-pkgs-fetchers-fetchzip}
Returns a [fixed-output derivation](https://nixos.org/manual/nix/stable/glossary.html#gloss-fixed-output-derivation) which downloads an archive from a given URL and decompresses it.
Despite its name, `fetchzip` is not limited to `.zip` files but can also be used with [various compressed tarball formats](#tar-files) by default.
This can extended by specifying additional attributes, see [](#ex-fetchers-fetchzip-rar-archive) to understand how to do that.
### Inputs {#sec-pkgs-fetchers-fetchzip-inputs}
`fetchzip` requires an attribute set, and most attributes are passed to the underlying call to [`fetchurl`](#sec-pkgs-fetchers-fetchurl).
The attributes below are treated differently by `fetchzip` when compared to what `fetchurl` expects:
`name` (String; _optional_)
: Works as defined in `fetchurl`, but has a different default value than `fetchurl`.
_Default value:_ `"source"`.
`nativeBuildInputs` (List of Attribute Set; _optional_)
: Works as defined in `fetchurl`, but it is also augmented by `fetchzip` to include packages to deal with additional archives (such as `.zip`).
_Default value:_ `[]`.
`postFetch` (String; _optional_)
: Works as defined in `fetchurl`, but it is also augmented with the code needed to make `fetchzip` work.
:::{.caution}
It is only safe to modify files in `$out` in `postFetch`.
Consult the implementation of `fetchzip` for anything more involved.
:::
_Default value:_ `""`.
`stripRoot` (Boolean; _optional_)
: If `true`, the decompressed contents are moved one level up the directory tree.
This is useful for archives that decompress into a single directory which commonly includes some values that change with time, such as version numbers.
When this is the case (and `stripRoot` is `true`), `fetchzip` will remove this directory and make the decompressed contents available in the top-level directory.
[](#ex-fetchers-fetchzip-simple-striproot) shows what this attribute does.
This attribute is **not** passed through to `fetchurl`.
_Default value:_ `true`.
`extension` (String or Null; _optional_)
: If set, the archive downloaded by `fetchzip` will be renamed to a filename with the extension specified in this attribute.
This is useful when making `fetchzip` support additional types of archives, because the implementation may use the extension of an archive to determine whether they can decompress it.
If the URL you're using to download the contents doesn't end with the extension associated with the archive, use this attribute to fix the filename of the archive.
This attribute is **not** passed through to `fetchurl`.
_Default value:_ `null`.
`recursiveHash` (Boolean; _optional_)
: Works [as defined in `fetchurl`](#sec-pkgs-fetchers-fetchurl-inputs-recursiveHash), but its default value is different than for `fetchurl`.
_Default value:_ `true`.
`downloadToTemp` (Boolean; _optional_)
: Works [as defined in `fetchurl`](#sec-pkgs-fetchers-fetchurl-inputs-downloadToTemp), but its default value is different than for `fetchurl`.
_Default value:_ `true`.
`extraPostFetch` **DEPRECATED**
: This attribute is deprecated.
Please use `postFetch` instead.
This attribute is **not** passed through to `fetchurl`.
### Examples {#sec-pkgs-fetchers-fetchzip-examples}
::::{.example #ex-fetchers-fetchzip-simple-striproot}
# Using `fetchzip` to output contents directly
The following recipe shows how to use `fetchzip` to decompress a `.tar.gz` archive:
```nix
{ fetchzip }:
fetchzip {
url = "https://github.com/NixOS/patchelf/releases/download/0.18.0/patchelf-0.18.0.tar.gz";
hash = "sha256-3ABYlME9R8klcpJ7MQpyFEFwHmxDDEzIYBqu/CpDYmg=";
}
```
This archive has all its contents in a directory named `patchelf-0.18.0`.
This means that after decompressing, you'd have to enter this directory to see the contents of the archive.
However, `fetchzip` makes this easier through the attribute `stripRoot` (enabled by default).
After building the recipe, the derivation output will show all the files in the archive at the top level:
```shell
$ nix-build
(output removed for clarity)
/nix/store/1b7h3fvmgrcddvs0m299hnqxlgli1yjw-source
$ ls /nix/store/1b7h3fvmgrcddvs0m299hnqxlgli1yjw-source
aclocal.m4 completions configure.ac m4 Makefile.in patchelf.spec README.md tests
build-aux configure COPYING Makefile.am patchelf.1 patchelf.spec.in src version
```
If `stripRoot` is set to `false`, the derivation output will be the decompressed archive as-is:
```nix
{ fetchzip }:
fetchzip {
url = "https://github.com/NixOS/patchelf/releases/download/0.18.0/patchelf-0.18.0.tar.gz";
hash = "sha256-uv3FuKE4DqpHT3yfE0qcnq0gYjDNQNKZEZt2+PUAneg=";
stripRoot = false;
}
```
:::{.caution}
The hash changed!
Whenever changing attributes of a Nixpkgs fetcher, [remember to invalidate the hash](#chap-pkgs-fetchers-caveats), otherwise you won't get the results you're expecting!
:::
After building the recipe:
```shell
$ nix-build
(output removed for clarity)
/nix/store/2hy5bxw7xgbgxkn0i4x6hjr8w3dbx16c-source
$ ls /nix/store/2hy5bxw7xgbgxkn0i4x6hjr8w3dbx16c-source
patchelf-0.18.0
```
::::
::::{.example #ex-fetchers-fetchzip-rar-archive}
# Using `fetchzip` to decompress a `.rar` file
The `unrar` package provides a [setup hook](#ssec-setup-hooks) to decompress `.rar` archives during the [unpack phase](#ssec-unpack-phase), which can be used with `fetchzip` to decompress those archives:
```nix
{ fetchzip, unrar }:
fetchzip {
url = "https://archive.org/download/SpaceCadet_Plus95/Space_Cadet.rar";
hash = "sha256-fC+zsR8BY6vXpUkVd6i1jF0IZZxVKVvNi6VWCKT+pA4=";
stripRoot = false;
nativeBuildInputs = [ unrar ];
}
```
Since this particular `.rar` file doesn't put its contents in a directory inside the archive, `stripRoot` must be set to `false`.
After building the recipe, the derivation output will show the decompressed files:
```shell
$ nix-build
(output removed for clarity)
/nix/store/zpn7knxfva6rfjja2gbb4p3l9w1f0d36-source
$ ls /nix/store/zpn7knxfva6rfjja2gbb4p3l9w1f0d36-source
FONT.DAT PINBALL.DAT PINBALL.EXE PINBALL2.MID TABLE.BMP WMCONFIG.EXE
MSCREATE.DIR PINBALL.DOC PINBALL.MID Sounds WAVEMIX.INF
```
::::
## `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.
- `decode`: Pipe the downloaded data through this command before processing it as a 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.
## `fetchDebianPatch` {#fetchdebianpatch}
A wrapper around `fetchpatch`, which takes:
- `patch` and `hash`: the patch's filename,
and its hash after normalization by `fetchpatch` ;
- `pname`: the Debian source package's name ;
- `version`: the upstream version number ;
- `debianRevision`: the [Debian revision number] if applicable ;
- the `area` of the Debian archive: `main` (default), `contrib`, or `non-free`.
Here is an example of `fetchDebianPatch` in action:
```nix
{ lib
, fetchDebianPatch
, buildPythonPackage
}:
buildPythonPackage rec {
pname = "pysimplesoap";
version = "1.16.2";
src = <...>;
patches = [
(fetchDebianPatch {
inherit pname version;
debianRevision = "5";
name = "Add-quotes-to-SOAPAction-header-in-SoapClient.patch";
hash = "sha256-xA8Wnrpr31H8wy3zHSNfezFNjUJt1HbSXn3qUMzeKc0=";
})
];
# ...
}
```
Patches are fetched from `sources.debian.org`, and so must come from a
package version that was uploaded to the Debian archive. Packages may
be removed from there once that specific version isn't in any suite
anymore (stable, testing, unstable, etc.), so maintainers should use
`copy-tarballs.pl` to archive the patch if it needs to be available
longer-term.
[Debian revision number]: https://www.debian.org/doc/debian-policy/ch-controlfields.html#version
## `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`.
If you want to fetch a tag you should pass the `tag` parameter instead of `rev` which has the same effect as setting `rev = "refs/tags"/${version}"`.
This is safer than just setting `rev = version` w.r.t. possible branch and tag name conflicts.
Additionally, the following optional arguments can be given:
*`fetchSubmodules`* (Boolean)
: Whether to also fetch the submodules of a repository.
*`fetchLFS`* (Boolean)
: Whether to fetch LFS objects.
*`postFetch`* (String)
: Shell code executed after the file has been fetched successfully.
This can do things like check or transform the file.
*`leaveDotGit`* (Boolean)
: Whether the `.git` directory of the clone should *not* be removed after checkout.
Be warned though that the git repository format is not stable and this flag is therefore not suitable for actual use by itself.
Only use this for testing purposes or in conjunction with removing the `.git` directory in `postFetch`.
*`deepClone`* (Boolean)
: Clone the entire repository as opposing to just creating a shallow clone.
This implies `leaveDotGit`.
*`sparseCheckout`* (List of String)
: Prevent git from fetching unnecessary blobs from server.
This is useful if only parts of the repository are needed.
::: {.example #ex-fetchgit-sparseCheckout}
# Use `sparseCheckout` to only include some directories:
```nix
{ stdenv, fetchgit }:
stdenv.mkDerivation {
name = "hello";
src = fetchgit {
url = "https://...";
sparseCheckout = [
"directory/to/be/included"
"another/directory"
];
hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
};
}
```
:::
See [git sparse-checkout](https://git-scm.com/docs/git-sparse-checkout) for more information.
Some additional parameters for niche use-cases can be found listed in the function parameters in the declaration of `fetchgit`: `pkgs/build-support/fetchgit/default.nix`.
Future parameters additions might also happen without immediately being documented here.
## `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. If you need to fetch a tag however, you should prefer to use the `tag` parameter which achieves this in a safer way with less boilerplate. Finally, `hash` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available, but `hash` is currently preferred.
To use a different GitHub instance, use `githubBase` (defaults to `"github.com"`).
`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. It behaves similarly to `fetchFromGitHub`, and expects `owner`, `repo`, `rev`, and `hash`.
To use a specific GitLab instance, use `domain` (defaults to `"gitlab.com"`).
## `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:
```nix
requireFile {
name = "jdk-${version}_linux-x64_bin.tar.gz";
url = "https://www.oracle.com/java/technologies/javase-jdk11-downloads.html";
hash = "sha256-lL00+F7jjT71nlKJ7HRQuUQ7kkxVYlZh//5msD8sjeI=";
}
```
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
***
```
This function should only be used by non-redistributable software with an unfree license that we need to require the user to download manually.
It produces packages that cannot be built automatically.
## `fetchtorrent` {#fetchtorrent}
`fetchtorrent` expects two arguments. `url` which can either be a Magnet URI (Magnet Link) such as `magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c` or an HTTP URL pointing to a `.torrent` file. It can also take a `config` argument which will craft a `settings.json` configuration file and give it to `transmission`, the underlying program that is performing the fetch. The available config options for `transmission` can be found [here](https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md#options)
```nix
{ fetchtorrent }:
fetchtorrent {
config = { peer-limit-global = 100; };
url = "magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c";
hash = "";
}
```
### Parameters {#fetchtorrent-parameters}
- `url`: Magnet URI (Magnet Link) such as `magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c` or an HTTP URL pointing to a `.torrent` file.
- `backend`: Which bittorrent program to use. Default: `"transmission"`. Valid values are `"rqbit"` or `"transmission"`. These are the two most suitable torrent clients for fetching in a fixed-output derivation at the time of writing, as they can be easily exited after usage. `rqbit` is written in Rust and has a smaller closure size than `transmission`, and the performance and peer discovery properties differs between these clients, requiring experimentation to decide upon which is the best.
- `config`: When using `transmission` as the `backend`, a json configuration can
be supplied to transmission. Refer to the [upstream documentation](https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md) for information on how to configure.

View File

@@ -1,12 +0,0 @@
# Images {#chap-images}
This chapter describes tools for creating various types of images.
```{=include=} sections
images/appimagetools.section.md
images/dockertools.section.md
images/ocitools.section.md
images/portableservice.section.md
images/makediskimage.section.md
images/binarycache.section.md
```

View File

@@ -1,167 +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 if 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.
:::
## Wrapping {#ssec-pkgs-appimageTools-wrapping}
Use `wrapType2` to wrap any AppImage.
This will create a FHS environment with many packages [expected to exist](https://github.com/AppImage/pkg2appimage/blob/master/excludelist) for the AppImage to work.
`wrapType2` expects an argument with the `src` attribute, and either a `name` attribute or `pname` and `version` attributes.
It will eventually call into [`buildFHSEnv`](#sec-fhs-environments), and any extra attributes in the argument to `wrapType2` will be passed through to it.
This means that you can pass the `extraInstallCommands` attribute, for example, and it will have the same effect as described in [`buildFHSEnv`](#sec-fhs-environments).
::: {.note}
In the past, `appimageTools` provided both `wrapType1` and `wrapType2`, to be used depending on the type of AppImage that was being wrapped.
However, [those were unified early 2020](https://github.com/NixOS/nixpkgs/pull/81833), meaning that both `wrapType1` and `wrapType2` have the same behaviour now.
:::
:::{.example #ex-wrapping-appimage-from-github}
# Wrapping an AppImage from GitHub
```nix
{ appimageTools, fetchurl }:
let
pname = "nuclear";
version = "0.6.30";
src = fetchurl {
url = "https://github.com/nukeop/nuclear/releases/download/v${version}/${pname}-v${version}.AppImage";
hash = "sha256-he1uGC1M/nFcKpMM9JKY4oeexJcnzV0ZRxhTjtJz6xw=";
};
in
appimageTools.wrapType2 {
inherit pname version src;
}
```
:::
The argument passed to `wrapType2` can also contain an `extraPkgs` attribute, which allows you to include additional packages inside the FHS environment your AppImage is going to run in.
`extraPkgs` must be a function that returns a list of packages.
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.
:::{.example #ex-wrapping-appimage-with-extrapkgs}
# Wrapping an AppImage with extra packages
```nix
{ appimageTools, fetchurl }:
let
pname = "irccloud";
version = "0.16.0";
src = fetchurl {
url = "https://github.com/irccloud/irccloud-desktop/releases/download/v${version}/IRCCloud-${version}-linux-x86_64.AppImage";
hash = "sha256-/hMPvYdnVB1XjKgU2v47HnVvW4+uC3rhRjbucqin4iI=";
};
in appimageTools.wrapType2 {
inherit pname version src;
extraPkgs = pkgs: [ pkgs.at-spi2-core ];
}
```
:::
## Extracting {#ssec-pkgs-appimageTools-extracting}
Use `extract` if you need to extract the contents of an AppImage.
This is usually used in Nixpkgs to install extra files in addition to [wrapping](#ssec-pkgs-appimageTools-wrapping) the AppImage.
`extract` expects an argument with the `src` attribute, and either a `name` attribute or `pname` and `version` attributes.
::: {.note}
In the past, `appimageTools` provided both `extractType1` and `extractType2`, to be used depending on the type of AppImage that was being extracted.
However, [those were unified early 2020](https://github.com/NixOS/nixpkgs/pull/81572), meaning that both `extractType1` and `extractType2` have the same behaviour as `extract` now.
:::
:::{.example #ex-extracting-appimage}
# Extracting an AppImage to install extra files
This example was adapted from a real package in Nixpkgs to show how `extract` is usually used in combination with `wrapType2`.
Note how `appimageContents` is used in `extraInstallCommands` to install additional files that were extracted from the AppImage.
```nix
{ appimageTools, fetchurl }:
let
pname = "irccloud";
version = "0.16.0";
src = fetchurl {
url = "https://github.com/irccloud/irccloud-desktop/releases/download/v${version}/IRCCloud-${version}-linux-x86_64.AppImage";
hash = "sha256-/hMPvYdnVB1XjKgU2v47HnVvW4+uC3rhRjbucqin4iI=";
};
appimageContents = appimageTools.extract {
inherit pname version src;
};
in appimageTools.wrapType2 {
inherit pname version src;
extraPkgs = pkgs: [ pkgs.at-spi2-core ];
extraInstallCommands = ''
mv $out/bin/${pname}-${version} $out/bin/${pname}
install -m 444 -D ${appimageContents}/irccloud.desktop $out/share/applications/irccloud.desktop
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/irccloud.png \
$out/share/icons/hicolor/512x512/apps/irccloud.png
substituteInPlace $out/share/applications/irccloud.desktop \
--replace-fail 'Exec=AppRun' 'Exec=${pname}'
'';
}
```
:::
The argument passed to `extract` can also contain a `postExtract` attribute, which allows you to execute additional commands after the files are extracted from the AppImage.
`postExtract` must be a string with commands to run.
:::{.example #ex-extracting-appimage-with-postextract}
# Extracting an AppImage to install extra files, using `postExtract`
This is a rewrite of [](#ex-extracting-appimage) to use `postExtract`.
```nix
{ appimageTools, fetchurl }:
let
pname = "irccloud";
version = "0.16.0";
src = fetchurl {
url = "https://github.com/irccloud/irccloud-desktop/releases/download/v${version}/IRCCloud-${version}-linux-x86_64.AppImage";
hash = "sha256-/hMPvYdnVB1XjKgU2v47HnVvW4+uC3rhRjbucqin4iI=";
};
appimageContents = appimageTools.extract {
inherit pname version src;
postExtract = ''
substituteInPlace $out/irccloud.desktop --replace-fail 'Exec=AppRun' 'Exec=${pname}'
'';
};
in appimageTools.wrapType2 {
inherit pname version src;
extraPkgs = pkgs: [ pkgs.at-spi2-core ];
extraInstallCommands = ''
mv $out/bin/${pname}-${version} $out/bin/${pname}
install -m 444 -D ${appimageContents}/irccloud.desktop $out/share/applications/irccloud.desktop
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/irccloud.png \
$out/share/icons/hicolor/512x512/apps/irccloud.png
'';
}
```
:::

View File

@@ -1,58 +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.
`mkBinaryCache` expects an argument with the `rootPaths` attribute.
`rootPaths` must be a list of derivations.
The transitive closure of these derivations' outputs will be copied into the cache.
::: {.note}
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.
:::
[]{#sec-pkgs-binary-cache-example}
:::{.example #ex-mkbinarycache-copying-package-closure}
# Copying a package and its closure to another machine with `mkBinaryCache`
The following derivation will construct a flat-file binary cache containing the closure of `hello`.
```nix
{ mkBinaryCache, hello }:
mkBinaryCache {
rootPaths = [hello];
}
```
Build the cache on a machine.
Note that the command still builds the exact nix package above, but adds some boilerplate to build it directly from an expression.
```shellSession
$ nix-build -E 'let pkgs = import <nixpkgs> {}; in pkgs.callPackage ({ mkBinaryCache, hello }: mkBinaryCache { rootPaths = [hello]; }) {}'
/nix/store/azf7xay5xxdnia4h9fyjiv59wsjdxl0g-binary-cache
```
Copy the resulting directory to another machine, which we'll call `host2`:
```shellSession
$ scp result host2:/tmp/hello-cache
```
At this point, the cache can be used as a substituter when building derivations on `host2`:
```shellSession
$ nix-build -A hello '<nixpkgs>' \
--option require-sigs false \
--option trusted-substituters file:///tmp/hello-cache \
--option substituters file:///tmp/hello-cache
/nix/store/zhl06z4lrfrkw5rp0hnjjfrgsclzvxpm-hello-2.12.1
```
:::

File diff suppressed because it is too large Load Diff

View File

@@ -1,106 +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 {#sec-make-disk-image-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 {#sec-make-disk-image-features-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 {#sec-make-disk-image-features-full-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 {#sec-make-disk-image-features-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 {#sec-make-disk-image-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;
inherit (evalConfig {
modules = [
{
fileSystems."/" = { device = "/dev/vda"; fsType = "ext4"; autoFormat = true; };
boot.grub.device = "/dev/vda";
}
];
}) config;
format = "qcow2";
onlyNixStore = false;
partitionTableType = "legacy+gpt";
installBootLoader = true;
touchEFIVars = true;
diskSize = "auto";
additionalSpace = "0M"; # Defaults to 512M.
copyChannel = false;
memSize = 2048; # Qemu VM memory size in megabytes. Defaults to 1024M.
}
```

View File

@@ -1,104 +0,0 @@
# pkgs.ociTools {#sec-pkgs-ociTools}
`pkgs.ociTools` is a set of functions for creating runtime container bundles according to the [OCI runtime specification v1.0.0](https://github.com/opencontainers/runtime-spec/blob/v1.0.0/spec.md).
It makes no assumptions about the container runner you choose to use to run the created container.
The set of functions in `pkgs.ociTools` currently does not handle the [OCI image specification](https://github.com/opencontainers/image-spec).
At a high-level an OCI implementation would download an OCI Image then unpack that image into an OCI Runtime filesystem bundle.
At this point the OCI Runtime Bundle would be run by an OCI Runtime.
`pkgs.ociTools` provides utilities to create OCI Runtime bundles.
## buildContainer {#ssec-pkgs-ociTools-buildContainer}
This function creates an OCI runtime container (consisting of a `config.json` and a root filesystem directory) that runs a single command inside of it.
The nix store of the container will contain all referenced dependencies of the given command.
This function has an assumption that the container will run on POSIX platforms, and sets configurations (such as the user running the process or certain mounts) according to this assumption.
Because of this, a container built with `buildContainer` will not work on Windows or other non-POSIX platforms without modifications to the container configuration.
These modifications aren't supported by `buildContainer`.
For `linux` platforms, `buildContainer` also configures the following namespaces (see {manpage}`unshare(1)`) to isolate the OCI container from the global namespace:
PID, network, mount, IPC, and UTS.
Note that no user namespace is created, which means that you won't be able to run the container unless you are the `root` user.
### Inputs {#ssec-pkgs-ociTools-buildContainer-inputs}
`buildContainer` expects an argument with the following attributes:
`args` (List of String)
: Specifies a set of arguments to run inside the container.
Any packages referenced by `args` will be made available inside the container.
`mounts` (Attribute Set; _optional_)
: Would specify additional mounts that the runtime must make available to the container.
:::{.warning}
As explained in [issue #290879](https://github.com/NixOS/nixpkgs/issues/290879), this attribute is currently ignored.
:::
:::{.note}
`buildContainer` includes a minimal set of necessary filesystems to be mounted into the container, and this set can't be changed with the `mounts` attribute.
:::
_Default value:_ `{}`.
`readonly` (Boolean; _optional_)
: If `true`, sets the container's root filesystem as read-only.
_Default value:_ `false`.
`os` **DEPRECATED**
: Specifies the operating system on which the container filesystem is based on.
If specified, its value should follow the [OCI Image Configuration Specification](https://github.com/opencontainers/image-spec/blob/main/config.md#properties).
According to the linked specification, all possible values for `$GOOS` in [the Go docs](https://go.dev/doc/install/source#environment) should be valid, but will commonly be one of `darwin` or `linux`.
_Default value:_ `"linux"`.
`arch` **DEPRECATED**
: Used to specify the architecture for which the binaries in the container filesystem have been compiled.
If specified, its value should follow the [OCI Image Configuration Specification](https://github.com/opencontainers/image-spec/blob/main/config.md#properties).
According to the linked specification, all possible values for `$GOARCH` in [the Go docs](https://go.dev/doc/install/source#environment) should be valid, but will commonly be one of `386`, `amd64`, `arm`, or `arm64`.
_Default value:_ `x86_64`.
### Examples {#ssec-pkgs-ociTools-buildContainer-examples}
::: {.example #ex-ociTools-buildContainer-bash}
# Creating an OCI runtime container that runs `bash`
This example uses `ociTools.buildContainer` to create a simple container that runs `bash`.
```nix
{ ociTools, lib, bash }:
ociTools.buildContainer {
args = [
(lib.getExe bash)
];
readonly = false;
}
```
As an example of how to run the container generated by this package, we'll use `runc` to start the container.
Any other tool that supports OCI containers could be used instead.
```shell
$ nix-build
(some output removed for clarity)
/nix/store/7f9hgx0arvhzp2a3qphp28rxbn748l25-join
$ cd /nix/store/7f9hgx0arvhzp2a3qphp28rxbn748l25-join
$ nix-shell -p runc
[nix-shell:/nix/store/7f9hgx0arvhzp2a3qphp28rxbn748l25-join]$ sudo runc run ocitools-example
help
GNU bash, version 5.2.26(1)-release (x86_64-pc-linux-gnu)
(some output removed for clarity)
```
:::

View File

@@ -1,174 +0,0 @@
# pkgs.portableService {#sec-pkgs-portableService}
`pkgs.portableService` is a function to create [Portable Services](https://systemd.io/PORTABLE_SERVICES/) in a read-only, immutable, `squashfs` raw disk image.
This lets you use Nix to build images which can be run on many recent Linux distributions.
::: {.note}
Portable services are supported starting with systemd 239 (released on 2018-06-22).
:::
The generated image will contain the file system structure as required by the Portable Services specification, along with the packages given to `portableService` and all of their dependencies.
When generated, the image will exist in the Nix store with the `.raw` file extension, as required by the specification.
See [](#ex-portableService-hello) to understand how to use the output of `portableService`.
## Inputs {#ssec-pkgs-portableService-inputs}
`portableService` expects one argument with the following attributes:
`pname` (String)
: The name of the portable service.
The generated image will be named according to the template `$pname_$version.raw`, which is supported by the Portable Services specification.
`version` (String)
: The version of the portable service.
The generated image will be named according to the template `$pname_$version.raw`, which is supported by the Portable Services specification.
`units` (List of Attribute Set)
: A list of derivations for systemd unit files.
Each derivation must produce a single file, and must have a name that starts with the value of `pname` and ends with the suffix of the unit type (e.g. ".service", ".socket", ".timer", and so on).
See [](#ex-portableService-hello) to better understand this naming constraint.
`description` (String or Null; _optional_)
: If specified, the value is added as `PORTABLE_PRETTY_NAME` to the `/etc/os-release` file in the generated image.
This could be used to provide more information to anyone inspecting the image.
_Default value:_ `null`.
`homepage` (String or Null; _optional_)
: If specified, the value is added as `HOME_URL` to the `/etc/os-release` file in the generated image.
This could be used to provide more information to anyone inspecting the image.
_Default value:_ `null`.
`symlinks` (List of Attribute Set; _optional_)
: A list of attribute sets in the format `{object, symlink}`.
For each item in the list, `portableService` will create a symlink in the path specified by `symlink` (relative to the root of the image) that points to `object`.
All packages that `object` depends on and their dependencies are automatically copied into the image.
This can be used to create symlinks for applications that assume some files to exist globally (`/etc/ssl` or `/bin/bash`, for example).
See [](#ex-portableService-symlinks) to understand how to do that.
_Default value:_ `[]`.
`contents` (List of Attribute Set; _optional_)
: A list of additional derivations to be included as-is in the image.
These derivations will be included directly in a `/nix/store` directory inside the image.
_Default value:_ `[]`.
`squashfsTools` (Attribute Set; _optional_)
: Allows you to override the package that provides {manpage}`mksquashfs(1)`, which is used internally by `portableService`.
_Default value:_ `pkgs.squashfsTools`.
`squash-compression` (String; _optional_)
: Passed as the compression option to {manpage}`mksquashfs(1)`, which is used internally by `portableService`.
_Default value:_ `"xz -Xdict-size 100%"`.
`squash-block-size` (String; _optional_)
: Passed as the block size option to {manpage}`mksquashfs(1)`, which is used internally by `portableService`.
_Default value:_ `"1M"`.
## Examples {#ssec-pkgs-portableService-examples}
[]{#ex-pkgs-portableService}
:::{.example #ex-portableService-hello}
# Building a Portable Service image
The following example builds a Portable Service image with the `hello` package, along with a service unit that runs it.
```nix
{ lib, writeText, portableService, hello }:
let
hello-service = writeText "hello.service" ''
[Unit]
Description=Hello world service
[Service]
Type=oneshot
ExecStart=${lib.getExe hello}
'';
in
portableService {
pname = "hello";
inherit (hello) version;
units = [ hello-service ];
}
```
After building the package, the generated image can be loaded into a system through {manpage}`portablectl(1)`:
```shell
$ nix-build
(some output removed for clarity)
/nix/store/8c20z1vh7z8w8dwagl8w87b45dn5k6iq-hello-img-2.12.1
$ portablectl attach /nix/store/8c20z1vh7z8w8dwagl8w87b45dn5k6iq-hello-img-2.12.1/hello_2.12.1.raw
Created directory /etc/systemd/system.attached.
Created directory /etc/systemd/system.attached/hello.service.d.
Written /etc/systemd/system.attached/hello.service.d/20-portable.conf.
Created symlink /etc/systemd/system.attached/hello.service.d/10-profile.conf → /usr/lib/systemd/portable/profile/default/service.conf.
Copied /etc/systemd/system.attached/hello.service.
Created symlink /etc/portables/hello_2.12.1.raw → /nix/store/8c20z1vh7z8w8dwagl8w87b45dn5k6iq-hello-img-2.12.1/hello_2.12.1.raw.
$ systemctl start hello
$ journalctl -u hello
Feb 28 22:39:16 hostname systemd[1]: Starting Hello world service...
Feb 28 22:39:16 hostname hello[102887]: Hello, world!
Feb 28 22:39:16 hostname systemd[1]: hello.service: Deactivated successfully.
Feb 28 22:39:16 hostname systemd[1]: Finished Hello world service.
$ portablectl detach hello_2.12.1
Removed /etc/systemd/system.attached/hello.service.
Removed /etc/systemd/system.attached/hello.service.d/10-profile.conf.
Removed /etc/systemd/system.attached/hello.service.d/20-portable.conf.
Removed /etc/systemd/system.attached/hello.service.d.
Removed /etc/portables/hello_2.12.1.raw.
Removed /etc/systemd/system.attached.
```
:::
:::{.example #ex-portableService-symlinks}
# Specifying symlinks when building a Portable Service image
Some services may expect files or directories to be available globally.
An example is a service which expects all trusted SSL certificates to exist in a specific location by default.
To make things available globally, you must specify the `symlinks` attribute when using `portableService`.
The following package builds on the package from [](#ex-portableService-hello) to make `/etc/ssl` available globally (this is only for illustrative purposes, because `hello` doesn't use `/etc/ssl`).
```nix
{ lib, writeText, portableService, hello, cacert }:
let
hello-service = writeText "hello.service" ''
[Unit]
Description=Hello world service
[Service]
Type=oneshot
ExecStart=${lib.getExe hello}
'';
in
portableService {
pname = "hello";
inherit (hello) version;
units = [ hello-service ];
symlinks = [
{ object = "${cacert}/etc/ssl"; symlink = "/etc/ssl"; }
];
}
```
:::

View File

@@ -1,12 +0,0 @@
# Special build helpers {#chap-special}
This chapter describes several special build helpers.
```{=include=} sections
special/fakenss.section.md
special/fhs-environments.section.md
special/makesetuphook.section.md
special/mkshell.section.md
special/vm-tools.section.md
special/checkpoint-build.section.md
```

View File

@@ -1,43 +0,0 @@
# pkgs.checkpointBuildTools {#sec-checkpoint-build}
`pkgs.checkpointBuildTools` provides a way to build derivations incrementally. It consists of two functions to make checkpoint builds using Nix possible.
For hermeticity, Nix derivations do not allow any state to be carried over between builds, making a transparent incremental build within a derivation impossible.
However, we can tell Nix explicitly what the previous build state was, by representing that previous state as a derivation output. This allows the passed build state to be used for an incremental build.
To change a normal derivation to a checkpoint based build, these steps must be taken:
- apply `prepareCheckpointBuild` on the desired derivation, e.g.
```nix
{
checkpointArtifacts = (pkgs.checkpointBuildTools.prepareCheckpointBuild pkgs.virtualbox);
}
```
- change something you want in the sources of the package, e.g. use a source override:
```nix
{
changedVBox = pkgs.virtualbox.overrideAttrs (old: {
src = path/to/vbox/sources;
});
}
```
- use `mkCheckpointBuild changedVBox checkpointArtifacts`
- enjoy shorter build times
## Example {#sec-checkpoint-build-example}
```nix
{ pkgs ? import <nixpkgs> {} }:
let
inherit (pkgs.checkpointBuildTools)
prepareCheckpointBuild
mkCheckpointBuild
;
helloCheckpoint = prepareCheckpointBuild pkgs.hello;
changedHello = pkgs.hello.overrideAttrs (_: {
doCheck = false;
patchPhase = ''
sed -i 's/Hello, world!/Hello, Nix!/g' src/hello.c
'';
});
in mkCheckpointBuild changedHello helloCheckpoint
```

View File

@@ -1,77 +0,0 @@
# fakeNss {#sec-fakeNss}
Provides `/etc/passwd` and `/etc/group` files that contain `root` and `nobody`, allowing user/group lookups to work in binaries that insist on doing those.
This might be a better choice than a custom script running `useradd` and related utilities if you only need those files to exist with some entries.
`fakeNss` also provides `/etc/nsswitch.conf`, configuring NSS host resolution to first check `/etc/hosts` before checking DNS, since the default in the absence of a config file (`dns [!UNAVAIL=return] files`) is quite unexpected.
It also creates an empty directory at `/var/empty` because it uses that as the home directory for the `root` and `nobody` users.
The `/var/empty` directory can also be used as a `chroot` target to prevent file access in processes that do not need to access files, if your container runs such processes.
The user entries created by `fakeNss` use the `/bin/sh` shell, which is not provided by `fakeNss` because in most cases it won't be used.
If you need that to be available, see [`dockerTools.binSh`](#sssec-pkgs-dockerTools-helpers-binSh) or provide your own.
## Inputs {#sec-fakeNss-inputs}
`fakeNss` is made available in Nixpkgs as a package rather than a function, but it has two attributes that can be overridden and might be useful in particular cases.
For more details on how overriding works, see [](#ex-fakeNss-overriding) and [](#sec-pkg-override).
`extraPasswdLines` (List of Strings; _optional_)
: A list of lines that will be added to `/etc/passwd`.
Useful if extra users need to exist in the output of `fakeNss`.
If `extraPasswdLines` is specified, it will **not** override the `root` and `nobody` entries created by `fakeNss`.
Those entries will always exist.
Lines specified here must follow the format in {manpage}`passwd(5)`.
_Default value:_ `[]`.
`extraGroupLines` (List of Strings; _optional_)
: A list of lines that will be added to `/etc/group`.
Useful if extra groups need to exist in the output of `fakeNss`.
If `extraGroupLines` is specified, it will **not** override the `root` and `nobody` entries created by `fakeNss`.
Those entries will always exist.
Lines specified here must follow the format in {manpage}`group(5)`.
_Default value:_ `[]`.
## Examples {#sec-fakeNss-examples}
:::{.example #ex-fakeNss-dockerTools-buildImage}
# Using `fakeNss` with `dockerTools.buildImage`
This example shows how to use `fakeNss` as-is.
It is useful with functions in `dockerTools` to allow building Docker images that have the `/etc/passwd` and `/etc/group` files.
This example includes the `hello` binary in the image so it can do something besides just have the extra files.
```nix
{ dockerTools, fakeNss, hello }:
dockerTools.buildImage {
name = "image-with-passwd";
tag = "latest";
copyToRoot = [ fakeNss hello ];
config = {
Cmd = [ "/bin/hello" ];
};
}
```
:::
:::{.example #ex-fakeNss-overriding}
# Using `fakeNss` with an override to add extra lines
The following code uses `override` to add extra lines to `/etc/passwd` and `/etc/group` to create another user and group entry.
```nix
{ fakeNss }:
fakeNss.override {
extraPasswdLines = ["newuser:x:9001:9001:new user:/var/empty:/bin/sh"];
extraGroupLines = ["newuser:x:9001:"];
}
```
:::

View File

@@ -1,60 +0,0 @@
# buildFHSEnv {#sec-fhs-environments}
`buildFHSEnv` provides a way to build and run FHS-compatible lightweight sandboxes. It creates an isolated root filesystem with the host's `/nix/store`, so its footprint in terms of disk space is quite small. This allows you 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 for instance.
It uses Linux' namespaces feature to create temporary lightweight environments which are destroyed after all child processes exit, without requiring elevated privileges. It works similar to containerisation technology such as Docker or FlatPak but provides no security-relevant separation from the host system.
Accepted arguments are:
- `name`
The name of the environment, and the wrapper executable if `pname` is unset.
- `pname`
The pname of the environment and the wrapper executable.
- `version`
The version of the environment.
- `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.
- `multiArch`
Whether to install 32bit multiPkgs into the FHSEnv in 64bit environments
- `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 shell command to be executed inside the sandbox. It defaults to `bash`. Command line arguments passed to the resulting wrapper are appended to this command by default.
This command must be escaped; i.e. `"foo app" --do-stuff --with "some file"`. See `lib.escapeShellArgs`.
- `profile`
Optional script for `/etc/profile` within the sandbox.
You can create a simple environment using a `shell.nix` like this:
```nix
{ pkgs ? import <nixpkgs> {} }:
(pkgs.buildFHSEnv {
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` on it would drop you into a shell inside an FHS env where those libraries and binaries are available in FHS-compliant paths. Applications that expect an FHS structure (i.e. proprietary binaries) can run inside this environment without modification.
You can build a wrapper by running your binary in `runScript`, e.g. `./bin/start.sh`. Relative paths work as expected.
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 `wrapGApps*` hook.

View File

@@ -1,55 +0,0 @@
# pkgs.makeSetupHook {#sec-pkgs.makeSetupHook}
`pkgs.makeSetupHook` is a build helper that produces hooks that go in to `nativeBuildInputs`
## Usage {#sec-pkgs.makeSetupHook-usage}
```nix
pkgs.makeSetupHook {
name = "something-hook";
propagatedBuildInputs = [ pkgs.commandsomething ];
depsTargetTargetPropagated = [ pkgs.libsomething ];
} ./script.sh;
```
### setup hook that depends on the hello package and runs hello and @shell@ is substituted with path to bash {#sec-pkgs.makeSetupHook-usage-example}
```nix
pkgs.makeSetupHook
{
name = "run-hello-hook";
# Put dependencies here if they have hooks or necessary dependencies propagated
# otherwise prefer direct paths to executables.
propagatedBuildInputs = [
pkgs.hello
pkgs.cowsay
];
substitutions = {
shell = "${pkgs.bash}/bin/bash";
cowsay = "${pkgs.cowsay}/bin/cowsay";
};
}
(
writeScript "run-hello-hook.sh" ''
#!@shell@
# the direct path to the executable has to be here because
# this will be run when the file is sourced
# at which point '$PATH' has not yet been populated with inputs
@cowsay@ cow
_printHelloHook() {
hello
}
preConfigureHooks+=(_printHelloHook)
''
);
```
## Attributes {#sec-pkgs.makeSetupHook-attributes}
* `name` Set the name of the hook.
* `propagatedBuildInputs` Runtime dependencies (such as binaries) of the hook.
* `depsTargetTargetPropagated` Non-binary dependencies.
* `meta`
* `passthru`
* `substitutions` Variables for `substituteAll`

View File

@@ -1,41 +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 {#sec-pkgs-mkShell-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`.
## Variants {#sec-pkgs-mkShell-variants}
`pkgs.mkShellNoCC` is a variant that uses `stdenvNoCC` instead of `stdenv` as base environment. This is useful if no C compiler is needed in the shell environment.
## Building the shell {#sec-pkgs-mkShell-building}
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,150 +0,0 @@
# vmTools {#sec-vm-tools}
A set of VM related utilities, that help in building some packages in more advanced scenarios.
## `vmTools.createEmptyImage` {#vm-tools-createEmptyImage}
A bash script fragment that produces a disk image at `destination`.
### Attributes {#vm-tools-createEmptyImage-attributes}
* `size`. The disk size, in MiB.
* `fullName`. Name that will be written to `${destination}/nix-support/full-name`.
* `destination` (optional, default `$out`). Where to write the image files.
## `vmTools.runInLinuxVM` {#vm-tools-runInLinuxVM}
Run a derivation in a Linux virtual machine (using Qemu/KVM).
By default, there is no disk image; the root filesystem is a `tmpfs`, and the Nix store is shared with the host (via the [9P protocol](https://wiki.qemu.org/Documentation/9p#9p_Protocol)).
Thus, any pure Nix derivation should run unmodified.
If the build fails and Nix is run with the `-K/--keep-failed` option, a script `run-vm` will be left behind in the temporary build directory that allows you to boot into the VM and debug it interactively.
### Attributes {#vm-tools-runInLinuxVM-attributes}
* `preVM` (optional). Shell command to be evaluated *before* the VM is started (i.e., on the host).
* `memSize` (optional, default `512`). The memory size of the VM in MiB.
* `diskImage` (optional). A file system image to be attached to `/dev/sda`.
Note that currently we expect the image to contain a filesystem, not a full disk image with a partition table etc.
### Examples {#vm-tools-runInLinuxVM-examples}
Build the derivation hello inside a VM:
```nix
{ pkgs }: with pkgs; with vmTools;
runInLinuxVM hello
```
Build inside a VM with extra memory:
```nix
{ pkgs }: with pkgs; with vmTools;
runInLinuxVM (hello.overrideAttrs (_: { memSize = 1024; }))
```
Use VM with a disk image (implicitly sets `diskImage`, see [`vmTools.createEmptyImage`](#vm-tools-createEmptyImage)):
```nix
{ pkgs }: with pkgs; with vmTools;
runInLinuxVM (hello.overrideAttrs (_: {
preVM = createEmptyImage {
size = 1024;
fullName = "vm-image";
};
}))
```
## `vmTools.extractFs` {#vm-tools-extractFs}
Takes a file, such as an ISO, and extracts its contents into the store.
### Attributes {#vm-tools-extractFs-attributes}
* `file`. Path to the file to be extracted.
Note that currently we expect the image to contain a filesystem, not a full disk image with a partition table etc.
* `fs` (optional). Filesystem of the contents of the file.
### Examples {#vm-tools-extractFs-examples}
Extract the contents of an ISO file:
```nix
{ pkgs }: with pkgs; with vmTools;
extractFs { file = ./image.iso; }
```
## `vmTools.extractMTDfs` {#vm-tools-extractMTDfs}
Like [](#vm-tools-extractFs), but it makes use of a [Memory Technology Device (MTD)](https://en.wikipedia.org/wiki/Memory_Technology_Device).
## `vmTools.runInLinuxImage` {#vm-tools-runInLinuxImage}
Like [](#vm-tools-runInLinuxVM), but instead of using `stdenv` from the Nix store, run the build using the tools provided by `/bin`, `/usr/bin`, etc. from the specified filesystem image, which typically is a filesystem containing a [FHS](https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard)-based Linux distribution.
## `vmTools.makeImageTestScript` {#vm-tools-makeImageTestScript}
Generate a script that can be used to run an interactive session in the given image.
### Examples {#vm-tools-makeImageTestScript-examples}
Create a script for running a Fedora 27 VM:
```nix
{ pkgs }: with pkgs; with vmTools;
makeImageTestScript diskImages.fedora27x86_64
```
Create a script for running an Ubuntu 20.04 VM:
```nix
{ pkgs }: with pkgs; with vmTools;
makeImageTestScript diskImages.ubuntu2004x86_64
```
## `vmTools.diskImageFuns` {#vm-tools-diskImageFuns}
A set of functions that build a predefined set of minimal Linux distributions images.
### Images {#vm-tools-diskImageFuns-images}
* Fedora
* `fedora26x86_64`
* `fedora27x86_64`
* CentOS
* `centos6i386`
* `centos6x86_64`
* `centos7x86_64`
* Ubuntu
* `ubuntu1404i386`
* `ubuntu1404x86_64`
* `ubuntu1604i386`
* `ubuntu1604x86_64`
* `ubuntu1804i386`
* `ubuntu1804x86_64`
* `ubuntu2004i386`
* `ubuntu2004x86_64`
* `ubuntu2204i386`
* `ubuntu2204x86_64`
* Debian
* `debian10i386`
* `debian10x86_64`
* `debian11i386`
* `debian11x86_64`
* `debian12i386`
* `debian12x86_64`
### Attributes {#vm-tools-diskImageFuns-attributes}
* `size` (optional, defaults to `4096`). The size of the image, in MiB.
* `extraPackages` (optional). A list names of additional packages from the distribution that should be included in the image.
### Examples {#vm-tools-diskImageFuns-examples}
8GiB image containing Firefox in addition to the default packages:
```nix
{ pkgs }: with pkgs; with vmTools;
diskImageFuns.ubuntu2004x86_64 { extraPackages = [ "firefox" ]; size = 8192; }
```
## `vmTools.diskImageExtraFuns` {#vm-tools-diskImageExtraFuns}
Shorthand for `vmTools.diskImageFuns.<attr> { extraPackages = ... }`.
## `vmTools.diskImages` {#vm-tools-diskImages}
Shorthand for `vmTools.diskImageFuns.<attr> { }`.

View File

@@ -1,441 +0,0 @@
# Testers {#chap-testers}
This chapter describes several testing builders which are available in the `testers` namespace.
## `hasPkgConfigModules` {#tester-hasPkgConfigModules}
<!-- Old anchor name so links still work -->
[]{#tester-hasPkgConfigModule}
Checks whether a package exposes a given list of `pkg-config` modules.
If the `moduleNames` argument is omitted, `hasPkgConfigModules` will use `meta.pkgConfigModules`.
:::{.example #ex-haspkgconfigmodules-defaultvalues}
# Check that `pkg-config` modules are exposed using default values
```nix
{
passthru.tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
};
meta.pkgConfigModules = [ "libfoo" ];
}
```
:::
:::{.example #ex-haspkgconfigmodules-explicitmodules}
# Check that `pkg-config` modules are exposed using explicit module names
```nix
{
passthru.tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
moduleNames = [ "libfoo" ];
};
}
```
:::
## `lycheeLinkCheck` {#tester-lycheeLinkCheck}
Check a packaged static site's links with the [`lychee` package](https://search.nixos.org/packages?show=lychee&type=packages&query=lychee).
You may use Nix to reproducibly build static websites, such as for software documentation.
Some packages will install documentation in their `out` or `doc` outputs, or maybe you have dedicated package where you've made your static site reproducible by running a generator, such as [Hugo](https://gohugo.io/) or [mdBook](https://rust-lang.github.io/mdBook/), in a derivation.
If you have a static site that can be built with Nix, you can use `lycheeLinkCheck` to check that the hyperlinks in your site are correct, and do so as part of your Nix workflow and CI.
:::{.example #ex-lycheelinkcheck}
# Check hyperlinks in the `nix` documentation
```nix
testers.lycheeLinkCheck {
site = nix.doc + "/share/doc/nix/manual";
}
```
:::
### Return value {#tester-lycheeLinkCheck-return}
This tester produces a package that does not produce useful outputs, but only succeeds if the hyperlinks in your site are correct. The build log will list the broken links.
It has two modes:
- Build the returned derivation; its build process will check that internal hyperlinks are correct. This runs in the sandbox, so it will not check external hyperlinks, but it is quick and reliable.
- Invoke the `.online` attribute with [`nix run`](https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-run) ([experimental](https://nixos.org/manual/nix/stable/contributing/experimental-features#xp-feature-nix-command)). This runs outside the sandbox, and checks that both internal and external hyperlinks are correct.
Example:
```shell
nix run nixpkgs#lychee.tests.ok.online
```
### Inputs {#tester-lycheeLinkCheck-inputs}
`site` (path or derivation) {#tester-lycheeLinkCheck-param-site}
: The path to the files to check.
`remap` (attribe set, optional) {#tester-lycheeLinkCheck-param-remap}
: An attribute set where the attribute names are regular expressions.
The values should be strings, derivations, or path values.
In the returned check's default configuration, external URLs are only checked when you run the `.online` attribute.
By adding remappings, you can check offline that URLs to external resources are correct, by providing a stand-in from the file system.
Before checking the existence of a URL, the regular expressions are matched and replaced by their corresponding values.
Example:
```nix
{
"https://nix\\.dev/manual/nix/[a-z0-9.-]*" = "${nix.doc}/share/doc/nix/manual";
"https://nixos\\.org/manual/nix/(un)?stable" = "${emptyDirectory}/placeholder-to-disallow-old-nix-docs-urls";
}
```
Store paths in the attribute values are automatically prefixed with `file://`, because lychee requires this for paths in the file system.
If this is a problem, or if you need to control the order in which replacements are performed, use `extraConfig.remap` instead.
`extraConfig` (attribute set) {#tester-lycheeLinkCheck-param-extraConfig}
: Extra configuration to pass to `lychee` in its [configuration file](https://github.com/lycheeverse/lychee/blob/master/lychee.example.toml).
It is automatically [translated](https://nixos.org/manual/nixos/stable/index.html#sec-settings-nix-representable) to TOML.
Example: `{ "include_verbatim" = true; }`
`lychee` (derivation, optional) {#tester-lycheeLinkCheck-param-lychee}
: The `lychee` package to use.
## `shellcheck` {#tester-shellcheck}
Runs files through `shellcheck`, a static analysis tool for shell scripts.
:::{.example #ex-shellcheck}
# Run `testers.shellcheck`
A single script
```nix
testers.shellcheck {
name = "shellcheck";
src = ./script.sh;
}
```
Multiple files
```nix
let
inherit (lib) fileset;
in
testers.shellcheck {
name = "shellcheck";
src = fileset.toSource {
root = ./.;
fileset = fileset.unions [
./lib.sh
./nixbsd-activate
];
};
}
```
:::
### Inputs {#tester-shellcheck-inputs}
[`src` (path or string)]{#tester-shellcheck-param-src}
: The path to the shell script(s) to check.
This can be a single file or a directory containing shell files.
All files in `src` will be checked, so you may want to provide `fileset`-based source instead of a whole directory.
### Return value {#tester-shellcheck-return}
A derivation that runs `shellcheck` on the given script(s).
The build will fail if `shellcheck` finds any issues.
## `testVersion` {#tester-testVersion}
Checks that the output from running a command contains the specified version string in it as a whole word.
NOTE: In most cases, [`versionCheckHook`](#versioncheckhook) should be preferred, but this function is provided and documented here anyway. The motivation for adding either tests would be:
- Catch dynamic linking errors and such and missing environment variables that should be added by wrapping.
- Probable protection against accidentally building the wrong version, for example when using an "old" hash in a fixed-output derivation.
By default, the command to be run will be inferred from the given `package` attribute:
it will check `meta.mainProgram` first, and fall back to `pname` or `name`.
The default argument to the command is `--version`, and the version to be checked will be inferred from the given `package` attribute as well.
:::{.example #ex-testversion-hello}
# Check a program version using all the default values
This example will run the command `hello --version`, and then check that the version of the `hello` package is in the output of the command.
```nix
{
passthru.tests.version = testers.testVersion { package = hello; };
}
```
:::
:::{.example #ex-testversion-different-commandversion}
# Check the program version using a specified command and expected version string
This example will run the command `leetcode -V`, and then check that `leetcode 0.4.2` is in the output of the command as a whole word (separated by whitespaces).
This means that an output like "leetcode 0.4.21" would fail the tests, and an output like "You're running leetcode 0.4.2" would pass the tests.
A common usage of the `version` attribute is to specify `version = "v${version}"`.
```nix
{
version = "0.4.2";
passthru.tests.version = testers.testVersion {
package = leetcode-cli;
command = "leetcode -V";
version = "leetcode ${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)
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.
:::{.example #ex-testBuildFailure-showingenvironmentchanges}
# Check that a build fails, and verify the changes made during build
```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
''
```
:::
## `testEqualContents` {#tester-testEqualContents}
Check that two paths have the same contents.
:::{.example #ex-testEqualContents-toyexample}
# Check that two paths have the same contents
```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 #ex-testEqualDerivation-hello}
# Check that two packages produce the same derivation
```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 #ex-invalidateFetcherByDrvHash-nix}
# Prevent nix from reusing the output of a fetcher
```nix
{
tests.fetchgit = testers.invalidateFetcherByDrvHash fetchgit {
name = "nix-source";
url = "https://github.com/NixOS/nix";
rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a";
hash = "sha256-7DszvbCNTjpzGRmpIVAWXk20P0/XTrWZ79KSOGLrUWY=";
};
}
```
:::
## `runCommand` {#tester-runCommand}
`runCommand :: { name, script, stdenv ? stdenvNoCC, hash ? "...", ... } -> Derivation`
This is a wrapper around `pkgs.runCommandWith`, which
- produces a fixed-output derivation, enabling the command(s) to access the network ;
- salts the derivation's name based on its inputs, ensuring the command is re-run whenever the inputs changes.
It accepts the following attributes:
- the derivation's `name` ;
- the `script` to be executed ;
- `stdenv`, the environment to use, defaulting to `stdenvNoCC` ;
- the derivation's output `hash`, defaulting to the empty file's.
The derivation's `outputHashMode` is set by default to recursive, so the `script` can output a directory as well.
All other attributes are passed through to [`mkDerivation`](#sec-using-stdenv),
including `nativeBuildInputs` to specify dependencies available to the `script`.
:::{.example #ex-tester-runCommand-nix}
# Run a command with network access
```nix
testers.runCommand {
name = "access-the-internet";
script = ''
curl -o /dev/null https://example.com
touch $out
'';
nativeBuildInputs = with pkgs; [ cacert curl ];
}
```
:::
## `runNixOSTest` {#tester-runNixOSTest}
A helper function that behaves exactly like the NixOS `runTest`, except it also assigns this Nixpkgs package set as the `pkgs` of the test and makes the `nixpkgs.*` options read-only.
If your test is part of the Nixpkgs repository, or if you need a more general entrypoint, see ["Calling a test" in the NixOS manual](https://nixos.org/manual/nixos/stable/index.html#sec-calling-nixos-tests).
:::{.example #ex-runNixOSTest-hello}
# Run a NixOS test using `runNixOSTest`
```nix
pkgs.testers.runNixOSTest ({ lib, ... }: {
name = "hello";
nodes.machine = { pkgs, ... }: {
environment.systemPackages = [ pkgs.hello ];
};
testScript = ''
machine.succeed("hello")
'';
})
```
:::
## `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 {#tester-nixosTest-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 {#tester-nixosTest-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,802 +0,0 @@
# Trivial build helpers {#chap-trivial-builders}
Nixpkgs provides a variety of wrapper functions that help build commonly useful derivations.
Like [`stdenv.mkDerivation`](#sec-using-stdenv), each of these build helpers creates a derivation, but the arguments passed are different (usually simpler) from those required by `stdenv.mkDerivation`.
## `runCommandWith` {#trivial-builder-runCommandWith}
The function `runCommandWith` returns a derivation built using the specified command(s), in a specified environment.
It is the underlying base function of all [`runCommand*` variants].
The general behavior is controlled via a single attribute set passed
as the first argument, and allows specifying `stdenv` freely.
The following [`runCommand*` variants] exist: `runCommand`, `runCommandCC`, and `runCommandLocal`.
[`runCommand*` variants]: #trivial-builder-runCommand
### Type {#trivial-builder-runCommandWith-Type}
```
runCommandWith :: {
name :: name;
stdenv? :: Derivation;
runLocal? :: Bool;
derivationArgs? :: { ... };
} -> String -> Derivation
```
### Inputs {#trivial-builder-runCommandWith-Inputs}
`name` (String)
: The derivation's name, which Nix will append to the store path; see [`mkDerivation`](#sec-using-stdenv).
`runLocal` (Boolean)
: If set to `true` this forces the derivation to be built locally, not using [substitutes] nor remote builds.
This is intended for very cheap commands (<1s execution time) which can be sped up by avoiding the network round-trip(s).
Its effect is to set [`preferLocalBuild = true`][preferLocalBuild] and [`allowSubstitutes = false`][allowSubstitutes].
::: {.note}
This prevents the use of [substituters][substituter], so only set `runLocal` (or use `runCommandLocal`) when 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`.
:::
`stdenv` (Derivation)
: The [standard environment](#chap-stdenv) to use, defaulting to `pkgs.stdenv`
`derivationArgs` (Attribute set)
: Additional arguments for [`mkDerivation`](#sec-using-stdenv).
`buildCommand` (String)
: Shell commands to run in the derivation builder.
::: {.note}
You have to create a file or directory `$out` for Nix to be able to run the builder successfully.
:::
[allowSubstitutes]: https://nixos.org/nix/manual/#adv-attr-allowSubstitutes
[preferLocalBuild]: https://nixos.org/nix/manual/#adv-attr-preferLocalBuild
[substituter]: https://nix.dev/manual/nix/latest/glossary#gloss-substituter
[substitutes]: https://nix.dev/manual/nix/2.23/glossary#gloss-substitute
::: {.example #ex-runcommandwith}
# Invocation of `runCommandWith`
```nix
runCommandWith {
name = "example";
derivationArgs.nativeBuildInputs = [ cowsay ];
} ''
cowsay > $out <<EOMOO
'runCommandWith' is a bit cumbersome,
so we have more ergonomic wrappers.
EOMOO
''
```
:::
## `runCommand` and `runCommandCC` {#trivial-builder-runCommand}
The function `runCommand` returns a derivation built using the specified command(s), in the `stdenvNoCC` environment.
`runCommandCC` is similar but uses the default compiler environment. To minimize dependencies, `runCommandCC`
should only be used when the build command needs a C compiler.
`runCommandLocal` is also similar to `runCommand`, but forces the derivation to be built locally.
See the note on [`runCommandWith`] about `runLocal`.
[`runCommandWith`]: #trivial-builder-runCommandWith
### Type {#trivial-builder-runCommand-Type}
```
runCommand :: String -> AttrSet -> String -> Derivation
runCommandCC :: String -> AttrSet -> String -> Derivation
runCommandLocal :: String -> AttrSet -> String -> Derivation
```
### Input {#trivial-builder-runCommand-Input}
While the type signature(s) differ from [`runCommandWith`], individual arguments with the same name will have the same type and meaning:
`name` (String)
: The derivation's name
`derivationArgs` (Attribute set)
: Additional parameters passed to [`mkDerivation`]
`buildCommand` (String)
: The command(s) run to build the derivation.
::: {.example #ex-runcommand-simple}
# Invocation of `runCommand`
```nix
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
''
```
:::
::: {.note}
`runCommand name derivationArgs buildCommand` is equivalent to
```nix
runCommandWith {
inherit name derivationArgs;
stdenv = stdenvNoCC;
} buildCommand
```
Likewise, `runCommandCC name derivationArgs buildCommand` is equivalent to
```nix
runCommandWith {
inherit name derivationArgs;
} buildCommand
```
:::
## Writing text files {#trivial-builder-text-writing}
Nixpkgs provides the following functions for producing derivations which write text files or executable scripts into the Nix store.
They are useful for creating files from Nix expression, and are all implemented as convenience wrappers around `writeTextFile`.
Each of these functions will cause a derivation to be produced.
When you coerce the result of each of these functions to a string with [string interpolation](https://nixos.org/manual/nix/stable/language/string-interpolation) or [`builtins.toString`](https://nixos.org/manual/nix/stable/language/builtins#builtins-toString), it will evaluate to the [store path](https://nixos.org/manual/nix/stable/store/store-path) of this derivation.
:::: {.note}
Some of these functions will put the resulting files within a directory inside the [derivation output](https://nixos.org/manual/nix/stable/language/derivations#attr-outputs).
If you need to refer to the resulting files somewhere else in a Nix expression, append their path to the derivation's store path.
For example, if the file destination is a directory:
```nix
{
my-file = writeTextFile {
name = "my-file";
text = ''
Contents of File
'';
destination = "/share/my-file";
};
}
```
Remember to append "/share/my-file" to the resulting store path when using it elsewhere:
```nix
writeShellScript "evaluate-my-file.sh" ''
cat ${my-file}/share/my-file
''
```
::::
### `makeDesktopItem` {#trivial-builder-makeDesktopItem}
Write an [XDG desktop file](https://specifications.freedesktop.org/desktop-entry-spec/1.4/) to the Nix store.
This function is usually used to add desktop items to a package through the `copyDesktopItems` hook.
`makeDesktopItem` adheres to version 1.4 of the specification.
#### Inputs {#trivial-builder-makeDesktopItem-inputs}
`makeDesktopItem` takes an attribute set that accepts most values from the [XDG specification](https://specifications.freedesktop.org/desktop-entry-spec/1.4/ar01s06.html).
All recognised keys from the specification are supported with the exception of the "Hidden" field. The keys are converted into camelCase format, but correspond 1:1 to their equivalent in the specification: `genericName`, `noDisplay`, `comment`, `icon`, `onlyShowIn`, `notShowIn`, `dbusActivatable`, `tryExec`, `exec`, `path`, `terminal`, `mimeTypes`, `categories`, `implements`, `keywords`, `startupNotify`, `startupWMClass`, `url`, `prefersNonDefaultGPU`.
The "Version" field is hardcoded to the version `makeDesktopItem` currently adheres to.
The following fields are either required, are of a different type than in the specification, carry specific default values, or are additional fields supported by `makeDesktopItem`:
`name` (String)
: The name of the desktop file in the Nix store.
`type` (String; _optional_)
: Default value: `"Application"`
`desktopName` (String)
: Corresponds to the "Name" field of the specification.
`actions` (List of Attribute set; _optional_)
: A list of attribute sets {name, exec?, icon?}
`extraConfig` (Attribute set; _optional_)
: Additional key/value pairs to be added verbatim to the desktop file. Attributes need to be prefixed with 'X-'.
#### Examples {#trivial-builder-makeDesktopItem-examples}
::: {.example #ex-makeDesktopItem}
# Usage 1 of `makeDesktopItem`
Write a desktop file `/nix/store/<store path>/my-program.desktop` to the Nix store.
```nix
{makeDesktopItem}:
makeDesktopItem {
name = "my-program";
desktopName = "My Program";
genericName = "Video Player";
noDisplay = false;
comment = "Cool video player";
icon = "/path/to/icon";
onlyShowIn = [ "KDE" ];
dbusActivatable = true;
tryExec = "my-program";
exec = "my-program --someflag";
path = "/some/working/path";
terminal = false;
actions.example = {
name = "New Window";
exec = "my-program --new-window";
icon = "/some/icon";
};
mimeTypes = [ "video/mp4" ];
categories = [ "Utility" ];
implements = [ "org.my-program" ];
keywords = [ "Video" "Player" ];
startupNotify = false;
startupWMClass = "MyProgram";
prefersNonDefaultGPU = false;
extraConfig.X-SomeExtension = "somevalue";
}
```
:::
::: {.example #ex2-makeDesktopItem}
# Usage 2 of `makeDesktopItem`
Override the `hello` package to add a desktop item.
```nix
{ copyDesktopItems
, hello
, makeDesktopItem }:
hello.overrideAttrs {
nativeBuildInputs = [ copyDesktopItems ];
desktopItems = [(makeDesktopItem {
name = "hello";
desktopName = "Hello";
exec = "hello";
})];
}
```
:::
### `writeTextFile` {#trivial-builder-writeTextFile}
Write a text file to the Nix store.
`writeTextFile` takes an attribute set with the following possible attributes:
`name` (String)
: Corresponds to the name used in the Nix store path identifier.
`text` (String)
: The contents of the file.
`executable` (Bool, _optional_)
: Make this file have the executable bit set.
Default: `false`
`destination` (String, _optional_)
: A subpath under the derivation's output path into which to put the file.
Subdirectories are created automatically when the derivation is realised.
By default, the store path itself will be a file containing the text contents.
Default: `""`
`checkPhase` (String, _optional_)
: Commands to run after generating the file.
Default: `""`
`meta` (Attribute set, _optional_)
: Additional metadata for the derivation.
Default: `{}`
`allowSubstitutes` (Bool, _optional_)
: Whether to allow substituting from a binary cache.
Passed through to [`allowSubstitutes`](https://nixos.org/manual/nix/stable/language/advanced-attributes#adv-attr-allowSubstitutes) of the underlying call to `builtins.derivation`.
It defaults to `false`, as running the derivation's simple `builder` executable locally is assumed to be faster than network operations.
Set it to true if the `checkPhase` step is expensive.
Default: `false`
`preferLocalBuild` (Bool, _optional_)
: Whether to prefer building locally, even if faster [remote build machines](https://nixos.org/manual/nix/stable/command-ref/conf-file#conf-substituters) are available.
Passed through to [`preferLocalBuild`](https://nixos.org/manual/nix/stable/language/advanced-attributes#adv-attr-preferLocalBuild) of the underlying call to `builtins.derivation`.
It defaults to `true` for the same reason `allowSubstitutes` defaults to `false`.
Default: `true`
`derivationArgs` (Attribute set, _optional_)
: Extra arguments to pass to the underlying call to `stdenv.mkDerivation`.
Default: `{}`
The resulting store path will include some variation of the name, and it will be a file unless `destination` is used, in which case it will be a directory.
::: {.example #ex-writeTextFile}
# Usage 1 of `writeTextFile`
Write `my-file` to `/nix/store/<store path>/some/subpath/my-cool-script`, making it executable.
Also run a check on the resulting file in a `checkPhase`, and supply values for the less-used options.
```nix
writeTextFile {
name = "my-cool-script";
text = ''
#!/bin/sh
echo "This is my cool script!"
'';
executable = true;
destination = "/some/subpath/my-cool-script";
checkPhase = ''
${pkgs.shellcheck}/bin/shellcheck $out/some/subpath/my-cool-script
'';
meta = {
license = pkgs.lib.licenses.cc0;
};
allowSubstitutes = true;
preferLocalBuild = false;
}
```
:::
::: {.example #ex2-writeTextFile}
# Usage 2 of `writeTextFile`
Write the string `Contents of File` to `/nix/store/<store path>`.
See also the [](#trivial-builder-writeText) helper function.
```nix
writeTextFile {
name = "my-file";
text = ''
Contents of File
'';
}
```
:::
::: {.example #ex3-writeTextFile}
# Usage 3 of `writeTextFile`
Write an executable script `my-script` to `/nix/store/<store path>/bin/my-script`.
See also the [](#trivial-builder-writeScriptBin) helper function.
```nix
writeTextFile {
name = "my-script";
text = ''
echo "hi"
'';
executable = true;
destination = "/bin/my-script";
}
```
:::
### `writeText` {#trivial-builder-writeText}
Write a text file to the Nix store
`writeText` takes the following arguments:
a string.
`name` (String)
: The name used in the Nix store path.
`text` (String)
: The contents of the file.
The store path will include the name, and it will be a file.
::: {.example #ex-writeText}
# Usage of `writeText`
Write the string `Contents of File` to `/nix/store/<store path>`:
```nix
writeText "my-file"
''
Contents of File
''
```
:::
This is equivalent to:
```nix
writeTextFile {
name = "my-file";
text = ''
Contents of File
'';
}
```
### `writeTextDir` {#trivial-builder-writeTextDir}
Write a text file within a subdirectory of the Nix store.
`writeTextDir` takes the following arguments:
`path` (String)
: The destination within the Nix store path under which to create the file.
`text` (String)
: The contents of the file.
The store path will be a directory.
::: {.example #ex-writeTextDir}
# Usage of `writeTextDir`
Write the string `Contents of File` to `/nix/store/<store path>/share/my-file`:
```nix
writeTextDir "share/my-file"
''
Contents of File
''
```
:::
This is equivalent to:
```nix
writeTextFile {
name = "my-file";
text = ''
Contents of File
'';
destination = "/share/my-file";
}
```
### `writeScript` {#trivial-builder-writeScript}
Write an executable script file to the Nix store.
`writeScript` takes the following arguments:
`name` (String)
: The name used in the Nix store path.
`text` (String)
: The contents of the file.
The created file is marked as executable.
The store path will include the name, and it will be a file.
::: {.example #ex-writeScript}
# Usage of `writeScript`
Write the string `Contents of File` to `/nix/store/<store path>` and make the file executable.
```nix
writeScript "my-file"
''
Contents of File
''
```
This is equivalent to:
```nix
writeTextFile {
name = "my-file";
text = ''
Contents of File
'';
executable = true;
}
```
:::
### `writeScriptBin` {#trivial-builder-writeScriptBin}
Write a script within a `bin` subdirectory of a directory in the Nix store.
This is for consistency with the convention of software packages placing executables under `bin`.
`writeScriptBin` takes the following arguments:
`name` (String)
: The name used in the Nix store path and within the file created under the store path.
`text` (String)
: The contents of the file.
The created file is marked as executable.
The file's contents will be put into `/nix/store/<store path>/bin/<name>`.
The store path will include the name, and it will be a directory.
::: {.example #ex-writeScriptBin}
# Usage of `writeScriptBin`
```nix
writeScriptBin "my-script"
''
echo "hi"
''
```
:::
This is equivalent to:
```nix
writeTextFile {
name = "my-script";
text = ''
echo "hi"
'';
executable = true;
destination = "/bin/my-script";
}
```
### `writeShellScript` {#trivial-builder-writeShellScript}
Write a Bash script to the store.
`writeShellScript` takes the following arguments:
`name` (String)
: The name used in the Nix store path.
`text` (String)
: The contents of the file.
The created file is marked as executable.
The store path will include the name, and it will be a file.
This function is almost exactly like [](#trivial-builder-writeScript), except that it prepends to the file a [shebang](https://en.wikipedia.org/wiki/Shebang_%28Unix%29) line that points to the version of Bash used in Nixpkgs.
<!-- this cannot be changed in practice, so there is no point pretending it's somehow generic -->
::: {.example #ex-writeShellScript}
# Usage of `writeShellScript`
```nix
writeShellScript "my-script"
''
echo "hi"
''
```
:::
This is equivalent to:
```nix
writeTextFile {
name = "my-script";
text = ''
#! ${pkgs.runtimeShell}
echo "hi"
'';
executable = true;
}
```
### `writeShellScriptBin` {#trivial-builder-writeShellScriptBin}
Write a Bash script to a "bin" subdirectory of a directory in the Nix store.
`writeShellScriptBin` takes the following arguments:
`name` (String)
: The name used in the Nix store path and within the file generated under the store path.
`text` (String)
: The contents of the file.
The file's contents will be put into `/nix/store/<store path>/bin/<name>`.
The store path will include the the name, and it will be a directory.
This function is a combination of [](#trivial-builder-writeShellScript) and [](#trivial-builder-writeScriptBin).
::: {.example #ex-writeShellScriptBin}
# Usage of `writeShellScriptBin`
```nix
writeShellScriptBin "my-script"
''
echo "hi"
''
```
:::
This is equivalent to:
```nix
writeTextFile {
name = "my-script";
text = ''
#! ${pkgs.runtimeShell}
echo "hi"
'';
executable = true;
destination = "/bin/my-script";
}
```
## `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}
`writeShellApplication` is similar to `writeShellScriptBin` and `writeScriptBin` but supports runtime dependencies with `runtimeInputs`.
Writes an executable shell script to `/nix/store/<store path>/bin/<name>` and checks its syntax with [`shellcheck`](https://github.com/koalaman/shellcheck) and the `bash`'s `-n` option.
Some basic Bash options are set by default (`errexit`, `nounset`, and `pipefail`), but can be overridden with `bashOptions`.
Extra arguments may be passed to `stdenv.mkDerivation` by setting `derivationArgs`; note that variables set in this manner will be set when the shell script is _built,_ not when it's run.
Runtime environment variables can be set with the `runtimeEnv` argument.
For example, the following shell application can refer to `curl` directly, rather than needing to write `${curl}/bin/curl`:
```nix
writeShellApplication {
name = "show-nixos-org";
runtimeInputs = [ curl w3m ];
text = ''
curl -s 'https://nixos.org' | w3m -dump -T text/html
'';
}
```
## `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` (or alternatively `pname` and `version`) 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
...
```
## `writeClosure` {#trivial-builder-writeClosure}
Given a list of [store paths](https://nixos.org/manual/nix/stable/glossary#gloss-store-path) (or string-like expressions coercible to store paths), write their collective [closure](https://nixos.org/manual/nix/stable/glossary#gloss-closure) to a text file.
The result is equivalent to the output of `nix-store -q --requisites`.
For example,
```nix
writeClosure [ (writeScriptBin "hi" ''${hello}/bin/hello'') ]
```
produces an output path `/nix/store/<hash>-runtime-deps` containing
```
/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/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>

View File

@@ -1,10 +0,0 @@
# Contributing to Nixpkgs {#part-contributing}
```{=include=} chapters
contributing/quick-start.chapter.md
contributing/coding-conventions.chapter.md
contributing/submitting-changes.chapter.md
contributing/vulnerability-roundup.chapter.md
contributing/reviewing-contributions.chapter.md
contributing/contributing-to-documentation.chapter.md
```

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,63 +0,0 @@
# Coding conventions {#chap-conventions}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
## Syntax {#sec-syntax}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
## Package naming {#sec-package-naming}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
## File naming and organisation {#sec-organisation}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
### Versioning {#sec-versioning}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
## Fetching Sources {#sec-sources}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
## Obtaining source hash {#sec-source-hashes}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
### Obtaining hashes securely {#sec-source-hashes-security}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
## Patches {#sec-patches}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
## Package tests {#sec-package-tests}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
### Writing inline package tests {#ssec-inline-package-tests-writing}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
### Writing larger package tests {#ssec-package-tests-writing}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
### Running package tests {#ssec-package-tests-running}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
### Examples of package tests {#ssec-package-tests-examples}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
### Linking NixOS module tests to a package {#ssec-nixos-tests-linking}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
### Import From Derivation {#ssec-import-from-derivation}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).

View File

@@ -1,11 +0,0 @@
# Contributing to Nixpkgs documentation {#chap-contributing}
This section has been moved to [doc/README.md](https://github.com/NixOS/nixpkgs/blob/master/doc/README.md).
## devmode {#sec-contributing-devmode}
This section has been moved to [doc/README.md](https://github.com/NixOS/nixpkgs/blob/master/doc/README.md).
## Syntax {#sec-contributing-markup}
This section has been moved to [doc/README.md](https://github.com/NixOS/nixpkgs/blob/master/doc/README.md).

View File

@@ -1,3 +0,0 @@
# Quick Start to Adding a Package {#chap-quick-start}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).

View File

@@ -1,35 +0,0 @@
# Reviewing contributions {#chap-reviewing-contributions}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
## Package updates {#reviewing-contributions-package-updates}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
## New packages {#reviewing-contributions-new-packages}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
## Module updates {#reviewing-contributions-module-updates}
This section has been moved to [nixos/README.md](https://github.com/NixOS/nixpkgs/blob/master/nixos/README.md).
## New modules {#reviewing-contributions-new-modules}
This section has been moved to [nixos/README.md](https://github.com/NixOS/nixpkgs/blob/master/nixos/README.md).
## Individual maintainer list {#reviewing-contributions-individual-maintainer-list}
This section has been moved to [maintainers/README.md](https://github.com/NixOS/nixpkgs/blob/master/maintainers/README.md).
## Maintainer teams {#reviewing-contributions-maintainer-teams}
This section has been moved to [maintainers/README.md](https://github.com/NixOS/nixpkgs/blob/master/maintainers/README.md).
## Other submissions {#reviewing-contributions-other-submissions}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
## Merging pull requests {#reviewing-contributions--merging-pull-requests}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).

View File

@@ -1,88 +0,0 @@
# Submitting changes {#chap-submitting-changes}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
## Submitting changes {#submitting-changes-submitting-changes}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
## Submitting security fixes {#submitting-changes-submitting-security-fixes}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
## Deprecating/removing packages {#submitting-changes-deprecating-packages}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
### Steps to remove a package from Nixpkgs {#steps-to-remove-a-package-from-nixpkgs}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
## Pull Request Template {#submitting-changes-pull-request-template}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
### Tested using sandboxing {#submitting-changes-tested-with-sandbox}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
### Built on platform(s) {#submitting-changes-platform-diversity}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
### Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests) {#submitting-changes-nixos-tests}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
### Tested compilation of all pkgs that depend on this change using `nixpkgs-review` {#submitting-changes-tested-compilation}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
### Tested execution of all binary files (usually in `./result/bin/`) {#submitting-changes-tested-execution}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
### Meets Nixpkgs contribution standards {#submitting-changes-contribution-standards}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
## Hotfixing pull requests {#submitting-changes-hotfixing-pull-requests}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
## Commit policy {#submitting-changes-commit-policy}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
### Branches {#submitting-changes-branches}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
#### Master branch {#submitting-changes-master-branch}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
#### Staging branch {#submitting-changes-staging-branch}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
#### Staging-next branch {#submitting-changes-staging-next-branch}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
#### Stable release branches {#submitting-changes-stable-release-branches}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
#### Automatically backporting a Pull Request {#submitting-changes-stable-release-branches-automatic-backports}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
#### Manually backporting changes {#submitting-changes-stable-release-branches-manual-backports}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
#### Acceptable backport criteria {#acceptable-backport-criteria}
This section has been moved to [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).

View File

@@ -1,11 +0,0 @@
# Vulnerability Roundup {#chap-vulnerability-roundup}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
## Issues {#vulnerability-roundup-issues}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).
## Triaging and Fixing {#vulnerability-roundup-triaging-and-fixing}
This section has been moved to [pkgs/README.md](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md).

View File

@@ -1,6 +1,45 @@
{
pkgs ? (import ./.. { }),
nixpkgs ? { },
}:
with import ./.. { };
with lib;
pkgs.nixpkgs-manual.override { inherit nixpkgs; }
stdenv.mkDerivation {
name = "nixpkgs-manual";
sources = sourceFilesBySuffices ./. [".xml"];
buildInputs = [ libxml2 libxslt ];
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'
'';
buildCommand = ''
ln -s $sources/*.xml . # */
echo ${nixpkgsVersion} > .version
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
'';
}

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