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 = {
|
amazonsl = {
|
||||||
fullName = "Amazon Software License";
|
fullName = "Amazon Software License";
|
||||||
url = http://aws.amazon.com/asl/;
|
url = "http://aws.amazon.com/asl/";
|
||||||
free = false;
|
free = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
amd = {
|
amd = {
|
||||||
fullName = "AMD License Agreement";
|
fullName = "AMD License Agreement";
|
||||||
url = http://developer.amd.com/amd-license-agreement/;
|
url = "http://developer.amd.com/amd-license-agreement/";
|
||||||
free = false;
|
free = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
|
|
||||||
arphicpl = {
|
arphicpl = {
|
||||||
fullName = "Arphic Public License";
|
fullName = "Arphic Public License";
|
||||||
url = https://www.freedesktop.org/wiki/Arphic_Public_License/;
|
url = "https://www.freedesktop.org/wiki/Arphic_Public_License/";
|
||||||
};
|
};
|
||||||
|
|
||||||
artistic1 = spdx {
|
artistic1 = spdx {
|
||||||
|
@ -107,7 +107,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
|
|
||||||
bsl11 = {
|
bsl11 = {
|
||||||
fullName = "Business Source License 1.1";
|
fullName = "Business Source License 1.1";
|
||||||
url = https://mariadb.com/bsl11;
|
url = "https://mariadb.com/bsl11";
|
||||||
free = false;
|
free = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -230,7 +230,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
|
|
||||||
eapl = {
|
eapl = {
|
||||||
fullName = "EPSON AVASYS PUBLIC LICENSE";
|
fullName = "EPSON AVASYS PUBLIC LICENSE";
|
||||||
url = http://avasys.jp/hp/menu000000700/hpg000000603.htm;
|
url = "http://avasys.jp/hp/menu000000700/hpg000000603.htm";
|
||||||
free = false;
|
free = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -246,7 +246,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
|
|
||||||
elastic = {
|
elastic = {
|
||||||
fullName = "ELASTIC LICENSE";
|
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;
|
free = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -262,7 +262,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
|
|
||||||
epson = {
|
epson = {
|
||||||
fullName = "Seiko Epson Corporation Software License Agreement for Linux";
|
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;
|
free = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -293,7 +293,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
|
|
||||||
ffsl = {
|
ffsl = {
|
||||||
fullName = "Floodgap Free Software License";
|
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;
|
free = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -303,12 +303,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
|
|
||||||
g4sl = {
|
g4sl = {
|
||||||
fullName = "Geant4 Software License";
|
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 = {
|
geogebra = {
|
||||||
fullName = "GeoGebra Non-Commercial License Agreement";
|
fullName = "GeoGebra Non-Commercial License Agreement";
|
||||||
url = https://www.geogebra.org/license;
|
url = "https://www.geogebra.org/license";
|
||||||
free = false;
|
free = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -334,12 +334,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
|
|
||||||
gpl2ClasspathPlus = {
|
gpl2ClasspathPlus = {
|
||||||
fullName = "GNU General Public License v2.0 or later (with Classpath exception)";
|
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 = {
|
gpl2Oss = {
|
||||||
fullName = "GNU General Public License version 2 only (with OSI approved licenses linking exception)";
|
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 {
|
gpl2Plus = spdx {
|
||||||
|
@ -359,7 +359,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
|
|
||||||
gpl3ClasspathPlus = {
|
gpl3ClasspathPlus = {
|
||||||
fullName = "GNU General Public License v3.0 or later (with Classpath exception)";
|
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 {
|
hpnd = spdx {
|
||||||
|
@ -370,7 +370,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
# Intel's license, seems free
|
# Intel's license, seems free
|
||||||
iasl = {
|
iasl = {
|
||||||
fullName = "iASL";
|
fullName = "iASL";
|
||||||
url = http://www.calculate-linux.org/packages/licenses/iASL;
|
url = "http://www.calculate-linux.org/packages/licenses/iASL";
|
||||||
};
|
};
|
||||||
|
|
||||||
ijg = spdx {
|
ijg = spdx {
|
||||||
|
@ -413,7 +413,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
# Proprietary binaries; free to redistribute without modification.
|
# Proprietary binaries; free to redistribute without modification.
|
||||||
issl = {
|
issl = {
|
||||||
fullName = "Intel Simplified Software License";
|
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;
|
free = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -469,7 +469,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
|
|
||||||
llgpl21 = {
|
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";
|
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 {
|
lppl12 = spdx {
|
||||||
|
@ -489,7 +489,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
|
|
||||||
miros = {
|
miros = {
|
||||||
fullName = "MirOS License";
|
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
|
# spdx.org does not (yet) differentiate between the X11 and Expat versions
|
||||||
|
@ -589,7 +589,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
|
|
||||||
postman = {
|
postman = {
|
||||||
fullName = "Postman EULA";
|
fullName = "Postman EULA";
|
||||||
url = https://www.getpostman.com/licenses/postman_base_app;
|
url = "https://www.getpostman.com/licenses/postman_base_app";
|
||||||
free = false;
|
free = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -605,7 +605,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
|
|
||||||
purdueBsd = {
|
purdueBsd = {
|
||||||
fullName = " Purdue BSD-Style License"; # also know as lsof license
|
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 {
|
qhull = spdx {
|
||||||
|
@ -620,7 +620,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
|
|
||||||
qwt = {
|
qwt = {
|
||||||
fullName = "Qwt License, Version 1.0";
|
fullName = "Qwt License, Version 1.0";
|
||||||
url = http://qwt.sourceforge.net/qwtlicense.html;
|
url = "http://qwt.sourceforge.net/qwtlicense.html";
|
||||||
};
|
};
|
||||||
|
|
||||||
ruby = spdx {
|
ruby = spdx {
|
||||||
|
@ -646,13 +646,13 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
smail = {
|
smail = {
|
||||||
shortName = "smail";
|
shortName = "smail";
|
||||||
fullName = "SMAIL General Public License";
|
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 = {
|
sspl = {
|
||||||
shortName = "SSPL";
|
shortName = "SSPL";
|
||||||
fullName = "Server Side Public License";
|
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;
|
free = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -663,7 +663,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
|
|
||||||
ufl = {
|
ufl = {
|
||||||
fullName = "Ubuntu Font License 1.0";
|
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 = {
|
unfree = {
|
||||||
|
@ -725,7 +725,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||||
|
|
||||||
wadalab = {
|
wadalab = {
|
||||||
fullName = "Wadalab Font License";
|
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 {
|
wtfpl = spdx {
|
||||||
|
|
|
@ -4703,6 +4703,18 @@
|
||||||
githubId = 136037;
|
githubId = 136037;
|
||||||
name = "Matthew Maurer";
|
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 = {
|
mbakke = {
|
||||||
email = "mbakke@fastmail.com";
|
email = "mbakke@fastmail.com";
|
||||||
github = "mbakke";
|
github = "mbakke";
|
||||||
|
@ -5771,6 +5783,12 @@
|
||||||
githubId = 5515707;
|
githubId = 5515707;
|
||||||
name = "Peter Romfeld";
|
name = "Peter Romfeld";
|
||||||
};
|
};
|
||||||
|
petersjt014 = {
|
||||||
|
email = "petersjt014@gmail.com";
|
||||||
|
github = "petersjt014";
|
||||||
|
githubId = 29493551;
|
||||||
|
name = "Josh Peters";
|
||||||
|
};
|
||||||
peti = {
|
peti = {
|
||||||
email = "simons@cryp.to";
|
email = "simons@cryp.to";
|
||||||
github = "peti";
|
github = "peti";
|
||||||
|
@ -7873,8 +7891,8 @@
|
||||||
githubId = 7953163;
|
githubId = 7953163;
|
||||||
name = "Vika Shleina";
|
name = "Vika Shleina";
|
||||||
keys = [{
|
keys = [{
|
||||||
longkeyid = "rsa4096/0x5402B9B5497BACDB";
|
longkeyid = "rsa2048/0x4F62CD07CE64796A";
|
||||||
fingerprint = "A03C D09C 36CF D9F6 1ADF AF11 5402 B9B5 497B ACDB";
|
fingerprint = "B3C0 DA1A C18B 82E8 CA8B B1D1 4F62 CD07 CE64 796A";
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
vinymeuh = {
|
vinymeuh = {
|
||||||
|
|
|
@ -40,7 +40,7 @@ networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||||
<note>
|
<note>
|
||||||
<para>
|
<para>
|
||||||
If you are switching networks with different proxy configurations, use the
|
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
|
<literal>configuration.nix</literal> to switch proxies at runtime. Refer to
|
||||||
<xref linkend="ch-options" /> for more information.
|
<xref linkend="ch-options" /> for more information.
|
||||||
</para>
|
</para>
|
||||||
|
|
|
@ -23,11 +23,24 @@
|
||||||
Support is planned until the end of October 2020, handing over to 20.09.
|
Support is planned until the end of October 2020, handing over to 20.09.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</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>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Linux kernel is updated to branch 5.4 by default (from 4.19).
|
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>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -43,6 +56,24 @@
|
||||||
quirk in the boot menu.
|
quirk in the boot menu.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</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>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
By default zfs pools will now be trimmed on a weekly basis.
|
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.
|
It was created so Geary could function properly outside of GNOME.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</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>
|
</itemizedlist>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
@ -632,6 +898,25 @@ auth required pam_succeed_if.so uid >= 1000 quiet
|
||||||
The <option>services.dnscrypt-proxy</option> module has been removed
|
The <option>services.dnscrypt-proxy</option> module has been removed
|
||||||
as it used the deprecated version of dnscrypt-proxy. We've added
|
as it used the deprecated version of dnscrypt-proxy. We've added
|
||||||
<xref linkend="opt-services.dnscrypt-proxy2.enable"/> to use the supported version.
|
<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>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<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>.
|
<link xlink:href="https://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/sqldev-relnotes-194-5908846.html">release notes</link>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</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>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The <package>gcc-snapshot</package>-package has been removed. It's marked as broken for >2 years and used to point
|
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>
|
</para>
|
||||||
<warning>
|
<warning>
|
||||||
<para>
|
<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 manually upgrade to <literal>19.09</literal> first to upgrade your server
|
||||||
to Nextcloud v16.
|
to Nextcloud v16.
|
||||||
</para>
|
</para>
|
||||||
|
@ -809,7 +1103,8 @@ auth required pam_succeed_if.so uid >= 1000 quiet
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The nginx web server previously started its master process as root
|
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
|
This was changed to start all of nginx as a less privileged user (defined by
|
||||||
<literal>services.nginx.user</literal> and
|
<literal>services.nginx.user</literal> and
|
||||||
<literal>services.nginx.group</literal>). As a consequence, all files that
|
<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
|
certificates and keys, etc.) must now be readable by this less privileged
|
||||||
user/group.
|
user/group.
|
||||||
</para>
|
</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>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<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>.
|
<link xlink:href="https://github.com/gollum/gollum/wiki/5.0-release-notes#migrating-your-wiki">here</link>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</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>
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = https://jqueryui.com/;
|
homepage = "https://jqueryui.com/";
|
||||||
description = "A library of JavaScript widgets and effects";
|
description = "A library of JavaScript widgets and effects";
|
||||||
platforms = stdenv.lib.platforms.all;
|
platforms = stdenv.lib.platforms.all;
|
||||||
};
|
};
|
||||||
|
|
|
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "JavaScript library designed to simplify the client-side scripting of HTML";
|
description = "JavaScript library designed to simplify the client-side scripting of HTML";
|
||||||
homepage = http://jquery.com/;
|
homepage = "http://jquery.com/";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
};
|
};
|
||||||
|
|
|
@ -34,7 +34,7 @@ let
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "HP Smart Array CLI";
|
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;
|
license = licenses.unfreeRedistributable;
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
maintainers = with maintainers; [ volth ];
|
maintainers = with maintainers; [ volth ];
|
||||||
|
|
|
@ -483,7 +483,7 @@ in
|
||||||
|
|
||||||
isoImage.efiSplashImage = mkOption {
|
isoImage.efiSplashImage = mkOption {
|
||||||
default = pkgs.fetchurl {
|
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";
|
sha256 = "18lfwmp8yq923322nlb9gxrh5qikj1wsk6g5qvdh31c4h5b1538x";
|
||||||
};
|
};
|
||||||
description = ''
|
description = ''
|
||||||
|
@ -493,7 +493,7 @@ in
|
||||||
|
|
||||||
isoImage.splashImage = mkOption {
|
isoImage.splashImage = mkOption {
|
||||||
default = pkgs.fetchurl {
|
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";
|
sha256 = "1wp822zrhbg4fgfbwkr7cbkr4labx477209agzc0hr6k62fr6rxd";
|
||||||
};
|
};
|
||||||
description = ''
|
description = ''
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
x86_64-linux = "/nix/store/ddmmzn4ggz1f66lwxjy64n89864yj9w9-nix-2.3.3";
|
x86_64-linux = "/nix/store/8928ygfyf9iassfrnj76v55s6zid58ja-nix-2.3.4";
|
||||||
i686-linux = "/nix/store/5axys7hsggb4282dsbps5k5p0v59yv13-nix-2.3.3";
|
i686-linux = "/nix/store/b5cx3nmba9ahx3wk5ybxa67k40pdpdxn-nix-2.3.4";
|
||||||
aarch64-linux = "/nix/store/k80nwvi19hxwbz3c9cxgp24f1jjxwmcc-nix-2.3.3";
|
aarch64-linux = "/nix/store/p6j4mis6agdjlk4j0cyg7yh58wpm3kif-nix-2.3.4";
|
||||||
x86_64-darwin = "/nix/store/lrnvapsqmf0ja6zfyx4cpxr7ahdr7f9b-nix-2.3.3";
|
x86_64-darwin = "/nix/store/aizhr07dljmlbf17wfrj40x3s0b5iv3d-nix-2.3.4";
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,7 +76,7 @@ in
|
||||||
defaultChannel = mkOption {
|
defaultChannel = mkOption {
|
||||||
internal = true;
|
internal = true;
|
||||||
type = types.str;
|
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.";
|
description = "Default NixOS channel to which the root user is subscribed.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,14 @@ in
|
||||||
programs.npm = {
|
programs.npm = {
|
||||||
enable = mkEnableOption "<command>npm</command> global config";
|
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;
|
type = lib.types.lines;
|
||||||
description = ''
|
description = ''
|
||||||
The system-wide npm configuration.
|
The system-wide npm configuration.
|
||||||
|
@ -40,7 +47,7 @@ in
|
||||||
|
|
||||||
environment.variables.NPM_CONFIG_GLOBALCONFIG = "/etc/npmrc";
|
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 {
|
pubkeyAcceptedKeyTypes = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [
|
default = [];
|
||||||
"+ssh-dss"
|
|
||||||
];
|
|
||||||
example = [ "ssh-ed25519" "ssh-rsa" ];
|
example = [ "ssh-ed25519" "ssh-rsa" ];
|
||||||
description = ''
|
description = ''
|
||||||
Specifies the key types that will be used for public key authentication.
|
Specifies the key types that will be used for public key authentication.
|
||||||
|
@ -75,9 +72,7 @@ in
|
||||||
|
|
||||||
hostKeyAlgorithms = mkOption {
|
hostKeyAlgorithms = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [
|
default = [];
|
||||||
"+ssh-dss"
|
|
||||||
];
|
|
||||||
example = [ "ssh-ed25519" "ssh-rsa" ];
|
example = [ "ssh-ed25519" "ssh-rsa" ];
|
||||||
description = ''
|
description = ''
|
||||||
Specifies the host key algorithms that the client wants to use in order of preference.
|
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
|
services.kubernetes.addonManager.bootstrapAddons = mkIf isRBACEnabled
|
||||||
(let
|
(let
|
||||||
name = system:kube-addon-manager;
|
name = "system:kube-addon-manager";
|
||||||
namespace = "kube-system";
|
namespace = "kube-system";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
|
@ -39,6 +39,36 @@ let
|
||||||
|
|
||||||
inherit (config.system) stateVersion;
|
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
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -266,7 +296,7 @@ in
|
||||||
use-substitutes = ${if cfg.useSubstitutes then "1" else "0"}
|
use-substitutes = ${if cfg.useSubstitutes then "1" else "0"}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
environment.systemPackages = [ cfg.package ];
|
environment.systemPackages = [ hydra-package ];
|
||||||
|
|
||||||
environment.variables = hydraEnv;
|
environment.variables = hydraEnv;
|
||||||
|
|
||||||
|
@ -327,7 +357,7 @@ in
|
||||||
chown hydra.hydra ${cfg.gcRootsDir}
|
chown hydra.hydra ${cfg.gcRootsDir}
|
||||||
chmod 2775 ${cfg.gcRootsDir}
|
chmod 2775 ${cfg.gcRootsDir}
|
||||||
'';
|
'';
|
||||||
serviceConfig.ExecStart = "${cfg.package}/bin/hydra-init";
|
serviceConfig.ExecStart = "${hydra-package}/bin/hydra-init";
|
||||||
serviceConfig.PermissionsStartOnly = true;
|
serviceConfig.PermissionsStartOnly = true;
|
||||||
serviceConfig.User = "hydra";
|
serviceConfig.User = "hydra";
|
||||||
serviceConfig.Type = "oneshot";
|
serviceConfig.Type = "oneshot";
|
||||||
|
@ -342,7 +372,7 @@ in
|
||||||
restartTriggers = [ hydraConf ];
|
restartTriggers = [ hydraConf ];
|
||||||
serviceConfig =
|
serviceConfig =
|
||||||
{ ExecStart =
|
{ 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 "
|
+ "-p ${toString cfg.port} --max_spare_servers 5 --max_servers 25 "
|
||||||
+ "--max_requests 100 ${optionalString cfg.debugServer "-d"}";
|
+ "--max_requests 100 ${optionalString cfg.debugServer "-d"}";
|
||||||
User = "hydra-www";
|
User = "hydra-www";
|
||||||
|
@ -355,15 +385,15 @@ in
|
||||||
{ wantedBy = [ "multi-user.target" ];
|
{ wantedBy = [ "multi-user.target" ];
|
||||||
requires = [ "hydra-init.service" ];
|
requires = [ "hydra-init.service" ];
|
||||||
after = [ "hydra-init.service" "network.target" ];
|
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 ];
|
restartTriggers = [ hydraConf ];
|
||||||
environment = env // {
|
environment = env // {
|
||||||
PGPASSFILE = "${baseDir}/pgpass-queue-runner"; # grrr
|
PGPASSFILE = "${baseDir}/pgpass-queue-runner"; # grrr
|
||||||
IN_SYSTEMD = "1"; # to get log severity levels
|
IN_SYSTEMD = "1"; # to get log severity levels
|
||||||
};
|
};
|
||||||
serviceConfig =
|
serviceConfig =
|
||||||
{ ExecStart = "@${cfg.package}/bin/hydra-queue-runner hydra-queue-runner -v";
|
{ ExecStart = "@${hydra-package}/bin/hydra-queue-runner hydra-queue-runner -v";
|
||||||
ExecStopPost = "${cfg.package}/bin/hydra-queue-runner --unlock";
|
ExecStopPost = "${hydra-package}/bin/hydra-queue-runner --unlock";
|
||||||
User = "hydra-queue-runner";
|
User = "hydra-queue-runner";
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
|
|
||||||
|
@ -377,11 +407,11 @@ in
|
||||||
{ wantedBy = [ "multi-user.target" ];
|
{ wantedBy = [ "multi-user.target" ];
|
||||||
requires = [ "hydra-init.service" ];
|
requires = [ "hydra-init.service" ];
|
||||||
after = [ "hydra-init.service" "network.target" ];
|
after = [ "hydra-init.service" "network.target" ];
|
||||||
path = with pkgs; [ cfg.package nettools jq ];
|
path = with pkgs; [ hydra-package nettools jq ];
|
||||||
restartTriggers = [ hydraConf ];
|
restartTriggers = [ hydraConf ];
|
||||||
environment = env;
|
environment = env;
|
||||||
serviceConfig =
|
serviceConfig =
|
||||||
{ ExecStart = "@${cfg.package}/bin/hydra-evaluator hydra-evaluator";
|
{ ExecStart = "@${hydra-package}/bin/hydra-evaluator hydra-evaluator";
|
||||||
User = "hydra";
|
User = "hydra";
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
WorkingDirectory = baseDir;
|
WorkingDirectory = baseDir;
|
||||||
|
@ -393,7 +423,7 @@ in
|
||||||
after = [ "hydra-init.service" ];
|
after = [ "hydra-init.service" ];
|
||||||
environment = env;
|
environment = env;
|
||||||
serviceConfig =
|
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";
|
User = "hydra";
|
||||||
};
|
};
|
||||||
startAt = "2,14:15";
|
startAt = "2,14:15";
|
||||||
|
@ -404,7 +434,7 @@ in
|
||||||
after = [ "hydra-init.service" ];
|
after = [ "hydra-init.service" ];
|
||||||
environment = env;
|
environment = env;
|
||||||
serviceConfig =
|
serviceConfig =
|
||||||
{ ExecStart = "@${cfg.package}/bin/hydra-send-stats hydra-send-stats";
|
{ ExecStart = "@${hydra-package}/bin/hydra-send-stats hydra-send-stats";
|
||||||
User = "hydra";
|
User = "hydra";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -418,7 +448,7 @@ in
|
||||||
PGPASSFILE = "${baseDir}/pgpass-queue-runner";
|
PGPASSFILE = "${baseDir}/pgpass-queue-runner";
|
||||||
};
|
};
|
||||||
serviceConfig =
|
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?
|
# FIXME: run this under a less privileged user?
|
||||||
User = "hydra-queue-runner";
|
User = "hydra-queue-runner";
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
|
|
|
@ -63,7 +63,7 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Brother brscan4 sane backend driver etc files";
|
description = "Brother brscan4 sane backend driver etc files";
|
||||||
homepage = http://www.brother.com;
|
homepage = "http://www.brother.com";
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = stdenv.lib.platforms.linux;
|
||||||
license = stdenv.lib.licenses.unfree;
|
license = stdenv.lib.licenses.unfree;
|
||||||
maintainers = with stdenv.lib.maintainers; [ jraygauthier ];
|
maintainers = with stdenv.lib.maintainers; [ jraygauthier ];
|
||||||
|
|
|
@ -7,6 +7,7 @@ let
|
||||||
fpm = config.services.phpfpm.pools.roundcube;
|
fpm = config.services.phpfpm.pools.roundcube;
|
||||||
localDB = cfg.database.host == "localhost";
|
localDB = cfg.database.host == "localhost";
|
||||||
user = cfg.database.username;
|
user = cfg.database.username;
|
||||||
|
phpWithPspell = pkgs.php.withExtensions (e: [ e.pspell ] ++ pkgs.php.enabledExtensions);
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.services.roundcube = {
|
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 {
|
extraConfig = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
|
@ -109,6 +119,11 @@ in
|
||||||
$config['plugins'] = [${concatMapStringsSep "," (p: "'${p}'") cfg.plugins}];
|
$config['plugins'] = [${concatMapStringsSep "," (p: "'${p}'") cfg.plugins}];
|
||||||
$config['des_key'] = file_get_contents('/var/lib/roundcube/des_key');
|
$config['des_key'] = file_get_contents('/var/lib/roundcube/des_key');
|
||||||
$config['mime_types'] = '${pkgs.nginx}/conf/mime.types';
|
$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}
|
${cfg.extraConfig}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -172,6 +187,8 @@ in
|
||||||
"pm.max_requests" = 500;
|
"pm.max_requests" = 500;
|
||||||
"catch_workers_output" = true;
|
"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" ];
|
systemd.services.phpfpm-roundcube.after = [ "roundcube-setup.service" ];
|
||||||
|
|
||||||
|
@ -199,7 +216,7 @@ in
|
||||||
${psql} <<< 'TRUNCATE TABLE session;'
|
${psql} <<< 'TRUNCATE TABLE session;'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${pkgs.php}/bin/php ${cfg.package}/bin/update.sh
|
${phpWithPspell}/bin/php ${cfg.package}/bin/update.sh
|
||||||
'';
|
'';
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
|
|
|
@ -283,7 +283,7 @@ in
|
||||||
trustedBinaryCaches = mkOption {
|
trustedBinaryCaches = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
example = [ http://hydra.nixos.org/ ];
|
example = [ "http://hydra.nixos.org/" ];
|
||||||
description = ''
|
description = ''
|
||||||
List of binary cache URLs that non-root users can use (in
|
List of binary cache URLs that non-root users can use (in
|
||||||
addition to those specified using
|
addition to those specified using
|
||||||
|
|
|
@ -10,7 +10,7 @@ let
|
||||||
# a wrapper that verifies that the configuration is valid
|
# a wrapper that verifies that the configuration is valid
|
||||||
promtoolCheck = what: name: file:
|
promtoolCheck = what: name: file:
|
||||||
if cfg.checkConfig then
|
if cfg.checkConfig then
|
||||||
pkgs.runCommand
|
pkgs.runCommandNoCCLocal
|
||||||
"${name}-${replaceStrings [" "] [""] what}-checked"
|
"${name}-${replaceStrings [" "] [""] what}-checked"
|
||||||
{ buildInputs = [ cfg.package ]; } ''
|
{ buildInputs = [ cfg.package ]; } ''
|
||||||
ln -s ${file} $out
|
ln -s ${file} $out
|
||||||
|
@ -19,7 +19,7 @@ let
|
||||||
|
|
||||||
# Pretty-print JSON to a file
|
# Pretty-print JSON to a file
|
||||||
writePrettyJSON = name: x:
|
writePrettyJSON = name: x:
|
||||||
pkgs.runCommand name { preferLocalBuild = true; } ''
|
pkgs.runCommandNoCCLocal name {} ''
|
||||||
echo '${builtins.toJSON x}' | ${pkgs.jq}/bin/jq . > $out
|
echo '${builtins.toJSON x}' | ${pkgs.jq}/bin/jq . > $out
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ let
|
||||||
cfg = config.services.openafsClient;
|
cfg = config.services.openafsClient;
|
||||||
|
|
||||||
cellServDB = pkgs.fetchurl {
|
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";
|
sha256 = "1wmjn6mmyy2r8p10nlbdzs4nrqxy8a9pjyrdciy5nmppg4053rk2";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ in
|
||||||
ip protocol icmp icmp type { destination-unreachable, router-advertisement, time-exceeded, parameter-problem } accept
|
ip protocol icmp icmp type { destination-unreachable, router-advertisement, time-exceeded, parameter-problem } accept
|
||||||
|
|
||||||
# allow "ping"
|
# 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
|
ip protocol icmp icmp type echo-request accept
|
||||||
|
|
||||||
# accept SSH connections (required for a server)
|
# accept SSH connections (required for a server)
|
||||||
|
|
|
@ -130,7 +130,7 @@ in {
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
systemd.services.documize-server = {
|
systemd.services.documize-server = {
|
||||||
description = "Documize Wiki";
|
description = "Documize Wiki";
|
||||||
documentation = [ https://documize.com/ ];
|
documentation = [ "https://documize.com/" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
|
|
|
@ -322,12 +322,21 @@ in {
|
||||||
Please migrate your configuration to config.services.nextcloud.poolSettings.
|
Please migrate your configuration to config.services.nextcloud.poolSettings.
|
||||||
'')
|
'')
|
||||||
++ (optional (versionOlder cfg.package.version "18") ''
|
++ (optional (versionOlder cfg.package.version "18") ''
|
||||||
You're currently deploying an older version of Nextcloud. This may be needed
|
A legacy Nextcloud install (from before NixOS 20.03) may be installed.
|
||||||
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).
|
|
||||||
|
|
||||||
Please deploy this to your server and wait until the migration is finished. After
|
You're currently deploying an older version of Nextcloud. This may be needed
|
||||||
that you can deploy to the latest Nextcloud version available.
|
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;
|
services.nextcloud.package = with pkgs;
|
||||||
|
|
|
@ -220,7 +220,7 @@ in
|
||||||
globalRedirect = mkOption {
|
globalRedirect = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = http://newserver.example.org/;
|
example = "http://newserver.example.org/";
|
||||||
description = ''
|
description = ''
|
||||||
If set, all requests for this host are redirected permanently to
|
If set, all requests for this host are redirected permanently to
|
||||||
the given URL.
|
the given URL.
|
||||||
|
|
|
@ -4,6 +4,5 @@ with lib;
|
||||||
|
|
||||||
{
|
{
|
||||||
boot.loader.grub.device = mkOverride 0 "nodev";
|
boot.loader.grub.device = mkOverride 0 "nodev";
|
||||||
nesting.children = mkOverride 0 [];
|
specialisation = mkOverride 0 {};
|
||||||
nesting.clone = mkOverride 0 [];
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,21 +11,16 @@ let
|
||||||
# you can provide an easy way to boot the same configuration
|
# you can provide an easy way to boot the same configuration
|
||||||
# as you use, but with another kernel
|
# as you use, but with another kernel
|
||||||
# !!! fix this
|
# !!! fix this
|
||||||
cloner = inheritParent: list:
|
children = mapAttrs (childName: childConfig:
|
||||||
map (childConfig:
|
|
||||||
(import ../../../lib/eval-config.nix {
|
(import ../../../lib/eval-config.nix {
|
||||||
inherit baseModules;
|
inherit baseModules;
|
||||||
system = config.nixpkgs.initialSystem;
|
system = config.nixpkgs.initialSystem;
|
||||||
modules =
|
modules =
|
||||||
(optionals inheritParent modules)
|
(optionals childConfig.inheritParentConfig modules)
|
||||||
++ [ ./no-clone.nix ]
|
++ [ ./no-clone.nix ]
|
||||||
++ [ childConfig ];
|
++ [ childConfig.configuration ];
|
||||||
}).config.system.build.toplevel
|
}).config.system.build.toplevel
|
||||||
) list;
|
) config.specialisation;
|
||||||
|
|
||||||
children =
|
|
||||||
cloner false config.nesting.children
|
|
||||||
++ cloner true config.nesting.clone;
|
|
||||||
|
|
||||||
systemBuilder =
|
systemBuilder =
|
||||||
let
|
let
|
||||||
|
@ -77,12 +72,9 @@ let
|
||||||
echo -n "$nixosLabel" > $out/nixos-version
|
echo -n "$nixosLabel" > $out/nixos-version
|
||||||
echo -n "${config.boot.kernelPackages.stdenv.hostPlatform.system}" > $out/system
|
echo -n "${config.boot.kernelPackages.stdenv.hostPlatform.system}" > $out/system
|
||||||
|
|
||||||
mkdir $out/fine-tune
|
mkdir $out/specialisation
|
||||||
childCount=0
|
${concatStringsSep "\n"
|
||||||
for i in $children; do
|
(mapAttrsToList (name: path: "ln -s ${path} $out/specialisation/${name}") children)}
|
||||||
childCount=$(( childCount + 1 ))
|
|
||||||
ln -s $i $out/fine-tune/child-$childCount
|
|
||||||
done
|
|
||||||
|
|
||||||
mkdir $out/bin
|
mkdir $out/bin
|
||||||
export localeArchive="${config.i18n.glibcLocales}/lib/locale/locale-archive"
|
export localeArchive="${config.i18n.glibcLocales}/lib/locale/locale-archive"
|
||||||
|
@ -112,7 +104,6 @@ let
|
||||||
shell = "${pkgs.bash}/bin/sh";
|
shell = "${pkgs.bash}/bin/sh";
|
||||||
su = "${pkgs.shadow.su}/bin/su";
|
su = "${pkgs.shadow.su}/bin/su";
|
||||||
|
|
||||||
inherit children;
|
|
||||||
kernelParams = config.boot.kernelParams;
|
kernelParams = config.boot.kernelParams;
|
||||||
installBootLoader =
|
installBootLoader =
|
||||||
config.system.build.installBootLoader
|
config.system.build.installBootLoader
|
||||||
|
@ -143,6 +134,11 @@ let
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
imports = [
|
||||||
|
(mkRemovedOptionModule [ "nesting" "clone" ] "Use `specialisation.«name» = { inheritParentConfig = true; configuration = { ... }; }` instead.")
|
||||||
|
(mkRemovedOptionModule [ "nesting" "children" ] "Use `specialisation.«name».configuration = { ... }` instead.")
|
||||||
|
];
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
system.build = mkOption {
|
system.build = mkOption {
|
||||||
|
@ -154,26 +150,35 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
nesting.children = mkOption {
|
specialisation = mkOption {
|
||||||
default = [];
|
default = {};
|
||||||
|
example = lib.literalExample "{ fewJobsManyCores.configuration = { nix.buildCores = 0; nix.maxJobs = 1; }; }";
|
||||||
description = ''
|
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 {
|
To switch to a specialised configuration
|
||||||
default = [];
|
(e.g. <literal>fewJobsManyCores</literal>) at runtime, run:
|
||||||
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
|
|
||||||
|
|
||||||
<programlisting>
|
<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>
|
</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 {
|
system.boot.loader.id = mkOption {
|
||||||
|
|
|
@ -588,7 +588,7 @@ in
|
||||||
|
|
||||||
{ boot.loader.grub.splashImage = mkDefault (
|
{ boot.loader.grub.splashImage = mkDefault (
|
||||||
if cfg.version == 1 then pkgs.fetchurl {
|
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";
|
sha256 = "14kqdx2lfqvh40h6fjjzqgff1mwk74dmbjvmqphi6azzra7z8d59";
|
||||||
}
|
}
|
||||||
# GRUB 1.97 doesn't support gzipped XPMs.
|
# 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
|
# Find all the children of the current default configuration
|
||||||
# Do not search for grand children
|
# Do not search for grand children
|
||||||
my @links = sort (glob "$defaultConfig/fine-tune/*");
|
my @links = sort (glob "$defaultConfig/specialisation/*");
|
||||||
foreach my $link (@links) {
|
foreach my $link (@links) {
|
||||||
|
|
||||||
my $entryName = "";
|
my $entryName = "";
|
||||||
|
@ -425,7 +425,8 @@ foreach my $link (@links) {
|
||||||
if ($cfgName) {
|
if ($cfgName) {
|
||||||
$entryName = $cfgName;
|
$entryName = $cfgName;
|
||||||
} else {
|
} else {
|
||||||
$entryName = "($date - $version)";
|
my $linkname = basename($link);
|
||||||
|
$entryName = "($linkname - $date - $version)";
|
||||||
}
|
}
|
||||||
addEntry("NixOS - $entryName", $link);
|
addEntry("NixOS - $entryName", $link);
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,7 +69,7 @@ addEntry "NixOS - Default" $defaultConfig ""
|
||||||
|
|
||||||
# Add all generations of the system profile to the menu, in reverse
|
# Add all generations of the system profile to the menu, in reverse
|
||||||
# (most recent to least recent) order.
|
# (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/\..*//')
|
date=$(stat --printf="%y\n" $link | sed 's/\..*//')
|
||||||
addEntry "NixOS - variation" $link ""
|
addEntry "NixOS - variation" $link ""
|
||||||
done
|
done
|
||||||
|
|
|
@ -24,7 +24,7 @@ let cfg = config.system.autoUpgrade; in
|
||||||
channel = mkOption {
|
channel = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = https://nixos.org/channels/nixos-14.12-small;
|
example = "https://nixos.org/channels/nixos-14.12-small";
|
||||||
description = ''
|
description = ''
|
||||||
The URI of the NixOS channel to use for automatic
|
The URI of the NixOS channel to use for automatic
|
||||||
upgrades. By default, this is the channel set using
|
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";
|
security.acme.server = "https://acme-v02.api.letsencrypt.org/dir";
|
||||||
|
|
||||||
nesting.clone = [
|
specialisation.second-cert.configuration = {pkgs, ...}: {
|
||||||
({pkgs, ...}: {
|
systemd.targets."acme-finished-b.example.com" = {};
|
||||||
systemd.targets."acme-finished-b.example.com" = {};
|
systemd.services."acme-b.example.com" = {
|
||||||
systemd.services."acme-b.example.com" = {
|
wants = [ "acme-finished-b.example.com.target" ];
|
||||||
wants = [ "acme-finished-b.example.com.target" ];
|
before = [ "acme-finished-b.example.com.target" ];
|
||||||
before = [ "acme-finished-b.example.com.target" ];
|
after = [ "nginx.service" ];
|
||||||
after = [ "nginx.service" ];
|
};
|
||||||
};
|
services.nginx.virtualHosts."b.example.com" = {
|
||||||
services.nginx.virtualHosts."b.example.com" = {
|
enableACME = true;
|
||||||
enableACME = true;
|
forceSSL = true;
|
||||||
forceSSL = true;
|
locations."/".root = pkgs.runCommand "docroot" {} ''
|
||||||
locations."/".root = pkgs.runCommand "docroot" {} ''
|
mkdir -p "$out"
|
||||||
mkdir -p "$out"
|
echo hello world > "$out/index.html"
|
||||||
echo hello world > "$out/index.html"
|
'';
|
||||||
'';
|
};
|
||||||
};
|
};
|
||||||
})
|
specialisation.dns-01.configuration = {pkgs, config, nodes, lib, ...}: {
|
||||||
({pkgs, config, nodes, lib, ...}: {
|
security.acme.certs."example.com" = {
|
||||||
security.acme.certs."example.com" = {
|
domain = "*.example.com";
|
||||||
domain = "*.example.com";
|
dnsProvider = "exec";
|
||||||
dnsProvider = "exec";
|
dnsPropagationCheck = false;
|
||||||
dnsPropagationCheck = false;
|
credentialsFile = with pkgs; writeText "wildcard.env" ''
|
||||||
credentialsFile = with pkgs; writeText "wildcard.env" ''
|
EXEC_PATH=${dnsScript { inherit writeScript bash curl; dnsAddress = nodes.dnsserver.config.networking.primaryIPAddress; }}
|
||||||
EXEC_PATH=${dnsScript { inherit writeScript bash curl; dnsAddress = nodes.dnsserver.config.networking.primaryIPAddress; }}
|
'';
|
||||||
'';
|
user = config.services.nginx.user;
|
||||||
user = config.services.nginx.user;
|
group = config.services.nginx.group;
|
||||||
group = config.services.nginx.group;
|
};
|
||||||
};
|
systemd.targets."acme-finished-example.com" = {};
|
||||||
systemd.targets."acme-finished-example.com" = {};
|
systemd.services."acme-example.com" = {
|
||||||
systemd.services."acme-example.com" = {
|
wants = [ "acme-finished-example.com.target" ];
|
||||||
wants = [ "acme-finished-example.com.target" ];
|
before = [ "acme-finished-example.com.target" "nginx.service" ];
|
||||||
before = [ "acme-finished-example.com.target" "nginx.service" ];
|
wantedBy = [ "nginx.service" ];
|
||||||
wantedBy = [ "nginx.service" ];
|
};
|
||||||
};
|
services.nginx.virtualHosts."c.example.com" = {
|
||||||
services.nginx.virtualHosts."c.example.com" = {
|
forceSSL = true;
|
||||||
forceSSL = true;
|
sslCertificate = config.security.acme.certs."example.com".directory + "/cert.pem";
|
||||||
sslCertificate = config.security.acme.certs."example.com".directory + "/cert.pem";
|
sslTrustedCertificate = config.security.acme.certs."example.com".directory + "/full.pem";
|
||||||
sslTrustedCertificate = config.security.acme.certs."example.com".directory + "/full.pem";
|
sslCertificateKey = config.security.acme.certs."example.com".directory + "/key.pem";
|
||||||
sslCertificateKey = config.security.acme.certs."example.com".directory + "/key.pem";
|
locations."/".root = pkgs.runCommand "docroot" {} ''
|
||||||
locations."/".root = pkgs.runCommand "docroot" {} ''
|
mkdir -p "$out"
|
||||||
mkdir -p "$out"
|
echo hello world > "$out/index.html"
|
||||||
echo hello world > "$out/index.html"
|
'';
|
||||||
'';
|
};
|
||||||
};
|
};
|
||||||
})
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
client = {nodes, lib, ...}: {
|
client = {nodes, lib, ...}: {
|
||||||
|
@ -196,7 +194,7 @@ in import ./make-test-python.nix {
|
||||||
|
|
||||||
with subtest("Can add another certificate for nginx service"):
|
with subtest("Can add another certificate for nginx service"):
|
||||||
webserver.succeed(
|
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")
|
webserver.wait_for_unit("acme-finished-b.example.com.target")
|
||||||
client.succeed(
|
client.succeed(
|
||||||
|
@ -208,7 +206,7 @@ in import ./make-test-python.nix {
|
||||||
"${switchToNewServer}"
|
"${switchToNewServer}"
|
||||||
)
|
)
|
||||||
webserver.succeed(
|
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")
|
webserver.wait_for_unit("acme-finished-example.com.target")
|
||||||
client.succeed(
|
client.succeed(
|
||||||
|
|
|
@ -202,7 +202,7 @@ in
|
||||||
nat.standalone = handleTest ./nat.nix { withFirewall = false; };
|
nat.standalone = handleTest ./nat.nix { withFirewall = false; };
|
||||||
ndppd = handleTest ./ndppd.nix {};
|
ndppd = handleTest ./ndppd.nix {};
|
||||||
neo4j = handleTest ./neo4j.nix {};
|
neo4j = handleTest ./neo4j.nix {};
|
||||||
nesting = handleTest ./nesting.nix {};
|
specialisation = handleTest ./specialisation.nix {};
|
||||||
netdata = handleTest ./netdata.nix {};
|
netdata = handleTest ./netdata.nix {};
|
||||||
networking.networkd = handleTest ./networking.nix { networkd = true; };
|
networking.networkd = handleTest ./networking.nix { networkd = true; };
|
||||||
networking.scripted = handleTest ./networking.nix { networkd = false; };
|
networking.scripted = handleTest ./networking.nix { networkd = false; };
|
||||||
|
|
|
@ -20,35 +20,33 @@ import ./make-test-python.nix ({ pkgs, ... }: {
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
nesting.clone = [
|
specialisation.etag.configuration = {
|
||||||
{
|
services.caddy.config = lib.mkForce ''
|
||||||
services.caddy.config = lib.mkForce ''
|
http://localhost {
|
||||||
http://localhost {
|
gzip
|
||||||
gzip
|
|
||||||
|
|
||||||
root ${
|
root ${
|
||||||
pkgs.runCommand "testdir2" {} ''
|
pkgs.runCommand "testdir2" {} ''
|
||||||
mkdir "$out"
|
mkdir "$out"
|
||||||
echo changed > "$out/example.html"
|
echo changed > "$out/example.html"
|
||||||
''
|
''
|
||||||
}
|
|
||||||
}
|
}
|
||||||
'';
|
}
|
||||||
}
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
{
|
specialisation.config-reload.configuration = {
|
||||||
services.caddy.config = ''
|
services.caddy.config = ''
|
||||||
http://localhost:8080 {
|
http://localhost:8080 {
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
}
|
};
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
testScript = { nodes, ... }: let
|
testScript = { nodes, ... }: let
|
||||||
etagSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-1";
|
etagSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/etag";
|
||||||
justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-2";
|
justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/config-reload";
|
||||||
in ''
|
in ''
|
||||||
url = "http://localhost/example.html"
|
url = "http://localhost/example.html"
|
||||||
webserver.wait_for_unit("caddy")
|
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(
|
assert old_etag != new_etag, "Old ETag {} is the same as {}".format(
|
||||||
old_etag, new_etag
|
old_etag, new_etag
|
||||||
)
|
)
|
||||||
|
|
||||||
with subtest("config is reloaded on nixos-rebuild switch"):
|
with subtest("config is reloaded on nixos-rebuild switch"):
|
||||||
webserver.succeed(
|
webserver.succeed(
|
||||||
"${justReloadSystem}/bin/switch-to-configuration test >&2"
|
"${justReloadSystem}/bin/switch-to-configuration test >&2"
|
||||||
|
|
|
@ -65,7 +65,7 @@ let
|
||||||
# partitions and filesystems.
|
# partitions and filesystems.
|
||||||
testScriptFun = { bootLoader, createPartitions, grubVersion, grubDevice, grubUseEfi
|
testScriptFun = { bootLoader, createPartitions, grubVersion, grubDevice, grubUseEfi
|
||||||
, grubIdentifier, preBootCommands, extraConfig
|
, grubIdentifier, preBootCommands, extraConfig
|
||||||
, testCloneConfig
|
, testSpecialisationConfig
|
||||||
}:
|
}:
|
||||||
let iface = if grubVersion == 1 then "ide" else "virtio";
|
let iface = if grubVersion == 1 then "ide" else "virtio";
|
||||||
isEfi = bootLoader == "systemd-boot" || (bootLoader == "grub" && grubUseEfi);
|
isEfi = bootLoader == "systemd-boot" || (bootLoader == "grub" && grubUseEfi);
|
||||||
|
@ -220,7 +220,7 @@ let
|
||||||
|
|
||||||
# Tests for validating clone configuration entries in grub menu
|
# Tests for validating clone configuration entries in grub menu
|
||||||
''
|
''
|
||||||
+ optionalString testCloneConfig ''
|
+ optionalString testSpecialisationConfig ''
|
||||||
# Reboot Machine
|
# Reboot Machine
|
||||||
machine = create_machine_named("clone-default-config")
|
machine = create_machine_named("clone-default-config")
|
||||||
${preBootCommands}
|
${preBootCommands}
|
||||||
|
@ -262,7 +262,7 @@ let
|
||||||
, bootLoader ? "grub" # either "grub" or "systemd-boot"
|
, bootLoader ? "grub" # either "grub" or "systemd-boot"
|
||||||
, grubVersion ? 2, grubDevice ? "/dev/vda", grubIdentifier ? "uuid", grubUseEfi ? false
|
, grubVersion ? 2, grubDevice ? "/dev/vda", grubIdentifier ? "uuid", grubUseEfi ? false
|
||||||
, enableOCR ? false, meta ? {}
|
, enableOCR ? false, meta ? {}
|
||||||
, testCloneConfig ? false
|
, testSpecialisationConfig ? false
|
||||||
}:
|
}:
|
||||||
makeTest {
|
makeTest {
|
||||||
inherit enableOCR;
|
inherit enableOCR;
|
||||||
|
@ -337,7 +337,7 @@ let
|
||||||
testScript = testScriptFun {
|
testScript = testScriptFun {
|
||||||
inherit bootLoader createPartitions preBootCommands
|
inherit bootLoader createPartitions preBootCommands
|
||||||
grubVersion grubDevice grubIdentifier grubUseEfi extraConfig
|
grubVersion grubDevice grubIdentifier grubUseEfi extraConfig
|
||||||
testCloneConfig;
|
testSpecialisationConfig;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -411,11 +411,11 @@ let
|
||||||
grubUseEfi = true;
|
grubUseEfi = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
clone-test-extraconfig = {
|
specialisation-test-extraconfig = {
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
environment.systemPackages = [ pkgs.grub2 ];
|
environment.systemPackages = [ pkgs.grub2 ];
|
||||||
boot.loader.grub.configurationName = "Home";
|
boot.loader.grub.configurationName = "Home";
|
||||||
nesting.clone = [ {
|
specialisation.work.configuration = {
|
||||||
boot.loader.grub.configurationName = lib.mkForce "Work";
|
boot.loader.grub.configurationName = lib.mkForce "Work";
|
||||||
|
|
||||||
environment.etc = {
|
environment.etc = {
|
||||||
|
@ -424,9 +424,9 @@ let
|
||||||
gitproxy = none for work.com
|
gitproxy = none for work.com
|
||||||
";
|
";
|
||||||
};
|
};
|
||||||
} ];
|
};
|
||||||
'';
|
'';
|
||||||
testCloneConfig = true;
|
testSpecialisationConfig = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -440,7 +440,7 @@ in {
|
||||||
simple = makeInstallerTest "simple" simple-test-config;
|
simple = makeInstallerTest "simple" simple-test-config;
|
||||||
|
|
||||||
# Test cloned configurations with the simple grub configuration
|
# 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
|
# Simple GPT/UEFI configuration using systemd-boot with 3 partitions: ESP, swap & root filesystem
|
||||||
simpleUefiSystemdBoot = makeInstallerTest "simpleUefiSystemdBoot" {
|
simpleUefiSystemdBoot = makeInstallerTest "simpleUefiSystemdBoot" {
|
||||||
|
@ -467,7 +467,7 @@ in {
|
||||||
simpleUefiGrub = makeInstallerTest "simpleUefiGrub" simple-uefi-grub-config;
|
simpleUefiGrub = makeInstallerTest "simpleUefiGrub" simple-uefi-grub-config;
|
||||||
|
|
||||||
# Test cloned configurations with the uefi grub configuration
|
# 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.
|
# Same as the previous, but now with a separate /boot partition.
|
||||||
separateBoot = makeInstallerTest "separateBoot" {
|
separateBoot = makeInstallerTest "separateBoot" {
|
||||||
|
|
|
@ -5,7 +5,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
|
||||||
# License: http://creativecommons.org/licenses/by-sa/4.0/
|
# License: http://creativecommons.org/licenses/by-sa/4.0/
|
||||||
|
|
||||||
name = "Blue_Wave_Theory-Skyhawk_Beach.mp3";
|
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";
|
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 = {
|
services.nginx.virtualHosts.server = {
|
||||||
root = lib.mkForce (pkgs.runCommandLocal "testdir2" {} ''
|
root = lib.mkForce (pkgs.runCommandLocal "testdir2" {} ''
|
||||||
mkdir "$out"
|
mkdir "$out"
|
||||||
|
@ -70,7 +70,7 @@ import ./make-test-python.nix {
|
||||||
|
|
||||||
testScript = { nodes, ... }: let
|
testScript = { nodes, ... }: let
|
||||||
inherit (nodes.server.config.system.build) toplevel;
|
inherit (nodes.server.config.system.build) toplevel;
|
||||||
newSystem = "${toplevel}/fine-tune/child-1";
|
newSystem = "${toplevel}/specialisation/pass-checks";
|
||||||
in ''
|
in ''
|
||||||
start_all()
|
start_all()
|
||||||
|
|
||||||
|
|
|
@ -42,38 +42,35 @@ import ./make-test-python.nix ({ pkgs, ... }: {
|
||||||
|
|
||||||
services.nginx.enableReload = true;
|
services.nginx.enableReload = true;
|
||||||
|
|
||||||
nesting.clone = [
|
specialisation.etagSystem.configuration = {
|
||||||
{
|
services.nginx.virtualHosts.localhost = {
|
||||||
services.nginx.virtualHosts.localhost = {
|
root = lib.mkForce (pkgs.runCommand "testdir2" {} ''
|
||||||
root = lib.mkForce (pkgs.runCommand "testdir2" {} ''
|
mkdir "$out"
|
||||||
mkdir "$out"
|
echo content changed > "$out/index.html"
|
||||||
echo content changed > "$out/index.html"
|
'');
|
||||||
'');
|
};
|
||||||
};
|
};
|
||||||
}
|
|
||||||
|
|
||||||
{
|
specialisation.justReloadSystem.configuration = {
|
||||||
services.nginx.virtualHosts."1.my.test".listen = [ { addr = "127.0.0.1"; port = 8080; }];
|
services.nginx.virtualHosts."1.my.test".listen = [ { addr = "127.0.0.1"; port = 8080; }];
|
||||||
}
|
};
|
||||||
|
|
||||||
{
|
specialisation.reloadRestartSystem.configuration = {
|
||||||
services.nginx.package = pkgs.nginxUnstable;
|
services.nginx.package = pkgs.nginxUnstable;
|
||||||
}
|
};
|
||||||
|
|
||||||
{
|
specialisation.reloadWithErrorsSystem.configuration = {
|
||||||
services.nginx.package = pkgs.nginxUnstable;
|
services.nginx.package = pkgs.nginxUnstable;
|
||||||
services.nginx.virtualHosts."!@$$(#*%".locations."~@#*$*!)".proxyPass = ";;;";
|
services.nginx.virtualHosts."!@$$(#*%".locations."~@#*$*!)".proxyPass = ";;;";
|
||||||
}
|
};
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
testScript = { nodes, ... }: let
|
testScript = { nodes, ... }: let
|
||||||
etagSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-1";
|
etagSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/etagSystem";
|
||||||
justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-2";
|
justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/justReloadSystem";
|
||||||
reloadRestartSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-3";
|
reloadRestartSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/reloadRestartSystem";
|
||||||
reloadWithErrorsSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-4";
|
reloadWithErrorsSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/reloadWithErrorsSystem";
|
||||||
in ''
|
in ''
|
||||||
url = "http://localhost/index.html"
|
url = "http://localhost/index.html"
|
||||||
|
|
||||||
|
|
|
@ -15,13 +15,13 @@ let
|
||||||
services.redmine.database.type = "mysql2";
|
services.redmine.database.type = "mysql2";
|
||||||
services.redmine.plugins = {
|
services.redmine.plugins = {
|
||||||
redmine_env_auth = pkgs.fetchurl {
|
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";
|
sha256 = "1xb8lyarc7mpi86yflnlgyllh9hfwb9z304f19dx409gqpia99sc";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
services.redmine.themes = {
|
services.redmine.themes = {
|
||||||
dkuk-redmine_alex_skin = pkgs.fetchurl {
|
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";
|
sha256 = "0hrin9lzyi50k4w2bd2b30vrf1i4fi1c0gyas5801wn8i7kpm9yl";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -43,13 +43,13 @@ let
|
||||||
services.redmine.database.type = "postgresql";
|
services.redmine.database.type = "postgresql";
|
||||||
services.redmine.plugins = {
|
services.redmine.plugins = {
|
||||||
redmine_env_auth = pkgs.fetchurl {
|
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";
|
sha256 = "1xb8lyarc7mpi86yflnlgyllh9hfwb9z304f19dx409gqpia99sc";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
services.redmine.themes = {
|
services.redmine.themes = {
|
||||||
dkuk-redmine_alex_skin = pkgs.fetchurl {
|
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";
|
sha256 = "0hrin9lzyi50k4w2bd2b30vrf1i4fi1c0gyas5801wn8i7kpm9yl";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -12,6 +12,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
|
||||||
database.password = "not production";
|
database.password = "not production";
|
||||||
package = pkgs.roundcube.withPlugins (plugins: [ plugins.persistent_login ]);
|
package = pkgs.roundcube.withPlugins (plugins: [ plugins.persistent_login ]);
|
||||||
plugins = [ "persistent_login" ];
|
plugins = [ "persistent_login" ];
|
||||||
|
dicts = with pkgs.aspellDicts; [ en fr de ];
|
||||||
};
|
};
|
||||||
services.nginx.virtualHosts.roundcube = {
|
services.nginx.virtualHosts.roundcube = {
|
||||||
forceSSL = false;
|
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
|
let
|
||||||
|
|
||||||
stick = pkgs.fetchurl {
|
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";
|
sha256 = "0was1xgjkjad91nipzclaz5biv3m4b2nk029ga6nk7iklwi19l8b";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ rustPlatform.buildRustPackage rec {
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Checks whether the contrast between two colors meet the WCAG requirements";
|
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;
|
license = licenses.gpl3;
|
||||||
maintainers = with maintainers; [ jtojnar ];
|
maintainers = with maintainers; [ jtojnar ];
|
||||||
};
|
};
|
||||||
|
|
|
@ -45,7 +45,7 @@ stdenv.mkDerivation {
|
||||||
] ++ lib.optional speechSupport speechd;
|
] ++ lib.optional speechSupport speechd;
|
||||||
|
|
||||||
meta = {
|
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";
|
description = "Information-efficient text-entry interface, driven by natural continuous pointing gestures";
|
||||||
license = lib.licenses.gpl2;
|
license = lib.licenses.gpl2;
|
||||||
maintainers = [ lib.maintainers.Profpatsch ];
|
maintainers = [ lib.maintainers.Profpatsch ];
|
||||||
|
|
|
@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
|
||||||
The features can be activated and configured through the Universal Access
|
The features can be activated and configured through the Universal Access
|
||||||
panel of the GNOME Control Center.
|
panel of the GNOME Control Center.
|
||||||
'';
|
'';
|
||||||
homepage = https://wiki.gnome.org/Projects/Mousetweaks;
|
homepage = "https://wiki.gnome.org/Projects/Mousetweaks";
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [ maintainers.johnazoidberg ];
|
maintainers = [ maintainers.johnazoidberg ];
|
||||||
|
|
|
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
|
||||||
Mono and stereo to B-format panning, horizontal rotator, square, hexagon and cube decoders.
|
Mono and stereo to B-format panning, horizontal rotator, square, hexagon and cube decoders.
|
||||||
'';
|
'';
|
||||||
version = version;
|
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;
|
license = stdenv.lib.licenses.gpl2Plus;
|
||||||
maintainers = [ stdenv.lib.maintainers.magnetophon ];
|
maintainers = [ stdenv.lib.maintainers.magnetophon ];
|
||||||
platforms = stdenv.lib.platforms.linux;
|
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.
|
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;
|
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;
|
license = stdenv.lib.licenses.gpl2Plus;
|
||||||
maintainers = [ stdenv.lib.maintainers.magnetophon ];
|
maintainers = [ stdenv.lib.maintainers.magnetophon ];
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
|
|
@ -18,11 +18,11 @@ in stdenv.mkDerivation {
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
(fetchpatch {
|
(fetchpatch {
|
||||||
url = https://repo.or.cz/a2jmidid.git/patch/24e3b8e543256ae8fdfb4b75eb9fd775f07c46e2;
|
url = "https://repo.or.cz/a2jmidid.git/patch/24e3b8e543256ae8fdfb4b75eb9fd775f07c46e2";
|
||||||
sha256 = "1nxrvnhxlgqc9wbxnp1gnpw4wjyzxvymwcg1gh2nqzmssgfykfkc";
|
sha256 = "1nxrvnhxlgqc9wbxnp1gnpw4wjyzxvymwcg1gh2nqzmssgfykfkc";
|
||||||
})
|
})
|
||||||
(fetchpatch {
|
(fetchpatch {
|
||||||
url = https://repo.or.cz/a2jmidid.git/patch/7f82da7eb2f540a94db23331be98d42a58ddc269;
|
url = "https://repo.or.cz/a2jmidid.git/patch/7f82da7eb2f540a94db23331be98d42a58ddc269";
|
||||||
sha256 = "1nab9zf0agbcj5pvhl90pz0cx1d204d4janqflc5ymjhy8jyrsdv";
|
sha256 = "1nab9zf0agbcj5pvhl90pz0cx1d204d4janqflc5ymjhy8jyrsdv";
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
|
@ -55,7 +55,7 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "ReplayGain for AAC files";
|
description = "ReplayGain for AAC files";
|
||||||
homepage = https://aacgain.altosdesign.com;
|
homepage = "https://aacgain.altosdesign.com";
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [ maintainers.robbinch ];
|
maintainers = [ maintainers.robbinch ];
|
||||||
|
|
|
@ -46,7 +46,7 @@ in
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = http://abcde.einval.com/wiki/;
|
homepage = "http://abcde.einval.com/wiki/";
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
maintainers = with maintainers; [ gebner ];
|
maintainers = with maintainers; [ gebner ];
|
||||||
description = "Command-line audio CD ripper";
|
description = "Command-line audio CD ripper";
|
||||||
|
|
|
@ -83,7 +83,7 @@ multiStdenv.mkDerivation {
|
||||||
protocol to correctly embed the plugin editor into the host
|
protocol to correctly embed the plugin editor into the host
|
||||||
window.
|
window.
|
||||||
'';
|
'';
|
||||||
homepage = https://github.com/phantom-code/airwave;
|
homepage = "https://github.com/phantom-code/airwave";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
maintainers = with maintainers; [ michalrus ];
|
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.
|
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;
|
license = licenses.gpl2;
|
||||||
maintainers = [ maintainers.mrVanDalo ];
|
maintainers = [ maintainers.mrVanDalo ];
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
|
|
|
@ -14,7 +14,7 @@ mkDerivation rec {
|
||||||
# master has the Qt5 version as of April 2018 but a formal release has not
|
# 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
|
# yet been made so change this back to the proper upstream when such a
|
||||||
# release is out
|
# 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";
|
# url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
|
||||||
rev = "457fbda25a85a102bfda92aa7137e7ef5e4c8b00";
|
rev = "457fbda25a85a102bfda92aa7137e7ef5e4c8b00";
|
||||||
sha256 = "1ig2mg8pqany6m2zplkrvldcv4ibxwsypnyv5igm7nz7ax82cd5j";
|
sha256 = "1ig2mg8pqany6m2zplkrvldcv4ibxwsypnyv5igm7nz7ax82cd5j";
|
||||||
|
|
|
@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
|
||||||
Please consider supporting the ardour project financially:
|
Please consider supporting the ardour project financially:
|
||||||
https://community.ardour.org/node/8288
|
https://community.ardour.org/node/8288
|
||||||
'';
|
'';
|
||||||
homepage = http://ardour.org/;
|
homepage = "http://ardour.org/";
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [ maintainers.goibhniu maintainers.fps ];
|
maintainers = [ maintainers.goibhniu maintainers.fps ];
|
||||||
|
|
|
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "GTK client for MPD (Music player daemon)";
|
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;
|
license = stdenv.lib.licenses.gpl2Plus;
|
||||||
maintainers = [ stdenv.lib.maintainers.garrison ];
|
maintainers = [ stdenv.lib.maintainers.garrison ];
|
||||||
platforms = stdenv.lib.platforms.all;
|
platforms = stdenv.lib.platforms.all;
|
||||||
|
|
|
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
|
||||||
buildInputs = [ cairomm cmake libjack2 libpthreadstubs libXdmcp libxshmfence libsndfile lv2 ntk ];
|
buildInputs = [ cairomm cmake libjack2 libpthreadstubs libXdmcp libxshmfence libsndfile lv2 ntk ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = http://openavproductions.com/artyfx/;
|
homepage = "http://openavproductions.com/artyfx/";
|
||||||
description = "A LV2 plugin bundle of artistic realtime effects";
|
description = "A LV2 plugin bundle of artistic realtime effects";
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
maintainers = [ maintainers.magnetophon ];
|
maintainers = [ maintainers.magnetophon ];
|
||||||
|
|
|
@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "A graphical Audio CD ripper and encoder for Linux";
|
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;
|
license = licenses.gpl2;
|
||||||
maintainers = with maintainers; [ mudri ];
|
maintainers = with maintainers; [ mudri ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
|
|
@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Audio player";
|
description = "Audio player";
|
||||||
homepage = https://audacious-media-player.org/;
|
homepage = "https://audacious-media-player.org/";
|
||||||
maintainers = with maintainers; [ eelco ramkromberg ];
|
maintainers = with maintainers; [ eelco ramkromberg ];
|
||||||
platforms = with platforms; linux;
|
platforms = with platforms; linux;
|
||||||
license = with licenses; [
|
license = with licenses; [
|
||||||
|
|
|
@ -81,7 +81,7 @@ mkDerivation {
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Audio player";
|
description = "Audio player";
|
||||||
homepage = https://audacious-media-player.org/;
|
homepage = "https://audacious-media-player.org/";
|
||||||
maintainers = with maintainers; [ ttuegel ];
|
maintainers = with maintainers; [ ttuegel ];
|
||||||
platforms = with platforms; linux;
|
platforms = with platforms; linux;
|
||||||
license = with licenses; [
|
license = with licenses; [
|
||||||
|
|
|
@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Sound editor with graphical UI";
|
description = "Sound editor with graphical UI";
|
||||||
homepage = http://audacityteam.org/;
|
homepage = "http://audacityteam.org/";
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
platforms = intersectLists platforms.linux platforms.x86; # fails on ARM
|
platforms = intersectLists platforms.linux platforms.x86; # fails on ARM
|
||||||
maintainers = with maintainers; [ the-kenny ];
|
maintainers = with maintainers; [ the-kenny ];
|
||||||
|
|
|
@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
|
||||||
automatically record your Skype calls. It supports several audio (output)
|
automatically record your Skype calls. It supports several audio (output)
|
||||||
formats such as OGG audio, Flac, MP3 and WAV.
|
formats such as OGG audio, Flac, MP3 and WAV.
|
||||||
'';
|
'';
|
||||||
homepage = https://launchpad.net/~audio-recorder;
|
homepage = "https://launchpad.net/~audio-recorder";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [ maintainers.msteen ];
|
maintainers = [ maintainers.msteen ];
|
||||||
|
|
|
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
|
||||||
Aumix adjusts an audio mixer from X, the console, a terminal,
|
Aumix adjusts an audio mixer from X, the console, a terminal,
|
||||||
the command line or a script.
|
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;
|
license = stdenv.lib.licenses.gpl2Plus;
|
||||||
|
|
||||||
maintainers = [ ];
|
maintainers = [ ];
|
||||||
|
|
|
@ -88,7 +88,7 @@ stdenv.mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = http://www.axoloti.com;
|
homepage = "http://www.axoloti.com";
|
||||||
description = ''
|
description = ''
|
||||||
Sketching embedded digital audio algorithms.
|
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
|
phones. With dfu-util you are able to download firmware to your device or
|
||||||
upload firmware from it.
|
upload firmware from it.
|
||||||
'';
|
'';
|
||||||
homepage = http://dfu-util.sourceforge.net;
|
homepage = "http://dfu-util.sourceforge.net";
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
maintainers = [ ];
|
maintainers = [ ];
|
||||||
|
|
|
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = http://www.libusb.info;
|
homepage = "http://www.libusb.info";
|
||||||
description = "User-space USB library";
|
description = "User-space USB library";
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
license = licenses.lgpl21;
|
license = licenses.lgpl21;
|
||||||
|
|
|
@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
|
||||||
displays, and continuous capture tools for hunting down and studying
|
displays, and continuous capture tools for hunting down and studying
|
||||||
elusive signal characteristics.
|
elusive signal characteristics.
|
||||||
'';
|
'';
|
||||||
homepage = http://www.baudline.com/;
|
homepage = "http://www.baudline.com/";
|
||||||
# See http://www.baudline.com/faq.html#licensing_terms.
|
# See http://www.baudline.com/faq.html#licensing_terms.
|
||||||
# (Do NOT (re)distribute on hydra.)
|
# (Do NOT (re)distribute on hydra.)
|
||||||
license = licenses.unfree;
|
license = licenses.unfree;
|
||||||
|
|
|
@ -14,13 +14,13 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
(fetchurl {
|
(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";
|
sha256 = "021mz6933iw7mpk6b9cbjr8naj6smbq1hwqjszlyx72qbwrrid7k";
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
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";
|
description = "Also known as jack bitscope. Useful to detect denormals";
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
maintainers = [ maintainers.magnetophon ];
|
maintainers = [ maintainers.magnetophon ];
|
||||||
|
|
|
@ -90,7 +90,7 @@ stdenv.mkDerivation rec {
|
||||||
production, performance and DJing, with a focus on flexible
|
production, performance and DJing, with a focus on flexible
|
||||||
editing tools and a super-fast workflow.
|
editing tools and a super-fast workflow.
|
||||||
'';
|
'';
|
||||||
homepage = https://www.bitwig.com/;
|
homepage = "https://www.bitwig.com/";
|
||||||
license = licenses.unfree;
|
license = licenses.unfree;
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
maintainers = with maintainers; [ michalrus mrVanDalo ];
|
maintainers = with maintainers; [ michalrus mrVanDalo ];
|
||||||
|
|
|
@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "A range of synthesiser, electric piano and organ emulations";
|
description = "A range of synthesiser, electric piano and organ emulations";
|
||||||
homepage = http://bristol.sourceforge.net;
|
homepage = "http://bristol.sourceforge.net";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
platforms = ["x86_64-linux" "i686-linux"];
|
platforms = ["x86_64-linux" "i686-linux"];
|
||||||
maintainers = [ maintainers.goibhniu ];
|
maintainers = [ maintainers.goibhniu ];
|
||||||
|
|
|
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "A audio/video loudness scanner implementing ITU-R BS.1770";
|
description = "A audio/video loudness scanner implementing ITU-R BS.1770";
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
homepage = http://bs1770gain.sourceforge.net/;
|
homepage = "http://bs1770gain.sourceforge.net/";
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
||||||
installFlags = [ "PREFIX=$(out)" ];
|
installFlags = [ "PREFIX=$(out)" ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = https://github.com/sjaehn/BSEQuencer;
|
homepage = "https://github.com/sjaehn/BSEQuencer";
|
||||||
description = "Multi channel MIDI step sequencer LV2 plugin";
|
description = "Multi channel MIDI step sequencer LV2 plugin";
|
||||||
maintainers = [ maintainers.magnetophon ];
|
maintainers = [ maintainers.magnetophon ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
|
|
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
||||||
installFlags = [ "PREFIX=$(out)" ];
|
installFlags = [ "PREFIX=$(out)" ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = https://github.com/sjaehn/BShapr;
|
homepage = "https://github.com/sjaehn/BShapr";
|
||||||
description = "Beat / envelope shaper LV2 plugin";
|
description = "Beat / envelope shaper LV2 plugin";
|
||||||
maintainers = [ maintainers.magnetophon ];
|
maintainers = [ maintainers.magnetophon ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "BSlizr";
|
pname = "BSlizr";
|
||||||
version = "1.2.4";
|
version = "1.2.6";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "sjaehn";
|
owner = "sjaehn";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "${version}";
|
rev = "${version}";
|
||||||
sha256 = "0gyczxhd1jch7lwz3y1nrbpc0dycw9cc5i144rpif6b9gd2y1h1j";
|
sha256 = "1l0znwvvqd2s24c652q54pkizlh86mvmr8h0qqp9xma0i575fcrh";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
||||||
installFlags = [ "PREFIX=$(out)" ];
|
installFlags = [ "PREFIX=$(out)" ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
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)";
|
description = "Sequenced audio slicing effect LV2 plugin (step sequencer effect)";
|
||||||
maintainers = [ maintainers.magnetophon ];
|
maintainers = [ maintainers.magnetophon ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
|
|
@ -91,7 +91,7 @@ mkDerivation rec {
|
||||||
'') scriptAndSource;
|
'') scriptAndSource;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = https://github.com/falkTX/Cadence/;
|
homepage = "https://github.com/falkTX/Cadence/";
|
||||||
description = "Collection of tools useful for audio production";
|
description = "Collection of tools useful for audio production";
|
||||||
license = stdenv.lib.licenses.gpl2Plus;
|
license = stdenv.lib.licenses.gpl2Plus;
|
||||||
maintainers = with stdenv.lib.maintainers; [ genesis worldofpeace ];
|
maintainers = with stdenv.lib.maintainers; [ genesis worldofpeace ];
|
||||||
|
|
|
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
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";
|
description = "A set of high quality open source audio plugins for musicians";
|
||||||
license = licenses.lgpl2;
|
license = licenses.lgpl2;
|
||||||
maintainers = [ maintainers.goibhniu ];
|
maintainers = [ maintainers.goibhniu ];
|
||||||
|
|
|
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
|
||||||
considerations are latency-free realtime operation, modesty of
|
considerations are latency-free realtime operation, modesty of
|
||||||
resource demands and meaningful control interfaces.
|
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;
|
license = stdenv.lib.licenses.gpl3;
|
||||||
maintainers = [ stdenv.lib.maintainers.astsmtl ];
|
maintainers = [ stdenv.lib.maintainers.astsmtl ];
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
|
|
@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = http://kxstudio.sf.net/carla;
|
homepage = "http://kxstudio.sf.net/carla";
|
||||||
description = "An audio plugin host";
|
description = "An audio plugin host";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
It currently supports LADSPA (including LRDF), DSSI, LV2, VST2/3
|
It currently supports LADSPA (including LRDF), DSSI, LV2, VST2/3
|
||||||
|
|
|
@ -31,7 +31,7 @@ stdenv.mkDerivation {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
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)";
|
description = "A multiprocess audio converter that supports many formats (FLAC, MP3, Ogg Vorbis, Windows codecs and many more)";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
platforms = platforms.linux ++ platforms.darwin;
|
platforms = platforms.linux ++ platforms.darwin;
|
||||||
|
|
|
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Console-based Audio Visualizer for Alsa";
|
description = "Console-based Audio Visualizer for Alsa";
|
||||||
homepage = https://github.com/karlstav/cava;
|
homepage = "https://github.com/karlstav/cava";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = with maintainers; [ offline mirrexagon ];
|
maintainers = with maintainers; [ offline mirrexagon ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
|
|
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
|
||||||
++ stdenv.lib.optional stdenv.isDarwin IOKit;
|
++ stdenv.lib.optional stdenv.isDarwin IOKit;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = http://linukz.org/cd-discid.shtml;
|
homepage = "http://linukz.org/cd-discid.shtml";
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
maintainers = [ maintainers.rycee ];
|
maintainers = [ maintainers.rycee ];
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
|
|
|
@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
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";
|
description = "A tool and library for reading digital audio from CDs";
|
||||||
license = with licenses; [ gpl2Plus lgpl21Plus ];
|
license = with licenses; [ gpl2Plus lgpl21Plus ];
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
|
|
|
@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Programming language for real-time sound synthesis and music creation";
|
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;
|
license = licenses.gpl2;
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
maintainers = with maintainers; [ ftrvxmtrx ];
|
maintainers = with maintainers; [ ftrvxmtrx ];
|
||||||
|
|
|
@ -91,7 +91,7 @@ let
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = http://www.clementine-player.org;
|
homepage = "http://www.clementine-player.org";
|
||||||
description = "A multiplatform music player";
|
description = "A multiplatform music player";
|
||||||
license = licenses.gpl3Plus;
|
license = licenses.gpl3Plus;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
@ -130,7 +130,7 @@ let
|
||||||
'';
|
'';
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = http://www.clementine-player.org;
|
homepage = "http://www.clementine-player.org";
|
||||||
description = "Spotify integration for Clementine";
|
description = "Spotify integration for Clementine";
|
||||||
# The blob itself is Apache-licensed, although libspotify is unfree.
|
# The blob itself is Apache-licensed, although libspotify is unfree.
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
|
|
|
@ -23,7 +23,7 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "An MPD client built on top of rofi";
|
description = "An MPD client built on top of rofi";
|
||||||
homepage = https://github.com/carnager/clerk;
|
homepage = "https://github.com/carnager/clerk";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = with maintainers; [ anderspapitto ];
|
maintainers = with maintainers; [ anderspapitto ];
|
||||||
};
|
};
|
||||||
|
|
|
@ -128,7 +128,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Small, fast and powerful console music player for Linux and *BSD";
|
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;
|
license = licenses.gpl2;
|
||||||
maintainers = [ maintainers.oxij ];
|
maintainers = [ maintainers.oxij ];
|
||||||
platforms = platforms.linux ++ platforms.darwin;
|
platforms = platforms.linux ++ platforms.darwin;
|
||||||
|
|
|
@ -28,7 +28,7 @@ stdenv.mkDerivation {
|
||||||
+ run `cmusfm init` to generate configuration file under ~/.config/cmus/cmusfm.conf
|
+ run `cmusfm init` to generate configuration file under ~/.config/cmus/cmusfm.conf
|
||||||
+ Inside cmus run `:set status_display_program=cmusfm` to set up cmusfm
|
+ 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 ];
|
maintainers = with stdenv.lib.maintainers; [ CharlesHD ];
|
||||||
license = licenses.gpl3Plus;
|
license = licenses.gpl3Plus;
|
||||||
platforms = platforms.linux ++ platforms.darwin;
|
platforms = platforms.linux ++ platforms.darwin;
|
||||||
|
|
|
@ -75,7 +75,7 @@ python3Packages.buildPythonApplication rec {
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "A modern audio book player for Linux using GTK 3";
|
description = "A modern audio book player for Linux using GTK 3";
|
||||||
homepage = https://cozy.geigi.de/;
|
homepage = "https://cozy.geigi.de/";
|
||||||
maintainers = [ maintainers.makefu ];
|
maintainers = [ maintainers.makefu ];
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
};
|
};
|
||||||
|
|
|
@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
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";
|
description = "Terminal-based ripper/encoder/tagger tool for creating Ogg Vorbis/FLAC files";
|
||||||
license = stdenv.lib.licenses.gpl1;
|
license = stdenv.lib.licenses.gpl1;
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
|
|
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
|
||||||
postInstall = "rm $out/lib/ladspa/celllm_3890.*";
|
postInstall = "rm $out/lib/ladspa/celllm_3890.*";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
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";
|
description = "A group of LADSPA Audio plugins for FM broadcast and more";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
CSA means : Contrôle Signal Audio.
|
CSA means : Contrôle Signal Audio.
|
||||||
|
|
|
@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "CsoundQt is a frontend for Csound with editor, integrated help, widgets and other features.";
|
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;
|
license = licenses.gpl2;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = with maintainers; [ hlolli ];
|
maintainers = with maintainers; [ hlolli ];
|
||||||
|
|
|
@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
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";
|
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;
|
license = licenses.gpl2;
|
||||||
maintainers = [maintainers.marcweber];
|
maintainers = [maintainers.marcweber];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
|
|
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Plug-in that adds GTK 3 header bar to the DeaDBeeF music player";
|
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;
|
license = licenses.gpl2Plus;
|
||||||
maintainers = [ maintainers.jtojnar ];
|
maintainers = [ maintainers.jtojnar ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
|
|
@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
|
||||||
meta = with stdenv.lib; {
|
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)
|
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";
|
description = "DeaDBeeF Infobar Plugin";
|
||||||
homepage = https://bitbucket.org/dsimbiriatin/deadbeef-infobar;
|
homepage = "https://bitbucket.org/dsimbiriatin/deadbeef-infobar";
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
maintainers = [ maintainers.jtojnar ];
|
maintainers = [ maintainers.jtojnar ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
|
|
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "MPRISv2 plugin for the DeaDBeeF music player";
|
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;
|
license = licenses.gpl2;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [ maintainers.abbradar ];
|
maintainers = [ maintainers.abbradar ];
|
||||||
|
|
|
@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Music notation and composition software used with lilypond";
|
description = "Music notation and composition software used with lilypond";
|
||||||
homepage = http://denemo.org;
|
homepage = "http://denemo.org";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [ maintainers.olynch ];
|
maintainers = [ maintainers.olynch ];
|
||||||
|
|
|
@ -59,7 +59,7 @@ in stdenv.mkDerivation rec {
|
||||||
there are basic functionalities to align the signals in time and
|
there are basic functionalities to align the signals in time and
|
||||||
amplitude, this software does not aim to be an audio editor.
|
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 ];
|
license = [ licenses.gpl3Plus reaperFork.meta.license ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
|
|
|
@ -21,7 +21,7 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "An unimpressive thingie for playing bits of samples with some level of accuracy";
|
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;
|
license = licenses.gpl3;
|
||||||
maintainers = with maintainers; [ anderspapitto ];
|
maintainers = with maintainers; [ anderspapitto ];
|
||||||
platforms = with platforms; linux;
|
platforms = with platforms; linux;
|
||||||
|
|
|
@ -40,7 +40,7 @@ in stdenv.mkDerivation rec {
|
||||||
makeFlags = [ "PREFIX=$(out)" ];
|
makeFlags = [ "PREFIX=$(out)" ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = http://distrho.sourceforge.net;
|
homepage = "http://distrho.sourceforge.net";
|
||||||
description = "A collection of cross-platform audio effects and plugins";
|
description = "A collection of cross-platform audio effects and plugins";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
Includes:
|
Includes:
|
||||||
|
|
|
@ -23,7 +23,7 @@ python3Packages.buildPythonApplication rec {
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Compute the DR14 of a given audio file according to the procedure described by the Pleasurize Music Foundation";
|
description = "Compute the DR14 of a given audio file according to the procedure described by the Pleasurize Music Foundation";
|
||||||
license = licenses.gpl3Plus;
|
license = licenses.gpl3Plus;
|
||||||
homepage = http://dr14tmeter.sourceforge.net/;
|
homepage = "http://dr14tmeter.sourceforge.net/";
|
||||||
maintainers = [ maintainers.adisbladis ];
|
maintainers = [ maintainers.adisbladis ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
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";
|
description = "A hall-style reverb based on freeverb3 algorithms";
|
||||||
maintainers = [ maintainers.magnetophon ];
|
maintainers = [ maintainers.magnetophon ];
|
||||||
license = licenses.gpl3;
|
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