Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 7184efb40af0
Choose a base ref
...
head repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 788261a1a900
Choose a head ref
Loading
Showing with 4,595 additions and 2,755 deletions.
  1. +3 −3 lib/licenses.nix
  2. +1 −1 lib/options.nix
  3. +5 −0 maintainers/maintainer-list.nix
  4. +5 −0 nixos/modules/installer/tools/nixos-generate-config.pl
  5. +1 −0 nixos/modules/module-list.nix
  6. +108 −0 nixos/modules/programs/captive-browser.nix
  7. +191 −19 nixos/modules/services/databases/cassandra.nix
  8. +50 −40 nixos/modules/services/misc/gitea.nix
  9. +18 −14 nixos/modules/virtualisation/containers.nix
  10. +1 −0 nixos/tests/all-tests.nix
  11. +69 −27 nixos/tests/cassandra.nix
  12. +2 −14 nixos/tests/gitea.nix
  13. +3 −3 pkgs/applications/audio/adlplug/default.nix
  14. +2 −1 pkgs/applications/audio/deadbeef/plugins/infobar.nix
  15. +26 −0 pkgs/applications/audio/deadbeef/plugins/lyricbar.nix
  16. +8 −4 pkgs/applications/audio/pulseaudio-dlna/default.nix
  17. +31 −0 pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix
  18. +2 −2 pkgs/applications/graphics/gimp/default.nix
  19. +6 −2 pkgs/applications/misc/cura/default.nix
  20. +34 −0 pkgs/applications/misc/cura/plugins.nix
  21. +3 −3 pkgs/applications/networking/browsers/browsh/default.nix
  22. +65 −74 pkgs/applications/networking/browsers/browsh/deps.nix
  23. +22 −0 pkgs/applications/networking/browsers/captive-browser/default.nix
  24. +2 −2 pkgs/applications/networking/browsers/chromium/plugins.nix
  25. +373 −373 pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
  26. +373 −373 pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
  27. +397 −397 pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
  28. +2 −2 pkgs/applications/networking/browsers/firefox/packages.nix
  29. +5 −5 pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
  30. +3 −3 pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
  31. +2 −1 pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix
  32. +6 −3 pkgs/applications/networking/instant-messengers/slack/default.nix
  33. +2 −2 pkgs/applications/office/gnumeric/default.nix
  34. +34 −0 pkgs/applications/science/biology/cd-hit/default.nix
  35. +2 −2 pkgs/applications/science/chemistry/octopus/default.nix
  36. +11 −11 pkgs/applications/version-management/gitlab/data.json
  37. +1 −1 pkgs/applications/version-management/redmine/4.x/Gemfile
  38. +49 −50 pkgs/applications/version-management/redmine/4.x/Gemfile.lock
  39. +2 −2 pkgs/applications/version-management/redmine/4.x/default.nix
  40. +41 −49 pkgs/applications/version-management/redmine/4.x/gemset.nix
  41. +3 −3 pkgs/applications/version-management/redmine/Gemfile.lock
  42. +2 −2 pkgs/applications/version-management/redmine/default.nix
  43. +6 −6 pkgs/applications/version-management/redmine/gemset.nix
  44. +2 −2 pkgs/build-support/build-pecl.nix
  45. +22 −0 pkgs/data/fonts/jost/default.nix
  46. +2 −2 pkgs/data/misc/hackage/default.nix
  47. +2 −2 pkgs/development/compilers/ocaml/4.08.nix
  48. 0 pkgs/development/compilers/scala/{default.nix → 2.12.nix}
  49. +46 −0 pkgs/development/compilers/scala/2.13.nix
  50. +15 −12 pkgs/development/coq-modules/QuickChick/default.nix
  51. +2 −2 pkgs/development/coq-modules/simple-io/default.nix
  52. +23 −4 pkgs/development/haskell-modules/configuration-common.nix
  53. +111 −59 pkgs/development/haskell-modules/configuration-hackage2nix.yaml
  54. +1,902 −936 pkgs/development/haskell-modules/hackage-packages.nix
  55. +8 −12 pkgs/development/interpreters/php/default.nix
  56. +4 −3 pkgs/development/libraries/babl/default.nix
  57. +2 −2 pkgs/development/libraries/goffice/default.nix
  58. +2 −2 pkgs/development/python-modules/cli-helpers/default.nix
  59. +4 −4 pkgs/development/python-modules/flask-migrate/default.nix
  60. +1 −1 pkgs/development/python-modules/flask-script/default.nix
  61. +3 −3 pkgs/development/tools/bazel-watcher/default.nix
  62. +13 −11 pkgs/development/tools/build-managers/bazel/bash-tools-test.nix
  63. +109 −18 pkgs/development/tools/build-managers/bazel/default.nix
  64. +28 −26 pkgs/development/tools/build-managers/bazel/nix-hacks.patch
  65. +14 −18 pkgs/development/tools/build-managers/bazel/python-bin-path-test.nix
  66. +2 −2 pkgs/development/tools/continuous-integration/jenkins/default.nix
  67. +5 −5 pkgs/development/tools/kythe/default.nix
  68. +3 −3 pkgs/development/tools/rust/cargo-xbuild/default.nix
  69. +31 −1 pkgs/misc/drivers/epkowa/default.nix
  70. +69 −69 pkgs/misc/vim-plugins/generated.nix
  71. +2 −2 pkgs/os-specific/linux/fuse/default.nix
  72. +2 −2 pkgs/os-specific/linux/kernel/linux-4.14.nix
  73. +2 −2 pkgs/os-specific/linux/kernel/linux-4.19.nix
  74. +2 −2 pkgs/os-specific/linux/kernel/linux-4.4.nix
  75. +2 −2 pkgs/os-specific/linux/kernel/linux-4.9.nix
  76. +2 −2 pkgs/os-specific/linux/kernel/linux-5.1.nix
  77. +3 −0 pkgs/os-specific/linux/zfs/default.nix
  78. +2 −2 pkgs/servers/apache-kafka/default.nix
  79. +2 −2 pkgs/servers/atlassian/crowd.nix
  80. +2 −2 pkgs/servers/atlassian/jira.nix
  81. +14 −7 pkgs/servers/nosql/cassandra/generic.nix
  82. +32 −0 pkgs/servers/sql/postgresql/ext/pg_bigm.nix
  83. +2 −0 pkgs/servers/sql/postgresql/packages.nix
  84. +3 −3 pkgs/servers/x11/xorg/default.nix
  85. +11 −0 pkgs/servers/x11/xorg/overrides.nix
  86. +1 −1 pkgs/servers/x11/xorg/tarballs.list
  87. +3 −3 pkgs/shells/zsh/oh-my-zsh/default.nix
  88. +10 −4 pkgs/tools/admin/iamy/default.nix
  89. +28 −0 pkgs/tools/graphics/svgbob/default.nix
  90. +3 −3 pkgs/tools/misc/broot/default.nix
  91. +16 −2 pkgs/tools/package-management/nix/default.nix
  92. +3 −3 pkgs/tools/system/xe/default.nix
  93. +19 −4 pkgs/top-level/all-packages.nix
  94. +20 −7 pkgs/top-level/perl-packages.nix
  95. +12 −7 pkgs/top-level/php-packages.nix
6 changes: 3 additions & 3 deletions lib/licenses.nix
Original file line number Diff line number Diff line change
@@ -457,9 +457,9 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
fullName = "libpng License";
};

libpng2 = {
fullName = "libpng License v2"; # 1.6.36+
url = "http://www.libpng.org/pub/png/src/libpng-LICENSE.txt";
libpng2 = spdx {
spdxId = "libpng-2.0"; # Used since libpng 1.6.36.
fullName = "PNG Reference Library version 2";
};

libtiff = spdx {
2 changes: 1 addition & 1 deletion lib/options.nix
Original file line number Diff line number Diff line change
@@ -101,7 +101,7 @@ rec {
mergeOneOption = loc: defs:
if defs == [] then abort "This case should never happen."
else if length defs != 1 then
throw "The unique option `${showOption loc}' is defined multiple times, in ${showFiles (getFiles defs)}."
throw "The unique option `${showOption loc}' is defined multiple times, in:\n - ${concatStringsSep "\n - " (getFiles defs)}."
else (head defs).value;

/* "Merge" option definitions by checking that they all have the same value. */
5 changes: 5 additions & 0 deletions maintainers/maintainer-list.nix
Original file line number Diff line number Diff line change
@@ -1333,6 +1333,11 @@
github = "dmjio";
name = "David Johnson";
};
dmvianna = {
email = "dmlvianna@gmail.com";
github = "dmvianna";
name = "Daniel Vianna";
};
dochang = {
email = "dochang@gmail.com";
github = "dochang";
5 changes: 5 additions & 0 deletions nixos/modules/installer/tools/nixos-generate-config.pl
Original file line number Diff line number Diff line change
@@ -258,6 +258,11 @@ sub usbCheck {
}
}

# Add bcache module, if needed.
my @bcacheDevices = glob("/dev/bcache*");
if (scalar @bcacheDevices > 0) {
push @initrdAvailableKernelModules, "bcache";
}

my $virt = `systemd-detect-virt`;
chomp $virt;
1 change: 1 addition & 0 deletions nixos/modules/module-list.nix
Original file line number Diff line number Diff line change
@@ -92,6 +92,7 @@
./programs/bcc.nix
./programs/blcr.nix
./programs/browserpass.nix
./programs/captive-browser.nix
./programs/ccache.nix
./programs/cdemu.nix
./programs/chromium.nix
108 changes: 108 additions & 0 deletions nixos/modules/programs/captive-browser.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
{ config, lib, pkgs, ... }:

with lib;

let
cfg = config.programs.captive-browser;
in
{
###### interface

options = {
programs.captive-browser = {
enable = mkEnableOption "captive browser";

package = mkOption {
type = types.package;
default = pkgs.captive-browser;
};

interface = mkOption {
type = types.str;
description = "your public network interface (wlp3s0, wlan0, eth0, ...)";
};

# the options below are the same as in "captive-browser.toml"
browser = mkOption {
type = types.str;
default = concatStringsSep " " [ ''${pkgs.chromium}/bin/chromium''
''--user-data-dir=$HOME/.chromium-captive''
''--proxy-server="socks5://$PROXY"''
''--host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE localhost"''
''--no-first-run''
''--new-window''
''--incognito''
''http://cache.nixos.org/''
];
description = ''
the shell (/bin/sh) command executed once the proxy starts.
When browser exits, the proxy exits. An extra env var PROXY is available.
Here, we use a separate Chrome instance in Incognito mode, so that
it can run (and be waited for) alongside the default one, and that
it maintains no state across runs. To configure this browser open a
normal window in it, settings will be preserved.
@volth: chromium is to open a plain HTTP (not HTTPS nor redirect to HTTPS!) website.
upstream uses http://example.com but I have seen captive portals whose DNS server resolves "example.com" to 127.0.0.1
'';
};

dhcp-dns = mkOption {
type = types.str;
description = ''
the shell (/bin/sh) command executed to obtain the DHCP
DNS server address. The first match of an IPv4 regex is used.
IPv4 only, because let's be real, it's a captive portal.
'';
};

socks5-addr = mkOption {
type = types.str;
default = "localhost:1666";
description = ''the listen address for the SOCKS5 proxy server'';
};
};
};

###### implementation

config = mkIf cfg.enable {

programs.captive-browser.dhcp-dns = mkOptionDefault (
if config.networking.networkmanager.enable then
"${pkgs.networkmanager}/bin/nmcli dev show ${escapeShellArg cfg.interface} | ${pkgs.gnugrep}/bin/fgrep IP4.DNS"
else if config.networking.dhcpcd.enable then
"${pkgs.dhcpcd}/bin/dhcpcd -U ${escapeShellArg cfg.interface} | ${pkgs.gnugrep}/bin/fgrep domain_name_servers"
else if config.networking.useNetworkd then
"${cfg.package}/bin/systemd-networkd-dns ${escapeShellArg cfg.interface}"
else
"${config.security.wrapperDir}/udhcpc --quit --now -f -i ${escapeShellArg cfg.interface} -O dns --script ${
pkgs.writeScript "udhcp-script" ''
#!/bin/sh
if [ "$1" = bound ]; then
echo "$dns"
fi
''}"
);

security.wrappers.udhcpc = {
capabilities = "cap_net_raw+p";
source = "${pkgs.busybox}/bin/udhcpc";
};

security.wrappers.captive-browser = {
capabilities = "cap_net_raw+p";
source = pkgs.writeScript "captive-browser" ''
#!${pkgs.bash}/bin/bash
export XDG_CONFIG_HOME=${pkgs.writeTextDir "captive-browser.toml" ''
browser = """${cfg.browser}"""
dhcp-dns = """${cfg.dhcp-dns}"""
socks5-addr = """${cfg.socks5-addr}"""
bind-device = """${cfg.interface}"""
''}
exec ${cfg.package}/bin/captive-browser
'';
};
};
}
Loading