Merge branch 'master' into staging-next
This commit is contained in:
commit
a04625379a
@ -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 {
|
||||
|
@ -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 = {
|
||||
|
@ -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>
|
||||
|
@ -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 -> 9.2.0</para>
|
||||
<para>glibc: 2.27 -> 2.30</para>
|
||||
<para>linux: 4.19 -> 5.4</para>
|
||||
<para>mesa: 19.1.5 -> 19.3.3</para>
|
||||
<para>openssl: 1.0.2u -> 1.1.1d</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Desktop version changes:</para>
|
||||
<para>plasma5: 5.16.5 -> 5.17.5</para>
|
||||
<para>kdeApplications: 19.08.2 -> 19.12.3</para>
|
||||
<para>gnome3: 3.32 -> 3.34</para>
|
||||
<para>pantheon: 5.0 -> 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 >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>
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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 ];
|
||||
|
@ -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 = ''
|
||||
|
@ -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";
|
||||
}
|
||||
|
@ -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.";
|
||||
};
|
||||
|
||||
|
@ -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 ];
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -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";
|
||||
|
@ -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 ];
|
||||
|
@ -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";
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
'';
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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 = {
|
||||
|
@ -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;
|
||||
|
@ -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.
|
||||
|
@ -4,6 +4,5 @@ with lib;
|
||||
|
||||
{
|
||||
boot.loader.grub.device = mkOverride 0 "nodev";
|
||||
nesting.children = mkOverride 0 [];
|
||||
nesting.clone = mkOverride 0 [];
|
||||
specialisation = mkOverride 0 {};
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -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.
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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(
|
||||
|
@ -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; };
|
||||
|
@ -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"
|
||||
|
@ -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" {
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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")
|
||||
'';
|
||||
}
|
@ -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()
|
||||
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
};
|
||||
|
@ -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;
|
||||
|
43
nixos/tests/specialisation.nix
Normal file
43
nixos/tests/specialisation.nix
Normal 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")
|
||||
'';
|
||||
}
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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 ];
|
||||
};
|
||||
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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";
|
||||
})
|
||||
];
|
||||
|
@ -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 ];
|
||||
|
@ -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";
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
|
@ -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";
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
|
@ -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; [
|
||||
|
@ -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; [
|
||||
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
|
@ -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 = [ ];
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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 = [ ];
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
|
@ -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 ];
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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.
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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:
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user