diff --git a/flake.nix b/flake.nix
index 29dffa9fa4e4..39553cde0ab5 100644
--- a/flake.nix
+++ b/flake.nix
@@ -48,6 +48,10 @@
system.nixos.versionSuffix =
".${final.substring 0 8 (self.lastModifiedDate or self.lastModified or "19700101")}.${self.shortRev or "dirty"}";
system.nixos.revision = final.mkIf (self ? rev) self.rev;
+
+ # NOTE: This assumes that `nixpkgs.config` is _not_ used when
+ # nixpkgs.pkgs is set OR _module.args.pkgs is set.
+ nixpkgs.config.path = self.outPath;
}
];
});
@@ -62,7 +66,7 @@
}).nixos.manual.x86_64-linux;
};
- legacyPackages = forAllSystems (system: import ./. { inherit system; });
+ legacyPackages = forAllSystems (system: import ./. { inherit system; config.path = self.outPath; });
nixosModules = {
notDetected = import ./nixos/modules/installer/scan/not-detected.nix;
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index db182861c7ba..12c684640bbb 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -6800,6 +6800,17 @@
fingerprint = "CC50 F82C 985D 2679 0703 AF15 19B0 82B3 DEFE 5451";
}];
};
+ leixb = {
+ email = "abone9999+nixpkgs@gmail.com";
+ matrix = "@leix_b:matrix.org";
+ github = "LeixB";
+ githubId = 17183803;
+ name = "Aleix Boné";
+ keys = [{
+ longkeyid = "rsa4096/0xFC035BB2BB28E15D";
+ fingerprint = "63D3 F436 EDE8 7E1F 1292 24AF FC03 5BB2 BB28 E15D";
+ }];
+ };
lejonet = {
email = "daniel@kuehn.se";
github = "lejonet";
diff --git a/nixos/modules/misc/documentation.nix b/nixos/modules/misc/documentation.nix
index b7746ddc2115..2afa43a3fe71 100644
--- a/nixos/modules/misc/documentation.nix
+++ b/nixos/modules/misc/documentation.nix
@@ -61,17 +61,85 @@ let
in scrubbedEval.options;
baseOptionsJSON =
let
- filter =
+ filterIntoStore =
builtins.filterSource
(n: t:
(t == "directory" -> baseNameOf n != "tests")
&& (t == "file" -> hasSuffix ".nix" n)
);
+
+ # Figure out if Nix runs in pure evaluation mode. May return true in
+ # impure mode, but this is highly unlikely.
+ # We need to know because of https://github.com/NixOS/nix/issues/1888
+ # and https://github.com/NixOS/nix/issues/5868
+ isPureEval = builtins.getEnv "PATH" == "" && builtins.getEnv "_" == "";
+
+ # Return a nixpkgs subpath with minimal copying.
+ #
+ # The sources for the base options json derivation can come in one of
+ # two forms:
+ # - single source: a store path with all of nixpkgs, postfix with
+ # subpaths to access various directories. This has the benefit of
+ # not creating copies of these subtrees in the Nix store, but
+ # can cause unnecessary rebuilds if you update the Nixpkgs `pkgs`
+ # tree often.
+ # - split sources: multiple store paths with subdirectories of
+ # nixpkgs that exclude the bulk of the pkgs directory.
+ # This requires more copying and hashing during evaluation but
+ # requires fewer files to be copied. This method produces fewer
+ # unnecessary rebuilds of the base options json.
+ #
+ # Flake
+ #
+ # Flakes always put a copy of the full nixpkgs sources in the store,
+ # so we can use the "single source" method. This method is ideal
+ # for using nixpkgs as a dependency, as the base options json will be
+ # substitutable from cache.nixos.org.
+ #
+ # This requires that the `self.outPath` is wired into `pkgs` correctly,
+ # which is done for you if `pkgs` comes from the `lib.nixosSystem` or
+ # `legacyPackages` flake attributes.
+ #
+ # Other Nixpkgs invocation
+ #
+ # If you do not use the known-correct flake attributes, but rather
+ # invoke Nixpkgs yourself, set `config.path` to the correct path value,
+ # e.g. `import nixpkgs { config.path = nixpkgs; }`.
+ #
+ # Choosing between single or split source paths
+ #
+ # We make assumptions based on the type and contents of `pkgs.path`.
+ # By passing a different `config.path` to Nixpkgs, you can influence
+ # how your documentation cache is evaluated and rebuilt.
+ #
+ # Single source
+ # - If pkgs.path is a string containing a store path, the code has no
+ # choice but to create this store path, if it hasn't already been.
+ # We assume that the "single source" method is most efficient.
+ # - If pkgs.path is a path value containing that is a store path,
+ # we try to convert it to a string with context without copying.
+ # This occurs for example when nixpkgs was fetched and using its
+ # default `config.path`, which is `./.`.
+ # Nix currently does not allow this conversion when evaluating in
+ # pure mode. If the conversion is not possible, we use the
+ # "split source" method.
+ #
+ # Split source
+ # - If pkgs.path is a path value that is not a store path, we assume
+ # that it's unlikely for all of nixpkgs to end up in the store for
+ # other reasons and try to keep both the copying and rebuilds low.
+ pull =
+ if builtins.typeOf pkgs.path == "string" && isStorePath pkgs.path then
+ dir: "${pkgs.path}/${dir}"
+ else if !isPureEval && isStorePath pkgs.path then
+ dir: "${builtins.storePath pkgs.path}/${dir}"
+ else
+ dir: filterIntoStore "${toString pkgs.path}/${dir}";
in
pkgs.runCommand "lazy-options.json" {
- libPath = filter "${toString pkgs.path}/lib";
- pkgsLibPath = filter "${toString pkgs.path}/pkgs/pkgs-lib";
- nixosPath = filter "${toString pkgs.path}/nixos";
+ libPath = pull "lib";
+ pkgsLibPath = pull "pkgs/pkgs-lib";
+ nixosPath = pull "nixos";
modules = map (p: ''"${removePrefix "${modulesPath}/" (toString p)}"'') docModules.lazy;
} ''
export NIX_STORE_DIR=$TMPDIR/store
diff --git a/nixos/modules/misc/nixpkgs.nix b/nixos/modules/misc/nixpkgs.nix
index 69967c8a7601..14dd1d816dbe 100644
--- a/nixos/modules/misc/nixpkgs.nix
+++ b/nixos/modules/misc/nixpkgs.nix
@@ -59,6 +59,8 @@ let
inherit (cfg) config overlays localSystem crossSystem;
};
+ # NOTE: flake.nix assumes that nixpkgs.config is only used with ../../..
+ # as nixpkgs.config.path should be equivalent to ../../..
finalPkgs = if opt.pkgs.isDefined then cfg.pkgs.appendOverlays cfg.overlays else defaultPkgs;
in
diff --git a/nixos/modules/services/databases/redis.nix b/nixos/modules/services/databases/redis.nix
index c5513635392c..e0269a962fdd 100644
--- a/nixos/modules/services/databases/redis.nix
+++ b/nixos/modules/services/databases/redis.nix
@@ -87,8 +87,12 @@ in {
port = mkOption {
type = types.port;
- default = 6379;
- description = "The port for Redis to listen to.";
+ default = if name == "" then 6379 else 0;
+ defaultText = literalExpression ''if name == "" then 6379 else 0'';
+ description = ''
+ The TCP port to accept connections.
+ If port 0 is specified Redis will not listen on a TCP socket.
+ '';
};
openFirewall = mkOption {
@@ -102,7 +106,7 @@ in {
bind = mkOption {
type = with types; nullOr str;
default = if name == "" then "127.0.0.1" else null;
- defaultText = "127.0.0.1 or null if name != \"\"";
+ defaultText = literalExpression ''if name == "" then "127.0.0.1" else null'';
description = ''
The IP interface to bind to.
null means "all interfaces".
@@ -253,7 +257,7 @@ in {
};
config.settings = mkMerge [
{
- port = if config.bind == null then 0 else config.port;
+ port = config.port;
daemonize = false;
supervised = "systemd";
loglevel = config.logLevel;
diff --git a/pkgs/applications/audio/praat/default.nix b/pkgs/applications/audio/praat/default.nix
index 3fd0619ec29c..89d5370fd003 100644
--- a/pkgs/applications/audio/praat/default.nix
+++ b/pkgs/applications/audio/praat/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "praat";
- version = "6.2.03";
+ version = "6.2.04";
src = fetchFromGitHub {
owner = "praat";
repo = "praat";
rev = "v${version}";
- sha256 = "sha256-0WTbLEPEqPm7BI02mjlwcsewkrmIsHtNlhccqK1d6SI=";
+ sha256 = "sha256-xzEgj4pjW+y46CXtVq4myHKX6DImCibsUz8m0G6F+YQ=";
};
configurePhase = ''
diff --git a/pkgs/applications/misc/pdfstudio/default.nix b/pkgs/applications/misc/pdfstudio/default.nix
index 16ded8e2e8aa..6b93cfb19c52 100644
--- a/pkgs/applications/misc/pdfstudio/default.nix
+++ b/pkgs/applications/misc/pdfstudio/default.nix
@@ -1,82 +1,77 @@
-{ stdenv,
- lib,
- makeWrapper,
- fetchurl,
- dpkg,
- makeDesktopItem,
- copyDesktopItems,
- autoPatchelfHook,
- gst_all_1,
- sane-backends,
- xorg,
- gnome2,
- alsa-lib,
- libgccjit,
- jdk11
- }:
+{ stdenv
+, lib
+, fetchurl
+, libgccjit
+, dpkg
+, makeDesktopItem
+, copyDesktopItems
+, autoPatchelfHook
+, sane-backends
+, jdk11
+}:
-let
- year = "2021";
- major = "1";
- minor = "2";
-in stdenv.mkDerivation rec {
+# See also package 'pdfstudioviewer'
+# Differences are ${pname}, Download directory name (PDFStudio / PDFStudioViewer),
+# sha256, and libgccjit (not needed for PDFStudioViewer)
+let year = "2021";
+in
+stdenv.mkDerivation rec {
pname = "pdfstudio";
- version = "${year}.${major}.${minor}";
- autoPatchelfIgnoreMissingDeps = true;
+ version = "${year}.1.2";
+ strictDeps = true;
src = fetchurl {
- url = "https://download.qoppa.com/${pname}/v${year}/PDFStudio_v${year}_${major}_${minor}_linux64.deb";
+ url = "https://download.qoppa.com/${pname}/v${year}/PDFStudio_v${
+ builtins.replaceStrings [ "." ] [ "_" ] version
+ }_linux64.deb";
sha256 = "1188ll2qz58rr2slavqxisbz4q3fdzidpasb1p33926z0ym3rk45";
};
- nativeBuildInputs = [
- gst_all_1.gst-libav
- sane-backends
- xorg.libXxf86vm
- xorg.libXtst
- gnome2.libgtkhtml
- alsa-lib
- libgccjit
- autoPatchelfHook
- makeWrapper
- dpkg
- copyDesktopItems
- jdk11 # only for unpacking .jar.pack files
+ buildInputs = [
+ libgccjit #for libstdc++.so.6 and libgomp.so.1
+ sane-backends #for libsane.so.1
+ jdk11
];
- desktopItems = [(makeDesktopItem {
- name = "${pname}${year}";
- desktopName = "PDF Studio";
- genericName = "View and edit PDF files";
- exec = "${pname} %f";
- icon = "${pname}${year}";
- comment = "Views and edits PDF files";
- mimeType = "application/pdf";
- categories = "Office";
- type = "Application";
- terminal = false;
- })];
+ nativeBuildInputs = [
+ autoPatchelfHook
+ dpkg
+ copyDesktopItems
+ ];
+
+ desktopItems = [
+ (makeDesktopItem {
+ name = "${pname}${year}";
+ desktopName = "PDF Studio";
+ genericName = "View and edit PDF files";
+ exec = "${pname} %f";
+ icon = "${pname}${year}";
+ comment = "Views and edits PDF files";
+ mimeType = "application/pdf";
+ categories = "Office";
+ type = "Application";
+ terminal = false;
+ })
+ ];
unpackPhase = "dpkg-deb -x $src .";
- dontConfigure = true;
dontBuild = true;
+ postPatch = ''
+ substituteInPlace opt/${pname}${year}/${pname}${year} --replace "# INSTALL4J_JAVA_HOME_OVERRIDE=" "INSTALL4J_JAVA_HOME_OVERRIDE=${jdk11.out}"
+ substituteInPlace opt/${pname}${year}/updater --replace "# INSTALL4J_JAVA_HOME_OVERRIDE=" "INSTALL4J_JAVA_HOME_OVERRIDE=${jdk11.out}"
+ '';
+
installPhase = ''
runHook preInstall
mkdir -p $out/bin
mkdir -p $out/share
- mkdir -p $out/share/applications
mkdir -p $out/share/pixmaps
cp -r opt/${pname}${year} $out/share/
+ rm -rf $out/share/${pname}${year}/jre
ln -s $out/share/${pname}${year}/.install4j/${pname}${year}.png $out/share/pixmaps/
- makeWrapper $out/share/${pname}${year}/${pname}${year} $out/bin/${pname}
-
- #Unpack jar files. Otherwise pdfstudio does this and fails due to read-only FS.
- for pfile in $out/share/${pname}${year}/jre/lib/{,ext/}*.jar.pack; do
- jar_file=`echo "$pfile" | awk '{ print substr($0,1,length($0)-5) }'`
- unpack200 -r "$pfile" "$jar_file"
- done
+ ln -s $out/share/${pname}${year}/${pname}${year} $out/bin/${pname}
runHook postInstall
'';
@@ -86,6 +81,7 @@ in stdenv.mkDerivation rec {
description = "An easy to use, full-featured PDF editing software";
license = licenses.unfree;
platforms = platforms.linux;
+ mainProgram = pname;
maintainers = [ maintainers.pwoelfel ];
};
}
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
index ee0f74a938ea..981861d6a2fa 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -32,15 +32,15 @@
}
},
"dev": {
- "version": "99.0.4818.0",
- "sha256": "1k8xzmybrmwgcyg4n7x3gj486rpwic17m6i5ij9nmfzcxx7fbwlm",
- "sha256bin64": "1jfqmv94ami3n6hzp9ycczqv3lh3wijsf555mg62rv4rdvw5adm6",
+ "version": "99.0.4840.0",
+ "sha256": "0l1azyd7an8nw2gjnn313gn6sljvw6lbd9g59s7d59lpn2bmbc7j",
+ "sha256bin64": "145qjhdmi39aaw0a3sarlgi67rjhik1xbm62rw7ba0wgnrbvvrjb",
"deps": {
"gn": {
- "version": "2022-01-07",
+ "version": "2022-01-10",
"url": "https://gn.googlesource.com/gn",
- "rev": "f1b1412521b41e47118b29863224171e434a27a2",
- "sha256": "1cxq991by7sa5k1hvb5xx98bfqgq7rdbw3cawhyyqq91a521wsb7"
+ "rev": "80a40b07305373617eba2d5878d353532af77da3",
+ "sha256": "1103lf38h7412949j6nrk48m2vv2rrxacn42sjg33lg88nyv7skv"
}
}
},
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index a874d60f13a9..f1bcd1012797 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -24,7 +24,7 @@ let
in stdenv.mkDerivation rec {
pname = "signal-desktop";
- version = "5.27.0"; # Please backport all updates to the stable channel.
+ version = "5.27.1"; # Please backport all updates to the stable channel.
# All releases have a limited lifetime and "expire" 90 days after the release.
# When releases "expire" the application becomes unusable until an update is
# applied. The expiration date for the current release can be extracted with:
@@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
- sha256 = "1agxn4fcgln5lsccvw5b7g2psv6nv2y7qm5df201c9pbwjak74nm";
+ sha256 = "0z0v7q0rpxdx7ic78jv7wp1hq8nrfp51jjdr6d85x0hsfdj0z1mc";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/video/kodi/addons/arteplussept/default.nix b/pkgs/applications/video/kodi/addons/arteplussept/default.nix
index 51fda8098fd0..bec74dd46a97 100644
--- a/pkgs/applications/video/kodi/addons/arteplussept/default.nix
+++ b/pkgs/applications/video/kodi/addons/arteplussept/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildKodiAddon, fetchzip, addonUpdateScript, requests, xbmcswift2 }:
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript, dateutil, requests, xbmcswift2 }:
buildKodiAddon rec {
pname = "arteplussept";
@@ -11,6 +11,7 @@ buildKodiAddon rec {
};
propagatedBuildInputs = [
+ dateutil
requests
xbmcswift2
];
diff --git a/pkgs/development/compilers/lingua-franca/default.nix b/pkgs/development/compilers/lingua-franca/default.nix
index b843fd5e850f..bb25853ee36d 100644
--- a/pkgs/development/compilers/lingua-franca/default.nix
+++ b/pkgs/development/compilers/lingua-franca/default.nix
@@ -7,8 +7,8 @@ stdenv.mkDerivation {
src = fetchFromGitHub {
owner = "revol-xut";
repo = "lingua-franca-nix-releases";
- rev = "11c6d5297cd63bf0b365a68c5ca31ec80083bd05";
- sha256 = "DgxunzC8Ep0WdwChDHWgG5QJbJZ8UgQRXtP1HZqL9Jg=";
+ rev = "d37bbfa530f0189c3e86ce0191134cdf42c6aec7";
+ sha256 = "/qMBOjffvShCPcbh9rJ7aVgdgZQ1hilHakjLyEhSmgs=";
};
buildInputs = [ jdk11_headless ];
diff --git a/pkgs/development/libraries/umockdev/default.nix b/pkgs/development/libraries/umockdev/default.nix
index f85834e85202..b00177960d3b 100644
--- a/pkgs/development/libraries/umockdev/default.nix
+++ b/pkgs/development/libraries/umockdev/default.nix
@@ -19,13 +19,13 @@
stdenv.mkDerivation rec {
pname = "umockdev";
- version = "0.17.5";
+ version = "0.17.6";
outputs = [ "bin" "out" "dev" "devdoc" ];
src = fetchurl {
url = "https://github.com/martinpitt/umockdev/releases/download/${version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-9mNKYFiQtzkBTQEuVWIfR9+e2jAqDszlHGMEQpcRe8U=";
+ sha256 = "sha256-X60zN3orHU8lOfRVCfbHTdrleKxB7ILCIGvXSZLdoSk=";
};
nativeBuildInputs = [
diff --git a/pkgs/development/libraries/wolfssl/default.nix b/pkgs/development/libraries/wolfssl/default.nix
index d2735f34b7f0..4cfd2548b538 100644
--- a/pkgs/development/libraries/wolfssl/default.nix
+++ b/pkgs/development/libraries/wolfssl/default.nix
@@ -2,6 +2,7 @@
, stdenv
, fetchFromGitHub
, autoreconfHook
+, openssl
}:
stdenv.mkDerivation rec {
@@ -15,6 +16,12 @@ stdenv.mkDerivation rec {
sha256 = "sha256-/noS5cn8lllWoGyZ9QyjRmdiR6LXzfT4lYGEt+0+Bdw=";
};
+ postPatch = ''
+ patchShebangs ./scripts
+ # ocsp tests require network access
+ sed -i -e '/ocsp\.test/d' -e '/ocsp-stapling\.test/d' scripts/include.am
+ '';
+
# Almost same as Debian but for now using --enable-all --enable-reproducible-build instead of --enable-distro to ensure options.h gets installed
configureFlags = [
"--enable-all"
@@ -36,6 +43,9 @@ stdenv.mkDerivation rec {
autoreconfHook
];
+ doCheck = true;
+ checkInputs = [ openssl ];
+
postInstall = ''
# fix recursive cycle:
# wolfssl-config points to dev, dev propagates bin
diff --git a/pkgs/development/python-modules/imbalanced-learn/default.nix b/pkgs/development/python-modules/imbalanced-learn/default.nix
index bb29504d63e6..b1e5e9197522 100644
--- a/pkgs/development/python-modules/imbalanced-learn/default.nix
+++ b/pkgs/development/python-modules/imbalanced-learn/default.nix
@@ -9,12 +9,12 @@
buildPythonPackage rec {
pname = "imbalanced-learn";
- version = "0.8.1";
+ version = "0.9.0";
disabled = isPy27; # scikit-learn>=0.21 doesn't work on python2
src = fetchPypi {
inherit pname version;
- sha256 = "eaf576b1ba3523a0facf3aaa483ca17e326301e53e7678c54d73b7e0250edd43";
+ sha256 = "836a4c137cc3c10310d4f6cd5ec34600ff488d7f8c243a997c3f9b551c91d0b2";
};
propagatedBuildInputs = [ scikit-learn ];
diff --git a/pkgs/development/python-modules/internetarchive/default.nix b/pkgs/development/python-modules/internetarchive/default.nix
index b87892906072..d197ba9691bf 100644
--- a/pkgs/development/python-modules/internetarchive/default.nix
+++ b/pkgs/development/python-modules/internetarchive/default.nix
@@ -20,11 +20,11 @@
buildPythonPackage rec {
pname = "internetarchive";
- version = "2.2.0";
+ version = "2.3.0";
src = fetchPypi {
inherit pname version;
- sha256 = "ebd11ecd038c71e75a3aef8d87750b46480169ecaefb23074c4ae48440bf2836";
+ sha256 = "fa89dc4be3e0a0aee24810a4a754e24adfd07edf710c645b4f642422c6078b8d";
};
propagatedBuildInputs = [
diff --git a/pkgs/development/tools/sentry-cli/default.nix b/pkgs/development/tools/sentry-cli/default.nix
index c832f39b0832..a3e176216216 100644
--- a/pkgs/development/tools/sentry-cli/default.nix
+++ b/pkgs/development/tools/sentry-cli/default.nix
@@ -9,13 +9,13 @@
}:
rustPlatform.buildRustPackage rec {
pname = "sentry-cli";
- version = "1.71.0";
+ version = "1.72.0";
src = fetchFromGitHub {
owner = "getsentry";
repo = "sentry-cli";
rev = version;
- sha256 = "0iw6skcxnqqa0vj5q1ra855gxgjj9a26hj85nm9p49ai5l85bkgv";
+ sha256 = "sha256-2Aj2Y0c8JR8s6Ek7sZfU+5RENkoCVSAxtOvkHilfb48=";
};
doCheck = false;
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
nativeBuildInputs = [ pkg-config ];
- cargoSha256 = "0n9354mm97z3n001airipq8k58i7lg20p2m9yfx9y0zhsagyhmj8";
+ cargoSha256 = "sha256-sSIQ7Wa0otbq82WELxP3oFYa1FoaoZz2jCB59Ob6zNM=";
meta = with lib; {
homepage = "https://docs.sentry.io/cli/";
diff --git a/pkgs/games/r2mod_cli/default.nix b/pkgs/games/r2mod_cli/default.nix
index 169385576ac5..607a53579c7e 100644
--- a/pkgs/games/r2mod_cli/default.nix
+++ b/pkgs/games/r2mod_cli/default.nix
@@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "r2mod_cli";
- version = "1.2.0";
+ version = "1.2.1";
src = fetchFromGitHub {
owner = "Foldex";
repo = "r2mod_cli";
rev = "v${version}";
- sha256 = "sha256-VNqdVDBR6+eNOeUthPXLfz+0VoaNfSj4f04HLvjg6/0=";
+ sha256 = "sha256-FS9P/uTZU4d6zpM3TlEW6i6PLGHxqqO2fc8D7VsPCig=";
};
buildInputs = [ bashInteractive ];
diff --git a/pkgs/servers/mpd/default.nix b/pkgs/servers/mpd/default.nix
index 8f1a407bf56d..0833ede1bb46 100644
--- a/pkgs/servers/mpd/default.nix
+++ b/pkgs/servers/mpd/default.nix
@@ -71,7 +71,6 @@ let
# Commercial services
qobuz = [ curl libgcrypt yajl ];
soundcloud = [ curl yajl ];
- tidal = [ curl yajl ];
# Client support
libmpdclient = [ libmpdclient ];
# Tag support
@@ -196,7 +195,7 @@ in
"lame" "libsamplerate" "shout"
"libmpdclient" "id3tag" "expat" "pcre"
"yajl" "sqlite"
- "soundcloud" "qobuz" "tidal"
+ "soundcloud" "qobuz"
] ++ lib.optionals stdenv.isLinux [
"alsa" "systemd" "syslog" "io_uring"
] ++ lib.optionals (!stdenv.isDarwin) [
diff --git a/pkgs/servers/tailscale/default.nix b/pkgs/servers/tailscale/default.nix
index 2149f7724361..ee768981f9bc 100644
--- a/pkgs/servers/tailscale/default.nix
+++ b/pkgs/servers/tailscale/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "tailscale";
- version = "1.20.1";
+ version = "1.20.2";
src = fetchFromGitHub {
owner = "tailscale";
repo = "tailscale";
rev = "v${version}";
- sha256 = "sha256-n+94ipR1w63NS2tzMsJWY4oxeTBEWrp8e2gF+CTpvrI=";
+ sha256 = "sha256-uW/C4Bks7qGJEQhPoqd2LSk8MAD9gcDRsJbbowgsSuY=";
};
nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ];
diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix
index 962569d517e2..91a266427457 100644
--- a/pkgs/servers/traefik/default.nix
+++ b/pkgs/servers/traefik/default.nix
@@ -2,15 +2,15 @@
buildGoModule rec {
pname = "traefik";
- version = "2.5.6";
+ version = "2.5.7";
src = fetchzip {
url = "https://github.com/traefik/traefik/releases/download/v${version}/traefik-v${version}.src.tar.gz";
- sha256 = "sha256-HHJTfAigUH7C0VuKUeGypqFlQwVdy05Ki/aTxDsl+tg=";
+ sha256 = "sha256-CQXrAKdfNqGKXw3Ds47uq6ALsDh6JRf+94axOvLzWbE=";
stripRoot = false;
};
- vendorSha256 = "sha256-DqjqJPyoFlCjIIaHYS5jrROQWDxZk+RGfccC2jYZ8LE=";
+ vendorSha256 = "sha256-aZemr1waV2hIujbI+1PrivXxa1RrT0Ams4xT4QxTQPY=";
doCheck = false;
diff --git a/pkgs/tools/audio/headsetcontrol/default.nix b/pkgs/tools/audio/headsetcontrol/default.nix
new file mode 100644
index 000000000000..3a66791932d5
--- /dev/null
+++ b/pkgs/tools/audio/headsetcontrol/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, hidapi
+}:
+
+stdenv.mkDerivation rec {
+ pname = "headsetcontrol";
+ version = "2.6";
+
+ src = fetchFromGitHub {
+ owner = "Sapd";
+ repo = "HeadsetControl";
+ rev = version;
+ sha256 = "0a7zimzi71416pmn6z0l1dn1c2x8p702hkd0k6da9rsznff85a88";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ];
+
+ buildInputs = [
+ hidapi
+ ];
+
+ /*
+ Test depends on having the apropiate headsets connected.
+ */
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Sidetone and Battery status for Logitech G930, G533, G633, G933 SteelSeries Arctis 7/PRO 2019 and Corsair VOID (Pro)";
+ longDescription = ''
+ A tool to control certain aspects of USB-connected headsets on Linux. Currently,
+ support is provided for adjusting sidetone, getting battery state, controlling
+ LEDs, and setting the inactive time.
+ '';
+ homepage = "https://github.com/Sapd/HeadsetControl";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ leixb ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/tools/misc/steampipe/default.nix b/pkgs/tools/misc/steampipe/default.nix
index 8245f0561325..f018fdd35ee9 100644
--- a/pkgs/tools/misc/steampipe/default.nix
+++ b/pkgs/tools/misc/steampipe/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "steampipe";
- version = "0.11.2";
+ version = "0.12.0";
src = fetchFromGitHub {
owner = "turbot";
repo = "steampipe";
rev = "v${version}";
- sha256 = "sha256-omg/MgCTKkj0p1vDvJs22/0Jhzim0CeISV0Kn9p5lh4=";
+ sha256 = "sha256-ApY3h6CqOJMWmIindp5TqWczSU50TBiS89lYzSzj8EM=";
};
- vendorSha256 = "sha256-PYaq74NNEOJ1jZ6PoS6zcTiUN4JA9JDjO7GB9tqgT6c=";
+ vendorSha256 = "sha256-ikmcayOy87u6XMYjxxzFv35Rlp9oTteEKFOPr/+xc2Y=";
# tests are failing for no obvious reasons
doCheck = false;
diff --git a/pkgs/tools/misc/yt-dlp/default.nix b/pkgs/tools/misc/yt-dlp/default.nix
index b8e838b4d228..3534769b86f9 100644
--- a/pkgs/tools/misc/yt-dlp/default.nix
+++ b/pkgs/tools/misc/yt-dlp/default.nix
@@ -20,12 +20,12 @@ buildPythonPackage rec {
# The websites yt-dlp deals with are a very moving target. That means that
# downloads break constantly. Because of that, updates should always be backported
# to the latest stable release.
- version = "2021.12.27";
+ version = "2022.1.21";
src = fetchPypi {
inherit pname;
version = builtins.replaceStrings [ ".0" ] [ "." ] version;
- sha256 = "sha256-IkTfN1l1FIfnlrI7ZyFr7pjnCDKjpDwlJrCw4Lv7y1s=";
+ sha256 = "sha256-Ig7EBzibXqcuJd/BHDDlQ0ibkAdcVTEdUlXiBF24qeI=";
};
propagatedBuildInputs = [ websockets mutagen ]
diff --git a/pkgs/tools/system/tuptime/default.nix b/pkgs/tools/system/tuptime/default.nix
index 0d3b6f4d6b82..7c13df3ec15e 100644
--- a/pkgs/tools/system/tuptime/default.nix
+++ b/pkgs/tools/system/tuptime/default.nix
@@ -1,16 +1,18 @@
{ lib, stdenv, fetchFromGitHub
, makeWrapper, installShellFiles
-, python3, sqlite }:
+, python3, sqlite
+, nixosTests
+}:
stdenv.mkDerivation rec {
pname = "tuptime";
- version = "5.0.2";
+ version = "5.1.0";
src = fetchFromGitHub {
owner = "rfrail3";
repo = "tuptime";
rev = version;
- sha256 = "sha256-2Q1czKvwdVq+2+64k4SOghw05CUlT5HdZpvKMRbGdDY=";
+ sha256 = "sha256-6N4dqgLOhWqVR8GqlBUxHWy10AHBZ4aZbdkw5SOxxBQ=";
};
nativeBuildInputs = [ makeWrapper installShellFiles ];
@@ -34,6 +36,8 @@ stdenv.mkDerivation rec {
--prefix PATH : "${lib.makeBinPath [ sqlite ]}"
'';
+ passthru.tests = nixosTests.tuptime;
+
meta = with lib; {
description = "Total uptime & downtime statistics utility";
homepage = "https://github.com/rfrail3/tuptime";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 96c2c9b14580..5d496ee09d10 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -67,7 +67,7 @@ with pkgs;
clangStdenvNoLibs = mkStdenvNoLibs clangStdenv;
# For convenience, allow callers to get the path to Nixpkgs.
- path = ../..;
+ path = config.path;
### Helper functions.
@@ -1015,6 +1015,8 @@ with pkgs;
fwbuilder = libsForQt5.callPackage ../tools/security/fwbuilder { };
+ headsetcontrol = callPackage ../tools/audio/headsetcontrol { };
+
ksnip = libsForQt5.callPackage ../tools/misc/ksnip { };
linux-router = callPackage ../tools/networking/linux-router { };
@@ -12490,6 +12492,8 @@ with pkgs;
openshot-qt = libsForQt5.callPackage ../applications/video/openshot-qt { };
+ lingua-franca = callPackage ../development/compilers/lingua-franca { };
+
openspin = callPackage ../development/compilers/openspin { };
oraclejdk = jdkdistro true false;
diff --git a/pkgs/top-level/config.nix b/pkgs/top-level/config.nix
index 7a5b4bdd1798..bb4f668d60f1 100644
--- a/pkgs/top-level/config.nix
+++ b/pkgs/top-level/config.nix
@@ -32,6 +32,20 @@ let
feature = "run checkPhase by default";
};
+ path = mkOption {
+ type = types.path;
+ default = ../..;
+ defaultText = lib.literalDocBook "a path expression";
+ internal = true;
+ description = ''
+ A reference to Nixpkgs' own sources.
+
+ This is overridable in order to avoid copying sources unnecessarily,
+ as a path expression that references a store path will not short-circuit
+ to the store path itself, but copy the store path instead.
+ '';
+ };
+
};
in {