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 {