Compare commits

..

1473 Commits

Author SHA1 Message Date
Jörg Thalheim
cd63096d6d Merge #101611: firefox-bin: 81.0.2 -> 82.0
(cherry picked from commit 2f31499703)
vcunat tested it briefly on 20.09.
2020-10-27 10:46:12 +01:00
Domen Kožar
1f401964bb Merge pull request #101731 from r-burns/backport-goaccess
[20.09] goaccess: fix build on darwin
2020-10-27 10:40:37 +01:00
R. RyanTM
13d0c311e3 gqrx: 2.13 -> 2.13.2
(cherry picked from commit 3ff7bf9166)
2020-10-27 08:58:28 +01:00
R. RyanTM
dea3973e98 gqrx: 2.12.1 -> 2.13
(cherry picked from commit 90b1417a1d)
2020-10-27 08:58:21 +01:00
Max Hausch
5bae0f41ec Update matio: 1.5.17 -> 1.5.18
(cherry picked from commit ae61f4f1cc)
2020-10-27 08:11:09 +01:00
WORLDofPEACE
d352ff3024 rl-2009: release on a Tuesday
Because hydra took it's good old time

(cherry picked from commit 5a08ab936b)
2020-10-27 03:05:14 -04:00
Jonathan Ringer
9a0b14b097 treewide: mark broken, q-z 2020-10-26 19:14:59 -07:00
Jonathan Ringer
87b50c25ba treewide: mark python packages broken 2020-10-26 19:14:59 -07:00
Jonathan Ringer
9151a596d9 treewide: mark qt and linuxPackages as disabled 2020-10-26 19:14:59 -07:00
Jonathan Ringer
1a1d940f07 treewide: intial mark broken for 20.09 2020-10-26 19:14:59 -07:00
Jonathan Ringer
7a2686d415 release-notes-2009: add contributions section
(cherry picked from commit 51ca426eb5)
2020-10-26 21:50:31 -04:00
Jonathan Ringer
0aecedd132 nixos/docs/rl-2009.xml: normalize highlights, reorder entries 2020-10-26 17:20:01 -07:00
Jonathan Ringer
67000e6cea README.md: update stable release links
(cherry picked from commit 366bebd53a)
2020-10-26 20:14:57 -04:00
Jonathan Ringer
523decb1ee contributing.md: mention rebased or squashed merges
(cherry picked from commit 96e4438959)
2020-10-26 20:14:57 -04:00
WORLDofPEACE
f73904baff Merge pull request #101768 from worldofpeace/cinnamon-backports
[20.09] Cinnamon backports
2020-10-26 16:55:23 -04:00
Kirill Elagin
f8ac00411d pantheon.wingpanel-indicator-bluetooth: 2.1.5 -> 2020-10-01
* Fix device duplicates:
  https://github.com/elementary/wingpanel-indicator-bluetooth/pull/116

(cherry picked from commit a05f7f73a5)
2020-10-26 16:53:12 -04:00
Tim Steinbach
efe4ba95b4 docker-edge: Fix test
(cherry picked from commit c851af868f)
2020-10-26 16:26:13 -04:00
Doron Behar
b7c930a3bd spidermonkey_78: init at 78.1.0
* format

Co-authored-by: WORLDofPEACE <worldofpeace@protonmail.ch>
(cherry picked from commit 1d45990efb)
2020-10-26 13:50:23 -04:00
WORLDofPEACE
1c46527bb6 Revert "nixos/pantheon: install nixos wallpaper"
This reverts commit 5100e4f250.

Fixes https://github.com/NixOS/nixpkgs/issues/100293
Though it's only a workaround for now.
See https://github.com/elementary/switchboard-plug-pantheon-shell/issues/246#issuecomment-716713218
We trigger the broken scenario where we have two subdirectories. Reverting
that commit undoes this.

(cherry picked from commit ace69f768b)
2020-10-26 13:47:27 -04:00
Martin Weinelt
1541698868 Merge pull request #101776 from IvarWithoutBones/backport-myfitnesspal
[20.09] pythonPackages.myfitnesspal: fix build
2020-10-26 17:57:50 +01:00
IvarWithoutBones
f2980aa9b1 pythonPackages.myfitnesspal: fix build
(cherry picked from commit 7cea8833eb)
2020-10-26 17:23:02 +01:00
WORLDofPEACE
53b104bfdb cinnamon.cjs: don't use fork, 4.6.0 -> 2020-10-19
The code in that fork was been integrated into cjs master https://github.com/linuxmint/cjs/pull/84

(cherry picked from commit feac386ca9)
2020-10-26 10:55:29 -04:00
R. RyanTM
7b97ce6f8e cinnamon.cinnamon-session: 4.6.1 -> 4.6.2
(cherry picked from commit 7e6fd55ec6)
2020-10-26 10:36:04 -04:00
R. RyanTM
a53b4f8d3f cinnamon.cinnamon-menus: 4.6.0 -> 4.6.1
(cherry picked from commit 4078818d60)
2020-10-26 10:36:04 -04:00
R. RyanTM
b223f2c8a1 cinnamon.cinnamon-desktop: 4.6.1 -> 4.6.4
(cherry picked from commit 79c6d40e2c)
2020-10-26 10:36:04 -04:00
Maciej Krüger
f5ea85f4c9 cinnamon.cjs: 4.6.0 -> 4.6.0-gjs1.66.0
(cherry picked from commit b77e830d9e)
2020-10-26 10:36:04 -04:00
Maciej Krüger
d5d5a70cac cinnamon.cinnamon-common: add patch for new cjs
(cherry picked from commit 1e80ede78d)
2020-10-26 10:36:04 -04:00
Maciej Krüger
e3ce7e1002 cinnamon.cinnamon-settings-daemon: fix csd-backlight-helper build, fixes #101128
(cherry picked from commit 6e0f7d5bcf)
2020-10-26 10:35:14 -04:00
rnhmjoj
22515f10eb nixos/dnscrypt-wrapper: fix key rotation script
Fix an error in the validation code when the public key is in a
nonstandard location. The check command fails and the key is
incorrectly assumed to be expiring.

(cherry picked from commit 9e04bba0af)
2020-10-26 13:53:09 +01:00
Ryan Burns
edfbd838c4 goaccess: fix build on darwin
(cherry picked from commit d8b38de1e1)
2020-10-25 21:03:04 -07:00
WORLDofPEACE
9f5b72bfd7 Merge pull request #101704 from worldofpeace/backport-101516
[20.09] GNOME polishing from Q.A findings
2020-10-25 19:27:31 -04:00
WORLDofPEACE
157744e954 installation-cd-graphical-gnome: add firefox to favorite-apps
(cherry picked from commit 39d1599767)
2020-10-25 18:42:45 -04:00
WORLDofPEACE
b38395cb4a nixos/gnome3: add gnome-calendar to favorites
(cherry picked from commit 7df6af303e)
2020-10-25 18:42:45 -04:00
WORLDofPEACE
dca668313a nixos/gnome3: add favoriteAppsOverride option
Rather messy and only needed for the installation cd, so it's
an internal option.

(cherry picked from commit 9cee7772e6)
2020-10-25 18:42:45 -04:00
WORLDofPEACE
aa14e0ad2b nixos/flatpak: introduce guiPackages
This adds basically an indirection to systemPackages
to automatically install an interface for flatpak for their respective
environments. e.g if I enable pantheon and flatpak you'll get appcenter,
and on gnome you'll see gnome-software.

https://github.com/NixOS/nixpkgs/issues/99648#issuecomment-706691174
(cherry picked from commit d89deddd5d)
2020-10-25 18:42:45 -04:00
WORLDofPEACE
161ca697f7 nixos/gnome3: don't ship gnome-software
This serves no purpose without flatpak https://github.com/NixOS/nixpkgs/issues/99648#issuecomment-706691174

(cherry picked from commit b1587f9e19)
2020-10-25 18:42:45 -04:00
WORLDofPEACE
6e4e94d969 nixos/gnome3: don't put epiphany in favorite apps
(cherry picked from commit 70dc25abd9)
2020-10-25 18:42:44 -04:00
Justin Humm
7da4553df6 tor-browser-bundle-bin: 9.5.4 -> 10.0.2
(cherry picked from commit 03d85e8aac)
2020-10-25 19:44:34 +01:00
Nikolay Korotkiy
9cba601c95 xournalpp: 1.0.18 -> 1.0.19
(cherry picked from commit d2a28d3b38)
2020-10-25 19:36:40 +01:00
Jon Banafato
48167759c5 keepassxc: 2.6.1 -> 2.6.2
KeePassXC has a new release. [Changelog](https://github.com/keepassxreboot/keepassxc/releases/tag/2.6.2)

(cherry picked from commit bc5cf003aa)
2020-10-25 18:53:49 +01:00
rnhmjoj
f979f5199b arx-libertatis: 2019-07-22 -> 2020-10-20
(cherry picked from commit 883006d6bf)
2020-10-25 15:23:41 +01:00
rnhmjoj
42054073bb arx-libertatis: remove old override
(cherry picked from commit 9ae47f9e64)
2020-10-25 15:23:35 +01:00
Claudio Bley
f5ad6d9f77 fritzing: 0.9.3b -> 0.9.4
Notes:

* fritzing still needs an older version of libgit2
* releases no longer directly correspond to tags in the git repository, they are
  using build numbers instead
* the fritzing-parts repository is no longer versioned at all, the master branch
  contains the latest stable release
* a `parts.db` file needs to be generated from the fritzing-parts files during
  the build

(cherry picked from commit 0f6b8b7964)
Otherwise it wouldn't build.  Master PR: #98381.
2020-10-25 10:28:09 +01:00
Vladimír Čunát
708c2daa39 Merge #100446: python*Packages.apprise: fix dependencies
(cherry picked from commit ed217bcc35)
2020-10-25 08:44:47 +01:00
r-burns
997f7a355a bacula: fix build on darwin (#101526)
(cherry picked from commit 4e88622ac9)
2020-10-25 00:05:39 -04:00
Ryan Burns
a617a2f6d6 blugon: fix build on darwin
(cherry picked from commit c58233a34a)
2020-10-24 23:24:15 -04:00
Benjamin Hipple
9fda0b6e3d Merge pull request #101489 from buckley310/release-20.09
[20.09] brave: 1.12.112 -> 1.15.76
2020-10-24 23:00:07 -04:00
Fabian Möller
f928b39139 nixosTests.ferm: fix network timeout
The subtests could start before the server has configured it's IP
addresses and therefore timeout.

(cherry picked from commit 253954232e)
2020-10-24 15:04:44 -07:00
WORLDofPEACE
77d3b0f5d7 pantheon.wingpanel-indicator-session: 2.2.8 -> 2020-09-13
Lots of bugfixes but mostly https://github.com/elementary/wingpanel-indicator-session/pull/126
which fixes https://github.com/NixOS/nixpkgs/issues/95658

(cherry picked from commit 95c05e6c44)
2020-10-24 13:20:30 -04:00
WORLDofPEACE
b387760d1b pantheon.switchboard-plug-about: patch some bugfixes
Hopefully fix https://github.com/NixOS/nixpkgs/issues/101221.
Though that issue is flaky on the reproducibility.

(cherry picked from commit 372e3a118d)
2020-10-24 12:46:42 -04:00
WORLDofPEACE
7c847c8f9b Merge pull request #101572 from B4dM4n/backport-certmgr-test-fix
[20.09] nixosTests.certmgr: fix systemd test
2020-10-24 12:16:46 -04:00
Fabian Möller
f14e31ead9 nixosTests.certmgr: fix systemd test
Nginx fails to start, because it can't read the certificate file. This
happens because PrivateTmp is set for the service, which makes the
system wide /tmp inaccessible.

(cherry picked from commit e83bd25aec)
2020-10-24 18:03:52 +02:00
WORLDofPEACE
89d75bc743 nixos/lightdm: make lightdm user shell bash
In https://github.com/NixOS/nixpkgs/issues/100119 pantheon's greeter
has g-s-d running which allows brightness controls via pkexec.
This is changed in newer versions of g-s-d (pantheon uses a fork currently),
but whenever brightness is changed with a shell of `shadow` we get
```
Oct 10 23:51:44 kirXps pkexec[18722]: lightdm: Executing command [USER=root] [TTY=unknown] [CWD=/var/lib/lightdm] [COMMAND=/run/current-system/sw/bin/elementary-settings-daemon/gsd-backlight-helper /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight 65587]
```

I'm not sure this should be strictly needed, so we should try to
revert later on when pantheon's g-s-d is updated.

(cherry picked from commit c134f6443a)
2020-10-24 11:59:45 -04:00
WORLDofPEACE
0d21510b4a nixos/tools: add desktopConfiguration option
We now have a GNOME ISO so it would be nice to seed that one
with configuration on how to enable it.

(cherry picked from commit 99d5111246)
2020-10-24 11:36:04 -04:00
WORLDofPEACE
3e594ad891 nixos/tools: add firefox to systemPackages example
This is in the graphical iso's.

(cherry picked from commit 2d6a694842)
2020-10-24 11:36:04 -04:00
WORLDofPEACE
46cecda569 nixos/tools: don't call Plasma KDE
(cherry picked from commit 3b20eb47f1)
2020-10-24 11:36:04 -04:00
WORLDofPEACE
0ae904dc44 nixos/tools: comment about libinput
(cherry picked from commit 9f1a43cefa)
2020-10-24 11:36:04 -04:00
WORLDofPEACE
ce1f2a6d5a nixos/tools: don't mention pinentryFlavor
We don't need to actually set this as it find a good
default automatically. This could confuse the user into thinking they need
to set it themselves.

(cherry picked from commit 12825bc21f)
2020-10-24 11:36:03 -04:00
WORLDofPEACE
87a8e50529 Merge pull request #100225 from worldofpeace/pantheon-update-mutter-20.09
[20.09] [dontmerge] gnome3.mutter334: 3.34.5 -> 3.34.6, update patches
2020-10-24 11:32:06 -04:00
Bjørn Forsman
95d26c9a9f parallel: fix calculation of max line length
parallel >= 20200822 uses /bin/echo to calculate the max allowed line
length. Patch it to a correct path, so that it doesn't (silently) fail
and fall back to a low value of 324.

Before:
  $ parallel --max-line-length-allowed
  324

After:
  $ parallel --max-line-length-allowed
  131063

Fixes: 16ca8725ff ("parallel: 20200722 -> 20200822")
(cherry picked from commit 3d4e133e77)
2020-10-24 10:37:53 +02:00
Vladimír Čunát
daa86b8422 Merge #101380: thunderbird*: 78.3.2 -> 78.4.0
(cherry picked from commit c0a646edd0)
Re-tested both a bit on 20.09.
2020-10-24 09:56:10 +02:00
TredwellGit
7cfeb7ae7a mumble: 1.3.2 -> 1.3.3
https://github.com/mumble-voip/mumble/releases/tag/1.3.3
(cherry picked from commit 1bc72b3494)
2020-10-23 23:30:42 +02:00
Sean Buckley
f469958869 brave: 1.12.112 -> 1.15.76 2020-10-23 14:24:41 -04:00
Stig Palmquist
b58f6e4731 mariadb: 10.4.14 -> 10.4.15
Fixes CVE-2020-15180

(cherry picked from commit 2929f5edb9)
2020-10-23 09:18:24 -07:00
WORLDofPEACE
fadb52fd45 nixos/display-managers: add sessionData.desktops to XDG_DATA_DIRS
Fixes #100108

Alternative to https://github.com/NixOS/nixpkgs/pull/100112 which doesn't break stuff.

(cherry picked from commit 755ba171c7)
2020-10-23 11:47:28 -04:00
Martin Weinelt
70b255f98f Merge pull request #101439 from IvarWithoutBones/backport-pyotp
[20.09] pythonPackages.pyotp: disable on Python27
2020-10-23 13:01:02 +02:00
Vincent Laporte
3179e7f344 cryptoverif: 2.01pl1 → 2.03pl1
(cherry picked from commit 2cb651ad14)
2020-10-23 10:20:50 +02:00
IvarWithoutBones
f041a6d077 pythonPackages.pyotp: disable on Python27
(cherry picked from commit 7a34808502)
2020-10-23 04:26:37 +02:00
Martin Weinelt
1d10a2af91 Merge pull request #101435 from nh2/pitivi-fix-startup-svg-error-20.09
[20.09] pitivi: Fix .svg loading at startup, see #56943 #89691
2020-10-23 03:52:58 +02:00
Niklas Hambüchen
0d84bb40cb pitivi: Fix .svg loading at startup, see #56943 #89691
(cherry picked from commit 4bf0061d28)
2020-10-23 02:52:40 +02:00
Vladimír Čunát
7d29f0696d Merge branch 'staging-20.09' into release-20.09 2020-10-22 21:12:29 +02:00
Michael Weiss
e6dcf54004 Merge pull request #101357 from primeos/signal-desktop-backport
[20.09] signal-desktop: 1.37.1 -> 1.37.2
2020-10-22 18:56:41 +02:00
Anderson Torres
1690a722be Merge pull request #100896 from jbedo/singularity-20.09
[20.09] singularity: 3.6.2 -> 3.6.4
2020-10-22 11:17:29 -03:00
Bas van Dijk
36fa21dc1b Merge pull request #101378 from basvandijk/rocksdb-jemalloc-release-20.09
rocksdb: enable optional jemalloc support
2020-10-22 16:02:00 +02:00
Bas van Dijk
58aea2fed9 rocksdb: enable optional jemalloc support
(cherry picked from commit f2b8a45cde)
2020-10-22 15:44:00 +02:00
Pavol Rusnak
9397611d6d zoom-us: 5.3.465578.0920 -> 5.3.469451.0927
(cherry picked from commit fe35b97d91)
2020-10-22 14:20:55 +02:00
Graham Bennett
ff260202d9 zoom-us: 5.2.458699.0906 -> 5.3.465578.0920
(cherry picked from commit 4d9e297272)
2020-10-22 14:20:47 +02:00
Amit Aryeh Levy
753e422c9c zoom-us: 5.2.454870.0831 -> 5.2.458699.0906
(cherry picked from commit 3d9adca641)
2020-10-22 14:20:41 +02:00
Amit Aryeh Levy
52ac3c8308 zoom-us: 5.2.446620.0816 -> 5.2.454870.0831
thanks to @doronbehar for changes to update script

(cherry picked from commit 548ded0ad5)
2020-10-22 14:20:35 +02:00
Amit Aryeh Levy
5033c2a304 zoom-us: 5.1.422789.0705 -> 5.2.446620.0816
(cherry picked from commit 71ac9f191a)
2020-10-22 14:20:14 +02:00
Maximilian Bosch
3095f9cccf hydra-unstable: 2020-09-02 -> 2020-10-20
(cherry picked from commit 1bb8808e1a)
2020-10-22 13:53:02 +02:00
Michael Weiss
32b381172e signal-desktop: 1.37.1 -> 1.37.2
(cherry picked from commit d8cbc9d331)
2020-10-22 13:38:29 +02:00
R. RyanTM
0864c12440 atlassian-jira: 8.12.0 -> 8.13.0
(cherry picked from commit 590bedc5ec)
2020-10-22 13:15:46 +02:00
Eelco Dolstra
4c29522d13 nixUnstable: 3.0pre20200829_f156513 -> 3.0pre20201020_e0ca98c
(cherry picked from commit f25bb567f6)
2020-10-22 12:31:42 +02:00
Eelco Dolstra
7de510989d kdeconnect: 20.08.1 -> 20.08.2
Fixes an invalid MIME type.

(cherry picked from commit 42bf61811b)
2020-10-22 12:30:09 +02:00
Eelco Dolstra
7b8c86ed16 kdeconnect: Use Qt 5.12
Fixes #99951.

  $ kdeconnect-app
  Cannot mix incompatible Qt library (5.12.7) with this library (5.15.0)
  Aborted (core dumped)

(cherry picked from commit fa08ce096e)
2020-10-22 12:30:04 +02:00
Justin Humm
259b0ce0f7 freetype: patch CVE-2020-15999
We can't backport https://github.com/NixOS/nixpkgs/pull/101199 as it
would break freetype API, but this patch should fix the issue.
2020-10-22 12:21:40 +02:00
WilliButz
b08a6294e7 grafana: 7.2.1 -> 7.2.2
(cherry picked from commit f7bc6be76c)
2020-10-22 12:05:09 +02:00
TredwellGit
35e7dd32bb chromium: 86.0.4240.75 -> 86.0.4240.111
https://chromereleases.googleblog.com/2020/10/stable-channel-update-for-desktop_20.html

CVE-2020-16000 CVE-2020-16001 CVE-2020-16002 CVE-2020-15999 CVE-2020-16003

(cherry picked from commit 7dc2d9f819)
Backport of #101306.
2020-10-22 11:52:09 +02:00
Michael Weiss
415ac1f5fa chromiumDev: M87 -> M88
(cherry picked from commit aee3076ba7)
2020-10-22 11:51:40 +02:00
Michael Weiss
761a9b428c chromiumBeta: M86 -> M87
(cherry picked from commit a667bc7ae1)
2020-10-22 11:51:26 +02:00
Justin Humm
e9600daab3 Revert "freetype: 2.10.2 -> 2.10.4"
This reverts commit a583a60bec.

As it broke at least ghostscript and therefore caused a huge amount of
dependency failures.
2020-10-22 11:34:49 +02:00
Maximilian Bosch
a43ca1cf16 element-desktop: 1.7.9 -> 1.7.10
https://github.com/vector-im/element-desktop/releases/tag/v1.7.10
(cherry picked from commit d976433296)
2020-10-22 11:06:01 +02:00
Maximilian Bosch
d9c8818294 element-web: 1.7.9 -> 1.7.10
https://github.com/vector-im/element-web/releases/tag/v1.7.10
(cherry picked from commit 96f29b90a1)
2020-10-22 11:06:00 +02:00
davidak
64cc6754d5 limesurvey: 3.23.0+200813 -> 3.23.7+201006
(cherry picked from commit 98cbf7b90d)
2020-10-22 01:37:37 +02:00
TredwellGit
a583a60bec freetype: 2.10.2 -> 2.10.4
https://sourceforge.net/projects/freetype/files/freetype2/2.10.4/
(cherry picked from commit 3775af7057)
2020-10-22 00:50:11 +02:00
Raphael Borun Das Gupta
9e627ad00e python3Packages.scrapy-fake-useragent: fix license
which upstream changed to MIT with alecxe/scrapy-fake-useragent@0ea7614

(cherry picked from commit 44465f606e)
2020-10-21 14:38:23 -07:00
Vincent Laporte
e3efb20e98 ocamlPackages.safepass: 2.0 → 3.0
(cherry picked from commit 4b3e97daa4)
2020-10-21 22:53:58 +02:00
Mario Rodas
3870956dc1 python38Packages.scrapy-fake-useragent: fix build
(cherry picked from commit 71e7f74ca6)
2020-10-21 13:14:58 -07:00
symphorien
2d6b0921b6 nixos/sslh: fix usage of the now removed ssl probe (#101087)
and document

(cherry picked from commit 9e8eaea484)
2020-10-21 21:35:25 +02:00
Kim Lindberger
e6f3d79a38 Merge pull request #100564 from talyz/20.09-nomachine-6.13.3
nomachine-client: 6.11.2 -> 6.12.3
2020-10-21 19:02:22 +02:00
Anderson Torres
ddf80b09c3 Merge pull request #101020 from jmpunkt/libreoffice-qt-backport
[20.09] libreoffice-qt: fix compilation
2020-10-21 08:55:12 -03:00
Anderson Torres
7ee58b7b54 Merge pull request #101133 from maxxk/odpic-4.0.2-stable
[20.09] odpic: 3.3.0 -> 4.0.2
2020-10-21 08:54:31 -03:00
Anderson Torres
50531288b8 Merge pull request #101197 from ruuda/mopidy-local-backport
[20.09] mopidy-local: init at 3.1.1
2020-10-21 08:52:40 -03:00
Andreas Rammhold
dc8b9b4f44 Merge pull request #101206 from andir/20.09/firefox-82
[20.09] firefox: 81.0.2 -> 82.0, firefox-esr: 78.3.1 -> 78.4.0esr
2020-10-21 12:04:02 +02:00
Jean-François Roche
418db3d00a python3Package.python-markdown-math: remove support for python 2.7
As stated in its changelog [1], python 2.7 is no longer supported.

[1] https://github.com/mitya57/python-markdown-math/blob/master/changelog#L4

(cherry picked from commit 8781030dfa)
2020-10-20 21:14:28 -07:00
Ruud van Asseldonk
1c0f086c46 mopidy-local-sqlite: remove
This plugin has been merged into the newer "mopidy-local" plugin which I
just added. "mopidy-local-images" and "mopidy-local-sqlite" were added
originally for Mopidy Iris, but Iris now works with mopidy-local, and
does not need the older ones any more.

Backporting because mopidy-local-sqlite is broken in 20.09.

(cherry picked from commit b82ca4d2e1)
2020-10-20 19:56:15 +02:00
Ruud van Asseldonk
6bfec173cc mopidy-local-images: remove
This plugin has been merged into the newer "mopidy-local" plugin which I
just added. "mopidy-local-images" and "mopidy-local-sqlite" were added
originally for Mopidy Iris, but Iris now works with mopidy-local, and
does not need the older plugins any more.

Backporting because mopidy-local-images is broken in 20.09.

(cherry picked from commit 79a823ceae)
2020-10-20 19:55:52 +02:00
Ruud van Asseldonk
cb317147c6 mopidy-local: init at 3.1.1
Mopidy-Local is the successor to Mopidy-Local-SQLite and
Mopidy-Local-Images, which are already packaged. I had to make
gobject-introspection a propagated build input, otherwise
Mopidy-Local can't import Mopidy.

Backporting because mopidy-local-sqlite and mopidy-local-images are
broken in 20.09 without this change and the subsequent removals.

(cherry picked from commit 7565d00a7c)
2020-10-20 19:55:12 +02:00
Andreas Rammhold
c9ffe3a126 firefox: 78.3.1esr -> 78.4.0esr
(cherry picked from commit 910a4bc162a3a2d884999d0ba3e65a454721f10a)
2020-10-20 18:38:16 +02:00
Andreas Rammhold
2fa9c1a237 firefox: 81.0.2 -> 82.0
(cherry picked from commit df959d06c40af7f275741530ad7158faf0a46e1a)
2020-10-20 18:38:15 +02:00
Andreas Rammhold
9bba8841e0 firefox: suport newer NSS version for next firefox bump 2020-10-20 18:38:15 +02:00
Andreas Rammhold
b17924169d nss_latest: init at 3.57 2020-10-20 18:38:15 +02:00
Marc 'risson' Schmitt
7b32c9dd0c nixos/initrd-network: fix /etc/resolv.conf when multiple dns servers from DHCP
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
(cherry picked from commit 9e6bede5ab)
2020-10-20 08:56:53 -07:00
Justin Humm
4cdfa432fc opensc: patch for CVE-2020-26570, CVE-2020-26572
(cherry picked from commit c4237e2be1)
2020-10-20 17:32:44 +02:00
Robert Hensing
13abaaba0c Merge pull request #101123 from r-burns/backport-spooles
[20.09] spooles: fix build on darwin
2020-10-20 16:24:25 +02:00
Robert Hensing
a8e89c1f0b Merge pull request #101122 from r-burns/backport-perl-linux
[20.09] perlPackages.Linux*: disable on non-Linux platforms
2020-10-20 16:22:38 +02:00
Maxim Krivchikov
dafad4082b odpic: 3.3.0 -> 4.0.2
python3Packages.cx-oracle is broken with current odpic version

(cherry picked from commit 5abf2b4f68)
2020-10-20 13:22:07 +03:00
Vladimír Čunát
05334ad785 Merge #100808: thunderbird*: 78.3.2 -> 78.3.3
(cherry picked from commit 176243b059)
Re-tested both of them briefly atop 20.09 as well.
2020-10-20 08:51:14 +02:00
freezeboy
bd409c97e6 brotli: 1.0.7 -> 1.0.9 (PR #100436)
Fixes CVE-2020-8927.

(cherry picked from commit 347696a30b)
2020-10-20 08:06:25 +02:00
Vladimír Čunát
550971ee52 Merge #99158: xorg.libX11: 1.6.8 -> 1.6.12 (security)
(cherry picked from commit b623690daf)
I trust this is regression-free with sufficient probability.
https://lists.x.org/archives/xorg-announce/2020-August/003056.html
https://lists.x.org/archives/xorg-announce/2020-July/003050.html
2020-10-20 08:06:21 +02:00
Jonathan Ringer
e3c3fb2109 kdeFrameworks.plasma-framework: aligned with QtQuick 2.12
Aligned plasma-framework with qt5.12
see https://github.com/NixOS/nixpkgs/issues/98536
2020-10-19 20:40:22 -07:00
Robert Scott
5e199f944c Merge pull request #100926 from bcdarwin/update-elastix-release-20.09
[20.09] elastix: 5.0.0 -> 5.0.1; unbreak OS X build
2020-10-20 00:18:37 +01:00
Jean-François Roche
d6054302c9 pythonPackages.pytest-cram: 0.2.0 -> 0.2.2
(cherry picked from commit d0908c6133)
2020-10-19 14:59:42 -07:00
Konrad Borowski
af136e9d2c kdeApplications.kpat: restore 2020-10-19 14:57:43 -07:00
Milan
892dd85dd2 percona-server: 5.6.43-84.3 -> 5.6.49-89.0 (#97923)
Fixes build with recent versions of glibc.

ZHF: #97479(cherry picked from commit c15bcdd91f)
2020-10-19 13:28:27 -07:00
Aluísio Augusto Silva Gonçalves
2cddaafacf nixos/doc: fix itemization in the 20.09 release notes
(cherry picked from commit cba9843aa0)
2020-10-19 22:27:18 +02:00
Ryan Burns
1fb25d74c9 perlPackages.Linux*: disable on non-Linux platforms
(cherry picked from commit b7e4ac43e4)
2020-10-19 12:39:50 -07:00
Ryan Burns
79d1ba6c04 spooles: fix build on darwin
(cherry picked from commit c04219a9d5)
2020-10-19 12:37:53 -07:00
Christian Kauhaus
722734d1d7 Merge pull request #100159 from helsinki-systems/bp/asteriskupd
[20.09] asterisk: Bump all packages
2020-10-19 20:47:17 +02:00
Maximilian Bosch
0aee4508fb grafana: 7.2.0 -> 7.2.1
https://github.com/grafana/grafana/releases/tag/v7.2.1
(cherry picked from commit fcbf2ee8b5)
2020-10-19 17:52:14 +02:00
Maximilian Bosch
eb29fbb113 epson-escpr2: 1.1.17 -> 1.1.23
(cherry picked from commit b6f990947c)
2020-10-19 17:52:13 +02:00
Mario Rodas
41b11ef47d terraform_0_13: 0.13.2 -> 0.13.4
Changelogs:
* https://github.com/hashicorp/terraform/releases/tag/v0.13.3
* https://github.com/hashicorp/terraform/releases/tag/v0.13.4

(cherry picked from commit eb6e2ac2c0)
(cherry picked from commit 25e2e677d3)
2020-10-19 17:20:54 +02:00
makefu
b555b3a657 python3Packages.pyhaversion: add missing semantic-version
(cherry picked from commit 92bf2d7c03)
2020-10-19 08:14:32 -07:00
Robert Scott
4fc26351e0 pythonPackages.pymc3: fix build
(modified cherry-pick of commit 3c3295a02d)
2020-10-19 08:13:52 -07:00
Robert Scott
9673e47e38 pythonPackages.fastprogress: init at 1.0.0
(cherry picked from commit 9a09285f5a)
2020-10-19 08:13:52 -07:00
Robert Scott
9b01e41d18 python3Packages.Theano: add pythonImportsCheck
(modified cherry pick of commit 4a9dba6c44)

some tricks are required to make this work because #93560 and #97597
didn't make it into this branch, but this example shows what is required
to import theano from within a nix build environment on this branch.
2020-10-19 08:13:52 -07:00
Jean-François Roche
c8a4fd81a9 python3Package.pytest-flask: remove support for python 2.7
As stated in its changelog [1], python 2.7 is no longer supported.

[1] https://github.com/pytest-dev/pytest-flask/blob/master/docs/changelog.rst

(cherry picked from commit e07cf5d4bf)
2020-10-19 08:11:26 -07:00
Martin Weinelt
d7f29f9389 Merge pull request #101035 from jfroche/backport-fix/galario
[20.09] python{2,3}Packages.galario: 1.2.1 -> 1.2.2
2020-10-19 15:33:28 +02:00
Sarah Brofeldt
7dc9cb1d80 Merge pull request #101059 from srhb/k8s-1.19.3-bp
[20.09] kubernetes: 1.19.1 -> 1.19.3
2020-10-19 15:32:53 +02:00
Martin Weinelt
8606c4f489 Merge pull request #101066 from 0x4A6F/release-20.09-routinator
[20.09] routinator: 0.7.1 -> 0.8.0
2020-10-19 15:20:18 +02:00
0x4A6F
35ba06a00f routinator: 0.7.1 -> 0.8.0
Backport of #99999

Upgrade to [v0.8.0](https://github.com/NLnetLabs/routinator/releases/tag/v0.8.0).
Fixes [CVE-2020-17366](https://nvd.nist.gov/vuln/detail/CVE-2020-17366).

(cherry picked from commit b52ed6a1fe)
2020-10-19 12:11:56 +00:00
Bas van Dijk
ba2ec4867d Merge pull request #101055 from basvandijk/rocksdb-optionally-disable-shared-lib-release-20.09
rocksdb: support disabling building shared lib
2020-10-19 13:42:59 +02:00
Johan Thomsen
c157bc779f kubernetes: 1.19.1 -> 1.19.3
(cherry picked from commit c1fa775058)
Backport of #101025
2020-10-19 12:00:45 +02:00
Bas van Dijk
d56b86a205 rocksdb: support disabling building shared lib
This is needed to build `pkgsStatic.rocksdb`.

(cherry picked from commit c6109efca6)
2020-10-19 10:53:45 +02:00
Bas van Dijk
dfe0fba7ab Merge pull request #100988 from basvandijk/netaddr-0.8.0-release-20.09
Cherry-pick netaddr-0.8.0 upgrade on release-20.09
2020-10-19 10:30:38 +02:00
Justin Bedo
7aa0ff7dfd singularity: 3.6.3 -> 3.6.4
Important security release addressing CVE-2020-15229.
2020-10-19 09:12:17 +11:00
Jean-François Roche
5749abe020 python{2,3}Packages.galario: 1.2.1 -> 1.2.2
Upgrading fixes the tests

(cherry picked from commit cbd37d0128)
2020-10-18 23:27:41 +02:00
Maciej Krüger
fc8ed1f7c6 Merge pull request #97667 from mkg20001/unity-back 2020-10-18 21:20:39 +02:00
marius david
6fff8726ea libreoffice-qt: fix compilation
(cherry picked from commit 6e72633c42)
2020-10-18 20:01:42 +02:00
Andrew Childs
8ef805fecd pythonPackages.netaddr: 0.7.19 -> 0.8.0
Updating to >= 0.7.20 fixes tests on macOS Catalina and newer:

        #   inet_pton has to be different on Mac OSX *sigh*
        assert IPAddress('010.000.000.001', flags=INET_PTON) == IPAddress('10.0.0.1')
>       assert int_to_str(0xffff) == '::0.0.255.255'
E       AssertionError: assert '::ffff' == '::0.0.255.255'
E         - ::0.0.255.255
E         + ::ffff

(cherry picked from commit c32441811f)
2020-10-18 17:28:11 +02:00
Gabriel Ebner
43e8ec412f freecad: add missing python module for addon manager
(cherry picked from commit 5bc7030a25)
2020-10-18 16:29:48 +02:00
Robert Scott
ea84d47419 Merge pull request #100907 from r-burns/backport-feh
[20.09] feh: fix build on darwin
2020-10-18 11:45:17 +01:00
Vladimír Čunát
2a38527e70 Merge #100432: python3Packages.perfplot: 0.5.0 -> 0.8.4 2020-10-18 10:50:30 +02:00
Vladimír Čunát
6b4b2056df Merge #93333: julia: Remove version 0.7 and 1.1
(cherry picked from commit 04821fbe46)
2020-10-18 10:31:18 +02:00
Raghav Sood
10e804fb69 can-isotp: 20180629 -> 20200910
(cherry picked from commit 09bc8c8d85)
2020-10-18 10:17:45 +02:00
Vladimír Čunát
3efb70d144 Merge #98415: wordnet: Fix darwin build
(cherry picked from commit 81b1356944)
2020-10-18 10:08:55 +02:00
Ben Darwin
6f22d6d69a elastix: 5.0.0 -> 5.0.1; unbreak OS X build
(cherry picked from commit e20652da9b)
2020-10-18 00:47:21 -04:00
Ryan Burns
d1d151cafd feh: fix build on darwin
Darwin doesn't support inotify, needed for autoreload

(cherry picked from commit 942ad9a49a)
2020-10-17 18:05:40 -07:00
Philippe Hürlimann
33f067f9f3 trigger: apply review suggestions
(cherry picked from commit 85e5e5afa339973d27a7ef31effe862a6102dad5)
2020-10-17 13:47:49 -07:00
Philippe Hürlimann
181e76fa2a trigger: 0.6.6 -> 0.6.6.1
fix linker flag for trigger
added tinyxml-2 as dependency as it's not shipped anymore
improved description

(cherry picked from commit f85e2e1eeb)
2020-10-17 13:47:49 -07:00
Tim Steinbach
ac81495910 linux/hardened/patches/5.9: init at 5.9.1.a 2020-10-17 15:30:31 -04:00
Tim Steinbach
36236709f7 linux: 5.9 -> 5.9.1 2020-10-17 15:30:26 -04:00
Austin Seipp
087d34de49 linux: init 5.9
Signed-off-by: Austin Seipp <aseipp@pobox.com>
(cherry picked from commit 0a614d2fb5)
2020-10-17 15:29:58 -04:00
Tim Steinbach
18a5de8fbd linux/hardened/patches/5.8: 5.8.15.a -> 5.8.16.a 2020-10-17 15:28:50 -04:00
Tim Steinbach
30b2ec6245 linux/hardened/patches/5.4: 5.4.71.a -> 5.4.72.a 2020-10-17 15:28:49 -04:00
Tim Steinbach
fba2a1da90 linux/hardened/patches/4.19: 4.19.151.a -> 4.19.152.a 2020-10-17 15:28:49 -04:00
Tim Steinbach
323bbb6aac linux/hardened/patches/4.14: 4.14.201.a -> 4.14.202.a 2020-10-17 15:28:48 -04:00
Tim Steinbach
f0980bdf37 linux: 5.8.15 -> 5.8.16 2020-10-17 15:28:42 -04:00
Tim Steinbach
8ac2624aa3 linux: 5.4.71 -> 5.4.72 2020-10-17 15:28:42 -04:00
Tim Steinbach
a26cb1ad5e linux: 4.9.239 -> 4.9.240 2020-10-17 15:28:41 -04:00
Tim Steinbach
8594ed8378 linux: 4.4.239 -> 4.4.240 2020-10-17 15:28:41 -04:00
Tim Steinbach
07b023fd2a linux: 4.19.151 -> 4.19.152 2020-10-17 15:28:40 -04:00
Tim Steinbach
f2d048aef1 linux: 4.14.201 -> 4.14.202 2020-10-17 15:28:39 -04:00
Ben Darwin
8a10daf5b9 itk: remove -march=corei7 and -mtune=native flags from cmake build files
- probable cause of build failure on Hydra on branch release-20.09

(cherry picked from commit 83a1ce3d2b)
2020-10-17 11:36:37 -07:00
Jean-François Roche
31db508f19 devpi-server: fix tests
Tests relied on a function that has no order guarantee. A fix was merged
to devpi master [1]. We point the package to this commit which should fix
the failing tests on hydra.

[1] https://github.com/devpi/devpi/pull/821

(cherry picked from commit 3a57ec4744)
2020-10-17 11:20:05 -07:00
Sandro Jäckel
497baa1559 kmon: 1.4.0 -> 1.5.1
Closes #99482

(cherry picked from commit 24123898d2)
2020-10-17 11:14:35 -07:00
Jean-François Roche
c6fa7bbd61 python{2,3}Package.pytest-bdd: upgrade and fix test
(cherry picked from commit 5071556760)
2020-10-17 10:54:12 -07:00
rnhmjoj
a76fe1ec66 monero-gui: fix install path
(cherry picked from commit 101bb7814b)
2020-10-17 15:26:16 +02:00
rnhmjoj
cc21c05182 monero-gui: 0.17.0.1 -> 0.17.1.0
(cherry picked from commit 9bf0008d68)
2020-10-17 15:25:19 +02:00
rnhmjoj
5a71dc4b12 monero: 0.17.0.1 -> 0.17.1.0
(cherry picked from commit bf627ae0e0)
2020-10-17 15:25:17 +02:00
Tim Steinbach
9f8961a14b Merge pull request #100769 from andersk/linux-hardened
linux/hardened/patches: Update

(cherry picked from commit 3b6ba05d3d)
2020-10-16 19:12:42 -04:00
John Ericson
8b56565791 Merge pull request #100676 from obsidiansystems/ipfs_latest-for-stable
[20.09] ipfs: Add 0.7.0 in addition
2020-10-16 18:38:53 -04:00
Michael Weiss
f6047c8b6f Merge pull request #100703 from primeos/signal-desktop-backport
[20.09] signal-desktop: 1.36.3 -> 1.37.1
2020-10-16 23:11:34 +02:00
tnias
84f6c8fcb1 nixos/chromium: update link in docs (#93794)
(cherry picked from commit 0da7593dce)
2020-10-16 23:06:00 +02:00
Maximilian Bosch
fe922da9f1 matrix-synapse: 1.21.0 -> 1.21.2
https://github.com/matrix-org/synapse/releases/tag/v1.21.1 [1]
https://github.com/matrix-org/synapse/releases/tag/v1.21.2

[1] Not really relevant for as since only a bug in the Debian packaging
    was fixed.

(cherry picked from commit 8886cb63e2)
2020-10-16 22:10:23 +02:00
Michael Weiss
da361cccf7 signal-desktop: 1.36.3 -> 1.37.1
(cherry picked from commit db33f99343)
2020-10-16 12:14:44 +02:00
Jonathan Ringer
f1e7afd21d python3Packages.dask: limit processes on tests
(cherry picked from commit 2c5d3313e2)
2020-10-15 23:49:00 -07:00
Vladimír Čunát
6b75df4fa5 Merge #100494: thunderbird-*: 78.3.1 -> 78.3.2 2020-10-16 08:12:23 +02:00
Luflosi
aee9c60624 ipfs: Add 0.7.0 in addition
IPFS has been evolving quite fast lately, so I think tracking new
release in stable NixOS is prudent.

(cherry picked from commit b75e431454)
2020-10-16 00:15:52 -04:00
John Ericson
27949d611a ipfs: prepare to add 0.7 in addition 2020-10-16 00:04:51 -04:00
Luflosi
da221d8e56 ipfs: avoid warning during build when moving directory
Trying to move a directory into itself will result in a warning:
mv: cannot move 'ipfs-src' to a subdirectory of itself, 'ipfs-src/ipfs-src'

This can be prevented by excluding that directory.

(cherry picked from commit d385065f70)
2020-10-15 22:58:20 -04:00
Luflosi
05d9031399 ipfs: remove executable bit from systemd units
IPFS would complain with warnings like
Configuration file /nix/store/...-ipfs-0.6.0/etc/systemd/system/ipfs.service is marked executable. Please remove executable permission bits. Proceeding anyway.

(cherry picked from commit 1a382e983f)
2020-10-15 22:58:20 -04:00
R. RyanTM
848f952b49 python27Packages.cma: 2.7.0 -> 3.0.3
(cherry picked from commit 209ef57162)
2020-10-15 15:08:03 -07:00
ajs124
3b2c5da4fc Merge pull request #100628 from helsinki-systems/bp/100604
[20.09] nixos/icingaweb2: Fix php packages
2020-10-15 21:04:40 +02:00
Janne Heß
b37eda2e73 nixos/icingaweb2: Fix php packages
(cherry picked from commit e2da1219d4)
2020-10-15 20:43:21 +02:00
Anderson Torres
7eda317006 Merge pull request #100551 from austinbutler/toggl-backport
[20.09] python3Packages.toggl-cli: 2.1.0 -> 2.2.1
2020-10-15 05:04:50 -03:00
talyz
43974d4b0d nomachine-client: 6.11.2 -> 6.12.3
(cherry picked from commit e635dccfdd)
2020-10-15 09:44:16 +02:00
Jan Tojnar
9ca3b74564 Revert "nixos/display-managers: install sessionData.desktops"
This reverts commit ee9f8ac6c0.

It created infinite recursion when using LXQt, since lxqt module
uses `config.system.path` in `services.xserver.desktopManager.session`.
`config.system.path` is a `buildEnv` that depends on `environment.systemPackages`.
2020-10-15 07:34:02 +02:00
Austin Butler
768a38a347 python3Packages.toggl-cli: 2.1.0 -> 2.2.1
(cherry picked from commit 059413e201)
(cherry picked from commit 4d4dec3f58ffbb2d9b7d14fa0800dee35db86d6c)
2020-10-14 22:21:11 -07:00
Austin Butler
0cd33a5f70 pythonPackages.inquirer: fix build
(cherry picked from commit 0f7b1d4a72)
(cherry picked from commit 81f306f4a8da193c072079ac51d3a475f8943b90)
2020-10-14 22:20:40 -07:00
Austin Butler
62d0ee1b5f python3Packages.notify-py: init at 0.2.3
(cherry picked from commit dbf902b13d)
(cherry picked from commit 05f0c4151d5c686cbd0a12c4d60be038f56b9c4b)
2020-10-14 22:20:08 -07:00
Austin Butler
a237e9c6a7 pythonPackages.blessed: 1.15.0 -> 1.17.10
(cherry picked from commit a231baa237)
(cherry picked from commit 9326e1a528f49da39fcc3d2dc64b1a577273950b)
2020-10-14 22:19:38 -07:00
Austin Butler
2450fe820b python3Packages.google_cloud_asset: fix build, 2.0.0 -> 2.1.0
(cherry picked from commit 326a5f7132)
2020-10-14 22:17:59 -07:00
Austin Butler
f1bad0a622 python3Packages.libcst: 0.3.12 -> 0.3.13
(cherry picked from commit 80b03e4045)
2020-10-14 22:17:59 -07:00
Austin Butler
8a0b8ca540 python3Packages.google-cloud-org-policy: init at 0.1.2
(cherry picked from commit c9c4730f11)
2020-10-14 22:17:59 -07:00
Austin Butler
b9982c2df9 python3Packages.google-cloud-access-context-manager: init at 0.1.2
(cherry picked from commit 906d77af8b)
2020-10-14 22:17:59 -07:00
Elis Hirwing
b64c4c38bb Merge pull request #100505 from etu/2009-php-pear
[20.09] php: Fix pear path
2020-10-15 07:00:43 +02:00
Benjamin Hipple
cf726f5af9 Merge pull request #100509 from p-h/backport-opencl-build-fix
[20.09] opencl-info: fix build
2020-10-14 19:45:58 -04:00
Benjamin Hipple
3b16d1f82c Merge pull request #100500 from uvNikita/backport/titlecase
[20.09] pythonPackages.titlecase: fix missing dependencies
2020-10-14 19:28:52 -04:00
Jan Tojnar
e168809150 ufraw: mark broken
It does not build so let's mark it broken in order for gimp-with-plugins not to be broken.

Fixes: https://github.com/NixOS/nixpkgs/issues/98103
(cherry picked from commit db64508779)
2020-10-14 23:56:51 +02:00
Frederik Rietdijk
ad0d203452 Merge pull request #100428 from FRidh/qt
20.09: pythonPackages: use latest qt version instead of 5.14
2020-10-14 21:09:56 +02:00
Demyan Rogozhin
4fcfdd1566 opencl-info: fix build
(cherry picked from commit 26d930cb76)
2020-10-14 18:24:11 +02:00
Elis Hirwing
4ad7fb4078 php: Fix pear path
(cherry picked from commit 5a12d2797c)
2020-10-14 17:26:43 +02:00
rnhmjoj
6e46bc48f3 tremc: set license to GPL 3+
(cherry picked from commit c3e6fbe81e)
2020-10-14 17:09:06 +02:00
rnhmjoj
4f06e9dd82 tremc: 0.9.1 -> 0.9.2
(cherry picked from commit a92c678c3f)
2020-10-14 17:08:31 +02:00
Nikita Uvarov
c32feac836 pythonPackages.titlecase: fix missing dependencies 2020-10-14 15:32:13 +02:00
Tim Steinbach
0b6f61d993 linux: Remove 5.7
`nix-shell -p nixpkgs-review --run "nixpkgs-review wip"` does not find any issues
2020-10-14 09:01:24 -04:00
Tim Steinbach
97597594fa linux: 5.8.14 -> 5.8.15 2020-10-14 09:00:51 -04:00
Tim Steinbach
615aacf411 linux: 5.4.70 -> 5.4.71 2020-10-14 09:00:50 -04:00
Tim Steinbach
a6ef01ceb2 linux: 4.9.238 -> 4.9.239 2020-10-14 09:00:49 -04:00
Tim Steinbach
8d30e7ccc8 linux: 4.4.238 -> 4.4.239 2020-10-14 09:00:49 -04:00
Tim Steinbach
b042f240ff linux: 4.19.150 -> 4.19.151 2020-10-14 09:00:48 -04:00
Tim Steinbach
a64432bb20 linux: 4.14.200 -> 4.14.201 2020-10-14 09:00:47 -04:00
Tim Steinbach
79c329ea07 linux/hardened/patches/5.7: remove 2020-10-14 09:00:46 -04:00
Tim Steinbach
6044d870fa linux: Remove 5.7
I forgot to remove a file in 6d174dd5e0
2020-10-14 09:00:45 -04:00
taku0
819fe31294 thunderbird-bin: 78.2.2 -> 78.3.2
(cherry picked from commit 456106fe2a)
2020-10-14 21:52:16 +09:00
taku0
568a9acd6e thunderbird: 78.2.2 -> 78.3.2
(cherry picked from commit e46afe0f89)
2020-10-14 21:52:16 +09:00
Rok Garbas
0f778778c2 Merge pull request #100469 from taku0/flashplayer-32.0.0.445_release-20.09
[20.09] flashplayer: 32.0.0.433 -> 32.0.0.445 (Critical security fix)
2020-10-14 14:11:46 +02:00
Rok Garbas
cfb6541e75 Merge pull request #100457 from taku0/firefox-bin-81.0.2_release-20.09
[20.09] firefox, firefox-bin: 81.0 -> 81.0.2, firefox-esr: 78.3.0esr -> 78.3.1esr
2020-10-14 14:04:06 +02:00
Dominique Martinet
4da5ac1966 confinement: fix assert for serviceConfig.ProtectSystem
serviceConfig.ProtectSystem is usually a string so if set, the assert
itself would error out leaving no useable trace:

  # nixos-rebuild switch --show-trace
  building Nix...
  building the system configuration...
  error: while evaluating the attribute 'config.system.build.toplevel' at /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/activation/top-level.nix:293:5:
  while evaluating 'foldr' at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/lists.nix:52:20, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/activation/top-level.nix:128:12:
  while evaluating 'fold'' at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/lists.nix:55:15, called from /nix/var/nix/profiles/per-user/root/channels/nixos/lib/lists.nix:59:8:
  while evaluating anonymous function at /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/activation/top-level.nix:121:50, called from undefined position:
  while evaluating the attribute 'assertion' at /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/security/systemd-confinement.nix:163:7:
  value is a string while a Boolean was expected

Fix the check to give a sensible assert message instead; the attribute
should either be not set or false bool to pass.

Closes: #99000
(cherry picked from commit f8d78b9f67)
2020-10-14 11:58:30 +02:00
taku0
a9144ad7f8 flashplayer: 32.0.0.433 -> 32.0.0.445
(cherry picked from commit 52dcd5b211)
2020-10-14 12:28:28 +09:00
Jean-François Roche
07e16bcf98 zope_filerepresentation: fix test
(cherry picked from commit 74d875206a)
2020-10-13 17:46:37 -07:00
taku0
9ab4152b11 firefox-esr: 78.3.0esr -> 78.3.1esr
(cherry picked from commit 560cc80818)
2020-10-14 09:26:53 +09:00
taku0
13b25d516c firefox-bin: 81.0 -> 81.0.2
(cherry picked from commit 68a9d42e0d)
2020-10-14 09:26:53 +09:00
taku0
6be1f2aaca firefox: 81.0 -> 81.0.2
(cherry picked from commit 05b955a133)
2020-10-14 09:26:53 +09:00
Maximilian Bosch
1c6330175b nixos/tests/systemd-networkd-vrf: fix eval
The `Metric`-values of routes defined via `networkd` must be integers.

(cherry picked from commit b199005979)
2020-10-13 22:42:53 +02:00
Nikita Uvarov
22d85996a6 caffeine-ng: add missing dependencies, fix bin paths
(cherry picked from commit 35e0d35113)
cc #99667
2020-10-13 16:25:58 -04:00
devhell
dadad9e21f profanity: Introduce OMEMO fix
It looks like the entire 0.9-series has some OMEMO issues where messages
will appear to be sent, but in reality they're not. This patch has been
picked from the upstream repo and addresses the issue so that OMEMO is
back in a usable state.

My thanks to @aszlig for helping and testing this.

(cherry picked from commit 373d1dd03d)
2020-10-13 21:41:59 +02:00
Ashish SHUKLA
16ef60841a libmesode: Add a patch from upstream to fix SSL verification
(cherry picked from commit 45f96c9100)
2020-10-13 21:41:43 +02:00
Robert Scott
3e2c25e5ff python3Packages.perfplot: 0.5.0 -> 0.8.4, fixing build
(cherry picked from commit 50d4da34db)
2020-10-13 19:01:28 +01:00
Robert Scott
fd862db73f python3Packages.rich: init at 8.0.0
(cherry picked from commit 5b66067eb9)
2020-10-13 19:01:28 +01:00
Robert Scott
6910052205 python3Packages.dufte: init at 0.2.9
(cherry picked from commit b5b8839e0a)
2020-10-13 19:01:28 +01:00
Michele Guerini Rocco
a8da27d4b0 Merge pull request #100420 from rnhmjoj/powerdns-backports
[20.09] Powerdns backports
2020-10-13 19:59:04 +02:00
Frederik Rietdijk
5f9c8a1976 kile: use qt 5.12 2020-10-13 19:28:18 +02:00
Frederik Rietdijk
d1e6022b0c kile: 2.9.92 -> 2.9.93
(cherry picked from commit 7489347335)
2020-10-13 19:22:02 +02:00
Doron Behar
3234443199 kdoctools, kapidox: Remove out of top-level scope
They do depend on qt5, and putting them in top level scope could cause
qt5 incompatibilities errors.

(cherry picked from commit 6b6f680831)
2020-10-13 19:05:30 +02:00
Doron Behar
0a7698042d python3.pkgs.sip: 4.19.22 -> 4.19.24
(cherry picked from commit 98e6fdd6a6)
2020-10-13 18:57:38 +02:00
Doron Behar
f382a99b88 kdeconnect: 1.3.5 -> 20.08.1
Update many dependencies. Add a patch that fixes a build. Use
`libsForQt5` instead of `libsForQt514`.

(cherry picked from commit dfcde0341f)
2020-10-13 18:56:37 +02:00
Frederik Rietdijk
f66b4727d1 puddletag: mark broken
(cherry picked from commit c0d5cf4993)
2020-10-13 18:56:28 +02:00
Frederik Rietdijk
0a835dc982 openshot-qt: consustently use qt 5.14
(cherry picked from commit 5d4117bd12)
2020-10-13 18:56:28 +02:00
Frederik Rietdijk
a0b965a456 qutebrowser: use current qt (5.15) again instead of 5.14
For security reasons [1] we upgrade to the latest Qt, despite this
breaking a feature, which is why 5.14 was forced earlier.

[1] https://github.com/NixOS/nixpkgs/pull/99456#issuecomment-703523943

(cherry picked from commit 902c567974)
2020-10-13 18:56:28 +02:00
Frederik Rietdijk
bfb4a3ec5d dupeguru: mark as broken
(cherry picked from commit b9af2d2259)
2020-10-13 18:56:28 +02:00
Frederik Rietdijk
471a56f24b cadence: use qt 5.14 consistently
(cherry picked from commit 64388b5b55)
2020-10-13 18:56:28 +02:00
Frederik Rietdijk
2725251920 qgis: consistently use qt 5.14
(cherry picked from commit 93111343dc)
2020-10-13 18:56:27 +02:00
Frederik Rietdijk
11ac36825b qgis: 3.10.9 -> 3.10.10
(cherry picked from commit 084c4da16a)
2020-10-13 18:56:27 +02:00
Frederik Rietdijk
5bb95efb7f qscintilla: 2.11.2 -> 2.11.5, fix license
(cherry picked from commit ae37cb3610)
2020-10-13 18:56:27 +02:00
Doron Behar
383e605b22 webmacs: Use qt5.15, as pyqt5 in it (#99956)
(cherry picked from commit 179986f378)
2020-10-13 18:56:27 +02:00
Doron Behar
5d0961754a rapid-photo-downloader: Use qt5.15, as pyqt5 in it (#99956)
(cherry picked from commit 1fa76554c8)
2020-10-13 18:56:27 +02:00
Doron Behar
fb7035ef07 qpaeq: Use qt5.15, as pyqt5 in it (#99956)
(cherry picked from commit 38d517f634)
2020-10-13 18:56:27 +02:00
Doron Behar
0ee4d1e4e8 qnotero: Use qt5.15, as pyqt5 in it (#99956)
(cherry picked from commit 0cbd755852)
2020-10-13 18:56:26 +02:00
Doron Behar
560e5f9f76 qarte: Use qt5.15, as pyqt5 in it (#99956)
(cherry picked from commit 8b8febd15f)
2020-10-13 18:56:26 +02:00
Doron Behar
a986ec6161 manuskript: Use qt5.15, as pyqt5 in it (#99956)
(cherry picked from commit a9a2cc99b9)
2020-10-13 18:56:26 +02:00
Doron Behar
fe739f14aa leo-editor: Use qt5.15, as pyqt5 in it (#99956)
(cherry picked from commit dfec61ea28)
2020-10-13 18:56:26 +02:00
Doron Behar
023936e84c kcc: Use qt5.15, as pyqt5 in it (#99956)
(cherry picked from commit 36caf7ea26)
2020-10-13 18:56:12 +02:00
Doron Behar
990a86534b inkcut: Use qt5.15, as pyqt5 in it (#99956)
(cherry picked from commit aa20203d3c)
2020-10-13 18:56:12 +02:00
Doron Behar
39fc72820c gmic-qt-krita: Use qt5.15 - as used by krita (#99956)
(cherry picked from commit 32a362bb61)
2020-10-13 18:56:12 +02:00
Doron Behar
28992861a0 krita: Use qt5.15 - same as pyqt5 in it (#99956)
(cherry picked from commit 2aff7cf32c)
2020-10-13 18:56:12 +02:00
Doron Behar
e5d127dc13 vorta: Fix double wrapping
(cherry picked from commit 883b21debe)
2020-10-13 18:56:11 +02:00
Doron Behar
a44e9a7581 libsForQt5.kpeoplevcard: init at 0.1
(cherry picked from commit 8b16b8cb56)
2020-10-13 18:56:11 +02:00
Doron Behar
4a87f3298b libsForQt5.pulseaudio-qt: init at 1.2.0
(cherry picked from commit faedc6a226)
2020-10-13 18:56:11 +02:00
Doron Behar
7f8c6469ee freecad: Use libsForQt5 and not qt5.14
(#99956).

(cherry picked from commit 244ef6c24b)
2020-10-13 18:56:11 +02:00
Doron Behar
0fcb1f759a git-annex-metadata-gui: fix qt wrapping
Wrap application with wrapQtAppsHook and no double wrapping.

(cherry picked from commit f4b8c8f1df)
2020-10-13 18:56:11 +02:00
Doron Behar
df17b2db6b friture: Use qt5.15 just like pyqt5
Don't double wrap executables.

(cherry picked from commit 62738d495c)
2020-10-13 18:56:11 +02:00
Doron Behar
f508825dce flent: Use qt5.15 just like pyqt5 use in it (#99956)
Bonus: Spare double wrapping.
(cherry picked from commit 3d8267ee88)
2020-10-13 18:56:10 +02:00
Doron Behar
c16a20f2c5 cq-editor: Use qt5.15 completely.
Don't mix qt5.14 and pyqt5 which uses qt5.15 (#99956).

(cherry picked from commit 16c2b3c614)
2020-10-13 18:56:10 +02:00
Doron Behar
b8ba7b4510 electrum-ltc: Use default qt5.15.
The same as used by pyqt5 (#99956).

Also: Fix double wrapping.
(cherry picked from commit bc0113e2c2)
2020-10-13 18:56:10 +02:00
Doron Behar
8bcf0f2b29 dupeguru: Don't override qt5 version.
Since Python's pyqt5 is using qt5.15, it should use the same version as
well.

(cherry picked from commit 56d047f0b0)
2020-10-13 18:56:10 +02:00
Doron Behar
9e49c8416e python3.pkgs.androguard: rewrite
Add an optional withGui flag to turn off gui as most of the time it's
not needed since this is a python library.

Use a GitHub tarball to optionally enable tests, currently disabled by
default, but next release' tests should pass (tested the beta release
tag).

Wrap qt apps properly, without double wrapping, if gui is enabled.

(cherry picked from commit 36b7e89f19)
2020-10-13 18:56:10 +02:00
Doron Behar
61b17d4b49 python3.pkgs.nose-timer: init at 1.0.0
(cherry picked from commit cd5b560541)
2020-10-13 18:56:10 +02:00
Doron Behar
fdb39df357 electron-cash: 4.1.0 -> 4.1.1
Remove included upstream patches. Use qt5.15 (#99956). Spare double
wrapping by using `makeWrapperArgs+=()`.

(cherry picked from commit 2edd4edcb9)
2020-10-13 18:56:10 +02:00
Doron Behar
cdf7e80179 cura, curaLulzbot: Use qt5.15
Since now Python packages use qt5.15, this should too.

(cherry picked from commit f3e5c93d03)
2020-10-13 18:56:09 +02:00
Doron Behar
8d4e21df1a ffado: Use libsForQt5 (not 514)
(cherry picked from commit 5cbf0c1beb)
2020-10-13 18:56:09 +02:00
Doron Behar
f1cf9e1d6f retext: Fix build by using default qt5.15.
Bonus: Set `makeWrapperArgs` instead of calling `wrapQtApp` - to prevent
double wrapping.

(cherry picked from commit 198e025172)
2020-10-13 18:56:09 +02:00
Doron Behar
be17f03858 calibre-py{2,3}: Use libsForQt5 - same is used in python-packages.nix
(cherry picked from commit 2d238fc6b0)
2020-10-13 18:56:09 +02:00
Frederik Rietdijk
bc4fd743f1 carla: 2.1.1 -> 2.2.0 and use the default qt515
(cherry picked from commit 1561163203)
2020-10-13 18:56:09 +02:00
Doron Behar
224f675279 pythonPackages.pyqtwebengine: Apply qt5.14 patch only if needed
Since we now use qt5.15 in all python modules (defaulting to the same
qt5 used in all-packages.nix), That patch is not required, but it will
be needed if qt5.14 is used if pythonInterpreters is overridden, which
is likely to happen like it happend to qutebrowser for instance. See:
2667af4062

(cherry picked from commit 15bfdf8e51)
2020-10-13 18:56:09 +02:00
Frederik Rietdijk
8569001121 qutebrowser: minor fixup regarding use of qt 514
In 3fafb02125
the Qt version used by Qutebrowser was downgraded from 5.15 to 5.14.
Let's be consistent by also setting qt514 and including a comment so one
can trace why it is used.

(Note that downgrade gave it the same Qt version as used by the Python
packages set at the time, so in principle the override could be
removed.)

(cherry picked from commit 4bccbd9592)
2020-10-13 18:56:08 +02:00
Frederik Rietdijk
3a733b6889 pythonPackages: use current qt5 instead of 5.14
(cherry picked from commit edac19f166)
2020-10-13 18:56:08 +02:00
Doron Behar
dba7e99cc3 python3.pkgs.pyqt5: 5.14.2 -> 5.15.1
(cherry picked from commit 0331c39d4e)
2020-10-13 18:56:08 +02:00
Frederik Rietdijk
9be992a000 docs: python39 is available
(cherry picked from commit 748bc99520)
2020-10-13 18:54:32 +02:00
R. RyanTM
9fbace91c4 python37Packages.canonicaljson: 1.3.0 -> 1.4.0
(cherry picked from commit ed9c3d4796)
2020-10-13 16:50:19 +02:00
Maximilian Bosch
c7c4e67667 matrix-synapse: 1.20.1 -> 1.21.0
https://github.com/matrix-org/synapse/releases/tag/v1.21.0
(cherry picked from commit 87414de4ca)
2020-10-13 16:48:45 +02:00
Aaron Andersen
bfe193c61c dnsdist: update compile flags
(cherry picked from commit 872cfe067e)
2020-10-13 16:03:14 +02:00
Martin Weinelt
89abecae69 pdns-recursor: 4.3.4 -> 4.3.5
Fixes: CVE-2020-25829
(cherry picked from commit f931e3e55d)
2020-10-13 15:47:49 +02:00
Aaron Andersen
0f8ec7daa1 powerdns: add nixos test to passthru.tests
(cherry picked from commit 6019fb179b)
2020-10-13 15:47:46 +02:00
Aaron Andersen
811d9e95a6 powerdns: compile with systemd support
(cherry picked from commit 94c98805cb)
2020-10-13 15:47:43 +02:00
Aaron Andersen
a708a30383 powerdns: update configure flags
(cherry picked from commit 7b2b0cc77c)
2020-10-13 15:47:41 +02:00
Aaron Andersen
9d5b974be0 pdns-recursor: add nixos test to passthru.tests
(cherry picked from commit 75dd806963)
2020-10-13 15:47:37 +02:00
Aaron Andersen
8bd02aea34 pdns-recursor: 4.3.3 -> 4.3.4
(cherry picked from commit 84f8419899)
2020-10-13 15:47:23 +02:00
Maximilian Bosch
f7fe019d53 flake.nix: allow inclusion of nixpkgs as path:/.../
When adding `nixpkgs` as flake-input using the `path`-fetcher, you
currently get the following error since neither `lastModifiedDate` nor
`lastModified` are stored in `flake.lock` for paths:

```
error: --- EvalError --------------------------------------------------------------------------- nix-build
at: (48:71) in file: /nix/store/147clg8svaxyj7pl80ra9kmmm72mdg94-source/flake.nix

    47|                   system.nixos.versionSuffix =
    48|                     ".${final.substring 0 8 (self.lastModifiedDate or self.lastModified)}.${self.shortRev or "dirty"}";
      |                                                                       ^
    49|                   system.nixos.revision = final.mkIf (self ? rev) self.rev;

attribute 'lastModified' missing
```

This patch adds the fallback-value `19700101` to `versionSuffix` if none
of `lastModified{,Date}` are set in the lockfile.

(cherry picked from commit 3743c42f23)
2020-10-13 13:53:28 +02:00
Domen Kožar
cf542e991c Merge pull request #99619 from jmpunkt/jwm-gettext-fix-backport
[20.09] jwm: fix gettext requirement
2020-10-13 12:39:28 +02:00
Domen Kožar
298cda452e Merge pull request #99613 from OPNA2608/backport-20.09-update-cheesecutter-unstable-2020-04-03
[20.09] cheesecutter: unstable-2019-12-06 -> unstable-2020-04-03
2020-10-13 12:38:46 +02:00
Domen Kožar
05c0b20507 Merge pull request #98791 from freezeboy/backport-rsibreak
[20.09] rsibreak: 0.12.8 -> 0.12.13
2020-10-13 12:36:17 +02:00
Domen Kožar
1c5341c5ea Merge pull request #100365 from risicle/ris-poetry-1.1.1-r20.09
[20.09] pythonPackages.poetry: 1.0.10 -> 1.1.1
2020-10-13 12:36:02 +02:00
Domen Kožar
b3d764a125 Merge pull request #97736 from RaghavSood/solc/backport
[20.09] solc: 0.6.8 -> 0.7.1
2020-10-13 12:32:10 +02:00
Domen Kožar
a08fa83a05 Merge pull request #100364 from das-g/foundationsdb-backport
[20.09] foundationdb: fix build for current glibc version
2020-10-13 12:31:12 +02:00
Domen Kožar
70eb779b2f Merge pull request #100180 from tricktron/20.09-bazel_1-fix
[20.09] bazel_1: fix build on darwin
2020-10-13 12:30:27 +02:00
zowoq
1609e64a9e podman: 2.1.0 -> 2.1.1
https://github.com/containers/podman/releases/tag/v2.1.1
(cherry picked from commit bbeed7ecf8)
2020-10-13 19:51:28 +10:00
Sascha Grunert
f77d8ded1f podman: 2.0.6 -> 2.1.0
Signed-off-by: Sascha Grunert <sgrunert@suse.com>
(cherry picked from commit 5c27f0dd65)
2020-10-13 19:51:19 +10:00
Vincent Laporte
63470cc8ed tamarin-prover: 1.4.1 → 1.6.0 (#100148)
(cherry picked from commit 33b7529b01)
2020-10-13 10:19:56 +02:00
Maximilian Bosch
a7a13a97c1 Merge pull request #100362 from fadenb/graylog_3.3.8_20.09
[20.09] graylog: 3.3.7 -> 3.3.8
2020-10-13 09:18:02 +02:00
Sarah Brofeldt
cc9ec4dafa Merge pull request #98811 from srhb/bp-ceph-1525
ceph: 15.2.4 -> 15.2.5 (#98664)
2020-10-13 09:07:55 +02:00
Diego Rodriguez
36d7be8ba4 kubernetes-helm: 3.3.1 -> 3.3.4
(cherry picked from commit 53fcb502fe)
2020-10-13 16:29:35 +10:00
Jonathan Ringer
fa1ddb4e98 nixos/doc: add nvidia prime changes
(cherry picked from commit 82e2fdea1e)
2020-10-12 23:05:54 -07:00
Aaron Andersen
1d48c57d69 Merge pull request #100336 from aanderse/pdns-cve-20.09
powerdns: 4.2.1 -> 4.2.3 [20.09 backport]
2020-10-12 20:09:04 -04:00
WORLDofPEACE
2324dcef76 Merge pull request #100224 from worldofpeace/pantheon-stuff-20.09
[20.09] Pantheon stuff
2020-10-12 18:49:42 -04:00
WORLDofPEACE
2728fc6d8f pantheon.wingpanel-applications-menu: add switchboard-with-plugs deps
Fixes https://github.com/NixOS/nixpkgs/issues/100209

(cherry picked from commit b808ad4294)
2020-10-12 18:47:28 -04:00
WORLDofPEACE
9490ea1127 pantheon.elementary-session-settings: cleanup
(cherry picked from commit a48be6a7f2)
2020-10-12 18:47:28 -04:00
WORLDofPEACE
d8d5afc207 pantheon.elementary-settings-daemon: don't patch autostarts
These are now generated to be patched as a part of the elementary-session-settings
build.

(cherry picked from commit a4572eb18e)
2020-10-12 18:47:28 -04:00
WORLDofPEACE
373ba0a506 pantheon.elementary-session-settings: 2020-06-11 -> 2020-07-06
Because gnome-session now uses 'enabled' systemd session we have
to make this use --builtin [0]

[0]: fa15cbd83f

(cherry picked from commit 17d7060f5d)
2020-10-12 18:47:28 -04:00
Austin Butler
31b3749d1f python3Packages.poetry: 1.1.0 -> 1.1.1
(cherry picked from commit aabdb540a4)
2020-10-12 22:44:49 +01:00
Austin Butler
184a1c0bb0 pythonPackages.poetry: 1.0.10 -> 1.1.0
(cherry picked from commit 9243c64e7f)
2020-10-12 22:44:48 +01:00
Austin Butler
16be5d8a18 pythonPackages.poetry-core: 1.0.0a9 -> 1.0.0
(cherry picked from commit 8b7914fc9b)
2020-10-12 22:44:48 +01:00
Tristan Helmich
f80720d9f8 graylog: 3.3.7 -> 3.3.8
Bumps Graylog and integration plugins to version 3.3.8.

(cherry picked from commit 26c66d0f33)
2020-10-12 20:54:40 +00:00
Raphael Borun Das Gupta
f5a433f98d foundationdb: fix build: use glibc's gettid()
to avoid build error due to conflicting declaration:

    flow/Profiler.actor.cpp: In function 'uint64_t gettid()':
    flow/Profiler.actor.cpp:56:17: error: ambiguating new declaration of 'uint64_t gettid()'
      FILE* f;
                     ^
    In file included from /nix/store/4wy9j24psf9ny4di3anjs7yk2fvfb0gq-glibc-2.31-dev/include/unistd.h:1170:0,
                     from ./flow/Platform.h:49,
                     from ./flow/flow.h:40,
                     from flow/Profiler.actor.cpp:39:
    /nix/store/4wy9j24psf9ny4di3anjs7yk2fvfb0gq-glibc-2.31-dev/include/bits/unistd_ext.h:34:16: note: old declaration '__pid_t gettid()'
     extern __pid_t gettid (void) __THROW;
                    ^~~~~~

(cherry picked from commit 450de176cf)
2020-10-12 22:49:49 +02:00
Raphael Borun Das Gupta
1be1a64d5f foundationdb: fix "was not declared" build errors
Since glibc 2.28, `<sys/types.h>` no longer includes
`<sys/sysmacros.h>`, which provides these macros,
so we have to explicitly import the latter, too, to fix the following
build problems:

    flow/Platform.cpp: In function 'void getDiskStatistics(const string&, uint64_t&, uint64_t&, uint64_t&, uint64_t&, uint64_t&, uint64_t&)':
    flow/Platform.cpp:626:56: error: 'gnu_dev_major' was not declared in this scope
       if(majorId == (unsigned int) gnu_dev_major(buf.st_dev) && minorId == (unsigned int) gnu_dev_minor(buf.st_dev)) {
                                                            ^
    flow/Platform.cpp:626:111: error: 'gnu_dev_minor' was not declared in this scope
       if(majorId == (unsigned int) gnu_dev_major(buf.st_dev) && minorId == (unsigned int) gnu_dev_minor(buf.st_dev)) {
                                                                                                                   ^

(cherry picked from commit 4406883af1)
2020-10-12 22:49:49 +02:00
Raphael Borun Das Gupta
80e14acc37 foundationdb: refresh gcc-fixes-patch
by applying it to apple/foundationdb@5.1.7 and running

    git diff > ${path_to_nixpkgs}/pkgs/servers/foundationdb/patches/gcc-fixes.patch

again.

(cherry picked from commit f1e628e7af)
2020-10-12 22:49:49 +02:00
Dmitry Kalinkin
6899c10886 Merge pull request #100083 from veprbl/pr/arrow_cpp_1_0_1_backport
[20.09] arrow-cpp: 1.0.0 -> 1.0.1
2020-10-12 16:21:10 -04:00
Robert Scott
73c72929d1 python3Packages.cocotb: 1.3.1 -> 1.3.2
doesn't seem we can remove Makefile.inc fixup yet

(cherry picked from commit 0b5d5d6828)
2020-10-12 12:08:32 -07:00
Robert Scott
6fa7f94768 python3Packages.cocotb: fix tests
(cherry picked from commit 78413483d3)
2020-10-12 12:08:32 -07:00
Matthew Bauer
6c2310c9af python3Packages.tensorflow: use cudatoolkit 11
(cherry picked from commit 59eecacd2d)
2020-10-12 12:07:35 -07:00
Matthew Bauer
f69610ad72 python3Packages.h5py: 2.9.0 -> 2.10.0
also disable on python 2.7
Co-authored-by: Jon <jonringer@users.noreply.github.com>

(cherry picked from commit 9cd240c14a)
2020-10-12 12:07:35 -07:00
Matthew Bauer
b48aa3ab28 python3Packages.tensorflow-estimator: 2.2.0 -> 2.3.0
(cherry picked from commit 74338f636a)
2020-10-12 12:07:35 -07:00
Arnout Engelen
3d1769aef9 python3Packages.tensorflow_2: 2.1.0 -> 2.3.0
Also:
- patch to remove scipy requirement
- add cuda to RPATH
- don’t include nvidia_x11 (This isn’t needed, we can get it from
/run/opengl-driver being in the RPATH.)

Co-authored-by: Arnout Engelen <arnout@bzzt.net>
Co-authored-by: Daniël de Kok <me@github.danieldk.eu>
(cherry picked from commit 1e19d446bf)
2020-10-12 12:07:35 -07:00
Jonathan Ringer
c827d81d2c python3Packages.tensorly: disable resource intensive tests
(cherry picked from commit 74c997d025)
2020-10-12 12:07:35 -07:00
Jonathan Ringer
38b2c947a3 python3Packages.clifford: fix tests
(cherry picked from commit d65aba684f)
2020-10-12 12:07:35 -07:00
Jonathan Ringer
37f591931c python3Packages.mask-rcnn: use tensorflow_2
(cherry picked from commit b25c404b09)
2020-10-12 12:07:35 -07:00
Jonathan Ringer
63c7dbf425 python3Packages.intake: fix tests
(cherry picked from commit 7c841a294c)
2020-10-12 12:07:35 -07:00
Jonathan Ringer
b01099fdd4 python3Packages.datashader: ignore flakey dask tests
(cherry picked from commit c65c94d08b)
2020-10-12 12:07:35 -07:00
Robert Scott
2ab20c9541 pythonPackages.wxPython: fix build on darwin
(cherry picked from commit 49b4cd546c)
2020-10-12 12:02:58 -07:00
WORLDofPEACE
538aa99275 Merge pull request #99909 from asbachb/20.09/security/netbeans
[20.09] backport:netbeans: 12.0 -> 12.1 - fix CVE-2020-11986
2020-10-12 12:03:46 -04:00
Maximilian Bosch
d7dde1475b element-desktop: 1.7.8 -> 1.7.9
https://github.com/vector-im/element-desktop/releases/tag/v1.7.9
(cherry picked from commit 7db09ea70a)
2020-10-12 16:46:08 +02:00
Maximilian Bosch
85c6c834ef element-web: 1.7.8 -> 1.7.9
https://github.com/vector-im/element-web/releases/tag/v1.7.9
(cherry picked from commit 50394cec59)
2020-10-12 16:46:04 +02:00
Aaron Andersen
b08606bd45 powerdns: 4.2.1 -> 4.2.3
(cherry picked from commit 85fa83bfb1)
2020-10-12 10:41:45 -04:00
rnhmjoj
ca3477ec93 sc-controller: fix broken svg icons
The gdk-pixbuf module exposed by librsvg wasn't detected
due to strictDeps being enabled by default in python packages.

(cherry picked from commit 65cbea4563)
2020-10-12 15:42:56 +02:00
Anderson Torres
ad072be6a7 Merge pull request #100253 from risicle/ris-django-anymail-8.1-r20.09
[20.09] pythonPackages.django-anymail: 6.1.0 -> 8.1, fixing build
2020-10-12 08:45:23 -03:00
Anderson Torres
a893539769 Merge pull request #100277 from ruuda/backport
[20.09] pythonPackages.google_cloud_dataproc: add missing deps
2020-10-12 08:44:41 -03:00
Lucas Savva
2920c04e34 nixos/acme: Fix ocspMustStaple option and add test
Some of the testing setup for OCSP checking was wrong and
has been fixed too.

(cherry picked from commit 1edd91ca09)
2020-10-11 23:45:27 +02:00
Florian Klink
2edc352b22 Merge pull request #100270 from p-h/backport-pystemd-0.8.0
[20.09] pystemd: 0.6.0 -> 0.8.0
2020-10-11 22:59:29 +02:00
Ruud van Asseldonk
e76d5f4efd pythonPackages.google_cloud_dataproc: add missing deps 2020-10-11 22:43:04 +02:00
Ruud van Asseldonk
e08911f186 pythonPackages.proto-plus: init at 1.10.1
I am adding this package because it is a dependency of
google_cloud_dataproc.
2020-10-11 22:43:03 +02:00
Ruud van Asseldonk
7911f87840 pythonPackages.libcst: init at 0.3.12
I am adding this package because it is a dependency of
google_cloud_dataproc.
2020-10-11 22:43:03 +02:00
Philippe Hürlimann
1ffb9a53e8 pystemd: 0.6.0 -> 0.8.0
(cherry picked from commit ea34b5d333)
2020-10-11 21:04:13 +02:00
Florian Klink
1467c169ab golden-cheetah: 3.5-RC2X -> 3.5
(cherry picked from commit 43dc271256)
2020-10-11 19:35:36 +02:00
Florian Klink
87f329dfcc golden-cheetah: fix build with bison 3.7
Currently, GoldenCheetah fails to build with Bison >=3.7 (which we use
for some time).

This applies the commit from https://github.com/GoldenCheetah/GoldenCheetah/pull/3590.

Upstream issue: https://github.com/GoldenCheetah/GoldenCheetah/issues/3586

(cherry picked from commit a73c1259d1)
2020-10-11 19:35:36 +02:00
Tim Steinbach
547c1680c7 rtl88x2bu: 2020-05-19 -> 2020-08-20
(cherry picked from commit 184e3824eb)
2020-10-11 13:19:28 -04:00
Mario Rodas
158b81ebad Merge pull request #100220 from fadenb/graylog_3.3.7_20.09
[20.09] graylog: 3.3.6 -> 3.3.7
2020-10-11 11:54:58 -05:00
Robert Scott
ed877dc131 pythonPackages.django-anymail: 6.1.0 -> 8.1, fixing build
(cherry picked from commit fb20a2f141)
2020-10-11 16:10:51 +01:00
Robert Scott
2966772fce Merge pull request #100237 from risicle/ris-arviz-xarray-r20.09
[20.09] pythonPackages.xarray, pythonPackages.arviz: bump/fix build
2020-10-11 16:08:27 +01:00
Michael Weiss
5cd8cea55c Merge pull request #100166 from jonringer/backport-fqdn
[20.09] doc: Document a workaround for using an FQDN as hostname
2020-10-11 16:02:10 +02:00
Robert Scott
58a97c5612 pythonPackages.arviz: 0.7.0 -> 0.10.0, fixing tests
(cherry picked from commit 6cd6626691)
2020-10-11 14:01:50 +01:00
Frederik Rietdijk
f534bee0e4 python3Packages.xarray: 0.16.0 -> 0.16.1
(cherry picked from commit 4e1f8e4e31)
2020-10-11 14:01:49 +01:00
WORLDofPEACE
be8f3ec15c [20.09] gnome3.mutter334: 3.34.5 -> 3.34.6, update patches
Now managing patches using my git-series.

* drop xwayland-path
  It now uses find_program.path()

* add 0008-build-bump-ABI-to-sysprof-capture-4.patch
  This allows us to build with the sysprof in nixpkgs.

This is a version of the update using a series just for the gnome
stack on 20.09 (21.03 has 3.38 and sysprof-4).
2020-10-11 06:40:50 -04:00
Tristan Helmich
99fcc1baf6 graylog: 3.3.6 -> 3.3.7
Bumps Graylog and integration plugins to version 3.3.7.
(cherry picked from commit 4115906195)
2020-10-11 09:57:46 +00:00
Vladimír Čunát
7a452bccea thunderbird*-68: mark as insecure
(cherry picked from commit 230728216a)
2020-10-11 11:17:05 +02:00
WORLDofPEACE
006e716e79 nixos/gnome3: don't install epiphany default
See https://github.com/NixOS/nixpkgs/issues/98819

(cherry picked from commit 13b192749c)
2020-10-10 23:29:28 -04:00
IvarWithoutBones
5ed3b0798a pythonPackages.pyotp: fix tests
(cherry picked from commit ae23d0bf634d460be9e75702f369a08c1c2e64ba)
2020-10-10 19:44:42 -07:00
Thibault Gagnaux
c8f9a54743 python3Packages.fs: fix tests on darwin
Refactors to pytestCheckHook and removes unused nose dependency.

(cherry picked from commit 66afda2857)
2020-10-10 19:23:34 -07:00
Robert Scott
c9fa6aa160 oq: fix build
this patch is actually included in the already-released oq 1.1.2, but we
can't upgrade to that because it requires crystal 0.35, which we don't
seem to have yet

enable for darwin

(cherry picked from commit 892712e260)
2020-10-10 19:05:29 -07:00
Robert Scott
e8556296e1 sleepyhead: fix build
switch back to qt 5.12

(cherry picked from commit ae31bec12b)
2020-10-10 19:02:43 -07:00
Robert Scott
460db363bb partimage: fix build
the move to glibc 2.30 broke the build of this old package, fortunately
debian have a patch to fix it

(cherry picked from commit 5983c412d7)
2020-10-10 19:01:47 -07:00
Robert Scott
c0528be9cb lockdep: 4.1.2 -> 5.0.21, fix build, enable tests
required a bit of an overhaul to ensure we're compiling against *this*
kernel's headers, not those in glibc which are presumably from some other
random kernel version.

would be nice to update to a more recent version, the build of this tool
reportedly got broken soon after this release.

(cherry picked from commit b3951d18df)
2020-10-10 18:47:59 -07:00
Josef Kemetmüller
37547b5f42 python.pkgs.scikit-optimize: 0.6 -> 0.8.1
This fixes the build of scikit-optimize.

(cherry picked from commit b8f130e2b4)
2020-10-10 18:17:59 -07:00
Robert Scott
c4ea77f594 packetdrill: 1.0 -> unstable-2020-08-22, fix build
also switch to cmake build

(cherry picked from commit 87fad4d39e)
2020-10-10 18:07:31 -07:00
Anderson Torres
8d4a4dd64a Merge pull request #100184 from OPNA2608/update/palemoon-28.14.2@20.09
[20.09] palemoon: 28.13.0 -> 28.14.2
2020-10-10 22:04:31 -03:00
OPNA2608
806e74c6ed palemoon: 28.13.0 -> 28.14.2
(cherry picked from commit 559cf217d6)
2020-10-11 01:27:32 +02:00
Thibault Gagnaux
ea5505ff0e bazel_1: fix build on darwin
Use clang_8 instead of clang_7 on darwin to fix thread_local storage error.

(cherry picked from commit f7aafe6345)
2020-10-10 23:22:07 +02:00
Robert Scott
51aaa3fa1b Merge pull request #100153 from tricktron/20.09-fsspec-fix
[20.09] python3Packages.fsspec: fix tests on linux
2020-10-10 22:01:32 +01:00
Jan Tojnar
dd039151df nixos/doc: Mention fontconfig changes in 20.09 RN
This is a major change but it should not cause any issues.

(cherry picked from commit be2f1cb15c)
2020-10-10 16:47:57 -04:00
Jiehong Ma
c0bab38b5b doc: add the removal of Python 3.5 to the 20.09 release notes (#95765)
(cherry picked from commit 63c7735733)
2020-10-10 16:45:09 -04:00
Robert Scott
9f16269774 Merge pull request #100154 from tricktron/20.09-bazel_0-fix
[20.09] bazel_0: fix build on darwin
2020-10-10 20:24:37 +01:00
Michael Weiss
4cbe1d56c9 doc: Document a workaround for using an FQDN as hostname
Since #76542 this workaround is required to use a FQDN as hostname. See
#94011 and #94022 for the related discussion. Due to some
potential/unresolved issues (legacy software, backward compatibility,
etc.) we're documenting this workaround [0].

[0]: https://github.com/NixOS/nixpkgs/issues/94011#issuecomment-705952300

(cherry picked from commit 4a600af1b1)
2020-10-10 10:49:46 -07:00
Martin Weinelt
fd341a576e Merge pull request #99642 from risicle/ris-olsrd-0.9.8-r20.09
[20.09] olsrd: 0.9.6.1 -> 0.9.8, fix build
2020-10-10 19:41:51 +02:00
Henri Menke
523564d2f8 zfsUnstable: 2.0.0-rc2 -> 2.0.0-rc3
(cherry picked from commit 952b698689)
2020-10-10 10:35:35 -07:00
Gabor Greif
909ef02aa1 llvm_11: 11.0.0rc3 -> 11.0.0rc5
(cherry picked from commit a64eabfe7c)
2020-10-10 18:32:04 +02:00
Gabor Greif
c012a0c447 llvm_11: 11.0.0rc2 -> 11.0.0rc3
(cherry picked from commit 1c0cbf8aea)
2020-10-10 18:32:03 +02:00
Michael Weiss
86c8ef01aa chromium: Disable VA-API by default
This is done to avoid driver specific issues and restores the previous
behaviour. Like before video acceleration can be enabled without having
to rebuild Chromium.

(cherry picked from commit 73b67da169)
2020-10-10 18:27:09 +02:00
TredwellGit
42f30f3ae1 chromium: Fix and enable our ANGLE support
This will additionally install the following files:
libEGL.so libGLESv2.so
libVkICD_mock_icd.so libvk_swiftshader.so libvulkan.so

libEGL.so and libGLESv2.so are required to fix our ANGLE support.
The rest should help with the Vulkan support (currently an experimental
feature that is disabled by default).

(cherry picked from commit 757bbdd948)
2020-10-10 18:26:56 +02:00
Michael Weiss
ef5d0d606e chromium: 85.0.4183.121 -> 86.0.4240.75
https://chromereleases.googleblog.com/2020/10/stable-channel-update-for-desktop.html

This update includes 35 security fixes.

CVEs:
CVE-2020-15967 CVE-2020-15968 CVE-2020-15969 CVE-2020-15970
CVE-2020-15971 CVE-2020-15972 CVE-2020-15990 CVE-2020-15991
CVE-2020-15973 CVE-2020-15974 CVE-2020-15975 CVE-2020-15976
CVE-2020-6557 CVE-2020-15977 CVE-2020-15978 CVE-2020-15979
CVE-2020-15980 CVE-2020-15981 CVE-2020-15982 CVE-2020-15983
CVE-2020-15984 CVE-2020-15985 CVE-2020-15986 CVE-2020-15987
CVE-2020-15992 CVE-2020-15988 CVE-2020-15989

(cherry picked from commit f79703e50c)
2020-10-10 18:26:55 +02:00
Janne Heß
03416d8eae asterisk: Bump all packages
All packages were outdated.
Asterisk 15 is not supported anymore, but there is 17 now.

All versions bumped pjproject to 2.10 which requires overriding the
prefix.

Since Asterisk 17, `make install-headers` seems to be needed.

(cherry picked from commit c5e8dbc4f1)
2020-10-10 17:21:00 +02:00
Thibault Gagnaux
d4ac747a9e bazel_0: fix build on darwin
Fixes `error: thread-local storage is not supported for the current target` by
upgrading clang_7 -> to clang_8 which supports thread-local storage.

(cherry picked from commit fd2c495e97)
2020-10-10 16:33:03 +02:00
Thibault Gagnaux
4188bf40dd python3Packages.fsspec: fix tests on linux
Disables flaky test. Has been resolved in https://github.com/intake/filesystem_spec/issues/432 and
can thus be enabled again starting from version `0.8.4`.

(cherry picked from commit 0a9641b3bb)
2020-10-10 16:25:48 +02:00
gnidorah
ef619aa977 rambox: 0.7.6 -> 0.7.7
(cherry picked from commit 86630c774d)
2020-10-10 11:18:42 +02:00
gnidorah
4533fdcf06 rambox: 0.7.5 -> 0.7.6
(cherry picked from commit cac4080c44)
2020-10-10 11:18:41 +02:00
WORLDofPEACE
bda8628b2b gnomeExtensions.dash-to-dock: 2020-04-20 -> 69
This version supports both 3.36 and 3.38.

(cherry picked from commit 8cee2ba640)
2020-10-09 20:24:51 -04:00
WORLDofPEACE
ee9f8ac6c0 nixos/display-managers: install sessionData.desktops
Fixes https://github.com/NixOS/nixpkgs/issues/100108

(cherry picked from commit 3cd2b59b8c)
2020-10-09 19:31:55 -04:00
Dmitry Kalinkin
1cd0f2d326 pyhton3Packages.ibis-framework: fix tests for pandas 1.1
(cherry picked from commit c9f7ef3f12)
cc #100099
2020-10-09 16:46:28 -04:00
Jiehong Ma
fa1afc07b9 doc: add AMD rocm and vulkan to 20.09 release notes (#95765)
(cherry picked from commit c3e4594eaf)
2020-10-09 16:39:48 -04:00
Dmitry Kalinkin
f11f085725 dmtx-utils: enable on darwin
(cherry picked from commit eca072f96b)
2020-10-09 16:13:50 -04:00
Dmitry Kalinkin
4106f64d85 arrow-cpp: 1.0.0 -> 1.0.1
(cherry picked from commit 6b74dfe376)
2020-10-09 09:16:07 -04:00
Tim Steinbach
60ec8e5c61 linux/hardened/patches/5.8: 5.8.12.a -> 5.8.14.a
(cherry picked from commit 8293f9509e)
2020-10-09 08:42:34 -04:00
Tim Steinbach
753177c404 linux/hardened/patches/5.4: 5.4.68.a -> 5.4.70.a
(cherry picked from commit edf17457ed)
2020-10-09 08:42:34 -04:00
Tim Steinbach
7ab55cf443 linux/hardened/patches/4.19: 4.19.148.a -> 4.19.150.a
(cherry picked from commit 6f4d132a08)
2020-10-09 08:42:33 -04:00
Tim Steinbach
80abe104ca linux/hardened/patches/4.14: 4.14.199.a -> 4.14.200.a
(cherry picked from commit 84c56e0dbb)
2020-10-09 08:42:33 -04:00
Vladimír Čunát
a786d00cda knot-dns: 2.9.6 -> 2.9.7
https://gitlab.nic.cz/knot/knot-dns/-/tags/v2.9.7
NixPkgs master is on 3.0.x already.
2020-10-09 12:02:51 +02:00
Maximilian Bosch
0b8799ecaa yarn2nix-moretea: re-add support for git:// URLs from yarn.lock
@lheckemann already added it to `yarn2nix` a while ago[1], but it seems
as it was forgotten to include when adding `yarn2nix` sources to
`nixpkgs` itself.

Without this patch, you cannot add dependencies to your `package.json`
with URLs like `git://github.com/.../` as building the expression would
fail like this:

```
curl: (1) Protocol "git" not supported or disabled in libcurl
error: cannot download git___github.com_sstur_nodeftpd.git from any mirror
```

Co-authored-by: Linus Heckemann <git@sphalerite.org>

[1] https://github.com/nix-community/yarn2nix/pull/141

(cherry picked from commit 0c49f1896e)
2020-10-09 10:02:06 +02:00
Robert Scott
99fa7616c0 pythonPackages.sievelib: fix build by adding patch
this fixes installation with newer pip versions

also give a name to an existing patch

(cherry picked from commit 4d111fdf39)
2020-10-08 19:41:02 -07:00
Mario Rodas
6f9084711d Merge pull request #99942 from toonn/release-20.09
wire-desktop backport to release-20.09
2020-10-08 18:19:30 -05:00
Maximilian Bosch
555375859b nixos/nextcloud: --database-pass must not be empty for pgsql/mysql
This is a breaking change from `nextcloud20`. However, the affected test
is still passing with an unused database password and socket
authentication.

(cherry picked from commit 9cbe30e129)
2020-10-08 23:12:03 +02:00
Maximilian Bosch
452603b385 nixos/nextcloud: update nginx config for nextcloud20
See #97666 for further context.

(cherry picked from commit 227ba90b28)
2020-10-08 23:12:03 +02:00
Maximilian Bosch
8597315fae nextcloud20: init
(cherry picked from commit 71098fba81)
2020-10-08 23:12:03 +02:00
Maximilian Bosch
e30e8842ce nixos/nextcloud: fix nginx config to allow copy/move-operations again
(cherry picked from commit 609c4f497d)
2020-10-08 23:12:03 +02:00
Robert Scott
8690f062b3 Merge pull request #99966 from wkral/backport-gym-fix
[20.09] python3Packages.gym: fix dependency constraints
2020-10-08 21:10:45 +01:00
Tim Steinbach
a6dca580a2 jenkins: 2.249.1 -> 2.249.2
(cherry picked from commit 553ec1bf72)
2020-10-08 14:51:39 -04:00
Robert Scott
b4b1835559 Merge pull request #99923 from austinbutler/alerta-server-backport
[20.09] python3Packages.alerta-server: fix build
2020-10-08 19:38:27 +01:00
Robert Scott
ac49519150 Merge pull request #99891 from risicle/ris-matplotlib-darwin-fix-r20.09
[20.09] matplotlib: Disable LTO on darwin.
2020-10-08 19:30:39 +01:00
Austin Seipp
d0077a6c72 Merge pull request #98577 from NieDzejkob/chez-backport
[20.09] chez-modules: Fix path to csv-site.
2020-10-08 12:36:45 -05:00
rnhmjoj
305ff0c412 monero-gui: fix aarch64 build
(cherry picked from commit fa2f50f313e5df635587cbb23a3b7e2846731166)
2020-10-08 18:15:23 +02:00
rnhmjoj
d8475fa0e7 monero: apply patch to fix monero-gui build
This is a more appropriate solution to fix a
build error in monero-gui.

(cherry picked from commit b5ca332b1d)
2020-10-08 18:15:23 +02:00
rnhmjoj
cf7ff15f73 monero-gui: use the cmake build system
(cherry picked from commit 059292cc64)
2020-10-08 18:15:23 +02:00
rnhmjoj
4d03da7ee7 monero: export patched sources
This is needed to build monero-gui without duplicating code.

(cherry picked from commit 59fe3e87c3)
2020-10-08 18:15:23 +02:00
rnhmjoj
f6cc6a7897 monero: force use of system libraries
(cherry picked from commit cc90474581)
2020-10-08 18:15:23 +02:00
Pavol Rusnak
d30b5ef852 monero-gui: 0.16.0.3 -> 0.17.0.1
(cherry picked from commit e40ede1821)
2020-10-08 18:15:22 +02:00
Pavol Rusnak
11b824181a monero: 0.16.0.3 -> 0.17.0.1
(cherry picked from commit d6921aa4bf)
2020-10-08 18:15:22 +02:00
Claudio Bley
31cf6ac8d8 notmuch: 0.30.1c80020 -> 0.31
(cherry picked from commit f53bc76ee5)
2020-10-08 18:12:23 +02:00
ajs124
ed00b86684 Merge pull request #100018 from helsinki-systems/bp/sogo501
[20.09] sogo: 5.0.0 -> 5.0.1
2020-10-08 17:03:14 +02:00
Lassulus
e8ca6081f5 Merge pull request #99904 from Sohalt/electricsheep-20.09
[20.09] electricsheep: 2.7b33-2017-10-20 -> 3.0.2-2019-10-05, fix build
2020-10-08 13:48:50 +02:00
Janne Heß
438a182a1d sogo: 5.0.0 -> 5.0.1
(cherry picked from commit 3f69715b63)
2020-10-08 10:37:09 +02:00
Vladimír Čunát
1c6e95a1e5 Merge branch 'staging-20.09' into release-20.09
It's mostly rebuilt, especially the two x86 platforms.
https://hydra.nixos.org/eval/1617854
2020-10-08 10:20:34 +02:00
Jonathan Ringer
bcba98c529 python3Packages.sphinx-argparse: reintroduce
was accidently removed in 6b23dc8f96

(cherry picked from commit 7621902c12)
2020-10-07 17:40:38 -07:00
Martin Weinelt
1e77c4225f Merge pull request #99484 from mweinelt/20.09/lilypond
[20.09] lilypond: add patch to restrict embedded-{ps,svg} when -dsafe is used
2020-10-07 21:21:24 +02:00
William Kral
5e3527e42d python3Packages.gym: fix dependency constraints
(cherry picked from commit c097e85a2f)
2020-10-07 10:29:14 -07:00
Tim Steinbach
97d9ec2b12 linux: 5.8.13 -> 5.8.14 2020-10-07 08:24:06 -04:00
Tim Steinbach
41f3b9e95d linux: 5.4.69 -> 5.4.70 2020-10-07 08:24:06 -04:00
Tim Steinbach
880571eabc linux: 4.19.149 -> 4.19.150 2020-10-07 08:24:05 -04:00
Shea Levy
4fe38f7b11 zulip: Don't use buildFHSUserEnvBubblewrap.
For as-yet unknown reasons, this causes zulip to launch with a grey screen.

See https://github.com/NixOS/nixpkgs/pull/97264#issuecomment-704454645

(cherry picked from commit c800d20b67)
2020-10-07 07:58:55 -04:00
David Anderson
7bd0f6ffdf jasper: remove, abandoned upstream.
Jasper has been marked insecure for a while, and upstream has not
been responsive to CVEs for over a year.

Fixes #55388.

Signed-off-by: David Anderson <dave@natulte.net>
(cherry picked from commit 3a38cef8f9)
2020-10-07 13:12:42 +02:00
Dan Callahan
f57d914ae8 digikam: fix broken icons
Ensures that the Breeze icon theme is available to digikam.
Without this, digikam breaks in strange ways.

Fixes #65322
Fixes #78225

(cherry picked from commit afec4b31bd)
2020-10-07 13:12:17 +02:00
Andreas Rammhold
8c2b1d4a06 Merge pull request #99692 from worldofpeace/pipewire-firefox-20.09
[20.09] firefox: enable pipewire+webrtc for wayland users
2020-10-07 12:51:55 +02:00
toonn
7a61b768d1 wire-desktop: mac 3.18.3728 -> 3.20.3912
(cherry picked from commit 4448bd4e10)
2020-10-07 12:36:23 +02:00
toonn
02743360a7 wire-desktop: linux 3.18.2925 -> 3.20.2934
(cherry picked from commit ad9d115682)
2020-10-07 12:36:06 +02:00
Austin Butler
2983b1c1be python3Packages.alerta-server: fix build
(cherry picked from commit 9050ae07cf)
2020-10-06 21:25:06 -07:00
Andreas Rammhold
de4dc6b447 nixos/security/acme: order after nss-lookup.target
This should hopefully solve races with DNS servers (such as unbound)
during the activation of a new generation. Previously unbound could
still be unavailable and thus the acme script would fail.

(cherry picked from commit 2c0ee52d91)
2020-10-06 17:16:11 -07:00
Benjamin Asbach
56c840de2c netbeans: 12.0 -> 12.1
This fixes #99814

(cherry picked from commit 69027b0c95)
2020-10-07 00:56:13 +02:00
sohalt
afa708a951 electricsheep: 2.7b33-2017-10-20 -> 3.0.2-2019-10-05, fix build
(cherry picked from commit 3718d52f26)
2020-10-06 23:08:45 +02:00
WORLDofPEACE
e350a3327e Merge pull request #99897 from andir/20.09/use-configured-nix-for-installer
[20.09] nixos/installer: drop the extra nixUnstable in nixos-install
2020-10-06 16:59:32 -04:00
Vincent Laporte
d5b88037ae ocamlPackages.earley: 2.0.0 → 3.0.0
(cherry picked from commit e7ebd6be80)
2020-10-06 22:37:20 +02:00
Andreas Rammhold
0f6fffa4d0 nixos/installer: drop the extra nixUnstable in nixos-install
The only nix version available in the installer should be the version
configure in the module system. If someone needs `nixUnstable` in their
`nixos-install` they should probably set the module option and not just
add it to the closure.

(cherry picked from commit 544059b01f)
2020-10-06 22:31:17 +02:00
WORLDofPEACE
001334b47c nixos/gnome3: add realtime-scheduling option
This adds an option services.gnome3.experimental-features.realtime-scheduling
See this comment for the motivation [0].
Having gnome-shell launched with capability seemed harmless at first,
but it caused these issues [1] [2] for people who aren't even using
the feature. It makes more sense to make this optional.

[0]: https://github.com/NixOS/nixpkgs/issues/90201#issuecomment-683304279
[1]: https://github.com/NixOS/nixpkgs/issues/90201
[2]: https://github.com/NixOS/nixpkgs/issues/86730

(cherry picked from commit 656cd70ea8)
2020-10-06 16:30:45 -04:00
WORLDofPEACE
ad10d15421 nixos/plasma5: add spectacle default
Fixes https://github.com/NixOS/nixpkgs/issues/99680.

In the future I think it would be nice if plasma5 could assume
an approach for an interface we have in the gnome3 module [0].
Notably being able to exclude packages with an option from
the default environment and having a default environment that
is useful to the average user. See [1], currently plasma5 defaults
are very "hard core hacker" with the most bare bones setup.

[0]: https://github.com/NixOS/nixpkgs/issues/67310
[1]: https://github.com/NixOS/nixpkgs/issues/67310#issuecomment-524649585

(cherry picked from commit 55bc3e44b7)
2020-10-06 16:28:13 -04:00
Jonathan Ringer
695d9d3c8a python3Packages.localzone: 0.9.6 -> 0.9.7
(cherry picked from commit 0093e4e6a9)
2020-10-06 12:04:42 -07:00
Jonathan Ringer
a5a96e0cfa ape: don't inherit lexicon from pkgs scope
(cherry picked from commit 90e5082576)
2020-10-06 12:04:42 -07:00
Shea Levy
a4e6bf389d matplotlib: Disable LTO on darwin.
Needs #19312 or equivalent to work.

(cherry picked from commit 31579c6b0a)
2020-10-06 20:04:39 +01:00
R. RyanTM
b60f5e90cf python27Packages.identify: 1.4.29 -> 1.5.5
(cherry picked from commit def388af0a)
Signed-off-by: Domen Kožar <domen@dev.si>
2020-10-06 19:38:21 +02:00
Domen Kožar
16325b3d66 nix-linter: 2019-04-26 -> 2020-09-25
(cherry picked from commit a05f231884)
Signed-off-by: Domen Kožar <domen@dev.si>
2020-10-06 19:34:13 +02:00
Vladimír Čunát
9af5e0568d Merge branch 'release-20.09' into staging-20.09
A few thousand rebuild's happened; estimate:
    929 x86_64-darwin
   2924 x86_64-linux
2020-10-06 15:14:33 +02:00
Shea Levy
0caacb6242 zulip: 5.4.0 -> 5.4.3
(cherry picked from commit 34c015f1ec)
2020-10-06 09:00:12 -04:00
WORLDofPEACE
7c5f35fc48 nixos/gnome3: fixup unconditional code
(cherry picked from commit afdeb406b0)
2020-10-06 07:38:29 -04:00
Andreas Rammhold
c9c0b90b62 firefox: ensure pipewire is only enabled with wayland & webrtc
This ensures that we aren't applying any of the experiemental pipewire
patches when the dependencies aren't enabled. As of now pipewire only
works with wayland and webrtc. If either of them are not activated we
can't build with pipewireSupport and we should not.
2020-10-06 12:10:08 +02:00
Raphael Borun Das Gupta
0d345f5fd6 python39: 3.9.0rc2 -> 3.9.0
(cherry picked from commit 3696bc0e89)
2020-10-06 08:33:10 +02:00
Matt Votava
3c4e4be514 nixos/gnome3: don't enable modules for excludePackages
(cherry picked from commit bc970e94e7)
2020-10-06 01:19:36 -04:00
Cole Mickens
57fb6514b8 firefox: enable pipewire+webrtc for wayland users
(cherry picked from commit 31e54cdde3)
2020-10-06 01:12:56 -04:00
WORLDofPEACE
ff3215f7f1 Merge pull request #99670 from santicalcagno/backport
[20.09] fbpanel: fix build by adding gdk-pixbuf-xlib
2020-10-06 01:07:03 -04:00
WORLDofPEACE
8545b4abdc Merge pull request #99690 from cole-h/nixos-install-add-store-20.09
[20.09] nixos-install: use mountpoint as store
2020-10-06 01:05:16 -04:00
Cole Helbling
4798cb54a8 nixos-install: use mountpoint as store
Otherwise, it's possible building a flake may cause the live CD to run
out of memory.

(cherry picked from commit 3bbe4c322a)
2020-10-05 21:50:12 -07:00
Mario Rodas
7badbf18c4 chipsec: disable on non-Linux
(cherry picked from commit f3031298b2)
2020-10-05 20:20:24 -05:00
Mario Rodas
0262cae27f chipsec: disable on non-Linux
(cherry picked from commit 2cdc05763f)
2020-10-05 20:20:24 -05:00
Mario Rodas
a2d537a779 Merge pull request #99643 from risicle/ris-terraform-compliance-fix-r20.09
[20.09] terraform-compliance: fix build
2020-10-05 20:05:49 -05:00
Santiago Calcagno
9e77444b6e fbpanel: fix build by adding gdk-pixbuf-xlib
(cherry picked from commit 104017def0)
2020-10-05 19:13:38 -03:00
Robert Scott
adf11e9085 pythonPackages.islpy: fix build
also convert to pytestCheckHook

(cherry picked from commit be1281bc0b)
2020-10-05 14:54:49 -07:00
Léo Gaspard
b70fdcd506 matrix-synapse module: fix documentation and add release notes (#99564)
(cherry picked from commit e0c48efc17)
2020-10-05 23:36:29 +02:00
WORLDofPEACE
9b36117af0 Merge pull request #99657 from cole-h/fix-nix-shell-and-borg-20.09
[20.09] top-level: ignore unexpected args
2020-10-05 17:01:25 -04:00
Cole Helbling
c2c7a5cecd top-level: ignore unexpected args
This fixes both `nix-shell` failing to eval with `nixUnstable`, as well
as ofborg's failure to eval on aarch64 due to passing an "unexpected
arg" (1112e3a8c8/ofborg/src/nix.rs (L334-L340)).

(cherry picked from commit 11eddd61bc)
2020-10-05 13:23:51 -07:00
Cole Helbling
9f76b6edd1 Revert "top-level: fix nix-shell eval w/nixUnstable"
This reverts commit fa6064ad86.

(cherry picked from commit d91cab87b1)
2020-10-05 13:23:51 -07:00
Tim Steinbach
e8228cb0f0 ena: 2.2.7 -> 2.2.11
(cherry picked from commit 1687c719f8)
2020-10-05 16:16:26 -04:00
Tim Steinbach
a537813e08 rtl8821cu: 2020-05-16 -> 2020-08-21
(cherry picked from commit 6fbd64645c)
2020-10-05 16:15:58 -04:00
Tim Steinbach
d5052d6a90 rtl8812au: 5.6.4.2_35491.20200318 -> 5.6.4.2_35491.20200702
(cherry picked from commit ce79348fe4)
2020-10-05 16:15:24 -04:00
Jonas Meurer
ba1ad328ed jwm: fix gettext requirement
Jwm requests a specific version of gettext. Since the current version
of gettext is higher, the build fails. Gettext supports to request
a minimum version (since 0.19.6). A patch is introduces which requests
the minimum version 0.19.6.

(cherry picked from commit 1a22a73dde)
2020-10-05 21:03:50 +02:00
WORLDofPEACE
5c68755102 Merge pull request #99629 from ttuegel/staging-20.09--plasma-switch-user
systemd: show CanMultiSession again
2020-10-05 14:19:43 -04:00
Drew Risinger
259f722437 terraform-compliance: fix build
* Disables lock of pythonPackages.ipython to allow
    building with what's in nixpkgs

(cherry picked from commit 85ce380564)
2020-10-05 19:04:13 +01:00
Christoph Neidahl
724d372a3a cheesecutter: unstable-2019-12-06 -> unstable-2020-04-03
(cherry picked from commit e782471d2b)
2020-10-05 19:58:12 +02:00
Robert Scott
af049d1f9e olsrd: 0.9.6.1 -> 0.9.8, fix build
incorporate patch fixing build against bison 3.7 pinched from openwrt

(cherry picked from commit 36d66c0b43)
2020-10-05 18:37:40 +01:00
Tim Steinbach
1b40fb34fd Revert "Revert "linux-hardened: 5.7 -> 5.8""
This reverts commit ad3a5d5092.
2020-10-05 11:32:10 -04:00
Tim Steinbach
e178d83cf8 Merge pull request #99622 from NeQuissimus/fix_hardened_58
tests/hardened: Fix usage with 5.8

(cherry picked from commit 0913d8c4d5)
2020-10-05 11:31:56 -04:00
Thomas Tuegel
9aa7dfeb6f systemd: show CanMultiSession again
(cherry picked from commit 4e384ddc11)
2020-10-05 09:50:53 -05:00
Eelco Dolstra
67c303e753 nixos-generate-config: Add missing newline
(cherry picked from commit b551f06097)
2020-10-05 14:46:23 +02:00
Vladimír Čunát
ad3a5d5092 Revert "linux-hardened: 5.7 -> 5.8"
This reverts commit 4712b946e4.
This broke a test and has been blocking the channel for over a week.
(see https://github.com/nixos/nixpkgs/commit/4712b946e )
2020-10-05 05:13:30 +02:00
WORLDofPEACE
b5ba70103b Merge pull request #99537 from mdevlamynck/backport
[20.09] sawfish: fix build by replacing gdk-pixbuf with gdk-pixbuf-xlib
2020-10-04 19:42:51 -04:00
Robert Scott
b2ac083574 Merge pull request #99543 from risicle/ris-hidapi-darwin-fix-r20.09
[20.09] pythonPackages.hidapi: fix build on darwin
2020-10-04 22:35:46 +01:00
Justin Humm
77660fc646 monoid: 2016-07-21 -> 2018-06-03
Also applied a patch, so we can build with python3Packages.fontforge, as
fontforge doesn't have python2 bindings anymore.

(cherry picked from commit b6b8503f85)
2020-10-04 21:40:42 +02:00
Jonathan Ringer
27fcfaa2c0 nixpkgs-review: 2.4.1 -> 2.4.2
(cherry picked from commit a51c51c6b0)
2020-10-04 09:14:01 -07:00
Jonathan Ringer
cf5bea5a04 nixpkgs-review: 2.4.0 -> 2.4.1
(cherry picked from commit 6d812f2a73)
2020-10-04 09:14:01 -07:00
Robert Scott
54e4fdfe85 Merge pull request #99548 from risicle/ris-gomplate-init-r20.09
[20.09] gomplate: init at 3.8.0
2020-10-04 16:46:18 +01:00
Maximilian Bosch
ec20ddd254 nixos/nextcloud: fix nginx-config for Nextcloud 19 and older
It seems as I misconfigured `nginx` for certain cases such as the
`ldap`-plugin[1] in 42f6244899. This patch
fixes the `nginx`-config to match the upstream recommendations[2].

Also added a comment to the module to remind myself to ensure that
`nginx` will work with both v19 and v20 as soon as the latter is
released and can be packaged in `nixpkgs`.

Co-authored-by: nivadis <nivadis@users.noreply.github.com>

[1] https://github.com/nextcloud/server/issues/16194#issuecomment-688839888
[2] https://docs.nextcloud.com/server/19/admin_manual/installation/nginx.html

(cherry picked from commit 8d8871c565)
2020-10-04 14:05:52 +02:00
Robert Scott
ff2e0ca52d gomplate: init at 3.8.0
(cherry picked from commit d451ecbc9c)
2020-10-04 12:59:12 +01:00
Thomas Tuegel
0c218a4c2e Merge pull request #99542 from ttuegel/release-20.09--plasma-missing-attrs
[20.09] kdenetworking-filesharing: move to top level
2020-10-04 06:55:12 -05:00
Robert Scott
63f0d994c9 pythonPackages.hidapi: fix build on darwin
also add pythonImportsCheck

(cherry picked from commit bd55969cf9)
2020-10-04 12:13:51 +01:00
Thomas Tuegel
10f69167e2 kdenetworking-filesharing: move to top level 2020-10-04 05:43:47 -05:00
Matthias Devlamynck
424805d8c0 sawfish: fix build by replacing gdk-pixbuf with gdk-pixbuf-xlib
(cherry picked from commit 5dba52e6ce)
2020-10-04 10:50:49 +02:00
rnhmjoj
3bef8645ca qutebrowser: downgrade Qt to 5.14
There are a number of unresolved issues with Qt 5.15, the most
important one being the inability to properly restore sessions[1].
For now it's better to stay at the earlier version.

[1]: https://github.com/qutebrowser/qutebrowser/issues/5359

(cherry picked from commit 3fafb02125)
2020-10-04 10:43:21 +02:00
Maximilian Bosch
25d8b5f2be lambda-mod-zsh-theme: 2019-04-17 -> 2020-10-03, cleanup derivation
(cherry picked from commit 748871ad42)
2020-10-03 20:04:34 +02:00
Thomas Tuegel
b5dae77322 Merge pull request #99473 from ttuegel/release-20.09--digikam
[20.09] digikam: 6.4.0 -> 7.1.0
2020-10-03 12:03:17 -05:00
Martin Weinelt
3d482c78e7 Merge pull request #99489 from acairncross/fix-nbval-backport
[20.09] Fix nbval backport
2020-10-03 18:55:43 +02:00
Aiken Cairncross
f27d90945e python3Packages.nbval: Fix tests
(cherry picked from commit a5f1cf97b6)
2020-10-03 17:38:09 +01:00
Elis Hirwing
beea5227d0 php73: 7.3.20 -> 7.3.23
- https://www.php.net/ChangeLog-7.php#7.3.21
 - https://www.php.net/ChangeLog-7.php#7.3.22
 - https://www.php.net/ChangeLog-7.php#7.3.23

(cherry picked from commit e04af50179)
2020-10-03 17:46:51 +02:00
Elis Hirwing
07c6f1f8ea php74: 7.4.8 -> 7.4.11
https://www.php.net/ChangeLog-7.php#7.4.9
https://www.php.net/ChangeLog-7.php#7.4.10
https://www.php.net/ChangeLog-7.php#7.4.11
(cherry picked from commit a792db658f)
2020-10-03 17:28:14 +02:00
R. RyanTM
2460e9d5dc python27Packages.pytesseract: 0.3.5 -> 0.3.6
(cherry picked from commit b8c6c2499c)
2020-10-03 17:27:56 +02:00
Martin Weinelt
410952d2a6 lilypond: add patch to restrict embedded-{ps,svg} when -dsafe is used
Fixes: CVE-2020-17353
Closes: #96802
(cherry picked from commit 500d7b81f9)
2020-10-03 16:59:38 +02:00
Aaron Andersen
de32158a87 Merge pull request #99388 from helsinki-systems/backport/20.09/wordpress
[20.09]: wordpress: 5.4.2 -> 5.5.1
2020-10-03 10:39:33 -04:00
Jonas Meurer
00d578a298 nixos/moodle: add missing PHP module (#99476)
ZHF: #97479

Backport of #99163
2020-10-03 15:51:37 +02:00
Thomas Tuegel
a4fea834cb digikam: 6.4.0 -> 7.1.0
(cherry picked from commit b10e170cb3)
2020-10-03 08:47:50 -05:00
Robert Scott
9d31d9ab08 opencascade-occt, opencascade-occt730: fix build on darwin
(cherry picked from commit 0724d7ef59)
2020-10-03 15:46:57 +02:00
Robert Scott
8d6f5beb3e Merge pull request #99362 from mdevlamynck/backport
[20.09] effitask: fix build
2020-10-03 13:04:36 +01:00
0x4A6F
48a32515f0 nixos: Conform with RFC 1123 in networking.hostName
Conform to RFC 1123 [0], specifically to "2.1 Host Names and Numbers",
which allow starting host name with alphanumerical instead of alphabetical characters.
RFC 1123 updates RFC 952 [1], which is referenced in "man 5 hosts".

[0]: https://tools.ietf.org/html/rfc1123
[1]: https://tools.ietf.org/html/rfc952

(cherry picked from commit c232d4b587)
2020-10-02 22:02:17 +02:00
Robert Scott
a5bf6a222b Merge pull request #99338 from risicle/ris-precice-2.1.0-r20.09
[20.09] precice: fix build, 2.0.2 -> 2.1.0, enable for darwin
2020-10-02 20:40:57 +01:00
Tim Steinbach
55a8dcdc53 linux: 5.8.12 -> 5.8.13 2020-10-02 11:28:15 -04:00
Tim Steinbach
612d3d92bf linux: 4.9.237 -> 4.9.238 2020-10-02 11:28:15 -04:00
ajs124
0850f673de wordpress: 5.4.2 -> 5.5.1
(cherry picked from commit c56f278337)
2020-10-02 15:26:06 +02:00
Silvan Mosberger
0f47048fdd Merge pull request #99249 from yorickvP/backport-vm-nl
[20.09] nixos/victoriametrics: escape newlines in ExecStart
2020-10-02 12:55:17 +02:00
Andreas Rammhold
ee7a485da4 Merge pull request #99333 from andir/nixos-20.09-rl-mysql
[20.09] update mysql release notes
2020-10-02 11:19:23 +02:00
Maximilian Bosch
498c69ef5c gitea: 1.12.4 -> 1.12.5
https://github.com/go-gitea/gitea/releases/tag/v1.12.5
(cherry picked from commit 31ce2ee748)
2020-10-02 11:07:33 +02:00
Matthias Devlamynck
ed6a21f970 effitask: fix build
(cherry picked from commit ab0e7bffa0)
2020-10-02 08:37:02 +02:00
aszlig
718037a7ee nixos/plasma5: Fix eval of colord-kde/wacomtablet
Regression introduced by 053b05d14d.

The commit in question essentially removed the "with pkgs;" from the
scope around the various packages added to environment.systemPackages.

Since services.colord.enable and services.xserver.wacom.enable are false
by default, the change above didn't directly result in an evaluation
error.

Tested evaluation before and after this change via:

  for cfg in hardware.bluetooth.enable \
             networking.networkmanager.enable \
             hardware.pulseaudio.enable \
             powerManagement.enable \
             services.colord.enable \
             services.samba.enable \
             services.xserver.wacom.enable; do
    nix-instantiate --eval nixos --arg configuration '{
      services.xserver.desktopManager.plasma5.enable = true;
      '"$cfg"' = true;
    }' -A config.environment.systemPackages > /dev/null
  done

Signed-off-by: aszlig <aszlig@nix.build>
Cc: @ttuegel
(cherry picked from commit 7447bdc523)
2020-10-02 00:58:34 -04:00
WORLDofPEACE
6bf45c4066 nixos/dnscrypt-proxy2: version the example file
I've frequently used the master version that has non backwards compatible keys.

(cherry picked from commit 46e5b14b4a)
2020-10-02 00:33:23 -04:00
Gabriel Ebner
1ee07fb597 freecadStable: init at 0.18.4
(cherry picked from commit 58121fe1b0)
2020-10-01 17:29:30 -07:00
Gabriel Ebner
c193c58c7a opencascade-occt730: init at 7.3.0p3
(cherry picked from commit 78c10375d8)
2020-10-01 17:29:30 -07:00
Gabriel Ebner
c9d21d0fdd python3Packages.pivy: 0.6.5a2 -> 0.6.5
(cherry picked from commit 96dfa21d37)
2020-10-01 17:29:30 -07:00
Gabriel Ebner
324685c771 libsForQt5.soqt: 1.6.0a -> 1.6.0
(cherry picked from commit 0b536960ac)
2020-10-01 17:29:30 -07:00
Gabriel Ebner
2e5b646421 coin3d: unstable-2019-06-12 -> 4.0.0
(cherry picked from commit 11dd6f4584)
2020-10-01 17:29:30 -07:00
Gabriel Ebner
01af965586 freecad: 0.18.4 -> unstable-2020-09-25
(cherry picked from commit 22301b66cd)
2020-10-01 17:29:30 -07:00
Henri Menke
c40a7064dc zfsUnstable: 2.0.0-rc1 -> 2.0.0-rc2
(cherry picked from commit a115901f72)
2020-10-01 17:01:26 -07:00
Silvan Mosberger
9d69eb7bfa man-pages: Make it findable by manpages
Previously `nix-shell -p man-pages` wouldn't work, because `man` by
default looks up man pages only for the packages that appear in PATH.
Since man-pages didn't have anything in $out/bin though, it wouldn't be
put on PATH.

This fixes that by just creating an empty $out/bin

(cherry picked from commit 75d24ef5e7)
2020-10-02 00:53:21 +02:00
Andreas Rammhold
0260afe5f5 nixos/mysql: reorder the release notes on breaking changes a bit
The piece about what commands to run *before* the upgrade should be more
prominent.
2020-10-01 23:23:11 +02:00
Andreas Rammhold
7061a3a4dc nixos/mysql: put the bullet points in a listing
This makes them a lot more readable in the rendered HTML compared to
some inline dashes.
2020-10-01 23:16:01 +02:00
Robert Scott
6f3203bde2 precice: enable for darwin
(cherry picked from commit 509208ea45)
2020-10-01 22:15:10 +01:00
Robert Scott
48b48f5015 precice: 2.0.2 -> 2.1.0
(cherry picked from commit c943e6bc14)
2020-10-01 22:15:07 +01:00
Robert Scott
ab04f71814 precice: fix build
cmake gets confused with python 3.8's version number, switch back to 3.7
for now until upstream's resolved that

(cherry picked from commit 5afdaa28a6)
2020-10-01 22:14:55 +01:00
Lancelot SIX
11b4cc52db pythonPackages.pyscreenshot: add missing pillow dependency
(cherry picked from commit 46159bcf20)
2020-10-01 10:23:52 -07:00
Austin Butler
e56ca65fc1 pythonPackages.pyscreenshot: add missing dependencies
(cherry picked from commit 5bcc4b27f9)
2020-10-01 10:23:52 -07:00
Austin Butler
bf7ea19e6f python3Packages.mss: init at 6.0.0
(cherry picked from commit af2dc4d401)
2020-10-01 10:23:52 -07:00
Austin Butler
53767dfab8 pythonPackages.entrypoint2: init at 0.2.1
(cherry picked from commit 84d74ae9c9)
2020-10-01 10:23:52 -07:00
Tristan Helmich (omniIT)
a3d1bd3ba2 element-web: 1.7.7 -> 1.7.8
(cherry picked from commit f10049cef3)
2020-10-01 17:35:09 +02:00
Tristan Helmich (omniIT)
0ec5a75d72 element-desktop: 1.7.7 -> 1.7.8
(cherry picked from commit 0bf368d339)
2020-10-01 17:35:09 +02:00
Eelco Dolstra
66cd39409e emacs: Remove references from emacs.pdmp
This reduces the Emacs closure size from 1324 MiB to 424 MiB.

Fixes #98755.

(cherry picked from commit 8e13d34944)
2020-10-01 16:31:21 +02:00
Tim Steinbach
bfbe4de06d Merge pull request #99266 from NeQuissimus/linux_4_14_200
linux: 4.14.199 -> 4.14.200
(cherry picked from commit 2f177a2f21)
2020-10-01 09:04:16 -04:00
Tim Steinbach
1be6713414 Merge pull request #99267 from NeQuissimus/linux_4_19_149
linux: 4.19.148 -> 4.19.149
(cherry picked from commit b2a80bebe9)
2020-10-01 09:04:12 -04:00
Tim Steinbach
de727c294c Merge pull request #99269 from NeQuissimus/linux_4_4_238
linux: 4.4.237 -> 4.4.238
(cherry picked from commit ea11b55f44)
2020-10-01 09:04:09 -04:00
Tim Steinbach
59a633e496 Merge pull request #99270 from NeQuissimus/linux_5_4_69
linux: 5.4.68 -> 5.4.69
(cherry picked from commit de6f754b6e)
2020-10-01 09:04:04 -04:00
Marek Fajkus
510a2d97a5 corefonts: fix hash mismatch update
(cherry picked from commit b529c6cf65)
2020-10-01 14:37:18 +02:00
Konrad Borowski
46ce4b1d12 htop: 3.0.1 -> 3.0.2
(cherry picked from commit 4efe18bdee)
2020-10-01 13:10:26 +02:00
Yorick
ff45b4b883 nixos/victoriametrics: escape newlines in ExecStart
Fixes #96206

(cherry picked from commit c1bef53ab5)
2020-10-01 11:49:37 +02:00
Niclas Thall
81217f0f69 pythonPackages.lmtpd: upgrade to Python 3
Python 2 support was dropped on
3546d4660f

ZHF: #97479
https://hydra.nixos.org/build/127641301
(cherry picked from commit 109c7f95ca)
2020-09-30 23:45:15 -07:00
Niclas Thall
97a95f7d7c pythonPackages.pygraphviz: upgrade to Python 3
Python 2 support was dropped on
c341911c15

ZHF: #97479
https://hydra.nixos.org/build/127631797
(cherry picked from commit a29f812f36)
2020-09-30 23:19:08 -07:00
Niclas Thall
e6138834f3 python3Packages.pybase64: Upgrade to python 3
Python 2 ist supported.

ZHF: #97479
https://hydra.nixos.org/build/127647482
(cherry picked from commit 486174da11)
2020-09-30 23:18:56 -07:00
Niclas Thall
594835d0a0 pythonPackages.pure-eval: upgrade to Python 3
ZHF: NixOS#97479
https://hydra.nixos.org/build/127622386
(cherry picked from commit 15e1e144df)
2020-09-30 23:18:46 -07:00
Vladimír Čunát
b3dea4a166 Merge branch 'staging-20.09' into release-20.09
Only a few thousand aarch64 jobs are missing;
that platform is just a bit behind currently.
2020-09-30 23:39:05 +02:00
Maximilian Bosch
8cd2cc9e32 packer: 1.6.3 -> 1.6.4
https://github.com/hashicorp/packer/releases/tag/v1.6.4
(cherry picked from commit 0c56c7357f)
2020-09-30 20:42:06 +02:00
Robert Scott
f8d804b621 Merge pull request #99110 from risicle/ris-minizinc-fix-r20.09
[20.09] minizinc: fix build against bison 3.7
2020-09-30 18:48:29 +01:00
Vladimír Čunát
1b0e08d928 libbpf: 0.1.0 -> 0.1.1
This adds just a single tiny bugfix commit.
https://github.com/libbpf/libbpf/releases/tag/v0.1.1

(cherry picked from commit 1838227d81)
2020-09-30 18:52:45 +02:00
Vladimír Čunát
575aba5b48 thunderbird*: switch default: 68 -> 78
I didn't feel comfortable with *immediately* removing 68,
even though nixers have rollbacks etc.

(cherry picked from commit 2be22836b1)
2020-09-30 18:16:19 +02:00
Maximilian Bosch
61cb8de5ac Merge pull request #99080 from fadenb/graylog_3.3.6_20.09
[20.09] graylog: 3.3.4 -> 3.3.6
2020-09-30 13:38:27 +02:00
Vincent Laporte
07e5844fdf ikos: 2.1 → 3.0
(cherry picked from commit 22b076e1c3)
2020-09-30 08:09:11 +02:00
Jonathan Ringer
f340be7c96 kdeApplications: expose missing packages 2020-09-29 20:36:49 -07:00
WORLDofPEACE
663ff8739c gegl_0_4: make vapi dependencies explicit
(cherry picked from commit 6f35dac541)
2020-09-29 18:34:59 -04:00
Bruno Bigras
76556c6d3d openresty: 1.15.8.3 -> 1.17.8.2
(cherry picked from commit aca8ce740b)
2020-09-29 14:48:21 -07:00
Raphael Borun Das Gupta
c5bd733440 pythonPackages.namedlist: bitbucket -> gitlab.com
adapt meta.homepage, as upstream has moved to gitlab.com

(cherry picked from commit 638612dadf)
2020-09-29 14:46:31 -07:00
Raphael Borun Das Gupta
08653a9f7d pythonPackages.namedlist: 1.7 -> 1.8
(cherry picked from commit 9a2f904e8f)
2020-09-29 14:46:31 -07:00
Robert Scott
46e16fe093 pythonPackages.ruffus: 2.8.1 -> 2.8.4, fix build
simplify test execution by skipping their makefile entirely. disable tests
on darwin as they are very flaky & hang often. this is probably ok because
we're not hacking this package's source to get it installed, and the user
is probably getting something very similar as they would get using a
regular pip installation.

(cherry picked from commit 85e6474eee)
2020-09-29 14:46:07 -07:00
Lily Ballard
3ef78fba49 macvim: 8.2.539 -> 8.2.1719
(cherry picked from commit 9daf3b994b)
2020-09-29 14:24:50 -07:00
Lily Ballard
3b48734cac macvim: Properly link against Nix ncurses
Since we're not using the Nix compiler, our buildInputs aren't
automatically exposed to the compiler, which means it was actually
compiling against system libncurses instead of Nix libncurses.

Also remove the `-Wno-error` from the make flags (and the unnecessary
`PREFIX` definition) in favor of using a much more targeted error
suppression at the configure flags. This works around an issue where
implicit function definitions are considered an error and the configure
script was trying to compile a file tht invoked an ncurses function
without including the relevant header.

(cherry picked from commit d3b1d59d84)
2020-09-29 14:24:50 -07:00
Robert Scott
9711427004 minizinc: fix build against bison 3.7
fixed in upstream development branch

enable for darwin

(cherry picked from commit 9f65c524bb)
2020-09-29 19:07:51 +01:00
Maximilian Bosch
cb0c38404c bandwhich: 0.18.1 -> 0.19.0
https://github.com/imsnif/bandwhich/releases/tag/0.19.0
(cherry picked from commit 372884ffa5)
2020-09-29 18:51:50 +02:00
Enno Richter
b562e7dbd1 iptraf: mark as broken
(cherry picked from commit 5b65d3e7bc)
2020-09-29 08:30:07 -07:00
Tim Steinbach
1bc3ad378c linux/hardened/patches/5.8: 5.8.11.a -> 5.8.12.a
(cherry picked from commit 9109a8fcd5)
2020-09-29 08:36:56 -04:00
Tristan Helmich (omniIT)
b7cd334a12 graylog: 3.3.4 -> 3.3.6
Bumps Graylog and integration plugins to version 3.3.6.
Fixes wrong description of aggregates plugin.

(cherry picked from commit dee78b7032)
2020-09-29 08:59:39 +00:00
Tim Steinbach
4712b946e4 linux-hardened: 5.7 -> 5.8 2020-09-28 19:10:49 -04:00
Tim Steinbach
5b40fd3b1e linux/hardened/patches/5.4: 5.4.67.a -> 5.4.68.a 2020-09-28 19:10:49 -04:00
Tim Steinbach
c4858ba931 linux/hardened/patches/4.19: 4.19.144.a -> 4.19.148.a 2020-09-28 19:10:49 -04:00
Tim Steinbach
e9eb9027be linux/hardened/patches/4.14: 4.14.197.a -> 4.14.199.a 2020-09-28 19:10:49 -04:00
Tim Steinbach
4b9d60960f linux_latest-libre: 17624 -> 17688 2020-09-28 19:10:49 -04:00
Tim Steinbach
c975fd1da3 linux: 5.8.11 -> 5.8.12 2020-09-28 19:10:49 -04:00
Tim Steinbach
957435dce1 linux: 5.4.67 -> 5.4.68 2020-09-28 19:10:49 -04:00
Tim Steinbach
9a81f3387d linux: 4.19.147 -> 4.19.148 2020-09-28 19:10:49 -04:00
Andreas Rammhold
277114e99a nixos/security/wrapper: ensure the tmpfs is not world writeable
The /run/wrapper directory is a tmpfs. Unfortunately, it's mounted with
its root directory has the standard (for tmpfs) mode: 1777 (world writeable,
sticky -- the standard mode of shared temporary directories). This means that
every user can create new files and subdirectories there, but can't
move/delete/rename files that belong to other users.
2020-09-28 22:57:43 +02:00
Austin Butler
c0c97eaaef python3Packages.alerta: add missing dependency
(cherry picked from commit c0b1d136c5)
2020-09-28 13:07:16 -07:00
Austin Butler
4b9a73815f pythonPackages.requests-hawk: init at 1.0.1
(cherry picked from commit 3b1ee7b011)
2020-09-28 13:07:16 -07:00
Austin Butler
857e0d386b maintainers: add austinbutler
(cherry picked from commit 2bdce0e50c)
2020-09-28 13:07:16 -07:00
Austin Butler
e0ce168104 pythonPackages.mohawk: init at 1.1.0
(cherry picked from commit 8be7347e2b)
2020-09-28 13:07:16 -07:00
Thibault Gagnaux
c09d6ead8f python3Packages.fsspec: fix tests on darwin, 0.7.4 -> 0.8.3
(cherry picked from commit 4dbd770f30)
2020-09-28 12:58:45 -07:00
Shea Levy
44346a50c7 system76-firmware: 1.0.17 -> 1.0.18
(cherry picked from commit 55dc3b76f0)
2020-09-28 13:11:03 -04:00
Lancelot SIX
e7700d0e79 skypeforlinux: 8.63.0.76 -> 8.64.0.81
(cherry picked from commit 29620dbaa9)
2020-09-28 13:15:43 +01:00
Ferran Pujol Camins
e0d6afb703 chromaprint: fix derivation
(cherry picked from commit c12cfa428c)
2020-09-28 11:06:51 +02:00
Michael Raskin
2f9ab67618 Merge pull request #98989 from 7c6f434c/release-20.09
[20.09] wpsoffice: revert ffmpeg version
2020-09-28 06:24:42 +00:00
Michael Raskin
bd07da3142 Merge pull request #98988 from 7c6f434c/wpsoffice-ffmpeg
wpsoffice: keep using ffmpeg_3
(cherry picked from commit 064e082296)
2020-09-28 07:57:43 +02:00
Thomas Tuegel
ddb27d8496 Merge pull request #98657 from ttuegel/release-20.09--kde-applications-qt-5.15
[20.09] Build some KDE Applications with Qt 5.15
2020-09-27 21:05:48 -05:00
Robert Scott
ffe1e1628f Merge pull request #98971 from r-burns/backport-sshping
[20.09] sshping: fix build on darwin
2020-09-28 00:08:50 +01:00
Ryan Burns
914b165df0 sshping: fix build on darwin
Fix hardcoded C++ compiler

(cherry picked from commit e1d834aa09)
2020-09-27 14:30:15 -07:00
Robert Scott
f5dc26ea06 Merge pull request #98963 from r-burns/backport-projectm
[20.09] projectm: fix build on darwin
2020-09-27 22:24:38 +01:00
Maximilian Bosch
491ac6006a stellarium: 0.20.2 -> 0.20.3
https://github.com/Stellarium/stellarium/releases/tag/v0.20.3
(cherry picked from commit b8d1e39a28)
2020-09-27 22:14:44 +02:00
Maximilian Bosch
f8bd03c7fd roundcube: 1.4.8 -> 1.4.9
https://github.com/roundcube/roundcubemail/releases/tag/1.4.9
(cherry picked from commit f09ae7e371)
2020-09-27 22:14:44 +02:00
Ryan Burns
7703bfa827 projectm: fix build on darwin
(cherry picked from commit d10d6dfa4a)
2020-09-27 12:11:24 -07:00
Robert Scott
f762fc2a7c pythonPackages.chameleon: fix tests by switching to github source
tests are no longer included in the pypi tarball

(cherry picked from commit d9cb2736b4)
2020-09-27 11:57:47 -07:00
Andrew Fontaine
1b01b51021 minio: support building on darwin
Modified build command and flags to allow successful build on Darwin
systems. Based on flags in GitHub issue from minio project [0]

[0]: https://github.com/minio/minio/issues/10188#issuecomment-668223207

(cherry picked from commit 5e1cb57bf8)
2020-09-27 11:40:26 -07:00
zowoq
4e6dc105be bettercap: build on darwin
(cherry picked from commit 2e30e228b7)
2020-09-27 11:40:26 -07:00
Ferran Pujol Camins
0987a89771 chromaprint: add darwin compatibility
(cherry picked from commit c6dd555bde)
2020-09-27 11:40:26 -07:00
Mario Rodas
5e30a6bb86 opencv: enable videoio on darwin
(cherry picked from commit 1966a0a4e1)
2020-09-27 11:40:26 -07:00
Mario Rodas
6ca2947331 tab: enable on darwin
(cherry picked from commit c193d3b494)
2020-09-27 11:40:26 -07:00
Mario Rodas
94174cb835 exiv2: fix build on darwin
(cherry picked from commit de7719a240)
2020-09-27 11:40:26 -07:00
Thibault Gagnaux
188915bfaf notebook: fix tests on darwin, 6.1.3 -> 6.1.4
(cherry picked from commit 2030061cef)
2020-09-27 11:37:10 -07:00
Robert Scott
575f476578 pythonPackages.git-annex-adapter: 0.2.1 -> 0.2.2, fix build
(cherry picked from commit 704c258ea7)
2020-09-27 11:34:05 -07:00
Robert Scott
3a207c9593 pythonPackages.datatable: 0.10.1 -> 0.11.0, fix build
once we've made some alterations to the source (which doesn't seem to have
been shipped in a ready-to-build state), we can use the funny custom build
system to build a wheel which can then be installed by the pipInstallHook.

running the tests is again annoying because an ini file setting pytest's
python_files parameter is missing, meaning we have to inject our own.

(cherry picked from commit d7365fad89)
2020-09-27 11:25:03 -07:00
Maximilian Bosch
c57d809ef5 nixos/nextcloud: drop nextcloud17, deprecate nextcloud18
Both packages will get EOLed within the lifetime of 20.09. `nextcloud17`
can be removed entirely (the attribute-path is kept however to provide
meaningful errors), however `nextcloud18` must be kept as `insecure` to
make sure that users from `nextcloud17` can properly upgrade to
`nextcloud19` on NixOS 20.09.

(cherry picked from commit 6b48deee54)
2020-09-27 20:04:25 +02:00
Martin Puppe
3e771553a3 nextcloud18: 18.0.7 -> 18.0.9
(cherry picked from commit 731d55baad)
2020-09-27 20:04:25 +02:00
Martin Puppe
5806cedcc1 nextcloud19: 19.0.1 -> 19.0.3
(cherry picked from commit 85ece7792b)
2020-09-27 20:04:25 +02:00
Thomas Tuegel
8209ea2b95 tellico: do not import kdeApplications 2020-09-27 12:22:52 -05:00
Dmitry Kalinkin
3826d75904 pythonPackages.fastparquet: disable broken test
(cherry picked from commit 3821543de7)
cc #97479
2020-09-27 12:50:53 -04:00
Johannes Rosenberger
54ef32d2c6 fix passing qt5 version to pythonInterpreters
fixes c88f3adb17, which resulted in
qt 5.15 being used in pythonPackages, despite 5.14 being
declared, and adapts qutebrowser accordingly.

'callPackage { pkgs = pkgs // { … }; }' does not work, because
it does not take into account the recursive evaluation of nixpkgs:

`pkgs/development/interpreters/python/default.nix` calls
`pkgs/top-level/python-packages.nix` with `callPackage`.
Thus, even if the former gets passed the updated `pkgs`,
the latter always gets passed `pkgs.pkgs`.

For the change in the qt5 version to apply consistently, 'pkgs.extend'
must be used.

qutebrowser only used the right qt5 version (5.15) because all
pythonPackages used it anyway.

(cherry picked from commit 626ce32e9fd52b8b73e499d29363e610be55c91e)
2020-09-27 18:34:03 +02:00
Thomas Tuegel
9f34e63158 kdewebkit: build with all available Qt versions 2020-09-27 09:17:40 -05:00
Robert Scott
da9dc61675 Merge pull request #98897 from risicle/ris-snowflake-conn-2.3.2-r20.09
[20.09] pythonPackages.snowflake-connector-python: 2.2.10 -> 2.3.2, fix build
2020-09-27 14:33:00 +01:00
Thomas Tuegel
4f5aaf549b trojita: correctly import library dependencies 2020-09-27 07:59:00 -05:00
Thomas Tuegel
225a416491 zanshin: correctly import library dependencies 2020-09-27 07:58:35 -05:00
Thomas Tuegel
94114e27f3 kmymoney: correctly import library dependencies 2020-09-27 07:58:13 -05:00
Thomas Tuegel
4fe1902d65 digikam: correctly import library dependencies 2020-09-27 07:58:01 -05:00
R. RyanTM
0e49dc9306 nco: 4.9.3 -> 4.9.5
(cherry picked from commit 477c40126e)
2020-09-27 13:10:10 +01:00
Thomas Tuegel
38a7ffa304 calligra: correctly import library dependencies 2020-09-27 06:18:05 -05:00
Thomas Tuegel
7495ade57e kwave: Build with Qt 5.15 2020-09-27 06:18:02 -05:00
Thomas Tuegel
5d9aebd76b minuet: Build with Qt 5.15 2020-09-27 06:18:01 -05:00
Thomas Tuegel
4a0a4953da kaddressbook: Build with Qt 5.15 2020-09-27 06:18:01 -05:00
Thomas Tuegel
f39b9bba74 akregator: Build with Qt 5.15 2020-09-27 06:18:01 -05:00
Thomas Tuegel
f099c42a82 kitinerary: Build with Qt 5.15 2020-09-27 06:18:01 -05:00
Thomas Tuegel
656f39417f kleopatra: Build with Qt 5.15 2020-09-27 06:18:00 -05:00
Thomas Tuegel
117cb768df kgpg: Build with Qt 5.15 2020-09-27 06:18:00 -05:00
Thomas Tuegel
bf86b8f81c elisa: Build with Qt 5.15 2020-09-27 06:18:00 -05:00
Thomas Tuegel
78227d526b kdeApplications: Build KDE PIM applications with Qt 5.15 2020-09-27 06:18:00 -05:00
Thomas Tuegel
4b047b3df4 kdeApplications: Include breeze-qt5 theme by default 2020-09-27 06:17:59 -05:00
Thomas Tuegel
850928102a breeze-qt5: Build with all Qt 5 versions 2020-09-27 06:17:59 -05:00
Thomas Tuegel
fd0ecc5bfc kdeApplications: Remove recursion 2020-09-27 06:17:59 -05:00
Thomas Tuegel
e36eae29fc mkLibsForQt5: import more libraries from kdeApplications 2020-09-27 06:17:59 -05:00
Thomas Tuegel
b3c7e3f41f kdiagram: 2.6.0 -> 2.7.0 2020-09-27 06:17:59 -05:00
Mario Rodas
ba756b6a15 Merge pull request #98927 from tricktron/backport-curio
[20.09] python3Packages.curio: fix tests on darwin
2020-09-27 06:07:42 -05:00
Frederik Rietdijk
0cfe5377e8 python39: 3.9.0rc1 -> 3.9.0rc2
(cherry picked from commit 74f3e9cce1)
2020-09-27 11:49:59 +02:00
Frederik Rietdijk
d4a8eb213b pkgsStatic.fmt: don't build shared libs
The change in `static.nix` was added in
https://github.com/NixOS/nixpkgs/pull/76875 but apparently
`enabledShared` got removed in the master/staging-next merge.

(cherry picked from commit 759a2815ec)
2020-09-27 11:32:40 +02:00
Thibault Gagnaux
fb4b2e5ce4 python3Packages.curio: fix tests on darwin
Refactors to pytestCheckHook.

(cherry picked from commit 22cd2a23bf)
2020-09-27 11:17:13 +02:00
rnhmjoj
be95370a8c nixos/tests/ncdns: more tests and disable DNSSEC
- DNSSEC is currently disable because it's failing
- Separately test .bit domain on ncdns and pdns-recursor
- Test for the SOA record of the bit. zone

(cherry picked from commit d7ae8ab35f)

Fixes failing nixosTests.ncdns test
2020-09-27 10:20:34 +02:00
Frank Doepper
2a7af8c36d shotcut: 20.07.11 -> 20.09.13, mlt: 6.20.0 -> 6.22.1
and add updateScript

(cherry picked from commit c835358078)
2020-09-26 19:09:00 -07:00
WORLDofPEACE
de27955cf2 Merge pull request #98902 from cole-h/shadow-owns-shadow-20.09
[20.09] nixos/update-users-groups: /etc/shadow owned by root:shadow
2020-09-26 21:30:46 -04:00
Cole Helbling
f35b375216 nixos/update-users-groups: /etc/shadow owned by root:shadow
(cherry picked from commit 937359fcf1)
2020-09-26 18:27:05 -07:00
Robert Scott
2a904dc80b pythonPackages.accupy: remove perfplot from checkInputs
they were only used for performance tests that aren't useful to us -
disabling these tests allows us to decouple from an unnecessary build
dependency.

convert to pytestCheckHook.

(cherry picked from commit 99175cfbf6)
2020-09-26 18:07:58 -07:00
Robert Scott
32b19dad66 Merge pull request #98891 from r-burns/backport-samba
[20.09] samba: 4.12.5 -> 4.12.6, fix build on darwin
2020-09-27 01:08:37 +01:00
Robert Scott
4fb8141281 pythonPackages.snowflake-sqlalchemy: add pythonImportsCheck
better than nothing

(cherry picked from commit 70ae442fcf)
2020-09-27 00:02:20 +01:00
Robert Scott
612303df1f pythonPackages.snowflake-connector-python: 2.2.10 -> 2.3.2, fix build
the relaxed version constraints don't seem to be specific avoidance of
buggy versions, just upstream cautiously prohibiting untested versions

if there *are* specific reasons, they're hidden away in upstream's jira

(cherry picked from commit 96f034655f)
2020-09-27 00:02:15 +01:00
Maximilian Bosch
e7c26a78e6 matrix-synapse: 1.19.3 -> 1.20.1
https://github.com/matrix-org/synapse/releases/tag/v1.20.0
https://github.com/matrix-org/synapse/releases/tag/v1.20.1
(cherry picked from commit 631d92d8dc)
2020-09-27 00:54:07 +02:00
Maximilian Bosch
52cab67005 neomutt: apply two patches for regressions in the sidebar
The following patches were pushed to `master` after the release and fix
two regressions in the sidebar of NeoMutt:

* 9675367 (sidebar: prevent the divider colour bleeding out): a small
  fix for ANSI colors to not break the layout.

* 6078653 (Fix <sidebar-{next,prev}-new>): fixes invalid conditions in
  if-statements.

Considering their release cycle I figured that it is reasonable to apply
those on top of `20200925` for now.

(cherry picked from commit 004676ce9c)
2020-09-27 00:54:07 +02:00
Ryan Burns
103028665d samba: 4.12.5 -> 4.12.6, fix build on darwin
Upstream commit https://gitlab.com/samba-team/devel/samba/-/commit/6e263432
fixes compilation on BSD/macOS.

(cherry picked from commit 680bdea2f0)
2020-09-26 15:38:56 -07:00
WORLDofPEACE
a90e595068 Merge pull request #98862 from ttuegel/release-20.09--libvlc
[20.09] Build standalone libvlc
2020-09-26 13:07:14 -04:00
Lassulus
138f0c8e41 Merge pull request #98789 from woffs/ytv379-20.09
[20.09] youtube-viewer: 3.7.5 -> 3.7.9
2020-09-26 17:49:51 +02:00
Vladimír Čunát
aba5f002d1 Merge #98628: thunderbird*: 78.2.2 -> 78.3.1 (security)
(cherry picked from commit 4212f719bb)
Re-tested both a bit atop 20.09.
2020-09-26 15:58:09 +02:00
Thomas Tuegel
3199a70fa6 Merge pull request #98846 from ttuegel/libvlc
Build standalone libvlc

(cherry picked from commit 6882716623)
2020-09-26 08:24:41 -05:00
Maximilian Bosch
a8219eaeb3 packer: 1.6.2 -> 1.6.3
https://github.com/hashicorp/packer/releases/tag/v1.6.3
(cherry picked from commit 740f01413b)
2020-09-26 14:04:04 +02:00
Maximilian Bosch
4327b304ff gotify-cli: 2.1.1 -> 2.2.0
https://github.com/gotify/cli/releases/tag/v2.2.0
(cherry picked from commit d37d976601)
2020-09-26 14:04:03 +02:00
Robert Scott
40c9bae6c3 Merge pull request #98569 from maxxk/parse-1.18.0-stable
[20.09] python3Packages.parse: 1.16.0 -> 1.18.0, python-docx: run behave tests
2020-09-26 11:30:51 +01:00
Florian Klink
17ecf6e5be nixos/datadog: Don't recommend dd_url for sites, add proper option
Turns out, `dd_url` should only be used in proxy scenarios, not to point
datadog to their EU endpoint - `site` should be used for that.

The `dd_url` setting doesn't affect APM, Logs or Live Process intake
which have their own "*_dd_url" settings.

(cherry picked from commit 8d52cf501f)
2020-09-26 12:30:21 +02:00
Michael Weiss
733b856a14 signal-desktop: 1.36.2 -> 1.36.3
(cherry picked from commit 2e6844040e)
2020-09-26 12:16:46 +02:00
Vladimír Čunát
a9226f2b3a Merge #98684: brotli: fix patch URL
(cherry picked from commit 779ad182cf)
2020-09-26 09:54:26 +02:00
Vladimír Čunát
4a98a62425 Merge #98651: firefox*: updates (into release-20.09) 2020-09-26 07:46:09 +02:00
WORLDofPEACE
e9a993e90d Merge pull request #97522 from volth/cpan2nix-2020-09-09
[staging-20.09] perlPackages: bulk update
2020-09-25 20:13:46 -04:00
Drew Risinger
9d831f8316 verilog: add tests
Run recommended self-tests from iverilog's CI.

Tests add about a minute to the build time on local machine
(2 -> 3 mins).

(cherry picked from commit ba886f7b1a)
2020-09-25 19:34:32 -04:00
Drew Risinger
27bd57bc4b verilog: cleanup
Meta attributes were out of date or not in current style,
and some attributes of derivation were redundant.

(cherry picked from commit 0d9a6e2da5)
2020-09-25 19:34:32 -04:00
Sarah Brofeldt
c680c499bf ceph: 15.2.4 -> 15.2.5 (#98664)
(cherry picked from commit c099d421db)
2020-09-26 01:13:34 +02:00
Olli Helenius
038b067cd0 kismet: 2020-04-R2 -> 2020-09-R2
(cherry picked from commit 4463f819b6)
2020-09-25 14:39:08 -07:00
freezeboy
1a9ecdf240 rsibreak: 0.12.8 -> 0.12.13
(cherry picked from commit 88c8a3c69f)
2020-09-25 22:29:10 +02:00
Robert Scott
f80bada223 Merge pull request #98783 from r-burns/backport-aragorn
[20.09] aragorn: fix build on darwin
2020-09-25 21:07:14 +01:00
Robert Scott
1c6dc9e98c Merge pull request #98782 from r-burns/backport-libkml
[20.09] libkml: fix tests on darwin
2020-09-25 20:58:21 +01:00
Robert Scott
2f5cbdbda5 Merge pull request #98780 from r-burns/backport-pciutils
[20.09] pciutils: fix build on darwin
2020-09-25 20:47:33 +01:00
Robert Scott
0ed8c8fc0e Merge pull request #98678 from povik/20.09-pysdl2-fix
[20.09] python3.pkgs.pysdl2: fix build
2020-09-25 20:42:26 +01:00
Frank Doepper
cb6859078d youtube-viewer: 3.7.5 -> 3.7.9
(cherry picked from commit 2ab6756314)
2020-09-25 21:35:58 +02:00
Ryan Burns
3345d53f6f aragorn: fix build on darwin
Use environment-specified $CC for C compiler

(cherry picked from commit 6cc2d3e6f2)
2020-09-25 12:12:51 -07:00
Ryan Burns
3c3346ec20 libkml: fix tests on darwin
Darwin tests require rpath setup for libs in build dir

(cherry picked from commit 357014e09c)
2020-09-25 12:10:14 -07:00
Ryan Burns
113c22dba4 pciutils: fix build on darwin
Add IOKit to macOS prereqs, and patch Makefile to use $CC

(cherry picked from commit 00bf15f23c)
2020-09-25 12:04:09 -07:00
TredwellGit
82eb369511 wireshark: 3.2.5 -> 3.2.7
https://www.wireshark.org/docs/relnotes/wireshark-3.2.7.html
https://www.wireshark.org/docs/relnotes/wireshark-3.2.6.html
(cherry picked from commit 5a1c55f911)
2020-09-25 20:43:03 +02:00
Robert Scott
883b340639 Merge pull request #98579 from risicle/ris-fierce-fix-r20.09
[20.09] fierce: fix build
2020-09-25 19:38:12 +01:00
freezeboy
bb76286704 rpm-ostree: 2020.4 -> 2020.5
(cherry picked from commit 7db8abb774)
2020-09-25 20:10:17 +02:00
Lassulus
bc30b9d4cc Merge pull request #98757 from woffs/tuxpaint-desktop-20.09
[20.09] tuxpaint: install desktop file
2020-09-25 17:58:47 +02:00
Andrew Fontaine
8fe375c0b6 nextcloud-client: 3.0.0 -> 3.0.2
Contains upstream fix for maintaining folder links when upgrading from
2.x to 3.x.

(cherry picked from commit 57883eea4a)
2020-09-25 17:35:00 +02:00
claudiiii
35709c0ebd nextcloud-client: 2.6.5 -> 3.0.0
(cherry picked from commit 5703813f78)
2020-09-25 17:35:00 +02:00
Norbert Melzer
53eac87c8d lefthook: use go 1.14 to build (#97963)
Due to some changes in `go` from 1.14 to 1.15 the lefthook tool
currently can't start external programs and errors each test it tries
to run, making it effectively useless.

This is a temporary fix to make `lefthook` usable again until the
upstream issue was fixed and a new release has been cut.

Upstream issue: https://github.com/Arkweid/lefthook/issues/151

(cherry picked from commit 4312e2460a)
2020-09-25 17:19:24 +02:00
zimbatm
a3ba14dff1 Merge pull request #98753 from woffs/dvdbackup-20.09
[20.09] dvdbackup: fix build with libdvdread >= 6.1.0
2020-09-25 15:12:53 +00:00
Maximilian Bosch
4a7e2572f4 neomutt: 20200821 -> 20200925
https://github.com/neomutt/neomutt/releases/tag/20200925
(cherry picked from commit 2d94370264)
2020-09-25 16:55:26 +02:00
Maximilian Bosch
57a12055ae lnav: 0.8.5 -> 0.9.0
https://github.com/tstack/lnav/releases/tag/v0.9.0
(cherry picked from commit 1a08a381a0)
2020-09-25 16:55:26 +02:00
Ingo Blechschmidt
b9b0217474 tuxpaint: install desktop file
(cherry picked from commit faec169f0d)
2020-09-25 15:53:29 +02:00
Frank Doepper
e460fae7fc dvdbackup: fix build with libdvdread >= 6.1.0
(cherry picked from commit e8d1a486fb)
2020-09-25 15:48:41 +02:00
Maximilian Bosch
f3d099fb1d virtualbox: re-add support for virtio
For some reason the original source tarball for version 6.1.14 didn't
bundle the sources for `virtio`-support causing a build-failure.

After this was reported, a new tarball named
`VirtualBox-6.1.14a.tar.bz2` was published which fixes the issue[1].

[1] https://www.virtualbox.org/ticket/19862

(cherry picked from commit 579404c4a5)
2020-09-25 15:40:37 +02:00
Magicloud
07504c9364 virtualbox: 6.1.10 -> 6.1.14
6.1.14 is the latest release of Virtualbox.

Also disabled VirtIO since the source tarball does not include necessary source code.

Closes #97999
(cherry picked from commit e1538e43b9)
2020-09-25 15:40:06 +02:00
Michael Weiss
2a078e8057 signal-desktop: 1.36.1 -> 1.36.2
(cherry picked from commit 6b0794caa5)
2020-09-25 13:48:37 +02:00
R. RyanTM
b0a587f2ef freeipmi: 1.6.5 -> 1.6.6
(cherry picked from commit f5c2f51dae)
2020-09-25 09:50:00 +01:00
Johannes Schleifenbaum
38e59a3385 dbeaver: 7.2.0 -> 7.2.1
(cherry picked from commit 0a07c8c67e)
2020-09-25 09:31:13 +01:00
Farid Zakaria
e703709952 jruby: fix shebang for binaries in JRuby
There are a variety of additional scripts that are included with the
JRuby installation that use JRuby itself.

For instance the `bin/gem` had the following contents:

```bash
❯ cat /nix/store/kglkqf56ii83yl6yrgcaj5r3s9m2fzr0-jruby-9.2.13.0/bin/gem

load File.join(File.dirname(__FILE__), 'jgem')
```

This is clearly wrong. Patchshebangs was not picking up the fix as part
of stdenv because the patch is not a build input but the final output
itself.

We have to rely on substituteInPlace so that we get the correct version.

```bash
❯ cat /nix/store/k4fnrn0dcsh2wzw81217r0ywsspb468f-jruby-9.2.13.0/bin/gem

```

(cherry picked from commit 8da7bd63ca)
2020-09-25 10:06:48 +02:00
Michael Raskin
152522d69d Merge pull request #98578 from risicle/ris-cvc3-fix-r20.09
[20.09] cvc3: fix build against bison 3.7
2020-09-25 07:34:52 +00:00
Robert Scott
72b01f5bc3 pythonPackages.cozy: fix build
to allow building with dictionaries 0.0.2

(cherry picked from commit 7486a8d587)
2020-09-24 21:27:47 -07:00
Jan Tojnar
c9b329cdf9 nixos/doc: Improve code listings
By adding prompts and replaceables and removing unnecessary indentation.

(cherry picked from commit e6ce041cae)
2020-09-24 22:52:36 +02:00
Jan Tojnar
cc870b11c9 doc: Improve code listings
By adding prompts and removing unnecessary indentation.

(cherry picked from commit e1af37634b)
2020-09-24 22:52:36 +02:00
Martin Povišer
b3db371d85 python3.pkgs.pysdl2: fix build
Update patches after version bump.

(cherry picked from commit d82e165609)
2020-09-24 21:59:47 +02:00
Jakub Kądziołka
17b6d3fd0f chez: add env hook
As a follow-up to #97927, chez can now find its libraries in a
nix-shell, and derivations for such libraries don't need to handle the
search path themselves.

(cherry picked from commit 8f60607a0b)
2020-09-24 21:57:57 +02:00
Jakub Kądziołka
7d001444c1 chez-modules: Fix path to csv-site.
It seems that the installation path for chez modules no longer includes
the Chez version. This fixes the build for chez-mit and chez-scmutils.

(cherry picked from commit 72ccc9b885)
2020-09-24 21:57:39 +02:00
Robert Scott
f5ee72eef6 truvari: 1.3.4 -> 2.0.2, fixing build
seeing it has no tests, use pythonImportsCheck in an attempt to detect
total breakage, even though it's not intended to be used as an importable
module

(cherry picked from commit ecd5886830)
2020-09-24 09:02:35 -07:00
Robert Scott
3fac393b55 pythonPackages.acebinf: init at 1.0.2
(cherry picked from commit e61102d5c2)
2020-09-24 09:02:35 -07:00
Robert Scott
37adf57813 pythonPackages.pytabix: init at 0.1
(cherry picked from commit 4543e54991)
2020-09-24 09:02:35 -07:00
Robert Scott
be0629f44c pythonPackages.bwapy: init at 0.1.4
(cherry picked from commit ccf4645500)
2020-09-24 09:02:35 -07:00
Robert Scott
a63d237f73 bwa: include static library and some key headers in output
(cherry picked from commit f1d2491057)
2020-09-24 09:02:35 -07:00
Robert Scott
38ee58ad93 truvari: fix build
be less strict about versions

(cherry picked from commit 4637721bc1)
2020-09-24 09:02:35 -07:00
Robert Scott
32db921ab6 pythonPackages.rabbitpy: 1.0.0 -> 2.0.1
(cherry picked from commit 16ed0c3069)
2020-09-24 09:02:02 -07:00
Robert Scott
5a99ef8259 Revert "python: pamqp: 2.3.0 -> 3.0.1"
No version of pythonPackages.rabbitpy currently exists that supports 3.0.1

This reverts commit 4250cdeee9.

(cherry picked from commit 178d1b119c)
2020-09-24 09:02:02 -07:00
Robert Scott
c9fdd325ba pythonPackages.gssapi: 1.6.2 -> 1.6.9
(cherry picked from commit 9a472166af)
2020-09-24 08:57:17 -07:00
Robert Scott
b20ffa72ac pythonPackages.gssapi: fix tests
the failing tests appear to also be causing trouble upstream

(cherry picked from commit fb570ba1de)
2020-09-24 08:57:17 -07:00
sohalt
00c8e6fb07 avy: 2017.10.16 -> 2019.05.01
(cherry picked from commit 40722346b8)
2020-09-24 08:53:07 -07:00
Tim Steinbach
f6ae2015aa linux/hardened/patches/5.8: 5.8.10.a -> 5.8.11.a
(cherry picked from commit a7e1ae6b51)
2020-09-24 11:49:10 -04:00
Tim Steinbach
a99f8faeaa linux/hardened/patches/5.4: 5.4.65.a -> 5.4.67.a
(cherry picked from commit 63ea043960)
2020-09-24 11:49:10 -04:00
Tim Steinbach
bfd956031c linux/hardened/patches/5.4: 5.4.64.a -> 5.4.65.a
(cherry picked from commit 1c61a932bb)
2020-09-24 11:49:00 -04:00
Florian Klink
778cd18c87 nixos/datadog: allow specifying dd_url (#97775)
Useful when you want to point datadog to another endpoint, either
because you need a proxy to send out data, or because you use their EU
endpoint.

(cherry picked from commit 2865a8867f)
2020-09-24 17:43:07 +02:00
taku0
d9fe9633b5 firefox: 80.0.1 -> 81.0
(cherry picked from commit 0669cd9d3f)
2020-09-24 22:22:19 +09:00
taku0
676742ed6e firefox-bin: 80.0.1 -> 81.0
(cherry picked from commit 3ad81fd022)
2020-09-24 22:22:18 +09:00
taku0
64a2ce6218 firefox-esr: 78.2.0esr -> 78.3.0esr
(cherry picked from commit 2460e0e6cd)
2020-09-24 22:22:18 +09:00
Rok Garbas
a04a485f89 Merge pull request #98648 from raboof/rename-guide-to-nixpkgs-manual-20.09
doc: rename guide to 'Nixpkgs Manual'
2020-09-24 15:08:32 +02:00
Arnout Engelen
37a617b3da doc: rename guide to 'Nixpkgs Manual'
For consistency with 'NixOS Manual' and 'Nix Manual', to better match what it's
often called in practice, and to match its URL and HTML title.
2020-09-24 15:06:45 +02:00
Lars Jellema
d447429cc2 gnat: fix build
(cherry picked from commit 7ea5b08cfc)
2020-09-23 23:47:11 -07:00
Daniël de Kok
b91d034c6d Merge pull request #98411 from danieldk/freeoffice-2018.978-20.09
[20.09] freeoffice: 976 -> 978
2020-09-24 08:19:40 +02:00
WORLDofPEACE
c8e389d512 Merge pull request #98585 from wkral/backport-ihatemoney
[20.09] python3Packages.ihatemoney: disable sandbox unfriendly tests, fix passthru
2020-09-23 15:52:29 -04:00
Jonathan Ringer
81d4751677 python3Packages.ihatemoney: disable sandbox unfriendly tests, fix passthru
(cherry picked from commit 43d588b0af)
2020-09-23 12:35:43 -07:00
WORLDofPEACE
bc260badae Merge pull request #98524 from jonringer/cut-beta
nixos: now beta
2020-09-23 15:34:13 -04:00
Robert Scott
2e19fee916 fierce: fix build
because we're playing with its install requirements, add a
pythonImportsCheck to give us a chance to discover brokenness. technically
this isn't a realistic test of end user behaviour as this is really an
application, not a python module, but it seems to have a pretty stable
import name of `fierce`, so it works.

(cherry picked from commit 1aa888ba53)
2020-09-23 19:18:36 +01:00
Robert Scott
189520cc63 Merge pull request #98342 from maxxk/lldb5_6-python37-20.09
[20.09] lldb_5, lldb_6: add patch for >=python-3.7
2020-09-23 19:12:07 +01:00
Robert Scott
f12987a1be cvc3: enable for darwin
it may be possible to get it building under clang with some work, but
switching it to gcc for now allows us to enable it

(cherry picked from commit fc709e6dfe)
2020-09-23 18:32:10 +01:00
Robert Scott
f2e3ca764c cvc3: fix build against bison 3.7
for some reason bison 3.7 output references $x_defs.h files under the name
$x.hpp. create symlinks to make this work.

(cherry picked from commit 53a8a415ac)
2020-09-23 18:32:00 +01:00
Michele Guerini Rocco
9eb814f798 Merge pull request #98574 from mweinelt/20.09/nixos/tests/magnetico
[20.09] nixosTests.magnetico: wait for open port and make curl actually fail
2020-09-23 19:27:26 +02:00
Maxim Krivchikov
1189b50831 python3Packages.behave: skip test failing on darwin
Timing-based test is flaky on Darwin:
https://github.com/NixOS/nixpkgs/pull/97737#issuecomment-691489824

(cherry picked from commit 0f34c4eb33)
2020-09-23 20:16:38 +03:00
Maxim Krivchikov
dc12a5ab74 python3Packages.python-docx: run behave tests
Previously the problematic "behave" dependency
was not even used at checkPhase.

(cherry picked from commit f690cacb06)
2020-09-23 20:16:37 +03:00
Maxim Krivchikov
5f19aca104 python3Packages.parse: 1.16.0 -> 1.18.0
(cherry picked from commit 6543cbf571)
2020-09-23 20:16:37 +03:00
Maxim Krivchikov
fc83817ba6 lldb_5, lldb_6: add patch for >=python-3.7
(cherry picked from commit 172f3a197e)
2020-09-23 20:06:02 +03:00
Martin Weinelt
94ee827023 nixosTests.magnetico: wait for open port and make curl actually fail
(cherry picked from commit 76aeb20d91)
2020-09-23 18:38:03 +02:00
Jonathan Ringer
c0beb143e5 orangefs: 2.9.7 -> 2.9.8, fix build
(cherry picked from commit aa25c65766)
2020-09-23 09:34:06 -07:00
freezeboy
a6b6b8623c python3Packages.fluent-logger: relax version for msgpack
Also add imports tests as we can't do more using the pip release

(cherry picked from commit e3c1b8782a)
2020-09-23 09:32:46 -07:00
freezeboy
4a3e6cdacc python3Packages.google_resumable_media,python2Packages.google_resumable_media: fix tests
(cherry picked from commit 908d8c3459)
2020-09-23 09:32:21 -07:00
freezeboy
fb33dae2ef python3Packages.crc32c: init at 1.0.0
(cherry picked from commit 2468315f2b)
2020-09-23 09:32:21 -07:00
freezeboy
c298a03cc2 crc32c: enable static
(cherry picked from commit 160f169f03)
2020-09-23 09:32:21 -07:00
Matt Votava
5b945725cb python2Packages.trytond: disable for python2
(cherry picked from commit 5f4b880b40)
2020-09-23 09:26:11 -07:00
Matt Votava
3e7e3d2f18 pythonPackages.bcrypt: use 3.1.x for python older than 3.6
(cherry picked from commit 0051c0a4a5)
2020-09-23 09:26:11 -07:00
WilliButz
780b4e027e grafana: 7.1.5 -> 7.2.0
(cherry picked from commit 1a0a53ff83)
2020-09-23 18:07:27 +02:00
Maximilian Bosch
fc6ba468f5 curlie: 1.3.1 -> 1.5.4
(cherry picked from commit 23370afced)
2020-09-23 18:06:46 +02:00
Tim Steinbach
e8669f7cfa linux: 5.8.10 -> 5.8.11 2020-09-23 09:05:17 -04:00
Tim Steinbach
e19303b14b linux: 5.4.66 -> 5.4.67 2020-09-23 09:05:17 -04:00
Tim Steinbach
14e4f4dbb4 linux: 4.9.236 -> 4.9.237 2020-09-23 09:05:17 -04:00
Tim Steinbach
843c56b06a linux: 4.4.236 -> 4.4.237 2020-09-23 09:05:17 -04:00
Tim Steinbach
6377350c58 linux: 4.19.146 -> 4.19.147 2020-09-23 09:05:17 -04:00
Tim Steinbach
102df6c6f2 linux: 4.14.198 -> 4.14.199 2020-09-23 09:05:17 -04:00
Shea Levy
1991ea85b1 Merge branch 'system76-firmware-and-nixos-20.09' into release-20.09 2020-09-23 08:14:31 -04:00
Shea Levy
affe6660bb Add system76 NixOS module
(cherry picked from commit 4b1850bad3)
2020-09-23 08:11:04 -04:00
Shea Levy
3efe313b1d linuxPackages.system76-acpi: Install hwdb rules
(cherry picked from commit 9f43146ec4)
2020-09-23 06:50:29 -04:00
Shea Levy
09246c92d2 linuxPackages.system76: Install hwdb rules
(cherry picked from commit 452fda1d7e)
2020-09-23 06:50:29 -04:00
Shea Levy
6fc7532b2c firmware-manager: Init at 0.1.1
(cherry picked from commit b694eb6e6a)
2020-09-23 06:50:29 -04:00
Shea Levy
670d1a4a94 system76-firmware: Init at 1.0.17
(cherry picked from commit f43c02c7ff)
2020-09-23 06:50:29 -04:00
Bryan Gardiner
eb47f4cc97 linuxPackages.system76-io: init at 1.0.1
(cherry picked from commit 8ea0979284)
2020-09-23 06:50:28 -04:00
Bryan Gardiner
2f78b89265 linuxPackages.system76-acpi: init at 1.0.1
(cherry picked from commit 649b00db5b)
2020-09-23 06:50:28 -04:00
Bryan Gardiner
899bfaf5a9 linuxPackages.system76: init at 1.0.9
(cherry picked from commit 6d7f0bca40)
2020-09-23 06:50:28 -04:00
Michael Weiss
1d3d507043 chromium: 85.0.4183.102 -> 85.0.4183.121
https://chromereleases.googleblog.com/2020/09/stable-channel-update-for-desktop_21.html

This update includes 10 security fixes.

CVEs:
CVE-2020-15960 CVE-2020-15961 CVE-2020-15962 CVE-2020-15963
CVE-2020-15965 CVE-2020-15966 CVE-2020-15964

(cherry picked from commit d1a27a5f00)
2020-09-23 12:11:50 +02:00
Gabriel Ebner
ce00ac55e0 chromium: use jre8
(cherry picked from commit 705ecdc192)
2020-09-23 12:11:50 +02:00
Michael Weiss
2a4f1e08e3 chromiumDev: M86 -> M87
(cherry picked from commit e249baca22)
2020-09-23 12:11:50 +02:00
Michael Weiss
aed7150466 chromium: update.py: Keep the channel order consistent
This makes Git diffs way easier to read.
Using sort_keys=True is usually better but with this implementation the
output is a bit nicer to read IMO.

(cherry picked from commit ceb3acfa8b)
2020-09-23 12:11:49 +02:00
Vladimír Čunát
b58d38c787 gnutls: 3.6.14 -> 3.6.15
Security: on-wire alert could cause NULL pointer dereference.
https://lists.gnupg.org/pipermail/gnutls-help/2020-September/004669.html
(cherry picked from commit 2363e6eb9c)
2020-09-23 10:40:58 +02:00
Cole Helbling
a780c60f9f nixos/stage-1: set up /dev/fd
Otherwise, stage-2-init.sh will complain about not having access to
/dev/fd/62 as of systemd v246.

On IRC, flokli said:

    15:14 <flokli> cole-h: hmmm... I could imagine some of the setup inside /dev has been moved into other parts of systemd
    15:14 <flokli> And given we run systemd much later (outside initramfs only) it doesn't work properly here
    15:17 <flokli> We probably don't invoke udev correctly

(cherry picked from commit 4586810487)
2020-09-23 09:58:23 +02:00
Vincent Laporte
9b0e8d7a29 why3: 1.3.1 -> 1.3.3
(cherry picked from commit 64b68b30e9)
2020-09-23 09:40:06 +02:00
Robert Scott
8c4d4eaa81 birdfont: fix build on non-nixos/debian systems
to do this we need to prevent platform.version() from using uname to
discover this is a debian kernel and try dpkg nonsense

(cherry picked from commit 0b67d9e87a)
2020-09-22 23:07:40 -07:00
Robert Scott
ff3baa2a56 xmlbird: fix build with python 3.8
also force use of gccStdenv to fix darwin build

(cherry picked from commit 781b870c91)
2020-09-22 23:07:40 -07:00
(cdep)illabout
aa37cc1e7a tests.haskell-shellFor: get compiling again
(cherry picked from commit bdc7deed613290588c2f77a4e0e65f98fa1562ff)
2020-09-22 23:05:24 -07:00
Jonathan Ringer
cc9d3bf73f nixos: now beta 2020-09-22 21:58:55 -07:00
Stig Palmquist
9214e9509b perl-cross: fix . being included in INC
perl-cross set `default_inc_excludes_dot` to undefined by default. This
sets `-Ddefault_inc_excludes_dot` explicitly when cross compiling.

(cherry picked from commit e2926577a1)
2020-09-22 17:06:37 -07:00
Vincent Laporte
bf55f0c071 coqPackages.metalib: 20170713 → 20200527
(cherry picked from commit a1f8e0b4a1)
2020-09-22 22:06:47 +02:00
Robert Scott
0b887c636f Merge pull request #98240 from Pamplemousse/backport_verilator
[20.09] verilator: 4.040 -> 4.100
2020-09-22 19:10:39 +01:00
Vladimír Čunát
888d3a4c37 Merge branch 'staging-20.09' into release-20.09
aarch64 and darwin still have a few thousand builds to finish,
but it seems OK to merge already.
2020-09-22 19:34:18 +02:00
William Kral
4eec4a7a75 python3Packages.word2vec: fix build and tests
(cherry picked from commit 6a4e785931)
2020-09-22 10:09:10 -07:00
Lancelot SIX
7e5277bcb2 pythonPackages.django: 2.2.15 -> 2.2.16
See https://docs.djangoproject.com/en/dev/releases/2.2.16/

(cherry picked from commit bd4805b659)
2020-09-22 17:18:15 +01:00
Vincent Laporte
6e31319063 hop: fix build
The configure process tries to escape the sandbox by writing into /tmp

(cherry picked from commit 943fa12e6a)
2020-09-22 16:16:57 +02:00
Claudio Bley
ba0bd29a1a tensorflow: Fix compilation with numpy 1.19.x
Numpy introduced a breaking API change in version 1.19.x, see [1].

There is a simple fix [2] available in the master branch.

[1]: https://github.com/tensorflow/tensorflow/issues/40688
[2]: 75ea0b3147

(cherry picked from commit 8f5bfd6af1)
2020-09-21 23:40:10 -07:00
Pamplemousse
8e0373f183 topydo: Don't fail build on tests
Signed-off-by: Pamplemousse <xav.maso@gmail.com>
(cherry picked from commit c603f62628)
2020-09-21 23:12:56 -07:00
Pamplemousse
14b64adfec verilator: 4.040 -> 4.100
Signed-off-by: Pamplemousse <xav.maso@gmail.com>
(cherry picked from commit 9839c0b292)
2020-09-21 19:56:42 -07:00
Vladimír Čunát
a3783f968b Merge #97970: thunderbird*-78: 78.2.1 -> 78.2.2 2020-09-21 21:35:22 +02:00
Vladimír Čunát
cdf6be7489 Merge #97922: nixosTests.signal-desktop: fix
(cherry picked from commit cf09899749)
2020-09-21 21:35:18 +02:00
Markus Kowalewski
969984bb84 slurm: 20.02.4.1 -> 20.02.5.1
(cherry picked from commit 84d11cdb40)
2020-09-21 21:19:06 +02:00
Vladimír Čunát
bfba40c197 thunderbird.meta.maintainers: add myself
I've been keeping an eye on it anyway, and the current meta.maintainers
don't seem to be active around thunderbird.

(cherry picked from commit d33267c639)
2020-09-21 21:01:37 +02:00
Vladimír Čunát
ac9d85f5a1 thunderbird-78: fix #97994: broken UI in 78.2.2
(cherry picked from commit 114202e369)
2020-09-21 21:01:07 +02:00
Bruno Bigras
b11f9622a7 nwg-launchers: 0.2.0 -> 0.3.3; fix nwggrid not showing apps
(cherry picked from commit 1d5fb043fa)
2020-09-21 11:11:13 -07:00
oxalica
dc925f544e nix-prefetch: fix compatibility with nixUnstable again 2020-09-21 19:52:38 +02:00
Gabriel Ebner
a8ec124a80 Merge pull request #98409 from drewrisinger/zhf/py-spyder-20.09
[20.09] spyder: fix build
2020-09-21 19:51:34 +02:00
Daniël de Kok
283adf1d1e freeoffice: 976 -> 978
Fixes #98385.

(cherry picked from commit ac49c2f72a)
2020-09-21 19:20:10 +02:00
Doron Behar
3bbf7d3a96 Merge pull request #98326 from schmittlauch/cawbird-v1.2.1-back
[20.09] cawbird: 1.1.0 -> 1.2.1
2020-09-21 19:28:42 +03:00
r-burns
7a5d897281 libversion: fix tests on Darwin (#98361)
(cherry picked from commit a2228f4c18)
cc #98361
2020-09-21 12:00:12 -04:00
Théo Zimmermann
4c1ae47e8c ocamlPackages.zarith: 1.9 -> 1.10
(cherry picked from commit 0bbeca2ff9)
2020-09-21 13:54:12 +02:00
Ryan Burns
39a54c9899 lizardfs: fix build
Build failure was due to upstream issue, now fixed in the v3.13 RC.

https://github.com/lizardfs/lizardfs/issues/655
https://github.com/lizardfs/lizardfs/pull/677
(cherry picked from commit f5a61c2604)
2020-09-21 06:51:10 -05:00
MetaDark
a4f66d2178 linuxPackages.xpadneo: 0.8.2 -> 0.8.3
(cherry picked from commit 3ac630bbe9)
2020-09-21 06:47:24 -05:00
Mario Rodas
40e8b267b6 Merge pull request #98344 from r-burns/openssh_hpn_backport
[20.09] openssh_hpn: fix source
2020-09-21 06:30:39 -05:00
Mario Rodas
69fe518870 Merge pull request #98355 from risicle/ris-vmmlib-fix-r20.09
[20.09] vmmlib: fix build
2020-09-21 06:25:45 -05:00
Ryan Burns
6ab3306a22 liboping: fix build on Darwin
(cherry picked from commit bf71f459d2)
2020-09-21 06:24:14 -05:00
r-burns
c4e178a4c6 iproute_mptcp: fix preConfigure (#97747) (#98378)
(cherry picked from commit d0edb00019)

Co-authored-by: freezeboy <freezeboy@users.noreply.github.com>
2020-09-21 10:39:46 +02:00
Vladimír Čunát
397fc9bd79 Merge branch 'release-20.09' into staging-20.09 2020-09-21 09:50:28 +02:00
Jonathan Ringer
775b368bb9 streamlit: fix build
(cherry picked from commit 07660b28bc)
2020-09-21 00:09:16 -07:00
Kirill Elagin
3f5944efc3 prometheus: Unbreak IPv6 listenAddress
The format of the listenAddress option was recently changed to separate
the address and the port parts. There is now a legacy check that
tells users to update to the new format. This legacy check produces
a false positive on IPv6 addresses, since they contain colons.

Fix the regex to make it not match colons within IPv6 addresses.

(cherry picked from commit a4afd525cb)
2020-09-21 08:14:30 +02:00
Vincent Laporte
cad20521d2 fontmatrix: 0.6.0 → 0.6.0-qt5 (#97800)
This is an unofficial port of Fontmatrix 0.6.0 to Qt5

Co-authored-by: symphorien <symphorien@users.noreply.github.com>
(cherry picked from commit 4e155d6be9)
2020-09-21 08:08:45 +02:00
Drew Risinger
24c19a6903 python3Packages.spyder: fix build
* Remove version locks that don't match what's in nixpkgs

(cherry picked from commit 3b6800c76a)
2020-09-20 23:48:18 -04:00
Mario Rodas
907dcbaac5 Merge pull request #98356 from risicle/ris-svgbob-fix-20.09
[20.09] svgbob: fix build
2020-09-20 21:07:15 -05:00
Robert Scott
b142f339bf svgbob: fix build
loosen lint settings

(cherry picked from commit a28068a992)
2020-09-21 00:27:46 +01:00
sohalt
36fe916089 sonic-lineup: 1.0.1 -> 1.1, fix build
(cherry picked from commit 60078b4662)
2020-09-20 15:39:40 -07:00
Ryan Burns
d395c81088 openssh_hpn: fix source
(cherry picked from commit f8473b1d39)
2020-09-20 15:32:49 -07:00
Robert Scott
29d5187e8c libgumath, pythonPackages.gumath: unstable-2018-11-27 -> unstable-2019-08-01
this is the most recent commit to upstream's master at time of writing

includes fixes of python package for darwin

(cherry picked from commit eb86bff30d)
2020-09-20 15:23:18 -07:00
Robert Scott
87186252a7 libxnd, pythonPackages.xnd: unstable-2018-11-27 -> unstable-2019-08-01
this is the most recent commit to upstream's master at time of writing

includes fixes of python package for darwin

(cherry picked from commit dcd6847ddb)
2020-09-20 15:23:18 -07:00
Robert Scott
15667a227a libndtypes, pythonPackages.ndtypes: unstable-2018-11-27 -> unstable-2019-08-01
this is the most recent commit to upstream's master at time of writing

includes fixes of python package for darwin

(cherry picked from commit 044533c99b)
2020-09-20 15:23:18 -07:00
Raphael Borun Das Gupta
5ec6c556af pythonPackages.mock-open: 1.3.2 -> 1.4.0
(cherry picked from commit 355d255d6c)
2020-09-20 15:22:54 -07:00
Raphael Borun Das Gupta
01f1b3850f pythonPackages.mock-open: 1.3.1 -> 1.3.2
(cherry picked from commit b103ddb9ab)
2020-09-20 15:22:54 -07:00
Robert Scott
40bc5616f5 vmmlib: fix build
provide lapack instead of blas, causing gaussian elimination tests to
no longer fail

remove some trailing spaces from the longDescription to please the linter.
sorry.

(cherry picked from commit 566605626c)
2020-09-20 23:11:00 +01:00
zowoq
640d5c9c6b gitAndTools.gh: 0.12.0 -> 1.0.0
https://github.com/cli/cli/releases/tag/v1.0.0
(cherry picked from commit ec63faba64)
2020-09-21 08:03:21 +10:00
zowoq
bab5197fb5 gitAndTools.gh: 0.11.1 -> 0.12.0
https://github.com/cli/cli/releases/tag/v0.12.0
(cherry picked from commit ec22086628)
2020-09-21 08:03:08 +10:00
Austin Butler
1db586cfc6 pythonPackages.glom: fix tests
(cherry picked from commit 05f994426f)
2020-09-20 14:33:15 -07:00
Cole Helbling
379f99e422 nixos-rebuild: add flake support for build-vm
This relies on users using `nixpkgs.lib.nixosSystem` to define their
system; otherwise, the `vm` and `vmWithBootLoader` attributes will not
exist.

(cherry picked from commit e26b348689)
2020-09-20 15:11:05 -04:00
Maximilian Bosch
3114b4586e matrix-synapse: 1.19.2 -> 1.19.3
https://github.com/matrix-org/synapse/releases/tag/v1.19.3
(cherry picked from commit 44c558b219)
2020-09-20 19:38:23 +02:00
Ben Darwin
45fea15a04 python3Packages.graspy: 0.2.0 -> 0.3.0
(cherry picked from commit 1179840f9a)
2020-09-20 09:29:15 -07:00
Ben Darwin
21230980fc python3Packages.hyppo: init at 0.1.3
(cherry picked from commit 5315ce0e40)
2020-09-20 09:29:15 -07:00
Martin Weinelt
fed9e9887d pythonPackages.junos_eznc: fix build
(cherry picked from commit a5f77e0583)
2020-09-20 08:21:14 -07:00
Martin Weinelt
7a31d95c73 pythonPackages.yamlordereddictloader: init at 0.4.0
(cherry picked from commit d956ed6ac8)
2020-09-20 08:21:14 -07:00
Martin Weinelt
6b57dab091 python3Packages.ntc-templates: init at 1.5.0
(cherry picked from commit 278d069304)
2020-09-20 08:21:14 -07:00
Martin Weinelt
fc3415f7db pythonPackages.textfsm: init at 1.1.1
(cherry picked from commit 6898bcff08)
2020-09-20 08:21:14 -07:00
Orivej Desh
aecec982d0 solfege: fix build with texinfo 6.7
makeinfo seems right to fail when input encoding is not declared and is not UTF-8.

texinfo was updated in #95910.

(cherry picked from commit 19f7f150a4)
2020-09-20 08:20:58 -07:00
Robert Scott
ff494d76ef pforth: fix build with patch
patch from upstream fixes build with gnumake>=4.3

(cherry picked from commit 7621c8b1fc)
2020-09-20 08:20:29 -07:00
Robert Scott
ca19375f50 sslyze: fix build
need to further relax cryptography module version requirements

(cherry picked from commit d61c16cda4)
2020-09-20 08:19:38 -07:00
Ryan Burns
b582883fd9 docker_18_09: fix build
The cross-compilation patch introduced in
https://github.com/NixOS/nixpkgs/pull/92140
fixes an issue introduced in Docker CE 19.03,
and will not apply to (and is not needed for)
previous versions.
2020-09-20 08:17:57 -07:00
Trolli Schmittlauch
6f77ca1405 cawbird: 1.1.0 -> 1.2.1
- regular version bump to 1.2.0, then bugfix release on top
- changes: see
    - https://github.com/IBBoard/cawbird/releases/tag/v1.2.0
    - https://github.com/IBBoard/cawbird/releases/tag/v1.2.1

(cherry picked from commit 0b3ffb512c)
2020-09-20 17:09:06 +02:00
Luflosi
bb83ca4039 youtube-dl: 2020.09.14 -> 2020.09.20
https://github.com/ytdl-org/youtube-dl/releases/tag/2020.09.20
(cherry picked from commit 907fd8d6f6)
cc #98319
2020-09-20 10:48:45 -04:00
Vladimír Čunát
cd88f36a97 Merge branch 'staging-20.09' into release-20.09
Rebuild of this commit is done, except for a few thousand darwin jobs.
2020-09-20 07:51:49 +02:00
WORLDofPEACE
67ba80396d celluloid: 0.19 -> 0.20
https://github.com/celluloid-player/celluloid/releases/tag/v0.20
(cherry picked from commit 670fe111f4)
2020-09-20 00:40:35 -04:00
Jonathan Ringer
5a6ec511b6 python3Packages.lightparam: fix source and deps
(cherry picked from commit 2a35f66439)
2020-09-19 20:28:30 -07:00
Dennis Gosnell
187a2da74e Merge pull request #98269 from KaiHa/pr/sbv-backport
haskellPackages.sbv: fix tests
2020-09-20 12:12:58 +09:00
Doron Behar
2311d65989 Merge pull request #98287 from bbigras/backport-gnome-timepp
[20.09] gnomeExtensions.timepp: unstable-2019-03-30 -> unstable-2020-03-15; unbreak pkg
2020-09-19 23:34:56 +03:00
Bruno Bigras
34acf56fa9 gnomeExtensions.timepp: unstable-2019-03-30 -> unstable-2020-03-15; unbreak package
(cherry picked from commit 1127b73eee)
2020-09-19 15:25:22 -04:00
Thomas Tuegel
6af88205cb Merge pull request #98273 from ttuegel/staging-20.09--mariadb-connector-c-multiple-outputs
mariadb-connector-c: multiple outputs
2020-09-19 13:35:23 -05:00
WORLDofPEACE
d1befddac3 Merge pull request #98170 from liff/zhf-backport/wordgrinder
[20.09] wordgrinder: fix build
2020-09-19 13:16:44 -04:00
WORLDofPEACE
76266a5fbf Merge pull request #98260 from ryantm/revertmonit
[20.09] Revert "nixos/monit: Allow splitting the config in multiple files"
2020-09-19 13:16:32 -04:00
Thomas Tuegel
d44e1ac0a7 mariadb-connector-c: multiple outputs
(cherry picked from commit c0825ddbe9)
2020-09-19 05:55:21 -05:00
Kai Harries
0c9bbf8bc2 haskellPackages.sbv: fix tests
By patching paths of the external provers and excluding not available
provers from the test.

ZHF: #97479
(cherry picked from commit f40afea417)
2020-09-19 11:59:35 +02:00
squalus
bfb429d7ec ungoogled-chromium: 84.0.4147.89-1 -> 85.0.4183.102-1
based on chromium master@05f5001c

(cherry picked from commit 54a0a400f2)
2020-09-19 11:50:34 +02:00
Olli Helenius
182c9afd70 wordgrinder: fix build
(cherry picked from commit 8cb1e75e3b)
2020-09-19 11:44:33 +03:00
Ryan Mulligan
ca33a6c3f0 Revert "nixos/monit: Allow splitting the config in multiple files"
(cherry picked from commit 61863c5155)
2020-09-18 22:02:22 -07:00
Anderson Torres
bea7aa233d Merge pull request #98254 from Mathnerd314/20.09-unnethack
[20.09] unnethack: 5.2.0 -> 5.3.2, fix build
2020-09-19 00:43:15 -03:00
Mathnerd314
d6d7be3baf unnethack: 5.2.0 -> 5.3.2 (#97595)
Co-authored-by: Jon <jonringer@users.noreply.github.com>
(cherry picked from commit 47ba35d6d4)
2020-09-18 19:51:21 -06:00
Jonathan Ringer
e7091baacc python3Packages.runway-python: add missing deps
(cherry picked from commit a9162ffdaa)
2020-09-18 18:44:33 -07:00
Jonathan Ringer
e81788363d python3Packages.hickle: disable tests
Incompatible with astropy>=4.0

(cherry picked from commit 389ab45924)
2020-09-18 18:41:41 -07:00
Jonathan Ringer
a57cd670b8 python2Packages.hickle: disable
```
  Processing ./hickle-4.0.1-py2-none-any.whl
  ERROR: Package 'hickle' requires a different Python: 2.7.18 not in '>=3.5'
```

(cherry picked from commit f1325cdfe7)
2020-09-18 18:41:41 -07:00
Robert Scott
c22c22bf64 Merge pull request #98236 from wkral/backport-py-irc
[20.09] python3Packages.irc: fix build
2020-09-19 02:23:57 +01:00
William Kral
fc18eddeef python3Packages.irc: fix build
(cherry picked from commit 7567bd6d89)
2020-09-18 14:54:53 -07:00
Peter Simons
497587ae2f haskell-headed-megaparsec: disable broken build
The package needs megaparsec 9.x, which we don't use by default.
2020-09-18 21:04:35 +02:00
Robert Scott
4910c6ba83 Merge pull request #98201 from povik/libiio-fix-backport
[20.09] python3.pkgs.libiio: fix build
2020-09-18 19:09:16 +01:00
William Kral
344d782f95 python3Packages.requests-aws4auth: fix build
(cherry picked from commit 5f0f2b85cb)
2020-09-18 10:19:32 -07:00
Martin Povišer
0bfcc861ab python3.pkgs.cartopy: 0.17 -> 0.18
Fixes build. Formerly cartopy tests were failing, likely since update of
matplotlib to 3.3.0.

(cherry picked from commit 20472523e7)
2020-09-18 10:18:29 -07:00
Tim Steinbach
e036652424 linux/hardened/patches/5.8: 5.8.9.a -> 5.8.10.a
(cherry picked from commit deea9b8a4a)
2020-09-18 08:39:07 -04:00
Tim Steinbach
e9c968a272 linux/hardened/patches/5.8: 5.8.8.a -> 5.8.9.a
(cherry picked from commit b585d60082)
2020-09-18 08:39:07 -04:00
Martin Povišer
cedbe71354 python3.pkgs.libiio: fix build
Add missing setuptools dependency.

(cherry picked from commit ce0a59cb9f)
2020-09-18 10:25:04 +02:00
Niklas Hambüchen
66cadca583 ntfy: Switch to python3. Also fixes test failure.
Fixes test error:

    AttributeError: 'module' object has no attribute 'test_prowl'

(cherry picked from commit 35593698d5)
2020-09-18 08:21:23 +02:00
Dmitry Kalinkin
774e3cb348 texlive: fix arara
(cherry picked from commit 37d65c8698)
cc #97609
2020-09-17 21:38:22 -04:00
Aaron Andersen
6f0f1bb64f Merge pull request #98017 from aanderse/tomcat-native
tomcat-native: 1.2.24 -> 1.2.25 [20.09]
2020-09-17 19:17:43 -04:00
Tim Steinbach
594723985c linux: 5.8.9 -> 5.8.10 2020-09-17 09:59:34 -04:00
Tim Steinbach
7eb8362d10 linux: 5.4.65 -> 5.4.66 2020-09-17 09:59:34 -04:00
Tim Steinbach
91968e58cf linux: 4.19.145 -> 4.19.146 2020-09-17 09:59:34 -04:00
Maximilian Bosch
e20e342bd5 react-native-debugger: fix eval
(cherry picked from commit 501eaab47a)
2020-09-17 14:53:49 +02:00
Demyan Rogozhin
df4c3f4fbd react-native-debugger: 0.9.10 -> 0.11.4
(cherry picked from commit 114ad1a7c5)
2020-09-17 14:53:49 +02:00
Demyan Rogozhin
def97800ce react-native-debugger: fix build
(cherry picked from commit e77d4ecac2)
2020-09-17 14:53:49 +02:00
Mauricio Collares
6c6f85e071 signal-desktop: ringrtc depends on libpulseaudio
voice/video calls should now work, fixing #98082

(cherry picked from commit 3df04beafc)
2020-09-17 14:22:10 +02:00
Frederik Rietdijk
06da165c5e Revert "python: gsd: 1.7.0 -> 1.9.3"
Incorrect update. Should not update the Python 2 version.

This reverts commit d1a46d4ff3.

(cherry picked from commit af92611103)
2020-09-17 11:36:57 +02:00
Lancelot SIX
95d45c2383 pythonPackages.pyslurm: mark as broken
(cherry picked from commit 00f16b7e0c)
2020-09-17 07:57:47 +01:00
Andrei Lapshin
8e68ff6b4b nixos/plasma5: Fix build with config.services.colord.enable = true
Fix build with enabled colord service after https://github.com/NixOS/nixpkgs/pull/97456

(cherry picked from commit 19b5ef48fc)
2020-09-17 00:42:15 -04:00
WORLDofPEACE
7df3404150 Merge pull request #98146 from mkg20001/cinrelback
[20.09] cinnamon release notes
2020-09-17 00:30:21 -04:00
Maciej Krüger
b13997485f release-notes: mention cinnamon
(cherry picked from commit bc3d459ceb)
2020-09-17 06:27:22 +02:00
ajs124
ad7755193f Merge pull request #98117 from tokudan/2009-matrix
matrix-synapse: 1.19.1 -> 1.19.2 [20.09]
2020-09-16 23:07:42 +02:00
Frederik Rietdijk
958394d55f pythonPackages: set qt version by overriding pkgs
(cherry picked from commit c88f3adb17)
2020-09-16 21:18:36 +02:00
ajs124
12822e9336 matrix-synapse: 1.19.1 -> 1.19.2
(cherry picked from commit 21779aece5)
2020-09-16 19:32:46 +02:00
Daniël de Kok
ee27689215 Merge pull request #98028 from danieldk/softmaker-office-1020-20.09
[20.09] softmaker-office: 1018 -> 1020
2020-09-16 06:52:28 +02:00
Anderson Torres
fd491ec80f Merge pull request #97764 from superherointj/release-20.09
[20.09] nixos/dmidecode: added recommended patches
2020-09-15 23:16:28 -03:00
Mario Rodas
ea4b39d48a nodejs-12_x: 12.18.3 -> 12.18.4
https://github.com/nodejs/node/releases/tag/v12.18.4
(cherry picked from commit 095a32182d)
2020-09-15 19:39:31 -05:00
Mario Rodas
05a6efb508 nodejs-10_x: 10.22.0 -> 10.22.1
https://github.com/nodejs/node/releases/tag/v10.22.1
(cherry picked from commit afeed1fe58)
2020-09-15 19:39:30 -05:00
Josef Kemetmüller
f3b68ac434 cli-visualizer: Fix build
(cherry picked from commit ce065c6251)
2020-09-15 11:47:35 -07:00
Jonathan Ringer
797c5a8141 python3Packages.graphite_beacon: fix deps, add nixos test
(cherry picked from commit 2003495474)
2020-09-15 11:10:19 -07:00
Matthew Bauer
914d526230 pytorch: update to use passthru's for checks
This makes the checks a little easier to understand - we can just
check it in the passthru. Also increase major check for cuda 11.

(cherry picked from commit c85fc341b0)
2020-09-15 10:43:57 -05:00
JesusMtnez
3b8ddb2f1e jitsi-meet-electron: 2.2.0 -> 2.3.1
(cherry picked from commit 5b19fa94ac)
2020-09-15 10:56:51 -04:00
Maximilian Bosch
1bb3a05a11 citrix_workspace: add 20.09.0
ChangeLog: https://docs.citrix.com/en-us/citrix-workspace-app-for-linux/whats-new.html#whats-new-in-2009

Also removed 19.12.0 which will be out of maintenance in April 2021
which is still within the lifetime of 20.09.

(cherry picked from commit b632ca6963)
2020-09-15 15:41:39 +02:00
Dennis Gosnell
7c27289295 Merge pull request #98019 from charukiewicz/release-20.09
hledger, hledger-lib, hledger-ui, and hledger-web: v1.19 -> v1.19.1
2020-09-15 21:16:46 +09:00
(cdep)illabout
5d77421642 hledger: 1.19 -> 1.19.1 2020-09-15 20:34:03 +09:00
Daniël de Kok
a46fae030f softmaker-office: 1018 -> 1020
(cherry picked from commit e2c8ae9881)
2020-09-15 08:22:59 +02:00
pancho horrillo
af8a177463 caddy1: fix build (#97988)
main.go gets overwritten in order to build caddy with telemetry
disabled, but the global variable `run` got neglected, and this in turn
broke the test in caddy/main_test.go.

This commit fixes that, and build can now complete.

(cherry picked from commit c814b0ef24)
2020-09-14 21:39:01 -07:00
Robert Scott
4c1163d755 pythonPackages.holidays: fix build by adding korean-lunar-calendar dependency
(cherry picked from commit 9fb14d899d)
2020-09-14 20:54:47 -07:00
Robert Scott
8ef4ff9a64 pythonPackages.korean-lunar-calendar: init at 0.2.1
(cherry picked from commit cf5a892a24)
2020-09-14 20:54:47 -07:00
nyanloutre
a40c69ed47 pythonPackage.python-gitlab: add missing tests requirements
(cherry picked from commit 9225192bf6)
2020-09-14 20:03:59 -07:00
charukiewicz
434540dbcd version bumps of hledger, hledger-lib, hledger-ui, and hledger-web from v1.19 to v1.19.1 2020-09-14 20:41:32 -05:00
Aaron Andersen
af23c989e9 tomcat-native: 1.2.24 -> 1.2.25
(cherry picked from commit cc34aad0d7)
2020-09-14 19:56:54 -04:00
Henri Menke
ded557901c nixos/shadowsocks: add test without plugin
(cherry picked from commit 9d60354fae)
2020-09-14 23:21:21 +02:00
Henri Menke
f16bc4cf54 nixos/shadowsocks: add extraConfig
(cherry picked from commit e587b5a8a8)
2020-09-14 23:21:09 +02:00
Florian Klink
d242782c7f bash-completion: disable tests
Unfortunately, they're very flaky. Let's disable them for now.

(cherry picked from commit 3bfdbea881)
2020-09-14 23:08:54 +02:00
Vincent Laporte
27c9f6f783 ott: 0.30 → 0.31
(cherry picked from commit cc4a33d78c)
2020-09-14 21:43:23 +02:00
Robert Scott
be6fc631bf Merge pull request #97956 from fgaz/zhf-backports/drawpile
[20.09] drawpile: fix build by adding libsecret
2020-09-14 20:02:50 +01:00
Maximilian Bosch
ba68572dea element-desktop: 1.7.5 -> 1.7.7
https://github.com/vector-im/element-desktop/releases/tag/v1.7.6
https://github.com/vector-im/element-desktop/releases/tag/v1.7.7
(cherry picked from commit 441818c4ff)
2020-09-14 19:11:09 +02:00
Maximilian Bosch
b6465d263d element-web: 1.7.5 -> 1.7.7
https://github.com/vector-im/element-web/releases/tag/v1.7.6
https://github.com/vector-im/element-web/releases/tag/v1.7.7
(cherry picked from commit 33d02b3396)
2020-09-14 19:11:09 +02:00
Josef Kemetmüller
ffe2d44646 python.pkgs.geopandas: 0.8.0 -> 0.8.1
This fixes the geopandas build, which did break with the update of
pandas from 1.0.5 to 1.1.0.

(cherry picked from commit dc2e45e3e5)
2020-09-14 09:56:33 -07:00
Florian Klink
a1abac1f1f systemd: 246 -> 246.4
This bumps systemd to the latest stable maintenance release.

 - dc2e82af33 core: create per-user inaccessible node from the service manager
 - 0b3c497347 nspawn,pid1: pass "inaccessible" nodes from cntr mgr to pid1 payload via /run/host
 - 2239965c29 coredump: don't convert s → µs twice
 - 61d29b7f8c firstboot: fill empty color if ansi_color unavailable from os-release
 - 9678a3daf6 varlink: do not parse invalid messages twice
 - 4e516dcbc1 userdbctl: add forgotten --output mode in help
 - aee20dfbd8 shared/{user,group}-record-nss: adjust filtering of "valid" passwords
 - 5933d77afe doc: cross link sd_listen_fd() docs a bit
 - 97fdde3239 Rework how we cache mtime to figure out if units changed
 - 0500968241 core: always try to reload not-found unit
 - 8ae22f0d64 pid1: use the cache mtime not clock to "mark" load attempts
 - 715507c277 core: rename manager_unit_file_maybe_loadable_from_cache()
 - 20ad76d0a7 man: document fd ownership for sd-bus fd marshalling
 - 38ae73fafd resolved: make sure we initialize t->answer_errno before completing the transaction
 - a1ba0fbef6 homed: fix log message to honor real homework path
 - d6b1e659b3 src/shared/dissect-image.c: fix build without blkdid (#16901)
 - e42f9add21 analyze: fix error handling in one case
 - 4804ce1488 units: add missing usb-gadget.target
 - 5ad4e68c37 man: extend on the usec/sec discrepancy
 - 2fb612371d login/logind: Include sys/stat.h for struct stat usage
 - 5e884e7ee0 partition/makefs: Include missing sys/file.h header
 - 7bbc3807da network: dhcp6: logs only new address
 - 2056429e0f Don't run test-repart when loop devices are not available
 - dcbea51c5a man: clarify that several networkctl commands takes device names
 - 16e4cfcc82 networkctl: label command does not take any argument
 - 2352921244 missing: Add new Linux capability
 - 8b29c4a4f9 tty-ask-pw-agent: properly propagate error
 - f7ce2e9839 tty-ask-pw-agent: the message string might not be set
 - 29cba5c9ef tty-ask-pw-agent: make sure "--list" works correctly
 - e1ce367d73 add "list" verb to autocompleted commands
 - 1f4cb5da1e shell-completion/zsh: add missing verbs for networkctl
 - a4236a2764 path: Improve $PATH search directory case
 - b7cef386bd path: Skip directories when finalising $PATH search
 - 122945f315 rules: don't install 80-drivers.rules when kmod is disabled
 - 42fab2d454 zsh: correct journalctl command completion parsing
 - ed3f97f962 basic/missing_syscall: fix syscall numbers for arm64 :(
 - ba6e7f7c46 shared/install: fix preset operations for non-service instantiated units
 - d39f139348 nss-resolve: treat BUS_ERROR_NO_SUCH_UNIT the same as SD_BUS_ERROR_SERVICE_UNKNOWN too
 - 9bb3e64d71 various: treat BUS_ERROR_NO_SUCH_UNIT the same as SD_BUS_ERROR_SERVICE_UNKNOWN
 - 6d802dd596 man: drop reference to long gone .busname unit type
 - a29656804b man: fix a fix of a typo in systemd.service example
 - 21ce0f5b33 network: can: Fix CAN initialization
 - cab5cde8c9 man: update autogenerated dbus api lists
 - 0d8000522b man: fix invalid tag place
 - ea94f218be man: add conditionals to more man pages
 - ef91325349 meson: add ENABLE_ANALYZE conditional
 - 83f7c0a7ec core: add missing conditions/asserts to unit file parsing
 - 716718155d analyze: rework condition testing
 - 5c4c7581bc sd-bus: fix error handling on readv()
 - 6cd058f305 user-runtime-dir: deal gracefully with missing logind properties
 - 6a2d73638d shared/seccomp: do not use ifdef guards around textual syscall names
 - 7355ac9689 machine-id-setup: don't use KVM or container manager supplied uuid if in chroot env
 - 496a71f444 man: Fix typo in systemd-tmpfiles
 - 6c5d216ad8 homework: downgrade chattr failure log message
 - 1708f06a00 homework: explicitly close cryptsetup context, to not keep loopback device busy
 - a21eaa2a3a homework: correct error passed into log message
 - 3a2d169f36 homework: sync everything to disk before we rename LUKS loopback file into place
 - 84e1ab74d2 homed: downgrade quota message in containers
 - 8b62cadf36 analyze-security: do not assign badness to filtered-out syscalls
 - 29854a5437 NEWS: clarify two points
 - 4cb4fb82f7 meson: add min version for libfdisk
 - 76331f86f6 load-fragment: fix grammar in error messages
 - 1e53c2d70f Fix function description in logind man page
 - 669066564d network: do not fail if UseMTU=yes on DHCP lease lost
 - a2a3f16cdc missing_syscall: do not use function name that may conflict with glibc
 - 4091dcd469 missing_syscall: fix pidfd_{send_signal,open} numbers for alpha
 - 7875daf52b network: wait for previous address removal before configuring static addresses
 - 120064b4a1 network: only process non-error message
 - f44ec1de15 test: accept that char device 0/0 can now be created witout privileges
 - 946e4c43bb tools/make-man-index: fix purpose text that contains tags
 - dae0586e91 test-fs-util: skip encrypted path test if we get EACCES
 - 0d026c9b0d Newer Glibc use faccessat2 to implement faccessat
 - fde6520d46 namespace: fix minor memory leak
 - 208ba581f4 man: fix incorrectly placed full stop
 - 6c81d57828 man: fix typo
 - 53a8d2588e bless-boot: add missing verb to --help
 - 4cfa0ac4fd user-record: deal with invalid GECOS fields gracefully
 - ae5234ef48 user-util: add mangle_gecos() call for turning strings into fields suitable as GECOS fields
 - 972391ac39 fix typo in systemctl help
 - 443aacfcda man: clarify that LogNamespace= is for system services only
 - 5aec8fe54e _sd-common.h: avoid parsing errors with Coverity
 - f9ad4ea2ca analyze: fix 'cat-config systemd/zram-generator.conf'
 - dda6fec1df man: describe that changing Storage= does not move existing data
 - 2bbd33e476 core: reset bus error before reuse
 - b81504a3c7 nspawn: Fix incorrect usage of putenv
 - cb263973ac man: fix typo in systemd.service
 - 73b432e7ef network: fix DHCPv6 Prefix Delegation example after option rename

(cherry picked from commit 6c5e621bad)
2020-09-14 18:48:31 +02:00
Doron Behar
5605f3acee Merge pull request #97725 from drewrisinger/zhf/parso-20.09
[20.09] python3Packages.parso: disable on python 2.7
2020-09-14 19:45:47 +03:00
Nikolay Korotkiy
ba10637048 pythonPackages.timezonefinder: fix build
(cherry picked from commit 9c0a900a9d)
2020-09-14 17:14:47 +01:00
Tim Steinbach
5f5d8947d2 linux: 5.8.8 -> 5.8.9 2020-09-14 08:43:59 -04:00
Tim Steinbach
c71f07ec88 linux: 5.4.64 -> 5.4.65 2020-09-14 08:43:59 -04:00
Tim Steinbach
30c2a51ad0 linux: 4.9.235 -> 4.9.236 2020-09-14 08:43:59 -04:00
Tim Steinbach
cfde64b305 linux: 4.4.235 -> 4.4.236 2020-09-14 08:43:59 -04:00
Tim Steinbach
b07cb146f7 linux: 4.19.144 -> 4.19.145 2020-09-14 08:43:59 -04:00
Tim Steinbach
9447a07a10 linux: 4.14.197 -> 4.14.198 2020-09-14 08:43:59 -04:00
Doron Behar
23ff83bbf8 gotify-cli: Add version and commit to ldflags
(cherry picked from commit b027fc3df8)
2020-09-14 12:56:10 +02:00
taku0
c37c04ee7e thunderbird-bin: 78.2.1 -> 78.2.2
(cherry picked from commit eff618541e)
2020-09-14 19:30:03 +09:00
taku0
1b2aa767ec thunderbird: 78.2.1 -> 78.2.2
(cherry picked from commit 5bcc37d79e)
2020-09-14 19:30:02 +09:00
adisbladis
4ee4f7ce83 Merge pull request #97965 from elohmeier/bp-qtstylepluginsfix
[20.09] qtstyleplugins: Fix build with qt>=5.15
2020-09-14 12:29:56 +02:00
adisbladis
5cc3d11f3e qtstyleplugins: Fix build with qt>=5.15
(cherry picked from commit ff6c3a9e34)
2020-09-14 09:46:48 +02:00
Maximilian Bosch
c1dbaed781 top-level: fix nix-shell eval w/nixUnstable
For a full description of the underlying issue please read
https://github.com/NixOS/nix/issues/4003

(cherry picked from commit fa6064ad86)
2020-09-14 09:10:53 +02:00
Luflosi
8af2978ed7 youtube-dl: 2020.09.06 -> 2020.09.14
https://github.com/ytdl-org/youtube-dl/releases/tag/2020.09.14
(cherry picked from commit 4a11f046a6)
2020-09-14 08:52:35 +02:00
Francesco Gazzetta
2bea9c2267 drawpile: fix build by adding libsecret
(cherry picked from commit 1c8d65f940)
2020-09-14 08:05:45 +02:00
WORLDofPEACE
f6ef6485e3 Merge pull request #97929 from TethysSvensson/fixBusybox-20.09
[20.09] busybox: Fix 404 error by using git instead
2020-09-14 00:36:17 -04:00
Anderson Torres
c13c1a21cd Merge pull request #97932 from OPNA2608/backport-20.09-update-palemoon-28.13.0
[20.09] palemoon: 28.12.0 -> 28.13.0
2020-09-14 01:11:13 -03:00
Christoph Neidahl
48b66b89ba palemoon: 28.12.0 -> 28.13.0
(cherry picked from commit 5efe403c93)
2020-09-13 23:08:48 +02:00
Tethys Svensson
e09e7a88cd busybox: Use git to fetch debian.script from debian
Debian has yanked the upstream tarball we use to get default.script. We
could simply bump the version number to get the new tarball, but to
avoid the problem in the future, we should instead fetch it from git.

(cherry picked from commit a9597f9573)
2020-09-13 22:13:59 +02:00
Tethys Svensson
f6d9962180 fetchgitlab: Escape a few more characters in the revision
(cherry picked from commit 43cd431b44)
2020-09-13 22:13:55 +02:00
freezeboy
5d5307af50 python2Packages.green: remove
(cherry picked from commit 96acb3a772)
2020-09-13 10:25:12 -07:00
marius david
2a7ea4b1ff instead: 3.3.1 -> 3.3.2; fix compilation
(cherry picked from commit 43d9d1d7d8)
2020-09-13 09:40:52 -07:00
freezeboy
7d6f1c0784 python2Packages.cx_Freeze: remove
(cherry picked from commit e3912be86a)
2020-09-13 09:38:18 -07:00
Robert Scott
0e96315492 Merge pull request #97900 from freezeboy/backport-cfn-lint
[20.09] cfn-lint: fixed importlib_resources version bounds
2020-09-13 16:23:28 +01:00
freezeboy
a4f291932a python2Packages.flask-api: remove (#97766) (#97901) 2020-09-13 16:51:44 +02:00
Matthieu Coudron
3e2c474358 Merge pull request #97909 from risicle/ris-pulp-fix-r20.09
[20.09] pythonPackages.pulp: fix by adding new dependency amply
2020-09-13 16:50:30 +02:00
Robert Scott
c551ac874b pythonPackages.pulp: fix by adding new dependency amply
(cherry picked from commit 26e023bfa7)
2020-09-13 14:37:43 +01:00
Robert Scott
1c3b1c29ec pythonPackages.amply: init at 0.1.2
(cherry picked from commit c305f3fac3)
2020-09-13 14:37:36 +01:00
Robert Scott
7cbec82872 pythonPackages.httpx: fix tests
test suite contained a literal timestamp which expired, fixed upstream

(cherry picked from commit 92a9db2e3e)
2020-09-13 15:22:30 +02:00
freezeboy
8dc96c40be cfn-lint: fixed importlib_resources version bounds
Also, added import checks to have a minimal test for the package

(cherry picked from commit 037b8aefef)
2020-09-13 14:02:10 +02:00
Robert Scott
67906104b7 Merge pull request #97896 from freezeboy/backport-lp_solve
[20.09] Backport lp solve
2020-09-13 11:33:20 +01:00
freezeboy
38fad02bda lp_solve: fix buildCommand some binaries moved
(cherry picked from commit 3fc3fd14cf)
2020-09-13 12:09:57 +02:00
Vincent Laporte
567e4a93cd ocamlPackages.batteries: 3.0.0 → 3.1.0
(cherry picked from commit e2dffb60a5)
2020-09-13 12:00:18 +02:00
Vladimír Čunát
21398f8334 Merge #97612: firefox-esr-68: drop
(cherry picked from commit 544c8dbdfb)
2020-09-13 09:55:21 +02:00
Robert Scott
195daf80b5 Merge #97847 python27Packages.anytree: fix build
(cherry picked from commit 9a8bd1e564)
2020-09-13 08:38:07 +02:00
Ryan Mulligan
df2a179eb7 nixos/jitsi-meet: add docs
(cherry picked from commit 531c08a1d9)
2020-09-12 22:03:23 -07:00
Jörg Thalheim
39dfaa4da7 python3.pkgs.python-language-server: fix jedi integration
recent jedi/parso versions uses Path instead of str.

(cherry picked from commit b99096b1f0)
2020-09-12 21:54:16 -07:00
Jörg Thalheim
b88dd6ec20 python3.pkgs.jedi: fix compatibility with parso
The current version is fundamentally broken as tested with
python-language-server because parso now uses Path instead of str
in many instances.

Backporting of the fixes is not trivial and likely breaks more stuff
than it fixes due to other refactorings in jedi, hence using a recent
commit in master seems more reasonably.

(cherry picked from commit 12a9a93d68)
2020-09-12 21:54:16 -07:00
Jörg Thalheim
520b4e9690 python3.pkgs.python-language-server: 0.33.1 -> 0.34.1
(cherry picked from commit b0a8c8af6f)
2020-09-12 21:54:16 -07:00
Jörg Thalheim
caf305b548 python-engineio: 3.13.0 -> 3.13.2 (fix build)
(cherry picked from commit 12fc3e0718)
2020-09-12 21:54:16 -07:00
Robert Scott
e0508c8180 Merge pull request #97824 from wkral/backport-python-minio-test-fix
[20.09] python3Packages.minio: fix cred tests
2020-09-13 02:35:25 +01:00
Robert Scott
562672a3d6 Merge pull request #97858 from treed/backport-acme-client-zhf
[20.09] acme-client: build with gcc
2020-09-13 02:11:38 +01:00
Martin Weinelt
2f3fff09bb Merge pull request #97874 from mweinelt/20.09/hass
[20.09] home-assistant: drop protobuf override
2020-09-13 02:54:10 +02:00
Martin Weinelt
8d112e8898 home-assistant: drop protobuf override
aioesphome was updated to 2.6.3 which requires protobuf>=3.12.2,<4.0.

(cherry picked from commit 68c4099d73)
2020-09-13 01:59:15 +02:00
Sarah Brofeldt
81a70da6e3 Merge pull request #97869 from srhb/bp-kb-1.19.1
20.09: Merge pull request #96446 from saschagrunert/k8s
2020-09-13 01:12:16 +02:00
Anderson Torres
063598ce0b Merge pull request #97854 from wkral/backport-ytree-fix
[20.09] ytree: fix build
2020-09-12 19:55:30 -03:00
Sarah Brofeldt
5115acdc7e Merge pull request #96446 from saschagrunert/k8s
kubernetes: 1.18.8 -> 1.19.1
(cherry picked from commit 701064bb10)

Backport of #96446
2020-09-13 00:47:50 +02:00
Vladimír Čunát
093ae1b549 Merge branch 'staging-20.09' into release-20.09
It's not the latest commit but the one with binaries available.
2020-09-12 22:10:40 +02:00
Vladimír Čunát
ea62e2144e gcc10: 10.1.0 -> 10.2.0
(cherry picked from commit 51ccf2d4ba)
It's supposed to be just bugfixes and it isn't used much so far.
2020-09-12 22:10:25 +02:00
Ted Reed
590026b08f acme-client: build with gcc
acme-client fails to build with clang, which breaks the build on darwin.

(cherry picked from commit e45ddaeddf)
2020-09-12 12:58:20 -07:00
Gabriel Ebner
4d730eebf3 python3Packages.websockets: make tests deterministic
(cherry picked from commit b5fcd79c3f)
2020-09-12 21:48:20 +02:00
Vincent Laporte
183b44daa3 ocamlPackages.ptmap: 2.0.4 → 2.0.5
(cherry picked from commit 5f83bf3012)
2020-09-12 21:34:39 +02:00
Vincent Laporte
8ee39f837e reason: 3.6.0 → 3.6.2
(cherry picked from commit d3e701f5f7)
2020-09-12 21:33:55 +02:00
William Kral
db7c226abd ytree: fix build
(cherry picked from commit 0a10ec483b)
2020-09-12 10:52:07 -07:00
Maximilian Bosch
5573fdc6b4 gotify-server: fix UI
In version 2.0.15 `gotify` switched to `packr` at 2.x which is why the
UI can't be served properly via HTTP and causes an empty 500 response and
the following errors in `journald`:

```
2020/09/12 19:18:33 [Recovery] 2020/09/12 - 19:18:33 panic recovered:
GET / HTTP/1.1
Host: localhost:8080
Accept: */*
User-Agent: curl/7.72.0

stat /home/ma27/Projects/ui/build/index.html: no such file or directory
```

This wasn't caught by the VM-test as it only tested the REST and push
APIs. Using their internal `packr.go` script in our build as it's the
case in the upstream build-system[1] fixes the issue.

[1] https://github.com/gotify/server/pull/277/files#diff-b67911656ef5d18c4ae36cb6741b7965R48

(cherry picked from commit 4a559f8fee)
2020-09-12 19:32:36 +02:00
freezeboy
387364f9fe newman: init at 5.2.0 (#97838)
(cherry picked from commit 554c1c4c24)
2020-09-12 15:29:44 +00:00
freezeboy
37fd028ec1 jackmix, jackmix_jack1: fix build, add alsaLib dependency (#97843)
(cherry picked from commit 6dafaa5258)
2020-09-12 15:22:16 +00:00
Frederik Rietdijk
1ff85d4c4b Revert "utils.bash: revert #93560 for darwin, unblocks channels"
Revert the hack and the original faulty commit.

This reverts commit 48264ee506105a2f5e61e5d327599e9f301bd77f.

Revert "Purity checking should accept $TMP and not just /tmp"

This reverts commit fb777be7d2.

(cherry picked from commit e560459c5b)
2020-09-12 08:43:35 +02:00
Frederik Rietdijk
1402752a68 Revert "utils.bash: also "fix" cc-wrapper and pkg-config-wrapper"
Follow up to the revert in e560459c5b.

This reverts commit 1936b11f63.

(cherry picked from commit 5ceea5705a)
2020-09-12 08:43:35 +02:00
Jonathan Ringer
4946cc3aec python3Packages.minio: fix cred tests
(cherry picked from commit 9716fcd940)
2020-09-11 19:52:20 -07:00
WORLDofPEACE
a49bcf5971 gnome-3: freeze for 20.09 2020-09-11 20:52:44 -04:00
Thomas Tuegel
a5028307e9 Merge pull request #97802 from ttuegel/staging-20.09--97670
kconfigwidgets: install plugin in .out
2020-09-11 18:17:18 -05:00
WORLDofPEACE
e2aba0636b Merge pull request #97741 from endgame/aws-sam-cli-bounds-backport
[20.09] aws-sam-cli: fix version bounds
2020-09-11 16:54:42 -04:00
Thomas Tuegel
d998cbb8b2 kconfigwidgets: install plugin in .out
(cherry picked from commit d489e70a08)
2020-09-11 15:29:39 -05:00
Jack Kelly
ce2ffef438 aws-sam-cli: fix version bounds
(cherry picked from commit 1e67b4a64633998bd850393a7abcf8e386f80f8a)
2020-09-12 06:18:02 +10:00
Tethys Svensson
cda641eb95 nixos/systemd-boot: Temporarily ignore errors
This is a temporary fix for #97433. A more proper fix has been
implemented upstream in systemd/systemd#17001, however until it gets
backported, we are stuck with ignoring the error.

After the backport lands, this commit should be reverted.

(cherry picked from commit b32701bc54)
2020-09-11 22:10:33 +02:00
Félix Baylac-Jacqué
b668c6a1e9 Merge pull request #97755 from andir/20.09/prosody-0-11-6
[20.09] prosody: 0.11.5 -> 0.11.6
2020-09-11 21:58:41 +02:00
WORLDofPEACE
72fdecc8d2 nixos/gdm: fix option descriptions
If we use '' '' for strings with mkEnableOption they get a trailing space
before the period.

(cherry picked from commit b552ded466)
2020-09-11 14:15:13 -04:00
Emery Hemingway
53b3834022 nim: remove stdlib indirection in wrapper
Fix #97601
2020-09-11 20:02:19 +02:00
WORLDofPEACE
281c8991a2 nixos/tools/nixos-install: add jq to path
(cherry picked from commit a39ad85726)
2020-09-11 13:04:03 -04:00
WORLDofPEACE
2cb819c0d6 Merge pull request #97786 from ttuegel/release-20.09--97669
plasma-workspace: fix path to qdbus
2020-09-11 12:02:20 -04:00
WORLDofPEACE
ff343f1106 Merge pull request #97787 from ttuegel/release-20.09--97735
nixos/plasma5: fix build with hardware.bluetooth.enable = true
2020-09-11 12:00:55 -04:00
Orivej Desh
1f9f801f71 nixos/plasma5: fix build with hardware.bluetooth.enable = true after #97456
(cherry picked from commit 21b2900bd4)
2020-09-11 10:57:05 -05:00
Thomas Tuegel
b2f6053415 plasma-workspace: remove dependency on qtbase.dev
(cherry picked from commit 3bdf44875a)
2020-09-11 10:53:01 -05:00
Vladimír Čunát
e2bf65470e Merge branch 'staging-20.09' into release-20.09
It's all rebuilt: https://hydra.nixos.org/eval/1612452
2020-09-11 15:26:08 +02:00
Domen Kožar
18f9a651f5 Merge pull request #97749 from Luflosi/backport-j
[20.09] j: fix build on darwin
2020-09-11 14:29:34 +02:00
Maximilian Bosch
3fdb6b8801 bandwhich: 0.17.0 -> 0.18.1
ChangeLogs:

* https://github.com/imsnif/bandwhich/releases/tag/0.18.1
* https://github.com/imsnif/bandwhich/releases/tag/0.18.0

Also applied a fix[1] for rDNS support which broke with `systemd-v246`
because the `resolv-conf` crate didn't support the `options
trust_ad`-declaration in systemd's `/etc/resolv.conf`[2].

[1] https://github.com/imsnif/bandwhich/pull/184
[2] https://github.com/imsnif/bandwhich/issues/166#issuecomment-691014450

(cherry picked from commit 8149ab158b)
2020-09-11 14:11:29 +02:00
Vladimír Čunát
3f99424c9a Merge #97746: test-driver.py: defaulting keepVmState
(cherry picked from commit 2bb1868f76)
I re-checked some of the regressed tests on 20.09.
2020-09-11 13:52:33 +02:00
superherointj
3b5a1fb0d0 nixos/dmidecode: added recommended patches
Co-authored-by: Jörg Thalheim <Mic92@users.noreply.github.com>
(cherry picked from commit d284d3203a)
2020-09-11 08:47:13 -03:00
Lassulus
ae8cbb739f Merge pull request #97712 from nyanloutre/maj_electron_cash_20_09
electron-cash: 4.0.14 -> 4.1.0
2020-09-11 13:07:44 +02:00
Félix Baylac-Jacqué
e9f3523736 prosody: 0.11.5 -> 0.11.6
See https://blog.prosody.im/prosody-0.11.6-released/ for the release
notes.

(cherry picked from commit b47cabb6ac)
2020-09-11 12:16:12 +02:00
Luflosi
efc358ed37 [20.09] j: fix build on darwin
(cherry picked from commit fbefec0)
2020-09-11 11:37:35 +02:00
Michael Weiss
2b4b36a3eb signal-desktop: 1.35.1 -> 1.36.1
(cherry picked from commit f192636304)
2020-09-11 11:30:45 +02:00
Martin Weinelt
8ab64ff68a pythonPackages.supervisor: drop glibc-2.31 patch
A fix was integrated into the 4.2.1 release.

(cherry picked from commit 4607f02589)
2020-09-11 11:17:25 +02:00
Maximilian Bosch
947219c33e wdisplays: fix startup on sway 1.5
Starting `wdisplays` on a NixOS 20.09 with `sway-1.5` breaks with the
following output:

```
(wdisplays:28400): Gtk-WARNING **: 10:26:38.619: Could not load a pixbuf from /org/gtk/libgtk/theme/Adwaita/assets/bullet-symbolic.svg.
This may indicate that pixbuf loaders or the mime database could not be found.
Gdk-Message: 10:26:38.752: Error reading events from display: Success
```

The first two warnings can be fixed by adding `wrapGAppsHook`. The last
error is an upstream bug that can be fixed by applying the patch from a
pending PR[1].

[1] https://github.com/cyclopsian/wdisplays/pull/20

(cherry picked from commit 0a21d06682)
2020-09-11 11:12:22 +02:00
Raghav Sood
be3cb555a4 solc: 0.6.8 -> 0.7.1
(cherry picked from commit 3fab5dda5ba1c7b4c0c5f79341c256abe631efc3)
2020-09-11 13:44:07 +08:00
Drew Risinger
2e4b24fab7 python3Packages.parso: disable on python 2.7
* Disabled on python 2.7
* Updated meta
* Changed to pytestCheckHook

(cherry picked from commit 8f6436a825)
2020-09-10 20:37:42 -04:00
Robert Scott
da320dba12 pythonPackages.pysnow: fix build & tests
(cherry picked from commit 9627ae4f9a)
2020-09-10 16:59:51 -07:00
Robert Scott
ddfce992cd pythonPackages.pyjet: fix tests
tests are now pytest tests, and not included in the pypi tarball

(cherry picked from commit ef82f49fc0)
2020-09-10 16:58:58 -07:00
Robert Scott
1b14d6e44d Merge pull request #97704 from treed/backport-rpm-darwin
[20.09] rpm: add openmp when building with clang
2020-09-11 00:57:00 +01:00
Robert Scott
44cbbdcf22 pythonPackages.pq: fix build
we can't run the tests anyway, so remove fragile attempts to patch them

(cherry picked from commit 70c56dd486)
2020-09-10 16:56:29 -07:00
Robert Scott
5d891798e2 pythonPackages.hiredis: fix tests
just requires the source-directory-hiding trick

(cherry picked from commit 483fa86c36)
2020-09-10 16:56:23 -07:00
zowoq
2b26ce72c7 go_1_14: 1.14.8 -> 1.14.9
(cherry picked from commit 619061532a)
2020-09-11 09:54:48 +10:00
zowoq
1e190dd3ce go: 1.15.1 -> 1.15.2
(cherry picked from commit 240d8246e8)
2020-09-11 09:54:36 +10:00
Daniël de Kok
f1784d3bc6 clpeak: fix build
The build of clpeak recently started failing because opencl-clhpp was
updated. The latest version of opencl-hpp does not ship the deprecated
cl.hpp header anymore.

(cherry picked from commit 5f6738228d)
2020-09-10 16:47:47 -07:00
Drew Risinger
b6a1ccd933 python3Packages.nmigen: fix build
Tried to debug failure & traced it to subprocess.Popen calling fork_exec()
with a bad path, but couldn't reproduce error from manual debugging
using ``nix-shell``.

Bad path meaning that most paths were of form /nix/store/.../bin/sby,
but one path was "sby" only. That's my only guess as to what would
be causing this failure.

(cherry picked from commit b03c729c88)
2020-09-10 15:21:37 -07:00
Maximilian Bosch
0e9a35b52c vorta: 0.7.0 -> 0.7.1
https://github.com/borgbase/vorta/releases/tag/v0.7.1
(cherry picked from commit 195842dd86)
2020-09-10 23:55:13 +02:00
Jonathan Ringer
d9717d34a0 python3Packages.executor: 21.3 -> 23.1, fix tests
(cherry picked from commit 5916b96370)
2020-09-10 14:45:23 -07:00
nyanloutre
889e9ff4e5 electron-cash: 4.0.14 -> 4.1.0
(cherry picked from commit d3958aa3fa)
2020-09-10 23:41:00 +02:00
Tethys Svensson
2c239b1e95 discord-canary: 0.0.111 -> 0.0.112
(cherry picked from commit 1937fd3f19)
2020-09-10 14:26:46 -07:00
Tethys Svensson
afeff10b59 discord-ptb: 0.0.21 -> 0.0.22
(cherry picked from commit 3ca40eebf9)
2020-09-10 14:26:46 -07:00
Tethys Svensson
4055b3a225 discord: 0.0.11 -> 0.0.12
(cherry picked from commit 977147bd04)
2020-09-10 14:26:46 -07:00
Ted Reed
f70d5740f3 rpm: add openmp when building with clang
The Darwin build has been broken with a missing header file "omp.h";
llvmPackages.openmp provides it.

Including this library is only necessary when clang is used.

(cherry picked from commit b8e0f0cd72)
2020-09-10 13:19:26 -07:00
Vincent Laporte
1d71e17fb4 coqPackages.Verdi: enable for Coq 8.12
(cherry picked from commit 5f3be6b669)
2020-09-10 22:14:12 +02:00
Vincent Laporte
8df6852749 coqPackages.paco: enable for Coq 8.12
(cherry picked from commit 7f797b9521)
2020-09-10 22:11:15 +02:00
arcnmx
f96ce3a5a6 Fix arch eval error introduced in #61019
This occurs when using a `platform.gcc.arch` that isn't one of the
pre-existing hard-coded options.

(cherry picked from commit 8f3efbde4e)
2020-09-10 14:49:11 -05:00
Félix Baylac-Jacqué
5500dc83c3 test-driver.py: fix VM state directory deletion
The previous version of the code would only kick in if the state
directory path pointed at a *file*, which never occurs. Making that
codepath actually work reveals an ordering bug, which this patch fixes
as well.

It also replaces the confusing, imperative case log message "delete VM
state directory" with "deleting VM state directory".

Finally, we hint the user about how to prevent this deletion. IE. by
passing the --keep-vm-state flag.

Bug report:
https://github.com/NixOS/nixpkgs/pull/91046#issuecomment-685568750

Credit goes to Edef for the rebase on top of a recent nixpkgs commit
and for writing most of this commit message.

Co-authored-by: edef <edef@edef.eu>
(cherry picked from commit ecb73fd555)
2020-09-10 21:31:49 +02:00
Dominique Martinet
c3dea4d115 systemd-confinement: handle ExecStarts etc being lists
systemd-confinement's automatic package extraction does not work correctly
if ExecStarts ExecReload etc are lists.

Add an extra flatten to make things smooth.

Fixes #96840.

(cherry picked from commit fd196452f0)
2020-09-10 21:17:53 +02:00
Robert Scott
06fc6d1d7f Merge pull request #97676 from danieldk/age-backport
[20.09] postgresqlPackages.age: fix build
2020-09-10 19:42:00 +01:00
Izorkin
2aec639e1c nixos/nginx: remove option enableSandbox
(cherry picked from commit 535896671b)
2020-09-10 20:34:30 +02:00
Vladimír Čunát
5c60bbb987 nixos release notes: fixup build after #96991
(cherry picked from commit ec49caa0b0)
2020-09-10 19:59:20 +02:00
WORLDofPEACE
f4c73ef127 Merge pull request #97593 from Patryk27/fix-lxd-tests-backport-20.09
[20.09] lxd: Backport #97550
2020-09-10 13:16:23 -04:00
WORLDofPEACE
4b87b6f516 Merge pull request #97648 from immae/fix_ejabberd
[20.09] ejabberd: fix failing tests
2020-09-10 13:15:49 -04:00
WORLDofPEACE
d8845663d9 Merge pull request #97637 from erikarvstedt/fix-pypkgs-20.09
[20.09] Fix paperless and other Python pkgs
2020-09-10 13:15:32 -04:00
WORLDofPEACE
6ce30567ba Merge pull request #97636 from ryneeverett/backport-lxpanel-20.03-zhf
[20.09] lxpanel: fix build by switching to gdk-pixbuf-xlib
2020-09-10 13:13:46 -04:00
Gabriel Ebner
92947e4ae0 mlton: use $TMPDIR
(cherry picked from commit 213feab38a)
2020-09-10 18:11:27 +02:00
Daniël de Kok
3cdd40ed27 postgresqlPackages.age: fix build
The build broke by a recent bison update. Use bison_3_5.

(cherry picked from commit 58b66c0dcb)
2020-09-10 17:58:57 +02:00
Ismaël Bouya
faf2373e8f nagios: fix build
The compiler complains about dl* function missing, this commit adds the
necessary flag to pass to gcc to make it build correctly

(cherry picked from commit 213623e291)
2020-09-10 08:55:33 -07:00
Mikolaj Galkowski
b8de5a6834 unityhub: update to 2.3.2
(cherry picked from commit 60c3ade786)
2020-09-10 17:09:21 +02:00
Mikolaj Galkowski
3a757abce1 unityhub: fix editor with versions >= 2020.1.3f1 not opening
(cherry picked from commit 1c4de332c3)
2020-09-10 17:09:20 +02:00
Gabriel Ebner
4e43b8a9e7 Merge pull request #97625 from drewrisinger/zhf/pyfakefs-20.09
[20.09] python3Packages.pyfakefs: disable on py2.7
2020-09-10 16:38:20 +02:00
Tim Steinbach
9a3d3bbd90 jenkins: 2.235.5 -> 2.249.1 2020-09-10 10:36:54 -04:00
Tim Steinbach
59407f47bb linux/hardened/patches/5.8: 5.8.7.a -> 5.8.8.a 2020-09-10 10:36:46 -04:00
Tim Steinbach
07f3bf7c8d linux/hardened/patches/5.4: 5.4.63.a -> 5.4.64.a 2020-09-10 10:36:46 -04:00
Tim Steinbach
eca85f3930 linux/hardened/patches/4.19: 4.19.143.a -> 4.19.144.a 2020-09-10 10:36:46 -04:00
Tim Steinbach
4bcb41d47e linux/hardened/patches/4.14: 4.14.196.a -> 4.14.197.a 2020-09-10 10:36:46 -04:00
Tim Steinbach
e305495a58 linux: 5.8.7 -> 5.8.8 2020-09-10 10:36:46 -04:00
Tim Steinbach
43003fb2c2 linux: 5.4.63 -> 5.4.64 2020-09-10 10:36:46 -04:00
Tim Steinbach
699b8d3deb linux: 4.19.143 -> 4.19.144 2020-09-10 10:36:46 -04:00
Tim Steinbach
49243408ee linux: 4.14.196 -> 4.14.197 2020-09-10 10:36:46 -04:00
Ismaël Bouya
1a8d8dd6a6 ejabberd: fix failing tests
This commit fixes the ejabberd tests for hydra:

mod_http_upload and mod_disco need to be explicitly enabled, and a
handler needs to be setup to make it work. Also, the client needs to be
able to contact the server.

The commit also fixes the situation where http upload failed: in that
case the client would wait forever because nothing catched the error.

Finally, there remains a non-reproducible error where ejabberd server
fails to start with an error like:
format: "Failed to create cookie file '/var/lib/ejabberd/.erlang.cookie': eacces"
(happens ~15%) I tried to check existence of /var/lib/ejabberd/ in
pre-start script and saw nothing that would explain this error, so I
gave up about this error in particular.

(cherry picked from commit cdaec7e9ed)
2020-09-10 12:03:49 +02:00
Michael Weiss
5a27ca12f9 chromium: 85.0.4183.83 -> 85.0.4183.102
https://chromereleases.googleblog.com/2020/09/stable-channel-update-for-desktop.html

This update includes 5 security fixes.

CVEs:
CVE-2020-6573 CVE-2020-6574 CVE-2020-6575 CVE-2020-6576 CVE-2020-15959

(cherry picked from commit a9c78519d6)
2020-09-10 10:24:00 +02:00
William Kral
4a1d2f7507 jwt-cli: fix build
(cherry picked from commit fb5a153c26)
2020-09-10 17:19:18 +10:00
Erik Arvstedt
83bc4e3caa paperless: fix build
Paperless was dependent on older older versions of recently updated
Python packages.
2020-09-10 09:14:54 +02:00
Erik Arvstedt
72c9c5bea5 python3Packages.django_extensions: 2.2.8 -> 3.0.8 2020-09-10 09:14:54 +02:00
Erik Arvstedt
79693de9a7 python3Packages.django-picklefield: fix tests 2020-09-10 09:14:54 +02:00
ryneeverett
803517d3d1 lxpanel: fix build by switching to gdk-pixbuf-xlib
The build has been broken since gdk-pixbuf-xlib was broken out into a
separate package in #88086.

For some reason if I just add gdk-pixbuf-xlib.dev the headers don't make it
into CFLAGS.

(cherry picked from commit 5b49a74747)
2020-09-10 07:12:37 +00:00
Gabriel Ebner
87aa949c77 nixos/qt5ct: do not require qtstyleplugins
These do not build with qt 5.15.

(cherry picked from commit 4bf695e988)
2020-09-10 08:51:45 +02:00
Patryk Wychowaniec
5585bd755d lxd: s/sha256/hash
(cherry picked from commit 183d9abdaf)
2020-09-10 07:45:33 +02:00
Patryk Wychowaniec
567bec03f5 lxd: add wait_for_file() to ensure LXD is actually running
(cherry picked from commit 93b8435915)
2020-09-10 07:45:29 +02:00
Patryk Wychowaniec
d5442b726f lxd: use stable URL for Alpine's image
(cherry picked from commit 04111cb356)
2020-09-10 07:45:07 +02:00
Vincent Laporte
16b3748827 coqPackages.paramcoq: init at 1.1.2 for Coq 8.12
(cherry picked from commit 6e08d23707)
2020-09-10 07:00:21 +02:00
Jörg Thalheim
ed443268ce nixos/installer: enable sshd by default
Right now the UX for installing NixOS on a headless system is very bad.
To enable sshd without physical steps users have to have either physical
access or need to be very knowledge-able to figure out how to modify the
installation image by hand to put an `sshd.service` symlink in the
right directory in /nix/store. This is in particular a problem on ARM
SBCs (single board computer) but also other hardware where network is
the only meaningful way to access the hardware.

This commit enables sshd by default. This does not give anyone access to
the NixOS installer since by default. There is no user with a non-empty
password or key. It makes it easy however to add ssh keys to the
installation image (usb stick, sd-card on arm boards) by simply mounting
it and adding a keys to `/root/.ssh/authorized_keys`.
Importantly this should not require nix/nixos on the machine that
prepare the installation device and even feasiable on non-linux systems
by using ext4 third party drivers.

Potential new threats: Since this enables sshd by default a
potential bug in openssh could lead to remote code execution. Openssh
has a very good track-record over the last 20 years, which makes it
far more likely that Linux itself would have a remote code execution
vulnerability. It is trusted by millions of servers on many operating
systems to be exposed to the internet by default.

Co-authored-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
(cherry picked from commit a5872edf2f)
2020-09-10 06:15:32 +02:00
Drew Risinger
9c17cc2510 python3Packages.pyfakefs: disable on py2.7
* No longer supports python < 3.5, so disabled.
* Enables tests that were disabled due to bugs.
* Add changelog

(cherry picked from commit a9d7ea7781a4e7726932ca0d2ffa876abc02c06f)
2020-09-09 23:18:50 -04:00
worldofpeace
26c98e742f rl-2009: document rngd
(cherry picked from commit ca674c1769)
2020-09-09 21:54:07 -04:00
nicoo
fc5f50a949 nixos/modules/security/rngd: Disable by default
`rngd` seems to be the root cause for slow boot issues, and its functionality is
redundant since kernel v3.17 (2014), which introduced a `krngd` task (in kernel
space) that takes care of pulling in data from hardware RNGs:

> commit be4000bc4644d027c519b6361f5ae3bbfc52c347
> Author: Torsten Duwe <duwe@lst.de>
> Date:   Sat Jun 14 23:46:03 2014 -0400
>
>     hwrng: create filler thread
>
>     This can be viewed as the in-kernel equivalent of hwrngd;
>     like FUSE it is a good thing to have a mechanism in user land,
>     but for some reasons (simplicity, secrecy, integrity, speed)
>     it may be better to have it in kernel space.
>
>     This patch creates a thread once a hwrng registers, and uses
>     the previously established add_hwgenerator_randomness() to feed
>     its data to the input pool as long as needed. A derating factor
>     is used to bias the entropy estimation and to disable this
>     mechanism entirely when set to zero.

Closes: #96067
(cherry picked from commit e64d3f60fb)
2020-09-09 21:54:07 -04:00
Piotr Bogdan
159760a955 nixos/openvpn: path now requires conversion to a string
Following changes in https://github.com/NixOS/nixpkgs/pull/91092 the `path` attribute is now a list
instead of being a string. This resulted resulted in the following evaluation error:

"cannot coerce a list to a string, at [...]/nixos/modules/services/networking/openvpn.nix:16:18"

so we now need to convert it to the right type ourselves.

Closes https://github.com/NixOS/nixpkgs/issues/97360.

(cherry picked from commit cb141359bf)
2020-09-10 02:03:25 +02:00
WORLDofPEACE
6294ee2fbd Merge pull request #97604 from mkg20001/rolling
[20.09] cinnamon fixes
2020-09-09 19:08:20 -04:00
Maciej Krüger
03c54b978f nixos/cinnamon: add warpinator & blueberry pkgs
(cherry picked from commit 8c4dd13e3f)
2020-09-09 23:55:15 +02:00
Maciej Krüger
8b6f99c4c5 cinnamon.warpinator: license fix
(cherry picked from commit 9b9d0fd5d5)
2020-09-09 23:55:15 +02:00
Maciej Krüger
28dec5fe33 cinnamon.warpinator: init at 1.0.8
(cherry picked from commit bf9e9cd08a)
2020-09-09 23:55:15 +02:00
Robert Hensing
3b50998b4f Merge pull request #97490 from risicle/ris-jug-fix-r20.09
[20.09] pythonPackages.jug: fix tests
2020-09-09 22:59:13 +02:00
Maximilian Bosch
820c16b2e2 pass-wayland: use proper derivation for .withExtensions
The `pass.withExtensions`-function uses `buildEnv` to create a
derivation which contains a `pass`-package and a list of extensions for
it.

However, this function always uses the `pass`-attribute for `buildEnv` which
will break e.g. `passmenu` or `pass show -c` on desktops using Wayland (and
`pass-wayland.withExtensions`) since the default `pass`-package without
support for Wayland's clipboard is used.

This patch replaces the `pass`-attribute in the derivation with
`pass-wayland` to work around this issue.

(cherry picked from commit 1186c16889)
2020-09-09 22:51:18 +02:00
Robert Hensing
32c45947ab Merge pull request #97508 from OPNA2608/backport-20.09-palemoon-wrapping-libpulseaudio
[20.09] palemoon: Add libpulseaudio to wrapper
2020-09-09 22:47:38 +02:00
Gabriel Ebner
b0349fc6e1 ncftp: do not override $TMPDIR
(cherry picked from commit 07999f480b)
2020-09-09 22:13:35 +02:00
Milan Pässler
1309be91f1 flashrom: fix aarch64 build
(cherry-picked from commit f7e0ff0f35)
2020-09-09 21:18:08 +02:00
WORLDofPEACE
9089e5aad5 Merge pull request #97580 from zookatron/release-20.09
[20.09] csvkit: fix failing test
2020-09-09 15:06:44 -04:00
WORLDofPEACE
fc35e4da08 Merge pull request #97573 from woffs/recoll-qt5-20.09
[20.09] recoll: qt4 -> qt5, fix build
2020-09-09 15:05:59 -04:00
Gabriel Ebner
a824b76b79 mlton: use callPackage
(cherry picked from commit ad0d43e1a7)
2020-09-09 20:51:03 +02:00
Gabriel Ebner
3a8c2b75c2 mlton: fix build
(cherry picked from commit a7f9d336b7)
2020-09-09 20:51:03 +02:00
Tim Zook
ca58161d1c [20.09] csvkit: fix failing test
The build for this package was failing due to failing tests that were caused by a breaking change in a dependency. The requirements.txt for this package does not pin specific versions so it was trying to build with the new version of the dependency and failing. This commit overrides the version of the dependency that is used to build the package.

(cherry picked from commit 32c9ee2cfc)
2020-09-09 13:29:19 -05:00
Robert Scott
c6e9ba3d89 pythonPackages.jug: fix tests
these seem to have switched to pytest tests in 2.0.2

(cherry picked from commit 570dbab975)
2020-09-09 19:21:05 +01:00
WilliButz
3265417378 codimd: build with nodejs-12_x instead of nodejs-10_x
The codimd test is now exposed via passthru.tests

(cherry picked from commit 46e3949819)
2020-09-09 19:48:52 +02:00
William Kral
786a346d0b python3Packages.jq: 0.1.8 -> 1.0.2
(cherry picked from commit cf54ef99b6)
2020-09-09 10:39:59 -07:00
Frank Doepper
ab77e4d4a4 recoll: qt4 -> qt5, fix build
(cherry picked from commit 9cdfa8adc2)
2020-09-09 19:39:37 +02:00
WORLDofPEACE
1d6f2020d1 Merge pull request #97567 from cole-h/release-20.09
[20.09] verilog: unstable-2019-08-01 -> unstable-2020-08-24
2020-09-09 12:59:58 -04:00
Cole Helbling
ea1009728a verilog: unstable-2019-08-01 -> unstable-2020-08-24
The build would previously fail due to a change in bison's behavior (see
5b699c1be7
for more information). Updating to a more recent version fixes this
issue.

(cherry picked from commit 339f6248f6)
2020-09-09 09:51:12 -07:00
Thomas Tuegel
8d94bf05d2 Merge pull request #97524 from ttuegel/staging-20.09--plasma5-qt-5.12
[20.09] Plasma 5: Revert to Qt 5.12
2020-09-09 11:45:29 -05:00
makefu
46f14c8f1b pythonPackages.pyhaversion: py3k only
(cherry picked from commit b30dfc4f4b)
2020-09-09 18:30:38 +02:00
makefu
f053f1c83e pythonPackages.aresponses: only py3k
(cherry picked from commit 467dcc5b75)
2020-09-09 18:30:36 +02:00
Tim Steinbach
ca0615ca4a linux/hardened/patches/5.8: init at 5.8.7.a 2020-09-09 12:25:58 -04:00
Tim Steinbach
0be4612d3c linux/hardened/patches/5.4: 5.4.61.a -> 5.4.63.a 2020-09-09 12:25:58 -04:00
Tim Steinbach
8e78d438a0 linux/hardened/patches/4.19: 4.19.142.a -> 4.19.143.a 2020-09-09 12:25:58 -04:00
Tim Steinbach
1b136af5a0 linux/hardened/patches/4.14: 4.14.195.a -> 4.14.196.a 2020-09-09 12:25:58 -04:00
Tim Steinbach
e8bcb18ed8 linux: 5.4.62 -> 5.4.63 2020-09-09 12:25:58 -04:00
Tim Steinbach
86b2fa90c3 Merge pull request #97288 from Atemu/update/linux_5_8
linux_5_8: 5.8.6 -> 5.8.7
2020-09-09 12:25:43 -04:00
Frederik Rietdijk
0615f935d9 Merge release-20.09 into staging-20.09 2020-09-09 18:21:46 +02:00
WORLDofPEACE
b8244d1f3f Merge pull request #97559 from fgaz/zhf-backports/maintainers-build-fix
[20.09] maintainers/build: skip packages without meta
2020-09-09 12:21:25 -04:00
WORLDofPEACE
81d088f79d Merge pull request #97558 from minijackson/jellyfin-stateVersion-20.09-releaseNotes-backport
[20.09] Jellyfin state version 20.09 release notes backport
2020-09-09 12:12:36 -04:00
Francesco Gazzetta
558d5ce485 maintainers/build: skip packages without meta
Some packages do not have a meta attribute, and made the script crash.

(cherry picked from commit b4496d4095)
2020-09-09 18:06:39 +02:00
Minijackson
57414330ce nixos/jellyfin: document stateVersion 20.09 in release notes
(cherry picked from commit ad48050cad)
2020-09-09 18:03:44 +02:00
Vladimír Čunát
e6ff3ab9df Merge #97528: aegisub: fix build with make 4.3
(cherry picked from commit e7979aadea)
2020-09-09 17:56:58 +02:00
WORLDofPEACE
dfafbfb4cf Merge pull request #97552 from prusnak/electron-20.09
[20.09] Electron updates
2020-09-09 11:51:59 -04:00
midchildan
b55a44dd66 dmd: relax ld purity check for checkPhase
Fix #97420

(cherry picked from commit 5e8e75a0c6)
ZHF: #97479
Fixes #97549
2020-09-09 11:49:49 -04:00
WORLDofPEACE
fe7ff327f3 Merge pull request #97554 from arapov/release-20.09
[20.09] nodePackages.node-red: fix build
2020-09-09 11:48:11 -04:00
Pavol Rusnak
a049411995 1password-gui: move required electron version to package definition
(cherry picked from commit 1c10ce66c5)
2020-09-09 17:40:59 +02:00
worldofpeace
0281de09d3 electron: move definition into generic.nix
(cherry picked from commit 504750252a)
2020-09-09 17:40:54 +02:00
Pavol Rusnak
d04dd0af69 electron_7: 7.3.1 -> 7.3.3
(cherry picked from commit 6954f77845)
2020-09-09 17:40:48 +02:00
Pavol Rusnak
b4c85510a4 electron_8: 8.3.1 -> 8.5.1
(cherry picked from commit 4599eb4595)
2020-09-09 17:40:43 +02:00
Pavol Rusnak
e579db441e electron_9: 9.0.2 -> 9.3.0
(cherry picked from commit b7f0533d2a)
2020-09-09 17:40:39 +02:00
Pavol Rusnak
86e0afa4ed electron_10: init at 10.1.1
(cherry picked from commit 8d9fadd3e0)
2020-09-09 17:40:34 +02:00
Anton Arapov
08d766de1c nodePackages.node-red: fix build
resolves issue #89205

Signed-off-by: Anton Arapov <arapov@gmail.com>
(cherry picked from commit e5701710e3)
2020-09-09 17:40:08 +02:00
WORLDofPEACE
3ea149361a Merge pull request #97547 from IvarWithoutBones/backport-xwallpaper
[20.09] xwallpaper: remove libseccomp dependency
2020-09-09 11:07:43 -04:00
IvarWithoutBones
6aca5b354b xwallpaper: formatting fix
(cherry picked from commit cff6e7b161)
2020-09-09 17:01:23 +02:00
IvarWithoutBones
89c2e38e83 xwallpaper: remove libseccomp dependency
(cherry picked from commit 4008f2c6ea)
2020-09-09 17:01:06 +02:00
Thomas Tuegel
195158b278 appstream-qt: multiple outputs 2020-09-09 10:59:37 -04:00
Thomas Tuegel
c70f96ca59 nixos/plasma5: use qt512 2020-09-09 10:59:37 -04:00
Thomas Tuegel
37a2b71b52 sddm: use qt512 2020-09-09 10:59:37 -04:00
Thomas Tuegel
14bd8c888b colord-kde: use qt512 2020-09-09 10:59:37 -04:00
Thomas Tuegel
f101cb2d47 khotkeys: not broken with qt512 2020-09-09 10:59:37 -04:00
Thomas Tuegel
ce4eb0b79b plasma5: pin to qt512 2020-09-09 10:59:37 -04:00
Vladimír Čunát
8ab01ebd34 knot-resolver: 5.1.2 -> 5.1.3
https://gitlab.nic.cz/knot/knot-resolver/-/tags/v5.1.3
(cherry picked from commit 3c45610ddd)
It contains primarily bugfixes, and 20.09 only just forked anyway.
2020-09-09 16:55:25 +02:00
worldofpeace
fbf9074f92 Merge remote-tracking branch 'upstream/release-20.09' into staging-20.09 2020-09-09 10:25:52 -04:00
WORLDofPEACE
234823228a Merge pull request #97537 from taku0/flashplayer-32.0.0.433_20.09
[20.09] flashplayer: 32.0.0.414 -> 32.0.0.433
2020-09-09 10:22:45 -04:00
taku0
b9599213f7 flashplayer: 32.0.0.414 -> 32.0.0.433
(cherry picked from commit 807e4ae439)
2020-09-09 21:40:07 +09:00
Maximilian Bosch
3f4fc5fa29 python3Packages.todoist: fix build
See https://hydra.nixos.org/build/126777642
ZHF #97479

(cherry picked from commit f961ac6695)
2020-09-09 13:36:58 +02:00
volth
f59e416056 perlPackages: group aliases 2020-09-09 09:35:36 +00:00
volth
7980e04dcc undo efc70eb6d7 2020-09-09 09:35:36 +00:00
volth
eedd4746f7 [cpan2nix] perlPackages.NetAmazonS3: 0.89 -> 0.91 2020-09-09 09:35:31 +00:00
volth
f820e2aeee [cpan2nix] perlPackages.Catmandu: 1.2012 -> 1.2013 2020-09-09 09:35:29 +00:00
volth
ca32556a66 [cpan2nix] perlPackages.CatalystDevel: 1.40 -> 1.41 2020-09-09 09:35:26 +00:00
volth
64508a8ce5 [cpan2nix] perlPackages.CatalystXScriptServerStarman: cleanup 2020-09-09 09:35:26 +00:00
volth
c72f059d2f [cpan2nix] perlPackages.DistZillaPluginTestPodLinkCheck: cleanup 2020-09-09 09:35:18 +00:00
volth
c0c72c4f75 [cpan2nix] perlPackages.CatalystPluginSessionStateCookie: 0.17 -> 0.18 2020-09-09 09:35:17 +00:00
volth
8644d1975f [cpan2nix] perlPackages.CatalystViewTT: 0.44 -> 0.45 2020-09-09 09:35:14 +00:00
volth
4e41dd4f3d [cpan2nix] perlPackages.CatalystPluginStaticSimple: cleanup 2020-09-09 09:35:10 +00:00
volth
82a1f311a3 [cpan2nix] perlPackages.CatalystPluginConfigLoader: 0.34 -> 0.35 2020-09-09 09:35:10 +00:00
volth
664d7997c7 [cpan2nix] perlPackages.DistZilla: cleanup 2020-09-09 09:35:09 +00:00
volth
f624344dab [cpan2nix] perlPackages.Connector: 1.28 -> 1.32 2020-09-09 09:35:03 +00:00
volth
a564ff17c6 [cpan2nix] perlPackages.HTMLFormFu: cleanup 2020-09-09 09:35:02 +00:00
volth
5b51533bb7 [cpan2nix] perlPackages.TestLWPUserAgent: cleanup 2020-09-09 09:34:54 +00:00
volth
704ee7c114 [cpan2nix] perlPackages.PlackMiddlewareDebug: cleanup 2020-09-09 09:34:54 +00:00
volth
ad49ed3ec5 [cpan2nix] perlPackages.LWPUserAgentDNSHosts: 0.13 -> 0.14 2020-09-09 09:34:53 +00:00
volth
2021d942c4 [cpan2nix] perlPackages.DBIxClassHelpers: cleanup 2020-09-09 09:34:53 +00:00
volth
e09f3a9f86 [cpan2nix] perlPackages.TestFakeHTTPD: 0.08 -> 0.09 2020-09-09 09:34:52 +00:00
volth
1ab3d002b1 [cpan2nix] perlPackages.AppSqitch: cleanup 2020-09-09 09:34:48 +00:00
volth
071d7f5b84 [cpan2nix] perlPackages.RTClientREST: cleanup 2020-09-09 09:34:37 +00:00
volth
0337f17edd [cpan2nix] perlPackages.TestPodLinkCheck: cleanup 2020-09-09 09:34:33 +00:00
volth
1a54bf5857 [cpan2nix] perlPackages.MooseXMethodAttributes: 0.31 -> 0.32 2020-09-09 09:34:23 +00:00
volth
58880b4bff [cpan2nix] perlPackages.DataVisitor: 0.30 -> 0.31 2020-09-09 09:34:21 +00:00
volth
0a912213d6 [cpan2nix] perlPackages.LaTeXML: cleanup 2020-09-09 09:34:18 +00:00
volth
9979866b49 [cpan2nix] perlPackages.DateTimeFormatNatural: 1.09 -> 1.10 2020-09-09 09:34:13 +00:00
volth
096afd1caf [cpan2nix] perlPackages.Moose: 2.2012 -> 2.2013 2020-09-09 09:34:12 +00:00
volth
f35fad0059 [cpan2nix] perlPackages.AnyEventRabbitMQ: cleanup 2020-09-09 09:34:08 +00:00
volth
72c87f6cd6 [cpan2nix] perlPackages.DateTimeFormatISO8601: 0.08 -> 0.14 2020-09-09 09:34:07 +00:00
volth
8c923f4db8 [cpan2nix] perlPackages.DateTimeFormatBuilder: 0.82 -> 0.83 2020-09-09 09:34:06 +00:00
volth
647590b224 [cpan2nix] perlPackages.CodeTidyAll: cleanup 2020-09-09 09:34:05 +00:00
volth
62dc8a9c1a [cpan2nix] perlPackages.DateTimeFormatStrptime: cleanup 2020-09-09 09:34:05 +00:00
volth
f6207d98d3 [cpan2nix] perlPackages.DateTime: cleanup 2020-09-09 09:34:04 +00:00
volth
416f244b6a [cpan2nix] perlPackages.AppClusterSSH: 4.15 -> 4.16 2020-09-09 09:34:04 +00:00
volth
f61a8abc99 [cpan2nix] perlPackages.CryptOpenPGP: cleanup 2020-09-09 09:34:03 +00:00
volth
4069d5e7a2 [cpan2nix] perlPackages.DateTimeLocale: 1.25 -> 1.28 2020-09-09 09:34:02 +00:00
volth
42583462d4 [cpan2nix] perlPackages.TestPerlTidy: cleanup 2020-09-09 09:34:02 +00:00
volth
ab32d4aa9d [cpan2nix] perlPackages.LogDispatchouli: 2.019 -> 2.022 2020-09-09 09:34:02 +00:00
volth
f1d60433a3 [cpan2nix] perlPackages.W3CLinkChecker: cleanup 2020-09-09 09:34:01 +00:00
volth
1ab9f21c8a [cpan2nix] perlPackages.CPANUploader: 0.103014 -> 0.103015 2020-09-09 09:33:57 +00:00
volth
9fcde078d6 [cpan2nix] perlPackages.MetaCPANClient: 2.026000 -> 2.028000 2020-09-09 09:33:56 +00:00
volth
7f66a318d5 [cpan2nix] perlPackages.ModuleCPANTSAnalyse: cleanup 2020-09-09 09:33:56 +00:00
volth
78eaafcdd2 [cpan2nix] perlPackages.Mojomysql: 1.19 -> 1.20 2020-09-09 09:33:55 +00:00
volth
1aa2c65be5 [cpan2nix] perlPackages.CGICompile: 0.24 -> 0.25 2020-09-09 09:33:54 +00:00
volth
0cb9374396 [cpan2nix] perlPackages.Appperlbrew: cleanup 2020-09-09 09:33:53 +00:00
volth
8b7fbf5fea [cpan2nix] perlPackages.LogDispatch: 2.69 -> 2.70 2020-09-09 09:33:52 +00:00
volth
4519f37cfb [cpan2nix] perlPackages.DateTimeTimeZone: cleanup 2020-09-09 09:33:51 +00:00
volth
370b81b477 [cpan2nix] perlPackages.MojoSQLite: 3.003 -> 3.004 2020-09-09 09:33:42 +00:00
volth
2970f34b79 [cpan2nix] perlPackages.WWWMechanize: cleanup 2020-09-09 09:33:41 +00:00
volth
379c8208cb [cpan2nix] perlPackages.CryptSSLeay: cleanup 2020-09-09 09:33:39 +00:00
volth
2dcd8314e4 [cpan2nix] perlPackages.HTMLMason: cleanup 2020-09-09 09:33:38 +00:00
volth
c7072aeb19 [cpan2nix] perlPackages.SQLTranslator: cleanup 2020-09-09 09:33:37 +00:00
volth
f98994bbe2 [cpan2nix] perlPackages.GnuPGInterface: cleanup 2020-09-09 09:33:36 +00:00
volth
abbe385ff3 [cpan2nix] perlPackages.CPANMini: cleanup 2020-09-09 09:33:33 +00:00
volth
fa4709b069 [cpan2nix] perlPackages.SystemCommand: cleanup 2020-09-09 09:33:30 +00:00
volth
66dc4bab06 [cpan2nix] perlPackages.DevelDeclare: cleanup 2020-09-09 09:33:28 +00:00
volth
219fb726dc [cpan2nix] perlPackages.AlienGMP: cleanup 2020-09-09 09:33:28 +00:00
volth
feb71b35b9 [cpan2nix] perlPackages.LWPProtocolHttps: 6.07 -> 6.09 2020-09-09 09:33:27 +00:00
volth
5aad49e0f2 [cpan2nix] perlPackages.ApacheAuthCookie: cleanup 2020-09-09 09:33:27 +00:00
volth
21313abd0c [cpan2nix] perlPackages.MojoPg: cleanup 2020-09-09 09:33:25 +00:00
volth
e8d6b3aa4e [cpan2nix] perlPackages.HTTPEntityParser: 0.22 -> 0.24 2020-09-09 09:33:24 +00:00
volth
e33e4cae4a [cpan2nix] perlPackages.XMLLibXML: cleanup 2020-09-09 09:33:22 +00:00
volth
6801304d30 [cpan2nix] perlPackages.Alienm4: cleanup 2020-09-09 09:33:19 +00:00
volth
0955083540 [cpan2nix] perlPackages.XMLParser: 2.44 -> 2.46 2020-09-09 09:33:19 +00:00
volth
d8431c8a24 [cpan2nix] perlPackages.Alienpatch: cleanup 2020-09-09 09:33:16 +00:00
volth
614ede7e98 [cpan2nix] perlPackages.TemplateToolkit: 3.008 -> 3.009 2020-09-09 09:33:16 +00:00
volth
d3a4685159 [cpan2nix] perlPackages.NetFreeDB: cleanup 2020-09-09 09:33:15 +00:00
volth
a77c437ec2 [cpan2nix] perlPackages.Mouse: cleanup 2020-09-09 09:33:15 +00:00
volth
8747a8d521 [cpan2nix] perlPackages.LWP: 6.45 -> 6.47 2020-09-09 09:33:14 +00:00
volth
21cc537394 [cpan2nix] perlPackages.SQLAbstract: cleanup 2020-09-09 09:33:13 +00:00
volth
b68e2f1153 [cpan2nix] perlPackages.HTMLFormatTextWithLinks: cleanup 2020-09-09 09:33:13 +00:00
volth
31985af51f [cpan2nix] perlPackages.OpenAPIClient: 0.24 -> 0.25 2020-09-09 09:33:12 +00:00
volth
fdb84e00b1 [cpan2nix] perlPackages.MooXlate: cleanup 2020-09-09 09:33:12 +00:00
volth
369aae6e4d [cpan2nix] perlPackages.GamesSolitaireVerify: cleanup 2020-09-09 09:33:11 +00:00
volth
6222174269 [cpan2nix] perlPackages.CGIEmulatePSGI: cleanup 2020-09-09 09:33:10 +00:00
volth
2428f27101 [cpan2nix] perlPackages.AlienLibxml2: cleanup 2020-09-09 09:33:10 +00:00
volth
e7dc155fb3 [cpan2nix] perlPackages.PPIxQuoteLike: 0.011 -> 0.012 2020-09-09 09:33:10 +00:00
volth
db1acff1a7 [cpan2nix] perlPackages.MojoliciousPluginOpenAPI: 3.33 -> 3.35 2020-09-09 09:33:10 +00:00
volth
441a5f51ad [cpan2nix] perlPackages.DBDMariaDB: cleanup 2020-09-09 09:33:09 +00:00
volth
5c88f66026 [cpan2nix] perlPackages.Clipboard: cleanup 2020-09-09 09:33:09 +00:00
volth
5afc69cd90 [cpan2nix] perlPackages.Redis: 1.996 -> 1.998 2020-09-09 09:33:08 +00:00
volth
955408448e [cpan2nix] perlPackages.JSONValidator: 4.00 -> 4.02 2020-09-09 09:33:07 +00:00
volth
12919157c6 [cpan2nix] perlPackages.CGI: 4.49 -> 4.50 2020-09-09 09:33:07 +00:00
volth
ba680c0acd [cpan2nix] perlPackages.podlinkcheck: cleanup 2020-09-09 09:33:07 +00:00
volth
f121a00844 [cpan2nix] perlPackages.SubHandlesVia: 0.013 -> 0.014 2020-09-09 09:33:03 +00:00
volth
fd67127cc2 [cpan2nix] perlPackages.NetPrometheus: cleanup 2020-09-09 09:33:01 +00:00
volth
01c62532e1 [cpan2nix] perlPackages.MailDKIM: 1.20200513.1 -> 1.20200907 2020-09-09 09:33:00 +00:00
volth
f08acb145d [cpan2nix] perlPackages.HTMLRewriteAttributes: cleanup 2020-09-09 09:32:59 +00:00
volth
34fdce8802 [cpan2nix] perlPackages.HTMLForm: cleanup 2020-09-09 09:32:59 +00:00
volth
2685b309bd [cpan2nix] perlPackages.GetoptLongDescriptive: cleanup 2020-09-09 09:32:59 +00:00
volth
10ffaa21ba [cpan2nix] perlPackages.AltCryptRSABigInt: cleanup 2020-09-09 09:32:58 +00:00
volth
0cb5e16b63 [cpan2nix] perlPackages.AlienBuild: 2.26 -> 2.29 2020-09-09 09:32:58 +00:00
volth
5984d160f9 [cpan2nix] perlPackages.HTMLParser: 3.72 -> 3.75 2020-09-09 09:32:55 +00:00
volth
1e39862556 [cpan2nix] perlPackages.DataMessagePack: cleanup 2020-09-09 09:32:54 +00:00
volth
edfac3e950 [cpan2nix] perlPackages.ConfigGitLike: cleanup 2020-09-09 09:32:54 +00:00
volth
d7b7e8b408 [cpan2nix] perlPackages.Specio: cleanup 2020-09-09 09:32:54 +00:00
volth
0e41fa5fdc [cpan2nix] perlPackages.PerlPrereqScannerNotQuiteLite: 0.9911 -> 0.9913
dependencies:
perlPackages.URIcpan: init at 1.007
2020-09-09 09:32:53 +00:00
volth
d85e3c33f9 [cpan2nix] perlPackages.MojoliciousPluginStatus: cleanup 2020-09-09 09:32:52 +00:00
volth
e4475b36f7 [cpan2nix] perlPackages.MailBox: 3.008 -> 3.009 2020-09-09 09:32:52 +00:00
volth
78146d163e [cpan2nix] perlPackages.PPIxRegexp: 0.072 -> 0.074 2020-09-09 09:32:48 +00:00
volth
8ed1f96a57 [cpan2nix] perlPackages.MooXStrictConstructor: cleanup 2020-09-09 09:32:47 +00:00
volth
d94857961b [cpan2nix] perlPackages.HTTPMessage: 6.24 -> 6.25 2020-09-09 09:32:47 +00:00
volth
9b691837c0 [cpan2nix] perlPackages.DBIxSearchBuilder: 1.67 -> 1.68 2020-09-09 09:32:46 +00:00
volth
6db918afa0 [cpan2nix] perlPackages.TestMost: cleanup 2020-09-09 09:32:44 +00:00
volth
92ff56fb98 [cpan2nix] perlPackages.Sereal: 4.014 -> 4.018 2020-09-09 09:32:44 +00:00
volth
07f068b484 [cpan2nix] perlPackages.ListAllUtils: 0.16 -> 0.18 2020-09-09 09:32:42 +00:00
volth
200f82b203 [cpan2nix] perlPackages.IOAsync: cleanup 2020-09-09 09:32:42 +00:00
volth
9304cdad59 [cpan2nix] perlPackages.Moo: cleanup 2020-09-09 09:32:40 +00:00
volth
c9010c69d0 [cpan2nix] perlPackages.ModuleSignature: 0.83 -> 0.87 2020-09-09 09:32:40 +00:00
volth
8dfa8eeb9c [cpan2nix] perlPackages.FileBOM: cleanup 2020-09-09 09:32:39 +00:00
volth
46d650b39b [cpan2nix] perlPackages.EmailMIME: cleanup 2020-09-09 09:32:39 +00:00
volth
c9801eaa61 [cpan2nix] perlPackages.DBDCSV: 0.54 -> 0.55 2020-09-09 09:32:39 +00:00
volth
306ad711df [cpan2nix] perlPackages.Test2PluginNoWarnings: 0.08 -> 0.09 2020-09-09 09:32:38 +00:00
volth
c20cb35a8c [cpan2nix] perlPackages.SerealEncoder: 4.014 -> 4.018 2020-09-09 09:32:38 +00:00
volth
0b9aea7ce7 [cpan2nix] perlPackages.LocaleCodes: 3.64 -> 3.65 2020-09-09 09:32:36 +00:00
volth
09a258f9fc [cpan2nix] perlPackages.IPCRun: cleanup 2020-09-09 09:32:35 +00:00
volth
b2947f851a [cpan2nix] perlPackages.FileMap: 0.66 -> 0.67 2020-09-09 09:32:35 +00:00
volth
2c5e15cd68 [cpan2nix] perlPackages.DateManip: cleanup 2020-09-09 09:32:34 +00:00
volth
1107b86bcd [cpan2nix] perlPackages.SerealDecoder: 4.014 -> 4.018 2020-09-09 09:32:25 +00:00
volth
f06f956969 [cpan2nix] perlPackages.Pegex: cleanup 2020-09-09 09:32:24 +00:00
volth
c494dfe757 [cpan2nix] perlPackages.MailTransport: 3.004 -> 3.005 2020-09-09 09:32:23 +00:00
volth
839dbe3aad [cpan2nix] perlPackages.LinguaStem: 0.84 -> 2.30 2020-09-09 09:32:23 +00:00
volth
d72a8f325a [cpan2nix] perlPackages.FFICheckLib: cleanup 2020-09-09 09:32:22 +00:00
volth
2a6a19a694 [cpan2nix] perlPackages.CPANPLUS: cleanup 2020-09-09 09:32:22 +00:00
volth
18a38e8490 [cpan2nix] perlPackages.XSObjectMagic: cleanup 2020-09-09 09:32:21 +00:00
volth
150a6fdd7b [cpan2nix] perlPackages.Test2Suite: 0.000130 -> 0.000135 2020-09-09 09:32:21 +00:00
volth
5a607492a7 [cpan2nix] perlPackages.StringUtil: 1.26 -> 1.31 2020-09-09 09:32:19 +00:00
volth
f3ce752b74 [cpan2nix] perlPackages.POSIXstrftimeCompiler: 0.42 -> 0.44 2020-09-09 09:32:18 +00:00
volth
38d468eabf [cpan2nix] perlPackages.PDFAPI2: 2.037 -> 2.038 2020-09-09 09:32:18 +00:00
volth
3d4571bf1d [cpan2nix] perlPackages.MailMessage: cleanup 2020-09-09 09:32:16 +00:00
volth
413db9668a [cpan2nix] perlPackages.Gtk3SimpleList: cleanup 2020-09-09 09:32:15 +00:00
volth
9028d3b428 [cpan2nix] perlPackages.Future: cleanup 2020-09-09 09:32:14 +00:00
volth
54ab2130cc [cpan2nix] perlPackages.Dotenv: cleanup 2020-09-09 09:32:14 +00:00
volth
82176b93c3 [cpan2nix] perlPackages.ArchiveZip: cleanup 2020-09-09 09:32:13 +00:00
volth
6b760a2440 [cpan2nix] perlPackages.TestMockModule: cleanup 2020-09-09 09:32:12 +00:00
volth
5d27b509e4 [cpan2nix] perlPackages.TestMetricsAny: cleanup 2020-09-09 09:32:12 +00:00
volth
9b5bdf3e20 [cpan2nix] perlPackages.Gtk3: cleanup 2020-09-09 09:32:09 +00:00
volth
9ea978fe8f [cpan2nix] perlPackages.FileLibMagic: 1.22 -> 1.23 2020-09-09 09:32:07 +00:00
volth
1f732dce92 [cpan2nix] perlPackages.AuthenKrb5Admin: cleanup 2020-09-09 09:32:05 +00:00
volth
6114b9fc38 [cpan2nix] perlPackages.TextTemplate: 1.58 -> 1.59 2020-09-09 09:32:04 +00:00
volth
0949d73704 [cpan2nix] perlPackages.TestTrailingSpace: cleanup 2020-09-09 09:32:04 +00:00
volth
9650ec4589 [cpan2nix] perlPackages.StructDumb: cleanup 2020-09-09 09:32:03 +00:00
volth
4aacb8e30c [cpan2nix] perlPackages.MetricsAny: 0.05 -> 0.06 2020-09-09 09:32:02 +00:00
volth
2da2372600 [cpan2nix] perlPackages.HashMerge: 0.300 -> 0.302 2020-09-09 09:32:02 +00:00
volth
8d1d9e2c19 [cpan2nix] perlPackages.AuthenKrb5: cleanup 2020-09-09 09:32:00 +00:00
volth
c391a388f6 [cpan2nix] perlPackages.TypeTiny: 1.010002 -> 1.010006 2020-09-09 09:31:59 +00:00
volth
9f61a1d67c [cpan2nix] perlPackages.TestFatal: 0.014 -> 0.016 2020-09-09 09:31:58 +00:00
volth
ed30193c78 [cpan2nix] perlPackages.NetDNSResolverMock: cleanup 2020-09-09 09:31:56 +00:00
volth
5bd755dd7a [cpan2nix] perlPackages.MailAuthenticationResults: 1.20200331.1 -> 1.20200824.1 2020-09-09 09:31:56 +00:00
volth
987ade36e0 [cpan2nix] perlPackages.Coro: 6.55 -> 6.57 2020-09-09 09:31:54 +00:00
volth
85f722fd53 [cpan2nix] perlPackages.CGISimple: cleanup 2020-09-09 09:31:53 +00:00
volth
739b8b8c41 [cpan2nix] perlPackages.YAMLPP: 0.022 -> 0.025 2020-09-09 09:31:52 +00:00
volth
657abff028 [cpan2nix] perlPackages.TestWarnings: cleanup 2020-09-09 09:31:50 +00:00
volth
042e71f65b [cpan2nix] perlPackages.POE: cleanup 2020-09-09 09:31:48 +00:00
volth
fba9289eea [cpan2nix] perlPackages.MojoliciousPluginAssetPack: 2.08 -> 2.09 2020-09-09 09:31:47 +00:00
volth
b7016e325a [cpan2nix] perlPackages.MathPrimeUtil: cleanup 2020-09-09 09:31:46 +00:00
volth
593886145a [cpan2nix] perlPackages.DevelPatchPerl: cleanup 2020-09-09 09:31:44 +00:00
volth
943bc56bf9 [cpan2nix] perlPackages.DevelCheckOS: cleanup 2020-09-09 09:31:44 +00:00
volth
124640298b [cpan2nix] perlPackages.CryptRandom: cleanup 2020-09-09 09:31:43 +00:00
volth
9796cbeacd [cpan2nix] perlPackages.CryptJWT: 0.028 -> 0.029 2020-09-09 09:31:43 +00:00
volth
e06ec9b92b [cpan2nix] perlPackages.AnyEventHTTP: cleanup 2020-09-09 09:31:40 +00:00
volth
043fcd19f1 [cpan2nix] perlPackages.StringInterpolate: cleanup 2020-09-09 09:31:35 +00:00
volth
8fdafb7173 [cpan2nix] perlPackages.NetIPv6Addr: 0.96 -> 1.01 2020-09-09 09:31:33 +00:00
volth
ce0f766ff0 [cpan2nix] perlPackages.ModuleCompile: 0.37 -> 0.38 2020-09-09 09:31:32 +00:00
volth
d40888e79d [cpan2nix] perlPackages.Inline: 0.83 -> 0.86 2020-09-09 09:31:31 +00:00
volth
30e7d78e8d [cpan2nix] perlPackages.IOSocketSSL: cleanup 2020-09-09 09:31:31 +00:00
volth
e58abcc805 [cpan2nix] perlPackages.IOPager: cleanup 2020-09-09 09:31:31 +00:00
volth
56e13cfd7f [cpan2nix] perlPackages.HTTPTinyish: 0.16 -> 0.17 2020-09-09 09:31:30 +00:00
volth
6bb811f286 [cpan2nix] perlPackages.Glib: cleanup 2020-09-09 09:31:30 +00:00
volth
be1c82a529 [cpan2nix] perlPackages.GD: 2.71 -> 2.72 2020-09-09 09:31:29 +00:00
volth
0083824507 [cpan2nix] perlPackages.ExtUtilsCppGuess: cleanup 2020-09-09 09:31:27 +00:00
volth
d3c3bdb14f [cpan2nix] perlPackages.EV: cleanup 2020-09-09 09:31:27 +00:00
volth
416ae6fe82 [cpan2nix] perlPackages.IOCompress: 2.093 -> 2.096 2020-09-09 09:31:24 +00:00
volth
06b5b9d330 [cpan2nix] perlPackages.ack: v3.3.1 -> v3.4.0 2020-09-09 09:31:20 +00:00
volth
16cda9185b [cpan2nix] perlPackages.TextTable: cleanup 2020-09-09 09:31:18 +00:00
volth
845b283d1e [cpan2nix] perlPackages.TestCompile: v2.4.0 -> v2.4.1 2020-09-09 09:31:16 +00:00
volth
11dec3c71f [cpan2nix] perlPackages.SearchXapian: cleanup 2020-09-09 09:31:14 +00:00
volth
60107e2e92 [cpan2nix] perlPackages.NetDNS: 1.24 -> 1.26 2020-09-09 09:31:11 +00:00
volth
a121ea007a [cpan2nix] perlPackages.MojoliciousPluginWebpack: 0.12 -> 0.13 2020-09-09 09:31:10 +00:00
volth
0375ff6e18 [cpan2nix] perlPackages.ModuleScanDeps: 1.27 -> 1.29 2020-09-09 09:31:09 +00:00
volth
0890ef411e [cpan2nix] perlPackages.ListCompare: 0.53 -> 0.55 2020-09-09 09:31:06 +00:00
volth
a16d4a1627 [cpan2nix] perlPackages.JSONMaybeXS: cleanup 2020-09-09 09:31:05 +00:00
volth
ad165d2940 [cpan2nix] perlPackages.HTTPDate: cleanup 2020-09-09 09:31:04 +00:00
volth
e144f1ff7e [cpan2nix] perlPackages.FileUtil: 4.161950 -> 4.201720 2020-09-09 09:31:02 +00:00
volth
010e512358 [cpan2nix] perlPackages.ExtUtilsF77: 1.23 -> 1.24 2020-09-09 09:31:01 +00:00
volth
c81ac8de88 [cpan2nix] perlPackages.EmailMIMEContentType: cleanup 2020-09-09 09:31:00 +00:00
volth
f212863a93 [cpan2nix] perlPackages.DBDSQLite: 1.64 -> 1.66 2020-09-09 09:30:58 +00:00
volth
a00f2f64d1 [cpan2nix] perlPackages.DBDPg: 3.12.3 -> 3.14.2 2020-09-09 09:30:58 +00:00
volth
f797425d6c [cpan2nix] perlPackages.ConfigIniFiles: cleanup 2020-09-09 09:30:56 +00:00
volth
feb965a3de [cpan2nix] perlPackages.Clone: cleanup 2020-09-09 09:30:56 +00:00
volth
145a7c8096 [cpan2nix] perlPackages.vidir: 0.042 -> 0.050 2020-09-09 09:30:51 +00:00
volth
cf3296a693 [cpan2nix] perlPackages.threadsshared: removed built-in 2020-09-09 09:30:51 +00:00
volth
3d26c72c47 [cpan2nix] perlPackages.bignum: removed built-in 2020-09-09 09:30:47 +00:00
volth
757240f13f [cpan2nix] perlPackages.YAMLLibYAML: cleanup 2020-09-09 09:30:46 +00:00
volth
718328ceec [cpan2nix] perlPackages.Version: 0.9924 -> 0.9927 2020-09-09 09:30:43 +00:00
volth
86b530b3c9 [cpan2nix] perlPackages.Tk: cleanup 2020-09-09 09:30:41 +00:00
volth
e2d8d7eb70 [cpan2nix] perlPackages.TimeDate: cleanup 2020-09-09 09:30:39 +00:00
volth
9f3a3b2b23 [cpan2nix] perlPackages.ThreadQueue: removed built-in 2020-09-09 09:30:37 +00:00
volth
65fbb72032 [cpan2nix] perlPackages.TextCSV_XS: 1.43 -> 1.44 2020-09-09 09:30:33 +00:00
volth
c76d63e417 [cpan2nix] perlPackages.TextAligner: cleanup 2020-09-09 09:30:32 +00:00
volth
a5b2176380 [cpan2nix] perlPackages.Testutf8: cleanup 2020-09-09 09:30:32 +00:00
volth
b378f2dbdd [cpan2nix] perlPackages.TestTempDirTiny: cleanup 2020-09-09 09:30:31 +00:00
volth
9b8aa5cd7b [cpan2nix] perlPackages.TestSimple13: 1.302175 -> 1.302177 2020-09-09 09:30:31 +00:00
volth
4e274cceb6 [cpan2nix] perlPackages.TestRequires: cleanup 2020-09-09 09:30:28 +00:00
volth
a4b61c7174 [cpan2nix] perlPackages.TestMemoryGrowth: 0.03 -> 0.04 2020-09-09 09:30:26 +00:00
volth
12104b468e [cpan2nix] perlPackages.TestDeep: cleanup 2020-09-09 09:30:24 +00:00
volth
366256fed7 [cpan2nix] perlPackages.SysMmap: cleanup 2020-09-09 09:30:21 +00:00
volth
e76f3a6bab [cpan2nix] perlPackages.Storable: removed built-in 2020-09-09 09:30:17 +00:00
volth
3b839fca12 [cpan2nix] perlPackages.StatisticsChiSquare: cleanup 2020-09-09 09:30:17 +00:00
volth
1c761b4993 [cpan2nix] perlPackages.ScalarListUtils: cleanup 2020-09-09 09:30:14 +00:00
volth
ff22c6525b [cpan2nix] perlPackages.SafeHole: cleanup 2020-09-09 09:30:13 +00:00
volth
db7edc0387 [cpan2nix] perlPackages.RegexpGrammars: cleanup 2020-09-09 09:30:11 +00:00
volth
3a1554b478 [cpan2nix] perlPackages.PkgConfig: 0.23026 -> 0.24026 2020-09-09 09:30:06 +00:00
volth
f84860d54e [cpan2nix] perlPackages.Perlosnames: cleanup 2020-09-09 09:30:06 +00:00
volth
07c8f29de1 [cpan2nix] perlPackages.PerlIOLayers: cleanup 2020-09-09 09:30:05 +00:00
volth
d214d39c3e [cpan2nix] perlPackages.PathTiny: cleanup 2020-09-09 09:30:04 +00:00
volth
ce8ad25aa6 [cpan2nix] perlPackages.Parent: cleanup 2020-09-09 09:30:03 +00:00
volth
a6e6589377 [cpan2nix] perlPackages.OggVorbisHeaderPurePerl: 1.0 -> 1.04 2020-09-09 09:30:00 +00:00
volth
f0612109c3 [cpan2nix] perlPackages.NetSNPP: cleanup 2020-09-09 09:29:58 +00:00
volth
fdbd6dfece [cpan2nix] perlPackages.NetSFTPForeign: 1.90 -> 1.91 2020-09-09 09:29:57 +00:00
volth
051beb3bb9 [cpan2nix] perlPackages.NetPing: cleanup 2020-09-09 09:29:56 +00:00
volth
6ca1b8d618 [cpan2nix] perlPackages.NetOpenSSH: cleanup 2020-09-09 09:29:56 +00:00
volth
67967e4f6e [cpan2nix] perlPackages.MozillaCA: cleanup 2020-09-09 09:29:55 +00:00
volth
1ac482a114 [cpan2nix] perlPackages.ModernPerl: cleanup 2020-09-09 09:29:52 +00:00
volth
012d41be88 [cpan2nix] perlPackages.MathPari: cleanup 2020-09-09 09:29:50 +00:00
volth
85a36e9834 [cpan2nix] perlPackages.MathBigRat: removed built-in 2020-09-09 09:29:49 +00:00
volth
c5243bbba8 [cpan2nix] perlPackages.MathBigIntLite: 0.18 -> 0.19 2020-09-09 09:29:49 +00:00
volth
06c92315ff [cpan2nix] perlPackages.MathBigInt: 1.999816 -> 1.999818 2020-09-09 09:29:49 +00:00
volth
fdc8009bee [cpan2nix] perlPackages.MP3Tag: cleanup 2020-09-09 09:29:47 +00:00
volth
d7fe19dbfc [cpan2nix] perlPackages.MP3Info: cleanup 2020-09-09 09:29:47 +00:00
volth
1301d46be1 [cpan2nix] perlPackages.MCE: 1.872 -> 1.874 2020-09-09 09:29:46 +00:00
volth
fad732a3fc [cpan2nix] perlPackages.LogJournald: cleanup 2020-09-09 09:29:46 +00:00
volth
aa7a3189ec [cpan2nix] perlPackages.LogLog4perl: 1.49 -> 1.52 2020-09-09 09:29:45 +00:00
volth
bac36fbaf9 [cpan2nix] perlPackages.JSONParse: 0.56 -> 0.57 2020-09-09 09:29:41 +00:00
volth
2ade24dc1f [cpan2nix] perlPackages.JSONPP: 4.04 -> 4.05 2020-09-09 09:29:40 +00:00
volth
269e90b3b4 [cpan2nix] perlPackages.Importer: 0.025 -> 0.026 2020-09-09 09:29:40 +00:00
volth
8b882bc913 [cpan2nix] perlPackages.Imager: cleanup 2020-09-09 09:29:40 +00:00
volth
809cc5ec4c [cpan2nix] perlPackages.IPCSystemSimple: cleanup 2020-09-09 09:29:38 +00:00
volth
66e10e06a4 [cpan2nix] perlPackages.IPCSysV: 2.07 -> 2.08 2020-09-09 09:29:38 +00:00
volth
4964f14020 [cpan2nix] perlPackages.IOTee: 0.65 -> 0.66 2020-09-09 09:29:36 +00:00
volth
a909242f76 [cpan2nix] perlPackages.GitAutofixup: cleanup 2020-09-09 09:29:31 +00:00
volth
6bf2fe6fc3 [cpan2nix] perlPackages.GetoptLong: 2.51 -> 2.52 2020-09-09 09:29:31 +00:00
volth
a4870c355e [cpan2nix] perlPackages.Filter: 1.59 -> 1.60 2020-09-09 09:29:29 +00:00
volth
0d379fd903 [cpan2nix] perlPackages.FileTemp: removed built-in 2020-09-09 09:29:28 +00:00
volth
5816e32480 [cpan2nix] perlPackages.FileSlurp: 9999.30 -> 9999.32 2020-09-09 09:29:27 +00:00
volth
35395e094a [cpan2nix] perlPackages.FilePath: 2.16 -> 2.17 2020-09-09 09:29:27 +00:00
volth
86a732adb6 [cpan2nix] perlPackages.ExtUtilsManifest: removed built-in 2020-09-09 09:29:24 +00:00
volth
c0b518c4c8 [cpan2nix] perlPackages.ExtUtilsInstall: 2.14 -> 2.16 2020-09-09 09:29:24 +00:00
volth
6459b738ee [cpan2nix] perlPackages.ExtUtilsMakeMaker: 7.44 -> 7.46 2020-09-09 09:29:22 +00:00
volth
b37b6eb95e [cpan2nix] perlPackages.ExporterTiny: cleanup 2020-09-09 09:29:19 +00:00
volth
96745d9393 [cpan2nix] perlPackages.Encode: 3.06 -> 3.07 2020-09-09 09:29:17 +00:00
volth
a9a23fb6eb [cpan2nix] perlPackages.DeviceSerialPort: cleanup 2020-09-09 09:29:14 +00:00
volth
67efe59295 [cpan2nix] perlPackages.DevelPPPort: 3.58 -> 3.60 2020-09-09 09:29:13 +00:00
volth
062468aa29 [cpan2nix] perlPackages.DevelLeak: cleanup 2020-09-09 09:29:13 +00:00
volth
049f3b8ac3 [cpan2nix] perlPackages.DevelHide: cleanup 2020-09-09 09:29:13 +00:00
volth
8d2302e718 [cpan2nix] perlPackages.DataUUID: cleanup 2020-09-09 09:29:12 +00:00
volth
02c95ec228 [cpan2nix] perlPackages.DataSerializer: cleanup 2020-09-09 09:29:12 +00:00
volth
4fb7c6744f [cpan2nix] perlPackages.DataDumper: removed built-in 2020-09-09 09:29:10 +00:00
volth
d0b6281fba [cpan2nix] perlPackages.DBI: cleanup 2020-09-09 09:29:10 +00:00
volth
d08ddd79d0 [cpan2nix] perlPackages.CryptX: 0.068 -> 0.069 2020-09-09 09:29:08 +00:00
volth
06a6679c69 [cpan2nix] perlPackages.CryptECB: cleanup 2020-09-09 09:29:04 +00:00
volth
14bfbb95c8 [cpan2nix] perlPackages.ConvertUU: cleanup 2020-09-09 09:29:03 +00:00
volth
6e37a7f358 [cpan2nix] perlPackages.ConvertBencode: cleanup 2020-09-09 09:29:03 +00:00
volth
f6b71c94ff [cpan2nix] perlPackages.CompressRawZlib: 2.093 -> 2.096 2020-09-09 09:29:02 +00:00
volth
56594a6007 [cpan2nix] perlPackages.CompressRawBzip2: 2.093 -> 2.096 2020-09-09 09:29:02 +00:00
volth
62eacd4d46 [cpan2nix] perlPackages.CompressBzip2: 2.27 -> 2.28 2020-09-09 09:29:02 +00:00
volth
ecc7e56df1 [cpan2nix] perlPackages.commonsense: cleanup 2020-09-09 09:29:01 +00:00
volth
0778127e4f [cpan2nix] perlPackages.ClassTiny: 1.006 -> 1.008 2020-09-09 09:29:01 +00:00
volth
698e73b6f5 [cpan2nix] perlPackages.ClassLoader: cleanup 2020-09-09 09:28:59 +00:00
volth
4381d49fa5 [cpan2nix] perlPackages.CatalystManual: 5.9010 -> 5.9011 2020-09-09 09:28:57 +00:00
volth
36ae652992 [cpan2nix] perlPackages.CacheMemcachedFast: cleanup 2020-09-09 09:28:56 +00:00
volth
70ddd22e93 [cpan2nix] perlPackages.CacheFastMmap: cleanup 2020-09-09 09:28:56 +00:00
volth
b0be696f3a [cpan2nix] perlPackages.CPANPerlReleases: 5.20200607 -> 5.20200820 2020-09-09 09:28:55 +00:00
volth
48e6dc1415 [cpan2nix] perlPackages.CGIMinimal: cleanup 2020-09-09 09:28:55 +00:00
volth
d0f43f614e [cpan2nix] perlPackages.CDDBFile: cleanup 2020-09-09 09:28:54 +00:00
volth
e5063952e0 [cpan2nix] perlPackages.BusinessISSN: cleanup 2020-09-09 09:28:54 +00:00
volth
dd4571a395 [cpan2nix] perlPackages.BCOW: cleanup 2020-09-09 09:28:53 +00:00
volth
b1bb5d7728 [cpan2nix] perlPackages.ArchiveTar: 2.36 -> 2.38 2020-09-09 09:28:53 +00:00
volth
31c9783064 [cpan2nix] perlPackages.Apprainbarf: cleanup 2020-09-09 09:28:52 +00:00
volth
58fa55d394 perl: remove obsolete patch 2020-09-09 09:28:07 +00:00
volth
f3877602da perlPackages: make it easier for the parser 2020-09-09 09:28:07 +00:00
Christoph Neidahl
ddd5f56ed7 palemoon: Add libpulseaudio to wrapper
(cherry picked from commit 5ee5bbef84)
2020-09-09 08:25:10 +02:00
misuzu
cb8686599b nixosTests.3proxy: fix flakiness
(cherry picked from commit 0c688868e7)
2020-09-08 21:50:00 -07:00
Vincent Laporte
69ab6a3e69 coqPackages.coqprime: init at 8.12 for Coq 8.12
(cherry picked from commit 607b0ae7ae)
2020-09-09 06:39:22 +02:00
WORLDofPEACE
ffe1621ea0 Merge pull request #97495 from jonringer/backport-xdis
[20.09] python3Packages.xdis: 4.2.4 -> 5.0.4, fix build
2020-09-08 21:29:48 -04:00
Jonathan Ringer
05a966fe15 python3Packages.xdis: 4.2.4 -> 5.0.4, fix build
(cherry picked from commit ff7e38b954)
2020-09-08 18:21:29 -07:00
John Ericson
2c3d422964 androidndk: Avoid depending on target-sensative openjdk
We just need jdk for this script that helps set up toolchains. The
script might need to know about the target platform, but the interpreter
that runs it (or part of it) doesn't.
2020-09-08 18:06:08 -07:00
John Ericson
55dd61043a lib.systems.examples: Bump android SDK to 21
074bc78cc8 evidently meant to do this, but
forgot.
2020-09-08 18:06:08 -07:00
John Ericson
9f68e349ff androidndkPkgs: Take version from underlying package
We can now do this, so let's.
2020-09-08 18:06:08 -07:00
John Ericson
1ae53f4d54 deployAndroidPackage: Use pname and version 2020-09-08 18:06:08 -07:00
John Ericson
b5476ce450 cc-wrapper: Fix for prebuilt android
We don't want to use Nix-built GCC's libs with prebuilt clang in this
case.
2020-09-08 18:06:08 -07:00
WORLDofPEACE
8d2040c265 Merge pull request #97492 from romildo/release-20.09.upd.ubuntu-themes
[20.09] ubuntu-themes: 19.04 -> 20.10
2020-09-08 20:48:57 -04:00
José Romildo Malaquias
525c0716ff ubuntu-themes: 19.04 -> 20.10
(cherry picked from commit 8ec4d97e9c)
2020-09-08 21:40:54 -03:00
WORLDofPEACE
d861ca40a3 Merge pull request #97489 from davidak/backport-defaultPackages
[20.09] add defaultPackages option
2020-09-08 20:38:48 -04:00
davidak
b78318e1c8 nixos/config: add defaultPackages option
readd perl (used in shell scripts), rsync (needed for NixOps) and strace (common debugging tool)

they where previously removed in https://github.com/NixOS/nixpkgs/pull/91213

Co-authored-by: Timo Kaufmann <timokau@zoho.com>
Co-authored-by: 8573 <8573@users.noreply.github.com>
(cherry picked from commit 74b3d66baf)
2020-09-09 02:29:18 +02:00
WORLDofPEACE
e83908c966 Merge pull request #97483 from cole-h/release-20.09
[20.09] cantata: add perl for dynamic playlists
2020-09-08 19:56:36 -04:00
Cole Helbling
524369c4ba cantata: add perl for dynamic playlists
Cantata wants to check if perl is available at runtime, but we already patch the
script shebangs, making it unnecessary to be available at runtime --
thus, patch out this check.

(cherry picked from commit fca7cc57ad)
2020-09-08 16:50:59 -07:00
WORLDofPEACE
3369f09a39 Merge pull request #97477 from kolaente/backport/20.09-jetbrains
Backport/20.09 jetbrains
2020-09-08 19:21:20 -04:00
kolaente
029b4a828e Update jetbrains.webstorm 2020.2 -> 2020.2.1
(cherry picked from commit ee939c9d18)
2020-09-08 23:20:35 +02:00
kolaente
7f7c971bc0 Update jetbrains.ruby-mine 2020.2 -> 2020.2.1
(cherry picked from commit 7b46916f94)
2020-09-08 23:20:35 +02:00
kolaente
a2436acaa2 Update jetbrains.rider 2020.2 -> 2020.2.1
(cherry picked from commit fe552e4534)
2020-09-08 23:20:35 +02:00
kolaente
01ab40b984 Update jetbrains.pycharm-professional 2020.2 -> 2020.2.1
(cherry picked from commit 2fa77fecfa)
2020-09-08 23:20:35 +02:00
kolaente
790939c31a Update jetbrains.pycharm-community 2020.2 -> 2020.2.1
(cherry picked from commit b5a8a3b87d)
2020-09-08 23:20:35 +02:00
kolaente
b444588ce6 Update jetbrains.phpstorm 2020.2 -> 2020.2.1
(cherry picked from commit d0ce498d54)
2020-09-08 23:20:35 +02:00
kolaente
fda5a96cc8 Update jetbrains.mps 2020.2 -> 2020.2.1
(cherry picked from commit 1ae3cac8fc)
2020-09-08 23:20:34 +02:00
kolaente
3be0a9f2fc Update jetbrains.idea-ultimate 2020.2 -> 2020.2.1
(cherry picked from commit 1281a5748c)
2020-09-08 23:20:34 +02:00
kolaente
2a98201737 Update jetbrains.idea-community 2020.2 -> 2020.2.1
(cherry picked from commit 70706259a4)
2020-09-08 23:20:34 +02:00
kolaente
ce8ecced45 Update jetbrains.goland 2020.2.1 -> 2020.2.2
(cherry picked from commit 120d6ed2fc)
2020-09-08 23:20:34 +02:00
kolaente
308922abba Update jetbrains.datagrip 2020.2 -> 2020.2.2
(cherry picked from commit 977620b029)
2020-09-08 23:20:34 +02:00
kolaente
c90cd42c01 Update jetbrains.clion 2020.2 -> 2020.2.1
(cherry picked from commit 487ea9d055)
2020-09-08 23:20:34 +02:00
zowoq
c411fe8ae0 Merge pull request #97428 from zowoq/2009-editorconfig
[20.09] .github/workflows/editorconfig.yml: remove
2020-09-09 06:39:42 +10:00
Maximilian Bosch
9211dc6a74 linuxPackages.wireguard: 1.0.20200729 -> 1.0.20200908
https://lists.zx2c4.com/pipermail/wireguard/2020-September/005817.html
(cherry picked from commit c73ef96b7e)
2020-09-08 22:34:35 +02:00
Maximilian Bosch
6ba161261d iwd: 1.8 -> 1.9
https://git.kernel.org/pub/scm/network/wireless/iwd.git/tree/ChangeLog?h=1.9
(cherry picked from commit a59a88cf3e)
2020-09-08 20:40:50 +02:00
Maximilian Bosch
3f4a519fc8 ell: 0.32 -> 0.33
https://git.kernel.org/pub/scm/libs/ell/ell.git/tree/ChangeLog?h=0.33
(cherry picked from commit f3ea9452fb)
2020-09-08 20:40:50 +02:00
Jonathan Ringer
ce77f2dbcb allegro: fix build, use texinfo6_5
(cherry picked from commit cceb63ff0a)
2020-09-08 10:25:03 -07:00
Oleksii Filonenko
ff6f1a65b1 Merge pull request #97439 from xfix/backport-caddy 2020-09-08 15:16:31 +03:00
Sylvain Fankhauser
17aa84a9f4 caddy: 2.0.0 -> 2.1.1
(cherry picked from commit 94ed8606c6)
2020-09-08 12:43:30 +02:00
Sylvain Fankhauser
efeb51f81d caddy: address remaining MR comments for v2
(cherry picked from commit b8bfe941fa)
2020-09-08 12:43:30 +02:00
Oleksii Filonenko
05eb101fbb release-notes/rl-2009: add item about Caddy v2
(cherry picked from commit c3a7c89a20)
2020-09-08 12:43:30 +02:00
Oleksii Filonenko
9527d0be18 caddy: 1.0.5 -> 2.0.0
Rename legacy v1 to `caddy1`

(cherry picked from commit 6322325a53)
2020-09-08 12:43:29 +02:00
Oleksii Filonenko
54ad14abfc nixosTests.caddy: update to v2
- Update configuration syntax
- Add filalex77 as a maintainer

(cherry picked from commit 06d2d84519)
2020-09-08 12:43:29 +02:00
Oleksii Filonenko
80a5560db9 nixos/caddy: use v2 by default
(cherry picked from commit d71cadacd9)
2020-09-08 12:43:29 +02:00
Oleksii Filonenko
e2b51af18a nixos/caddy: add support for v2
(cherry picked from commit 8cc592abfa)
2020-09-08 12:43:29 +02:00
Thomas Tuegel
f6b34a610d Merge pull request #97410 from ttuegel/release-20.09--qt-5.15
Qt 5.15
2020-09-08 05:18:41 -05:00
zowoq
4ea52040b6 [20.09] .github/workflows/editorconfig.yml: remove 2020-09-08 17:16:49 +10:00
zowoq
d351e49b64 the-way: disable check
disable until buildRustPackage supports setting test-threads in packages

(cherry picked from commit 8b1690a77e)
2020-09-08 17:10:46 +10:00
zowoq
4fee137f80 gitAndTools.git-interactive-rebase-tool: disable check
disable until buildRustPackage supports setting test-threads in packages

(cherry picked from commit e4cc68f766)
2020-09-08 17:10:39 +10:00
zowoq
c570cd1d1b castor: disable check
disable until buildRustPackage supports setting test-threads in packages

(cherry picked from commit 6a593a7d59)
2020-09-08 17:10:28 +10:00
Thomas Tuegel
a13a01924e Merge pull request #97242 from ttuegel/qt-5.15
Qt 5.15.0

(cherry picked from commit 0b3cc29f09)
2020-09-07 20:20:09 -05:00
WORLDofPEACE
ce03bc9939 Merge pull request #97408 from mkg20001/cinnamon20.09
[20.09] nixos/cinnamon: init
2020-09-07 20:51:49 -04:00
Maciej Krüger
cf795410be nixos/cinnamon: init
Co-Authored-By: WORLDofPEACE <worldofpeace@protonmail.ch>
(cherry picked from commit 04ea3a0ff6)
2020-09-08 02:15:05 +02:00
Maciej Krüger
8f1f3fc449 cinnamon.cinnamon-settings-daemon: add dev output
(cherry picked from commit 907f761b0a)
2020-09-08 02:15:05 +02:00
Maciej Krüger
315be74347 mint-x-icons: remove other package and expose from cinnamon namespace
(cherry picked from commit 996bdf7cd4)
2020-09-08 02:15:05 +02:00
Maciej Krüger
d1dd7f8bf2 vanilla-dmz: 0.4.4 -> 0.4.5 (+license fix)
The package debian/copyright states Attribution-ShareAlike 3.0 Unported
(CC BY-SA 3.0) which is cc-by-sa-30, was wrongly cc-by-nc-sa-30 which is
unfree

(cherry picked from commit b5839daf69)
2020-09-08 02:15:04 +02:00
Maciej Krüger
78a009a125 cinnamon.cinnamon-gsettings-overrides: init
(cherry picked from commit c08e45ff3b)
2020-09-08 02:15:04 +02:00
Maciej Krüger
209c4111dd mint-artwork: init at 1.4.3
(cherry picked from commit 4da4af45f7)
2020-09-08 02:15:04 +02:00
Maciej Krüger
213592f88b cinnamon.mint-x-icons: init at 1.5.5
(cherry picked from commit a5a97c3f64)
2020-09-08 02:15:04 +02:00
Maciej Krüger
1e57e1c073 cinnamon.*: now maintained by cinnamon team
(cherry picked from commit dd8233b72d)
2020-09-08 02:15:03 +02:00
Maciej Krüger
8611055877 cinnamon.cinnamon-common: patch & expose sessions
(cherry picked from commit 66f42fee47)
2020-09-08 02:15:03 +02:00
Maciej Krüger
fc97ec431f cinnamon.cinnamon-common: fix nma missing
(cherry picked from commit ec854b0c0d)
2020-09-08 02:15:03 +02:00
Maciej Krüger
2c0316e77a cinnamon.xapps: 1.6.10 -> 1.8.9
(cherry picked from commit 95eb753e67)
2020-09-08 02:15:03 +02:00
Maciej Krüger
f1aa20e9e8 cinnamon.nemo: 4.4.1 -> 4.6.5
(cherry picked from commit 0a7e5e4d01)
2020-09-08 02:15:02 +02:00
Maciej Krüger
f1c6a2bc78 cinnamon.muffin: 4.4.2 -> 4.6.3
(cherry picked from commit 9e13c3be9c)
2020-09-08 02:15:02 +02:00
Maciej Krüger
5973ece9f0 cinnamon.mint-y-icons: unstable -> 1.4.3
(cherry picked from commit b4abc9ba35)
2020-09-08 02:15:02 +02:00
Maciej Krüger
f44b919bbb cinnamon.mint-themes: 1.8.0 -> 1.8.6
(cherry picked from commit f11433c0dc)
2020-09-08 02:15:02 +02:00
Maciej Krüger
568d278282 cinnamon.cinnamon-session: 4.4.0 -> 4.6.4
(cherry picked from commit 527e625fc1)
2020-09-08 02:15:01 +02:00
Maciej Krüger
958cc63038 cinnamon.cinnamon-common: 4.4.1 -> 4.6.1
(cherry picked from commit 415bed22bb)
2020-09-08 02:15:01 +02:00
Maciej Krüger
7d96b5a2e5 cinnamon.cinnamon-session: 4.4.1 -> 4.6.1
(cherry picked from commit bd501a59d9)
2020-09-08 02:15:01 +02:00
Maciej Krüger
3215ad48ae cinnamon.cinnamon-screensaver: 4.4.0 -> 4.6.0
(cherry picked from commit 74b5685bba)
2020-09-08 02:15:01 +02:00
R. RyanTM
6b118aa234 cinnamon.cjs: 4.4.0 -> 4.6.0
(cherry picked from commit d078731ce5)
2020-09-08 02:15:01 +02:00
R. RyanTM
a0d0d05bd8 cinnamon.cinnamon-desktop: 4.4.1 -> 4.6.1
(cherry picked from commit 02b2bf7396)
2020-09-08 02:15:00 +02:00
R. RyanTM
383b991a7a cinnamon.cinnamon-menus: 4.4.0 -> 4.6.0
(cherry picked from commit 5676e96110)
2020-09-08 02:15:00 +02:00
Maciej Krüger
dec359780d cinnamon.cinnamon-control-center: 4.4.0 -> 4.6.0
(cherry picked from commit c768edfecf)
2020-09-08 02:15:00 +02:00
Maciej Krüger
c934811213 arc-theme: enable cinnamon
(cherry picked from commit 1e605712d2)
2020-09-08 02:15:00 +02:00
Maciej Krüger
f0e2178774 teams: add cinnamon team
(cherry picked from commit 4689b34d4f)
2020-09-08 02:14:59 +02:00
WORLDofPEACE
94b8935729 Merge pull request #97399 from samueldr/feature/20.09/remove-rpi4-image
sd-image-raspberrypi4: remove from stable channel
2020-09-07 18:12:43 -04:00
Samuel Dionne-Riel
1a675534b6 sd-image-raspberrypi4: remove from stable channel
As described at the moment this was introduced, this is not intended to
be a stable product for NixOS.
2020-09-07 17:22:56 -04:00
Jonathan Ringer
0cebf41b66 Release 20.09 alpha 2020-09-07 13:47:45 -07:00
21951 changed files with 379185 additions and 817815 deletions

View File

@@ -47,50 +47,66 @@ indent_style = space
insert_final_newline = unset
trim_trailing_whitespace = unset
[*.{asc,key,ovpn}]
[*.{key,ovpn}]
insert_final_newline = unset
end_of_line = unset
trim_trailing_whitespace = unset
[*.lock]
indent_size = unset
[deps.nix]
insert_final_newline = unset
[eggs.nix]
trim_trailing_whitespace = unset
[gemset.nix]
insert_final_newline = unset
[node-{composition,packages}.nix]
insert_final_newline = unset
[nixos/modules/services/networking/ircd-hybrid/*.{conf,in}]
trim_trailing_whitespace = unset
[nixos/tests/systemd-networkd-vrf.nix]
trim_trailing_whitespace = unset
[pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json]
indent_size = unset
[pkgs/build-support/dotnetenv/Wrapper/**]
end_of_line = unset
indent_style = unset
insert_final_newline = unset
trim_trailing_whitespace = unset
[pkgs/build-support/upstream-updater/**]
indent_style = unset
trim_trailing_whitespace = unset
[pkgs/development/compilers/elm/registry.dat]
end_of_line = unset
insert_final_newline = unset
[pkgs/development/lisp-modules/quicklisp-to-nix.nix]
indent_size = unset
[pkgs/development/haskell-modules/hackage-packages.nix]
indent_style = unset
indent_size = unset
trim_trailing_whitespace = unset
[pkgs/development/mobile/androidenv/generated/{addons,packages}.nix]
trim_trailing_whitespace = unset
[pkgs/development/node-packages/node-packages.nix]
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/security/enpass/data.json]
insert_final_newline = unset
indent_size = unset
trim_trailing_whitespace = unset
[pkgs/top-level/emscripten-packages.nix]
trim_trailing_whitespace = unset
[pkgs/top-level/perl-packages.nix]
indent_size = unset

78
.github/CODEOWNERS vendored
View File

@@ -11,8 +11,7 @@
/.github/CODEOWNERS @edolstra
# GitHub actions
/.github/workflows @NixOS/Security @Mic92 @zowoq
/.github/workflows/merge-staging @FRidh
/.github/workflows @Mic92 @zowoq
# EditorConfig
/.editorconfig @Mic92 @zowoq
@@ -26,18 +25,17 @@
/lib/asserts.nix @edolstra @nbp @Profpatsch
# Nixpkgs Internals
/default.nix @nbp
/pkgs/top-level/default.nix @nbp @Ericson2314
/pkgs/top-level/impure.nix @nbp @Ericson2314
/pkgs/top-level/stage.nix @nbp @Ericson2314 @matthewbauer
/pkgs/top-level/splice.nix @Ericson2314 @matthewbauer
/pkgs/top-level/release-cross.nix @Ericson2314 @matthewbauer
/pkgs/stdenv/generic @Ericson2314 @matthewbauer
/pkgs/stdenv/cross @Ericson2314 @matthewbauer
/pkgs/build-support/cc-wrapper @Ericson2314 @orivej
/pkgs/build-support/bintools-wrapper @Ericson2314 @orivej
/pkgs/build-support/setup-hooks @Ericson2314
/pkgs/build-support/setup-hooks/auto-patchelf.sh @aszlig
/default.nix @nbp
/pkgs/top-level/default.nix @nbp @Ericson2314
/pkgs/top-level/impure.nix @nbp @Ericson2314
/pkgs/top-level/stage.nix @nbp @Ericson2314 @matthewbauer
/pkgs/top-level/splice.nix @Ericson2314 @matthewbauer
/pkgs/top-level/release-cross.nix @Ericson2314 @matthewbauer
/pkgs/stdenv/generic @Ericson2314 @matthewbauer
/pkgs/stdenv/cross @Ericson2314 @matthewbauer
/pkgs/build-support/cc-wrapper @Ericson2314 @orivej
/pkgs/build-support/bintools-wrapper @Ericson2314 @orivej
/pkgs/build-support/setup-hooks @Ericson2314
# Nixpkgs build-support
/pkgs/build-support/writers @lassulus @Profpatsch
@@ -76,33 +74,30 @@
/pkgs/development/interpreters/python @FRidh
/pkgs/development/python-modules @FRidh @jonringer
/doc/languages-frameworks/python.section.md @FRidh
/pkgs/development/tools/poetry2nix @adisbladis
# Haskell
/doc/languages-frameworks/haskell.section.md @cdepillabout @sternenseemann @maralorn
/maintainers/scripts/haskell @cdepillabout @sternenseemann @maralorn
/pkgs/development/compilers/ghc @cdepillabout @sternenseemann @maralorn
/pkgs/development/haskell-modules @cdepillabout @sternenseemann @maralorn
/pkgs/test/haskell @cdepillabout @sternenseemann @maralorn
/pkgs/top-level/release-haskell.nix @cdepillabout @sternenseemann @maralorn
/pkgs/top-level/haskell-packages.nix @cdepillabout @sternenseemann @maralorn
/pkgs/development/compilers/ghc @cdepillabout
/pkgs/development/haskell-modules @cdepillabout
/pkgs/development/haskell-modules/default.nix @cdepillabout
/pkgs/development/haskell-modules/generic-builder.nix @cdepillabout
/pkgs/development/haskell-modules/hoogle.nix @cdepillabout
# Perl
/pkgs/development/interpreters/perl @volth @stigtsp
/pkgs/top-level/perl-packages.nix @volth @stigtsp
/pkgs/development/perl-modules @volth @stigtsp
/pkgs/development/interpreters/perl @volth
/pkgs/top-level/perl-packages.nix @volth
/pkgs/development/perl-modules @volth
# R
/pkgs/applications/science/math/R @peti
/pkgs/development/r-modules @peti
# Ruby
/pkgs/development/interpreters/ruby @marsam
/pkgs/development/ruby-modules @marsam
/pkgs/development/interpreters/ruby @alyssais
/pkgs/development/ruby-modules @alyssais
# Rust
/pkgs/development/compilers/rust @Mic92 @LnL7 @zowoq
/pkgs/build-support/rust @andir @danieldk @zowoq
/pkgs/development/compilers/rust @Mic92 @LnL7
/pkgs/build-support/rust @andir
# Darwin-related
/pkgs/stdenv/darwin @NixOS/darwin-maintainers
@@ -128,6 +123,9 @@
# Jetbrains
/pkgs/applications/editors/jetbrains @edwtjo
# Eclipse
/pkgs/applications/editors/eclipse @rycee
# Licenses
/lib/licenses.nix @alyssais
@@ -138,7 +136,7 @@
/pkgs/development/libraries/qt-5 @ttuegel
# PostgreSQL and related stuff
/pkgs/servers/sql/postgresql @thoughtpolice @marsam
/pkgs/servers/sql/postgresql @thoughtpolice
/nixos/modules/services/databases/postgresql.xml @thoughtpolice
/nixos/modules/services/databases/postgresql.nix @thoughtpolice
/nixos/tests/postgresql.nix @thoughtpolice
@@ -158,8 +156,8 @@
/nixos/modules/services/networking/ntp @thoughtpolice
# Dhall
/pkgs/development/dhall-modules @Gabriel439 @Profpatsch @ehmry
/pkgs/development/interpreters/dhall @Gabriel439 @Profpatsch @ehmry
/pkgs/development/dhall-modules @Gabriel439 @Profpatsch
/pkgs/development/interpreters/dhall @Gabriel439 @Profpatsch
# Idris
/pkgs/development/idris-modules @Infinisil
@@ -178,10 +176,6 @@
/pkgs/applications/editors/emacs @adisbladis
/pkgs/top-level/emacs-packages.nix @adisbladis
# Neovim
/pkgs/applications/editors/neovim @jonringer
/pkgs/applications/editors/neovim @teto
# VimPlugins
/pkgs/misc/vim-plugins @jonringer @softinio
@@ -198,7 +192,6 @@
/nixos/tests/php @NixOS/php
/pkgs/build-support/build-pecl.nix @NixOS/php
/pkgs/development/interpreters/php @NixOS/php
/pkgs/development/php-packages @NixOS/php
/pkgs/top-level/php-packages.nix @NixOS/php
# Podman, CRI-O modules and related
@@ -208,19 +201,10 @@
/nixos/tests/cri-o.nix @NixOS/podman @zowoq
/nixos/tests/podman.nix @NixOS/podman @zowoq
# Docker tools
/pkgs/build-support/docker @roberth @utdemir
/nixos/tests/docker-tools-overlay.nix @roberth
/nixos/tests/docker-tools.nix @roberth
/doc/builders/images/dockertools.xml @roberth
# Blockchains
/pkgs/applications/blockchains @mmahut @RaghavSood
/pkgs/applications/blockchains @mmahut
# Go
/pkgs/development/compilers/go @kalbasit @Mic92 @zowoq
/pkgs/development/go-modules @kalbasit @Mic92 @zowoq
/pkgs/development/go-packages @kalbasit @Mic92 @zowoq
# Cinnamon
/pkgs/desktops/cinnamon @mkg20001

View File

@@ -37,7 +37,7 @@ under the terms of [COPYING](../COPYING), which is an MIT-like license.
* Not start with the package name.
* Not have a period at the end.
* `meta.license` must be set and fit the upstream license.
* If there is no upstream license, `meta.license` should default to `lib.licenses.unfree`.
* If there is no upstream license, `meta.license` should default to `stdenv.lib.licenses.unfree`.
* `meta.maintainers` must be set.
See the nixpkgs manual for more details on [standard meta-attributes](https://nixos.org/nixpkgs/manual/#sec-standard-meta-attributes) and on how to [submit changes to nixpkgs](https://nixos.org/nixpkgs/manual/#chap-submitting-changes).
@@ -57,7 +57,6 @@ Follow these steps to backport a change into a release branch in compliance with
3. Create a branch for your change, e.g. `git checkout -b backport`.
4. When the reason to backport is not obvious from the original commit message, use `git cherry-pick -xe <original commit>` and add a reason. Otherwise use `git cherry-pick -x <original commit>`. That's fine for minor version updates that only include security and bug fixes, commits that fixes an otherwise broken package or similar. Please also ensure the commits exists on the master branch; in the case of squashed or rebased merges, the commit hash will change and the new commits can be found in the merge message at the bottom of the master pull request.
5. Push to GitHub and open a backport pull request. Make sure to select the release branch (e.g. `release-20.09`) as the target branch of the pull request, and link to the pull request in which the original change was comitted to `master`. The pull request title should be the commit title with the release version as prefix, e.g. `[20.09]`.
6. When the backport pull request is merged and you have the necessary privileges you can also replace the label `9.needs: port to stable` with `8.has: port to stable` on the original pull request. This way maintainers can keep track of missing backports easier.
## Reviewing contributions

View File

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

View File

@@ -5,7 +5,7 @@ comment describing what you have tested in the relevant package/service.
Reviewing helps to reduce the average time-to-merge for everyone.
Thanks a lot if you do!
List of open PRs: https://github.com/NixOS/nixpkgs/pulls
Reviewing guidelines: https://nixos.org/manual/nixpkgs/unstable/#chap-reviewing-contributions
Reviewing guidelines: https://hydra.nixos.org/job/nixpkgs/trunk/manual/latest/download/1/nixpkgs/manual.html#chap-reviewing-contributions
-->
###### Motivation for this change
@@ -23,5 +23,6 @@ Reviewing guidelines: https://nixos.org/manual/nixpkgs/unstable/#chap-reviewing-
- [ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
- [ ] Tested compilation of all pkgs that depend on this change using `nix-shell -p nixpkgs-review --run "nixpkgs-review wip"`
- [ ] Tested execution of all binary files (usually in `./result/bin/`)
- [ ] Added a release notes entry if the change is major or breaking
- [ ] Determined the impact on package closure size (by running `nix path-info -S` before and after)
- [ ] Ensured that relevant documentation is up to date
- [ ] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md).

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

@@ -1,35 +0,0 @@
# Stale bot information
- Thanks for your contribution!
- 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/) or on the [#nixos IRC channel](https://webchat.freenode.net/#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+)

154
.github/labeler.yml vendored
View File

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

37
.github/stale.yml vendored
View File

@@ -1,10 +1,41 @@
# Configuration for probot-stale - https://github.com/probot/stale
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 180
# Number of days of inactivity before a stale issue is closed
daysUntilClose: false
# Issues with these labels will never be considered stale
exemptLabels:
- "1.severity: security"
- "2.status: never-stale"
# Label to use when marking an issue as stale
staleLabel: "2.status: stale"
markComment: |
I marked this as stale due to inactivity. &rarr; [More info](https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md)
# Comment to post when marking an issue as stale. Set to `false` to disable
pulls:
markComment: |
Hello, I'm a bot and I thank you in the name of the community for your contributions.
Nixpkgs is a busy repository, and unfortunately sometimes PRs get left behind for too long. Nevertheless, we'd like to help committers reach the PRs that are still important. This PR has had no activity for 180 days, and so I marked it as stale, but you can rest assured it will never be closed by a non-human.
If this is still important to you and you'd like to remove the stale label, we ask that you leave a comment. Your comment can be as simple as "still important to me". But there's a bit more you can do:
If you received an approval by an unprivileged maintainer and you are just waiting for a merge, you can @ mention someone with merge permissions and ask them to help. You might be able to find someone relevant by using [Git blame](https://git-scm.com/docs/git-blame) on the relevant files, or via [GitHub's web interface](https://docs.github.com/en/github/managing-files-in-a-repository/tracking-changes-in-a-file). You can see if someone's a member of the [nixpkgs-committers](https://github.com/orgs/NixOS/teams/nixpkgs-committers) team, by hovering with the mouse over their username on the web interface, or by searching them directly on [the list](https://github.com/orgs/NixOS/teams/nixpkgs-committers).
If your PR wasn't reviewed at all, it might help to find someone who's perhaps a user of the package or module you are changing, or alternatively, ask once more for a review by the maintainer of the package/module this is about. If you don't know any, you can use [Git blame](https://git-scm.com/docs/git-blame) on the relevant files, or [GitHub's web interface](https://docs.github.com/en/github/managing-files-in-a-repository/tracking-changes-in-a-file) to find someone who touched the relevant files in the past.
If your PR has had reviews and nevertheless got stale, make sure you've responded to all of the reviewer's requests / questions. Usually when PR authors show responsibility and dedication, reviewers (privileged or not) show dedication as well. If you've pushed a change, it's possible the reviewer wasn't notified about your push via email, so you can always [officially request them for a review](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/requesting-a-pull-request-review), or just @ mention them and say you've addressed their comments.
Lastly, you can always ask for help at [our Discourse Forum](https://discourse.nixos.org/), or more specifically, [at this thread](https://discourse.nixos.org/t/prs-in-distress/3604) or at [#nixos' IRC channel](https://webchat.freenode.net/#nixos).
issues:
markComment: |
Hello, I'm a bot and I thank you in the name of the community for opening this issue.
To help our human contributors focus on the most-relevant reports, I check up on old issues to see if they're still relevant. This issue has had no activity for 180 days, and so I marked it as stale, but you can rest assured it will never be closed by a non-human.
The community would appreciate your effort in checking if the issue is still valid. If it isn't, please close it.
If the issue persists, and you'd like to remove the stale label, you simply need to leave a comment. Your comment can be as simple as "still important to me". If you'd like it to get more attention, you can ask for help by searching for maintainers and people that previously touched related code and @ mention them in a comment. You can use [Git blame](https://git-scm.com/docs/git-blame) or [GitHub's web interface](https://docs.github.com/en/github/managing-files-in-a-repository/tracking-changes-in-a-file) on the relevant files to find them.
Lastly, you can always ask for help at [our Discourse Forum](https://discourse.nixos.org/) or at [#nixos' IRC channel](https://webchat.freenode.net/#nixos).
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false

View File

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

View File

@@ -1,46 +0,0 @@
name: "Checking EditorConfig"
permissions: read-all
on:
# avoids approving first time contributors
pull_request_target:
branches-ignore:
- 'release-**'
jobs:
tests:
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- name: Get list of changed files from PR
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
echo 'PR_DIFF<<EOF' >> $GITHUB_ENV
gh api \
repos/NixOS/nixpkgs/pulls/${{github.event.number}}/files --paginate \
| jq '.[] | select(.status != "removed") | .filename' \
>> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
- uses: actions/checkout@v2
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
if: env.PR_DIFF
- uses: cachix/install-nix-action@v13
if: env.PR_DIFF
with:
# nixpkgs commit is pinned so that it doesn't break
nix_path: nixpkgs=https://github.com/NixOS/nixpkgs/archive/f93ecc4f6bc60414d8b73dbdf615ceb6a2c604df.tar.gz
- name: install editorconfig-checker
run: nix-env -iA editorconfig-checker -f '<nixpkgs>'
if: env.PR_DIFF
- name: Checking EditorConfig
if: env.PR_DIFF
run: |
echo "$PR_DIFF" | xargs 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,19 +0,0 @@
name: "Label PR"
on:
pull_request_target:
types: [edited, opened, synchronize, reopened]
permissions:
contents: read
pull-requests: write
jobs:
labels:
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/labeler@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
sync-labels: true

View File

@@ -1,30 +0,0 @@
name: "Build NixOS manual"
permissions: read-all
on:
pull_request_target:
branches:
- master
paths:
- 'nixos/**'
jobs:
nixos:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
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@v13
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
- uses: cachix/cachix-action@v9
with:
# This cache is for the nixos/nixpkgs manual builds and should not be trusted or used elsewhere.
name: nixpkgs-ci
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- name: Building NixOS manual
run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true nixos/release.nix -A manual.x86_64-linux

View File

@@ -1,30 +0,0 @@
name: "Build Nixpkgs manual"
permissions: read-all
on:
pull_request_target:
branches:
- master
paths:
- 'doc/**'
jobs:
nixpkgs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
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@v13
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
- uses: cachix/cachix-action@v9
with:
# This cache is for the nixos/nixpkgs manual builds and should not be trusted or used elsewhere.
name: nixpkgs-ci
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- name: Building Nixpkgs manual
run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true pkgs/top-level/release.nix -A manual

View File

@@ -1,41 +0,0 @@
name: "merge staging(-next)"
on:
schedule:
# * is a special character in YAML so you have to quote this string
# Merge every 6 hours
- cron: '0 */6 * * *'
jobs:
sync-branch:
if: github.repository == 'NixOS/nixpkgs'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Merge master into staging-next
id: staging_next
uses: devmasx/merge-branch@v1.3.1
with:
type: now
from_branch: master
target_branch: staging-next
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Merge staging-next into staging
id: staging
uses: devmasx/merge-branch@v1.3.1
with:
type: now
from_branch: staging-next
target_branch: staging
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Comment on failure
uses: peter-evans/create-or-update-comment@v1
if: ${{ failure() }}
with:
issue-number: 105153
body: |
An automatic merge${{ (steps.staging_next.outcome == 'failure' && ' from master to staging-next') || ((steps.staging.outcome == 'failure' && ' from staging-next to staging') || '') }} [failed](https://github.com/NixOS/nixpkgs/actions/runs/${{ github.run_id }}).

View File

@@ -16,5 +16,5 @@ jobs:
-X POST \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: token $GITHUB_TOKEN" \
-d '{"state": "pending", "target_url": " ", "description": "This pending status will be cleared when ofborg starts eval.", "context": "Wait for ofborg"}' \
-d '{"state": "failure", "target_url": " ", "description": "This failed status will be cleared when ofborg finishes eval.", "context": "Wait for ofborg"}' \
"https://api.github.com/repos/NixOS/nixpkgs/statuses/${{ github.event.pull_request.head.sha }}"

View File

@@ -1,134 +0,0 @@
on:
issue_comment:
types:
- created
# This action allows people with write access to the repo to rebase a PRs base branch
# by commenting `/rebase ${branch}` on the PR while avoiding CODEOWNER notifications.
jobs:
rebase:
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS' && github.event.issue.pull_request != '' && contains(github.event.comment.body, '/rebase')
steps:
- uses: peter-evans/create-or-update-comment@v1
with:
comment-id: ${{ github.event.comment.id }}
reactions: eyes
- uses: scherermichael-oss/action-has-permission@1.0.6
id: check-write-access
with:
required-permission: write
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: check permissions
run: |
echo "Commenter doesn't have write access to the repo"
exit 1
if: "! steps.check-write-access.outputs.has-permission"
- name: setup
run: |
curl "https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.issue.number }}" 2>/dev/null >pr.json
cat <<EOF >>"$GITHUB_ENV"
CAN_MODIFY=$(jq -r '.maintainer_can_modify' pr.json)
COMMITS=$(jq -r '.commits' pr.json)
CURRENT_BASE=$(jq -r '.base.ref' pr.json)
PR_BRANCH=$(jq -r '.head.ref' pr.json)
COMMENT_BRANCH=$(echo ${{ github.event.comment.body }} | awk "/^\/rebase / {print \$2}")
PULL_REQUEST=${{ github.event.issue.number }}
EOF
rm pr.json
- name: check branch
env:
PERMANENT_BRANCHES: "haskell-updates|master|nixos|nixpkgs|python-unstable|release|staging"
VALID_BRANCHES: "haskell-updates|master|python-unstable|release-20.09|staging|staging-20.09|staging-next"
run: |
message() {
cat <<EOF
Can't rebase $PR_BRANCH from $CURRENT_BASE onto $COMMENT_BRANCH (PR:$PULL_REQUEST COMMITS:$COMMITS)
EOF
}
if ! [[ "$COMMENT_BRANCH" =~ ^($VALID_BRANCHES)$ ]]; then
cat <<EOF
Check that the branch from the comment is valid:
$(message)
This action can only rebase onto these branches:
$VALID_BRANCHES
\`/rebase \${branch}\` must be at the start of the line
EOF
exit 1
fi
if [[ "$COMMENT_BRANCH" == "$CURRENT_BASE" ]]; then
cat <<EOF
Check that the branch from the comment isn't the current base branch:
$(message)
EOF
exit 1
fi
if [[ "$COMMENT_BRANCH" == "$PR_BRANCH" ]]; then
cat <<EOF
Check that the branch from the comment isn't the current branch:
$(message)
EOF
exit 1
fi
if [[ "$PR_BRANCH" =~ ^($PERMANENT_BRANCHES) ]]; then
cat <<EOF
Check that the PR branch isn't a permanent branch:
$(message)
EOF
exit 1
fi
if [[ "$CAN_MODIFY" != "true" ]]; then
cat <<EOF
Check that maintainers can edit the PR branch:
$(message)
EOF
exit 1
fi
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: rebase pull request
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
git fetch origin
gh pr checkout "$PULL_REQUEST"
git rebase \
--onto="$(git merge-base origin/"$CURRENT_BASE" origin/"$COMMENT_BRANCH")" \
"HEAD~$COMMITS"
git push --force
curl \
-X POST \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: token $GITHUB_TOKEN" \
-d "{ \"base\": \"$COMMENT_BRANCH\" }" \
"https://api.github.com/repos/${{ github.repository }}/pulls/$PULL_REQUEST"
curl \
-X PATCH \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: token $GITHUB_TOKEN" \
-d '{ "state": "closed" }' \
"https://api.github.com/repos/${{ github.repository }}/pulls/$PULL_REQUEST"
- uses: peter-evans/create-or-update-comment@v1
with:
issue-number: ${{ github.event.issue.number }}
body: |
Rebased, please reopen the pull request to restart CI
- uses: peter-evans/create-or-update-comment@v1
if: failure()
with:
issue-number: ${{ github.event.issue.number }}
body: |
[Failed to rebase](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})

View File

@@ -1 +1 @@
21.05
20.09

View File

@@ -1,4 +1,4 @@
Copyright (c) 2003-2021 Eelco Dolstra and the Nixpkgs/NixOS contributors
Copyright (c) 2003-2020 Eelco Dolstra and the Nixpkgs/NixOS contributors
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the

View File

@@ -8,7 +8,7 @@
</p>
[Nixpkgs](https://github.com/nixos/nixpkgs) is a collection of over
60,000 software packages that can be installed with the
40,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.
@@ -60,7 +60,7 @@ channels](https://nixos.org/nix/manual/#sec-channels).
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
describes how to build over 40,000 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.
@@ -87,7 +87,7 @@ Most contributions are based on and merged into these branches:
deemed of sufficiently high quality
For more information about contributing to the project, please visit
the [contributing page](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
the [contributing page](https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md).
# Donations

View File

@@ -14,7 +14,7 @@ if ! builtins ? nixVersion || builtins.compareVersions requiredVersion builtins.
- 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
curl https://nixos.org/nix/install | sh
For more information, please see the NixOS release notes at
https://nixos.org/nixos/manual or locally at

View File

@@ -1,4 +1,4 @@
MD_TARGETS=$(addsuffix .xml, $(basename $(shell find . -type f -regex '.*\.md$$' -not -name README.md)))
MD_TARGETS=$(addsuffix .xml, $(basename $(shell find . -type f -regex '.*\.md$$')))
.PHONY: all
all: validate format out/html/index.html out/epub/manual.epub
@@ -39,7 +39,6 @@ out/html/index.html: doc-support/result manual-full.xml style.css highlightjs
mkdir -p out/html/highlightjs/
cp -r highlightjs out/html/
cp -r media out/html/
cp ./overrides.css out/html/
cp ./style.css out/html/style.css
@@ -54,7 +53,6 @@ out/epub/manual.epub: manual-full.xml
doc-support/result/epub.xsl \
./manual-full.xml
cp -r media out/epub/scratch/OEBPS
cp ./overrides.css out/epub/scratch/OEBPS
cp ./style.css out/epub/scratch/OEBPS
mkdir -p out/epub/scratch/OEBPS/images/callouts/
@@ -89,16 +87,24 @@ functions/library/generated: doc-support/result
ln -rfs ./doc-support/result/function-docs functions/library/generated
%.section.xml: %.section.md
pandoc $^ -t docbook \
--extract-media=media \
--lua-filter=$(PANDOC_LUA_FILTERS_DIR)/diagram-generator.lua \
pandoc $^ -w docbook \
-f markdown+smart \
| sed -e 's|<ulink url=|<link xlink:href=|' \
-e 's|</ulink>|</link>|' \
-e 's|<sect. id=|<section xml:id=|' \
-e 's|</sect[0-9]>|</section>|' \
-e '1s| id=| xml:id=|' \
-e '1s|\(<[^ ]* \)|\1xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" |' \
| cat > $@
%.chapter.xml: %.chapter.md
pandoc $^ -t docbook \
pandoc $^ -w docbook \
--top-level-division=chapter \
--extract-media=media \
--lua-filter=$(PANDOC_LUA_FILTERS_DIR)/diagram-generator.lua \
-f markdown+smart \
| sed -e 's|<ulink url=|<link xlink:href=|' \
-e 's|</ulink>|</link>|' \
-e 's|<sect. id=|<section xml:id=|' \
-e 's|</sect[0-9]>|</section>|' \
-e '1s| id=| xml:id=|' \
-e '1s|\(<[^ ]* \)|\1|' \
| cat > $@

View File

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

View File

@@ -1,78 +0,0 @@
# Fetchers {#chap-pkgs-fetchers}
When using Nix, you will frequently need to download source code and other files from the internet. Nixpkgs comes with a few helper functions that allow you to fetch fixed-output derivations in a structured way.
The two fetcher primitives are `fetchurl` and `fetchzip`. Both of these have two required arguments, a URL and a hash. The hash is typically `sha256`, although many more hash algorithms are supported. Nixpkgs contributors are currently recommended to use `sha256`. This hash will be used by Nix to identify your source. A typical usage of fetchurl is provided below.
```nix
{ stdenv, fetchurl }:
stdenv.mkDerivation {
name = "hello";
src = fetchurl {
url = "http://www.example.org/hello.tar.gz";
sha256 = "1111111111111111111111111111111111111111111111111111";
};
}
```
The main difference between `fetchurl` and `fetchzip` is in how they store the contents. `fetchurl` will store the unaltered contents of the URL within the Nix store. `fetchzip` on the other hand will decompress the archive for you, making files and directories directly accessible in the future. `fetchzip` can only be used with archives. Despite the name, `fetchzip` is not limited to .zip files and can also be used with any tarball.
`fetchpatch` 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.
Other fetcher functions allow you to add source code directly from a VCS such as subversion or git. These are mostly straightforward nambes based on the name of the command used with the VCS system. Because they give you a working repository, they act most like `fetchzip`.
## `fetchsvn`
Used with Subversion. Expects `url` to a Subversion directory, `rev`, and `sha256`.
## `fetchgit`
Used with Git. Expects `url` to a Git repo, `rev`, and `sha256`. `rev` in this case can be full the git commit id (SHA1 hash) or a tag name like `refs/tags/v1.0`.
Additionally the following optional arguments can be given: `fetchSubmodules = true` makes `fetchgit` also fetch the submodules of a repository. If `deepClone` is set to true, the entire repository is cloned as opposing to just creating a shallow clone. `deepClone = true` also implies `leaveDotGit = true` which means that the `.git` directory of the clone won't be removed after checkout.
## `fetchfossil`
Used with Fossil. Expects `url` to a Fossil archive, `rev`, and `sha256`.
## `fetchcvs`
Used with CVS. Expects `cvsRoot`, `tag`, and `sha256`.
## `fetchhg`
Used with Mercurial. Expects `url`, `rev`, and `sha256`.
A number of fetcher functions wrap part of `fetchurl` and `fetchzip`. They are mainly convenience functions intended for commonly used destinations of source code in Nixpkgs. These wrapper fetchers are listed below.
## `fetchFromGitHub`
`fetchFromGitHub` expects four arguments. `owner` is a string corresponding to the GitHub user or organization that controls this repository. `repo` corresponds to the name of the software repository. These are located at the top of every GitHub HTML page as `owner`/`repo`. `rev` corresponds to the Git commit hash or tag (e.g `v1.0`) that will be downloaded from Git. Finally, `sha256` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available but `sha256` is currently preferred.
`fetchFromGitHub` uses `fetchzip` to download the source archive generated by GitHub for the specified revision. If `leaveDotGit`, `deepClone` or `fetchSubmodules` are set to `true`, `fetchFromGitHub` will use `fetchgit` instead. Refer to its section for documentation of these options.
## `fetchFromGitLab`
This is used with GitLab repositories. The arguments expected are very similar to fetchFromGitHub above.
## `fetchFromGitiles`
This is used with Gitiles repositories. The arguments expected are similar to fetchgit.
## `fetchFromBitbucket`
This is used with BitBucket repositories. The arguments expected are very similar to fetchFromGitHub above.
## `fetchFromSavannah`
This is used with Savannah repositories. The arguments expected are very similar to fetchFromGitHub above.
## `fetchFromRepoOrCz`
This is used with repo.or.cz repositories. The arguments expected are very similar to fetchFromGitHub above.
## `fetchFromSourcehut`
This is used with sourcehut repositories. The arguments expected are very similar to fetchFromGitHub above. Don't forget the tilde (~) in front of the user name!

150
doc/builders/fetchers.xml Normal file
View File

@@ -0,0 +1,150 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="chap-pkgs-fetchers">
<title>Fetchers</title>
<para>
When using Nix, you will frequently need to download source code and other files from the internet. Nixpkgs comes with a few helper functions that allow you to fetch fixed-output derivations in a structured way.
</para>
<para>
The two fetcher primitives are <function>fetchurl</function> and <function>fetchzip</function>. Both of these have two required arguments, a URL and a hash. The hash is typically <literal>sha256</literal>, although many more hash algorithms are supported. Nixpkgs contributors are currently recommended to use <literal>sha256</literal>. This hash will be used by Nix to identify your source. A typical usage of fetchurl is provided below.
</para>
<programlisting><![CDATA[
{ stdenv, fetchurl }:
stdenv.mkDerivation {
name = "hello";
src = fetchurl {
url = "http://www.example.org/hello.tar.gz";
sha256 = "1111111111111111111111111111111111111111111111111111";
};
}
]]></programlisting>
<para>
The main difference between <function>fetchurl</function> and <function>fetchzip</function> is in how they store the contents. <function>fetchurl</function> will store the unaltered contents of the URL within the Nix store. <function>fetchzip</function> on the other hand will decompress the archive for you, making files and directories directly accessible in the future. <function>fetchzip</function> can only be used with archives. Despite the name, <function>fetchzip</function> is not limited to .zip files and can also be used with any tarball.
</para>
<para>
<function>fetchpatch</function> works very similarly to <function>fetchurl</function> with the same arguments expected. It expects patch files as a source and 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.
</para>
<para>
Other fetcher functions allow you to add source code directly from a VCS such as subversion or git. These are mostly straightforward names based on the name of the command used with the VCS system. Because they give you a working repository, they act most like <function>fetchzip</function>.
</para>
<variablelist>
<varlistentry>
<term>
<literal>fetchsvn</literal>
</term>
<listitem>
<para>
Used with Subversion. Expects <literal>url</literal> to a Subversion directory, <literal>rev</literal>, and <literal>sha256</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>fetchgit</literal>
</term>
<listitem>
<para>
Used with Git. Expects <literal>url</literal> to a Git repo, <literal>rev</literal>, and <literal>sha256</literal>. <literal>rev</literal> in this case can be full the git commit id (SHA1 hash) or a tag name like <literal>refs/tags/v1.0</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>fetchfossil</literal>
</term>
<listitem>
<para>
Used with Fossil. Expects <literal>url</literal> to a Fossil archive, <literal>rev</literal>, and <literal>sha256</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>fetchcvs</literal>
</term>
<listitem>
<para>
Used with CVS. Expects <literal>cvsRoot</literal>, <literal>tag</literal>, and <literal>sha256</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>fetchhg</literal>
</term>
<listitem>
<para>
Used with Mercurial. Expects <literal>url</literal>, <literal>rev</literal>, and <literal>sha256</literal>.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
A number of fetcher functions wrap part of <function>fetchurl</function> and <function>fetchzip</function>. They are mainly convenience functions intended for commonly used destinations of source code in Nixpkgs. These wrapper fetchers are listed below.
</para>
<variablelist>
<varlistentry>
<term>
<literal>fetchFromGitHub</literal>
</term>
<listitem>
<para>
<function>fetchFromGitHub</function> expects four arguments. <literal>owner</literal> is a string corresponding to the GitHub user or organization that controls this repository. <literal>repo</literal> corresponds to the name of the software repository. These are located at the top of every GitHub HTML page as <literal>owner</literal>/<literal>repo</literal>. <literal>rev</literal> corresponds to the Git commit hash or tag (e.g <literal>v1.0</literal>) that will be downloaded from Git. Finally, <literal>sha256</literal> corresponds to the hash of the extracted directory. Again, other hash algorithms are also available but <literal>sha256</literal> is currently preferred.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>fetchFromGitLab</literal>
</term>
<listitem>
<para>
This is used with GitLab repositories. The arguments expected are very similar to fetchFromGitHub above.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>fetchFromGitiles</literal>
</term>
<listitem>
<para>
This is used with Gitiles repositories. The arguments expected
are similar to fetchgit.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>fetchFromBitbucket</literal>
</term>
<listitem>
<para>
This is used with BitBucket repositories. The arguments expected are very similar to fetchFromGitHub above.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>fetchFromSavannah</literal>
</term>
<listitem>
<para>
This is used with Savannah repositories. The arguments expected are very similar to fetchFromGitHub above.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>fetchFromRepoOrCz</literal>
</term>
<listitem>
<para>
This is used with repo.or.cz repositories. The arguments expected are very similar to fetchFromGitHub above.
</para>
</listitem>
</varlistentry>
</variablelist>
</chapter>

View File

@@ -5,8 +5,8 @@
<para>
This chapter describes tools for creating various types of images.
</para>
<xi:include href="images/appimagetools.section.xml" />
<xi:include href="images/dockertools.section.xml" />
<xi:include href="images/ocitools.section.xml" />
<xi:include href="images/snaptools.section.xml" />
<xi:include href="images/appimagetools.xml" />
<xi:include href="images/dockertools.xml" />
<xi:include href="images/ocitools.xml" />
<xi:include href="images/snaptools.xml" />
</chapter>

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,499 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="sec-pkgs-dockerTools">
<title>pkgs.dockerTools</title>
<para>
<varname>pkgs.dockerTools</varname> is a set of functions for creating and manipulating Docker images according to the <link xlink:href="https://github.com/moby/moby/blob/master/image/spec/v1.2.md#docker-image-specification-v120"> Docker Image Specification v1.2.0 </link>. Docker itself is not used to perform any of the operations done by these functions.
</para>
<section xml:id="ssec-pkgs-dockerTools-buildImage">
<title>buildImage</title>
<para>
This function is analogous to the <command>docker build</command> command, in that it can be used to build a Docker-compatible repository tarball containing a single image with one or multiple layers. As such, the result is suitable for being loaded in Docker with <command>docker load</command>.
</para>
<para>
The parameters of <varname>buildImage</varname> with relative example values are described below:
</para>
<example xml:id='ex-dockerTools-buildImage'>
<title>Docker build</title>
<programlisting>
buildImage {
name = "redis"; <co xml:id='ex-dockerTools-buildImage-1' />
tag = "latest"; <co xml:id='ex-dockerTools-buildImage-2' />
fromImage = someBaseImage; <co xml:id='ex-dockerTools-buildImage-3' />
fromImageName = null; <co xml:id='ex-dockerTools-buildImage-4' />
fromImageTag = "latest"; <co xml:id='ex-dockerTools-buildImage-5' />
contents = pkgs.redis; <co xml:id='ex-dockerTools-buildImage-6' />
runAsRoot = '' <co xml:id='ex-dockerTools-buildImage-runAsRoot' />
#!${pkgs.runtimeShell}
mkdir -p /data
'';
config = { <co xml:id='ex-dockerTools-buildImage-8' />
Cmd = [ "/bin/redis-server" ];
WorkingDir = "/data";
Volumes = {
"/data" = {};
};
};
}
</programlisting>
</example>
<para>
The above example will build a Docker image <literal>redis/latest</literal> from the given base image. Loading and running this image in Docker results in <literal>redis-server</literal> being started automatically.
</para>
<calloutlist>
<callout arearefs='ex-dockerTools-buildImage-1'>
<para>
<varname>name</varname> specifies the name of the resulting image. This is the only required argument for <varname>buildImage</varname>.
</para>
</callout>
<callout arearefs='ex-dockerTools-buildImage-2'>
<para>
<varname>tag</varname> specifies the tag of the resulting image. By default it's <literal>null</literal>, which indicates that the nix output hash will be used as tag.
</para>
</callout>
<callout arearefs='ex-dockerTools-buildImage-3'>
<para>
<varname>fromImage</varname> is the repository tarball containing the base image. It must be a valid Docker image, such as exported by <command>docker save</command>. By default it's <literal>null</literal>, which can be seen as equivalent to <literal>FROM scratch</literal> of a <filename>Dockerfile</filename>.
</para>
</callout>
<callout arearefs='ex-dockerTools-buildImage-4'>
<para>
<varname>fromImageName</varname> can be used to further specify the base image within the repository, in case it contains multiple images. By default it's <literal>null</literal>, in which case <varname>buildImage</varname> will peek the first image available in the repository.
</para>
</callout>
<callout arearefs='ex-dockerTools-buildImage-5'>
<para>
<varname>fromImageTag</varname> can be used to further specify the tag of the base image within the repository, in case an image contains multiple tags. By default it's <literal>null</literal>, in which case <varname>buildImage</varname> will peek the first tag available for the base image.
</para>
</callout>
<callout arearefs='ex-dockerTools-buildImage-6'>
<para>
<varname>contents</varname> is a derivation that will be copied in the new layer of the resulting image. This can be similarly seen as <command>ADD contents/ /</command> in a <filename>Dockerfile</filename>. By default it's <literal>null</literal>.
</para>
</callout>
<callout arearefs='ex-dockerTools-buildImage-runAsRoot'>
<para>
<varname>runAsRoot</varname> is a bash script that will run as root in an environment that overlays the existing layers of the base image with the new resulting layer, including the previously copied <varname>contents</varname> derivation. This can be similarly seen as <command>RUN ...</command> in a <filename>Dockerfile</filename>.
<note>
<para>
Using this parameter requires the <literal>kvm</literal> device to be available.
</para>
</note>
</para>
</callout>
<callout arearefs='ex-dockerTools-buildImage-8'>
<para>
<varname>config</varname> is used to specify the configuration of the containers that will be started off the built image in Docker. The available options are listed in the <link xlink:href="https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions"> Docker Image Specification v1.2.0 </link>.
</para>
</callout>
</calloutlist>
<para>
After the new layer has been created, its closure (to which <varname>contents</varname>, <varname>config</varname> and <varname>runAsRoot</varname> contribute) will be copied in the layer itself. Only new dependencies that are not already in the existing layers will be copied.
</para>
<para>
At the end of the process, only one new single layer will be produced and added to the resulting image.
</para>
<para>
The resulting repository will only list the single image <varname>image/tag</varname>. In the case of <xref linkend='ex-dockerTools-buildImage'/> it would be <varname>redis/latest</varname>.
</para>
<para>
It is possible to inspect the arguments with which an image was built using its <varname>buildArgs</varname> attribute.
</para>
<note>
<para>
If you see errors similar to <literal>getProtocolByName: does not exist (no such protocol name: tcp)</literal> you may need to add <literal>pkgs.iana-etc</literal> to <varname>contents</varname>.
</para>
</note>
<note>
<para>
If you see errors similar to <literal>Error_Protocol ("certificate has unknown CA",True,UnknownCa)</literal> you may need to add <literal>pkgs.cacert</literal> to <varname>contents</varname>.
</para>
</note>
<example xml:id="example-pkgs-dockerTools-buildImage-creation-date">
<title>Impurely Defining a Docker Layer's Creation Date</title>
<para>
By default <function>buildImage</function> will use a static date of one second past the UNIX Epoch. This allows <function>buildImage</function> to produce binary reproducible images. When listing images with <command>docker images</command>, the newly created images will be listed like this:
</para>
<screen>
<prompt>$ </prompt>docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello latest 08c791c7846e 48 years ago 25.2MB
</screen>
<para>
You can break binary reproducibility but have a sorted, meaningful <literal>CREATED</literal> column by setting <literal>created</literal> to <literal>now</literal>.
</para>
<programlisting><![CDATA[
pkgs.dockerTools.buildImage {
name = "hello";
tag = "latest";
created = "now";
contents = pkgs.hello;
config.Cmd = [ "/bin/hello" ];
}
]]></programlisting>
<para>
and now the Docker CLI will display a reasonable date and sort the images as expected:
<screen>
<prompt>$ </prompt>docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello latest de2bf4786de6 About a minute ago 25.2MB
</screen>
however, the produced images will not be binary reproducible.
</para>
</example>
</section>
<section xml:id="ssec-pkgs-dockerTools-buildLayeredImage">
<title>buildLayeredImage</title>
<para>
Create a Docker image with many of the store paths being on their own layer to improve sharing between images. The image is realized into the Nix store as a gzipped tarball. Depending on the intended usage, many users might prefer to use <function>streamLayeredImage</function> instead, which this function uses internally.
</para>
<variablelist>
<varlistentry>
<term>
<varname>name</varname>
</term>
<listitem>
<para>
The name of the resulting image.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<varname>tag</varname> <emphasis>optional</emphasis>
</term>
<listitem>
<para>
Tag of the generated image.
</para>
<para>
<emphasis>Default:</emphasis> the output path's hash
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<varname>contents</varname> <emphasis>optional</emphasis>
</term>
<listitem>
<para>
Top level paths in the container. Either a single derivation, or a list of derivations.
</para>
<para>
<emphasis>Default:</emphasis> <literal>[]</literal>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<varname>config</varname> <emphasis>optional</emphasis>
</term>
<listitem>
<para>
Run-time configuration of the container. A full list of the options are available at in the <link xlink:href="https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions"> Docker Image Specification v1.2.0 </link>.
</para>
<para>
<emphasis>Default:</emphasis> <literal>{}</literal>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<varname>created</varname> <emphasis>optional</emphasis>
</term>
<listitem>
<para>
Date and time the layers were created. Follows the same <literal>now</literal> exception supported by <literal>buildImage</literal>.
</para>
<para>
<emphasis>Default:</emphasis> <literal>1970-01-01T00:00:01Z</literal>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<varname>maxLayers</varname> <emphasis>optional</emphasis>
</term>
<listitem>
<para>
Maximum number of layers to create.
</para>
<para>
<emphasis>Default:</emphasis> <literal>100</literal>
</para>
<para>
<emphasis>Maximum:</emphasis> <literal>125</literal>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<varname>extraCommands</varname> <emphasis>optional</emphasis>
</term>
<listitem>
<para>
Shell commands to run while building the final layer, without access to most of the layer contents. Changes to this layer are "on top" of all the other layers, so can create additional directories and files.
</para>
</listitem>
</varlistentry>
</variablelist>
<section xml:id="dockerTools-buildLayeredImage-arg-contents">
<title>Behavior of <varname>contents</varname> in the final image</title>
<para>
Each path directly listed in <varname>contents</varname> will have a symlink in the root of the image.
</para>
<para>
For example:
<programlisting><![CDATA[
pkgs.dockerTools.buildLayeredImage {
name = "hello";
contents = [ pkgs.hello ];
}
]]></programlisting>
will create symlinks for all the paths in the <literal>hello</literal> package:
<screen><![CDATA[
/bin/hello -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/bin/hello
/share/info/hello.info -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/info/hello.info
/share/locale/bg/LC_MESSAGES/hello.mo -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/locale/bg/LC_MESSAGES/hello.mo
]]></screen>
</para>
</section>
<section xml:id="dockerTools-buildLayeredImage-arg-config">
<title>Automatic inclusion of <varname>config</varname> references</title>
<para>
The closure of <varname>config</varname> is automatically included in the closure of the final image.
</para>
<para>
This allows you to make very simple Docker images with very little code. This container will start up and run <command>hello</command>:
<programlisting><![CDATA[
pkgs.dockerTools.buildLayeredImage {
name = "hello";
config.Cmd = [ "${pkgs.hello}/bin/hello" ];
}
]]></programlisting>
</para>
</section>
<section xml:id="dockerTools-buildLayeredImage-arg-maxLayers">
<title>Adjusting <varname>maxLayers</varname></title>
<para>
Increasing the <varname>maxLayers</varname> increases the number of layers which have a chance to be shared between different images.
</para>
<para>
Modern Docker installations support up to 128 layers, however older versions support as few as 42.
</para>
<para>
If the produced image will not be extended by other Docker builds, it is safe to set <varname>maxLayers</varname> to <literal>128</literal>. However it will be impossible to extend the image further.
</para>
<para>
The first (<literal>maxLayers-2</literal>) most "popular" paths will have their own individual layers, then layer #<literal>maxLayers-1</literal> will contain all the remaining "unpopular" paths, and finally layer #<literal>maxLayers</literal> will contain the Image configuration.
</para>
<para>
Docker's Layers are not inherently ordered, they are content-addressable and are not explicitly layered until they are composed in to an Image.
</para>
</section>
</section>
<section xml:id="ssec-pkgs-dockerTools-streamLayeredImage">
<title>streamLayeredImage</title>
<para>
Builds a script which, when run, will stream an uncompressed tarball of a Docker image to stdout. The arguments to this function are as for <function>buildLayeredImage</function>. This method of constructing an image does not realize the image into the Nix store, so it saves on IO and disk/cache space, particularly with large images.
</para>
<para>
The image produced by running the output script can be piped directly into <command>docker load</command>, to load it into the local docker daemon:
<screen><![CDATA[
$(nix-build) | docker load
]]></screen>
</para>
<para>
Alternatively, the image be piped via <command>gzip</command> into <command>skopeo</command>, e.g. to copy it into a registry:
<screen><![CDATA[
$(nix-build) | gzip --fast | skopeo copy docker-archive:/dev/stdin docker://some_docker_registry/myimage:tag
]]></screen>
</para>
</section>
<section xml:id="ssec-pkgs-dockerTools-fetchFromRegistry">
<title>pullImage</title>
<para>
This function is analogous to the <command>docker pull</command> command, in that it can be used to pull a Docker image from a Docker registry. By default <link xlink:href="https://hub.docker.com/">Docker Hub</link> is used to pull images.
</para>
<para>
Its parameters are described in the example below:
</para>
<example xml:id='ex-dockerTools-pullImage'>
<title>Docker pull</title>
<programlisting>
pullImage {
imageName = "nixos/nix"; <co xml:id='ex-dockerTools-pullImage-1' />
imageDigest = "sha256:20d9485b25ecfd89204e843a962c1bd70e9cc6858d65d7f5fadc340246e2116b"; <co xml:id='ex-dockerTools-pullImage-2' />
finalImageName = "nix"; <co xml:id='ex-dockerTools-pullImage-3' />
finalImageTag = "1.11"; <co xml:id='ex-dockerTools-pullImage-4' />
sha256 = "0mqjy3zq2v6rrhizgb9nvhczl87lcfphq9601wcprdika2jz7qh8"; <co xml:id='ex-dockerTools-pullImage-5' />
os = "linux"; <co xml:id='ex-dockerTools-pullImage-6' />
arch = "x86_64"; <co xml:id='ex-dockerTools-pullImage-7' />
}
</programlisting>
</example>
<calloutlist>
<callout arearefs='ex-dockerTools-pullImage-1'>
<para>
<varname>imageName</varname> specifies the name of the image to be downloaded, which can also include the registry namespace (e.g. <literal>nixos</literal>). This argument is required.
</para>
</callout>
<callout arearefs='ex-dockerTools-pullImage-2'>
<para>
<varname>imageDigest</varname> specifies the digest of the image to be downloaded. This argument is required.
</para>
</callout>
<callout arearefs='ex-dockerTools-pullImage-3'>
<para>
<varname>finalImageName</varname>, if specified, this is the name of the image to be created. Note it is never used to fetch the image since we prefer to rely on the immutable digest ID. By default it's equal to <varname>imageName</varname>.
</para>
</callout>
<callout arearefs='ex-dockerTools-pullImage-4'>
<para>
<varname>finalImageTag</varname>, if specified, this is the tag of the image to be created. Note it is never used to fetch the image since we prefer to rely on the immutable digest ID. By default it's <literal>latest</literal>.
</para>
</callout>
<callout arearefs='ex-dockerTools-pullImage-5'>
<para>
<varname>sha256</varname> is the checksum of the whole fetched image. This argument is required.
</para>
</callout>
<callout arearefs='ex-dockerTools-pullImage-6'>
<para>
<varname>os</varname>, if specified, is the operating system of the fetched image. By default it's <literal>linux</literal>.
</para>
</callout>
<callout arearefs='ex-dockerTools-pullImage-7'>
<para>
<varname>arch</varname>, if specified, is the cpu architecture of the fetched image. By default it's <literal>x86_64</literal>.
</para>
</callout>
</calloutlist>
<para>
<literal>nix-prefetch-docker</literal> command can be used to get required image parameters:
<screen>
<prompt>$ </prompt>nix run nixpkgs.nix-prefetch-docker -c nix-prefetch-docker --image-name mysql --image-tag 5
</screen>
Since a given <varname>imageName</varname> may transparently refer to a manifest list of images which support multiple architectures and/or operating systems, you can supply the <option>--os</option> and <option>--arch</option> arguments to specify exactly which image you want. By default it will match the OS and architecture of the host the command is run on.
<screen>
<prompt>$ </prompt>nix-prefetch-docker --image-name mysql --image-tag 5 --arch x86_64 --os linux
</screen>
Desired image name and tag can be set using <option>--final-image-name</option> and <option>--final-image-tag</option> arguments:
<screen>
<prompt>$ </prompt>nix-prefetch-docker --image-name mysql --image-tag 5 --final-image-name eu.gcr.io/my-project/mysql --final-image-tag prod
</screen>
</para>
</section>
<section xml:id="ssec-pkgs-dockerTools-exportImage">
<title>exportImage</title>
<para>
This function is analogous to the <command>docker export</command> command, in that it can be used to flatten a Docker image that contains multiple layers. It is in fact the result of the merge of all the layers of the image. As such, the result is suitable for being imported in Docker with <command>docker import</command>.
</para>
<note>
<para>
Using this function requires the <literal>kvm</literal> device to be available.
</para>
</note>
<para>
The parameters of <varname>exportImage</varname> are the following:
</para>
<example xml:id='ex-dockerTools-exportImage'>
<title>Docker export</title>
<programlisting>
exportImage {
fromImage = someLayeredImage;
fromImageName = null;
fromImageTag = null;
name = someLayeredImage.name;
}
</programlisting>
</example>
<para>
The parameters relative to the base image have the same synopsis as described in <xref linkend='ssec-pkgs-dockerTools-buildImage'/>, except that <varname>fromImage</varname> is the only required argument in this case.
</para>
<para>
The <varname>name</varname> argument is the name of the derivation output, which defaults to <varname>fromImage.name</varname>.
</para>
</section>
<section xml:id="ssec-pkgs-dockerTools-shadowSetup">
<title>shadowSetup</title>
<para>
This constant string is a helper for setting up the base files for managing users and groups, only if such files don't exist already. It is suitable for being used in a <varname>runAsRoot</varname> <xref linkend='ex-dockerTools-buildImage-runAsRoot'/> script for cases like in the example below:
</para>
<example xml:id='ex-dockerTools-shadowSetup'>
<title>Shadow base files</title>
<programlisting>
buildImage {
name = "shadow-basic";
runAsRoot = ''
#!${pkgs.runtimeShell}
${shadowSetup}
groupadd -r redis
useradd -r -g redis redis
mkdir /data
chown redis:redis /data
'';
}
</programlisting>
</example>
<para>
Creating base files like <literal>/etc/passwd</literal> or <literal>/etc/login.defs</literal> is necessary for shadow-utils to manipulate users and groups.
</para>
</section>
</section>

View File

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

View File

@@ -0,0 +1,61 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="sec-pkgs-ociTools">
<title>pkgs.ociTools</title>
<para>
<varname>pkgs.ociTools</varname> is a set of functions for creating containers according to the <link xlink:href="https://github.com/opencontainers/runtime-spec">OCI container specification v1.0.0</link>. Beyond that it makes no assumptions about the container runner you choose to use to run the created container.
</para>
<section xml:id="ssec-pkgs-ociTools-buildContainer">
<title>buildContainer</title>
<para>
This function creates a simple OCI container that runs a single command inside of it. An OCI container consists of a <varname>config.json</varname> and a rootfs directory.The nix store of the container will contain all referenced dependencies of the given command.
</para>
<para>
The parameters of <varname>buildContainer</varname> with an example value are described below:
</para>
<example xml:id='ex-ociTools-buildContainer'>
<title>Build Container</title>
<programlisting>
buildContainer {
args = [ (with pkgs; writeScript "run.sh" ''
#!${bash}/bin/bash
exec ${bash}/bin/bash
'').outPath ]; <co xml:id='ex-ociTools-buildContainer-1' />
mounts = {
"/data" = {
type = "none";
source = "/var/lib/mydata";
options = [ "bind" ];
};
};<co xml:id='ex-ociTools-buildContainer-2' />
readonly = false; <co xml:id='ex-ociTools-buildContainer-3' />
}
</programlisting>
<calloutlist>
<callout arearefs='ex-ociTools-buildContainer-1'>
<para>
<varname>args</varname> specifies a set of arguments to run inside the container. This is the only required argument for <varname>buildContainer</varname>. All referenced packages inside the derivation will be made available inside the container
</para>
</callout>
<callout arearefs='ex-ociTools-buildContainer-2'>
<para>
<varname>mounts</varname> specifies additional mount points chosen by the user. By default only a minimal set of necessary filesystems are mounted into the container (e.g procfs, cgroupfs)
</para>
</callout>
<callout arearefs='ex-ociTools-buildContainer-3'>
<para>
<varname>readonly</varname> makes the container's rootfs read-only if it is set to true. The default value is false <literal>false</literal>.
</para>
</callout>
</calloutlist>
</example>
</section>
</section>

View File

@@ -0,0 +1,28 @@
let
inherit (import <nixpkgs> { }) snapTools firefox;
in snapTools.makeSnap {
meta = {
name = "nix-example-firefox";
summary = firefox.meta.description;
architectures = [ "amd64" ];
apps.nix-example-firefox = {
command = "${firefox}/bin/firefox";
plugs = [
"pulseaudio"
"camera"
"browser-support"
"avahi-observe"
"cups-control"
"desktop"
"desktop-legacy"
"gsettings"
"home"
"network"
"mount-observe"
"removable-media"
"x11"
];
};
confinement = "strict";
};
}

View File

@@ -0,0 +1,12 @@
let
inherit (import <nixpkgs> { }) snapTools hello;
in snapTools.makeSnap {
meta = {
name = "hello";
summary = hello.meta.description;
description = hello.meta.longDescription;
architectures = [ "amd64" ];
confinement = "strict";
apps.hello.command = "${hello}/bin/hello";
};
}

View File

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

View File

@@ -0,0 +1,59 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="sec-pkgs-snapTools">
<title>pkgs.snapTools</title>
<para>
<varname>pkgs.snapTools</varname> is a set of functions for creating Snapcraft images. Snap and Snapcraft is not used to perform these operations.
</para>
<section xml:id="ssec-pkgs-snapTools-makeSnap-signature">
<title>The makeSnap Function</title>
<para>
<function>makeSnap</function> takes a single named argument, <parameter>meta</parameter>. This argument mirrors <link xlink:href="https://docs.snapcraft.io/snap-format">the upstream <filename>snap.yaml</filename> format</link> exactly.
</para>
<para>
The <parameter>base</parameter> should not be be specified, as <function>makeSnap</function> will force set it.
</para>
<para>
Currently, <function>makeSnap</function> does not support creating GUI stubs.
</para>
</section>
<section xml:id="ssec-pkgs-snapTools-build-a-snap-hello">
<title>Build a Hello World Snap</title>
<example xml:id="ex-snapTools-buildSnap-hello">
<title>Making a Hello World Snap</title>
<para>
The following expression packages GNU Hello as a Snapcraft snap.
</para>
<programlisting><xi:include href="./snap/example-hello.nix" parse="text" /></programlisting>
<para>
<command>nix-build</command> this expression and install it with <command>snap install ./result --dangerous</command>. <command>hello</command> will now be the Snapcraft version of the package.
</para>
</example>
</section>
<section xml:id="ssec-pkgs-snapTools-build-a-snap-firefox">
<title>Build a Hello World Snap</title>
<example xml:id="ex-snapTools-buildSnap-firefox">
<title>Making a Graphical Snap</title>
<para>
Graphical programs require many more integrations with the host. This example uses Firefox as an example, because it is one of the most complicated programs we could package.
</para>
<programlisting><xi:include href="./snap/example-firefox.nix" parse="text" /></programlisting>
<para>
<command>nix-build</command> this expression and install it with <command>snap install ./result --dangerous</command>. <command>nix-example-firefox</command> will now be the Snapcraft version of the Firefox package.
</para>
<para>
The specific meaning behind plugs can be looked up in the <link xlink:href="https://docs.snapcraft.io/supported-interfaces">Snapcraft interface documentation</link>.
</para>
</example>
</section>
</section>

View File

@@ -1,4 +1,4 @@
# Cataclysm: Dark Days Ahead {#cataclysm-dark-days-ahead}
# Cataclysm: Dark Days Ahead
## How to install Cataclysm DDA
@@ -34,41 +34,6 @@ cataclysm-dda.override {
}
```
## Important note for overriding packages
After applying `overrideAttrs`, you need to fix `passthru.pkgs` and
`passthru.withMods` attributes either manually or by using `attachPkgs`:
```nix
let
# You enabled parallel building.
myCDDA = cataclysm-dda-git.overrideAttrs (_: {
enableParallelBuilding = true;
});
# Unfortunately, this refers to the package before overriding and
# parallel building is still disabled.
badExample = myCDDA.withMods (_: []);
inherit (cataclysmDDA) attachPkgs pkgs wrapCDDA;
# You can fix it by hand
goodExample1 = myCDDA.overrideAttrs (old: {
passthru = old.passthru // {
pkgs = pkgs.override { build = goodExample1; };
withMods = wrapCDDA goodExample1;
};
});
# or by using a helper function `attachPkgs`.
goodExample2 = attachPkgs pkgs myCDDA;
in
# badExample # parallel building disabled
# goodExample1.withMods (_: []) # parallel building enabled
goodExample2.withMods (_: []) # parallel building enabled
```
## Customizing with mods
To install Cataclysm DDA with mods of your choice, you can use `withMods`

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,24 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="dlib">
<title>DLib</title>
<para>
<link xlink:href="http://dlib.net/">DLib</link> is a modern, C++-based toolkit which provides several machine learning algorithms.
</para>
<section xml:id="compiling-without-avx-support">
<title>Compiling without AVX support</title>
<para>
Especially older CPUs don't support <link xlink:href="https://en.wikipedia.org/wiki/Advanced_Vector_Extensions">AVX</link> (<abbrev>Advanced Vector Extensions</abbrev>) instructions that are used by DLib to optimize their algorithms.
</para>
<para>
On the affected hardware errors like <literal>Illegal instruction</literal> will occur. In those cases AVX support needs to be disabled:
<programlisting>self: super: {
dlib = super.dlib.override { avxSupport = false; };
}</programlisting>
</para>
</section>
</section>

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,17 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="sec-elm">
<title>Elm</title>
<para>
To start a development environment do <command>nix-shell -p elmPackages.elm elmPackages.elm-format</command>
</para>
<para>
To update Elm compiler, see <filename>nixpkgs/pkgs/development/compilers/elm/README.md</filename>.
</para>
<para>
To package Elm applications, <link xlink:href="https://github.com/hercules-ci/elm2nix#elm2nix">read about elm2nix</link>.
</para>
</section>

View File

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

View File

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

View File

@@ -1,49 +0,0 @@
# Firefox {#sec-firefox}
## Build wrapped Firefox with extensions and policies
The `wrapFirefox` function allows to pass policies, preferences and extension that are available to firefox. With the help of `fetchFirefoxAddon` this allows build a firefox version that already comes with addons pre-installed:
```nix
{
myFirefox = wrapFirefox firefox-unwrapped {
nixExtensions = [
(fetchFirefoxAddon {
name = "ublock"; # Has to be unique!
url = "https://addons.mozilla.org/firefox/downloads/file/3679754/ublock_origin-1.31.0-an+fx.xpi";
sha256 = "1h768ljlh3pi23l27qp961v1hd0nbj2vasgy11bmcrlqp40zgvnr";
})
];
extraPolicies = {
CaptivePortal = false;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableTelemetry = true;
DisableFirefoxAccounts = true;
FirefoxHome = {
Pocket = false;
Snippets = false;
};
UserMessaging = {
ExtensionRecommendations = false;
SkipOnboarding = true;
};
};
extraPrefs = ''
// Show more ssl cert infos
lockPref("security.identityblock.show_extended_validation", true);
'';
};
}
```
If `nixExtensions != null` then all manually installed addons will be uninstalled from your browser profile.
To view available enterprise policies visit [enterprise policies](https://github.com/mozilla/policy-templates#enterprisepoliciesenabled)
or type into the Firefox url bar: `about:policies#documentation`.
Nix installed addons do not have a valid signature, which is why signature verification is disabled. This does not compromise security because downloaded addons are checksumed and manual addons can't be installed. Also make sure that the `name` field of fetchFirefoxAddon is unique. If you remove an addon from the nixExtensions array, rebuild and start Firefox the removed addon will be completly removed with all of its settings.
## Troubleshooting {#sec-firefox-troubleshooting}
If addons do not appear installed although they have been defined in your nix configuration file reset the local addon state of your Firefox profile by clicking `help -> restart with addons disabled -> restart -> refresh firefox`. This can happen if you switch from manual addon mode to nix addon mode and then back to manual mode and then again to nix addon mode.

View File

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

View File

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

View File

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

View File

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

View File

@@ -5,24 +5,21 @@
<para>
This chapter contains information about how to use and maintain the Nix expressions for a number of specific packages, such as the Linux kernel or X.org.
</para>
<xi:include href="citrix.section.xml" />
<xi:include href="dlib.section.xml" />
<xi:include href="eclipse.section.xml" />
<xi:include href="elm.section.xml" />
<xi:include href="emacs.section.xml" />
<xi:include href="firefox.section.xml" />
<xi:include href="fish.section.xml" />
<xi:include href="fuse.section.xml" />
<xi:include href="ibus.section.xml" />
<xi:include href="kakoune.section.xml" />
<xi:include href="linux.section.xml" />
<xi:include href="locales.section.xml" />
<xi:include href="nginx.section.xml" />
<xi:include href="opengl.section.xml" />
<xi:include href="shell-helpers.section.xml" />
<xi:include href="steam.section.xml" />
<xi:include href="citrix.xml" />
<xi:include href="dlib.xml" />
<xi:include href="eclipse.xml" />
<xi:include href="elm.xml" />
<xi:include href="emacs.xml" />
<xi:include href="ibus.xml" />
<xi:include href="kakoune.xml" />
<xi:include href="linux.xml" />
<xi:include href="locales.xml" />
<xi:include href="nginx.xml" />
<xi:include href="opengl.xml" />
<xi:include href="shell-helpers.xml" />
<xi:include href="steam.xml" />
<xi:include href="cataclysm-dda.section.xml" />
<xi:include href="urxvt.section.xml" />
<xi:include href="weechat.section.xml" />
<xi:include href="xorg.section.xml" />
<xi:include href="urxvt.xml" />
<xi:include href="weechat.xml" />
<xi:include href="xorg.xml" />
</chapter>

View File

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

View File

@@ -0,0 +1,14 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="sec-kakoune">
<title>Kakoune</title>
<para>
Kakoune can be built to autoload plugins:
<programlisting>(kakoune.override {
configure = {
plugins = with pkgs.kakounePlugins; [ parinfer-rust ];
};
})</programlisting>
</para>
</section>

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,13 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="locales">
<title>Locales</title>
<para>
To allow simultaneous use of packages linked against different versions of <literal>glibc</literal> with different locale archive formats Nixpkgs patches <literal>glibc</literal> to rely on <literal>LOCALE_ARCHIVE</literal> environment variable.
</para>
<para>
On non-NixOS distributions this variable is obviously not set. This can cause regressions in language support or even crashes in some Nixpkgs-provided programs. The simplest way to mitigate this problem is exporting the <literal>LOCALE_ARCHIVE</literal> variable pointing to <literal>${glibcLocales}/lib/locale/locale-archive</literal>. The drawback (and the reason this is not the default) is the relatively large (a hundred MiB) size of the full set of locales. It is possible to build a custom set of locales by overriding parameters <literal>allLocales</literal> and <literal>locales</literal> of the package.
</para>
</section>

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,9 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="sec-opengl">
<title>OpenGL</title>
<para>
Packages that use OpenGL have NixOS desktop as their primary target. The current solution for loading the GPU-specific drivers is based on <literal>libglvnd</literal> and looks for the driver implementation in <literal>LD_LIBRARY_PATH</literal>. If you are using a non-NixOS GNU/Linux/X11 desktop with free software video drivers, consider launching OpenGL-dependent programs from Nixpkgs with Nixpkgs versions of <literal>libglvnd</literal> and <literal>mesa_drivers</literal> in <literal>LD_LIBRARY_PATH</literal>. For proprietary video drivers you might have luck with also adding the corresponding video driver package.
</para>
</section>

View File

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

View File

@@ -0,0 +1,25 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="sec-shell-helpers">
<title>Interactive shell helpers</title>
<para>
Some packages provide the shell integration to be more useful. But unlike other systems, nix doesn't have a standard share directory location. This is why a bunch <command>PACKAGE-share</command> scripts are shipped that print the location of the corresponding shared folder. Current list of such packages is as following:
<itemizedlist>
<listitem>
<para>
<literal>autojump</literal>: <command>autojump-share</command>
</para>
</listitem>
<listitem>
<para>
<literal>fzf</literal>: <command>fzf-share</command>
</para>
</listitem>
</itemizedlist>
E.g. <literal>autojump</literal> can then used in the .bashrc like this:
<screen>
source "$(autojump-share)/autojump.bash"
</screen>
</para>
</section>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,34 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="sec-xorg">
<title>X.org</title>
<para>
The Nix expressions for the X.org packages reside in <filename>pkgs/servers/x11/xorg/default.nix</filename>. This file is automatically generated from lists of tarballs in an X.org release. As such it should not be modified directly; rather, you should modify the lists, the generator script or the file <filename>pkgs/servers/x11/xorg/overrides.nix</filename>, in which you can override or add to the derivations produced by the generator.
</para>
<para>
The generator is invoked as follows:
<screen>
<prompt>$ </prompt>cd pkgs/servers/x11/xorg
<prompt>$ </prompt>cat tarballs-7.5.list extra.list old.list \
| perl ./generate-expr-from-tarballs.pl
</screen>
For each of the tarballs in the <filename>.list</filename> files, the script downloads it, unpacks it, and searches its <filename>configure.ac</filename> and <filename>*.pc.in</filename> files for dependencies. This information is used to generate <filename>default.nix</filename>. The generator caches downloaded tarballs between runs. Pay close attention to the <literal>NOT FOUND: <replaceable>name</replaceable></literal> messages at the end of the run, since they may indicate missing dependencies. (Some might be optional dependencies, however.)
</para>
<para>
A file like <filename>tarballs-7.5.list</filename> contains all tarballs in a X.org release. It can be generated like this:
<screen>
<prompt>$ </prompt>export i="mirror://xorg/X11R7.4/src/everything/"
<prompt>$ </prompt>cat $(PRINT_PATH=1 nix-prefetch-url $i | tail -n 1) \
| perl -e 'while (&lt;>) { if (/(href|HREF)="([^"]*.bz2)"/) { print "$ENV{'i'}$2\n"; }; }' \
| sort > tarballs-7.4.list
</screen>
<filename>extra.list</filename> contains libraries that arent part of X.org proper, but are closely related to it, such as <literal>libxcb</literal>. <filename>old.list</filename> contains some packages that were removed from X.org, but are still needed by some people or by other packages (such as <varname>imake</varname>).
</para>
<para>
If the expression for a package requires derivation attributes that the generator cannot figure out automatically (say, <varname>patches</varname> or a <varname>postInstall</varname> hook), you should modify <filename>pkgs/servers/x11/xorg/overrides.nix</filename>.
</para>
</section>

View File

@@ -5,6 +5,6 @@
<para>
This chapter describes several special builders.
</para>
<xi:include href="special/fhs-environments.section.xml" />
<xi:include href="special/mkshell.section.xml" />
<xi:include href="special/fhs-environments.xml" />
<xi:include href="special/mkshell.xml" />
</chapter>

View File

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

View File

@@ -0,0 +1,122 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="sec-fhs-environments">
<title>buildFHSUserEnv</title>
<para>
<function>buildFHSUserEnv</function> provides a way to build and run FHS-compatible lightweight sandboxes. It creates an isolated root with bound <filename>/nix/store</filename>, so its footprint in terms of disk space needed is quite small. This allows one to run software which is hard or unfeasible to patch for NixOS -- 3rd-party source trees with FHS assumptions, games distributed as tarballs, software with integrity checking and/or external self-updated binaries. It uses Linux namespaces feature to create temporary lightweight environments which are destroyed after all child processes exit, without root user rights requirement. Accepted arguments are:
</para>
<variablelist>
<varlistentry>
<term>
<literal>name</literal>
</term>
<listitem>
<para>
Environment name.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>targetPkgs</literal>
</term>
<listitem>
<para>
Packages to be installed for the main host's architecture (i.e. x86_64 on x86_64 installations). Along with libraries binaries are also installed.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>multiPkgs</literal>
</term>
<listitem>
<para>
Packages to be installed for all architectures supported by a host (i.e. i686 and x86_64 on x86_64 installations). Only libraries are installed by default.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>extraBuildCommands</literal>
</term>
<listitem>
<para>
Additional commands to be executed for finalizing the directory structure.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>extraBuildCommandsMulti</literal>
</term>
<listitem>
<para>
Like <literal>extraBuildCommands</literal>, but executed only on multilib architectures.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>extraOutputsToInstall</literal>
</term>
<listitem>
<para>
Additional derivation outputs to be linked for both target and multi-architecture packages.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>extraInstallCommands</literal>
</term>
<listitem>
<para>
Additional commands to be executed for finalizing the derivation with runner script.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>runScript</literal>
</term>
<listitem>
<para>
A command that would be executed inside the sandbox and passed all the command line arguments. It defaults to <literal>bash</literal>.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
One can create a simple environment using a <literal>shell.nix</literal> like that:
</para>
<programlisting><![CDATA[
{ pkgs ? import <nixpkgs> {} }:
(pkgs.buildFHSUserEnv {
name = "simple-x11-env";
targetPkgs = pkgs: (with pkgs;
[ udev
alsaLib
]) ++ (with pkgs.xorg;
[ libX11
libXcursor
libXrandr
]);
multiPkgs = pkgs: (with pkgs;
[ udev
alsaLib
]);
runScript = "bash";
}).env
]]></programlisting>
<para>
Running <literal>nix-shell</literal> would then drop you into a shell with these libraries and binaries available. You can use this to run closed-source applications which expect FHS structure without hassles: simply change <literal>runScript</literal> to the application path, e.g. <filename>./bin/start.sh</filename> -- relative paths are supported.
</para>
</section>

View File

@@ -1,17 +0,0 @@
# pkgs.mkShell {#sec-pkgs-mkShell}
`pkgs.mkShell` is a special kind of derivation that is only useful when using
it combined with `nix-shell`. It will in fact fail to instantiate when invoked
with `nix-build`.
## Usage {#sec-pkgs-mkShell-usage}
```nix
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
# specify which packages to add to the shell environment
packages = [ pkgs.gnumake ];
# add all the dependencies, of the given packages, to the shell environment
inputsFrom = with pkgs; [ hello gnutar ];
}
```

View File

@@ -0,0 +1,24 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="sec-pkgs-mkShell">
<title>pkgs.mkShell</title>
<para>
<function>pkgs.mkShell</function> is a special kind of derivation that is only useful when using it combined with <command>nix-shell</command>. It will in fact fail to instantiate when invoked with <command>nix-build</command>.
</para>
<section xml:id="sec-pkgs-mkShell-usage">
<title>Usage</title>
<programlisting><![CDATA[
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
# this will make all the build inputs from hello and gnutar
# available to the shell environment
inputsFrom = with pkgs; [ hello gnutar ];
buildInputs = [ pkgs.gnumake ];
}
]]></programlisting>
</section>
</section>

View File

@@ -1,99 +0,0 @@
# Trivial builders {#chap-trivial-builders}
Nixpkgs provides a couple of functions that help with building derivations. The most important one, `stdenv.mkDerivation`, has already been documented above. The following functions wrap `stdenv.mkDerivation`, making it easier to use in certain cases.
## `runCommand` {#trivial-builder-runCommand}
This takes three arguments, `name`, `env`, and `buildCommand`. `name` is just the name that Nix will append to the store path in the same way that `stdenv.mkDerivation` uses its `name` attribute. `env` is an attribute set specifying environment variables that will be set for this derivation. These attributes are then passed to the wrapped `stdenv.mkDerivation`. `buildCommand` specifies the commands that will be run to create this derivation. Note that you will need to create `$out` for Nix to register the command as successful.
An example of using `runCommand` is provided below.
```nix
(import <nixpkgs> {}).runCommand "my-example" {} ''
echo My example command is running
mkdir $out
echo I can write data to the Nix store > $out/message
echo I can also run basic commands like:
echo ls
ls
echo whoami
whoami
echo date
date
''
```
## `runCommandCC` {#trivial-builder-runCommandCC}
This works just like `runCommand`. The only difference is that it also provides a C compiler in `buildCommand`'s environment. To minimize your dependencies, you should only use this if you are sure you will need a C compiler as part of running your command.
## `runCommandLocal` {#trivial-builder-runCommandLocal}
Variant of `runCommand` that forces the derivation to be built locally, it is not substituted. This is intended for very cheap commands (<1s execution time). It saves on the network roundrip and can speed up a build.
::: note
This sets [`allowSubstitutes` to `false`](https://nixos.org/nix/manual/#adv-attr-allowSubstitutes), so only use `runCommandLocal` if you are certain the user will always have a builder for the `system` of the derivation. This should be true for most trivial use cases (e.g. just copying some files to a different location or adding symlinks), because there the `system` is usually the same as `builtins.currentSystem`.
:::
## `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin` {#trivial-builder-writeText}
These functions write `text` to the Nix store. This is useful for creating scripts from Nix expressions. `writeTextFile` takes an attribute set and expects two arguments, `name` and `text`. `name` corresponds to the name used in the Nix store path. `text` will be the contents of the file. You can also set `executable` to true to make this file have the executable bit set.
Many more commands wrap `writeTextFile` including `writeText`, `writeTextDir`, `writeScript`, and `writeScriptBin`. These are convenience functions over `writeTextFile`.
## `symlinkJoin` {#trivial-builder-symlinkJoin}
This can be used to put many derivations into the same directory structure. It works by creating a new derivation and adding symlinks to each of the paths listed. It expects two arguments, `name`, and `paths`. `name` is the name used in the Nix store path for the created derivation. `paths` is a list of paths that will be symlinked. These paths can be to Nix store derivations or any other subdirectory contained within.
## `writeReferencesToFile` {#trivial-builder-writeReferencesToFile}
Writes the closure of transitive dependencies to a file.
This produces the equivalent of `nix-store -q --requisites`.
For example,
```nix
writeReferencesToFile (writeScriptBin "hi" ''${hello}/bin/hello'')
```
produces an output path `/nix/store/<hash>-runtime-deps` containing
```nix
/nix/store/<hash>-hello-2.10
/nix/store/<hash>-hi
/nix/store/<hash>-libidn2-2.3.0
/nix/store/<hash>-libunistring-0.9.10
/nix/store/<hash>-glibc-2.32-40
```
You can see that this includes `hi`, the original input path,
`hello`, which is a direct reference, but also
the other paths that are indirectly required to run `hello`.
## `writeDirectReferencesToFile` {#trivial-builder-writeDirectReferencesToFile}
Writes the set of references to the output file, that is, their immediate dependencies.
This produces the equivalent of `nix-store -q --references`.
For example,
```nix
writeDirectReferencesToFile (writeScriptBin "hi" ''${hello}/bin/hello'')
```
produces an output path `/nix/store/<hash>-runtime-references` containing
```nix
/nix/store/<hash>-hello-2.10
```
but none of `hello`'s dependencies, because those are not referenced directly
by `hi`'s output.

View File

@@ -0,0 +1,90 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="chap-trivial-builders">
<title>Trivial builders</title>
<para>
Nixpkgs provides a couple of functions that help with building derivations. The most important one, <function>stdenv.mkDerivation</function>, has already been documented above. The following functions wrap <function>stdenv.mkDerivation</function>, making it easier to use in certain cases.
</para>
<variablelist>
<varlistentry xml:id="trivial-builder-runCommand">
<term>
<literal>runCommand</literal>
</term>
<listitem>
<para>
This takes three arguments, <literal>name</literal>, <literal>env</literal>, and <literal>buildCommand</literal>. <literal>name</literal> is just the name that Nix will append to the store path in the same way that <literal>stdenv.mkDerivation</literal> uses its <literal>name</literal> attribute. <literal>env</literal> is an attribute set specifying environment variables that will be set for this derivation. These attributes are then passed to the wrapped <literal>stdenv.mkDerivation</literal>. <literal>buildCommand</literal> specifies the commands that will be run to create this derivation. Note that you will need to create <literal>$out</literal> for Nix to register the command as successful.
</para>
<para>
An example of using <literal>runCommand</literal> is provided below.
</para>
<programlisting>
(import &lt;nixpkgs&gt; {}).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
''
</programlisting>
</listitem>
</varlistentry>
<varlistentry xml:id="trivial-builder-runCommandCC">
<term>
<literal>runCommandCC</literal>
</term>
<listitem>
<para>
This works just like <literal>runCommand</literal>. The only difference is that it also provides a C compiler in <literal>buildCommand</literal>s environment. To minimize your dependencies, you should only use this if you are sure you will need a C compiler as part of running your command.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="trivial-builder-runCommandLocal">
<term>
<literal>runCommandLocal</literal>
</term>
<listitem>
<para>
Variant of <literal>runCommand</literal> that forces the derivation to be built locally, it is not substituted. This is intended for very cheap commands (&lt;1s execution time). It saves on the network roundrip and can speed up a build.
</para>
<note><para>
This sets <link xlink:href="https://nixos.org/nix/manual/#adv-attr-allowSubstitutes"><literal>allowSubstitutes</literal> to <literal>false</literal></link>, so only use <literal>runCommandLocal</literal> if you are certain the user will always have a builder for the <literal>system</literal> 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 <literal>system</literal> is usually the same as <literal>builtins.currentSystem</literal>.
</para></note>
</listitem>
</varlistentry>
<varlistentry xml:id="trivial-builder-writeText">
<term>
<literal>writeTextFile</literal>, <literal>writeText</literal>, <literal>writeTextDir</literal>, <literal>writeScript</literal>, <literal>writeScriptBin</literal>
</term>
<listitem>
<para>
These functions write <literal>text</literal> to the Nix store. This is useful for creating scripts from Nix expressions. <literal>writeTextFile</literal> takes an attribute set and expects two arguments, <literal>name</literal> and <literal>text</literal>. <literal>name</literal> corresponds to the name used in the Nix store path. <literal>text</literal> will be the contents of the file. You can also set <literal>executable</literal> to true to make this file have the executable bit set.
</para>
<para>
Many more commands wrap <literal>writeTextFile</literal> including <literal>writeText</literal>, <literal>writeTextDir</literal>, <literal>writeScript</literal>, and <literal>writeScriptBin</literal>. These are convenience functions over <literal>writeTextFile</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="trivial-builder-symlinkJoin">
<term>
<literal>symlinkJoin</literal>
</term>
<listitem>
<para>
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, <literal>name</literal>, and <literal>paths</literal>. <literal>name</literal> is the name used in the Nix store path for the created derivation. <literal>paths</literal> is a list of paths that will be symlinked. These paths can be to Nix store derivations or any other subdirectory contained within.
</para>
</listitem>
</varlistentry>
</variablelist>
</chapter>

View File

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

View File

@@ -0,0 +1,924 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="chap-conventions">
<title>Coding conventions</title>
<section xml:id="sec-syntax">
<title>Syntax</title>
<itemizedlist>
<listitem>
<para>
Use 2 spaces of indentation per indentation level in Nix expressions, 4 spaces in shell scripts.
</para>
</listitem>
<listitem>
<para>
Do not use tab characters, i.e. configure your editor to use soft tabs. For instance, use <literal>(setq-default indent-tabs-mode nil)</literal> in Emacs. Everybody has different tab settings so its asking for trouble.
</para>
</listitem>
<listitem>
<para>
Use <literal>lowerCamelCase</literal> for variable names, not <literal>UpperCamelCase</literal>. Note, this rule does not apply to package attribute names, which instead follow the rules in <xref linkend="sec-package-naming"/>.
</para>
</listitem>
<listitem>
<para>
Function calls with attribute set arguments are written as
<programlisting>
foo {
arg = ...;
}
</programlisting>
not
<programlisting>
foo
{
arg = ...;
}
</programlisting>
Also fine is
<programlisting>
foo { arg = ...; }
</programlisting>
if it's a short call.
</para>
</listitem>
<listitem>
<para>
In attribute sets or lists that span multiple lines, the attribute names or list elements should be aligned:
<programlisting>
# A long list.
list = [
elem1
elem2
elem3
];
# A long attribute set.
attrs = {
attr1 = short_expr;
attr2 =
if true then big_expr else big_expr;
};
# Combined
listOfAttrs = [
{
attr1 = 3;
attr2 = "fff";
}
{
attr1 = 5;
attr2 = "ggg";
}
];
</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>
The key words <emphasis>must</emphasis>, <emphasis>must not</emphasis>, <emphasis>required</emphasis>, <emphasis>shall</emphasis>, <emphasis>shall not</emphasis>, <emphasis>should</emphasis>, <emphasis>should not</emphasis>, <emphasis>recommended</emphasis>, <emphasis>may</emphasis>, and <emphasis>optional</emphasis> in this section are to be interpreted as described in <link xlink:href="https://tools.ietf.org/html/rfc2119">RFC 2119</link>. Only <emphasis>emphasized</emphasis> words are to be interpreted in this way.
</para>
<para>
In Nixpkgs, there are generally three different names associated with a package:
<itemizedlist>
<listitem>
<para>
The <varname>name</varname> attribute of the derivation (excluding the version part). This is what most users see, in particular when using <command>nix-env</command>.
</para>
</listitem>
<listitem>
<para>
The variable name used for the instantiated package in <filename>all-packages.nix</filename>, and when passing it as a dependency to other functions. Typically this is called the <emphasis>package attribute name</emphasis>. This is what Nix expression authors see. It can also be used when installing using <command>nix-env -iA</command>.
</para>
</listitem>
<listitem>
<para>
The filename for (the directory containing) the Nix expression.
</para>
</listitem>
</itemizedlist>
Most of the time, these are the same. For instance, the package <literal>e2fsprogs</literal> has a <varname>name</varname> attribute <literal>"e2fsprogs-<replaceable>version</replaceable>"</literal>, is bound to the variable name <varname>e2fsprogs</varname> in <filename>all-packages.nix</filename>, and the Nix expression is in <filename>pkgs/os-specific/linux/e2fsprogs/default.nix</filename>.
</para>
<para>
There are a few naming guidelines:
<itemizedlist>
<listitem>
<para>
The <literal>name</literal> attribute <emphasis>should</emphasis> be identical to the upstream package name.
</para>
</listitem>
<listitem>
<para>
The <literal>name</literal> attribute <emphasis>must not</emphasis> contain uppercase letters — e.g., <literal>"mplayer-1.0rc2"</literal> instead of <literal>"MPlayer-1.0rc2"</literal>.
</para>
</listitem>
<listitem>
<para>
The version part of the <literal>name</literal> attribute <emphasis>must</emphasis> start with a digit (following a dash) — e.g., <literal>"hello-0.3.1rc2"</literal>.
</para>
</listitem>
<listitem>
<para>
If a package is not a release but a commit from a repository, then the version part of the name <emphasis>must</emphasis> be the date of that (fetched) commit. The date <emphasis>must</emphasis> be in <literal>"YYYY-MM-DD"</literal> format. Also append <literal>"unstable"</literal> to the name - e.g., <literal>"pkgname-unstable-2014-09-23"</literal>.
</para>
</listitem>
<listitem>
<para>
Dashes in the package name <emphasis>should</emphasis> be preserved in new variable names, rather than converted to underscores or camel cased — e.g., <varname>http-parser</varname> instead of <varname>http_parser</varname> or <varname>httpParser</varname>. The hyphenated style is preferred in all three package names.
</para>
</listitem>
<listitem>
<para>
If there are multiple versions of a package, this <emphasis>should</emphasis> be reflected in the variable names in <filename>all-packages.nix</filename>, e.g. <varname>json-c-0-9</varname> and <varname>json-c-0-11</varname>. If there is an obvious “default” version, make an attribute like <literal>json-c = json-c-0-9;</literal>. See also <xref linkend="sec-versioning" />
</para>
</listitem>
</itemizedlist>
</para>
</section>
<section xml:id="sec-organisation">
<title>File naming and organisation</title>
<para>
Names of files and directories should be in lowercase, with dashes between words — not in camel case. For instance, it should be <filename>all-packages.nix</filename>, not <filename>allPackages.nix</filename> or <filename>AllPackages.nix</filename>.
</para>
<section xml:id="sec-hierarchy">
<title>Hierarchy</title>
<para>
Each package should be stored in its own directory somewhere in the <filename>pkgs/</filename> tree, i.e. in <filename>pkgs/<replaceable>category</replaceable>/<replaceable>subcategory</replaceable>/<replaceable>...</replaceable>/<replaceable>pkgname</replaceable></filename>. Below are some rules for picking the right category for a package. Many packages fall under several categories; what matters is the <emphasis>primary</emphasis> purpose of a package. For example, the <literal>libxml2</literal> package builds both a library and some tools; but its a library foremost, so it goes under <filename>pkgs/development/libraries</filename>.
</para>
<para>
When in doubt, consider refactoring the <filename>pkgs/</filename> tree, e.g. creating new categories or splitting up an existing category.
</para>
<variablelist>
<varlistentry>
<term>
If its used to support <emphasis>software development</emphasis>:
</term>
<listitem>
<variablelist>
<varlistentry>
<term>
If its a <emphasis>library</emphasis> used by other packages:
</term>
<listitem>
<para>
<filename>development/libraries</filename> (e.g. <filename>libxml2</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its a <emphasis>compiler</emphasis>:
</term>
<listitem>
<para>
<filename>development/compilers</filename> (e.g. <filename>gcc</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its an <emphasis>interpreter</emphasis>:
</term>
<listitem>
<para>
<filename>development/interpreters</filename> (e.g. <filename>guile</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its a (set of) development <emphasis>tool(s)</emphasis>:
</term>
<listitem>
<variablelist>
<varlistentry>
<term>
If its a <emphasis>parser generator</emphasis> (including lexers):
</term>
<listitem>
<para>
<filename>development/tools/parsing</filename> (e.g. <filename>bison</filename>, <filename>flex</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its a <emphasis>build manager</emphasis>:
</term>
<listitem>
<para>
<filename>development/tools/build-managers</filename> (e.g. <filename>gnumake</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Else:
</term>
<listitem>
<para>
<filename>development/tools/misc</filename> (e.g. <filename>binutils</filename>)
</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>
Else:
</term>
<listitem>
<para>
<filename>development/misc</filename>
</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its a (set of) <emphasis>tool(s)</emphasis>:
</term>
<listitem>
<para>
(A tool is a relatively small program, especially one intended to be used non-interactively.)
</para>
<variablelist>
<varlistentry>
<term>
If its for <emphasis>networking</emphasis>:
</term>
<listitem>
<para>
<filename>tools/networking</filename> (e.g. <filename>wget</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its for <emphasis>text processing</emphasis>:
</term>
<listitem>
<para>
<filename>tools/text</filename> (e.g. <filename>diffutils</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its a <emphasis>system utility</emphasis>, i.e., something related or essential to the operation of a system:
</term>
<listitem>
<para>
<filename>tools/system</filename> (e.g. <filename>cron</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its an <emphasis>archiver</emphasis> (which may include a compression function):
</term>
<listitem>
<para>
<filename>tools/archivers</filename> (e.g. <filename>zip</filename>, <filename>tar</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its a <emphasis>compression</emphasis> program:
</term>
<listitem>
<para>
<filename>tools/compression</filename> (e.g. <filename>gzip</filename>, <filename>bzip2</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its a <emphasis>security</emphasis>-related program:
</term>
<listitem>
<para>
<filename>tools/security</filename> (e.g. <filename>nmap</filename>, <filename>gnupg</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Else:
</term>
<listitem>
<para>
<filename>tools/misc</filename>
</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its a <emphasis>shell</emphasis>:
</term>
<listitem>
<para>
<filename>shells</filename> (e.g. <filename>bash</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its a <emphasis>server</emphasis>:
</term>
<listitem>
<variablelist>
<varlistentry>
<term>
If its a web server:
</term>
<listitem>
<para>
<filename>servers/http</filename> (e.g. <filename>apache-httpd</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its an implementation of the X Windowing System:
</term>
<listitem>
<para>
<filename>servers/x11</filename> (e.g. <filename>xorg</filename> — this includes the client libraries and programs)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Else:
</term>
<listitem>
<para>
<filename>servers/misc</filename>
</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its a <emphasis>desktop environment</emphasis>:
</term>
<listitem>
<para>
<filename>desktops</filename> (e.g. <filename>kde</filename>, <filename>gnome</filename>, <filename>enlightenment</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its a <emphasis>window manager</emphasis>:
</term>
<listitem>
<para>
<filename>applications/window-managers</filename> (e.g. <filename>awesome</filename>, <filename>stumpwm</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its an <emphasis>application</emphasis>:
</term>
<listitem>
<para>
A (typically large) program with a distinct user interface, primarily used interactively.
</para>
<variablelist>
<varlistentry>
<term>
If its a <emphasis>version management system</emphasis>:
</term>
<listitem>
<para>
<filename>applications/version-management</filename> (e.g. <filename>subversion</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its for <emphasis>video playback / editing</emphasis>:
</term>
<listitem>
<para>
<filename>applications/video</filename> (e.g. <filename>vlc</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its for <emphasis>graphics viewing / editing</emphasis>:
</term>
<listitem>
<para>
<filename>applications/graphics</filename> (e.g. <filename>gimp</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its for <emphasis>networking</emphasis>:
</term>
<listitem>
<variablelist>
<varlistentry>
<term>
If its a <emphasis>mailreader</emphasis>:
</term>
<listitem>
<para>
<filename>applications/networking/mailreaders</filename> (e.g. <filename>thunderbird</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its a <emphasis>newsreader</emphasis>:
</term>
<listitem>
<para>
<filename>applications/networking/newsreaders</filename> (e.g. <filename>pan</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its a <emphasis>web browser</emphasis>:
</term>
<listitem>
<para>
<filename>applications/networking/browsers</filename> (e.g. <filename>firefox</filename>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Else:
</term>
<listitem>
<para>
<filename>applications/networking/misc</filename>
</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>
Else:
</term>
<listitem>
<para>
<filename>applications/misc</filename>
</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its <emphasis>data</emphasis> (i.e., does not have a straight-forward executable semantics):
</term>
<listitem>
<variablelist>
<varlistentry>
<term>
If its a <emphasis>font</emphasis>:
</term>
<listitem>
<para>
<filename>data/fonts</filename>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its an <emphasis>icon theme</emphasis>:
</term>
<listitem>
<para>
<filename>data/icons</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>
<varlistentry>
<term>
If its a <emphasis>theme</emphasis> for a <emphasis>desktop environment</emphasis>,
a <emphasis>window manager</emphasis> or a <emphasis>display manager</emphasis>:
</term>
<listitem>
<para>
<filename>data/themes</filename>
</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>
If its a <emphasis>game</emphasis>:
</term>
<listitem>
<para>
<filename>games</filename>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Else:
</term>
<listitem>
<para>
<filename>misc</filename>
</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="sec-versioning">
<title>Versioning</title>
<para>
Because every version of a package in Nixpkgs creates a potential maintenance burden, old versions of a package should not be kept unless there is a good reason to do so. For instance, Nixpkgs contains several versions of GCC because other packages dont build with the latest version of GCC. Other examples are having both the latest stable and latest pre-release version of a package, or to keep several major releases of an application that differ significantly in functionality.
</para>
<para>
If there is only one version of a package, its Nix expression should be named <filename>e2fsprogs/default.nix</filename>. If there are multiple versions, this should be reflected in the filename, e.g. <filename>e2fsprogs/1.41.8.nix</filename> and <filename>e2fsprogs/1.41.9.nix</filename>. The version in the filename should leave out unnecessary detail. For instance, if we keep the latest Firefox 2.0.x and 3.5.x versions in Nixpkgs, they should be named <filename>firefox/2.0.nix</filename> and <filename>firefox/3.5.nix</filename>, respectively (which, at a given point, might contain versions <literal>2.0.0.20</literal> and <literal>3.5.4</literal>). If a version requires many auxiliary files, you can use a subdirectory for each version, e.g. <filename>firefox/2.0/default.nix</filename> and <filename>firefox/3.5/default.nix</filename>.
</para>
<para>
All versions of a package <emphasis>must</emphasis> be included in <filename>all-packages.nix</filename> to make sure that they evaluate correctly.
</para>
</section>
</section>
<section xml:id="sec-sources">
<title>Fetching Sources</title>
<para>
There are multiple ways to fetch a package source in nixpkgs. The general guideline is that you should package reproducible sources with a high degree of availability. Right now there is only one fetcher which has mirroring support and that is <literal>fetchurl</literal>. Note that you should also prefer protocols which have a corresponding proxy environment variable.
</para>
<para>
You can find many source fetch helpers in <literal>pkgs/build-support/fetch*</literal>.
</para>
<para>
In the file <literal>pkgs/top-level/all-packages.nix</literal> you can find fetch helpers, these have names on the form <literal>fetchFrom*</literal>. The intention of these are to provide snapshot fetches but using the same api as some of the version controlled fetchers from <literal>pkgs/build-support/</literal>. As an example going from bad to good:
<itemizedlist>
<listitem>
<para>
Bad: Uses <literal>git://</literal> which won't be proxied.
<programlisting>
src = fetchgit {
url = "git://github.com/NixOS/nix.git";
rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
sha256 = "1cw5fszffl5pkpa6s6wjnkiv6lm5k618s32sp60kvmvpy7a2v9kg";
}
</programlisting>
</para>
</listitem>
<listitem>
<para>
Better: This is ok, but an archive fetch will still be faster.
<programlisting>
src = fetchgit {
url = "https://github.com/NixOS/nix.git";
rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
sha256 = "1cw5fszffl5pkpa6s6wjnkiv6lm5k618s32sp60kvmvpy7a2v9kg";
}
</programlisting>
</para>
</listitem>
<listitem>
<para>
Best: Fetches a snapshot archive and you get the rev you want.
<programlisting>
src = fetchFromGitHub {
owner = "NixOS";
repo = "nix";
rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
sha256 = "1i2yxndxb6yc9l6c99pypbd92lfq5aac4klq7y2v93c9qvx2cgpc";
}
</programlisting>
Find the value to put as <literal>sha256</literal> by running <literal>nix run -f '&lt;nixpkgs&gt;' nix-prefetch-github -c nix-prefetch-github --rev 1f795f9f44607cc5bec70d1300150bfefcef2aae NixOS nix</literal> or <literal>nix-prefetch-url --unpack https://github.com/NixOS/nix/archive/1f795f9f44607cc5bec70d1300150bfefcef2aae.tar.gz</literal>.
</para>
</listitem>
</itemizedlist>
</para>
</section>
<section xml:id="sec-source-hashes">
<title>Obtaining source hash</title>
<para>
Preferred source hash type is sha256. There are several ways to get it.
</para>
<orderedlist>
<listitem>
<para>
Prefetch URL (with <literal>nix-prefetch-<replaceable>XXX</replaceable> <replaceable>URL</replaceable></literal>, where <replaceable>XXX</replaceable> is one of <literal>url</literal>, <literal>git</literal>, <literal>hg</literal>, <literal>cvs</literal>, <literal>bzr</literal>, <literal>svn</literal>). Hash is printed to stdout.
</para>
</listitem>
<listitem>
<para>
Prefetch by package source (with <literal>nix-prefetch-url '&lt;nixpkgs&gt;' -A <replaceable>PACKAGE</replaceable>.src</literal>, where <replaceable>PACKAGE</replaceable> is package attribute name). Hash is printed to stdout.
</para>
<para>
This works well when you've upgraded existing package version and want to find out new hash, but is useless if package can't be accessed by attribute or package has multiple sources (<literal>.srcs</literal>, architecture-dependent sources, etc).
</para>
</listitem>
<listitem>
<para>
Upstream provided hash: use it when upstream provides <literal>sha256</literal> or <literal>sha512</literal> (when upstream provides <literal>md5</literal>, don't use it, compute <literal>sha256</literal> instead).
</para>
<para>
A little nuance is that <literal>nix-prefetch-*</literal> tools produce hash encoded with <literal>base32</literal>, but upstream usually provides hexadecimal (<literal>base16</literal>) encoding. Fetchers understand both formats. Nixpkgs does not standardize on any one format.
</para>
<para>
You can convert between formats with nix-hash, for example:
<screen>
<prompt>$ </prompt>nix-hash --type sha256 --to-base32 <replaceable>HASH</replaceable>
</screen>
</para>
</listitem>
<listitem>
<para>
Extracting hash from local source tarball can be done with <literal>sha256sum</literal>. Use <literal>nix-prefetch-url file:///path/to/tarball </literal> if you want base32 hash.
</para>
</listitem>
<listitem>
<para>
Fake hash: set fake hash in package expression, perform build and extract correct hash from error Nix prints.
</para>
<para>
For package updates it is enough to change one symbol to make hash fake. For new packages, you can use <literal>lib.fakeSha256</literal>, <literal>lib.fakeSha512</literal> or any other fake hash.
</para>
<para>
This is last resort method when reconstructing source URL is non-trivial and <literal>nix-prefetch-url -A</literal> isn't applicable (for example, <link xlink:href="https://github.com/NixOS/nixpkgs/blob/d2ab091dd308b99e4912b805a5eb088dd536adb9/pkgs/applications/video/kodi/default.nix#L73"> one of <literal>kodi</literal> dependencies</link>). The easiest way then would be replace hash with a fake one and rebuild. Nix build will fail and error message will contain desired hash.
</para>
<warning>
<para>
This method has security problems. Check below for details.
</para>
</warning>
</listitem>
</orderedlist>
<section xml:id="sec-source-hashes-security">
<title>Obtaining hashes securely</title>
<para>
Let's say Man-in-the-Middle (MITM) sits close to your network. Then instead of fetching source you can fetch malware, and instead of source hash you get hash of malware. Here are security considerations for this scenario:
</para>
<itemizedlist>
<listitem>
<para>
<literal>http://</literal> URLs are not secure to prefetch hash from;
</para>
</listitem>
<listitem>
<para>
hashes from upstream (in method 3) should be obtained via secure protocol;
</para>
</listitem>
<listitem>
<para>
<literal>https://</literal> URLs are secure in methods 1, 2, 3;
</para>
</listitem>
<listitem>
<para>
<literal>https://</literal> URLs are not secure in method 5. When obtaining hashes with fake hash method, TLS checks are disabled. So refetch source hash from several different networks to exclude MITM scenario. Alternatively, use fake hash method to make Nix error, but instead of extracting hash from error, extract <literal>https://</literal> URL and prefetch it with method 1.
</para>
</listitem>
</itemizedlist>
</section>
</section>
<section xml:id="sec-patches">
<title>Patches</title>
<para>
Patches available online should be retrieved using <literal>fetchpatch</literal>.
</para>
<para>
<programlisting>
patches = [
(fetchpatch {
name = "fix-check-for-using-shared-freetype-lib.patch";
url = "http://git.ghostscript.com/?p=ghostpdl.git;a=patch;h=8f5d285";
sha256 = "1f0k043rng7f0rfl9hhb89qzvvksqmkrikmm38p61yfx51l325xr";
})
];
</programlisting>
</para>
<para>
Otherwise, you can add a <literal>.patch</literal> file to the <literal>nixpkgs</literal> repository. In the interest of keeping our maintenance burden to a minimum, only patches that are unique to <literal>nixpkgs</literal> should be added in this way.
</para>
<para>
<programlisting>
patches = [ ./0001-changes.patch ];
</programlisting>
</para>
<para>
If you do need to do create this sort of patch file, one way to do so is with git:
<orderedlist>
<listitem>
<para>
Move to the root directory of the source code you're patching.
<screen>
<prompt>$ </prompt>cd the/program/source</screen>
</para>
</listitem>
<listitem>
<para>
If a git repository is not already present, create one and stage all of the source files.
<screen>
<prompt>$ </prompt>git init
<prompt>$ </prompt>git add .</screen>
</para>
</listitem>
<listitem>
<para>
Edit some files to make whatever changes need to be included in the patch.
</para>
</listitem>
<listitem>
<para>
Use git to create a diff, and pipe the output to a patch file:
<screen>
<prompt>$ </prompt>git diff > nixpkgs/pkgs/the/package/0001-changes.patch</screen>
</para>
</listitem>
</orderedlist>
</para>
</section>
</chapter>

View File

@@ -1,24 +0,0 @@
# Contributing to this documentation {#chap-contributing}
The DocBook sources of the Nixpkgs manual are in the [doc](https://github.com/NixOS/nixpkgs/tree/master/doc) subdirectory of the Nixpkgs repository.
You can quickly check your edits with `make`:
```ShellSession
$ cd /path/to/nixpkgs/doc
$ nix-shell
[nix-shell]$ make
```
If you experience problems, run `make debug` to help understand the docbook errors.
After making modifications to the manual, it's important to build it before committing. You can do that as follows:
```ShellSession
$ cd /path/to/nixpkgs/doc
$ nix-shell
[nix-shell]$ make clean
[nix-shell]$ nix-build .
```
If the build succeeds, the manual will be in `./result/share/doc/nixpkgs/manual.html`.

View File

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

View File

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

View File

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

View File

@@ -1,204 +0,0 @@
# Reviewing contributions {#chap-reviewing-contributions}
::: warning
The following section is a draft, and the policy for reviewing is still being discussed in issues such as [#11166](https://github.com/NixOS/nixpkgs/issues/11166) and [#20836](https://github.com/NixOS/nixpkgs/issues/20836).
:::
The Nixpkgs project receives a fairly high number of contributions via GitHub pull requests. Reviewing and approving these is an important task and a way to contribute to the project.
The high change rate of Nixpkgs makes any pull request that remains open for too long subject to conflicts that will require extra work from the submitter or the merger. Reviewing pull requests in a timely manner and being responsive to the comments is the key to avoid this issue. GitHub provides sort filters that can be used to see the [most recently](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc) and the [least recently](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc) updated pull requests. We highly encourage looking at [this list of ready to merge, unreviewed pull requests](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+review%3Anone+status%3Asuccess+-label%3A%222.status%3A+work-in-progress%22+no%3Aproject+no%3Aassignee+no%3Amilestone).
When reviewing a pull request, please always be nice and polite. Controversial changes can lead to controversial opinions, but it is important to respect every community member and their work.
GitHub provides reactions as a simple and quick way to provide feedback to pull requests or any comments. The thumb-down reaction should be used with care and if possible accompanied with some explanation so the submitter has directions to improve their contribution.
pull request reviews should include a list of what has been reviewed in a comment, so other reviewers and mergers can know the state of the review.
All the review template samples provided in this section are generic and meant as examples. Their usage is optional and the reviewer is free to adapt them to their liking.
## Package updates {#reviewing-contributions-package-updates}
A package update is the most trivial and common type of pull request. These pull requests mainly consist of updating the version part of the package name and the source hash.
It can happen that non-trivial updates include patches or more complex changes.
Reviewing process:
- Ensure that the package versioning fits the guidelines.
- Ensure that the commit text fits the guidelines.
- Ensure that the package maintainers are notified.
- [CODEOWNERS](https://help.github.com/articles/about-codeowners) will make GitHub notify users based on the submitted changes, but it can happen that it misses some of the package maintainers.
- Ensure that the meta field information is correct.
- License can change with version updates, so it should be checked to match the upstream license.
- If the package has no maintainer, a maintainer must be set. This can be the update submitter or a community member that accepts to take maintainership of the package.
- Ensure that the code contains no typos.
- Building the package locally.
- pull requests are often targeted to the master or staging branch, and building the pull request locally when it is submitted can trigger many source builds.
- It is possible to rebase the changes on nixos-unstable or nixpkgs-unstable for easier review by running the following commands from a nixpkgs clone.
```ShellSession
$ git fetch origin nixos-unstable
$ git fetch origin pull/PRNUMBER/head
$ git rebase --onto nixos-unstable BASEBRANCH FETCH_HEAD
```
- The first command fetches the nixos-unstable branch.
- The second command fetches the pull request changes, `PRNUMBER` is the number at the end of the pull request title and `BASEBRANCH` the base branch of the pull request.
- The third command rebases the pull request changes to the nixos-unstable branch.
- The [nixpkgs-review](https://github.com/Mic92/nixpkgs-review) tool can be used to review a pull request content in a single command. `PRNUMBER` should be replaced by the number at the end of the pull request title. You can also provide the full github pull request url.
```ShellSession
$ nix-shell -p nixpkgs-review --run "nixpkgs-review pr PRNUMBER"
```
- Running every binary.
Sample template for a package update review is provided below.
```markdown
##### Reviewed points
- [ ] package name fits guidelines
- [ ] package version fits guidelines
- [ ] package build on ARCHITECTURE
- [ ] executables tested on ARCHITECTURE
- [ ] all depending packages build
##### Possible improvements
##### Comments
```
## New packages {#reviewing-contributions-new-packages}
New packages are a common type of pull requests. These pull requests consists in adding a new nix-expression for a package.
Review process:
- Ensure that the package versioning fits the guidelines.
- Ensure that the commit name fits the guidelines.
- Ensure that the meta fields contain correct information.
- License must match the upstream license.
- Platforms should be set (or the package will not get binary substitutes).
- Maintainers must be set. This can be the package submitter or a community member that accepts taking up maintainership of the package.
- Report detected typos.
- Ensure the package source:
- Uses mirror URLs when available.
- Uses the most appropriate functions (e.g. packages from GitHub should use `fetchFromGitHub`).
- Building the package locally.
- Running every binary.
Sample template for a new package review is provided below.
```markdown
##### Reviewed points
- [ ] package path fits guidelines
- [ ] package name fits guidelines
- [ ] package version fits guidelines
- [ ] package build on ARCHITECTURE
- [ ] executables tested on ARCHITECTURE
- [ ] `meta.description` is set and fits guidelines
- [ ] `meta.license` fits upstream license
- [ ] `meta.platforms` is set
- [ ] `meta.maintainers` is set
- [ ] build time only dependencies are declared in `nativeBuildInputs`
- [ ] source is fetched using the appropriate function
- [ ] phases are respected
- [ ] patches that are remotely available are fetched with `fetchpatch`
##### Possible improvements
##### Comments
```
## Module updates {#reviewing-contributions-module-updates}
Module updates are submissions changing modules in some ways. These often contains changes to the options or introduce new options.
Reviewing process:
- Ensure that the module maintainers are notified.
- [CODEOWNERS](https://help.github.com/articles/about-codeowners/) will make GitHub notify users based on the submitted changes, but it can happen that it misses some of the package maintainers.
- Ensure that the module tests, if any, are succeeding.
- Ensure that the introduced options are correct.
- Type should be appropriate (string related types differs in their merging capabilities, `optionSet` and `string` types are deprecated).
- Description, default and example should be provided.
- Ensure that option changes are backward compatible.
- `mkRenamedOptionModule` and `mkAliasOptionModule` functions provide way to make option changes backward compatible.
- Ensure that removed options are declared with `mkRemovedOptionModule`
- Ensure that changes that are not backward compatible are mentioned in release notes.
- Ensure that documentations affected by the change is updated.
Sample template for a module update review is provided below.
```markdown
##### Reviewed points
- [ ] changes are backward compatible
- [ ] removed options are declared with `mkRemovedOptionModule`
- [ ] changes that are not backward compatible are documented in release notes
- [ ] module tests succeed on ARCHITECTURE
- [ ] options types are appropriate
- [ ] options description is set
- [ ] options example is provided
- [ ] documentation affected by the changes is updated
##### Possible improvements
##### Comments
```
## New modules {#reviewing-contributions-new-modules}
New modules submissions introduce a new module to NixOS.
Reviewing process:
- Ensure that the module tests, if any, are succeeding.
- Ensure that the introduced options are correct.
- Type should be appropriate (string related types differs in their merging capabilities, `optionSet` and `string` types are deprecated).
- Description, default and example should be provided.
- Ensure that module `meta` field is present
- Maintainers should be declared in `meta.maintainers`.
- Module documentation should be declared with `meta.doc`.
- Ensure that the module respect other modules functionality.
- For example, enabling a module should not open firewall ports by default.
Sample template for a new module review is provided below.
```markdown
##### Reviewed points
- [ ] module path fits the guidelines
- [ ] module tests succeed on ARCHITECTURE
- [ ] options have appropriate types
- [ ] options have default
- [ ] options have example
- [ ] options have descriptions
- [ ] No unneeded package is added to environment.systemPackages
- [ ] meta.maintainers is set
- [ ] module documentation is declared in meta.doc
##### Possible improvements
##### Comments
```
## Other submissions {#reviewing-contributions-other-submissions}
Other type of submissions requires different reviewing steps.
If you consider having enough knowledge and experience in a topic and would like to be a long-term reviewer for related submissions, please contact the current reviewers for that topic. They will give you information about the reviewing process. The main reviewers for a topic can be hard to find as there is no list, but checking past pull requests to see who reviewed or git-blaming the code to see who committed to that topic can give some hints.
Container system, boot system and library changes are some examples of the pull requests fitting this category.
## Merging pull requests {#reviewing-contributions--merging-pull-requests}
It is possible for community members that have enough knowledge and experience on a special topic to contribute by merging pull requests.
<!--
The following paragraphs about how to deal with unactive contributors is just a proposition and should be modified to what the community agrees to be the right policy.
Please note that contributors with commit rights unactive for more than three months will have their commit rights revoked.
-->
Please see the discussion in [GitHub nixpkgs issue #50105](https://github.com/NixOS/nixpkgs/issues/50105) for information on how to proceed to be granted this level of access.
In a case a contributor definitively leaves the Nix community, they should create an issue or post on [Discourse](https://discourse.nixos.org) with references of packages and modules they maintain so the maintainership can be taken over by other contributors.

View File

@@ -0,0 +1,536 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="chap-reviewing-contributions">
<title>Reviewing contributions</title>
<warning>
<para>
The following section is a draft, and the policy for reviewing is still being discussed in issues such as <link
xlink:href="https://github.com/NixOS/nixpkgs/issues/11166">#11166 </link> and <link
xlink:href="https://github.com/NixOS/nixpkgs/issues/20836">#20836 </link>.
</para>
</warning>
<para>
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.
</para>
<para>
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 <link
xlink:href="https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc">most recently</link> and the <link
xlink:href="https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc">least recently</link> updated pull requests. We highly encourage looking at <link xlink:href="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"> this list of ready to merge, unreviewed pull requests</link>.
</para>
<para>
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.
</para>
<para>
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.
</para>
<para>
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.
</para>
<para>
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.
</para>
<section xml:id="reviewing-contributions-package-updates">
<title>Package updates</title>
<para>
A package update is the most trivial and common type of pull request. These pull requests mainly consist of updating the version part of the package name and the source hash.
</para>
<para>
It can happen that non-trivial updates include patches or more complex changes.
</para>
<para>
Reviewing process:
</para>
<itemizedlist>
<listitem>
<para>
Add labels to the pull request. (Requires commit rights)
</para>
<itemizedlist>
<listitem>
<para>
<literal>8.has: package (update)</literal> and any topic label that fit the updated package.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Ensure that the package versioning fits the guidelines.
</para>
</listitem>
<listitem>
<para>
Ensure that the commit text fits the guidelines.
</para>
</listitem>
<listitem>
<para>
Ensure that the package maintainers are notified.
</para>
<itemizedlist>
<listitem>
<para>
<link xlink:href="https://help.github.com/articles/about-codeowners/">CODEOWNERS</link> will make GitHub notify users based on the submitted changes, but it can happen that it misses some of the package maintainers.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Ensure that the meta field information is correct.
</para>
<itemizedlist>
<listitem>
<para>
License can change with version updates, so it should be checked to match the upstream license.
</para>
</listitem>
<listitem>
<para>
If the package has no maintainer, a maintainer must be set. This can be the update submitter or a community member that accepts to take maintainership of the package.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Ensure that the code contains no typos.
</para>
</listitem>
<listitem>
<para>
Building the package locally.
</para>
<itemizedlist>
<listitem>
<para>
pull requests are often targeted to the master or staging branch, and building the pull request locally when it is submitted can trigger many source builds.
</para>
<para>
It is possible to rebase the changes on nixos-unstable or nixpkgs-unstable for easier review by running the following commands from a nixpkgs clone.
<screen>
<prompt>$ </prompt>git fetch origin nixos-unstable <co xml:id='reviewing-rebase-2' />
<prompt>$ </prompt>git fetch origin pull/PRNUMBER/head <co xml:id='reviewing-rebase-3' />
<prompt>$ </prompt>git rebase --onto nixos-unstable BASEBRANCH FETCH_HEAD <co
xml:id='reviewing-rebase-4' />
</screen>
<calloutlist>
<callout arearefs='reviewing-rebase-2'>
<para>
Fetching the nixos-unstable branch.
</para>
</callout>
<callout arearefs='reviewing-rebase-3'>
<para>
Fetching the pull request changes, <varname>PRNUMBER</varname> is the number at the end of the pull request title and <varname>BASEBRANCH</varname> the base branch of the pull request.
</para>
</callout>
<callout arearefs='reviewing-rebase-4'>
<para>
Rebasing the pull request changes to the nixos-unstable branch.
</para>
</callout>
</calloutlist>
</para>
</listitem>
<listitem>
<para>
The <link xlink:href="https://github.com/Mic92/nixpkgs-review">nixpkgs-review</link> tool can be used to review a pull request content in a single command. <varname>PRNUMBER</varname> should be replaced by the number at the end of the pull request title. You can also provide the full github pull request url.
</para>
<screen>
<prompt>$ </prompt>nix-shell -p nixpkgs-review --run "nixpkgs-review pr PRNUMBER"
</screen>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Running every binary.
</para>
</listitem>
</itemizedlist>
<example xml:id="reviewing-contributions-sample-package-update">
<title>Sample template for a package update review</title>
<screen>
##### Reviewed points
- [ ] package name fits guidelines
- [ ] package version fits guidelines
- [ ] package build on ARCHITECTURE
- [ ] executables tested on ARCHITECTURE
- [ ] all depending packages build
##### Possible improvements
##### Comments
</screen>
</example>
</section>
<section xml:id="reviewing-contributions-new-packages">
<title>New packages</title>
<para>
New packages are a common type of pull requests. These pull requests consists in adding a new nix-expression for a package.
</para>
<para>
Reviewing process:
</para>
<itemizedlist>
<listitem>
<para>
Add labels to the pull request. (Requires commit rights)
</para>
<itemizedlist>
<listitem>
<para>
<literal>8.has: package (new)</literal> and any topic label that fit the new package.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Ensure that the package versioning is fitting the guidelines.
</para>
</listitem>
<listitem>
<para>
Ensure that the commit name is fitting the guidelines.
</para>
</listitem>
<listitem>
<para>
Ensure that the meta field contains correct information.
</para>
<itemizedlist>
<listitem>
<para>
License must be checked to be fitting upstream license.
</para>
</listitem>
<listitem>
<para>
Platforms should be set or the package will not get binary substitutes.
</para>
</listitem>
<listitem>
<para>
A maintainer must be set. This can be the package submitter or a community member that accepts to take maintainership of the package.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Ensure that the code contains no typos.
</para>
</listitem>
<listitem>
<para>
Ensure the package source.
</para>
<itemizedlist>
<listitem>
<para>
Mirrors urls should be used when available.
</para>
</listitem>
<listitem>
<para>
The most appropriate function should be used (e.g. packages from GitHub should use <literal>fetchFromGitHub</literal>).
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Building the package locally.
</para>
</listitem>
<listitem>
<para>
Running every binary.
</para>
</listitem>
</itemizedlist>
<example xml:id="reviewing-contributions-sample-new-package">
<title>Sample template for a new package review</title>
<screen>
##### Reviewed points
- [ ] package path fits guidelines
- [ ] package name fits guidelines
- [ ] package version fits guidelines
- [ ] package build on ARCHITECTURE
- [ ] executables tested on ARCHITECTURE
- [ ] `meta.description` is set and fits guidelines
- [ ] `meta.license` fits upstream license
- [ ] `meta.platforms` is set
- [ ] `meta.maintainers` is set
- [ ] build time only dependencies are declared in `nativeBuildInputs`
- [ ] source is fetched using the appropriate function
- [ ] phases are respected
- [ ] patches that are remotely available are fetched with `fetchpatch`
##### Possible improvements
##### Comments
</screen>
</example>
</section>
<section xml:id="reviewing-contributions-module-updates">
<title>Module updates</title>
<para>
Module updates are submissions changing modules in some ways. These often contains changes to the options or introduce new options.
</para>
<para>
Reviewing process
</para>
<itemizedlist>
<listitem>
<para>
Add labels to the pull request. (Requires commit rights)
</para>
<itemizedlist>
<listitem>
<para>
<literal>8.has: module (update)</literal> and any topic label that fit the module.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Ensure that the module maintainers are notified.
</para>
<itemizedlist>
<listitem>
<para>
<link xlink:href="https://help.github.com/articles/about-codeowners/">CODEOWNERS</link> will make GitHub notify users based on the submitted changes, but it can happen that it misses some of the package maintainers.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Ensure that the module tests, if any, are succeeding.
</para>
</listitem>
<listitem>
<para>
Ensure that the introduced options are correct.
</para>
<itemizedlist>
<listitem>
<para>
Type should be appropriate (string related types differs in their merging capabilities, <literal>optionSet</literal> and <literal>string</literal> types are deprecated).
</para>
</listitem>
<listitem>
<para>
Description, default and example should be provided.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Ensure that option changes are backward compatible.
</para>
<itemizedlist>
<listitem>
<para>
<literal>mkRenamedOptionModule</literal> and <literal>mkAliasOptionModule</literal> functions provide way to make option changes backward compatible.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Ensure that removed options are declared with <literal>mkRemovedOptionModule</literal>
</para>
</listitem>
<listitem>
<para>
Ensure that changes that are not backward compatible are mentioned in release notes.
</para>
</listitem>
<listitem>
<para>
Ensure that documentations affected by the change is updated.
</para>
</listitem>
</itemizedlist>
<example xml:id="reviewing-contributions-sample-module-update">
<title>Sample template for a module update review</title>
<screen>
##### Reviewed points
- [ ] changes are backward compatible
- [ ] removed options are declared with `mkRemovedOptionModule`
- [ ] changes that are not backward compatible are documented in release notes
- [ ] module tests succeed on ARCHITECTURE
- [ ] options types are appropriate
- [ ] options description is set
- [ ] options example is provided
- [ ] documentation affected by the changes is updated
##### Possible improvements
##### Comments
</screen>
</example>
</section>
<section xml:id="reviewing-contributions-new-modules">
<title>New modules</title>
<para>
New modules submissions introduce a new module to NixOS.
</para>
<itemizedlist>
<listitem>
<para>
Add labels to the pull request. (Requires commit rights)
</para>
<itemizedlist>
<listitem>
<para>
<literal>8.has: module (new)</literal> and any topic label that fit the module.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Ensure that the module tests, if any, are succeeding.
</para>
</listitem>
<listitem>
<para>
Ensure that the introduced options are correct.
</para>
<itemizedlist>
<listitem>
<para>
Type should be appropriate (string related types differs in their merging capabilities, <literal>optionSet</literal> and <literal>string</literal> types are deprecated).
</para>
</listitem>
<listitem>
<para>
Description, default and example should be provided.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Ensure that module <literal>meta</literal> field is present
</para>
<itemizedlist>
<listitem>
<para>
Maintainers should be declared in <literal>meta.maintainers</literal>.
</para>
</listitem>
<listitem>
<para>
Module documentation should be declared with <literal>meta.doc</literal>.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Ensure that the module respect other modules functionality.
</para>
<itemizedlist>
<listitem>
<para>
For example, enabling a module should not open firewall ports by default.
</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
<example xml:id="reviewing-contributions-sample-new-module">
<title>Sample template for a new module review</title>
<screen>
##### Reviewed points
- [ ] module path fits the guidelines
- [ ] module tests succeed on ARCHITECTURE
- [ ] options have appropriate types
- [ ] options have default
- [ ] options have example
- [ ] options have descriptions
- [ ] No unneeded package is added to environment.systemPackages
- [ ] meta.maintainers is set
- [ ] module documentation is declared in meta.doc
##### Possible improvements
##### Comments
</screen>
</example>
</section>
<section xml:id="reviewing-contributions-other-submissions">
<title>Other submissions</title>
<para>
Other type of submissions requires different reviewing steps.
</para>
<para>
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.
</para>
<para>
Container system, boot system and library changes are some examples of the pull requests fitting this category.
</para>
</section>
<section xml:id="reviewing-contributions--merging-pull-requests">
<title>Merging pull requests</title>
<para>
It is possible for community members that have enough knowledge and experience on a special topic to contribute by merging pull requests.
</para>
<para>
TODO: add the procedure to request merging rights.
</para>
<!--
The following paragraph 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.
<para>Please note that contributors with commit rights unactive for more than
three months will have their commit rights revoked.</para>
-->
<para>
In a case a contributor definitively leaves the Nix community, they should create an issue or post on <link
xlink:href="https://discourse.nixos.org">Discourse</link> with references of packages and modules they maintain so the maintainership can be taken over by other contributors.
</para>
</section>
</chapter>

View File

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

View File

@@ -0,0 +1,455 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="chap-submitting-changes">
<title>Submitting changes</title>
<section xml:id="submitting-changes-making-patches">
<title>Making patches</title>
<itemizedlist>
<listitem>
<para>
Read <link xlink:href="https://nixos.org/nixpkgs/manual/">Manual (How to write packages for Nix)</link>.
</para>
</listitem>
<listitem>
<para>
Fork <link xlink:href="https://github.com/nixos/nixpkgs/">the Nixpkgs repository</link> on GitHub.
</para>
</listitem>
<listitem>
<para>
Create a branch for your future fix.
<itemizedlist>
<listitem>
<para>
You can make branch from a commit of your local <command>nixos-version</command>. That will help you to avoid additional local compilations. Because you will receive packages from binary cache. For example
<screen>
<prompt>$ </prompt>nixos-version --hash
0998212
<prompt>$ </prompt>git checkout 0998212
<prompt>$ </prompt>git checkout -b 'fix/pkg-name-update'
</screen>
</para>
</listitem>
<listitem>
<para>
Please avoid working directly on the <command>master</command> branch.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
Make commits of logical units.
</para>
</listitem>
<listitem>
<para>
If you removed pkgs or made some major NixOS changes, write about it in the release notes for the next stable release. For example <command>nixos/doc/manual/release-notes/rl-2003.xml</command>.
</para>
</listitem>
<listitem>
<para>
Check for unnecessary whitespace with <command>git diff --check</command> before committing.
</para>
</listitem>
<listitem>
<para>
Format the commit in a following way:
</para>
<programlisting>
(pkg-name | nixos/&lt;module>): (from -> to | init at version | refactor | etc)
Additional information.
</programlisting>
<itemizedlist>
<listitem>
<para>
Examples:
<itemizedlist>
<listitem>
<para>
<command>nginx: init at 2.0.1</command>
</para>
</listitem>
<listitem>
<para>
<command>firefox: 54.0.1 -> 55.0</command>
</para>
</listitem>
<listitem>
<para>
<command>nixos/hydra: add bazBaz option</command>
</para>
</listitem>
<listitem>
<para>
<command>nixos/nginx: refactor config generation</command>
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Test your changes. If you work with
<itemizedlist>
<listitem>
<para>
nixpkgs:
<itemizedlist>
<listitem>
<para>
update pkg ->
<itemizedlist>
<listitem>
<para>
<command>nix-env -i pkg-name -f &lt;path to your local nixpkgs folder&gt;</command>
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
add pkg ->
<itemizedlist>
<listitem>
<para>
Make sure it's in <command>pkgs/top-level/all-packages.nix</command>
</para>
</listitem>
<listitem>
<para>
<command>nix-env -i pkg-name -f &lt;path to your local nixpkgs folder&gt;</command>
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
<emphasis>If you don't want to install pkg in you profile</emphasis>.
<itemizedlist>
<listitem>
<para>
<command>nix-build -A pkg-attribute-name &lt;path to your local nixpkgs folder&gt;/default.nix</command> and check results in the folder <command>result</command>. It will appear in the same directory where you did <command>nix-build</command>.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
If you did <command>nix-env -i pkg-name</command> you can do <command>nix-env -e pkg-name</command> to uninstall it from your system.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
NixOS and its modules:
<itemizedlist>
<listitem>
<para>
You can add new module to your NixOS configuration file (usually it's <command>/etc/nixos/configuration.nix</command>). And do <command>sudo nixos-rebuild test -I nixpkgs=&lt;path to your local nixpkgs folder&gt; --fast</command>.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
If you have commits <command>pkg-name: oh, forgot to insert whitespace</command>: squash commits in this case. Use <command>git rebase -i</command>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://git-scm.com/book/en/v2/Git-Branching-Rebasing">Rebase</link> your branch against current <command>master</command>.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="submitting-changes-submitting-changes">
<title>Submitting changes</title>
<itemizedlist>
<listitem>
<para>
Push your changes to your fork of nixpkgs.
</para>
</listitem>
<listitem>
<para>
Create the pull request
</para>
</listitem>
<listitem>
<para>
Follow <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md#submitting-changes">the contribution guidelines</link>.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="submitting-changes-submitting-security-fixes">
<title>Submitting security fixes</title>
<para>
Security fixes are submitted in the same way as other changes and thus the same guidelines apply.
</para>
<para>
If the security fix comes in the form of a patch and a CVE is available, then the name of the patch should be the CVE identifier, so e.g. <literal>CVE-2019-13636.patch</literal> in the case of a patch that is included in the Nixpkgs tree. If a patch is fetched the name needs to be set as well, e.g.:
</para>
<programlisting>
(fetchpatch {
name = "CVE-2019-11068.patch";
url = "https://gitlab.gnome.org/GNOME/libxslt/commit/e03553605b45c88f0b4b2980adfbbb8f6fca2fd6.patch";
sha256 = "0pkpb4837km15zgg6h57bncp66d5lwrlvkr73h0lanywq7zrwhj8";
})
</programlisting>
<para>
If a security fix applies to both master and a stable release then, similar to regular changes, they are preferably delivered via master first and cherry-picked to the release branch.
</para>
<para>
Critical security fixes may by-pass the staging branches and be delivered directly to release branches such as <literal>master</literal> and <literal>release-*</literal>.
</para>
</section>
<section xml:id="submitting-changes-pull-request-template">
<title>Pull Request Template</title>
<para>
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.
</para>
<para>
When a PR is created, it will be pre-populated with some checkboxes detailed below:
</para>
<section xml:id="submitting-changes-tested-with-sandbox">
<title>Tested using sandboxing</title>
<para>
When sandbox builds are enabled, Nix will setup an isolated environment for each build process. It is used to remove further hidden dependencies set by the build environment to improve reproducibility. This includes access to the network during the build outside of <function>fetch*</function> functions and files outside the Nix store. Depending on the operating system access to other resources are blocked as well (ex. inter process communication is isolated on Linux); see <link
xlink:href="https://nixos.org/nix/manual/#conf-sandbox">sandbox</link> in Nix manual for details.
</para>
<para>
Sandboxing is not enabled by default in Nix due to a small performance hit on each build. In pull requests for <link
xlink:href="https://github.com/NixOS/nixpkgs/">nixpkgs</link> people are asked to test builds with sandboxing enabled (see <literal>Tested using sandboxing</literal> in the pull request template) because in<link
xlink:href="https://nixos.org/hydra/">https://nixos.org/hydra/</link> sandboxing is also used.
</para>
<para>
Depending if you use NixOS or other platforms you can use one of the following methods to enable sandboxing <emphasis role="bold">before</emphasis> building the package:
<itemizedlist>
<listitem>
<para>
<emphasis role="bold">Globally enable sandboxing on NixOS</emphasis>: add the following to <filename>configuration.nix</filename>
<screen>nix.useSandbox = true;</screen>
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Globally enable sandboxing on non-NixOS platforms</emphasis>: add the following to: <filename>/etc/nix/nix.conf</filename>
<screen>sandbox = true</screen>
</para>
</listitem>
</itemizedlist>
</para>
</section>
<section xml:id="submitting-changes-platform-diversity">
<title>Built on platform(s)</title>
<para>
Many Nix packages are designed to run on multiple platforms. As such, it's important to let the maintainer know which platforms your changes have been tested on. It's 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.
</para>
</section>
<section xml:id="submitting-changes-nixos-tests">
<title>Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)</title>
<para>
Packages with automated tests are much more likely to be merged in a timely fashion because it doesn't 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 only apply to packages with NixOS modules defined and can only be run on Linux. For more details on writing and running tests, see the <link
xlink:href="https://nixos.org/nixos/manual/index.html#sec-nixos-tests">section in the NixOS manual</link>.
</para>
</section>
<section xml:id="submitting-changes-tested-compilation">
<title>Tested compilation of all pkgs that depend on this change using <command>nixpkgs-review</command></title>
<para>
If you are updating a package's version, you can use nixpkgs-review to make sure all packages that depend on the updated package still compile correctly. The <command>nixpkgs-review</command> utility can look for and build all dependencies either based on uncommited changes with the <literal>wip</literal> option or specifying a github pull request number.
</para>
<para>
review changes from pull request number 12345:
<screen>nix run nixpkgs.nixpkgs-review -c nixpkgs-review pr 12345</screen>
</para>
<para>
review uncommitted changes:
<screen>nix run nixpkgs.nixpkgs-review -c nixpkgs-review wip</screen>
</para>
<para>
review changes from last commit:
<screen>nix run nixpkgs.nixpkgs-review -c nixpkgs-review rev HEAD</screen>
</para>
</section>
<section xml:id="submitting-changes-tested-execution">
<title>Tested execution of all binary files (usually in <filename>./result/bin/</filename>)</title>
<para>
It's 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 <filename>./result/bin</filename> and running any files in there, or at a minimum, the main executable for the package. For example, if you make a change to <package>texlive</package>, you probably would only check the binaries associated with the change you made rather than testing all of them.
</para>
</section>
<section xml:id="submitting-changes-contribution-standards">
<title>Meets Nixpkgs contribution standards</title>
<para>
The last checkbox is fits <link
xlink:href="https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md">CONTRIBUTING.md</link>. The contributing document has detailed information on standards the Nix community has for commit messages, reviews, licensing of contributions you make to the project, etc... Everyone should read and understand the standards the community has for contributing before submitting a pull request.
</para>
</section>
</section>
<section xml:id="submitting-changes-hotfixing-pull-requests">
<title>Hotfixing pull requests</title>
<itemizedlist>
<listitem>
<para>
Make the appropriate changes in you branch.
</para>
</listitem>
<listitem>
<para>
Don't create additional commits, do
<itemizedlist>
<listitem>
<para>
<command>git rebase -i</command>
</para>
</listitem>
<listitem>
<para>
<command>git push --force</command> to your branch.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="submitting-changes-commit-policy">
<title>Commit policy</title>
<itemizedlist>
<listitem>
<para>
Commits must be sufficiently tested before being merged, both for the master and staging branches.
</para>
</listitem>
<listitem>
<para>
Hydra builds for master and staging should not be used as testing platform, it's a build farm for changes that have been already tested.
</para>
</listitem>
<listitem>
<para>
When changing the bootloader installation process, extra care must be taken. Grub installations cannot be rolled back, hence changes may break people's installations forever. For any non-trivial change to the bootloader please file a PR asking for review, especially from @edolstra.
</para>
</listitem>
</itemizedlist>
<section xml:id="submitting-changes-master-branch">
<title>Master branch</title>
<para>
The <literal>master</literal> branch is the main development branch.
It should only see non-breaking commits that do not cause mass rebuilds.
</para>
</section>
<section xml:id="submitting-changes-staging-branch">
<title>Staging branch</title>
<para>
The <literal>staging</literal> branch is a development branch where mass-rebuilds go.
It should only see non-breaking mass-rebuild commits.
That means it is not to be used for testing, and changes must have been well tested already.
If the branch is already in a broken state, please refrain from adding extra new breakages.
</para>
</section>
<section xml:id="submitting-changes-staging-next-branch">
<title>Staging-next branch</title>
<para>
The <literal>staging-next</literal> branch is for stabilizing mass-rebuilds submitted to the <literal>staging</literal> branch prior to merging them into <literal>master</literal>.
Mass-rebuilds should go via the <literal>staging</literal> branch.
It should only see non-breaking commits that are fixing issues blocking it from being merged into the <literal>master </literal> branch.
</para>
<para>
If the branch is already in a broken state, please refrain from adding extra new breakages. Stabilize it for a few days and then merge into master.
</para>
</section>
<section xml:id="submitting-changes-stable-release-branches">
<title>Stable release branches</title>
<para>
For cherry-picking a commit to a stable release branch (<quote>backporting</quote>), use <literal>git cherry-pick -x &lt;original commit&gt;</literal> so that the original commit id is included in the commit.
</para>
<para>
Add a reason for the backport by using <literal>git cherry-pick -xe &lt;original commit&gt;</literal> instead when it is not obvious from the original commit message. It is not needed when its a minor version update that includes security and bug fixes but dont add new features or when the commit fixes an otherwise broken package.
</para>
<para>
Here is an example of a cherry-picked commit message with good reason description:
</para>
<screen>
zfs: Keep trying root import until it works
Works around #11003.
(cherry picked from commit 98b213a11041af39b39473906b595290e2a4e2f9)
Reason: several people cannot boot with ZFS on NVMe
</screen>
<para>
Other examples of reasons are:
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
Previously the build would fail due to, e.g., <literal>getaddrinfo</literal> not being defined
</para>
</listitem>
<listitem>
<para>
The previous download links were all broken
</para>
</listitem>
<listitem>
<para>
Crash when starting on some X11 systems
</para>
</listitem>
</itemizedlist>
</section>
</section>
</chapter>

View File

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

View File

@@ -5,17 +5,9 @@ let
in pkgs.stdenv.mkDerivation {
name = "nixpkgs-manual";
nativeBuildInputs = with pkgs; [
pandoc
graphviz
libxml2
libxslt
zip
jing
xmlformat
];
buildInputs = with pkgs; [ pandoc libxml2 libxslt zip jing xmlformat ];
src = lib.cleanSource ./.;
src = ./.;
postPatch = ''
ln -s ${doc-support} ./doc-support/result
@@ -33,7 +25,4 @@ in pkgs.stdenv.mkDerivation {
echo "doc manual $dest manual.html" >> $out/nix-support/hydra-build-products
echo "doc manual $dest nixpkgs-manual.epub" >> $out/nix-support/hydra-build-products
'';
# Environment variables
PANDOC_LUA_FILTERS_DIR = "${pkgs.pandoc-lua-filters}/share/pandoc/filters";
}

View File

@@ -103,7 +103,7 @@ stderr> assert failed
<title>Ensuring a user provided a possible value</title>
<programlisting><![CDATA[
let sslLibrary = "bearssl";
in lib.asserts.assertOneOf "sslLibrary" sslLibrary [ "openssl" "libressl" ];
in lib.asserts.assertOneOf "sslLibrary" sslLibrary [ "openssl" "bearssl" ];
=> false
stderr> trace: sslLibrary must be one of "openssl", "libressl", but is: "bearssl"
]]></programlisting>

View File

@@ -7,7 +7,7 @@
<section xml:id="function-library-lib.attrsets.attrByPath">
<title><function>lib.attrset.attrByPath</function></title>
<subtitle><literal>attrByPath :: [String] -> Any -> AttrSet -> Any</literal>
<subtitle><literal>attrByPath :: [String] -> Any -> AttrSet</literal>
</subtitle>
<xi:include href="./locations.xml" xpointer="lib.attrsets.attrByPath" />
@@ -855,7 +855,7 @@ lib.attrsets.mapAttrs' (name: value: lib.attrsets.nameValuePair ("foo_" + name)
<title><function>lib.attrsets.mapAttrsToList</function></title>
<subtitle><literal>mapAttrsToList :: (String -> Any -> Any) ->
AttrSet -> [Any]</literal>
AttrSet -> Any</literal>
</subtitle>
<xi:include href="./locations.xml" xpointer="lib.attrsets.mapAttrsToList" />
@@ -1677,7 +1677,8 @@ recursiveUpdate
<xi:include href="./locations.xml" xpointer="lib.attrsets.recurseIntoAttrs" />
<para>
Make various Nix tools consider the contents of the resulting attribute set when looking for what to build, find, etc.
Make various Nix tools consider the contents of the resulting
attribute set when looking for what to build, find, etc.
</para>
<para>
@@ -1710,42 +1711,4 @@ recursiveUpdate
</example>
</section>
<section xml:id="function-library-lib.attrsets.cartesianProductOfSets">
<title><function>lib.attrsets.cartesianProductOfSets</function></title>
<subtitle><literal>cartesianProductOfSets :: AttrSet -> [ AttrSet ]</literal>
</subtitle>
<xi:include href="./locations.xml" xpointer="lib.attrsets.cartesianProductOfSets" />
<para>
Return the cartesian product of attribute set value combinations.
</para>
<variablelist>
<varlistentry>
<term>
<varname>set</varname>
</term>
<listitem>
<para>
An attribute set with attributes that carry lists of values.
</para>
</listitem>
</varlistentry>
</variablelist>
<example xml:id="function-library-lib.attrsets.cartesianProductOfSets-example">
<title>Creating the cartesian product of a list of attribute values</title>
<programlisting><![CDATA[
cartesianProductOfSets { a = [ 1 2 ]; b = [ 10 20 ]; }
=> [
{ a = 1; b = 10; }
{ a = 1; b = 20; }
{ a = 2; b = 10; }
{ a = 2; b = 20; }
]
]]></programlisting>
</example>
</section>
</section>

View File

@@ -1,115 +1,58 @@
# Agda {#agda}
---
title: Agda
author: Alex Rice (alexarice)
date: 2020-01-06
---
# Agda
## How to use Agda
Agda is available as the [agda](https://search.nixos.org/packages?channel=unstable&show=agda&from=0&size=30&sort=relevance&query=agda)
package.
Agda can be installed from `agda`:
```
$ nix-env -iA agda
```
The `agda` package installs an Agda-wrapper, which calls `agda` with `--library-file`
set to a generated library-file within the nix store, this means your library-file in
`$HOME/.agda/libraries` will be ignored. By default the agda package installs Agda
with no libraries, i.e. the generated library-file is empty. To use Agda with libraries,
the `agda.withPackages` function can be used. This function either takes:
To use agda with libraries, the `agda.withPackages` function can be used. This function either takes:
+ A list of packages,
+ or a function which returns a list of packages when given the `agdaPackages` attribute set,
+ or an attribute set containing a list of packages and a GHC derivation for compilation (see below).
* A list of packages,
* or a function which returns a list of packages when given the `agdaPackages` attribute set,
* or an attribute set containing a list of packages and a GHC derivation for compilation (see below).
* or an attribute set containing a function which returns a list of packages when given the `agdaPackages` attribute set and a GHC derivation for compilation (see below).
For example, suppose we wanted a version of agda which has access to the standard library. This can be obtained with the expressions:
For example, suppose we wanted a version of Agda which has access to the standard library. This can be obtained with the expressions:
```nix
```
agda.withPackages [ agdaPackages.standard-library ]
```
or
```nix
```
agda.withPackages (p: [ p.standard-library ])
```
or can be called as in the [Compiling Agda](#compiling-agda) section.
If you want to use a different version of a library (for instance a development version)
override the `src` attribute of the package to point to your local repository
If you want to use a library in your home directory (for instance if it is a development version) then typecheck it manually (using `agda.withPackages` if necessary) and then override the `src` attribute of the package to point to your local repository.
```nix
agda.withPackages (p: [
(p.standard-library.overrideAttrs (oldAttrs: {
version = "local version";
src = /path/to/local/repo/agda-stdlib;
}))
])
Agda will not by default use these libraries. To tell agda to use the library we have some options:
- Call `agda` with the library flag:
```
You can also reference a GitHub repository
```nix
agda.withPackages (p: [
(p.standard-library.overrideAttrs (oldAttrs: {
version = "1.5";
src = fetchFromGitHub {
repo = "agda-stdlib";
owner = "agda";
rev = "v1.5";
sha256 = "16fcb7ssj6kj687a042afaa2gq48rc8abihpm14k684ncihb2k4w";
};
}))
])
```
If you want to use a library not added to Nixpkgs, you can add a
dependency to a local library by calling `agdaPackages.mkDerivation`.
```nix
agda.withPackages (p: [
(p.mkDerivation {
pname = "your-agda-lib";
version = "1.0.0";
src = /path/to/your-agda-lib;
})
])
```
Again you can reference GitHub
```nix
agda.withPackages (p: [
(p.mkDerivation {
pname = "your-agda-lib";
version = "1.0.0";
src = fetchFromGitHub {
repo = "repo";
owner = "owner";
version = "...";
rev = "...";
sha256 = "...";
};
})
])
```
See [Building Agda Packages](#building-agda-packages) for more information on `mkDerivation`.
Agda will not by default use these libraries. To tell Agda to use a library we have some options:
* Call `agda` with the library flag:
```ShellSession
$ agda -l standard-library -i . MyFile.agda
```
* Write a `my-library.agda-lib` file for the project you are working on which may look like:
- Write a `my-library.agda-lib` file for the project you are working on which may look like:
```
name: my-library
include: .
depend: standard-library
```
* Create the file `~/.agda/defaults` and add any libraries you want to use by default.
- Create the file `~/.agda/defaults` and add any libraries you want to use by default.
More information can be found in the [official Agda documentation on library management](https://agda.readthedocs.io/en/v2.6.1/tools/package-system.html).
## Compiling Agda
Agda modules can be compiled using the GHC backend with the `--compile` flag. A version of `ghc` with `ieee754` is made available to the Agda program via the `--with-compiler` flag.
Agda modules can be compiled with the `--compile` flag. A version of `ghc` with `ieee` is made available to the Agda program via the `--with-compiler` flag.
This can be overridden by a different version of `ghc` as follows:
```nix
```
agda.withPackages {
pkgs = [ ... ];
ghc = haskell.compiler.ghcHEAD;
@@ -117,28 +60,12 @@ agda.withPackages {
```
## Writing Agda packages
To write a nix derivation for an Agda library, first check that the library has a `*.agda-lib` file.
To write a nix derivation for an agda library, first check that the library has a `*.agda-lib` file.
A derivation can then be written using `agdaPackages.mkDerivation`. This has similar arguments to `stdenv.mkDerivation` with the following additions:
* `everythingFile` can be used to specify the location of the `Everything.agda` file, defaulting to `./Everything.agda`. If this file does not exist then either it should be patched in or the `buildPhase` should be overridden (see below).
* `libraryName` should be the name that appears in the `*.agda-lib` file, defaulting to `pname`.
* `libraryFile` should be the file name of the `*.agda-lib` file, defaulting to `${libraryName}.agda-lib`.
Here is an example `default.nix`
```nix
{ nixpkgs ? <nixpkgs> }:
with (import nixpkgs {});
agdaPackages.mkDerivation {
version = "1.0";
pname = "my-agda-lib";
src = ./.;
buildInputs = [
agdaPackages.standard-library
];
}
```
+ `everythingFile` can be used to specify the location of the `Everything.agda` file, defaulting to `./Everything.agda`. If this file does not exist then either it should be patched in or the `buildPhase` should be overridden (see below).
+ `libraryName` should be the name that appears in the `*.agda-lib` file, defaulting to `pname`.
+ `libraryFile` should be the file name of the `*.agda-lib` file, defaulting to `${libraryName}.agda-lib`.
### Building Agda packages
The default build phase for `agdaPackages.mkDerivation` simply runs `agda` on the `Everything.agda` file.
@@ -147,26 +74,18 @@ Additionally, a `preBuild` or `configurePhase` can be used if there are steps th
`agda` and the Agda libraries contained in `buildInputs` are made available during the build phase.
### Installing Agda packages
The default install phase copies Agda source files, Agda interface files (`*.agdai`) and `*.agda-lib` files to the output directory.
The default install phase copies agda source files, agda interface files (`*.agdai`) and `*.agda-lib` files to the output directory.
This can be overridden.
By default, Agda sources are files ending on `.agda`, or literate Agda files ending on `.lagda`, `.lagda.tex`, `.lagda.org`, `.lagda.md`, `.lagda.rst`. The list of recognised Agda source extensions can be extended by setting the `extraExtensions` config variable.
By default, agda sources are files ending on `.agda`, or literate agda files ending on `.lagda`, `.lagda.tex`, `.lagda.org`, `.lagda.md`, `.lagda.rst`. The list of recognised agda source extensions can be extended by setting the `extraExtensions` config variable.
## Adding Agda packages to Nixpkgs
To add an Agda package to `nixpkgs`, the derivation should be written to `pkgs/development/libraries/agda/${library-name}/` and an entry should be added to `pkgs/top-level/agda-packages.nix`. Here it is called in a scope with access to all other Agda libraries, so the top line of the `default.nix` can look like:
```nix
To add an agda package to `nixpkgs`, the derivation should be written to `pkgs/development/libraries/agda/${library-name}/` and an entry should be added to `pkgs/top-level/agda-packages.nix`. Here it is called in a scope with access to all other agda libraries, so the top line of the `default.nix` can look like:
```
{ mkDerivation, standard-library, fetchFromGitHub }:
```
and `mkDerivation` should be called instead of `agdaPackages.mkDerivation`. Here is an example skeleton derivation for iowa-stdlib:
Note that the derivation function is called with `mkDerivation` set to `agdaPackages.mkDerivation`, therefore you
could use a similar set as in your `default.nix` from [Writing Agda Packages](#writing-agda-packages) with
`agdaPackages.mkDerivation` replaced with `mkDerivation`.
Here is an example skeleton derivation for iowa-stdlib:
```nix
```
mkDerivation {
version = "1.5.0";
pname = "iowa-stdlib";
@@ -184,4 +103,4 @@ mkDerivation {
```
This library has a file called `.agda-lib`, and so we give an empty string to `libraryFile` as nothing precedes `.agda-lib` in the filename. This file contains `name: IAL-1.3`, and so we let `libraryName = "IAL-1.3"`. This library does not use an `Everything.agda` file and instead has a Makefile, so there is no need to set `everythingFile` and we set a custom `buildPhase`.
When writing an Agda package it is essential to make sure that no `.agda-lib` file gets added to the store as a single file (for example by using `writeText`). This causes Agda to think that the nix store is a Agda library and it will attempt to write to it whenever it typechecks something. See [https://github.com/agda/agda/issues/4613](https://github.com/agda/agda/issues/4613).
When writing an agda package it is essential to make sure that no `.agda-lib` file gets added to the store as a single file (for example by using `writeText`). This causes agda to think that the nix store is a agda library and it will attempt to write to it whenever it typechecks something. See [https://github.com/agda/agda/issues/4613](https://github.com/agda/agda/issues/4613).

View File

@@ -1,4 +1,9 @@
# Android {#android}
---
title: Android
author: Sander van der Burg
date: 2018-11-18
---
# Android
The Android build environment provides three major features and a number of
supporting features.
@@ -13,19 +18,21 @@ with import <nixpkgs> {};
let
androidComposition = androidenv.composeAndroidPackages {
toolsVersion = "26.1.1";
platformToolsVersion = "30.0.5";
buildToolsVersions = [ "30.0.3" ];
toolsVersion = "25.2.5";
platformToolsVersion = "27.0.1";
buildToolsVersions = [ "27.0.3" ];
includeEmulator = false;
emulatorVersion = "30.3.4";
platformVersions = [ "28" "29" "30" ];
emulatorVersion = "27.2.0";
platformVersions = [ "24" ];
includeSources = false;
includeDocs = false;
includeSystemImages = false;
systemImageTypes = [ "google_apis_playstore" ];
abiVersions = [ "armeabi-v7a" "arm64-v8a" ];
cmakeVersions = [ "3.10.2" ];
includeNDK = true;
ndkVersions = ["22.0.7026061"];
systemImageTypes = [ "default" ];
abiVersions = [ "armeabi-v7a" ];
lldbVersions = [ "2.0.2558144" ];
cmakeVersions = [ "3.6.4111459" ];
includeNDK = false;
ndkVersion = "16.1.4479499";
useGoogleAPIs = false;
useGoogleTVAddOns = false;
includeExtras = [
@@ -44,19 +51,17 @@ The following parameters are supported:
* `toolsVersion`, specifies the version of the tools package to use
* `platformsToolsVersion` specifies the version of the `platform-tools` plugin
* `buildToolsVersions` specifies the versions of the `build-tools` plugins to
* `buildToolsVersion` specifies the versions of the `build-tools` plugins to
use.
* `includeEmulator` specifies whether to deploy the emulator package (`false`
by default). When enabled, the version of the emulator to deploy can be
specified by setting the `emulatorVersion` parameter.
* `includeDocs` specifies whether the documentation catalog should be included.
* `lldbVersions` specifies what LLDB versions should be deployed.
* `cmakeVersions` specifies which CMake versions should be deployed.
* `includeNDK` specifies that the Android NDK bundle should be included.
Defaults to: `false`.
* `ndkVersions` specifies the NDK versions that we want to use. These are linked
under the `ndk` directory of the SDK root, and the first is linked under the
`ndk-bundle` directory.
* `ndkVersion` is equivalent to specifying one entry in `ndkVersions`, and
`ndkVersions` overrides this parameter if provided.
* `ndkVersion` specifies the NDK version that we want to use.
* `includeExtras` is an array of identifier strings referring to arbitrary
add-on packages that should be installed.
* `platformVersions` specifies which platform SDK versions should be included.
@@ -82,38 +87,6 @@ For each requested system image we can specify the following options:
Most of the function arguments have reasonable default settings.
You can specify license names:
* `extraLicenses` is a list of license names.
You can get these names from repo.json or `querypackages.sh licenses`. The SDK
license (`android-sdk-license`) is accepted for you if you set accept_license
to true. If you are doing something like working with preview SDKs, you will
want to add `android-sdk-preview-license` or whichever license applies here.
Additionally, you can override the repositories that composeAndroidPackages will
pull from:
* `repoJson` specifies a path to a generated repo.json file. You can generate this
by running `generate.sh`, which in turn will call into `mkrepo.rb`.
* `repoXmls` is an attribute set containing paths to repo XML files. If specified,
it takes priority over `repoJson`, and will trigger a local build writing out a
repo.json to the Nix store based on the given repository XMLs.
```nix
repoXmls = {
packages = [ ./xml/repository2-1.xml ];
images = [
./xml/android-sys-img2-1.xml
./xml/android-tv-sys-img2-1.xml
./xml/android-wear-sys-img2-1.xml
./xml/android-wear-cn-sys-img2-1.xml
./xml/google_apis-sys-img2-1.xml
./xml/google_apis_playstore-sys-img2-1.xml
];
addons = [ ./xml/addon2-1.xml ];
};
```
When building the above expression with:
```bash
@@ -136,8 +109,8 @@ in
androidComposition.platform-tools
```
Using predefined Android package compositions
---------------------------------------------
Using predefine Android package compositions
--------------------------------------------
In addition to composing an Android package set manually, it is also possible
to use a predefined composition that contains all basic packages for a specific
Android version, such as version 9.0 (API-level 28).
@@ -241,104 +214,27 @@ androidenv.emulateApp {
In addition to prebuilt APKs, you can also bind the APK parameter to a
`buildApp {}` function invocation shown in the previous example.
Notes on environment variables in Android projects
--------------------------------------------------
* `ANDROID_SDK_ROOT` should point to the Android SDK. In your Nix expressions, this should be
`${androidComposition.androidsdk}/libexec/android-sdk`. Note that `ANDROID_HOME` is deprecated,
but if you rely on tools that need it, you can export it too.
* `ANDROID_NDK_ROOT` should point to the Android NDK, if you're doing NDK development.
In your Nix expressions, this should be `${ANDROID_SDK_ROOT}/ndk-bundle`.
If you are running the Android Gradle plugin, you need to export GRADLE_OPTS to override aapt2
to point to the aapt2 binary in the Nix store as well, or use a FHS environment so the packaged
aapt2 can run. If you don't want to use a FHS environment, something like this should work:
```nix
let
buildToolsVersion = "30.0.3";
# Use buildToolsVersion when you define androidComposition
androidComposition = <...>;
in
pkgs.mkShell rec {
ANDROID_SDK_ROOT = "${androidComposition.androidsdk}/libexec/android-sdk";
ANDROID_NDK_ROOT = "${ANDROID_SDK_ROOT}/ndk-bundle";
# Use the same buildToolsVersion here
GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${ANDROID_SDK_ROOT}/build-tools/${buildToolsVersion}/aapt2";
}
```
If you are using cmake, you need to add it to PATH in a shell hook or FHS env profile.
The path is suffixed with a build number, but properly prefixed with the version.
So, something like this should suffice:
```nix
let
cmakeVersion = "3.10.2";
# Use cmakeVersion when you define androidComposition
androidComposition = <...>;
in
pkgs.mkShell rec {
ANDROID_SDK_ROOT = "${androidComposition.androidsdk}/libexec/android-sdk";
ANDROID_NDK_ROOT = "${ANDROID_SDK_ROOT}/ndk-bundle";
# Use the same cmakeVersion here
shellHook = ''
export PATH="$(echo "$ANDROID_SDK_ROOT/cmake/${cmakeVersion}".*/bin):$PATH"
'';
}
```
Note that running Android Studio with ANDROID_SDK_ROOT set will automatically write a
`local.properties` file with `sdk.dir` set to $ANDROID_SDK_ROOT if one does not already
exist. If you are using the NDK as well, you may have to add `ndk.dir` to this file.
An example shell.nix that does all this for you is provided in examples/shell.nix.
This shell.nix includes a shell hook that overwrites local.properties with the correct
sdk.dir and ndk.dir values. This will ensure that the SDK and NDK directories will
both be correct when you run Android Studio inside nix-shell.
Notes on improving build.gradle compatibility
---------------------------------------------
Ensure that your buildToolsVersion and ndkVersion match what is declared in androidenv.
If you are using cmake, make sure its declared version is correct too.
Otherwise, you may get cryptic errors from aapt2 and the Android Gradle plugin warning
that it cannot install the build tools because the SDK directory is not writeable.
```gradle
android {
buildToolsVersion "30.0.3"
ndkVersion = "22.0.7026061"
externalNativeBuild {
cmake {
version "3.10.2"
}
}
}
```
Querying the available versions of each plugin
----------------------------------------------
repo.json provides all the options in one file now.
When using any of the previously shown functions, it may be a bit inconvenient
to find out what options are supported, since the Android SDK provides many
plugins.
A shell script in the `pkgs/development/mobile/androidenv/` subdirectory can be used to retrieve all
A shell script in the `pkgs/development/mobile/androidenv/` sub directory can be used to retrieve all
possible options:
```bash
./querypackages.sh packages
sh ./querypackages.sh packages build-tools
```
The above command-line instruction queries all package versions in repo.json.
The above command-line instruction queries all build-tools versions in the
generated `packages.nix` expression.
Updating the generated expressions
----------------------------------
repo.json is generated from XML files that the Android Studio package manager uses.
To update the expressions run the `generate.sh` script that is stored in the
`pkgs/development/mobile/androidenv/` subdirectory:
Most of the Nix expressions are generated from XML files that the Android
package manager uses. To update the expressions run the `generate.sh` script
that is stored in the `pkgs/development/mobile/androidenv/` sub directory:
```bash
./generate.sh

View File

@@ -1,289 +0,0 @@
# BEAM Languages (Erlang, Elixir & LFE) {#sec-beam}
## Introduction {#beam-introduction}
In this document and related Nix expressions, we use the term, _BEAM_, to describe the environment. BEAM is the name of the Erlang Virtual Machine and, as far as we're concerned, from a packaging perspective, all languages that run on the BEAM are interchangeable. That which varies, like the build system, is transparent to users of any given BEAM package, so we make no distinction.
## Structure {#beam-structure}
All BEAM-related expressions are available via the top-level `beam` attribute, which includes:
- `interpreters`: a set of compilers running on the BEAM, including multiple Erlang/OTP versions (`beam.interpreters.erlangR22`, etc), Elixir (`beam.interpreters.elixir`) and LFE (Lisp Flavoured Erlang) (`beam.interpreters.lfe`).
- `packages`: a set of package builders (Mix and rebar3), each compiled with a specific Erlang/OTP version, e.g. `beam.packages.erlang22`.
The default Erlang compiler, defined by `beam.interpreters.erlang`, is aliased as `erlang`. The default BEAM package set is defined by `beam.packages.erlang` and aliased at the top level as `beamPackages`.
To create a package builder built with a custom Erlang version, use the lambda, `beam.packagesWith`, which accepts an Erlang/OTP derivation and produces a package builder similar to `beam.packages.erlang`.
Many Erlang/OTP distributions available in `beam.interpreters` have versions with ODBC and/or Java enabled or without wx (no observer support). For example, there's `beam.interpreters.erlangR22_odbc_javac`, which corresponds to `beam.interpreters.erlangR22` and `beam.interpreters.erlangR22_nox`, which corresponds to `beam.interpreters.erlangR22`.
## Build Tools {#build-tools}
### Rebar3 {#build-tools-rebar3}
We provide a version of Rebar3, under `rebar3`. We also provide a helper to fetch Rebar3 dependencies from a lockfile under `fetchRebar3Deps`.
We also provide a version on Rebar3 with plugins included, under `rebar3WithPlugins`. This package is a function which takes two arguments: `plugins`, a list of nix derivations to include as plugins (loaded only when specified in `rebar.config`), and `globalPlugins`, which should always be loaded by rebar3. Example: `rebar3WithPlugins { globalPlugins = [beamPackages.pc]; }`.
When adding a new plugin it is important that the `packageName` attribute is the same as the atom used by rebar3 to refer to the plugin.
### Mix & Erlang.mk {#build-tools-other}
Erlang.mk works exactly as expected. There is a bootstrap process that needs to be run, which is supported by the `buildErlangMk` derivation.
For Elixir applications use `mixRelease` to make a release. See examples for more details.
There is also a `buildMix` helper, whose behavior is closer to that of `buildErlangMk` and `buildRebar3`. The primary difference is that mixRelease makes a release, while buildMix only builds the package, making it useful for libraries and other dependencies.
## How to Install BEAM Packages {#how-to-install-beam-packages}
BEAM builders are not registered at the top level, simply because they are not relevant to the vast majority of Nix users. To install any of those builders into your profile, refer to them by their attribute path `beamPackages.rebar3`:
```ShellSession
$ nix-env -f "<nixpkgs>" -iA beamPackages.rebar3
```
## Packaging BEAM Applications {#packaging-beam-applications}
### Erlang Applications {#packaging-erlang-applications}
#### Rebar3 Packages {#rebar3-packages}
The Nix function, `buildRebar3`, defined in `beam.packages.erlang.buildRebar3` and aliased at the top level, can be used to build a derivation that understands how to build a Rebar3 project.
If a package needs to compile native code via Rebar3's port compilation mechanism, add `compilePort = true;` to the derivation.
#### Erlang.mk Packages {#erlang-mk-packages}
Erlang.mk functions similarly to Rebar3, except we use `buildErlangMk` instead of `buildRebar3`.
#### Mix Packages {#mix-packages}
`mixRelease` is used to make a release in the mix sense. Dependencies will need to be fetched with `fetchMixDeps` and passed to it.
#### mixRelease - Elixir Phoenix example
Here is how your `default.nix` file would look.
```nix
with import <nixpkgs> { };
let
packages = beam.packagesWith beam.interpreters.erlang;
src = builtins.fetchgit {
url = "ssh://git@github.com/your_id/your_repo";
rev = "replace_with_your_commit";
};
pname = "your_project";
version = "0.0.1";
mixEnv = "prod";
mixDeps = packages.fetchMixDeps {
pname = "mix-deps-${pname}";
inherit src mixEnv version;
# nix will complain and tell you the right value to replace this with
sha256 = lib.fakeSha256;
# if you have build time environment variables add them here
MY_ENV_VAR="my_value";
};
nodeDependencies = (pkgs.callPackage ./assets/default.nix { }).shell.nodeDependencies;
frontEndFiles = stdenvNoCC.mkDerivation {
pname = "frontend-${pname}";
nativeBuildInputs = [ nodejs ];
inherit version src;
buildPhase = ''
cp -r ./assets $TEMPDIR
mkdir -p $TEMPDIR/assets/node_modules/.cache
cp -r ${nodeDependencies}/lib/node_modules $TEMPDIR/assets
export PATH="${nodeDependencies}/bin:$PATH"
cd $TEMPDIR/assets
webpack --config ./webpack.config.js
cd ..
'';
installPhase = ''
cp -r ./priv/static $out/
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
# nix will complain and tell you the right value to replace this with
outputHash = lib.fakeSha256;
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
};
in packages.mixRelease {
inherit src pname version mixEnv mixDeps;
# if you have build time environment variables add them here
MY_ENV_VAR="my_value";
preInstall = ''
mkdir -p ./priv/static
cp -r ${frontEndFiles} ./priv/static
'';
}
```
Setup will require the following steps:
- Move your secrets to runtime environment variables. For more information refer to the [runtime.exs docs](https://hexdocs.pm/mix/Mix.Tasks.Release.html#module-runtime-configuration). On a fresh Phoenix build that would mean that both `DATABASE_URL` and `SECRET_KEY` need to be moved to `runtime.exs`.
- `cd assets` and `nix-shell -p node2nix --run node2nix --development` will generate a Nix expression containing your frontend dependencies
- commit and push those changes
- you can now `nix-build .`
- To run the release, set the `RELEASE_TMP` environment variable to a directory that your program has write access to. It will be used to store the BEAM settings.
#### Example of creating a service for an Elixir - Phoenix project
In order to create a service with your release, you could add a `service.nix`
in your project with the following
```nix
{config, pkgs, lib, ...}:
let
release = pkgs.callPackage ./default.nix;
release_name = "app";
working_directory = "/home/app";
in
{
systemd.services.${release_name} = {
wantedBy = [ "multi-user.target" ];
after = [ "network.target" "postgresql.service" ];
requires = [ "network-online.target" "postgresql.service" ];
description = "my app";
environment = {
# RELEASE_TMP is used to write the state of the
# VM configuration when the system is running
# it needs to be a writable directory
RELEASE_TMP = working_directory;
# can be generated in an elixir console with
# Base.encode32(:crypto.strong_rand_bytes(32))
RELEASE_COOKIE = "my_cookie";
MY_VAR = "my_var";
};
serviceConfig = {
Type = "exec";
DynamicUser = true;
WorkingDirectory = working_directory;
# Implied by DynamicUser, but just to emphasize due to RELEASE_TMP
PrivateTmp = true;
ExecStart = ''
${release}/bin/${release_name} start
'';
ExecStop = ''
${release}/bin/${release_name} stop
'';
ExecReload = ''
${release}/bin/${release_name} restart
'';
Restart = "on-failure";
RestartSec = 5;
StartLimitBurst = 3;
StartLimitInterval = 10;
};
# disksup requires bash
path = [ pkgs.bash ];
};
environment.systemPackages = [ release ];
}
```
## How to Develop {#how-to-develop}
### Creating a Shell {#creating-a-shell}
Usually, we need to create a `shell.nix` file and do our development inside of the environment specified therein. Just install your version of Erlang and any other interpreters, and then use your normal build tools. As an example with Elixir:
```nix
{ pkgs ? import "<nixpkgs"> {} }:
with pkgs;
let
elixir = beam.packages.erlangR22.elixir_1_9;
in
mkShell {
buildInputs = [ elixir ];
ERL_INCLUDE_PATH="${erlang}/lib/erlang/usr/include";
}
```
#### Elixir - Phoenix project
Here is an example `shell.nix`.
```nix
with import <nixpkgs> { };
let
# define packages to install
basePackages = [
git
# replace with beam.packages.erlang.elixir_1_11 if you need
beam.packages.erlang.elixir
nodejs
postgresql_13
# only used for frontend dependencies
# you are free to use yarn2nix as well
nodePackages.node2nix
# formatting js file
nodePackages.prettier
];
inputs = basePackages ++ lib.optionals stdenv.isLinux [ inotify-tools ]
++ lib.optionals stdenv.isDarwin
(with darwin.apple_sdk.frameworks; [ CoreFoundation CoreServices ]);
# define shell startup command
hooks = ''
# this allows mix to work on the local directory
mkdir -p .nix-mix .nix-hex
export MIX_HOME=$PWD/.nix-mix
export HEX_HOME=$PWD/.nix-mix
export PATH=$MIX_HOME/bin:$HEX_HOME/bin:$PATH
# TODO: not sure how to make hex available without installing it afterwards.
mix local.hex --if-missing
export LANG=en_US.UTF-8
export ERL_AFLAGS="-kernel shell_history enabled"
# postges related
# keep all your db data in a folder inside the project
export PGDATA="$PWD/db"
# phoenix related env vars
export POOL_SIZE=15
export DB_URL="postgresql://postgres:postgres@localhost:5432/db"
export PORT=4000
export MIX_ENV=dev
# add your project env vars here, word readable in the nix store.
export ENV_VAR="your_env_var"
'';
in mkShell {
buildInputs = inputs;
shellHook = hooks;
}
```
Initializing the project will require the following steps:
- create the db directory `initdb ./db` (inside your mix project folder)
- create the postgres user `createuser postgres -ds`
- create the db `createdb db`
- start the postgres instance `pg_ctl -l "$PGDATA/server.log" start`
- add the `/db` folder to your `.gitignore`
- you can start your phoenix server and get a shell with `iex -S mix phx.server`

View File

@@ -0,0 +1,159 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="sec-beam">
<title>BEAM Languages (Erlang, Elixir &amp; LFE)</title>
<section xml:id="beam-introduction">
<title>Introduction</title>
<para>
In this document and related Nix expressions, we use the term, <emphasis>BEAM</emphasis>, to describe the environment. BEAM is the name of the Erlang Virtual Machine and, as far as we're concerned, from a packaging perspective, all languages that run on the BEAM are interchangeable. That which varies, like the build system, is transparent to users of any given BEAM package, so we make no distinction.
</para>
</section>
<section xml:id="beam-structure">
<title>Structure</title>
<para>
All BEAM-related expressions are available via the top-level <literal>beam</literal> attribute, which includes:
</para>
<itemizedlist>
<listitem>
<para>
<literal>interpreters</literal>: a set of compilers running on the BEAM, including multiple Erlang/OTP versions (<literal>beam.interpreters.erlangR19</literal>, etc), Elixir (<literal>beam.interpreters.elixir</literal>) and LFE (<literal>beam.interpreters.lfe</literal>).
</para>
</listitem>
<listitem>
<para>
<literal>packages</literal>: a set of package builders (Mix and rebar3), each compiled with a specific Erlang/OTP version, e.g. <literal>beam.packages.erlangR19</literal>.
</para>
</listitem>
</itemizedlist>
<para>
The default Erlang compiler, defined by <literal>beam.interpreters.erlang</literal>, is aliased as <literal>erlang</literal>. The default BEAM package set is defined by <literal>beam.packages.erlang</literal> and aliased at the top level as <literal>beamPackages</literal>.
</para>
<para>
To create a package builder built with a custom Erlang version, use the lambda, <literal>beam.packagesWith</literal>, which accepts an Erlang/OTP derivation and produces a package builder similar to <literal>beam.packages.erlang</literal>.
</para>
<para>
Many Erlang/OTP distributions available in <literal>beam.interpreters</literal> have versions with ODBC and/or Java enabled or without wx (no observer support). For example, there's <literal>beam.interpreters.erlangR22_odbc_javac</literal>, which corresponds to <literal>beam.interpreters.erlangR22</literal> and <literal>beam.interpreters.erlangR22_nox</literal>, which corresponds to <literal>beam.interpreters.erlangR22</literal>.
</para>
</section>
<section xml:id="build-tools">
<title>Build Tools</title>
<section xml:id="build-tools-rebar3">
<title>Rebar3</title>
<para>
We provide a version of Rebar3, under <literal>rebar3</literal>. We also provide a helper to fetch Rebar3 dependencies from a lockfile under <literal>fetchRebar3Deps</literal>.
</para>
</section>
<section xml:id="build-tools-other">
<title>Mix &amp; Erlang.mk</title>
<para>
Both Mix and Erlang.mk work exactly as expected. There is a bootstrap process that needs to be run for both, however, which is supported by the <literal>buildMix</literal> and <literal>buildErlangMk</literal> derivations, respectively.
</para>
</section>
</section>
<section xml:id="how-to-install-beam-packages">
<title>How to Install BEAM Packages</title>
<para>
BEAM builders are not registered at the top level, simply because they are not relevant to the vast majority of Nix users.
To install any of those builders into your profile, refer to them by their attribute path <literal>beamPackages.rebar3</literal>:
</para>
<screen>
<prompt>$ </prompt>nix-env -f &quot;&lt;nixpkgs&gt;&quot; -iA beamPackages.rebar3
</screen>
</section>
<section xml:id="packaging-beam-applications">
<title>Packaging BEAM Applications</title>
<section xml:id="packaging-erlang-applications">
<title>Erlang Applications</title>
<section xml:id="rebar3-packages">
<title>Rebar3 Packages</title>
<para>
The Nix function, <literal>buildRebar3</literal>, defined in <literal>beam.packages.erlang.buildRebar3</literal> and aliased at the top level, can be used to build a derivation that understands how to build a Rebar3 project.
</para>
<para>
If a package needs to compile native code via Rebar3's port compilation mechanism, add <literal>compilePort = true;</literal> to the derivation.
</para>
</section>
<section xml:id="erlang-mk-packages">
<title>Erlang.mk Packages</title>
<para>
Erlang.mk functions similarly to Rebar3, except we use <literal>buildErlangMk</literal> instead of <literal>buildRebar3</literal>.
</para>
</section>
<section xml:id="mix-packages">
<title>Mix Packages</title>
<para>
Mix functions similarly to Rebar3, except we use <literal>buildMix</literal> instead of <literal>buildRebar3</literal>.
</para>
<para>
Alternatively, we can use <literal>buildHex</literal> as a shortcut:
</para>
</section>
</section>
</section>
<section xml:id="how-to-develop">
<title>How to Develop</title>
<section xml:id="creating-a-shell">
<title>Creating a Shell</title>
<para>
Usually, we need to create a <literal>shell.nix</literal> file and do our development inside of the environment specified therein. Just install your version of erlang and other interpreter, and then user your normal build tools.
As an example with elixir:
</para>
<programlisting>
{ pkgs ? import &quot;&lt;nixpkgs&quot;&gt; {} }:
with pkgs;
let
elixir = beam.packages.erlangR22.elixir_1_9;
in
mkShell {
buildInputs = [ elixir ];
ERL_INCLUDE_PATH="${erlang}/lib/erlang/usr/include";
}
</programlisting>
<section xml:id="building-in-a-shell">
<title>Building in a Shell (for Mix Projects)</title>
<para>
Using a <literal>shell.nix</literal> as described (see <xref
linkend="creating-a-shell"/>) should just work.
</para>
</section>
</section>
</section>
</section>

View File

@@ -1,158 +0,0 @@
# Bower {#sec-bower}
[Bower](https://bower.io) is a package manager for web site front-end components. Bower packages (comprising of build artefacts and sometimes sources) are stored in `git` repositories, typically on Github. The package registry is run by the Bower team with package metadata coming from the `bower.json` file within each package.
The end result of running Bower is a `bower_components` directory which can be included in the web app's build process.
Bower can be run interactively, by installing `nodePackages.bower`. More interestingly, the Bower components can be declared in a Nix derivation, with the help of `nodePackages.bower2nix`.
## bower2nix usage {#ssec-bower2nix-usage}
Suppose you have a `bower.json` with the following contents:
### Example bower.json {#ex-bowerJson}
```json
"name": "my-web-app",
"dependencies": {
"angular": "~1.5.0",
"bootstrap": "~3.3.6"
}
```
Running `bower2nix` will produce something like the following output:
```nix
{ fetchbower, buildEnv }:
buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [
(fetchbower "angular" "1.5.3" "~1.5.0" "1749xb0firxdra4rzadm4q9x90v6pzkbd7xmcyjk6qfza09ykk9y")
(fetchbower "bootstrap" "3.3.6" "~3.3.6" "1vvqlpbfcy0k5pncfjaiskj3y6scwifxygfqnw393sjfxiviwmbv")
(fetchbower "jquery" "2.2.2" "1.9.1 - 2" "10sp5h98sqwk90y4k6hbdviwqzvzwqf47r3r51pakch5ii2y7js1")
];
```
Using the `bower2nix` command line arguments, the output can be redirected to a file. A name like `bower-packages.nix` would be fine.
The resulting derivation is a union of all the downloaded Bower packages (and their dependencies). To use it, they still need to be linked together by Bower, which is where `buildBowerComponents` is useful.
## buildBowerComponents function {#ssec-build-bower-components}
The function is implemented in [pkgs/development/bower-modules/generic/default.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/bower-modules/generic/default.nix).
### Example buildBowerComponents {#ex-buildBowerComponents}
```{=docbook}
<programlisting language="nix">
bowerComponents = buildBowerComponents {
name = "my-web-app";
generated = ./bower-packages.nix; <co xml:id="ex-buildBowerComponents-1" />
src = myWebApp; <co xml:id="ex-buildBowerComponents-2" />
};
</programlisting>
```
In ["buildBowerComponents" example](#ex-buildBowerComponents) the following arguments are of special significance to the function:
```{=docbook}
<calloutlist>
<callout arearefs="ex-buildBowerComponents-1">
<para>
<varname>generated</varname> specifies the file which was created by <command>bower2nix</command>.
</para>
</callout>
<callout arearefs="ex-buildBowerComponents-2">
<para>
<varname>src</varname> is your project's sources. It needs to contain a <filename>bower.json</filename> file.
</para>
</callout>
</calloutlist>
```
`buildBowerComponents` will run Bower to link together the output of `bower2nix`, resulting in a `bower_components` directory which can be used.
Here is an example of a web frontend build process using `gulp`. You might use `grunt`, or anything else.
### Example build script (gulpfile.js) {#ex-bowerGulpFile}
```javascript
var gulp = require('gulp');
gulp.task('default', [], function () {
gulp.start('build');
});
gulp.task('build', [], function () {
console.log("Just a dummy gulp build");
gulp
.src(["./bower_components/**/*"])
.pipe(gulp.dest("./gulpdist/"));
});
```
### Example Full example — default.nix {#ex-buildBowerComponentsDefaultNix}
```{=docbook}
<programlisting language="nix">
{ myWebApp ? { outPath = ./.; name = "myWebApp"; }
, pkgs ? import &lt;nixpkgs&gt; {}
}:
pkgs.stdenv.mkDerivation {
name = "my-web-app-frontend";
src = myWebApp;
buildInputs = [ pkgs.nodePackages.gulp ];
bowerComponents = pkgs.buildBowerComponents { <co xml:id="ex-buildBowerComponentsDefault-1" />
name = "my-web-app";
generated = ./bower-packages.nix;
src = myWebApp;
};
buildPhase = ''
cp --reflink=auto --no-preserve=mode -R $bowerComponents/bower_components . <co xml:id="ex-buildBowerComponentsDefault-2" />
export HOME=$PWD <co xml:id="ex-buildBowerComponentsDefault-3" />
${pkgs.nodePackages.gulp}/bin/gulp build <co xml:id="ex-buildBowerComponentsDefault-4" />
'';
installPhase = "mv gulpdist $out";
}
</programlisting>
```
A few notes about [Full example — `default.nix`](#ex-buildBowerComponentsDefaultNix):
```{=docbook}
<calloutlist>
<callout arearefs="ex-buildBowerComponentsDefault-1">
<para>
The result of <varname>buildBowerComponents</varname> is an input to the frontend build.
</para>
</callout>
<callout arearefs="ex-buildBowerComponentsDefault-2">
<para>
Whether to symlink or copy the <filename>bower_components</filename> directory depends on the build tool in use. In this case a copy is used to avoid <command>gulp</command> silliness with permissions.
</para>
</callout>
<callout arearefs="ex-buildBowerComponentsDefault-3">
<para>
<command>gulp</command> requires <varname>HOME</varname> to refer to a writeable directory.
</para>
</callout>
<callout arearefs="ex-buildBowerComponentsDefault-4">
<para>
The actual build command. Other tools could be used.
</para>
</callout>
</calloutlist>
```
## Troubleshooting {#ssec-bower2nix-troubleshooting}
### ENOCACHE errors from buildBowerComponents
This means that Bower was looking for a package version which doesn't exist in the generated `bower-packages.nix`.
If `bower.json` has been updated, then run `bower2nix` again.
It could also be a bug in `bower2nix` or `fetchbower`. If possible, try reformulating the version specification in `bower.json`.

View File

@@ -0,0 +1,196 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="sec-bower">
<title>Bower</title>
<para>
<link xlink:href="http://bower.io">Bower</link> is a package manager for web site front-end components. Bower packages (comprising of build artefacts and sometimes sources) are stored in <command>git</command> repositories, typically on Github. The package registry is run by the Bower team with package metadata coming from the <filename>bower.json</filename> file within each package.
</para>
<para>
The end result of running Bower is a <filename>bower_components</filename> directory which can be included in the web app's build process.
</para>
<para>
Bower can be run interactively, by installing <varname>nodePackages.bower</varname>. More interestingly, the Bower components can be declared in a Nix derivation, with the help of <varname>nodePackages.bower2nix</varname>.
</para>
<section xml:id="ssec-bower2nix-usage">
<title><command>bower2nix</command> usage</title>
<para>
Suppose you have a <filename>bower.json</filename> with the following contents:
<example xml:id="ex-bowerJson">
<title><filename>bower.json</filename></title>
<programlisting language="json">
<![CDATA[{
"name": "my-web-app",
"dependencies": {
"angular": "~1.5.0",
"bootstrap": "~3.3.6"
}
}]]>
</programlisting>
</example>
</para>
<para>
Running <command>bower2nix</command> will produce something like the following output:
<programlisting language="nix">
<![CDATA[{ fetchbower, buildEnv }:
buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [
(fetchbower "angular" "1.5.3" "~1.5.0" "1749xb0firxdra4rzadm4q9x90v6pzkbd7xmcyjk6qfza09ykk9y")
(fetchbower "bootstrap" "3.3.6" "~3.3.6" "1vvqlpbfcy0k5pncfjaiskj3y6scwifxygfqnw393sjfxiviwmbv")
(fetchbower "jquery" "2.2.2" "1.9.1 - 2" "10sp5h98sqwk90y4k6hbdviwqzvzwqf47r3r51pakch5ii2y7js1")
]; }]]>
</programlisting>
</para>
<para>
Using the <command>bower2nix</command> command line arguments, the output can be redirected to a file. A name like <filename>bower-packages.nix</filename> would be fine.
</para>
<para>
The resulting derivation is a union of all the downloaded Bower packages (and their dependencies). To use it, they still need to be linked together by Bower, which is where <varname>buildBowerComponents</varname> is useful.
</para>
</section>
<section xml:id="ssec-build-bower-components">
<title><varname>buildBowerComponents</varname> function</title>
<para>
The function is implemented in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/bower-modules/generic/default.nix"> <filename>pkgs/development/bower-modules/generic/default.nix</filename></link>. Example usage:
<example xml:id="ex-buildBowerComponents">
<title>buildBowerComponents</title>
<programlisting language="nix">
bowerComponents = buildBowerComponents {
name = "my-web-app";
generated = ./bower-packages.nix; <co xml:id="ex-buildBowerComponents-1" />
src = myWebApp; <co xml:id="ex-buildBowerComponents-2" />
};
</programlisting>
</example>
</para>
<para>
In <xref linkend="ex-buildBowerComponents" />, the following arguments are of special significance to the function:
<calloutlist>
<callout arearefs="ex-buildBowerComponents-1">
<para>
<varname>generated</varname> specifies the file which was created by <command>bower2nix</command>.
</para>
</callout>
<callout arearefs="ex-buildBowerComponents-2">
<para>
<varname>src</varname> is your project's sources. It needs to contain a <filename>bower.json</filename> file.
</para>
</callout>
</calloutlist>
</para>
<para>
<varname>buildBowerComponents</varname> will run Bower to link together the output of <command>bower2nix</command>, resulting in a <filename>bower_components</filename> directory which can be used.
</para>
<para>
Here is an example of a web frontend build process using <command>gulp</command>. You might use <command>grunt</command>, or anything else.
</para>
<example xml:id="ex-bowerGulpFile">
<title>Example build script (<filename>gulpfile.js</filename>)</title>
<programlisting language="javascript">
<![CDATA[var gulp = require('gulp');
gulp.task('default', [], function () {
gulp.start('build');
});
gulp.task('build', [], function () {
console.log("Just a dummy gulp build");
gulp
.src(["./bower_components/**/*"])
.pipe(gulp.dest("./gulpdist/"));
});]]>
</programlisting>
</example>
<example xml:id="ex-buildBowerComponentsDefaultNix">
<title>Full example — <filename>default.nix</filename></title>
<programlisting language="nix">
{ myWebApp ? { outPath = ./.; name = "myWebApp"; }
, pkgs ? import &lt;nixpkgs&gt; {}
}:
pkgs.stdenv.mkDerivation {
name = "my-web-app-frontend";
src = myWebApp;
buildInputs = [ pkgs.nodePackages.gulp ];
bowerComponents = pkgs.buildBowerComponents { <co xml:id="ex-buildBowerComponentsDefault-1" />
name = "my-web-app";
generated = ./bower-packages.nix;
src = myWebApp;
};
buildPhase = ''
cp --reflink=auto --no-preserve=mode -R $bowerComponents/bower_components . <co xml:id="ex-buildBowerComponentsDefault-2" />
export HOME=$PWD <co xml:id="ex-buildBowerComponentsDefault-3" />
${pkgs.nodePackages.gulp}/bin/gulp build <co xml:id="ex-buildBowerComponentsDefault-4" />
'';
installPhase = "mv gulpdist $out";
}
</programlisting>
</example>
<para>
A few notes about <xref linkend="ex-buildBowerComponentsDefaultNix" />:
<calloutlist>
<callout arearefs="ex-buildBowerComponentsDefault-1">
<para>
The result of <varname>buildBowerComponents</varname> is an input to the frontend build.
</para>
</callout>
<callout arearefs="ex-buildBowerComponentsDefault-2">
<para>
Whether to symlink or copy the <filename>bower_components</filename> directory depends on the build tool in use. In this case a copy is used to avoid <command>gulp</command> silliness with permissions.
</para>
</callout>
<callout arearefs="ex-buildBowerComponentsDefault-3">
<para>
<command>gulp</command> requires <varname>HOME</varname> to refer to a writeable directory.
</para>
</callout>
<callout arearefs="ex-buildBowerComponentsDefault-4">
<para>
The actual build command. Other tools could be used.
</para>
</callout>
</calloutlist>
</para>
</section>
<section xml:id="ssec-bower2nix-troubleshooting">
<title>Troubleshooting</title>
<variablelist>
<varlistentry>
<term>
<literal>ENOCACHE</literal> errors from <varname>buildBowerComponents</varname>
</term>
<listitem>
<para>
This means that Bower was looking for a package version which doesn't exist in the generated <filename>bower-packages.nix</filename>.
</para>
<para>
If <filename>bower.json</filename> has been updated, then run <command>bower2nix</command> again.
</para>
<para>
It could also be a bug in <command>bower2nix</command> or <command>fetchbower</command>. If possible, try reformulating the version specification in <filename>bower.json</filename>.
</para>
</listitem>
</varlistentry>
</variablelist>
</section>
</section>

View File

@@ -1,81 +0,0 @@
# Coq and coq packages {#sec-language-coq}
## Coq derivation: `coq`
The Coq derivation is overridable through the `coq.override overrides`, where overrides is an attribute set which contains the arguments to override. We recommend overriding either of the following
* `version` (optional, defaults to the latest version of Coq selected for nixpkgs, see `pkgs/top-level/coq-packages` to witness this choice), which follows the conventions explained in the `coqPackages` section below,
* `customOCamlPackage` (optional, defaults to `null`, which lets Coq choose a version automatically), which can be set to any of the ocaml packages attribute of `ocaml-ng` (such as `ocaml-ng.ocamlPackages_4_10` which is the default for Coq 8.11 for example).
* `coq-version` (optional, defaults to the short version e.g. "8.10"), is a version number of the form "x.y" that indicates which Coq's version build behavior to mimic when using a source which is not a release. E.g. `coq.override { version = "d370a9d1328a4e1cdb9d02ee032f605a9d94ec7a"; coq-version = "8.10"; }`.
## Coq packages attribute sets: `coqPackages`
The recommended way of defining a derivation for a Coq library, is to use the `coqPackages.mkCoqDerivation` function, which is essentially a specialization of `mkDerivation` taking into account most of the specifics of Coq libraries. The following attributes are supported:
* `pname` (required) is the name of the package,
* `version` (optional, defaults to `null`), is the version to fetch and build,
this attribute is interpreted in several ways depending on its type and pattern:
* if it is a known released version string, i.e. from the `release` attribute below, the according release is picked, and the `version` attribute of the resulting derivation is set to this release string,
* if it is a majorMinor `"x.y"` prefix of a known released version (as defined above), then the latest `"x.y.z"` known released version is selected (for the ordering given by `versionAtLeast`),
* if it is a path or a string representing an absolute path (i.e. starting with `"/"`), the provided path is selected as a source, and the `version` attribute of the resulting derivation is set to `"dev"`,
* if it is a string of the form `owner:branch` then it tries to download the `branch` of owner `owner` for a project of the same name using the same vcs, and the `version` attribute of the resulting derivation is set to `"dev"`, additionally if the owner is not provided (i.e. if the `owner:` prefix is missing), it defaults to the original owner of the package (see below),
* if it is a string of the form `"#N"`, and the domain is github, then it tries to download the current head of the pull request `#N` from github,
* `defaultVersion` (optional). Coq libraries may be compatible with some specific versions of Coq only. The `defaultVersion` attribute is used when no `version` is provided (or if `version = null`) to select the version of the library to use by default, depending on the context. This selection will mainly depend on a `coq` version number but also possibly on other packages versions (e.g. `mathcomp`). If its value ends up to be `null`, the package is marked for removal in end-user `coqPackages` attribute set.
* `release` (optional, defaults to `{}`), lists all the known releases of the library and for each of them provides an attribute set with at least a `sha256` attribute (you may put the empty string `""` in order to automatically insert a fake sha256, this will trigger an error which will allow you to find the correct sha256), each attribute set of the list of releases also takes optional overloading arguments for the fetcher as below (i.e.`domain`, `owner`, `repo`, `rev` assuming the default fetcher is used) and optional overrides for the result of the fetcher (i.e. `version` and `src`).
* `fetcher` (optional, defaults to a generic fetching mechanism supporting github or gitlab based infrastructures), is a function that takes at least an `owner`, a `repo`, a `rev`, and a `sha256` and returns an attribute set with a `version` and `src`.
* `repo` (optional, defaults to the value of `pname`),
* `owner` (optional, defaults to `"coq-community"`).
* `domain` (optional, defaults to `"github.com"`), domains including the strings `"github"` or `"gitlab"` in their names are automatically supported, otherwise, one must change the `fetcher` argument to support them (cf `pkgs/development/coq-modules/heq/default.nix` for an example),
* `releaseRev` (optional, defaults to `(v: v)`), provides a default mapping from release names to revision hashes/branch names/tags,
* `displayVersion` (optional), provides a way to alter the computation of `name` from `pname`, by explaining how to display version numbers,
* `namePrefix` (optional), provides a way to alter the computation of `name` from `pname`, by explaining which dependencies must occur in `name`,
* `extraBuildInputs` (optional), by default `buildInputs` just contains `coq`, this allows to add more build inputs,
* `mlPlugin` (optional, defaults to `false`). Some extensions (plugins) might require OCaml and sometimes other OCaml packages. Standard dependencies can be added by setting the current option to `true`. For a finer grain control, the `coq.ocamlPackages` attribute can be used in `extraBuildInputs` to depend on the same package set Coq was built against.
* `useDune2ifVersion` (optional, default to `(x: false)` uses Dune2 to build the package if the provided predicate evaluates to true on the version, e.g. `useDune2if = versions.isGe "1.1"` will use dune if the version of the package is greater or equal to `"1.1"`,
* `useDune2` (optional, defaults to `false`) uses Dune2 to build the package if set to true, the presence of this attribute overrides the behavior of the previous one.
* `enableParallelBuilding` (optional, defaults to `true`), since it is activated by default, we provide a way to disable it.
* `extraInstallFlags` (optional), allows to extend `installFlags` which initializes the variable `COQMF_COQLIB` so as to install in the proper subdirectory. Indeed Coq libraries should be installed in `$(out)/lib/coq/${coq.coq-version}/user-contrib/`. Such directories are automatically added to the `$COQPATH` environment variable by the hook defined in the Coq derivation.
* `setCOQBIN` (optional, defaults to `true`), by default, the environment variable `$COQBIN` is set to the current Coq's binary, but one can disable this behavior by setting it to `false`,
* `useMelquiondRemake` (optional, default to `null`) is an attribute set, which, if given, overloads the `preConfigurePhases`, `configureFlags`, `buildPhase`, and `installPhase` attributes of the derivation for a specific use in libraries using `remake` as set up by Guillaume Melquiond for `flocq`, `gappalib`, `interval`, and `coquelicot` (see the corresponding derivation for concrete examples of use of this option). For backward compatibility, the attribute `useMelquiondRemake.logpath` must be set to the logical root of the library (otherwise, one can pass `useMelquiondRemake = {}` to activate this without backward compatibility).
* `dropAttrs`, `keepAttrs`, `dropDerivationAttrs` are all optional and allow to tune which attribute is added or removed from the final call to `mkDerivation`.
It also takes other standard `mkDerivation` attributes, they are added as such, except for `meta` which extends an automatically computed `meta` (where the `platform` is the same as `coq` and the homepage is automatically computed).
Here is a simple package example. It is a pure Coq library, thus it depends on Coq. It builds on the Mathematical Components library, thus it also takes some `mathcomp` derivations as `extraBuildInputs`.
```nix
{ lib, mkCoqDerivation, version ? null
, coq, mathcomp, mathcomp-finmap, mathcomp-bigenough }:
with lib; mkCoqDerivation {
/* namePrefix leads to e.g. `name = coq8.11-mathcomp1.11-multinomials-1.5.2` */
namePrefix = [ "coq" "mathcomp" ];
pname = "multinomials";
owner = "math-comp";
inherit version;
defaultVersion = with versions; switch [ coq.version mathcomp.version ] [
{ cases = [ (range "8.7" "8.12") "1.11.0" ]; out = "1.5.2"; }
{ cases = [ (range "8.7" "8.11") (range "1.8" "1.10") ]; out = "1.5.0"; }
{ cases = [ (range "8.7" "8.10") (range "1.8" "1.10") ]; out = "1.4"; }
{ cases = [ "8.6" (range "1.6" "1.7") ]; out = "1.1"; }
] null;
release = {
"1.5.2".sha256 = "15aspf3jfykp1xgsxf8knqkxv8aav2p39c2fyirw7pwsfbsv2c4s";
"1.5.1".sha256 = "13nlfm2wqripaq671gakz5mn4r0xwm0646araxv0nh455p9ndjs3";
"1.5.0".sha256 = "064rvc0x5g7y1a0nip6ic91vzmq52alf6in2bc2dmss6dmzv90hw";
"1.5.0".rev = "1.5";
"1.4".sha256 = "0vnkirs8iqsv8s59yx1fvg1nkwnzydl42z3scya1xp1b48qkgn0p";
"1.3".sha256 = "0l3vi5n094nx3qmy66hsv867fnqm196r8v605kpk24gl0aa57wh4";
"1.2".sha256 = "1mh1w339dslgv4f810xr1b8v2w7rpx6fgk9pz96q0fyq49fw2xcq";
"1.1".sha256 = "1q8alsm89wkc0lhcvxlyn0pd8rbl2nnxg81zyrabpz610qqjqc3s";
"1.0".sha256 = "1qmbxp1h81cy3imh627pznmng0kvv37k4hrwi2faa101s6bcx55m";
};
propagatedBuildInputs =
[ mathcomp.ssreflect mathcomp.algebra mathcomp-finmap mathcomp-bigenough ];
meta = {
description = "A Coq/SSReflect Library for Monoidal Rings and Multinomials";
license = licenses.cecill-c;
};
}
```

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