Merge pull request #147975 from andersk/mozillavpn
This commit is contained in:
commit
45b9690a75
@ -219,6 +219,15 @@
|
||||
to be able to access the device.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://github.com/mozilla-mobile/mozilla-vpn-client">mozillavpn</link>,
|
||||
the client for the
|
||||
<link xlink:href="https://vpn.mozilla.org/">Mozilla VPN</link>
|
||||
service. Available as
|
||||
<link xlink:href="options.html#opt-services.mozillavpn">services.mozillavpn</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://github.com/mgumz/mtr-exporter">mtr-exporter</link>,
|
||||
|
@ -65,6 +65,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||
|
||||
- [K40-Whisperer](https://www.scorchworks.com/K40whisperer/k40whisperer.html), a program to control cheap Chinese laser cutters. Available as [programs.k40-whisperer.enable](options.html#opt-programs.k4-whisperer.enable). Users must add themselves to the `k40` group to be able to access the device.
|
||||
|
||||
- [mozillavpn](https://github.com/mozilla-mobile/mozilla-vpn-client), the client for the [Mozilla VPN](https://vpn.mozilla.org/) service. Available as [services.mozillavpn](options.html#opt-services.mozillavpn).
|
||||
|
||||
- [mtr-exporter](https://github.com/mgumz/mtr-exporter), a Prometheus exporter for mtr metrics. Available as [services.mtr-exporter](options.html#opt-services.mtr-exporter.enable).
|
||||
|
||||
- [prometheus-pve-exporter](https://github.com/prometheus-pve/prometheus-pve-exporter), a tool that exposes information from the Proxmox VE API for use by Prometheus. Available as [services.prometheus.exporters.pve](options.html#opt-services.prometheus.exporters.pve).
|
||||
|
@ -816,6 +816,7 @@
|
||||
./services/networking/mosquitto.nix
|
||||
./services/networking/monero.nix
|
||||
./services/networking/morty.nix
|
||||
./services/networking/mozillavpn.nix
|
||||
./services/networking/miredo.nix
|
||||
./services/networking/mstpd.nix
|
||||
./services/networking/mtprotoproxy.nix
|
||||
|
19
nixos/modules/services/networking/mozillavpn.nix
Normal file
19
nixos/modules/services/networking/mozillavpn.nix
Normal file
@ -0,0 +1,19 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
options.services.mozillavpn.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable the Mozilla VPN daemon.
|
||||
'';
|
||||
};
|
||||
|
||||
config = lib.mkIf config.services.mozillavpn.enable {
|
||||
environment.systemPackages = [ pkgs.mozillavpn ];
|
||||
services.dbus.packages = [ pkgs.mozillavpn ];
|
||||
systemd.packages = [ pkgs.mozillavpn ];
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ andersk ];
|
||||
}
|
111
pkgs/tools/networking/mozillavpn/default.nix
Normal file
111
pkgs/tools/networking/mozillavpn/default.nix
Normal file
@ -0,0 +1,111 @@
|
||||
{ buildGoModule
|
||||
, fetchFromGitHub
|
||||
, go
|
||||
, lib
|
||||
, pkg-config
|
||||
, polkit
|
||||
, python3
|
||||
, qmake
|
||||
, qtbase
|
||||
, qtcharts
|
||||
, qtgraphicaleffects
|
||||
, qtnetworkauth
|
||||
, qtquickcontrols2
|
||||
, qttools
|
||||
, qtwebsockets
|
||||
, stdenv
|
||||
, which
|
||||
, wireguard-tools
|
||||
, wrapQtAppsHook
|
||||
}:
|
||||
|
||||
let
|
||||
glean_parser_4_1_1 = python3.pkgs.buildPythonPackage rec {
|
||||
pname = "glean_parser";
|
||||
version = "4.1.1";
|
||||
src = python3.pkgs.fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-4noazRqjjJNI2kTO714kSp70jZpWmqHWR2vnkgAftLE=";
|
||||
};
|
||||
nativeBuildInputs = with python3.pkgs; [ setuptools-scm ];
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
appdirs
|
||||
click
|
||||
diskcache
|
||||
jinja2
|
||||
jsonschema
|
||||
pyyaml
|
||||
setuptools
|
||||
yamllint
|
||||
];
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py --replace '"pytest-runner", ' ""
|
||||
'';
|
||||
doCheck = false;
|
||||
};
|
||||
|
||||
pname = "mozillavpn";
|
||||
version = "2.7.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mozilla-mobile";
|
||||
repo = "mozilla-vpn-client";
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-i551UkCOwWnioe1YgCNZAlYiQJ4YDDBMoDZhfbkLTbs=";
|
||||
};
|
||||
|
||||
netfilter-go-modules = (buildGoModule {
|
||||
inherit pname version src;
|
||||
vendorSha256 = "sha256-KFYMim5U8WlJHValvIBQgEN+17SDv0JVbH03IiyfDc0=";
|
||||
modRoot = "linux/netfilter";
|
||||
}).go-modules;
|
||||
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
inherit pname version src;
|
||||
|
||||
buildInputs = [
|
||||
polkit
|
||||
qtbase
|
||||
qtcharts
|
||||
qtgraphicaleffects
|
||||
qtnetworkauth
|
||||
qtquickcontrols2
|
||||
qtwebsockets
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
glean_parser_4_1_1
|
||||
go
|
||||
pkg-config
|
||||
python3
|
||||
python3.pkgs.pyyaml
|
||||
qmake
|
||||
qttools
|
||||
which
|
||||
wrapQtAppsHook
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
for file in linux/*.service linux/extra/*.desktop src/platforms/linux/daemon/*.service; do
|
||||
substituteInPlace "$file" --replace /usr/bin/mozillavpn "$out/bin/mozillavpn"
|
||||
done
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
ln -s '${netfilter-go-modules}' linux/netfilter/vendor
|
||||
python3 scripts/generate_glean.py
|
||||
python3 scripts/importLanguages.py
|
||||
'';
|
||||
|
||||
qmakeFlags = [ "USRPATH=$(out)" "ETCPATH=$(out)/etc" ];
|
||||
qtWrapperArgs =
|
||||
[ "--prefix" "PATH" ":" (lib.makeBinPath [ wireguard-tools ]) ];
|
||||
|
||||
meta = {
|
||||
description = "Client for the Mozilla VPN service";
|
||||
homepage = "https://vpn.mozilla.org/";
|
||||
license = lib.licenses.mpl20;
|
||||
maintainers = with lib.maintainers; [ andersk ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
@ -5082,6 +5082,8 @@ with pkgs;
|
||||
|
||||
mcrcon = callPackage ../tools/networking/mcrcon {};
|
||||
|
||||
mozillavpn = libsForQt5.callPackage ../tools/networking/mozillavpn { };
|
||||
|
||||
mozwire = callPackage ../tools/networking/mozwire {
|
||||
inherit (darwin.apple_sdk.frameworks) Security;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user