diff --git a/nixos/doc/manual/configuration/x-windows.xml b/nixos/doc/manual/configuration/x-windows.xml
index dd879702d7d..a499f0080d7 100644
--- a/nixos/doc/manual/configuration/x-windows.xml
+++ b/nixos/doc/manual/configuration/x-windows.xml
@@ -150,7 +150,6 @@
= [ "nvidiaLegacy390" ];
= [ "nvidiaLegacy340" ];
= [ "nvidiaLegacy304" ];
- = [ "nvidiaLegacy173" ];
You may need to reboot after enabling this driver to prevent a clash with
other kernel modules.
@@ -159,21 +158,16 @@
Proprietary AMD drivers
- AMD provides a proprietary driver for its graphics cards that has better 3D
- performance than the X.org drivers. It is not enabled by default because
- it’s not free software. You can enable it as follows:
+ AMD provides a proprietary driver for its graphics cards that is not
+ enabled by default because it’s not Free Software, is often broken
+ in nixpkgs and as of this writing doesn't offer more features or
+ performance. If you still want to use it anyway, you need to explicitly set:
- = [ "ati_unfree" ];
+ = [ "amdgpu-pro" ];
You will need to reboot after enabling this driver to prevent a clash with
other kernel modules.
-
-
- For recent AMD GPUs you most likely want to keep either the defaults
- or "amdgpu" (both free).
-
-
Touchpads
diff --git a/nixos/doc/manual/release-notes/rl-2105.xml b/nixos/doc/manual/release-notes/rl-2105.xml
index 2f87869fbe3..9a1e6b6618d 100644
--- a/nixos/doc/manual/release-notes/rl-2105.xml
+++ b/nixos/doc/manual/release-notes/rl-2105.xml
@@ -39,6 +39,24 @@
(#7547).
+
+
+ Privoxy has been updated
+ to version 3.0.32 (See announcement).
+ Compared to the previous release, Privoxy has gained support for HTTPS
+ inspection (still experimental), Brotli decompression, several new filters
+ and lots of bug fixes, including security ones. In addition, the package
+ is now built with compression and external filters support, which were
+ previously disabled.
+
+
+ Regarding the NixOS module, new options for HTTPS inspection have been added
+ and has been replaced by the new
+
+ (See RFC 0042
+ for the motivation).
+
+
@@ -539,6 +557,11 @@ self: super:
imagemagick6Big if you need the older version.
+
+
+ no longer uses the deprecated cirrus and vesa device dependent X drivers by default. It also enables both amdgpu and nouveau drivers by default now.
+
+
diff --git a/nixos/modules/services/networking/privoxy.nix b/nixos/modules/services/networking/privoxy.nix
index 7caae328203..b8d33916342 100644
--- a/nixos/modules/services/networking/privoxy.nix
+++ b/nixos/modules/services/networking/privoxy.nix
@@ -4,26 +4,46 @@ with lib;
let
- inherit (pkgs) privoxy;
-
cfg = config.services.privoxy;
- confFile = pkgs.writeText "privoxy.conf" (''
- user-manual ${privoxy}/share/doc/privoxy/user-manual
- confdir ${privoxy}/etc/
- listen-address ${cfg.listenAddress}
- enable-edit-actions ${if (cfg.enableEditActions == true) then "1" else "0"}
- ${concatMapStrings (f: "actionsfile ${f}\n") cfg.actionsFiles}
- ${concatMapStrings (f: "filterfile ${f}\n") cfg.filterFiles}
- '' + optionalString cfg.enableTor ''
- forward-socks5t / 127.0.0.1:9063 .
- toggle 1
- enable-remote-toggle 0
- enable-edit-actions 0
- enable-remote-http-toggle 0
- '' + ''
- ${cfg.extraConfig}
- '');
+ serialise = name: val:
+ if isList val then concatMapStrings (serialise name) val
+ else if isBool val then serialise name (if val then "1" else "0")
+ else "${name} ${toString val}\n";
+
+ configType = with types;
+ let atom = oneOf [ int bool string path ];
+ in attrsOf (either atom (listOf atom))
+ // { description = ''
+ privoxy configuration type. The format consists of an attribute
+ set of settings. Each setting can be either a value (integer, string,
+ boolean or path) or a list of such values.
+ '';
+ };
+
+ ageType = types.str // {
+ check = x:
+ isString x &&
+ (builtins.match "([0-9]+([smhdw]|min|ms|us)*)+" x != null);
+ description = "tmpfiles.d(5) age format";
+ };
+
+ configFile = pkgs.writeText "privoxy.conf"
+ (concatStrings (
+ # Relative paths in some options are relative to confdir. Privoxy seems
+ # to parse the options in order of appearance, so this must come first.
+ # Nix however doesn't preserve the order in attrsets, so we have to
+ # hardcode confdir here.
+ [ "confdir ${pkgs.privoxy}/etc\n" ]
+ ++ mapAttrsToList serialise cfg.settings
+ ));
+
+ inspectAction = pkgs.writeText "inspect-all-https.action"
+ ''
+ # Enable HTTPS inspection for all requests
+ {+https-inspection}
+ /
+ '';
in
@@ -31,70 +51,130 @@ in
###### interface
- options = {
+ options.services.privoxy = {
- services.privoxy = {
+ enable = mkEnableOption "Privoxy, non-caching filtering proxy";
- enable = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Whether to enable the Privoxy non-caching filtering proxy.
- '';
- };
-
- listenAddress = mkOption {
- type = types.str;
- default = "127.0.0.1:8118";
- description = ''
- Address the proxy server is listening to.
- '';
- };
-
- actionsFiles = mkOption {
- type = types.listOf types.str;
- example = [ "match-all.action" "default.action" "/etc/privoxy/user.action" ];
- default = [ "match-all.action" "default.action" ];
- description = ''
- List of paths to Privoxy action files.
- These paths may either be absolute or relative to the privoxy configuration directory.
- '';
- };
-
- filterFiles = mkOption {
- type = types.listOf types.str;
- example = [ "default.filter" "/etc/privoxy/user.filter" ];
- default = [ "default.filter" ];
- description = ''
- List of paths to Privoxy filter files.
- These paths may either be absolute or relative to the privoxy configuration directory.
- '';
- };
-
- enableEditActions = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Whether or not the web-based actions file editor may be used.
- '';
- };
-
- enableTor = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Whether to configure Privoxy to use Tor's faster SOCKS port,
- suitable for HTTP.
- '';
- };
-
- extraConfig = mkOption {
- type = types.lines;
- default = "" ;
- description = ''
- Extra configuration. Contents will be added verbatim to the configuration file.
- '';
+ enableTor = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Whether to configure Privoxy to use Tor's faster SOCKS port,
+ suitable for HTTP.
+ '';
+ };
+
+ inspectHttps = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Whether to configure Privoxy to inspect HTTPS requests, meaning all
+ encrypted traffic will be filtered as well. This works by decrypting
+ and re-encrypting the requests using a per-domain generated certificate.
+
+ To issue per-domain certificates, Privoxy must be provided with a CA
+ certificate, using the ca-cert-file,
+ ca-key-file settings.
+
+
+ The CA certificate must also be added to the system trust roots,
+ otherwise browsers will reject all Privoxy certificates as invalid.
+ You can do so by using the option
+ .
+
+ '';
+ };
+
+ certsLifetime = mkOption {
+ type = ageType;
+ default = "10d";
+ example = "12h";
+ description = ''
+ If inspectHttps is enabled, the time generated HTTPS
+ certificates will be stored in a temporary directory for reuse. Once
+ the lifetime has expired the directory will cleared and the certificate
+ will have to be generated again, on-demand.
+
+ Depending on the traffic, you may want to reduce the lifetime to limit
+ the disk usage, since Privoxy itself never deletes the certificates.
+
+ The format is that of the tmpfiles.d(5)
+ Age parameter.
+ '';
+ };
+
+ userActions = mkOption {
+ type = types.lines;
+ default = "";
+ description = ''
+ Actions to be included in a user.action file. This
+ will have a higher priority and can be used to override all other
+ actions.
+ '';
+ };
+
+ userFilters = mkOption {
+ type = types.lines;
+ default = "";
+ description = ''
+ Filters to be included in a user.filter file. This
+ will have a higher priority and can be used to override all other
+ filters definitions.
+ '';
+ };
+
+ settings = mkOption {
+ type = types.submodule {
+ freeformType = configType;
+
+ options.listen-address = mkOption {
+ type = types.str;
+ default = "127.0.0.1:8118";
+ description = "Pair of address:port the proxy server is listening to.";
+ };
+
+ options.enable-edit-actions = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Whether the web-based actions file editor may be used.";
+ };
+
+ options.actionsfile = mkOption {
+ type = types.listOf types.str;
+ # This must come after all other entries, in order to override the
+ # other actions/filters installed by Privoxy or the user.
+ apply = x: x ++ optional (cfg.userActions != "")
+ (toString (pkgs.writeText "user.actions" cfg.userActions));
+ default = [ "match-all.action" "default.action" ];
+ description = ''
+ List of paths to Privoxy action files. These paths may either be
+ absolute or relative to the privoxy configuration directory.
+ '';
+ };
+
+ options.filterfile = mkOption {
+ type = types.listOf types.str;
+ default = [ "default.filter" ];
+ apply = x: x ++ optional (cfg.userFilters != "")
+ (toString (pkgs.writeText "user.filter" cfg.userFilters));
+ description = ''
+ List of paths to Privoxy filter files. These paths may either be
+ absolute or relative to the privoxy configuration directory.
+ '';
+ };
};
+ default = {};
+ example = literalExample ''
+ { listen-address = "[::]:8118"; # listen on IPv6 only
+ forward-socks5 = ".onion localhost:9050 ."; # forward .onion requests to Tor
+ }
+ '';
+ description = ''
+ This option is mapped to the main Privoxy configuration file.
+ Check out the Privoxy user manual at
+
+ for available settings and documentation.
+ '';
};
};
@@ -104,23 +184,34 @@ in
config = mkIf cfg.enable {
users.users.privoxy = {
+ description = "Privoxy daemon user";
isSystemUser = true;
- home = "/var/empty";
group = "privoxy";
};
users.groups.privoxy = {};
+ systemd.tmpfiles.rules = with cfg.settings; [
+ "d ${certificate-directory} 0770 privoxy privoxy ${cfg.certsLifetime}"
+ ];
+
systemd.services.privoxy = {
description = "Filtering web proxy";
after = [ "network.target" "nss-lookup.target" ];
wantedBy = [ "multi-user.target" ];
- serviceConfig.ExecStart = "${privoxy}/bin/privoxy --no-daemon --user privoxy ${confFile}";
-
- serviceConfig.PrivateDevices = true;
- serviceConfig.PrivateTmp = true;
- serviceConfig.ProtectHome = true;
- serviceConfig.ProtectSystem = "full";
+ serviceConfig = {
+ User = "privoxy";
+ Group = "privoxy";
+ ExecStart = "${pkgs.privoxy}/bin/privoxy --no-daemon ${configFile}";
+ PrivateDevices = true;
+ PrivateTmp = true;
+ ProtectHome = true;
+ ProtectSystem = "full";
+ };
+ unitConfig = mkIf cfg.inspectHttps {
+ ConditionPathExists = with cfg.settings;
+ [ ca-cert-file ca-key-file ];
+ };
};
services.tor.settings.SOCKSPort = mkIf cfg.enableTor [
@@ -128,8 +219,48 @@ in
{ addr = "127.0.0.1"; port = 9063; IsolateDestAddr = false; }
];
+ services.privoxy.settings = {
+ user-manual = "${pkgs.privoxy}/share/doc/privoxy/user-manual";
+ # This is needed for external filters
+ temporary-directory = "/tmp";
+ filterfile = [ "default.filter" ];
+ actionsfile =
+ [ "match-all.action"
+ "default.action"
+ ] ++ optional cfg.inspectHttps (toString inspectAction);
+ } // (optionalAttrs cfg.enableTor {
+ forward-socks5 = "127.0.0.1:9063 .";
+ toggle = true;
+ enable-remote-toggle = false;
+ enable-edit-actions = false;
+ enable-remote-http-toggle = false;
+ }) // (optionalAttrs cfg.inspectHttps {
+ # This allows setting absolute key/crt paths
+ ca-directory = "/var/empty";
+ certificate-directory = "/run/privoxy/certs";
+ trusted-cas-file = "/etc/ssl/certs/ca-certificates.crt";
+ });
+
};
+ imports =
+ let
+ top = x: [ "services" "privoxy" x ];
+ setting = x: [ "services" "privoxy" "settings" x ];
+ in
+ [ (mkRenamedOptionModule (top "enableEditActions") (setting "enable-edit-actions"))
+ (mkRenamedOptionModule (top "listenAddress") (setting "listen-address"))
+ (mkRenamedOptionModule (top "actionsFiles") (setting "actionsfile"))
+ (mkRenamedOptionModule (top "filterFiles") (setting "filterfile"))
+ (mkRemovedOptionModule (top "extraConfig")
+ ''
+ Use services.privoxy.settings instead.
+ This is part of the general move to use structured settings instead of raw
+ text for config as introduced by RFC0042:
+ https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md
+ '')
+ ];
+
meta.maintainers = with lib.maintainers; [ rnhmjoj ];
}
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 8858559d8f2..35bd4dabb67 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -251,11 +251,10 @@ in
videoDrivers = mkOption {
type = types.listOf types.str;
- # !!! We'd like "nv" here, but it segfaults the X server.
- default = [ "radeon" "cirrus" "vesa" "modesetting" ];
+ default = [ "amdgpu" "radeon" "nouveau" "modesetting" "fbdev" ];
example = [
- "ati_unfree" "amdgpu" "amdgpu-pro"
- "nv" "nvidia" "nvidiaLegacy390" "nvidiaLegacy340" "nvidiaLegacy304"
+ "nvidia" "nvidiaLegacy390" "nvidiaLegacy340" "nvidiaLegacy304"
+ "amdgpu-pro"
];
# TODO(@oxij): think how to easily add the rest, like those nvidia things
relatedPackages = concatLists
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index fe60b0b83f5..00e84a9df82 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -326,6 +326,7 @@ in
predictable-interface-names = handleTest ./predictable-interface-names.nix {};
printing = handleTest ./printing.nix {};
privacyidea = handleTest ./privacyidea.nix {};
+ privoxy = handleTest ./privoxy.nix {};
prometheus = handleTest ./prometheus.nix {};
prometheus-exporters = handleTest ./prometheus-exporters.nix {};
prosody = handleTest ./xmpp/prosody.nix {};
diff --git a/nixos/tests/privoxy.nix b/nixos/tests/privoxy.nix
new file mode 100644
index 00000000000..d16cc498691
--- /dev/null
+++ b/nixos/tests/privoxy.nix
@@ -0,0 +1,113 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }:
+
+let
+ # Note: For some reason Privoxy can't issue valid
+ # certificates if the CA is generated using gnutls :(
+ certs = pkgs.runCommand "example-certs"
+ { buildInputs = [ pkgs.openssl ]; }
+ ''
+ mkdir $out
+
+ # generate CA keypair
+ openssl req -new -nodes -x509 \
+ -extensions v3_ca -keyout $out/ca.key \
+ -out $out/ca.crt -days 365 \
+ -subj "/O=Privoxy CA/CN=Privoxy CA"
+
+ # generate server key/signing request
+ openssl genrsa -out $out/server.key 3072
+ openssl req -new -key $out/server.key \
+ -out server.csr -sha256 \
+ -subj "/O=An unhappy server./CN=example.com"
+
+ # sign the request/generate the certificate
+ openssl x509 -req -in server.csr -CA $out/ca.crt \
+ -CAkey $out/ca.key -CAcreateserial -out $out/server.crt \
+ -days 500 -sha256
+ '';
+in
+
+{
+ name = "privoxy";
+ meta = with lib.maintainers; {
+ maintainers = [ rnhmjoj ];
+ };
+
+ machine = { ... }: {
+ services.nginx.enable = true;
+ services.nginx.virtualHosts."example.com" = {
+ addSSL = true;
+ sslCertificate = "${certs}/server.crt";
+ sslCertificateKey = "${certs}/server.key";
+ locations."/".root = pkgs.writeTextFile
+ { name = "bad-day";
+ destination = "/how-are-you/index.html";
+ text = "I've had a bad day!\n";
+ };
+ locations."/ads".extraConfig = ''
+ return 200 "Hot Nixpkgs PRs in your area. Click here!\n";
+ '';
+ };
+
+ services.privoxy = {
+ enable = true;
+ inspectHttps = true;
+ settings = {
+ ca-cert-file = "${certs}/ca.crt";
+ ca-key-file = "${certs}/ca.key";
+ debug = 65536;
+ };
+ userActions = ''
+ {+filter{positive}}
+ example.com
+
+ {+block{Fake ads}}
+ example.com/ads
+ '';
+ userFilters = ''
+ FILTER: positive This is a filter example.
+ s/bad/great/ig
+ '';
+ };
+
+ security.pki.certificateFiles = [ "${certs}/ca.crt" ];
+
+ networking.hosts."::1" = [ "example.com" ];
+ networking.proxy.httpProxy = "http://localhost:8118";
+ networking.proxy.httpsProxy = "http://localhost:8118";
+ };
+
+ testScript =
+ ''
+ with subtest("Privoxy is running"):
+ machine.wait_for_unit("privoxy")
+ machine.wait_for_open_port("8118")
+ machine.succeed("curl -f http://config.privoxy.org")
+
+ with subtest("Privoxy can filter http requests"):
+ machine.wait_for_open_port("80")
+ assert "great day" in machine.succeed(
+ "curl -sfL http://example.com/how-are-you? | tee /dev/stderr"
+ )
+
+ with subtest("Privoxy can filter https requests"):
+ machine.wait_for_open_port("443")
+ assert "great day" in machine.succeed(
+ "curl -sfL https://example.com/how-are-you? | tee /dev/stderr"
+ )
+
+ with subtest("Blocks are working"):
+ machine.wait_for_open_port("443")
+ machine.fail("curl -f https://example.com/ads 1>&2")
+ machine.succeed("curl -f https://example.com/PRIVOXY-FORCE/ads 1>&2")
+
+ with subtest("Temporary certificates are cleaned"):
+ # Count current certificates
+ machine.succeed("test $(ls /run/privoxy/certs | wc -l) -gt 0")
+ # Forward in time 12 days, trigger the timer..
+ machine.succeed("date -s \"$(date --date '12 days')\"")
+ machine.systemctl("start systemd-tmpfiles-clean")
+ # ...and count again
+ machine.succeed("test $(ls /run/privoxy/certs | wc -l) -eq 0")
+ '';
+})
diff --git a/pkgs/applications/misc/foxtrotgps/default.nix b/pkgs/applications/misc/foxtrotgps/default.nix
index 5d0f07492a1..8692ac98933 100644
--- a/pkgs/applications/misc/foxtrotgps/default.nix
+++ b/pkgs/applications/misc/foxtrotgps/default.nix
@@ -6,8 +6,8 @@ let
srcs = {
foxtrot = fetchbzr {
url = "lp:foxtrotgps";
- rev = "326";
- sha256 = "191pgcy5rng8djy22a5z9s8gssc73f9p5hm4ig52ra189cb48d8k";
+ rev = "329";
+ sha256 = "0fwgnsrah63h1xdgm5xdi5ancrz89shdp5sdzw1qc1m7i9a03rid";
};
screenshots = fetchbzr {
url = "lp:foxtrotgps/screenshots";
@@ -17,23 +17,21 @@ let
};
in stdenv.mkDerivation rec {
pname = "foxtrotgps";
- version = "1.2.2+326";
+ version = "1.2.2+329";
# Pull directly from bzr because gpsd API version 9 is not supported on latest release
src = srcs.foxtrot;
- patches = [
- ./gps-status-fix.patch
+ nativeBuildInputs = [
+ pkg-config autoreconfHook texinfo help2man
+ imagemagick wrapGAppsHook intltool
];
- nativeBuildInputs = [ pkg-config autoreconfHook texinfo help2man imagemagick wrapGAppsHook ];
-
buildInputs = [
curl.dev
gnome2.libglade.dev
gpsd
gtk2.dev
- intltool
libexif
sqlite.dev
(python3Packages.python.withPackages (pythonPackages: with python3Packages;
@@ -58,7 +56,7 @@ in stdenv.mkDerivation rec {
innovation.
'';
homepage = "https://www.foxtrotgps.org/";
- license = licenses.gpl2;
+ license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ wucke13 ];
};
diff --git a/pkgs/applications/misc/foxtrotgps/gps-status-fix.patch b/pkgs/applications/misc/foxtrotgps/gps-status-fix.patch
deleted file mode 100644
index e9b3624a174..00000000000
--- a/pkgs/applications/misc/foxtrotgps/gps-status-fix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- foxtrot/src/gps_functions.c.orig 2020-12-04 15:02:22.290163204 -0600
-+++ foxtrot/src/gps_functions.c 2020-12-04 15:04:54.470648534 -0600
-@@ -762,7 +762,11 @@
- {
- gpsdata->fix.time = (time_t) 0;
- }
-+#if GPSD_API_MAJOR_VERSION >= 9
-+ gpsdata->valid = (libgps_gpsdata.fix.status != STATUS_NO_FIX);
-+#else
- gpsdata->valid = (libgps_gpsdata.status != STATUS_NO_FIX);
-+#endif
- if (gpsdata->valid)
- {
- gpsdata->seen_valid = TRUE;
diff --git a/pkgs/applications/networking/irc/qweechat/default.nix b/pkgs/applications/networking/irc/qweechat/default.nix
deleted file mode 100644
index c4a67c8098a..00000000000
--- a/pkgs/applications/networking/irc/qweechat/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, fetchFromGitHub, python27Packages }:
-
-python27Packages.buildPythonApplication rec {
- version = "2016-07-29";
- name = "qweechat-unstable-${version}";
- namePrefix = "";
-
- src = fetchFromGitHub {
- owner = "weechat";
- repo = "qweechat";
- rev = "f5e54d01691adb3abef47e051a6412186c33313c";
- sha256 = "0dhlriwvkrsn7jj01p2wqhf2p63n9qd173jsgccgxlacm2zzvhaz";
- };
-
- prePatch = ''
- substituteInPlace setup.py \
- --replace 'qweechat = qweechat.qweechat' 'qweechat = qweechat.qweechat:main'
- '';
-
- propagatedBuildInputs = with python27Packages; [
- pyside setuptools
- ];
-
- meta = with lib; {
- homepage = "https://github.com/weechat/qweechat";
- description = "Qt remote GUI for WeeChat";
- license = licenses.gpl3;
- maintainers = with maintainers; [ ramkromberg ];
- platforms = with platforms; linux;
- };
-}
diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix
index 91673ed146a..1584972cbeb 100644
--- a/pkgs/applications/office/zotero/default.nix
+++ b/pkgs/applications/office/zotero/default.nix
@@ -36,11 +36,11 @@
stdenv.mkDerivation rec {
pname = "zotero";
- version = "5.0.95";
+ version = "5.0.96";
src = fetchurl {
url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
- sha256 = "16rahl14clgnl7gzpw7rxx23yxbw1nbrz219q051zkjkkw5ai8lv";
+ sha256 = "sha256-W8Iu8UoTqC3aK7lB4bq1L7cNmjaEvjEK+ODcZ9kk3f8=";
};
nativeBuildInputs = [ wrapGAppsHook ];
diff --git a/pkgs/applications/video/minitube/default.nix b/pkgs/applications/video/minitube/default.nix
index a5bd030e470..a1ccc353d56 100644
--- a/pkgs/applications/video/minitube/default.nix
+++ b/pkgs/applications/video/minitube/default.nix
@@ -1,16 +1,15 @@
{ mkDerivation, lib, fetchFromGitHub, phonon, phonon-backend-vlc, qtbase, qmake
, qtdeclarative, qttools, qtx11extras, mpv
-# "Free" key generated by nckx . I no longer have a Google
-# account. You'll need to generate (and please share :-) a new one if it breaks.
-, withAPIKey ? "AIzaSyBtFgbln3bu1swQC-naMxMtKh384D3xJZE" }:
+# "Free" key generated by pasqui23
+, withAPIKey ? "AIzaSyBQvZXseEVvgu5Ega_DI-AIJ55v0OsHmVY" }:
mkDerivation rec {
pname = "minitube";
- version = "3.6";
+ version = "3.8.1";
src = fetchFromGitHub {
- sha256 = "6IaBPYL/yGWKUHxPe1FnAR1gDHImXYGItYWq7VNjwEU=";
+ sha256 = "3lpZyPwo4NnxZJKfmCFsH4WdakV4KB5BtCr5xsleeIQ=";
rev = version;
repo = "minitube";
owner = "flaviotordini";
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index 4d57b399199..e9014a88954 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -518,9 +518,9 @@ rec {
};
result = runCommand "docker-image-${baseName}.tar.gz" {
nativeBuildInputs = [ jshon pigz coreutils findutils jq moreutils ];
- # Image name and tag must be lowercase
+ # Image name must be lowercase
imageName = lib.toLower name;
- imageTag = if tag == null then "" else lib.toLower tag;
+ imageTag = if tag == null then "" else tag;
inherit fromImage baseJson;
layerClosure = writeReferencesToFile layer;
passthru.buildArgs = args;
diff --git a/pkgs/development/compilers/gambit/build.nix b/pkgs/development/compilers/gambit/build.nix
index a4b884147db..84d51a2bc3f 100644
--- a/pkgs/development/compilers/gambit/build.nix
+++ b/pkgs/development/compilers/gambit/build.nix
@@ -25,10 +25,11 @@ gccStdenv.mkDerivation rec {
inherit src version git-version;
bootstrap = gambit-support.gambit-bootstrap;
+ nativeBuildInputs = [ git autoconf ];
# TODO: if/when we can get all the library packages we depend on to have static versions,
# we could use something like (makeStaticLibraries openssl) to enable creation
# of statically linked binaries by gsc.
- buildInputs = [ git autoconf bootstrap openssl ];
+ buildInputs = [ openssl ];
# TODO: patch gambit's source so it has the full path to sed, grep, fgrep? Is there more?
# Or wrap relevant programs to add a suitable PATH ?
@@ -62,11 +63,11 @@ gccStdenv.mkDerivation rec {
lib.optional (!gccStdenv.isDarwin) "--enable-poll";
configurePhase = ''
- export CC=${gcc}/bin/gcc \
- CXX=${gcc}/bin/g++ \
- CPP=${gcc}/bin/cpp \
- CXXCPP=${gcc}/bin/cpp \
- LD=${gcc}/bin/ld \
+ export CC=${gccStdenv.cc.targetPrefix}gcc \
+ CXX=${gccStdenv.cc.targetPrefix}g++ \
+ CPP=${gccStdenv.cc.targetPrefix}cpp \
+ CXXCPP=${gccStdenv.cc.targetPrefix}cpp \
+ LD=${gccStdenv.cc.targetPrefix}ld \
XMKMF=${coreutils}/bin/false
unset CFLAGS LDFLAGS LIBS CPPFLAGS CXXFLAGS
@@ -76,22 +77,23 @@ gccStdenv.mkDerivation rec {
# OS-specific paths are hardcoded in ./configure
substituteInPlace config.status \
- --replace /usr/local/opt/openssl/lib "${openssl.out}/lib" \
- --replace /usr/local/opt/openssl@1.1/lib "${openssl.out}/lib"
+ --replace "/usr/local/opt/openssl@1.1" "${openssl.out}" \
+ --replace "/usr/local/opt/openssl" "${openssl.out}"
+
./config.status
'';
buildPhase = ''
# Make bootstrap compiler, from release bootstrap
- mkdir -p boot &&
- cp -rp ${bootstrap}/gambit/. boot/. &&
- chmod -R u+w boot &&
- cd boot &&
- cp ../gsc/makefile.in ../gsc/*.scm gsc/ && # */
- ./configure &&
- for i in lib gsi gsc ; do (cd $i ; make -j$NIX_BUILD_CORES) ; done &&
- cd .. &&
- cp boot/gsc/gsc gsc-boot &&
+ mkdir -p boot
+ cp -rp ${bootstrap}/gambit/. boot/.
+ chmod -R u+w boot
+ cd boot
+ cp ../gsc/makefile.in ../gsc/*.scm gsc/
+ ./configure
+ for i in lib gsi gsc ; do (cd $i ; make -j$NIX_BUILD_CORES) ; done
+ cd ..
+ cp boot/gsc/gsc gsc-boot
# Now use the bootstrap compiler to build the real thing!
make -j$NIX_BUILD_CORES from-scratch
diff --git a/pkgs/development/compilers/gerbil/build.nix b/pkgs/development/compilers/gerbil/build.nix
index 8297dafff8e..3d2fd7551e6 100644
--- a/pkgs/development/compilers/gerbil/build.nix
+++ b/pkgs/development/compilers/gerbil/build.nix
@@ -1,4 +1,4 @@
-{ pkgs, gccStdenv, lib, coreutils, bash, # makeStaticLibraries,
+{ pkgs, gccStdenv, lib, coreutils,
openssl, zlib, sqlite, libxml2, libyaml, libmysqlclient, lmdb, leveldb, postgresql,
version, git-version,
gambit-support,
diff --git a/pkgs/development/libraries/librsb/default.nix b/pkgs/development/libraries/librsb/default.nix
new file mode 100644
index 00000000000..ef8b9ee441d
--- /dev/null
+++ b/pkgs/development/libraries/librsb/default.nix
@@ -0,0 +1,86 @@
+{ lib, stdenv, fetchurl
+, gfortran
+, pkg-config, libtool
+, m4, gnum4
+, file
+# Memory Hierarchy (End-user can provide this.)
+, memHierarchy ? ""
+# Headers/Libraries
+, blas, zlib
+# RPC headers (rpc/xdr.h)
+, openmpi
+, help2man
+, doxygen
+, octave
+}:
+
+stdenv.mkDerivation rec {
+ pname = "librsb";
+ version = "1.2.0.9";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "1ynrsgnvv1jfm8dv3jwjrip9x9icxv7w3qrk149025j6fbaza8gl";
+ };
+
+ # The default configure flags are still present when building
+ # --disable-static --disable-dependency-tracking
+ # Along with the --prefix=... flag (but we want that one).
+ configureFlags = [
+ "--enable-static"
+ "--enable-doc-build"
+ "--enable-octave-testing"
+ "--enable-sparse-blas-interface"
+ "--enable-fortran-module-install"
+ "--enable-pkg-config-install"
+ "--enable-matrix-types=all"
+ "--with-zlib=${zlib}/lib/libz.so"
+ "--with-memhinfo=${memHierarchy}"
+ ];
+
+ # Ensure C/Fortran code is position-independent.
+ NIX_CFLAGS_COMPILE = [ "-fPIC" "-Ofast" ];
+ FCFLAGS = [ "-fPIC" "-Ofast" ];
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [
+ gfortran
+ pkg-config libtool
+ m4 gnum4
+ file
+ blas zlib
+ openmpi
+ octave
+ help2man # Turn "--help" into a man-page
+ doxygen # Build documentation
+ ];
+
+ # Need to run cleanall target to remove any previously-generated files.
+ preBuild = ''
+ make cleanall
+ '';
+
+ checkInputs = [
+ octave
+ ];
+ checkTarget = "tests";
+
+ meta = with lib; {
+ homepage = "http://librsb.sourceforge.net/";
+ description = "Shared memory parallel sparse matrix and sparse BLAS library";
+ longDescription = ''
+ Library for sparse matrix computations featuring the Recursive Sparse
+ Blocks (RSB) matrix format. This format allows cache efficient and
+ multi-threaded (that is, shared memory parallel) operations on large
+ sparse matrices.
+ librsb implements the Sparse BLAS standard, as specified in the BLAS
+ Forum documents.
+ Contains libraries and header files for developing applications that
+ want to make use of librsb.
+ '';
+ license = with licenses; [ lgpl3Plus ];
+ maintainers = with maintainers; [ KarlJoad ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/development/ocaml-modules/batteries/default.nix b/pkgs/development/ocaml-modules/batteries/default.nix
index d4b7f3ff9a1..7785a70e050 100644
--- a/pkgs/development/ocaml-modules/batteries/default.nix
+++ b/pkgs/development/ocaml-modules/batteries/default.nix
@@ -1,13 +1,13 @@
{ stdenv, lib, fetchurl, ocaml, findlib, ocamlbuild, qtest, num }:
-let version = "3.2.0"; in
+let version = "3.3.0"; in
stdenv.mkDerivation {
name = "ocaml${ocaml.version}-batteries-${version}";
src = fetchurl {
url = "https://github.com/ocaml-batteries-team/batteries-included/releases/download/v${version}/batteries-${version}.tar.gz";
- sha256 = "0a77njgc6c6kz4rpwqgmnii7f1na6hzsa55nqqm3dndhq9xh628w";
+ sha256 = "002pqkcg18zx59hsf172wg6s7lwsiagp5sfvf5yssp7xxal5jdgx";
};
buildInputs = [ ocaml findlib ocamlbuild ];
diff --git a/pkgs/development/php-packages/apcu/default.nix b/pkgs/development/php-packages/apcu/default.nix
index 04b611fd598..3301d949c22 100644
--- a/pkgs/development/php-packages/apcu/default.nix
+++ b/pkgs/development/php-packages/apcu/default.nix
@@ -3,8 +3,8 @@
buildPecl {
pname = "apcu";
- version = "5.1.19";
- sha256 = "1q3c4y9jqh1yz5vps2iiz2x04vn0y1g5ibxg1x8zp7n7sncvqzw3";
+ version = "5.1.20";
+ sha256 = "sha256-uZ1A+v7Ab00TL87lPnUm3b/B0EHqbgThc4nfrSj5w5A=";
buildInputs = [ pcre' ];
doCheck = true;
diff --git a/pkgs/development/php-packages/smbclient/default.nix b/pkgs/development/php-packages/smbclient/default.nix
index 0486db82cc3..0b485e04805 100644
--- a/pkgs/development/php-packages/smbclient/default.nix
+++ b/pkgs/development/php-packages/smbclient/default.nix
@@ -1,8 +1,8 @@
{ buildPecl, lib, samba, pkg-config }:
buildPecl {
pname = "smbclient";
- version = "1.0.5";
- sha256 = "sha256-cNvTa1qzYrlhuX4oNehXt+XKqmqfonyomW/usQdQQO0=";
+ version = "1.0.6";
+ sha256 = "sha256-ZsQzdDt6NLRWBsA75om9zkxSvB6zBsvvPhXJZrX/KNc=";
# TODO: remove this when upstream merges a fix - https://github.com/eduardok/libsmbclient-php/pull/66
LIBSMBCLIENT_INCDIR = "${samba.dev}/include/samba-4.0";
diff --git a/pkgs/development/python-modules/buildbot/default.nix b/pkgs/development/python-modules/buildbot/default.nix
index 30a7e5174a6..ea4910712ce 100644
--- a/pkgs/development/python-modules/buildbot/default.nix
+++ b/pkgs/development/python-modules/buildbot/default.nix
@@ -25,11 +25,11 @@ let
package = buildPythonPackage rec {
pname = "buildbot";
- version = "2.10.1";
+ version = "3.0.0";
src = fetchPypi {
inherit pname version;
- sha256 = "0jmgpvgn36kfc1sa27a1l1g26dawhl99a1wl8gn4ajbcbcvc2pkh";
+ sha256 = "0li47fpm398dk69q6g2zjaxx46w00g3n0jszz88kf57sakri553y";
};
propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/buildbot/pkg.nix b/pkgs/development/python-modules/buildbot/pkg.nix
index f3dc0440ac5..71da12049e9 100644
--- a/pkgs/development/python-modules/buildbot/pkg.nix
+++ b/pkgs/development/python-modules/buildbot/pkg.nix
@@ -6,7 +6,7 @@ buildPythonPackage rec {
src = fetchPypi {
inherit pname version;
- sha256 = "0ymqkjz1zk4gs0hkxjh07napc4k24xxb8f3pganw27fca60xcii0";
+ sha256 = "0ihcxdkbm1lq79fdjmcrj316zh6sjlc3162yynww8nggv2mlnz6v";
};
postPatch = ''
diff --git a/pkgs/development/python-modules/buildbot/plugins.nix b/pkgs/development/python-modules/buildbot/plugins.nix
index ed2f363901e..a9a9538f5b9 100644
--- a/pkgs/development/python-modules/buildbot/plugins.nix
+++ b/pkgs/development/python-modules/buildbot/plugins.nix
@@ -7,7 +7,7 @@
src = fetchPypi {
inherit pname version;
- sha256 = "0x2k95lwx2gz2zj2ys646qiylhyqzlbiqf1k3q1l8w1wlggwv3xp";
+ sha256 = "0pk7h5wwvmdn74ngj5rspz7z9y80ryzgqd2z2qy7kf9chpz7qczk";
};
# Remove unneccessary circular dependency on buildbot
@@ -34,7 +34,7 @@
src = fetchPypi {
inherit pname version;
- sha256 = "0fpam6x8x207la1xrr8m45yx35r646iizrs4gsaghlysmr95jb3i";
+ sha256 = "1y9dpxi7r5r2ya5y0i28b4g5fvla6wrbjz9rffqaqldf4h316jx2";
};
buildInputs = [ buildbot-pkg ];
@@ -56,7 +56,7 @@
src = fetchPypi {
inherit pname version;
- sha256 = "0ari338hmi1bb1pln3mxv4k9aclbcby6z3km61wg3va511qhrrbq";
+ sha256 = "0vhnqqxl693b2d14ayifpjz8zlg3dngl127svr08amzmbad7irh1";
};
buildInputs = [ buildbot-pkg ];
@@ -78,7 +78,7 @@
src = fetchPypi {
inherit pname version;
- sha256 = "0a5nrklyzfasaa119y4ivr7449rvsgifpkyravinacrl1g9phlls";
+ sha256 = "1dgs33z3sjr3s8ymqyxjkx2g6iah3p91ng9hxllmyyp4xpxaxyhk";
};
buildInputs = [ buildbot-pkg ];
@@ -100,7 +100,7 @@
src = fetchPypi {
inherit pname version;
- sha256 = "0rris2p7ic9p9ms3qcczia4nn5mb1yx2gv5mlnmg2yligjad2jaf";
+ sha256 = "06j6f2k0r8nyh8swh689cy4zq50lmy5glx0pa3zdpnk02k4x3q72";
};
buildInputs = [ buildbot-pkg ];
diff --git a/pkgs/development/python-modules/buildbot/worker.nix b/pkgs/development/python-modules/buildbot/worker.nix
index 02139d15e75..7feb409a26d 100644
--- a/pkgs/development/python-modules/buildbot/worker.nix
+++ b/pkgs/development/python-modules/buildbot/worker.nix
@@ -7,7 +7,7 @@ buildPythonPackage (rec {
src = fetchPypi {
inherit pname version;
- sha256 = "10ap7jlxs9vcmnyafr62mxlgsp709165nw55xmv9sw18r7m8wsm6";
+ sha256 = "0zrd9h9i7fnmh81zvscxzq3rspyvjvidzbgcziq2m0z522krs8qq";
};
propagatedBuildInputs = [ twisted future ];
diff --git a/pkgs/development/python-modules/docker/default.nix b/pkgs/development/python-modules/docker/default.nix
index 8a9e9c90804..ab7a7b664b0 100644
--- a/pkgs/development/python-modules/docker/default.nix
+++ b/pkgs/development/python-modules/docker/default.nix
@@ -1,8 +1,11 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy27
, backports_ssl_match_hostname
, mock
, paramiko
-, pytest
, pytestCheckHook
, requests
, six
@@ -11,11 +14,11 @@
buildPythonPackage rec {
pname = "docker";
- version = "4.4.3";
+ version = "4.4.4";
src = fetchPypi {
inherit pname version;
- sha256 = "de5753b7f6486dd541a98393e423e387579b8974a5068748b83f852cc76a89d6";
+ sha256 = "d3393c878f575d3a9ca3b94471a3c89a6d960b35feb92f033c0de36cc9d934db";
};
nativeBuildInputs = lib.optional isPy27 mock;
@@ -32,8 +35,9 @@ buildPythonPackage rec {
];
pytestFlagsArray = [ "tests/unit" ];
+
# Deselect socket tests on Darwin because it hits the path length limit for a Unix domain socket
- disabledTests = lib.optionals stdenv.isDarwin [ "stream_response" "socket_file" ];
+ disabledTests = lib.optionals stdenv.isDarwin [ "api_test" "stream_response" "socket_file" ];
dontUseSetuptoolsCheck = true;
diff --git a/pkgs/development/tools/kustomize/default.nix b/pkgs/development/tools/kustomize/default.nix
index f658995fe90..b5b0c8b81bf 100644
--- a/pkgs/development/tools/kustomize/default.nix
+++ b/pkgs/development/tools/kustomize/default.nix
@@ -2,9 +2,9 @@
buildGoModule rec {
pname = "kustomize";
- version = "3.10.0";
- # rev is the 3.9.3 commit, mainly for kustomize version command output
- rev = "602ad8aa98e2e17f6c9119e027a09757e63c8bec";
+ version = "4.0.5";
+ # rev is the commit of the tag, mainly for kustomize version command output
+ rev = "9e8e7a7fe99ec9fbf801463e8607928322fc5245";
buildFlagsArray = let t = "sigs.k8s.io/kustomize/api/provenance"; in
''
@@ -17,13 +17,16 @@ buildGoModule rec {
owner = "kubernetes-sigs";
repo = pname;
rev = "kustomize/v${version}";
- sha256 = "1qr0mi83df8d9qd2svyr1h26pg97qi67nnygrkydnp8an28k48hi";
+ sha256 = "sha256-rv65sDr6V6hEYgIRxS1OSu9txmW75F7/YGAy/zRXGyY=";
};
+ # TODO: Remove once https://github.com/kubernetes-sigs/kustomize/pull/3708 got merged.
+ doCheck = false;
+
# avoid finding test and development commands
sourceRoot = "source/kustomize";
- vendorSha256 = "0p2j8mm7jpladpm6v3451g38n5bax0g368dk5h5r5gmkr6srxdy4";
+ vendorSha256 = "sha256-lLUi0vD7uyfDR4HjDiosoTU0NbfQTY7ewZGm38ZT9nU=";
meta = with lib; {
description = "Customization of kubernetes YAML configurations";
diff --git a/pkgs/development/tools/ocaml/dune/2.nix b/pkgs/development/tools/ocaml/dune/2.nix
index f2fe3693ed7..50c1ba40759 100644
--- a/pkgs/development/tools/ocaml/dune/2.nix
+++ b/pkgs/development/tools/ocaml/dune/2.nix
@@ -6,11 +6,11 @@ else
stdenv.mkDerivation rec {
pname = "dune";
- version = "2.8.2";
+ version = "2.8.4";
src = fetchurl {
url = "https://github.com/ocaml/dune/releases/download/${version}/dune-${version}.tbz";
- sha256 = "07mf6pnmv1a6wh4la45zf6cn6qy2vcmz4xgx0djj75kw1wiyii72";
+ sha256 = "1b78f8gk53m68i9igvfpylmvi55h4qqfwymknz1vval4flbj0r2f";
};
buildInputs = [ ocaml findlib ];
diff --git a/pkgs/tools/filesystems/unionfs-fuse/default.nix b/pkgs/tools/filesystems/unionfs-fuse/default.nix
index 77f45d06c91..6af582d91a7 100644
--- a/pkgs/tools/filesystems/unionfs-fuse/default.nix
+++ b/pkgs/tools/filesystems/unionfs-fuse/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, fuse }:
+{ lib, stdenv, fetchFromGitHub, cmake, fuse, osxfuse }:
stdenv.mkDerivation rec {
pname = "unionfs-fuse";
@@ -11,16 +11,23 @@ stdenv.mkDerivation rec {
sha256 = "0bwx70x834qgqh53vqp18bhbxbsny80hz922rbgj8k9wj7cbfilm";
};
- patches =
- [ # Prevent the unionfs daemon from being killed during
- # shutdown. See
- # http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons/
- # for details.
- ./prevent-kill-on-shutdown.patch
- ];
+ patches = [
+ # Prevent the unionfs daemon from being killed during
+ # shutdown. See
+ # http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons/
+ # for details.
+ ./prevent-kill-on-shutdown.patch
+ ];
+
+ postPatch = lib.optionalString stdenv.isDarwin ''
+ substituteInPlace CMakeLists.txt \
+ --replace '/usr/local/include/osxfuse/fuse' '${osxfuse}/include/osxfuse/fuse'
+ substituteInPlace src/CMakeLists.txt \
+ --replace 'target_link_libraries(unionfs fuse pthread)' 'target_link_libraries(unionfs osxfuse pthread)'
+ '';
nativeBuildInputs = [ cmake ];
- buildInputs = [ fuse ];
+ buildInputs = [ (if stdenv.isDarwin then osxfuse else fuse) ];
# Put the unionfs mount helper in place as mount.unionfs-fuse. This makes it
# possible to do:
@@ -28,7 +35,7 @@ stdenv.mkDerivation rec {
#
# This must be done in preConfigure because the build process removes
# helper from the source directory during the build.
- preConfigure = ''
+ preConfigure = lib.optionalString (!stdenv.isDarwin) ''
mkdir -p $out/sbin
cp -a mount.unionfs $out/sbin/mount.unionfs-fuse
substituteInPlace $out/sbin/mount.unionfs-fuse --replace mount.fuse ${fuse}/sbin/mount.fuse
@@ -39,7 +46,7 @@ stdenv.mkDerivation rec {
description = "FUSE UnionFS implementation";
homepage = "https://github.com/rpodgorny/unionfs-fuse";
license = licenses.bsd3;
- platforms = platforms.linux;
+ platforms = platforms.unix;
maintainers = with maintainers; [ orivej ];
};
}
diff --git a/pkgs/tools/networking/privoxy/default.nix b/pkgs/tools/networking/privoxy/default.nix
index 85a8cd5d768..9fce8d7a5f4 100644
--- a/pkgs/tools/networking/privoxy/default.nix
+++ b/pkgs/tools/networking/privoxy/default.nix
@@ -1,4 +1,9 @@
-{ lib, stdenv, fetchurl, autoreconfHook, zlib, pcre, w3m, man }:
+{ lib, stdenv
+, nixosTests
+, fetchurl, autoreconfHook
+, zlib, pcre, w3m, man
+, mbedtls, brotli
+}:
stdenv.mkDerivation rec {
@@ -13,18 +18,28 @@ stdenv.mkDerivation rec {
hardeningEnable = [ "pie" ];
nativeBuildInputs = [ autoreconfHook w3m man ];
- buildInputs = [ zlib pcre ];
+ buildInputs = [ zlib pcre mbedtls brotli ];
- makeFlags = [ "STRIP="];
+ makeFlags = [ "STRIP=" ];
+ configureFlags = [
+ "--with-mbedtls"
+ "--with-brotli"
+ "--enable-external-filters"
+ "--enable-compression"
+ ];
postInstall = ''
- rm -rf $out/var
+ rm -r $out/var
'';
+ passthru.tests.privoxy = nixosTests.privoxy;
+
meta = with lib; {
homepage = "https://www.privoxy.org/";
description = "Non-caching web proxy with advanced filtering capabilities";
- license = licenses.gpl2Plus;
+ # When linked with mbedtls, the license becomes GPLv3 (or later), otherwise
+ # GPLv2 (or later). See https://www.privoxy.org/user-manual/copyright.html
+ license = licenses.gpl3Plus;
platforms = platforms.all;
maintainers = [ maintainers.phreedom ];
};
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index da00ed76ca8..6036e421683 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -564,6 +564,7 @@ mapAliases ({
qr-filetransfer = throw ''"qr-filetransfer" has been renamed to "qrcp"''; # added 2020-12-02
quake3game = ioquake3; # added 2016-01-14
qvim = throw "qvim has been removed."; # added 2020-08-31
+ qweechat = throw "qweechat has been removed because it was broken"; # added 2021-03-08
qwt6 = libsForQt5.qwt; # added 2015-12-19
qtcurve = libsForQt5.qtcurve; # added 2020-11-07
qtpfsgui = throw "qtpfsgui is now luminanceHDR"; # added 2019-06-26
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 4622497a0f8..e0aeeba2b73 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -15337,6 +15337,11 @@ in
librime = callPackage ../development/libraries/librime {};
+ librsb = callPackage ../development/libraries/librsb {
+ # Taken from https://build.opensuse.org/package/view_file/science/librsb/librsb.spec
+ memHierarchy = "L3:16/64/8192K,L2:16/64/2048K,L1:8/64/16K";
+ };
+
librtprocess = callPackage ../development/libraries/librtprocess { };
libsamplerate = callPackage ../development/libraries/libsamplerate {
@@ -27311,8 +27316,6 @@ in
pysolfc = python3Packages.callPackage ../games/pysolfc { };
- qweechat = callPackage ../applications/networking/irc/qweechat { };
-
qqwing = callPackage ../games/qqwing { };
quake3wrapper = callPackage ../games/quake3/wrapper { };