summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/contributing/coding-conventions.xml9
-rw-r--r--maintainers/maintainer-list.nix6
-rw-r--r--nixos/doc/manual/release-notes/rl-2103.xml13
-rw-r--r--nixos/modules/i18n/input-method/default.nix2
-rw-r--r--nixos/modules/i18n/input-method/fcitx5.nix33
-rw-r--r--nixos/modules/module-list.nix3
-rw-r--r--nixos/modules/services/audio/mpdscribble.nix202
-rw-r--r--nixos/modules/services/misc/gitea.nix2
-rw-r--r--nixos/modules/services/networking/iwd.nix5
-rw-r--r--pkgs/applications/audio/opustags/default.nix22
-rw-r--r--pkgs/applications/misc/hugo/default.nix6
-rw-r--r--pkgs/build-support/vm/deb/deb-closure.pl2
-rw-r--r--pkgs/data/fonts/fira-code/default.nix5
-rw-r--r--pkgs/development/libraries/libguestfs/default.nix4
-rw-r--r--pkgs/development/libraries/libime/default.nix63
-rw-r--r--pkgs/development/libraries/sentencepiece/default.nix4
-rw-r--r--pkgs/development/libraries/xcb-imdkit/default.nix41
-rw-r--r--pkgs/development/php-packages/oci8/default.nix6
-rw-r--r--pkgs/development/python-modules/asgiref/default.nix5
-rw-r--r--pkgs/development/python-modules/awkward0/default.nix4
-rw-r--r--pkgs/development/python-modules/ds-store/default.nix31
-rw-r--r--pkgs/development/python-modules/graphene/default.nix4
-rw-r--r--pkgs/development/python-modules/pytile/default.nix56
-rw-r--r--pkgs/development/python-modules/uproot3/default.nix4
-rw-r--r--pkgs/development/tools/conftest/default.nix6
-rw-r--r--pkgs/development/tools/misc/cflow/default.nix9
-rw-r--r--pkgs/games/quake3/ioquake/default.nix12
-rw-r--r--pkgs/misc/drivers/hplip/default.nix6
-rw-r--r--pkgs/misc/drivers/hplip/hplip-3.20.11-nixos-cups-ppd-search-path.patch24
-rw-r--r--pkgs/misc/emulators/oberon-risc-emu/default.nix27
-rw-r--r--pkgs/misc/vscode-extensions/default.nix12
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/wireguard-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/telegraf/default.nix8
-rw-r--r--pkgs/servers/nosql/redis/default.nix13
-rw-r--r--pkgs/tools/backup/bupstash/default.nix33
-rw-r--r--pkgs/tools/inputmethods/evscript/default.nix24
-rw-r--r--pkgs/tools/inputmethods/fcitx5/default.nix100
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix76
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix60
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix71
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix40
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix46
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix47
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix38
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix38
-rw-r--r--pkgs/tools/inputmethods/fcitx5/with-addons.nix18
-rw-r--r--pkgs/tools/security/deepsea/default.nix30
-rw-r--r--pkgs/tools/security/pcsc-cyberjack/default.nix2
-rw-r--r--pkgs/tools/security/sn0int/default.nix8
-rw-r--r--pkgs/tools/typesetting/sile/default.nix5
-rw-r--r--pkgs/top-level/aliases.nix2
-rw-r--r--pkgs/top-level/all-packages.nix43
-rw-r--r--pkgs/top-level/dhall-packages.nix1
-rw-r--r--pkgs/top-level/perl-packages.nix2648
-rw-r--r--pkgs/top-level/php-packages.nix8
-rw-r--r--pkgs/top-level/python-packages.nix4
57 files changed, 2595 insertions, 1404 deletions
diff --git a/doc/contributing/coding-conventions.xml b/doc/contributing/coding-conventions.xml
index e587275a6383..cb6d60c2c138 100644
--- a/doc/contributing/coding-conventions.xml
+++ b/doc/contributing/coding-conventions.xml
@@ -178,6 +178,15 @@ args.stdenv.mkDerivation (args // {
</programlisting>
</para>
</listitem>
+ <listitem>
+ <para>
+ Prefer using the top-level <varname>lib</varname> over its alias
+ <literal>stdenv.lib</literal>. <varname>lib</varname> is unrelated to
+ <varname>stdenv</varname>, and so <literal>stdenv.lib</literal> should only
+ be used as a convenience alias when developing to avoid having to modify
+ the function inputs just to test something out.
+ </para>
+ </listitem>
</itemizedlist>
</section>
<section xml:id="sec-package-naming">
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 10a0d0588c17..346f7b47db43 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -5911,6 +5911,12 @@
githubId = 1387206;
name = "Mike Sperber";
};
+ milesbreslin = {
+ email = "milesbreslin@gmail.com";
+ github = "milesbreslin";
+ githubId = 38543128;
+ name = "Miles Breslin";
+ };
millerjason = {
email = "mailings-github@millerjason.com";
github = "millerjason";
diff --git a/nixos/doc/manual/release-notes/rl-2103.xml b/nixos/doc/manual/release-notes/rl-2103.xml
index 9070957aee4a..e0857e7731ee 100644
--- a/nixos/doc/manual/release-notes/rl-2103.xml
+++ b/nixos/doc/manual/release-notes/rl-2103.xml
@@ -108,6 +108,15 @@
</para>
</listitem>
<listitem>
+ <para>
+ The <varname>networking.wireless.iwd</varname> module now installs
+ the upstream-provided 80-iwd.link file, which sets the NamePolicy=
+ for all wlan devices to "keep kernel", to avoid race conditions
+ between iwd and networkd. If you don't want this, you can set
+ <literal>systemd.network.links."80-iwd" = lib.mkForce {}</literal>.
+ </para>
+ </listitem>
+ <listitem>
<para>
<literal>rubyMinimal</literal> was removed due to being unused and
unusable. The default ruby interpreter includes JIT support, which makes
@@ -321,8 +330,8 @@
</listitem>
<listitem>
<para>
- <package>fish-foreign-env</package> is now an alias for the
- <package>fishPlugins.foreign-env</package> package, in which the fish
+ The <package>fish-foreign-env</package> package has been replaced with
+ <package>fishPlugins.foreign-env</package>, in which the fish
functions have been relocated to the
<literal>vendor_functions.d</literal> directory to be loaded automatically.
</para>
diff --git a/nixos/modules/i18n/input-method/default.nix b/nixos/modules/i18n/input-method/default.nix
index 0d6dd3399bfc..2e7cfaab7b7c 100644
--- a/nixos/modules/i18n/input-method/default.nix
+++ b/nixos/modules/i18n/input-method/default.nix
@@ -29,7 +29,7 @@ in
options.i18n = {
inputMethod = {
enabled = mkOption {
- type = types.nullOr (types.enum [ "ibus" "fcitx" "nabi" "uim" "hime" ]);
+ type = types.nullOr (types.enum [ "ibus" "fcitx" "fcitx5" "nabi" "uim" "hime" ]);
default = null;
example = "fcitx";
description = ''
diff --git a/nixos/modules/i18n/input-method/fcitx5.nix b/nixos/modules/i18n/input-method/fcitx5.nix
new file mode 100644
index 000000000000..44962d202fe1
--- /dev/null
+++ b/nixos/modules/i18n/input-method/fcitx5.nix
@@ -0,0 +1,33 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+ im = config.i18n.inputMethod;
+ cfg = im.fcitx5;
+ fcitx5Package = pkgs.fcitx5-with-addons.override { inherit (cfg) addons; };
+in
+ {
+ options = {
+ i18n.inputMethod.fcitx5 = {
+ addons = mkOption {
+ type = with types; listOf package;
+ default = [];
+ example = with pkgs; [ fcitx5-rime ];
+ description = ''
+ Enabled Fcitx5 addons.
+ '';
+ };
+ };
+ };
+
+ config = mkIf (im.enabled == "fcitx5") {
+ i18n.inputMethod.package = fcitx5Package;
+
+ environment.variables = {
+ GTK_IM_MODULE = "fcitx";
+ QT_IM_MODULE = "fcitx";
+ XMODIFIERS = "@im=fcitx";
+ };
+ };
+ }
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index c2a9e0f32015..84e7c10ff64b 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -82,6 +82,7 @@
./hardware/xpadneo.nix
./i18n/input-method/default.nix
./i18n/input-method/fcitx.nix
+ ./i18n/input-method/fcitx5.nix
./i18n/input-method/hime.nix
./i18n/input-method/ibus.nix
./i18n/input-method/nabi.nix
@@ -101,6 +102,7 @@
./misc/version.nix
./misc/nixops-autoluks.nix
./programs/adb.nix
+ ./programs/appgate-sdp.nix
./programs/atop.nix
./programs/autojump.nix
./programs/bandwhich.nix
@@ -226,6 +228,7 @@
./services/audio/icecast.nix
./services/audio/liquidsoap.nix
./services/audio/mpd.nix
+ ./services/audio/mpdscribble.nix
./services/audio/mopidy.nix
./services/audio/roon-server.nix
./services/audio/slimserver.nix
diff --git a/nixos/modules/services/audio/mpdscribble.nix b/nixos/modules/services/audio/mpdscribble.nix
new file mode 100644
index 000000000000..642d8743935f
--- /dev/null
+++ b/nixos/modules/services/audio/mpdscribble.nix
@@ -0,0 +1,202 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.mpdscribble;
+ mpdCfg = config.services.mpd;
+
+ endpointUrls = {
+ "last.fm" = "http://post.audioscrobbler.com";
+ "libre.fm" = "http://turtle.libre.fm";
+ "jamendo" = "http://postaudioscrobbler.jamendo.com";
+ "listenbrainz" = "http://proxy.listenbrainz.org";
+ };
+
+ mkSection = secname: secCfg: ''
+ [${secname}]
+ url = ${secCfg.url}
+ username = ${secCfg.username}
+ password = {{${secname}_PASSWORD}}
+ journal = /var/lib/mpdscribble/${secname}.journal
+ '';
+
+ endpoints = concatStringsSep "\n" (mapAttrsToList mkSection cfg.endpoints);
+ cfgTemplate = pkgs.writeText "mpdscribble.conf" ''
+ ## This file was automatically genenrated by NixOS and will be overwritten.
+ ## Do not edit. Edit your NixOS configuration instead.
+
+ ## mpdscribble - an audioscrobbler for the Music Player Daemon.
+ ## http://mpd.wikia.com/wiki/Client:mpdscribble
+
+ # HTTP proxy URL.
+ ${optionalString (cfg.proxy != null) "proxy = ${cfg.proxy}"}
+
+ # The location of the mpdscribble log file. The special value
+ # "syslog" makes mpdscribble use the local syslog daemon. On most
+ # systems, log messages will appear in /var/log/daemon.log then.
+ # "-" means log to stderr (the current terminal).
+ log = -
+
+ # How verbose mpdscribble's logging should be. Default is 1.
+ verbose = ${toString cfg.verbose}
+
+ # How often should mpdscribble save the journal file? [seconds]
+ journal_interval = ${toString cfg.journalInterval}
+
+ # The host running MPD, possibly protected by a password
+ # ([PASSWORD@]HOSTNAME).
+ host = ${(optionalString (cfg.passwordFile != null) "{{MPD_PASSWORD}}@") + cfg.host}
+
+ # The port that the MPD listens on and mpdscribble should try to
+ # connect to.
+ port = ${toString cfg.port}
+
+ ${endpoints}
+ '';
+
+ cfgFile = "/run/mpdscribble/mpdscribble.conf";
+
+ replaceSecret = secretFile: placeholder: targetFile:
+ optionalString (secretFile != null) ''
+ ${pkgs.replace}/bin/replace-literal -ef ${placeholder} "$(cat ${secretFile})" ${targetFile}'';
+
+ preStart = pkgs.writeShellScript "mpdscribble-pre-start" ''
+ cp -f "${cfgTemplate}" "${cfgFile}"
+ ${replaceSecret cfg.passwordFile "{{MPD_PASSWORD}}" cfgFile}
+ ${concatStringsSep "\n" (mapAttrsToList (secname: cfg:
+ replaceSecret cfg.passwordFile "{{${secname}_PASSWORD}}" cfgFile)
+ cfg.endpoints)}
+ '';
+
+ localMpd = (cfg.host == "localhost" || cfg.host == "127.0.0.1");
+
+in {
+ ###### interface
+
+ options.services.mpdscribble = {
+
+ enable = mkEnableOption "mpdscribble";
+
+ proxy = mkOption {
+ default = null;
+ type = types.nullOr types.str;
+ description = ''
+ HTTP proxy URL.
+ '';
+ };
+
+ verbose = mkOption {
+ default = 1;
+ type = types.int;
+ description = ''
+ Log level for the mpdscribble daemon.
+ '';
+ };
+
+ journalInterval = mkOption {
+ default = 600;
+ example = 60;
+ type = types.int;
+ description = ''
+ How often should mpdscribble save the journal file? [seconds]
+ '';
+ };
+
+ host = mkOption {
+ default = (if mpdCfg.network.listenAddress != "any" then
+ mpdCfg.network.listenAddress
+ else
+ "localhost");
+ type = types.str;
+ description = ''
+ Host for the mpdscribble daemon to search for a mpd daemon on.
+ '';
+ };
+
+ passwordFile = mkOption {
+ default = if localMpd then
+ (findFirst
+ (c: any (x: x == "read") c.permissions)
+ { passwordFile = null; }
+ mpdCfg.credentials).passwordFile
+ else
+ null;
+ type = types.nullOr types.str;
+ description = ''
+ File containing the password for the mpd daemon.
+ If there is a local mpd configured using <option>services.mpd.credentials</option>
+ the default is automatically set to a matching passwordFile of the local mpd.
+ '';
+ };
+
+ port = mkOption {
+ default = mpdCfg.network.port;
+ type = types.port;
+ description = ''
+ Port for the mpdscribble daemon to search for a mpd daemon on.
+ '';
+ };
+
+ endpoints = mkOption {
+ type = (let
+ endpoint = { name, ... }: {
+ options = {
+ url = mkOption {
+ type = types.str;
+ default = endpointUrls.${name} or "";
+ description =
+ "The url endpoint where the scrobble API is listening.";
+ };
+ username = mkOption {
+ type = types.str;
+ description = ''
+ Username for the scrobble service.
+ '';
+ };
+ passwordFile = mkOption {
+ type = types.nullOr types.str;
+ description =
+ "File containing the password, either as MD5SUM or cleartext.";
+ };
+ };
+ };
+ in types.attrsOf (types.submodule endpoint));
+ default = { };
+ example = {
+ "last.fm" = {
+ username = "foo";
+ passwordFile = "/run/secrets/lastfm_password";
+ };
+ };
+ description = ''
+ Endpoints to scrobble to.
+ If the endpoint is one of "${
+ concatStringsSep "\", \"" (attrNames endpointUrls)
+ }" the url is set automatically.
+ '';
+ };
+
+ };
+
+ ###### implementation
+
+ config = mkIf cfg.enable {
+ systemd.services.mpdscribble = {
+ after = [ "network.target" ] ++ (optional localMpd "mpd.service");
+ description = "mpdscribble mpd scrobble client";
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ DynamicUser = true;
+ StateDirectory = "mpdscribble";
+ RuntimeDirectory = "mpdscribble";
+ RuntimeDirectoryMode = "700";
+ # TODO use LoadCredential= instead of running preStart with full privileges?
+ ExecStartPre = "+${preStart}";
+ ExecStart =
+ "${pkgs.mpdscribble}/bin/mpdscribble --no-daemon --conf ${cfgFile}";
+ };
+ };
+ };
+
+}
diff --git a/nixos/modules/services/misc/gitea.nix b/nixos/modules/services/misc/gitea.nix
index af80e99746be..ac702a05ee8b 100644
--- a/nixos/modules/services/misc/gitea.nix
+++ b/nixos/modules/services/misc/gitea.nix
@@ -605,5 +605,5 @@ in
timerConfig.OnCalendar = cfg.dump.interval;
};
};
- meta.maintainers = with lib.maintainers; [ srhb ];
+ meta.maintainers = with lib.maintainers; [ srhb ma27 ];
}
diff --git a/nixos/modules/services/networking/iwd.nix b/nixos/modules/services/networking/iwd.nix
index 6be67a8b96f4..99e5e78badd2 100644
--- a/nixos/modules/services/networking/iwd.nix
+++ b/nixos/modules/services/networking/iwd.nix
@@ -22,6 +22,11 @@ in {
systemd.packages = [ pkgs.iwd ];
+ systemd.network.links."80-iwd" = {
+ matchConfig.Type = "wlan";
+ linkConfig.NamePolicy = "keep kernel";
+ };
+
systemd.services.iwd.wantedBy = [ "multi-user.target" ];
};
diff --git a/pkgs/applications/audio/opustags/default.nix b/pkgs/applications/audio/opustags/default.nix
index 4e26c9b77523..83cf44853a5a 100644
--- a/pkgs/applications/audio/opustags/default.nix
+++ b/pkgs/applications/audio/opustags/default.nix
@@ -1,32 +1,20 @@
-{ stdenv, fetchFromGitHub, fetchpatch, cmake, pkg-config, libiconv, libogg
+{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, libiconv, libogg
, ffmpeg, glibcLocales, perl, perlPackages }:
stdenv.mkDerivation rec {
pname = "opustags";
- version = "1.5.1";
+ version = "1.6.0";
src = fetchFromGitHub {
owner = "fmang";
repo = "opustags";
rev = version;
- sha256 = "1dicv4s395b9gb4jpr0rnxdq9azr45pid62q3x08lb7cvyq3yxbh";
+ sha256 = "1wsfw713rhi2gg5xc04cx5i31hlw0l3wdflj3r1y8w45bdk6ag1z";
};
- patches = [
- # Fix building on darwin
- (fetchpatch {
- url = "https://github.com/fmang/opustags/commit/64fc6f8f6d20e034892e89abff0236c85cae98dc.patch";
- sha256 = "1djifzqhf1w51gbpqbndsh3gnl9iizp6hppxx8x2a92i9ns22zpg";
- })
- (fetchpatch {
- url = "https://github.com/fmang/opustags/commit/f98208c1a1d10c15f98b127bbfdf88a7b15b08dc.patch";
- sha256 = "1h3v0r336fca0y8zq1vl2wr8gaqs3vvrrckx7pvji4k1jpiqvp38";
- })
- ];
-
buildInputs = [ libogg ];
- nativeBuildInputs = [ cmake pkg-config ] ++ stdenv.lib.optional stdenv.isDarwin libiconv;
+ nativeBuildInputs = [ cmake pkg-config ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
doCheck = true;
@@ -38,7 +26,7 @@ stdenv.mkDerivation rec {
make check
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
homepage = "https://github.com/fmang/opustags";
description = "Ogg Opus tags editor";
platforms = platforms.all;
diff --git a/pkgs/applications/misc/hugo/default.nix b/pkgs/applications/misc/hugo/default.nix
index 3ded9f013fbc..d614360bf44d 100644
--- a/pkgs/applications/misc/hugo/default.nix
+++ b/pkgs/applications/misc/hugo/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "hugo";
- version = "0.79.0";
+ version = "0.80.0";
src = fetchFromGitHub {
owner = "gohugoio";
repo = pname;
rev = "v${version}";
- sha256 = "0i9c12w0jlfrqb5gygfn20rn41m7qy6ab03n779wbzwfqqz85mj6";
+ sha256 = "0xs9y5lj0mya6ag625x8j91mn9l9r13gxaqxyvl1fl40y2yjz1zm";
};
- vendorSha256 = "0jb6aqdv9yx7fxbkgd73rx6kvxagxscrin5b5bal3ig7ys1ghpsp";
+ vendorSha256 = "172mcs8p43bsdkd2hxg9qn6018fh8f36kxx0vgnq5q6fqsb6s1f6";
doCheck = false;
diff --git a/pkgs/build-support/vm/deb/deb-closure.pl b/pkgs/build-support/vm/deb/deb-closure.pl
index bed397d6f07e..fe23025df1d8 100644
--- a/pkgs/build-support/vm/deb/deb-closure.pl
+++ b/pkgs/build-support/vm/deb/deb-closure.pl
@@ -50,7 +50,7 @@ sub getDeps {
# virtual dependencies.
my %provides;
-foreach my $cdata (values %packages) {
+foreach my $cdata (sort {$a->{Package} cmp $b->{Package}} (values %packages)) {
if (defined $cdata->{Provides}) {
my @provides = getDeps(Dpkg::Deps::deps_parse($cdata->{Provides}));
foreach my $name (@provides) {
diff --git a/pkgs/data/fonts/fira-code/default.nix b/pkgs/data/fonts/fira-code/default.nix
index 4f0fb1e81c16..a3fac2d69d0b 100644
--- a/pkgs/data/fonts/fira-code/default.nix
+++ b/pkgs/data/fonts/fira-code/default.nix
@@ -7,12 +7,13 @@ in fetchzip {
url = "https://github.com/tonsky/FiraCode/releases/download/${version}/Fira_Code_v${version}.zip";
+ # only extract the variable font because everything else is a duplicate
postFetch = ''
mkdir -p $out/share/fonts
- unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+ unzip -j $downloadedFile '*-VF.ttf' -d $out/share/fonts/truetype
'';
- sha256 = "16v62wj872ba4w7qxn4l6zjgqh7lrpwh1xax1bp1x9dpz08mnq06";
+ sha256 = "1wbfjgvr9m5azl5w49y0hpqzgcraw6spd1wnxgxlzfx57x6gcw0k";
meta = with stdenv.lib; {
homepage = "https://github.com/tonsky/FiraCode";
diff --git a/pkgs/development/libraries/libguestfs/default.nix b/pkgs/development/libraries/libguestfs/default.nix
index b875b3579037..d6e45deadcf8 100644
--- a/pkgs/development/libraries/libguestfs/default.nix
+++ b/pkgs/development/libraries/libguestfs/default.nix
@@ -1,7 +1,7 @@
{ stdenv, fetchurl, pkgconfig, autoreconfHook, makeWrapper
, ncurses, cpio, gperf, cdrkit, flex, bison, qemu, pcre, augeas, libxml2
, acl, libcap, libcap_ng, libconfig, systemd, fuse, yajl, libvirt, hivex, db
-, gmp, readline, file, numactl, xen, libapparmor, jansson
+, gmp, readline, file, numactl, libapparmor, jansson
, getopt, perlPackages, ocamlPackages
, libtirpc
, appliance ? null
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
ncurses cpio gperf jansson
cdrkit flex bison qemu pcre augeas libxml2 acl libcap libcap_ng libconfig
systemd fuse yajl libvirt gmp readline file hivex db
- numactl xen libapparmor getopt perlPackages.ModuleBuild
+ numactl libapparmor getopt perlPackages.ModuleBuild