Skip to content
This repository was archived by the owner on Apr 12, 2021. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs-channels
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: aa34ca05fe5b
Choose a base ref
...
head repository: NixOS/nixpkgs-channels
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 9aab141fbad7
Choose a head ref
Loading
Showing with 20,058 additions and 11,070 deletions.
  1. +1 −0 nixos/doc/manual/configuration/configuration.xml
  2. +197 −0 nixos/doc/manual/configuration/matrix.xml
  3. +11 −0 nixos/doc/manual/release-notes/rl-1903.xml
  4. +12 −1 nixos/modules/installer/tools/nixos-install.sh
  5. +1 −1 nixos/modules/module-list.nix
  6. +0 −91 nixos/modules/programs/sway-beta.nix
  7. +29 −28 nixos/modules/programs/sway.nix
  8. +95 −0 nixos/modules/services/networking/knot.nix
  9. +16 −17 nixos/modules/services/x11/desktop-managers/pantheon.nix
  10. +1 −1 nixos/modules/services/x11/desktop-managers/plasma5.nix
  11. +1 −1 nixos/modules/virtualisation/virtualbox-host.nix
  12. +1 −0 nixos/tests/all-tests.nix
  13. +197 −0 nixos/tests/knot.nix
  14. +2 −0 pkgs/applications/altcoins/freicoin.nix
  15. +12 −4 pkgs/applications/display-managers/lightdm/default.nix
  16. +4 −4 pkgs/applications/editors/vscode/default.nix
  17. +9 −6 pkgs/applications/misc/bitcoinarmory/default.nix
  18. +2 −2 pkgs/applications/misc/dbeaver/default.nix
  19. +15 −21 pkgs/applications/misc/electron-cash/default.nix
  20. +2 −2 pkgs/applications/networking/browsers/chromium/plugins.nix
  21. +9 −9 pkgs/applications/networking/browsers/chromium/upstream-info.nix
  22. +5 −5 pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
  23. +3 −3 pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
  24. +2 −3 pkgs/applications/networking/cluster/kops/default.nix
  25. +9 −5 pkgs/applications/networking/linssid/default.nix
  26. +3 −3 pkgs/applications/office/libreoffice/default-primary-src.nix
  27. +94 −12 pkgs/applications/office/libreoffice/default.nix
  28. +109 −88 pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix
  29. +130 −130 pkgs/applications/office/libreoffice/libreoffice-srcs.nix
  30. +0 −289 pkgs/applications/office/libreoffice/poppler.patch
  31. +4 −4 pkgs/applications/office/libreoffice/still-primary-src.nix
  32. +20 −9 pkgs/applications/office/libreoffice/still.nix
  33. +3 −0 pkgs/applications/science/machine-learning/labelimg/default.nix
  34. +20 −2 pkgs/applications/science/math/pari/default.nix
  35. +1 −0 pkgs/applications/science/robotics/apmplanner2/default.nix
  36. +0 −50 pkgs/applications/window-managers/sway/beta.nix
  37. +31 −18 pkgs/applications/window-managers/sway/default.nix
  38. +21 −0 pkgs/applications/window-managers/sway/sway-config-no-nix-store-references.patch
  39. +2 −2 pkgs/data/misc/hackage/default.nix
  40. +1 −1 pkgs/development/compilers/elm/default.nix
  41. +0 −230 pkgs/development/compilers/ghc/8.6.1.nix
  42. +0 −230 pkgs/development/compilers/ghc/8.6.2.nix
  43. +5 −5 pkgs/development/compilers/ghc/{8.6.3.nix → 8.6.4.nix}
  44. +12 −10 pkgs/development/haskell-modules/configuration-common.nix
  45. +1 −6 pkgs/development/haskell-modules/configuration-ghc-8.2.x.nix
  46. +6 −5 pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix
  47. +7,567 −7,936 pkgs/development/haskell-modules/configuration-hackage2nix.yaml
  48. +10,039 −1,600 pkgs/development/haskell-modules/hackage-packages.nix
  49. +16 −0 pkgs/development/haskell-modules/patches/xattr-fix-build.patch
  50. +3 −3 pkgs/development/haskell-modules/stack-hook.sh
  51. +6 −6 pkgs/development/interpreters/php/default.nix
  52. +4 −0 pkgs/development/interpreters/racket/default.nix
  53. +2 −1 pkgs/development/libraries/bamf/default.nix
  54. +4 −1 pkgs/development/libraries/qt-5/5.12/default.nix
  55. +26 −0 pkgs/development/libraries/qt-5/5.12/qtwebengine-CVE-2019-5786.patch
  56. +4 −4 pkgs/development/libraries/webkitgtk/default.nix
  57. +2 −2 pkgs/development/libraries/wlroots/default.nix
  58. +6 −0 pkgs/development/python-modules/audio-metadata/default.nix
  59. +61 −43 pkgs/development/python-modules/cairocffi/default.nix
  60. +47 −0 pkgs/development/python-modules/cairocffi/dlopen-paths-0.9.patch
  61. +10 −11 pkgs/development/python-modules/cairocffi/dlopen-paths.patch
  62. +4 −14 pkgs/development/python-modules/cairosvg/default.nix
  63. +2 −2 pkgs/development/python-modules/click-default-group/default.nix
  64. +4 −8 pkgs/development/python-modules/django_guardian/default.nix
  65. +0 −1 pkgs/development/python-modules/google-api-python-client/default.nix
  66. +2 −2 pkgs/development/python-modules/google-music-utils/default.nix
  67. +5 −0 pkgs/development/python-modules/google-music/default.nix
  68. +3 −2 pkgs/development/python-modules/moretools/default.nix
  69. +2 −2 pkgs/development/python-modules/ordered-set/default.nix
  70. +8 −1 pkgs/development/python-modules/pybind11/default.nix
  71. +4 −2 pkgs/development/python-modules/pyicu/default.nix
  72. +6 −1 pkgs/development/python-modules/pyopencl/default.nix
  73. +10 −4 pkgs/development/python-modules/pyrr/default.nix
  74. +3 −2 pkgs/development/python-modules/pyside/default.nix
  75. +3 −3 pkgs/development/python-modules/pysrt/default.nix
  76. +3 −1 pkgs/development/python-modules/pyzmq/default.nix
  77. +22 −0 pkgs/development/python-modules/qdarkstyle/default.nix
  78. +1 −1 pkgs/development/python-modules/rasterio/default.nix
  79. +7 −6 pkgs/development/python-modules/restructuredtext_lint/default.nix
  80. +6 −4 pkgs/development/python-modules/robotframework-tools/default.nix
  81. +24 −8 pkgs/development/python-modules/subliminal/default.nix
  82. +277 −0 ...evelopment/python-modules/thumbor/0001-Don-t-use-which-implementation-to-find-required-exec.patch
  83. +17 −10 pkgs/development/python-modules/thumbor/default.nix
  84. +4 −20 pkgs/development/python-modules/weboob/default.nix
  85. +9 −2 pkgs/development/python-modules/zetup/default.nix
  86. +2 −0 pkgs/development/tools/haskell/vaultenv/default.nix
  87. +3 −1 pkgs/games/hedgewars/default.nix
  88. +6 −1 pkgs/misc/screensavers/xscreensaver/default.nix
  89. +2 −0 pkgs/os-specific/linux/ima-evm-utils/default.nix
  90. +73 −0 pkgs/os-specific/linux/ima-evm-utils/xattr.patch
  91. +2 −2 pkgs/os-specific/linux/kernel/linux-4.14.nix
  92. +2 −2 pkgs/os-specific/linux/kernel/linux-4.19.nix
  93. +2 −2 pkgs/os-specific/linux/kernel/linux-4.20.nix
  94. +2 −2 pkgs/os-specific/linux/kernel/linux-4.9.nix
  95. +2 −2 pkgs/os-specific/linux/kernel/linux-5.0.nix
  96. +2 −2 pkgs/os-specific/linux/kernel/linux-libre.nix
  97. +2 −2 pkgs/servers/mail/exim/default.nix
  98. +5 −2 pkgs/servers/x11/xorg/overrides.nix
  99. +2 −0 pkgs/tools/admin/mycli/default.nix
  100. +446 −0 pkgs/tools/admin/mycli/fix-tests.patch
  101. +7 −5 pkgs/tools/audio/google-music-scripts/default.nix
  102. +3 −3 pkgs/tools/misc/ipxe/default.nix
  103. +3 −1 pkgs/tools/misc/xfstests/default.nix
  104. +107 −0 pkgs/tools/misc/xfstests/xattr.patch
  105. +20 −0 pkgs/tools/networking/mitmproxy/default.nix
  106. +2 −2 pkgs/tools/networking/offlineimap/default.nix
  107. +2 −2 pkgs/tools/typesetting/scdoc/default.nix
  108. +1 −1 pkgs/tools/typesetting/tex/texlive/bin.nix
  109. +1 −1 pkgs/tools/typesetting/tex/texlive/default.nix
  110. +2 −4 pkgs/top-level/all-packages.nix
  111. +6 −28 pkgs/top-level/haskell-packages.nix
  112. +29 −4 pkgs/top-level/python-packages.nix
1 change: 1 addition & 0 deletions nixos/doc/manual/configuration/configuration.xml
Original file line number Diff line number Diff line change
@@ -21,6 +21,7 @@
<xi:include href="xfce.xml" />
<xi:include href="networking.xml" />
<xi:include href="linux-kernel.xml" />
<xi:include href="matrix.xml" />
<xi:include href="../generated/modules.xml" xpointer="xpointer(//section[@id='modules']/*)" />
<xi:include href="profiles.xml" />
<xi:include href="kubernetes.xml" />
197 changes: 197 additions & 0 deletions nixos/doc/manual/configuration/matrix.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
<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="module-services-matrix">
<title>Matrix</title>
<para>
<link xlink:href="https://matrix.org/">Matrix</link>
is an open standard for interoperable, decentralised, real-time communication over IP.
It can be used to power Instant Messaging, VoIP/WebRTC signalling, Internet of Things communication -
or anywhere you need a standard HTTP API for publishing and subscribing to data whilst tracking the conversation history.
</para>
<para>
This chapter will show you how to set up your own, self-hosted Matrix homeserver using the Synapse reference homeserver,
and how to serve your own copy of the Riot web client.
See the <link xlink:href="https://matrix.org/docs/projects/try-matrix-now.html">Try Matrix Now!</link>
overview page for links to Riot Apps for Android and iOS, desktop clients,
as well as bridges to other networks and other projects around Matrix.
</para>

<section xml:id="module-services-matrix-synapse">
<title>Synapse Homeserver</title>
<para>
<link xlink:href="https://github.com/matrix-org/synapse">Synapse</link>
is the reference homeserver implementation of Matrix from the core development team at matrix.org.
The following configuration example will set up a synapse server for the <literal>example.org</literal>
domain, served from the host <literal>myhostname.example.org</literal>.
For more information, please refer to the
<link xlink:href="https://github.com/matrix-org/synapse#synapse-installation">
installation instructions of Synapse
</link>.
<programlisting>
let
fqdn =
let
join = hostName: domain: hostName + optionalString (domain != null) ".${domain}";
in join config.networking.hostName config.networking.domain;
in {
networking = {
hostName = "myhostname";
domain = "example.org";
};
networking.firewall.allowedTCPPorts = [ 80 443 ];

services.nginx = {
enable = true;
# only recommendedProxySettings and recommendedGzipSettings are strictly required,
# but the rest make sense as well
recommendedTlsSettings = true;
recommendedOptimisation = true;
recommendedGzipSettings = true;
recommendedProxySettings = true;

virtualHosts = {
# This host section can be placed on a different host than the rest,
# i.e. to delegate from the host being accessible as ${config.networking.domain}
# to another host actually running the Matrix homeserver.
"${config.networking.domain}" = {
locations."= /.well-known/matrix/server".extraConfig =
let
# use 443 instead of the default 8448 port to unite
# the client-server and server-server port for simplicity
server = { "m.server" = "${fqdn}:443"; };
in ''
add_header Content-Type application/json;
return 200 '${builtins.toJSON server}';
'';
locations."= /.well-known/matrix/client".extraConfig =
let
client = {
"m.homeserver" = { "base_url" = "https://${fqdn}"; };
"m.identity_server" = { "base_url" = "https://vector.im"; };
};
# ACAO required to allow riot-web on any URL to request this json file
in ''
add_header Content-Type application/json;
add_header Access-Control-Allow-Origin *;
return 200 '${builtins.toJSON client}';
'';
};

# Reverse proxy for Matrix client-server and server-server communication
${fqdn} = {
enableACME = true;
forceSSL = true;

# Or do a redirect instead of the 404, or whatever is appropriate for you.
# But do not put a Matrix Web client here! See the Riot Web section below.
locations."/".extraConfig = ''
return 404;
'';

# forward all Matrix API calls to the synapse Matrix homeserver
locations."/_matrix" = {
proxyPass = "http://[::1]:8008";
};
};
};
};
services.matrix-synapse = {
enable = true;
server_name = config.networking.domain;
listeners = [
{
port = 8008;
bind_address = "::1";
type = "http";
tls = false;
x_forwarded = true;
resources = [
{ names = [ "client" "federation" ]; compress = false; }
];
}
];
};
};
</programlisting>
</para>
<para>
If the <code>A</code> and <code>AAAA</code> DNS records on <literal>example.org</literal>
do not point on the same host as the records for <code>myhostname.example.org</code>,
you can easily move the <code>/.well-known</code> virtualHost section of the code
to the host that is serving <literal>example.org</literal>,
while the rest stays on <literal>myhostname.example.org</literal>
with no other changes required.
This pattern also allows to seamlessly move the homeserver from <literal>myhostname.example.org</literal>
to <literal>myotherhost.example.org</literal> by only changing the <code>/.well-known</code> redirection target.
</para>

<para>
If you want to run a server with public registration by anybody,
you can then enable
<option>services.matrix-synapse.enable_registration = true;</option>.
Otherwise, or you can generate a registration secret with <command>pwgen -s 64 1</command>
and set it with
<option>services.matrix-synapse.registration_shared_secret</option>.
To create a new user or admin,
run the following after you have set the secret and have rebuilt NixOS:

<programlisting>
$ nix run nixpkgs.matrix-synapse
$ register_new_matrix_user -k &lt;your-registration-shared-secret&gt; http://localhost:8008
New user localpart: &lt;your-username&gt;
Password:
Confirm password:
Make admin [no]:
Success!
</programlisting>
In the example, this would create a user with the Matrix Identifier
<literal>@your-username:example.org</literal>.
Note that the registration secret ends up in the nix store and therefore is world-readable
by any user on your machine, so it makes sense to only temporarily activate the
<option>registration_shared_secret</option> option until a better solution for NixOS is in place.
</para>
</section>

<section xml:id="module-services-matrix-riot-web">
<title>Riot Web Client</title>
<para>
<link xlink:href="https://github.com/vector-im/riot-web/">Riot Web</link>
is the reference web client for Matrix and developed by the core team at matrix.org.
The following snippet can be optionally added to the code before to complete the synapse
installation with a web client served at
<code>https://riot.myhostname.example.org</code> and <code>https://riot.example.org</code>.
Alternatively, you can use the hosted copy at
<link xlink:href="https://riot.im/app">https://riot.im/app</link>,
or use other web clients or native client applications.
Due to the <literal>/.well-known</literal> urls set up done above,
many clients should fill in the required connection details automatically
when you enter your Matrix Identifier.
See <link xlink:href="https://matrix.org/docs/projects/try-matrix-now.html">Try Matrix Now!</link>
for a list of existing clients and their supported featureset.

<programlisting>
services.nginx.virtualHosts."riot.${fqdn}" = {
enableACME = true;
forceSSL = true;
serverAliases = [
"riot.${config.networking.domain}"
];

root = pkgs.riot-web;
};
</programlisting>
</para>
<para>
Note that the Riot developers do not recommend running Riot and your Matrix homeserver
on the same fully-qualified domain name for security reasons.
In the example, this means that you should not reuse the <literal>myhostname.example.org</literal>
virtualHost to also serve Riot, but instead serve it on a different subdomain,
like <literal>riot.example.org</literal> in the example.
See the
<link xlink:href="https://github.com/vector-im/riot-web#important-security-note">Riot Important Security Notes</link>
for more information on this subject.
</para>
</section>
</chapter>
11 changes: 11 additions & 0 deletions nixos/doc/manual/release-notes/rl-1903.xml
Original file line number Diff line number Diff line change
@@ -469,6 +469,8 @@
and will be <link xlink:href="https://matrix.org/blog/2019/02/05/synapse-0-99-0/">the last version to accept self-signed certificates</link>.
As such, it is now recommended to use a proper certificate verified by a
root CA (for example Let's Encrypt).
The new <link linkend="module-services-matrix">manual chapter on Matrix</link> contains a working example of using nginx as a reverse proxy
in front of <literal>matrix-synapse</literal>, using Let's Encrypt certificates.
</para>
</listitem>
<listitem>
@@ -553,6 +555,15 @@
of maintainers.
</para>
</listitem>
<listitem>
<para>
The manual gained a
<link linkend="module-services-matrix">
new chapter on self-hosting <literal>matrix-synapse</literal> and <literal>riot-web</literal>
</link>, the most prevalent server and client implementations for the
<link xlink:href="https://matrix.org/">Matrix</link> federated communication network.
</para>
</listitem>
<listitem>
<para>
The astah-community package was removed from nixpkgs due to it being discontinued and the downloads not being available anymore.
13 changes: 12 additions & 1 deletion nixos/modules/installer/tools/nixos-install.sh
Original file line number Diff line number Diff line change
@@ -138,7 +138,18 @@ fi
# Ask the user to set a root password, but only if the passwd command
# exists (i.e. when mutable user accounts are enabled).
if [[ -z $noRootPasswd ]] && [ -t 0 ]; then
nixos-enter --root "$mountPoint" -c '[[ -e /nix/var/nix/profiles/system/sw/bin/passwd ]] && echo "setting root password..." && /nix/var/nix/profiles/system/sw/bin/passwd'
if nixos-enter --root "$mountPoint" -c 'test -e /nix/var/nix/profiles/system/sw/bin/passwd'; then
set +e
nixos-enter --root "$mountPoint" -c 'echo "setting root password..." && /nix/var/nix/profiles/system/sw/bin/passwd'
exit_code=$?
set -e

if [[ $exit_code != 0 ]]; then
echo "Setting a root password failed with the above printed error."
echo "You can set the root password manually by executing \`nixos-enter --root ${mountPoint@Q}\` and then running \`passwd\` in the shell of the new system."
exit $exit_code
fi
fi
fi

echo "installation finished!"
2 changes: 1 addition & 1 deletion nixos/modules/module-list.nix
Original file line number Diff line number Diff line change
@@ -129,7 +129,6 @@
./programs/sysdig.nix
./programs/systemtap.nix
./programs/sway.nix
./programs/sway-beta.nix
./programs/thefuck.nix
./programs/tmux.nix
./programs/udevil.nix
@@ -573,6 +572,7 @@
./services/networking/keepalived/default.nix
./services/networking/keybase.nix
./services/networking/kippo.nix
./services/networking/knot.nix
./services/networking/kresd.nix
./services/networking/lambdabot.nix
./services/networking/libreswan.nix
91 changes: 0 additions & 91 deletions nixos/modules/programs/sway-beta.nix

This file was deleted.

Loading