Merge branch 'staging-next' into staging

This commit is contained in:
Jan Tojnar 2020-04-13 18:54:59 +02:00
commit b4a6714571
No known key found for this signature in database
GPG Key ID: 7FAB2A15F7A607A4
9805 changed files with 28238 additions and 18638 deletions

View File

@ -40,13 +40,13 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
amazonsl = {
fullName = "Amazon Software License";
url = http://aws.amazon.com/asl/;
url = "http://aws.amazon.com/asl/";
free = false;
};
amd = {
fullName = "AMD License Agreement";
url = http://developer.amd.com/amd-license-agreement/;
url = "http://developer.amd.com/amd-license-agreement/";
free = false;
};
@ -57,7 +57,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
arphicpl = {
fullName = "Arphic Public License";
url = https://www.freedesktop.org/wiki/Arphic_Public_License/;
url = "https://www.freedesktop.org/wiki/Arphic_Public_License/";
};
artistic1 = spdx {
@ -107,7 +107,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
bsl11 = {
fullName = "Business Source License 1.1";
url = https://mariadb.com/bsl11;
url = "https://mariadb.com/bsl11";
free = false;
};
@ -230,7 +230,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
eapl = {
fullName = "EPSON AVASYS PUBLIC LICENSE";
url = http://avasys.jp/hp/menu000000700/hpg000000603.htm;
url = "http://avasys.jp/hp/menu000000700/hpg000000603.htm";
free = false;
};
@ -246,7 +246,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
elastic = {
fullName = "ELASTIC LICENSE";
url = https://github.com/elastic/elasticsearch/blob/master/licenses/ELASTIC-LICENSE.txt;
url = "https://github.com/elastic/elasticsearch/blob/master/licenses/ELASTIC-LICENSE.txt";
free = false;
};
@ -262,7 +262,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
epson = {
fullName = "Seiko Epson Corporation Software License Agreement for Linux";
url = https://download.ebz.epson.net/dsc/du/02/eula/global/LINUX_EN.html;
url = "https://download.ebz.epson.net/dsc/du/02/eula/global/LINUX_EN.html";
free = false;
};
@ -293,7 +293,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
ffsl = {
fullName = "Floodgap Free Software License";
url = http://www.floodgap.com/software/ffsl/license.html;
url = "http://www.floodgap.com/software/ffsl/license.html";
free = false;
};
@ -303,12 +303,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
g4sl = {
fullName = "Geant4 Software License";
url = https://geant4.web.cern.ch/geant4/license/LICENSE.html;
url = "https://geant4.web.cern.ch/geant4/license/LICENSE.html";
};
geogebra = {
fullName = "GeoGebra Non-Commercial License Agreement";
url = https://www.geogebra.org/license;
url = "https://www.geogebra.org/license";
free = false;
};
@ -334,12 +334,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
gpl2ClasspathPlus = {
fullName = "GNU General Public License v2.0 or later (with Classpath exception)";
url = https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception;
url = "https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception";
};
gpl2Oss = {
fullName = "GNU General Public License version 2 only (with OSI approved licenses linking exception)";
url = https://www.mysql.com/about/legal/licensing/foss-exception;
url = "https://www.mysql.com/about/legal/licensing/foss-exception";
};
gpl2Plus = spdx {
@ -359,7 +359,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
gpl3ClasspathPlus = {
fullName = "GNU General Public License v3.0 or later (with Classpath exception)";
url = https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception;
url = "https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception";
};
hpnd = spdx {
@ -370,7 +370,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
# Intel's license, seems free
iasl = {
fullName = "iASL";
url = http://www.calculate-linux.org/packages/licenses/iASL;
url = "http://www.calculate-linux.org/packages/licenses/iASL";
};
ijg = spdx {
@ -413,7 +413,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
# Proprietary binaries; free to redistribute without modification.
issl = {
fullName = "Intel Simplified Software License";
url = https://software.intel.com/en-us/license/intel-simplified-software-license;
url = "https://software.intel.com/en-us/license/intel-simplified-software-license";
free = false;
};
@ -469,7 +469,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
llgpl21 = {
fullName = "Lisp LGPL; GNU Lesser General Public License version 2.1 with Franz Inc. preamble for clarification of LGPL terms in context of Lisp";
url = http://opensource.franz.com/preamble.html;
url = "http://opensource.franz.com/preamble.html";
};
lppl12 = spdx {
@ -489,7 +489,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
miros = {
fullName = "MirOS License";
url = https://opensource.org/licenses/MirOS;
url = "https://opensource.org/licenses/MirOS";
};
# spdx.org does not (yet) differentiate between the X11 and Expat versions
@ -589,7 +589,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
postman = {
fullName = "Postman EULA";
url = https://www.getpostman.com/licenses/postman_base_app;
url = "https://www.getpostman.com/licenses/postman_base_app";
free = false;
};
@ -605,7 +605,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
purdueBsd = {
fullName = " Purdue BSD-Style License"; # also know as lsof license
url = https://enterprise.dejacode.com/licenses/public/purdue-bsd;
url = "https://enterprise.dejacode.com/licenses/public/purdue-bsd";
};
qhull = spdx {
@ -620,7 +620,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
qwt = {
fullName = "Qwt License, Version 1.0";
url = http://qwt.sourceforge.net/qwtlicense.html;
url = "http://qwt.sourceforge.net/qwtlicense.html";
};
ruby = spdx {
@ -646,13 +646,13 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
smail = {
shortName = "smail";
fullName = "SMAIL General Public License";
url = http://metadata.ftp-master.debian.org/changelogs/main/d/debianutils/debianutils_4.8.1_copyright;
url = "http://metadata.ftp-master.debian.org/changelogs/main/d/debianutils/debianutils_4.8.1_copyright";
};
sspl = {
shortName = "SSPL";
fullName = "Server Side Public License";
url = https://www.mongodb.com/licensing/server-side-public-license;
url = "https://www.mongodb.com/licensing/server-side-public-license";
free = false;
};
@ -663,7 +663,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
ufl = {
fullName = "Ubuntu Font License 1.0";
url = http://font.ubuntu.com/ufl/ubuntu-font-licence-1.0.txt;
url = "http://font.ubuntu.com/ufl/ubuntu-font-licence-1.0.txt";
};
unfree = {
@ -725,7 +725,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
wadalab = {
fullName = "Wadalab Font License";
url = https://fedoraproject.org/wiki/Licensing:Wadalab?rd=Licensing/Wadalab;
url = "https://fedoraproject.org/wiki/Licensing:Wadalab?rd=Licensing/Wadalab";
};
wtfpl = spdx {

View File

@ -4703,6 +4703,18 @@
githubId = 136037;
name = "Matthew Maurer";
};
maxdamantus = {
email = "maxdamantus@gmail.com";
github = "Maxdamantus";
githubId = 502805;
name = "Max Zerzouri";
};
maxeaubrey = {
email = "maxeaubrey@gmail.com";
github = "maxeaubrey";
githubId = 35892750;
name = "Maxine Aubrey";
};
mbakke = {
email = "mbakke@fastmail.com";
github = "mbakke";
@ -5771,6 +5783,12 @@
githubId = 5515707;
name = "Peter Romfeld";
};
petersjt014 = {
email = "petersjt014@gmail.com";
github = "petersjt014";
githubId = 29493551;
name = "Josh Peters";
};
peti = {
email = "simons@cryp.to";
github = "peti";
@ -7873,8 +7891,8 @@
githubId = 7953163;
name = "Vika Shleina";
keys = [{
longkeyid = "rsa4096/0x5402B9B5497BACDB";
fingerprint = "A03C D09C 36CF D9F6 1ADF AF11 5402 B9B5 497B ACDB";
longkeyid = "rsa2048/0x4F62CD07CE64796A";
fingerprint = "B3C0 DA1A C18B 82E8 CA8B B1D1 4F62 CD07 CE64 796A";
}];
};
vinymeuh = {

View File

@ -40,7 +40,7 @@ networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
<note>
<para>
If you are switching networks with different proxy configurations, use the
<literal>nesting.clone</literal> option in
<literal>specialisation</literal> option in
<literal>configuration.nix</literal> to switch proxies at runtime. Refer to
<xref linkend="ch-options" /> for more information.
</para>

View File

@ -23,11 +23,24 @@
Support is planned until the end of October 2020, handing over to 20.09.
</para>
</listitem>
<listitem>
<para>Core version changes:</para>
<para>gcc: 8.3.0 -&gt; 9.2.0</para>
<para>glibc: 2.27 -&gt; 2.30</para>
<para>linux: 4.19 -&gt; 5.4</para>
<para>mesa: 19.1.5 -&gt; 19.3.3</para>
<para>openssl: 1.0.2u -&gt; 1.1.1d</para>
</listitem>
<listitem>
<para>Desktop version changes:</para>
<para>plasma5: 5.16.5 -&gt; 5.17.5</para>
<para>kdeApplications: 19.08.2 -&gt; 19.12.3</para>
<para>gnome3: 3.32 -&gt; 3.34</para>
<para>pantheon: 5.0 -&gt; 5.1.3</para>
</listitem>
<listitem>
<para>
Linux kernel is updated to branch 5.4 by default (from 4.19).
Users of Intel GPUs may prefer to explicitly set branch to 4.19 to avoid some regressions.
<programlisting>boot.kernelPackages = pkgs.linuxPackages_4_19;</programlisting>
</para>
</listitem>
<listitem>
@ -43,6 +56,24 @@
quirk in the boot menu.
</para>
</listitem>
<listitem>
<para>
GNOME 3 has been upgraded to 3.34. Please take a look at their
<link xlink:href="https://help.gnome.org/misc/release-notes/3.34">Release Notes</link>
for details.
</para>
</listitem>
<listitem>
<para>
If you enable the Pantheon Desktop Manager via
<xref linkend="opt-services.xserver.desktopManager.pantheon.enable" />, we now default to also use
<link xlink:href="https://blog.elementary.io/say-hello-to-the-new-greeter/">
Pantheon's newly designed greeter
</link>.
Contrary to NixOS's usual update policy, Pantheon will receive updates during the cycle of
NixOS 20.03 when backwards compatible.
</para>
</listitem>
<listitem>
<para>
By default zfs pools will now be trimmed on a weekly basis.
@ -128,6 +159,241 @@ See https://github.com/NixOS/nixpkgs/pull/71684 for details.
It was created so Geary could function properly outside of GNOME.
</para>
</listitem>
<listitem>
<para>
<filename>./config/console.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./hardware/brillo.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./hardware/tuxedo-keyboard.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./programs/bandwhich.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./programs/bash-my-aws.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./programs/liboping.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./programs/traceroute.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/backup/sanoid.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/backup/syncoid.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/backup/zfs-replication.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/continuous-integration/buildkite-agents.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/databases/victoriametrics.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/desktops/gnome3/gnome-initial-setup.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/desktops/neard.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/games/openarena.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/hardware/fancontrol.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/mail/sympa.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/misc/freeswitch.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/misc/mame.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/monitoring/do-agent.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/monitoring/prometheus/xmpp-alerts.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/network-filesystems/orangefs/server.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/network-filesystems/orangefs/client.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/networking/3proxy.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/networking/corerad.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/networking/go-shadowsocks2.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/networking/ntp/openntpd.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/networking/shorewall.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/networking/shorewall6.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/networking/spacecookie.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/networking/trickster.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/networking/v2ray.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/networking/xandikos.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/networking/yggdrasil.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/web-apps/dokuwiki.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/web-apps/gotify-server.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/web-apps/grocy.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/web-apps/ihatemoney</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/web-apps/moinmoin.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/web-apps/trac.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/web-apps/trilium.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/web-apps/shiori.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/web-servers/ttyd.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/x11/picom.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/x11/hardware/digimend.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./services/x11/imwheel.nix</filename>
</para>
</listitem>
<listitem>
<para>
<filename>./virtualisation/cri-o.nix</filename>
</para>
</listitem>
</itemizedlist>
</section>
@ -632,6 +898,25 @@ auth required pam_succeed_if.so uid >= 1000 quiet
The <option>services.dnscrypt-proxy</option> module has been removed
as it used the deprecated version of dnscrypt-proxy. We've added
<xref linkend="opt-services.dnscrypt-proxy2.enable"/> to use the supported version.
This module supports configuration via the Nix attribute set
<xref linkend="opt-services.dnscrypt-proxy2.settings" />, or by passing a TOML configuration file via
<xref linkend="opt-services.dnscrypt-proxy2.configFile" />.
<programlisting>
# Example configuration:
services.dnscrypt-proxy2.enable = true;
services.dnscrypt-proxy2.settings = {
listen_addresses = [ "127.0.0.1:43" ];
sources.public-resolvers = {
urls = [ "https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md" ];
cache_file = "public-resolvers.md";
minisign_key = "RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3";
refresh_delay = 72;
};
};
services.dnsmasq.enable = true;
services.dnsmasq.servers = [ "127.0.0.1#43" ];
</programlisting>
</para>
</listitem>
<listitem>
@ -648,6 +933,15 @@ auth required pam_succeed_if.so uid >= 1000 quiet
<link xlink:href="https://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/sqldev-relnotes-194-5908846.html">release notes</link>.
</para>
</listitem>
<listitem>
<para>
Haskell <varname>env</varname> and <varname>shellFor</varname> dev shell environments now organized dependencies the same way as regular builds.
In particular, rather than receiving all the different lists of dependencies master together as one big lists, and then partitioning into Haskell and non-Hakell dependencies, they work from the original many different dependency parameters and don't need to algorithmically partition anything.
</para>
<para>
This means that if you incorrectly categorize a dependency, e.g. non-Haskell library dependency as a <varname>buildDepends</varname> or run-time Haskell dependency as a <varname>setupDepends</varname>, whereas things would have worked before they may not work now.
</para>
</listitem>
<listitem>
<para>
The <package>gcc-snapshot</package>-package has been removed. It's marked as broken for &gt;2 years and used to point
@ -720,7 +1014,7 @@ auth required pam_succeed_if.so uid >= 1000 quiet
</para>
<warning>
<para>
Please note that if you're comming from <literal>19.03</literal> or older, you have
Please note that if you're coming from <literal>19.03</literal> or older, you have
to manually upgrade to <literal>19.09</literal> first to upgrade your server
to Nextcloud v16.
</para>
@ -809,7 +1103,8 @@ auth required pam_succeed_if.so uid >= 1000 quiet
<listitem>
<para>
The nginx web server previously started its master process as root
privileged, then ran worker processes as a less privileged identity user.
privileged, then ran worker processes as a less privileged identity user
(the <literal>nginx</literal> user).
This was changed to start all of nginx as a less privileged user (defined by
<literal>services.nginx.user</literal> and
<literal>services.nginx.group</literal>). As a consequence, all files that
@ -817,6 +1112,13 @@ auth required pam_succeed_if.so uid >= 1000 quiet
certificates and keys, etc.) must now be readable by this less privileged
user/group.
</para>
<para>
To continue to use the old approach, you can configure:
<programlisting>
services.nginx.appendConfig = let cfg = config.services.nginx; in ''user ${cfg.user} ${cfg.group};'';
systemd.services.nginx.serviceConfig.User = lib.mkForce "root";
</programlisting>
</para>
</listitem>
<listitem>
<para>

View File

@ -203,6 +203,50 @@ environment.systemPackages = [
<link xlink:href="https://github.com/gollum/gollum/wiki/5.0-release-notes#migrating-your-wiki">here</link>.
</para>
</listitem>
<listitem>
<para>
The NixOS options <literal>nesting.clone</literal> and
<literal>nesting.children</literal> have been deleted, and
replaced with named <xref linkend="opt-specialisation"/>
configurations.
</para>
<para>
Replace a <literal>nesting.clone</literal> entry with:
<programlisting>{
<link xlink:href="#opt-specialisation">specialisation.example-sub-configuration</link> = {
<link xlink:href="#opt-specialisation._name_.configuration">configuration</link> = {
...
};
};</programlisting>
</para>
<para>
Replace a <literal>nesting.children</literal> entry with:
<programlisting>{
<link xlink:href="#opt-specialisation">specialisation.example-sub-configuration</link> = {
<link xlink:href="#opt-specialisation._name_.inheritParentConfig">inheritParentConfig</link> = false;
<link xlink:href="#opt-specialisation._name_.configuration">configuration</link> = {
...
};
};</programlisting>
</para>
<para>
To switch to a specialised configuration at runtime you need to
run:
<programlisting>
# sudo /run/current-system/specialisation/example-sub-configuration/bin/switch-to-configuration test
</programlisting>
Before you would have used:
<programlisting>
# sudo /run/current-system/fine-tune/child-1/bin/switch-to-configuration test
</programlisting>
</para>
</listitem>
</itemizedlist>
</section>

View File

@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
'';
meta = {
homepage = https://jqueryui.com/;
homepage = "https://jqueryui.com/";
description = "A library of JavaScript widgets and effects";
platforms = stdenv.lib.platforms.all;
};

View File

@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "JavaScript library designed to simplify the client-side scripting of HTML";
homepage = http://jquery.com/;
homepage = "http://jquery.com/";
license = licenses.mit;
platforms = platforms.all;
};

View File

@ -34,7 +34,7 @@ let
meta = with lib; {
description = "HP Smart Array CLI";
homepage = https://downloads.linux.hpe.com/SDR/downloads/MCP/Ubuntu/pool/non-free/;
homepage = "https://downloads.linux.hpe.com/SDR/downloads/MCP/Ubuntu/pool/non-free/";
license = licenses.unfreeRedistributable;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ volth ];

View File

@ -483,7 +483,7 @@ in
isoImage.efiSplashImage = mkOption {
default = pkgs.fetchurl {
url = https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/efi-background.png;
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/efi-background.png";
sha256 = "18lfwmp8yq923322nlb9gxrh5qikj1wsk6g5qvdh31c4h5b1538x";
};
description = ''
@ -493,7 +493,7 @@ in
isoImage.splashImage = mkOption {
default = pkgs.fetchurl {
url = https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/isolinux/bios-boot.png;
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/isolinux/bios-boot.png";
sha256 = "1wp822zrhbg4fgfbwkr7cbkr4labx477209agzc0hr6k62fr6rxd";
};
description = ''

View File

@ -1,6 +1,6 @@
{
x86_64-linux = "/nix/store/ddmmzn4ggz1f66lwxjy64n89864yj9w9-nix-2.3.3";
i686-linux = "/nix/store/5axys7hsggb4282dsbps5k5p0v59yv13-nix-2.3.3";
aarch64-linux = "/nix/store/k80nwvi19hxwbz3c9cxgp24f1jjxwmcc-nix-2.3.3";
x86_64-darwin = "/nix/store/lrnvapsqmf0ja6zfyx4cpxr7ahdr7f9b-nix-2.3.3";
x86_64-linux = "/nix/store/8928ygfyf9iassfrnj76v55s6zid58ja-nix-2.3.4";
i686-linux = "/nix/store/b5cx3nmba9ahx3wk5ybxa67k40pdpdxn-nix-2.3.4";
aarch64-linux = "/nix/store/p6j4mis6agdjlk4j0cyg7yh58wpm3kif-nix-2.3.4";
x86_64-darwin = "/nix/store/aizhr07dljmlbf17wfrj40x3s0b5iv3d-nix-2.3.4";
}

View File

@ -76,7 +76,7 @@ in
defaultChannel = mkOption {
internal = true;
type = types.str;
default = https://nixos.org/channels/nixos-unstable;
default = "https://nixos.org/channels/nixos-unstable";
description = "Default NixOS channel to which the root user is subscribed.";
};

View File

@ -13,7 +13,14 @@ in
programs.npm = {
enable = mkEnableOption "<command>npm</command> global config";
npmrc = lib.mkOption {
package = mkOption {
type = types.path;
description = "The npm package version / flavor to use";
default = pkgs.nodePackages.npm;
example = literalExample "pkgs.nodePackages_13_x.npm";
};
npmrc = mkOption {
type = lib.types.lines;
description = ''
The system-wide npm configuration.
@ -40,7 +47,7 @@ in
environment.variables.NPM_CONFIG_GLOBALCONFIG = "/etc/npmrc";
environment.systemPackages = [ pkgs.nodePackages.npm ];
environment.systemPackages = [ cfg.package ];
};
}

View File

@ -61,12 +61,9 @@ in
'';
};
# Allow DSA keys for now. (These were deprecated in OpenSSH 7.0.)
pubkeyAcceptedKeyTypes = mkOption {
type = types.listOf types.str;
default = [
"+ssh-dss"
];
default = [];
example = [ "ssh-ed25519" "ssh-rsa" ];
description = ''
Specifies the key types that will be used for public key authentication.
@ -75,9 +72,7 @@ in
hostKeyAlgorithms = mkOption {
type = types.listOf types.str;
default = [
"+ssh-dss"
];
default = [];
example = [ "ssh-ed25519" "ssh-rsa" ];
description = ''
Specifies the host key algorithms that the client wants to use in order of preference.

View File

@ -88,7 +88,7 @@ in
services.kubernetes.addonManager.bootstrapAddons = mkIf isRBACEnabled
(let
name = system:kube-addon-manager;
name = "system:kube-addon-manager";
namespace = "kube-system";
in
{

View File

@ -39,6 +39,36 @@ let
inherit (config.system) stateVersion;
hydra-package =
let
makeWrapperArgs = concatStringsSep " " (mapAttrsToList (key: value: "--set \"${key}\" \"${value}\"") hydraEnv);
in pkgs.buildEnv rec {
name = "hydra-env";
buildInputs = [ pkgs.makeWrapper ];
paths = [ cfg.package ];
postBuild = ''
if [ -L "$out/bin" ]; then
unlink "$out/bin"
fi
mkdir -p "$out/bin"
for path in ${concatStringsSep " " paths}; do
if [ -d "$path/bin" ]; then
cd "$path/bin"
for prg in *; do
if [ -f "$prg" ]; then
rm -f "$out/bin/$prg"
if [ -x "$prg" ]; then
makeWrapper "$path/bin/$prg" "$out/bin/$prg" ${makeWrapperArgs}
fi
fi
done
fi
done
'';
};
in
{
@ -266,7 +296,7 @@ in
use-substitutes = ${if cfg.useSubstitutes then "1" else "0"}
'';
environment.systemPackages = [ cfg.package ];
environment.systemPackages = [ hydra-package ];
environment.variables = hydraEnv;
@ -327,7 +357,7 @@ in
chown hydra.hydra ${cfg.gcRootsDir}
chmod 2775 ${cfg.gcRootsDir}
'';
serviceConfig.ExecStart = "${cfg.package}/bin/hydra-init";
serviceConfig.ExecStart = "${hydra-package}/bin/hydra-init";
serviceConfig.PermissionsStartOnly = true;
serviceConfig.User = "hydra";
serviceConfig.Type = "oneshot";
@ -342,7 +372,7 @@ in
restartTriggers = [ hydraConf ];
serviceConfig =
{ ExecStart =
"@${cfg.package}/bin/hydra-server hydra-server -f -h '${cfg.listenHost}' "
"@${hydra-package}/bin/hydra-server hydra-server -f -h '${cfg.listenHost}' "
+ "-p ${toString cfg.port} --max_spare_servers 5 --max_servers 25 "
+ "--max_requests 100 ${optionalString cfg.debugServer "-d"}";
User = "hydra-www";
@ -355,15 +385,15 @@ in
{ wantedBy = [ "multi-user.target" ];
requires = [ "hydra-init.service" ];
after = [ "hydra-init.service" "network.target" ];
path = [ cfg.package pkgs.nettools pkgs.openssh pkgs.bzip2 config.nix.package ];
path = [ hydra-package pkgs.nettools pkgs.openssh pkgs.bzip2 config.nix.package ];
restartTriggers = [ hydraConf ];
environment = env // {
PGPASSFILE = "${baseDir}/pgpass-queue-runner"; # grrr
IN_SYSTEMD = "1"; # to get log severity levels
};
serviceConfig =
{ ExecStart = "@${cfg.package}/bin/hydra-queue-runner hydra-queue-runner -v";
ExecStopPost = "${cfg.package}/bin/hydra-queue-runner --unlock";
{ ExecStart = "@${hydra-package}/bin/hydra-queue-runner hydra-queue-runner -v";
ExecStopPost = "${hydra-package}/bin/hydra-queue-runner --unlock";
User = "hydra-queue-runner";
Restart = "always";
@ -377,11 +407,11 @@ in
{ wantedBy = [ "multi-user.target" ];
requires = [ "hydra-init.service" ];
after = [ "hydra-init.service" "network.target" ];
path = with pkgs; [ cfg.package nettools jq ];
path = with pkgs; [ hydra-package nettools jq ];
restartTriggers = [ hydraConf ];
environment = env;
serviceConfig =
{ ExecStart = "@${cfg.package}/bin/hydra-evaluator hydra-evaluator";
{ ExecStart = "@${hydra-package}/bin/hydra-evaluator hydra-evaluator";
User = "hydra";
Restart = "always";
WorkingDirectory = baseDir;
@ -393,7 +423,7 @@ in
after = [ "hydra-init.service" ];
environment = env;
serviceConfig =
{ ExecStart = "@${cfg.package}/bin/hydra-update-gc-roots hydra-update-gc-roots";
{ ExecStart = "@${hydra-package}/bin/hydra-update-gc-roots hydra-update-gc-roots";
User = "hydra";
};
startAt = "2,14:15";
@ -404,7 +434,7 @@ in
after = [ "hydra-init.service" ];
environment = env;
serviceConfig =
{ ExecStart = "@${cfg.package}/bin/hydra-send-stats hydra-send-stats";
{ ExecStart = "@${hydra-package}/bin/hydra-send-stats hydra-send-stats";
User = "hydra";
};
};
@ -418,7 +448,7 @@ in
PGPASSFILE = "${baseDir}/pgpass-queue-runner";
};
serviceConfig =
{ ExecStart = "@${cfg.package}/bin/hydra-notify hydra-notify";
{ ExecStart = "@${hydra-package}/bin/hydra-notify hydra-notify";
# FIXME: run this under a less privileged user?
User = "hydra-queue-runner";
Restart = "always";

View File

@ -63,7 +63,7 @@ stdenv.mkDerivation {
meta = {
description = "Brother brscan4 sane backend driver etc files";
homepage = http://www.brother.com;
homepage = "http://www.brother.com";
platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.unfree;
maintainers = with stdenv.lib.maintainers; [ jraygauthier ];

View File

@ -7,6 +7,7 @@ let
fpm = config.services.phpfpm.pools.roundcube;
localDB = cfg.database.host == "localhost";
user = cfg.database.username;
phpWithPspell = pkgs.php.withExtensions (e: [ e.pspell ] ++ pkgs.php.enabledExtensions);
in
{
options.services.roundcube = {
@ -85,6 +86,15 @@ in
'';
};
dicts = mkOption {
type = types.listOf types.package;
default = [];
example = literalExample "with pkgs.aspellDicts; [ en fr de ]";
description = ''
List of aspell dictionnaries for spell checking. If empty, spell checking is disabled.
'';
};
extraConfig = mkOption {
type = types.lines;
default = "";
@ -109,6 +119,11 @@ in
$config['plugins'] = [${concatMapStringsSep "," (p: "'${p}'") cfg.plugins}];
$config['des_key'] = file_get_contents('/var/lib/roundcube/des_key');
$config['mime_types'] = '${pkgs.nginx}/conf/mime.types';
$config['enable_spellcheck'] = ${if cfg.dicts == [] then "false" else "true"};
# by default, spellchecking uses a third-party cloud services
$config['spellcheck_engine'] = 'pspell';
$config['spellcheck_languages'] = array(${lib.concatMapStringsSep ", " (dict: let p = builtins.parseDrvName dict.shortName; in "'${p.name}' => '${dict.fullName}'") cfg.dicts});
${cfg.extraConfig}
'';
@ -172,6 +187,8 @@ in
"pm.max_requests" = 500;
"catch_workers_output" = true;
};
phpPackage = phpWithPspell;
phpEnv.ASPELL_CONF = "dict-dir ${pkgs.aspellWithDicts (_: cfg.dicts)}/lib/aspell";
};
systemd.services.phpfpm-roundcube.after = [ "roundcube-setup.service" ];
@ -199,7 +216,7 @@ in
${psql} <<< 'TRUNCATE TABLE session;'
fi
${pkgs.php}/bin/php ${cfg.package}/bin/update.sh
${phpWithPspell}/bin/php ${cfg.package}/bin/update.sh
'';
serviceConfig = {
Type = "oneshot";

View File

@ -283,7 +283,7 @@ in
trustedBinaryCaches = mkOption {
type = types.listOf types.str;
default = [ ];
example = [ http://hydra.nixos.org/ ];
example = [ "http://hydra.nixos.org/" ];
description = ''
List of binary cache URLs that non-root users can use (in
addition to those specified using

View File

@ -10,7 +10,7 @@ let
# a wrapper that verifies that the configuration is valid
promtoolCheck = what: name: file:
if cfg.checkConfig then
pkgs.runCommand
pkgs.runCommandNoCCLocal
"${name}-${replaceStrings [" "] [""] what}-checked"
{ buildInputs = [ cfg.package ]; } ''
ln -s ${file} $out
@ -19,7 +19,7 @@ let
# Pretty-print JSON to a file
writePrettyJSON = name: x:
pkgs.runCommand name { preferLocalBuild = true; } ''
pkgs.runCommandNoCCLocal name {} ''
echo '${builtins.toJSON x}' | ${pkgs.jq}/bin/jq . > $out
'';

View File

@ -9,7 +9,7 @@ let
cfg = config.services.openafsClient;
cellServDB = pkgs.fetchurl {
url = http://dl.central.org/dl/cellservdb/CellServDB.2018-05-14;
url = "http://dl.central.org/dl/cellservdb/CellServDB.2018-05-14";
sha256 = "1wmjn6mmyy2r8p10nlbdzs4nrqxy8a9pjyrdciy5nmppg4053rk2";
};

View File

@ -52,7 +52,7 @@ in
ip protocol icmp icmp type { destination-unreachable, router-advertisement, time-exceeded, parameter-problem } accept
# allow "ping"
ip6 nexthdr icmp icmpv6 type echo-request accept
ip6 nexthdr icmpv6 icmpv6 type echo-request accept
ip protocol icmp icmp type echo-request accept
# accept SSH connections (required for a server)

View File

@ -130,7 +130,7 @@ in {
config = mkIf cfg.enable {
systemd.services.documize-server = {
description = "Documize Wiki";
documentation = [ https://documize.com/ ];
documentation = [ "https://documize.com/" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {

View File

@ -322,12 +322,21 @@ in {
Please migrate your configuration to config.services.nextcloud.poolSettings.
'')
++ (optional (versionOlder cfg.package.version "18") ''
You're currently deploying an older version of Nextcloud. This may be needed
since Nextcloud doesn't allow major version upgrades across multiple versions (i.e. an
upgrade from 16 is possible to 17, but not to 18).
A legacy Nextcloud install (from before NixOS 20.03) may be installed.
Please deploy this to your server and wait until the migration is finished. After
that you can deploy to the latest Nextcloud version available.
You're currently deploying an older version of Nextcloud. This may be needed
since Nextcloud doesn't allow major version upgrades that skip multiple
versions (i.e. an upgrade from 16 is possible to 17, but not 16 to 18).
It is assumed that Nextcloud will be upgraded from version 16 to 17.
* If this is a fresh install, there will be no upgrade to do now.
* If this server already had Nextcloud installed, first deploy this to your
server, and wait until the upgrade to 17 is finished.
Then, set `services.nextcloud.package` to `pkgs.nextcloud18` to upgrade to
Nextcloud version 18.
'');
services.nextcloud.package = with pkgs;

View File

@ -220,7 +220,7 @@ in
globalRedirect = mkOption {
type = types.nullOr types.str;
default = null;
example = http://newserver.example.org/;
example = "http://newserver.example.org/";
description = ''
If set, all requests for this host are redirected permanently to
the given URL.

View File

@ -4,6 +4,5 @@ with lib;
{
boot.loader.grub.device = mkOverride 0 "nodev";
nesting.children = mkOverride 0 [];
nesting.clone = mkOverride 0 [];
specialisation = mkOverride 0 {};
}

View File

@ -11,21 +11,16 @@ let
# you can provide an easy way to boot the same configuration
# as you use, but with another kernel
# !!! fix this
cloner = inheritParent: list:
map (childConfig:
children = mapAttrs (childName: childConfig:
(import ../../../lib/eval-config.nix {
inherit baseModules;
system = config.nixpkgs.initialSystem;
modules =
(optionals inheritParent modules)
(optionals childConfig.inheritParentConfig modules)
++ [ ./no-clone.nix ]
++ [ childConfig ];
++ [ childConfig.configuration ];
}).config.system.build.toplevel
) list;
children =
cloner false config.nesting.children
++ cloner true config.nesting.clone;
) config.specialisation;
systemBuilder =
let
@ -77,12 +72,9 @@ let
echo -n "$nixosLabel" > $out/nixos-version
echo -n "${config.boot.kernelPackages.stdenv.hostPlatform.system}" > $out/system
mkdir $out/fine-tune
childCount=0
for i in $children; do
childCount=$(( childCount + 1 ))
ln -s $i $out/fine-tune/child-$childCount
done
mkdir $out/specialisation
${concatStringsSep "\n"
(mapAttrsToList (name: path: "ln -s ${path} $out/specialisation/${name}") children)}
mkdir $out/bin
export localeArchive="${config.i18n.glibcLocales}/lib/locale/locale-archive"
@ -112,7 +104,6 @@ let
shell = "${pkgs.bash}/bin/sh";
su = "${pkgs.shadow.su}/bin/su";
inherit children;
kernelParams = config.boot.kernelParams;
installBootLoader =
config.system.build.installBootLoader
@ -143,6 +134,11 @@ let
in
{
imports = [
(mkRemovedOptionModule [ "nesting" "clone" ] "Use `specialisation.«name» = { inheritParentConfig = true; configuration = { ... }; }` instead.")
(mkRemovedOptionModule [ "nesting" "children" ] "Use `specialisation.«name».configuration = { ... }` instead.")
];
options = {
system.build = mkOption {
@ -154,26 +150,35 @@ in
'';
};
nesting.children = mkOption {
default = [];
specialisation = mkOption {
default = {};
example = lib.literalExample "{ fewJobsManyCores.configuration = { nix.buildCores = 0; nix.maxJobs = 1; }; }";
description = ''
Additional configurations to build.
'';
};
Additional configurations to build. If
<literal>inheritParentConfig</literal> is true, the system
will be based on the overall system configuration.
nesting.clone = mkOption {
default = [];
description = ''
Additional configurations to build based on the current
configuration which then has a lower priority.
To switch to a cloned configuration (e.g. <literal>child-1</literal>)
at runtime, run
To switch to a specialised configuration
(e.g. <literal>fewJobsManyCores</literal>) at runtime, run:
<programlisting>
# sudo /run/current-system/fine-tune/child-1/bin/switch-to-configuration test
# sudo /run/current-system/specialisation/fewJobsManyCores/bin/switch-to-configuration test
</programlisting>
'';
type = types.attrsOf (types.submodule (
{ ... }: {
options.inheritParentConfig = mkOption {
type = types.bool;
default = true;
description = "Include the entire system's configuration. Set to false to make a completely differently configured system.";
};
options.configuration = mkOption {
default = {};
description = "Arbitrary NixOS configuration options.";
};
})
);
};
system.boot.loader.id = mkOption {

View File

@ -588,7 +588,7 @@ in
{ boot.loader.grub.splashImage = mkDefault (
if cfg.version == 1 then pkgs.fetchurl {
url = http://www.gnome-look.org/CONTENT/content-files/36909-soft-tux.xpm.gz;
url = "http://www.gnome-look.org/CONTENT/content-files/36909-soft-tux.xpm.gz";
sha256 = "14kqdx2lfqvh40h6fjjzqgff1mwk74dmbjvmqphi6azzra7z8d59";
}
# GRUB 1.97 doesn't support gzipped XPMs.

View File

@ -409,7 +409,7 @@ $conf .= "$extraEntries\n" unless $extraEntriesBeforeNixOS;
# Find all the children of the current default configuration
# Do not search for grand children
my @links = sort (glob "$defaultConfig/fine-tune/*");
my @links = sort (glob "$defaultConfig/specialisation/*");
foreach my $link (@links) {
my $entryName = "";
@ -425,7 +425,8 @@ foreach my $link (@links) {
if ($cfgName) {
$entryName = $cfgName;
} else {
$entryName = "($date - $version)";
my $linkname = basename($link);
$entryName = "($linkname - $date - $version)";
}
addEntry("NixOS - $entryName", $link);
}

View File

@ -69,7 +69,7 @@ addEntry "NixOS - Default" $defaultConfig ""
# Add all generations of the system profile to the menu, in reverse
# (most recent to least recent) order.
for link in $((ls -d $defaultConfig/fine-tune/* ) | sort -n); do
for link in $((ls -d $defaultConfig/specialisation/* ) | sort -n); do
date=$(stat --printf="%y\n" $link | sed 's/\..*//')
addEntry "NixOS - variation" $link ""
done

View File

@ -24,7 +24,7 @@ let cfg = config.system.autoUpgrade; in
channel = mkOption {
type = types.nullOr types.str;
default = null;
example = https://nixos.org/channels/nixos-14.12-small;
example = "https://nixos.org/channels/nixos-14.12-small";
description = ''
The URI of the NixOS channel to use for automatic
upgrades. By default, this is the channel set using

View File

@ -91,52 +91,50 @@ in import ./make-test-python.nix {
security.acme.server = "https://acme-v02.api.letsencrypt.org/dir";
nesting.clone = [
({pkgs, ...}: {
systemd.targets."acme-finished-b.example.com" = {};
systemd.services."acme-b.example.com" = {
wants = [ "acme-finished-b.example.com.target" ];
before = [ "acme-finished-b.example.com.target" ];
after = [ "nginx.service" ];
};
services.nginx.virtualHosts."b.example.com" = {
enableACME = true;
forceSSL = true;
locations."/".root = pkgs.runCommand "docroot" {} ''
mkdir -p "$out"
echo hello world > "$out/index.html"
'';
};
})
({pkgs, config, nodes, lib, ...}: {
security.acme.certs."example.com" = {
domain = "*.example.com";
dnsProvider = "exec";
dnsPropagationCheck = false;
credentialsFile = with pkgs; writeText "wildcard.env" ''
EXEC_PATH=${dnsScript { inherit writeScript bash curl; dnsAddress = nodes.dnsserver.config.networking.primaryIPAddress; }}
'';
user = config.services.nginx.user;
group = config.services.nginx.group;
};
systemd.targets."acme-finished-example.com" = {};
systemd.services."acme-example.com" = {
wants = [ "acme-finished-example.com.target" ];
before = [ "acme-finished-example.com.target" "nginx.service" ];
wantedBy = [ "nginx.service" ];
};
services.nginx.virtualHosts."c.example.com" = {
forceSSL = true;
sslCertificate = config.security.acme.certs."example.com".directory + "/cert.pem";
sslTrustedCertificate = config.security.acme.certs."example.com".directory + "/full.pem";
sslCertificateKey = config.security.acme.certs."example.com".directory + "/key.pem";
locations."/".root = pkgs.runCommand "docroot" {} ''
mkdir -p "$out"
echo hello world > "$out/index.html"
'';
};
})
];
specialisation.second-cert.configuration = {pkgs, ...}: {
systemd.targets."acme-finished-b.example.com" = {};
systemd.services."acme-b.example.com" = {
wants = [ "acme-finished-b.example.com.target" ];
before = [ "acme-finished-b.example.com.target" ];
after = [ "nginx.service" ];
};
services.nginx.virtualHosts."b.example.com" = {
enableACME = true;
forceSSL = true;
locations."/".root = pkgs.runCommand "docroot" {} ''
mkdir -p "$out"
echo hello world > "$out/index.html"
'';
};
};
specialisation.dns-01.configuration = {pkgs, config, nodes, lib, ...}: {
security.acme.certs."example.com" = {
domain = "*.example.com";
dnsProvider = "exec";
dnsPropagationCheck = false;
credentialsFile = with pkgs; writeText "wildcard.env" ''
EXEC_PATH=${dnsScript { inherit writeScript bash curl; dnsAddress = nodes.dnsserver.config.networking.primaryIPAddress; }}
'';
user = config.services.nginx.user;
group = config.services.nginx.group;
};
systemd.targets."acme-finished-example.com" = {};
systemd.services."acme-example.com" = {
wants = [ "acme-finished-example.com.target" ];
before = [ "acme-finished-example.com.target" "nginx.service" ];
wantedBy = [ "nginx.service" ];
};
services.nginx.virtualHosts."c.example.com" = {
forceSSL = true;
sslCertificate = config.security.acme.certs."example.com".directory + "/cert.pem";
sslTrustedCertificate = config.security.acme.certs."example.com".directory + "/full.pem";
sslCertificateKey = config.security.acme.certs."example.com".directory + "/key.pem";
locations."/".root = pkgs.runCommand "docroot" {} ''
mkdir -p "$out"
echo hello world > "$out/index.html"
'';
};
};
};
client = {nodes, lib, ...}: {
@ -196,7 +194,7 @@ in import ./make-test-python.nix {
with subtest("Can add another certificate for nginx service"):
webserver.succeed(
"/run/current-system/fine-tune/child-1/bin/switch-to-configuration test"
"/run/current-system/specialisation/second-cert/bin/switch-to-configuration test"
)
webserver.wait_for_unit("acme-finished-b.example.com.target")
client.succeed(
@ -208,7 +206,7 @@ in import ./make-test-python.nix {
"${switchToNewServer}"
)
webserver.succeed(
"/run/current-system/fine-tune/child-2/bin/switch-to-configuration test"
"/run/current-system/specialisation/dns-01/bin/switch-to-configuration test"
)
webserver.wait_for_unit("acme-finished-example.com.target")
client.succeed(

View File

@ -202,7 +202,7 @@ in
nat.standalone = handleTest ./nat.nix { withFirewall = false; };
ndppd = handleTest ./ndppd.nix {};
neo4j = handleTest ./neo4j.nix {};
nesting = handleTest ./nesting.nix {};
specialisation = handleTest ./specialisation.nix {};
netdata = handleTest ./netdata.nix {};
networking.networkd = handleTest ./networking.nix { networkd = true; };
networking.scripted = handleTest ./networking.nix { networkd = false; };

View File

@ -20,35 +20,33 @@ import ./make-test-python.nix ({ pkgs, ... }: {
}
'';
nesting.clone = [
{
services.caddy.config = lib.mkForce ''
http://localhost {
gzip
specialisation.etag.configuration = {
services.caddy.config = lib.mkForce ''
http://localhost {
gzip
root ${
pkgs.runCommand "testdir2" {} ''
mkdir "$out"
echo changed > "$out/example.html"
''
}
root ${
pkgs.runCommand "testdir2" {} ''
mkdir "$out"
echo changed > "$out/example.html"
''
}
'';
}
}
'';
};
{
services.caddy.config = ''
http://localhost:8080 {
}
'';
}
];
specialisation.config-reload.configuration = {
services.caddy.config = ''
http://localhost:8080 {
}
'';
};
};
};
testScript = { nodes, ... }: let
etagSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-1";
justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-2";
etagSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/etag";
justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/config-reload";
in ''
url = "http://localhost/example.html"
webserver.wait_for_unit("caddy")
@ -77,7 +75,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
assert old_etag != new_etag, "Old ETag {} is the same as {}".format(
old_etag, new_etag
)
with subtest("config is reloaded on nixos-rebuild switch"):
webserver.succeed(
"${justReloadSystem}/bin/switch-to-configuration test >&2"

View File

@ -65,7 +65,7 @@ let
# partitions and filesystems.
testScriptFun = { bootLoader, createPartitions, grubVersion, grubDevice, grubUseEfi
, grubIdentifier, preBootCommands, extraConfig
, testCloneConfig
, testSpecialisationConfig
}:
let iface = if grubVersion == 1 then "ide" else "virtio";
isEfi = bootLoader == "systemd-boot" || (bootLoader == "grub" && grubUseEfi);
@ -220,7 +220,7 @@ let
# Tests for validating clone configuration entries in grub menu
''
+ optionalString testCloneConfig ''
+ optionalString testSpecialisationConfig ''
# Reboot Machine
machine = create_machine_named("clone-default-config")
${preBootCommands}
@ -262,7 +262,7 @@ let
, bootLoader ? "grub" # either "grub" or "systemd-boot"
, grubVersion ? 2, grubDevice ? "/dev/vda", grubIdentifier ? "uuid", grubUseEfi ? false
, enableOCR ? false, meta ? {}
, testCloneConfig ? false
, testSpecialisationConfig ? false
}:
makeTest {
inherit enableOCR;
@ -337,7 +337,7 @@ let
testScript = testScriptFun {
inherit bootLoader createPartitions preBootCommands
grubVersion grubDevice grubIdentifier grubUseEfi extraConfig
testCloneConfig;
testSpecialisationConfig;
};
};
@ -411,11 +411,11 @@ let
grubUseEfi = true;
};
clone-test-extraconfig = {
specialisation-test-extraconfig = {
extraConfig = ''
environment.systemPackages = [ pkgs.grub2 ];
boot.loader.grub.configurationName = "Home";
nesting.clone = [ {
specialisation.work.configuration = {
boot.loader.grub.configurationName = lib.mkForce "Work";
environment.etc = {
@ -424,9 +424,9 @@ let
gitproxy = none for work.com
";
};
} ];
};
'';
testCloneConfig = true;
testSpecialisationConfig = true;
};
@ -440,7 +440,7 @@ in {
simple = makeInstallerTest "simple" simple-test-config;
# Test cloned configurations with the simple grub configuration
simpleClone = makeInstallerTest "simpleClone" (simple-test-config // clone-test-extraconfig);
simpleSpecialised = makeInstallerTest "simpleSpecialised" (simple-test-config // specialisation-test-extraconfig);
# Simple GPT/UEFI configuration using systemd-boot with 3 partitions: ESP, swap & root filesystem
simpleUefiSystemdBoot = makeInstallerTest "simpleUefiSystemdBoot" {
@ -467,7 +467,7 @@ in {
simpleUefiGrub = makeInstallerTest "simpleUefiGrub" simple-uefi-grub-config;
# Test cloned configurations with the uefi grub configuration
simpleUefiGrubClone = makeInstallerTest "simpleUefiGrubClone" (simple-uefi-grub-config // clone-test-extraconfig);
simpleUefiGrubSpecialisation = makeInstallerTest "simpleUefiGrubSpecialisation" (simple-uefi-grub-config // specialisation-test-extraconfig);
# Same as the previous, but now with a separate /boot partition.
separateBoot = makeInstallerTest "separateBoot" {

View File

@ -5,7 +5,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
# License: http://creativecommons.org/licenses/by-sa/4.0/
name = "Blue_Wave_Theory-Skyhawk_Beach.mp3";
url = https://freemusicarchive.org/file/music/ccCommunity/Blue_Wave_Theory/Surf_Music_Month_Challenge/Blue_Wave_Theory_-_04_-_Skyhawk_Beach.mp3;
url = "https://freemusicarchive.org/file/music/ccCommunity/Blue_Wave_Theory/Surf_Music_Month_Challenge/Blue_Wave_Theory_-_04_-_Skyhawk_Beach.mp3";
sha256 = "0xw417bxkx4gqqy139bb21yldi37xx8xjfxrwaqa0gyw19dl6mgp";
};

View File

@ -1,44 +0,0 @@
import ./make-test-python.nix {
name = "nesting";
nodes = {
clone = { pkgs, ... }: {
environment.systemPackages = [ pkgs.cowsay ];
nesting.clone = [
({ pkgs, ... }: {
environment.systemPackages = [ pkgs.hello ];
})
];
};
children = { pkgs, ... }: {
environment.systemPackages = [ pkgs.cowsay ];
nesting.children = [
({ pkgs, ... }: {
environment.systemPackages = [ pkgs.hello ];
})
];
};
};
testScript = ''
clone.wait_for_unit("default.target")
clone.succeed("cowsay hey")
clone.fail("hello")
with subtest("Nested clones do inherit from parent"):
clone.succeed(
"/run/current-system/fine-tune/child-1/bin/switch-to-configuration test"
)
clone.succeed("cowsay hey")
clone.succeed("hello")
children.wait_for_unit("default.target")
children.succeed("cowsay hey")
children.fail("hello")
with subtest("Nested children do not inherit from parent"):
children.succeed(
"/run/current-system/fine-tune/child-1/bin/switch-to-configuration test"
)
children.fail("cowsay hey")
children.succeed("hello")
'';
}

View File

@ -19,7 +19,7 @@ import ./make-test-python.nix {
'';
};
nesting.clone = lib.singleton {
specialisation.pass-checks.configuration = {
services.nginx.virtualHosts.server = {
root = lib.mkForce (pkgs.runCommandLocal "testdir2" {} ''
mkdir "$out"
@ -70,7 +70,7 @@ import ./make-test-python.nix {
testScript = { nodes, ... }: let
inherit (nodes.server.config.system.build) toplevel;
newSystem = "${toplevel}/fine-tune/child-1";
newSystem = "${toplevel}/specialisation/pass-checks";
in ''
start_all()

View File

@ -42,38 +42,35 @@ import ./make-test-python.nix ({ pkgs, ... }: {
services.nginx.enableReload = true;
nesting.clone = [
{
services.nginx.virtualHosts.localhost = {
root = lib.mkForce (pkgs.runCommand "testdir2" {} ''
mkdir "$out"
echo content changed > "$out/index.html"
'');
};
}
specialisation.etagSystem.configuration = {
services.nginx.virtualHosts.localhost = {
root = lib.mkForce (pkgs.runCommand "testdir2" {} ''
mkdir "$out"
echo content changed > "$out/index.html"
'');
};
};
{
services.nginx.virtualHosts."1.my.test".listen = [ { addr = "127.0.0.1"; port = 8080; }];
}
specialisation.justReloadSystem.configuration = {
services.nginx.virtualHosts."1.my.test".listen = [ { addr = "127.0.0.1"; port = 8080; }];
};
{
services.nginx.package = pkgs.nginxUnstable;
}
specialisation.reloadRestartSystem.configuration = {
services.nginx.package = pkgs.nginxUnstable;
};
{
services.nginx.package = pkgs.nginxUnstable;
services.nginx.virtualHosts."!@$$(#*%".locations."~@#*$*!)".proxyPass = ";;;";
}
];
specialisation.reloadWithErrorsSystem.configuration = {
services.nginx.package = pkgs.nginxUnstable;
services.nginx.virtualHosts."!@$$(#*%".locations."~@#*$*!)".proxyPass = ";;;";
};
};
};
testScript = { nodes, ... }: let
etagSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-1";
justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-2";
reloadRestartSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-3";
reloadWithErrorsSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-4";
etagSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/etagSystem";
justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/justReloadSystem";
reloadRestartSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/reloadRestartSystem";
reloadWithErrorsSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/reloadWithErrorsSystem";
in ''
url = "http://localhost/index.html"

View File

@ -15,13 +15,13 @@ let
services.redmine.database.type = "mysql2";
services.redmine.plugins = {
redmine_env_auth = pkgs.fetchurl {
url = https://github.com/Intera/redmine_env_auth/archive/0.7.zip;
url = "https://github.com/Intera/redmine_env_auth/archive/0.7.zip";
sha256 = "1xb8lyarc7mpi86yflnlgyllh9hfwb9z304f19dx409gqpia99sc";
};
};
services.redmine.themes = {
dkuk-redmine_alex_skin = pkgs.fetchurl {
url = https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip;
url = "https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip";
sha256 = "0hrin9lzyi50k4w2bd2b30vrf1i4fi1c0gyas5801wn8i7kpm9yl";
};
};
@ -43,13 +43,13 @@ let
services.redmine.database.type = "postgresql";
services.redmine.plugins = {
redmine_env_auth = pkgs.fetchurl {
url = https://github.com/Intera/redmine_env_auth/archive/0.7.zip;
url = "https://github.com/Intera/redmine_env_auth/archive/0.7.zip";
sha256 = "1xb8lyarc7mpi86yflnlgyllh9hfwb9z304f19dx409gqpia99sc";
};
};
services.redmine.themes = {
dkuk-redmine_alex_skin = pkgs.fetchurl {
url = https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip;
url = "https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip";
sha256 = "0hrin9lzyi50k4w2bd2b30vrf1i4fi1c0gyas5801wn8i7kpm9yl";
};
};

View File

@ -12,6 +12,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
database.password = "not production";
package = pkgs.roundcube.withPlugins (plugins: [ plugins.persistent_login ]);
plugins = [ "persistent_login" ];
dicts = with pkgs.aspellDicts; [ en fr de ];
};
services.nginx.virtualHosts.roundcube = {
forceSSL = false;

View File

@ -0,0 +1,43 @@
import ./make-test-python.nix {
name = "specialisation";
nodes = {
inheritconf = { pkgs, ... }: {
environment.systemPackages = [ pkgs.cowsay ];
specialisation.inheritconf.configuration = { pkgs, ... }: {
environment.systemPackages = [ pkgs.hello ];
};
};
noinheritconf = { pkgs, ... }: {
environment.systemPackages = [ pkgs.cowsay ];
specialisation.noinheritconf = {
inheritParentConfig = false;
configuration = { pkgs, ... }: {
environment.systemPackages = [ pkgs.hello ];
};
};
};
};
testScript = ''
inheritconf.wait_for_unit("default.target")
inheritconf.succeed("cowsay hey")
inheritconf.fail("hello")
with subtest("Nested clones do inherit from parent"):
inheritconf.succeed(
"/run/current-system/specialisation/inheritconf/bin/switch-to-configuration test"
)
inheritconf.succeed("cowsay hey")
inheritconf.succeed("hello")
noinheritconf.wait_for_unit("default.target")
noinheritconf.succeed("cowsay hey")
noinheritconf.fail("hello")
with subtest("Nested children do not inherit from parent"):
noinheritconf.succeed(
"/run/current-system/specialisation/noinheritconf/bin/switch-to-configuration test"
)
noinheritconf.fail("cowsay hey")
noinheritconf.succeed("hello")
'';
}

View File

@ -3,7 +3,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
let
stick = pkgs.fetchurl {
url = http://nixos.org/~eelco/nix/udisks-test.img.xz;
url = "http://nixos.org/~eelco/nix/udisks-test.img.xz";
sha256 = "0was1xgjkjad91nipzclaz5biv3m4b2nk029ga6nk7iklwi19l8b";
};

View File

@ -64,7 +64,7 @@ rustPlatform.buildRustPackage rec {
meta = with stdenv.lib; {
description = "Checks whether the contrast between two colors meet the WCAG requirements";
homepage = https://gitlab.gnome.org/World/design/contrast;
homepage = "https://gitlab.gnome.org/World/design/contrast";
license = licenses.gpl3;
maintainers = with maintainers; [ jtojnar ];
};

View File

@ -45,7 +45,7 @@ stdenv.mkDerivation {
] ++ lib.optional speechSupport speechd;
meta = {
homepage = http://www.inference.org.uk/dasher/;
homepage = "http://www.inference.org.uk/dasher/";
description = "Information-efficient text-entry interface, driven by natural continuous pointing gestures";
license = lib.licenses.gpl2;
maintainers = [ lib.maintainers.Profpatsch ];

View File

@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
The features can be activated and configured through the Universal Access
panel of the GNOME Control Center.
'';
homepage = https://wiki.gnome.org/Projects/Mousetweaks;
homepage = "https://wiki.gnome.org/Projects/Mousetweaks";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.johnazoidberg ];

View File

@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
Mono and stereo to B-format panning, horizontal rotator, square, hexagon and cube decoders.
'';
version = version;
homepage = http://kokkinizita.linuxaudio.org/linuxaudio/ladspa/index.html;
homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/ladspa/index.html";
license = stdenv.lib.licenses.gpl2Plus;
maintainers = [ stdenv.lib.maintainers.magnetophon ];
platforms = stdenv.lib.platforms.linux;

View File

@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
This should make this plugin a good candidate for use in systems that allow automation of plugin control ports, such as Ardour, or for stage use.
'';
version = version;
homepage = http://kokkinizita.linuxaudio.org/linuxaudio/ladspa/index.html;
homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/ladspa/index.html";
license = stdenv.lib.licenses.gpl2Plus;
maintainers = [ stdenv.lib.maintainers.magnetophon ];
platforms = stdenv.lib.platforms.linux;

View File

@ -18,11 +18,11 @@ in stdenv.mkDerivation {
patches = [
(fetchpatch {
url = https://repo.or.cz/a2jmidid.git/patch/24e3b8e543256ae8fdfb4b75eb9fd775f07c46e2;
url = "https://repo.or.cz/a2jmidid.git/patch/24e3b8e543256ae8fdfb4b75eb9fd775f07c46e2";
sha256 = "1nxrvnhxlgqc9wbxnp1gnpw4wjyzxvymwcg1gh2nqzmssgfykfkc";
})
(fetchpatch {
url = https://repo.or.cz/a2jmidid.git/patch/7f82da7eb2f540a94db23331be98d42a58ddc269;
url = "https://repo.or.cz/a2jmidid.git/patch/7f82da7eb2f540a94db23331be98d42a58ddc269";
sha256 = "1nab9zf0agbcj5pvhl90pz0cx1d204d4janqflc5ymjhy8jyrsdv";
})
];

View File

@ -55,7 +55,7 @@ stdenv.mkDerivation {
meta = with stdenv.lib; {
description = "ReplayGain for AAC files";
homepage = https://aacgain.altosdesign.com;
homepage = "https://aacgain.altosdesign.com";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.robbinch ];

View File

@ -46,7 +46,7 @@ in
'';
meta = with stdenv.lib; {
homepage = http://abcde.einval.com/wiki/;
homepage = "http://abcde.einval.com/wiki/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ gebner ];
description = "Command-line audio CD ripper";

View File

@ -83,7 +83,7 @@ multiStdenv.mkDerivation {
protocol to correctly embed the plugin editor into the host
window.
'';
homepage = https://github.com/phantom-code/airwave;
homepage = "https://github.com/phantom-code/airwave";
license = licenses.mit;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ michalrus ];

View File

@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
You can also run aj-snapshot in daemon mode if you want to have your connections continually restored.
'';
homepage = http://aj-snapshot.sourceforge.net/;
homepage = "http://aj-snapshot.sourceforge.net/";
license = licenses.gpl2;
maintainers = [ maintainers.mrVanDalo ];
platforms = platforms.all;

View File

@ -14,7 +14,7 @@ mkDerivation rec {
# master has the Qt5 version as of April 2018 but a formal release has not
# yet been made so change this back to the proper upstream when such a
# release is out
url = git://anongit.kde.org/amarok.git;
url = "git://anongit.kde.org/amarok.git";
# url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
rev = "457fbda25a85a102bfda92aa7137e7ef5e4c8b00";
sha256 = "1ig2mg8pqany6m2zplkrvldcv4ibxwsypnyv5igm7nz7ax82cd5j";

View File

@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
Please consider supporting the ardour project financially:
https://community.ardour.org/node/8288
'';
homepage = http://ardour.org/;
homepage = "http://ardour.org/";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.goibhniu maintainers.fps ];

View File

@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
meta = {
description = "GTK client for MPD (Music player daemon)";
homepage = http://ario-player.sourceforge.net/;
homepage = "http://ario-player.sourceforge.net/";
license = stdenv.lib.licenses.gpl2Plus;
maintainers = [ stdenv.lib.maintainers.garrison ];
platforms = stdenv.lib.platforms.all;

View File

@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
buildInputs = [ cairomm cmake libjack2 libpthreadstubs libXdmcp libxshmfence libsndfile lv2 ntk ];
meta = with stdenv.lib; {
homepage = http://openavproductions.com/artyfx/;
homepage = "http://openavproductions.com/artyfx/";
description = "A LV2 plugin bundle of artistic realtime effects";
license = licenses.gpl2;
maintainers = [ maintainers.magnetophon ];

View File

@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
meta = {
description = "A graphical Audio CD ripper and encoder for Linux";
homepage = http://littlesvr.ca/asunder/index.php;
homepage = "http://littlesvr.ca/asunder/index.php";
license = licenses.gpl2;
maintainers = with maintainers; [ mudri ];
platforms = platforms.linux;

View File

@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Audio player";
homepage = https://audacious-media-player.org/;
homepage = "https://audacious-media-player.org/";
maintainers = with maintainers; [ eelco ramkromberg ];
platforms = with platforms; linux;
license = with licenses; [

View File

@ -81,7 +81,7 @@ mkDerivation {
meta = with lib; {
description = "Audio player";
homepage = https://audacious-media-player.org/;
homepage = "https://audacious-media-player.org/";
maintainers = with maintainers; [ ttuegel ];
platforms = with platforms; linux;
license = with licenses; [

View File

@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Sound editor with graphical UI";
homepage = http://audacityteam.org/;
homepage = "http://audacityteam.org/";
license = licenses.gpl2Plus;
platforms = intersectLists platforms.linux platforms.x86; # fails on ARM
maintainers = with maintainers; [ the-kenny ];

View File

@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
automatically record your Skype calls. It supports several audio (output)
formats such as OGG audio, Flac, MP3 and WAV.
'';
homepage = https://launchpad.net/~audio-recorder;
homepage = "https://launchpad.net/~audio-recorder";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = [ maintainers.msteen ];

View File

@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
Aumix adjusts an audio mixer from X, the console, a terminal,
the command line or a script.
'';
homepage = http://www.jpj.net/~trevor/aumix.html;
homepage = "http://www.jpj.net/~trevor/aumix.html";
license = stdenv.lib.licenses.gpl2Plus;
maintainers = [ ];

View File

@ -88,7 +88,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
homepage = http://www.axoloti.com;
homepage = "http://www.axoloti.com";
description = ''
Sketching embedded digital audio algorithms.

View File

@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
phones. With dfu-util you are able to download firmware to your device or
upload firmware from it.
'';
homepage = http://dfu-util.sourceforge.net;
homepage = "http://dfu-util.sourceforge.net";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = [ ];

View File

@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
homepage = http://www.libusb.info;
homepage = "http://www.libusb.info";
description = "User-space USB library";
platforms = platforms.unix;
license = licenses.lgpl21;

View File

@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
displays, and continuous capture tools for hunting down and studying
elusive signal characteristics.
'';
homepage = http://www.baudline.com/;
homepage = "http://www.baudline.com/";
# See http://www.baudline.com/faq.html#licensing_terms.
# (Do NOT (re)distribute on hydra.)
license = licenses.unfree;

View File

@ -14,13 +14,13 @@ stdenv.mkDerivation rec {
patches = [
(fetchurl {
url = https://gitweb.gentoo.org/repo/gentoo.git/plain/media-sound/bitmeter/files/bitmeter-1.2-fix-build-system.patch;
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-sound/bitmeter/files/bitmeter-1.2-fix-build-system.patch";
sha256 = "021mz6933iw7mpk6b9cbjr8naj6smbq1hwqjszlyx72qbwrrid7k";
})
];
meta = with stdenv.lib; {
homepage = http://devel.tlrmx.org/audio/bitmeter/;
homepage = "http://devel.tlrmx.org/audio/bitmeter/";
description = "Also known as jack bitscope. Useful to detect denormals";
license = licenses.gpl2;
maintainers = [ maintainers.magnetophon ];

View File

@ -90,7 +90,7 @@ stdenv.mkDerivation rec {
production, performance and DJing, with a focus on flexible
editing tools and a super-fast workflow.
'';
homepage = https://www.bitwig.com/;
homepage = "https://www.bitwig.com/";
license = licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ michalrus mrVanDalo ];

View File

@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "A range of synthesiser, electric piano and organ emulations";
homepage = http://bristol.sourceforge.net;
homepage = "http://bristol.sourceforge.net";
license = licenses.gpl3;
platforms = ["x86_64-linux" "i686-linux"];
maintainers = [ maintainers.goibhniu ];

View File

@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "A audio/video loudness scanner implementing ITU-R BS.1770";
license = licenses.gpl2Plus;
homepage = http://bs1770gain.sourceforge.net/;
homepage = "http://bs1770gain.sourceforge.net/";
platforms = platforms.all;
};
}

View File

@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
installFlags = [ "PREFIX=$(out)" ];
meta = with stdenv.lib; {
homepage = https://github.com/sjaehn/BSEQuencer;
homepage = "https://github.com/sjaehn/BSEQuencer";
description = "Multi channel MIDI step sequencer LV2 plugin";
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;

View File

@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
installFlags = [ "PREFIX=$(out)" ];
meta = with stdenv.lib; {
homepage = https://github.com/sjaehn/BShapr;
homepage = "https://github.com/sjaehn/BShapr";
description = "Beat / envelope shaper LV2 plugin";
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "BSlizr";
version = "1.2.4";
version = "1.2.6";
src = fetchFromGitHub {
owner = "sjaehn";
repo = pname;
rev = "${version}";
sha256 = "0gyczxhd1jch7lwz3y1nrbpc0dycw9cc5i144rpif6b9gd2y1h1j";
sha256 = "1l0znwvvqd2s24c652q54pkizlh86mvmr8h0qqp9xma0i575fcrh";
};
nativeBuildInputs = [ pkgconfig ];
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
installFlags = [ "PREFIX=$(out)" ];
meta = with stdenv.lib; {
homepage = https://github.com/sjaehn/BSlizr;
homepage = "https://github.com/sjaehn/BSlizr";
description = "Sequenced audio slicing effect LV2 plugin (step sequencer effect)";
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;

View File

@ -91,7 +91,7 @@ mkDerivation rec {
'') scriptAndSource;
meta = {
homepage = https://github.com/falkTX/Cadence/;
homepage = "https://github.com/falkTX/Cadence/";
description = "Collection of tools useful for audio production";
license = stdenv.lib.licenses.gpl2Plus;
maintainers = with stdenv.lib.maintainers; [ genesis worldofpeace ];

View File

@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
];
meta = with stdenv.lib; {
homepage = http://calf-studio-gear.org;
homepage = "http://calf-studio-gear.org";
description = "A set of high quality open source audio plugins for musicians";
license = licenses.lgpl2;
maintainers = [ maintainers.goibhniu ];

View File

@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
considerations are latency-free realtime operation, modesty of
resource demands and meaningful control interfaces.
'';
homepage = http://www.quitte.de/dsp/caps.html;
homepage = "http://www.quitte.de/dsp/caps.html";
license = stdenv.lib.licenses.gpl3;
maintainers = [ stdenv.lib.maintainers.astsmtl ];
platforms = stdenv.lib.platforms.linux;

View File

@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
homepage = http://kxstudio.sf.net/carla;
homepage = "http://kxstudio.sf.net/carla";
description = "An audio plugin host";
longDescription = ''
It currently supports LADSPA (including LRDF), DSSI, LV2, VST2/3

View File

@ -31,7 +31,7 @@ stdenv.mkDerivation {
'';
meta = with stdenv.lib; {
homepage = http://caudec.net/;
homepage = "http://caudec.net/";
description = "A multiprocess audio converter that supports many formats (FLAC, MP3, Ogg Vorbis, Windows codecs and many more)";
license = licenses.gpl3;
platforms = platforms.linux ++ platforms.darwin;

View File

@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Console-based Audio Visualizer for Alsa";
homepage = https://github.com/karlstav/cava;
homepage = "https://github.com/karlstav/cava";
license = licenses.mit;
maintainers = with maintainers; [ offline mirrexagon ];
platforms = platforms.linux;

View File

@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional stdenv.isDarwin IOKit;
meta = with stdenv.lib; {
homepage = http://linukz.org/cd-discid.shtml;
homepage = "http://linukz.org/cd-discid.shtml";
license = licenses.gpl2Plus;
maintainers = [ maintainers.rycee ];
platforms = platforms.unix;

View File

@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
homepage = https://xiph.org/paranoia;
homepage = "https://xiph.org/paranoia";
description = "A tool and library for reading digital audio from CDs";
license = with licenses; [ gpl2Plus lgpl21Plus ];
platforms = platforms.unix;

View File

@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Programming language for real-time sound synthesis and music creation";
homepage = http://chuck.cs.princeton.edu;
homepage = "http://chuck.cs.princeton.edu";
license = licenses.gpl2;
platforms = platforms.unix;
maintainers = with maintainers; [ ftrvxmtrx ];

View File

@ -91,7 +91,7 @@ let
'';
meta = with stdenv.lib; {
homepage = http://www.clementine-player.org;
homepage = "http://www.clementine-player.org";
description = "A multiplatform music player";
license = licenses.gpl3Plus;
platforms = platforms.linux;
@ -130,7 +130,7 @@ let
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = http://www.clementine-player.org;
homepage = "http://www.clementine-player.org";
description = "Spotify integration for Clementine";
# The blob itself is Apache-licensed, although libspotify is unfree.
license = licenses.asl20;

View File

@ -23,7 +23,7 @@ stdenv.mkDerivation {
meta = with stdenv.lib; {
description = "An MPD client built on top of rofi";
homepage = https://github.com/carnager/clerk;
homepage = "https://github.com/carnager/clerk";
license = licenses.mit;
maintainers = with maintainers; [ anderspapitto ];
};

View File

@ -128,7 +128,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Small, fast and powerful console music player for Linux and *BSD";
homepage = https://cmus.github.io/;
homepage = "https://cmus.github.io/";
license = licenses.gpl2;
maintainers = [ maintainers.oxij ];
platforms = platforms.linux ++ platforms.darwin;

View File

@ -28,7 +28,7 @@ stdenv.mkDerivation {
+ run `cmusfm init` to generate configuration file under ~/.config/cmus/cmusfm.conf
+ Inside cmus run `:set status_display_program=cmusfm` to set up cmusfm
'';
homepage = https://github.com/Arkq/cmusfm/;
homepage = "https://github.com/Arkq/cmusfm/";
maintainers = with stdenv.lib.maintainers; [ CharlesHD ];
license = licenses.gpl3Plus;
platforms = platforms.linux ++ platforms.darwin;

View File

@ -75,7 +75,7 @@ python3Packages.buildPythonApplication rec {
meta = with stdenv.lib; {
description = "A modern audio book player for Linux using GTK 3";
homepage = https://cozy.geigi.de/;
homepage = "https://cozy.geigi.de/";
maintainers = [ maintainers.makefu ];
license = licenses.gpl3;
};

View File

@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
'';
meta = {
homepage = http://bach.dynet.com/crip/;
homepage = "http://bach.dynet.com/crip/";
description = "Terminal-based ripper/encoder/tagger tool for creating Ogg Vorbis/FLAC files";
license = stdenv.lib.licenses.gpl1;
platforms = stdenv.lib.platforms.linux;

View File

@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
postInstall = "rm $out/lib/ladspa/celllm_3890.*";
meta = with stdenv.lib; {
homepage = https://sourceforge.net/projects/csa/;
homepage = "https://sourceforge.net/projects/csa/";
description = "A group of LADSPA Audio plugins for FM broadcast and more";
longDescription = ''
CSA means : Contrôle Signal Audio.

View File

@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "CsoundQt is a frontend for Csound with editor, integrated help, widgets and other features.";
homepage = https://csoundqt.github.io/;
homepage = "https://csoundqt.github.io/";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ hlolli ];

View File

@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Sound design, audio synthesis, and signal processing system, providing facilities for music composition and performance on all major operating systems and platforms";
homepage = http://www.csounds.com/;
homepage = "http://www.csounds.com/";
license = licenses.gpl2;
maintainers = [maintainers.marcweber];
platforms = platforms.linux;

View File

@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Plug-in that adds GTK 3 header bar to the DeaDBeeF music player";
homepage = https://github.com/saivert/ddb_misc_headerbar_GTK3;
homepage = "https://github.com/saivert/ddb_misc_headerbar_GTK3";
license = licenses.gpl2Plus;
maintainers = [ maintainers.jtojnar ];
platforms = platforms.linux;

View File

@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
broken = true; # crashes DeaDBeeF and is abandoned (https://bitbucket.org/dsimbiriatin/deadbeef-infobar/issues/38/infobar-causes-deadbeef-180-to-crash)
description = "DeaDBeeF Infobar Plugin";
homepage = https://bitbucket.org/dsimbiriatin/deadbeef-infobar;
homepage = "https://bitbucket.org/dsimbiriatin/deadbeef-infobar";
license = licenses.gpl2Plus;
maintainers = [ maintainers.jtojnar ];
platforms = platforms.linux;

View File

@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "MPRISv2 plugin for the DeaDBeeF music player";
homepage = https://github.com/Serranya/deadbeef-mpris2-plugin/;
homepage = "https://github.com/Serranya/deadbeef-mpris2-plugin/";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.abbradar ];

View File

@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Music notation and composition software used with lilypond";
homepage = http://denemo.org;
homepage = "http://denemo.org";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = [ maintainers.olynch ];

View File

@ -59,7 +59,7 @@ in stdenv.mkDerivation rec {
there are basic functionalities to align the signals in time and
amplitude, this software does not aim to be an audio editor.
'';
homepage = http://gillesdegottex.github.io/dfasma/;
homepage = "http://gillesdegottex.github.io/dfasma/";
license = [ licenses.gpl3Plus reaperFork.meta.license ];
platforms = platforms.linux;
};

View File

@ -21,7 +21,7 @@ stdenv.mkDerivation {
meta = with stdenv.lib; {
description = "An unimpressive thingie for playing bits of samples with some level of accuracy";
homepage = https://github.com/tidalcycles/Dirt;
homepage = "https://github.com/tidalcycles/Dirt";
license = licenses.gpl3;
maintainers = with maintainers; [ anderspapitto ];
platforms = with platforms; linux;

View File

@ -40,7 +40,7 @@ in stdenv.mkDerivation rec {
makeFlags = [ "PREFIX=$(out)" ];
meta = with stdenv.lib; {
homepage = http://distrho.sourceforge.net;
homepage = "http://distrho.sourceforge.net";
description = "A collection of cross-platform audio effects and plugins";
longDescription = ''
Includes:

View File

@ -23,7 +23,7 @@ python3Packages.buildPythonApplication rec {
meta = with stdenv.lib; {
description = "Compute the DR14 of a given audio file according to the procedure described by the Pleasurize Music Foundation";
license = licenses.gpl3Plus;
homepage = http://dr14tmeter.sourceforge.net/;
homepage = "http://dr14tmeter.sourceforge.net/";
maintainers = [ maintainers.adisbladis ];
};
}

View File

@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
homepage = https://github.com/michaelwillis/dragonfly-reverb;
homepage = "https://github.com/michaelwillis/dragonfly-reverb";
description = "A hall-style reverb based on freeverb3 algorithms";
maintainers = [ maintainers.magnetophon ];
license = licenses.gpl3;

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