forked from mirrors/nixpkgs
Merge pull request #83473 from doronbehar/update-connman
connman: 1.37 -> 1.38
This commit is contained in:
commit
d5cfaf5c39
|
@ -77,6 +77,13 @@ in {
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
description = "The connman package / build flavor";
|
||||||
|
default = connman;
|
||||||
|
example = literalExample "pkgs.connmanFull";
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -89,11 +96,13 @@ in {
|
||||||
assertion = !config.networking.useDHCP;
|
assertion = !config.networking.useDHCP;
|
||||||
message = "You can not use services.connman with networking.useDHCP";
|
message = "You can not use services.connman with networking.useDHCP";
|
||||||
}{
|
}{
|
||||||
|
# TODO: connman seemingly can be used along network manager and
|
||||||
|
# connmanFull supports this - so this should be worked out somehow
|
||||||
assertion = !config.networking.networkmanager.enable;
|
assertion = !config.networking.networkmanager.enable;
|
||||||
message = "You can not use services.connman with networking.networkmanager";
|
message = "You can not use services.connman with networking.networkmanager";
|
||||||
}];
|
}];
|
||||||
|
|
||||||
environment.systemPackages = [ connman ];
|
environment.systemPackages = [ cfg.package ];
|
||||||
|
|
||||||
systemd.services.connman = {
|
systemd.services.connman = {
|
||||||
description = "Connection service";
|
description = "Connection service";
|
||||||
|
@ -105,7 +114,7 @@ in {
|
||||||
BusName = "net.connman";
|
BusName = "net.connman";
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
ExecStart = toString ([
|
ExecStart = toString ([
|
||||||
"${pkgs.connman}/sbin/connmand"
|
"${cfg.package}/sbin/connmand"
|
||||||
"--config=${configFile}"
|
"--config=${configFile}"
|
||||||
"--nodaemon"
|
"--nodaemon"
|
||||||
] ++ optional enableIwd "--wifi=iwd_agent"
|
] ++ optional enableIwd "--wifi=iwd_agent"
|
||||||
|
@ -122,7 +131,7 @@ in {
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "dbus";
|
Type = "dbus";
|
||||||
BusName = "net.connman.vpn";
|
BusName = "net.connman.vpn";
|
||||||
ExecStart = "${pkgs.connman}/sbin/connman-vpnd -n";
|
ExecStart = "${cfg.package}/sbin/connman-vpnd -n";
|
||||||
StandardOutput = "null";
|
StandardOutput = "null";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -132,7 +141,7 @@ in {
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Name = "net.connman.vpn";
|
Name = "net.connman.vpn";
|
||||||
before = [ "connman" ];
|
before = [ "connman" ];
|
||||||
ExecStart = "${pkgs.connman}/sbin/connman-vpnd -n";
|
ExecStart = "${cfg.package}/sbin/connman-vpnd -n";
|
||||||
User = "root";
|
User = "root";
|
||||||
SystemdService = "connman-vpn.service";
|
SystemdService = "connman-vpn.service";
|
||||||
};
|
};
|
||||||
|
|
171
pkgs/tools/networking/connman/connman.nix
Normal file
171
pkgs/tools/networking/connman/connman.nix
Normal file
|
@ -0,0 +1,171 @@
|
||||||
|
{ stdenv
|
||||||
|
, fetchurl
|
||||||
|
, pkgconfig
|
||||||
|
, file
|
||||||
|
, glib
|
||||||
|
# always required runtime dependencies
|
||||||
|
, dbus
|
||||||
|
, libmnl
|
||||||
|
, gnutls
|
||||||
|
, readline
|
||||||
|
# configureable options
|
||||||
|
, firewallType ? "iptables" # or "nftables"
|
||||||
|
, iptables ? null
|
||||||
|
, libnftnl ? null # for nftables
|
||||||
|
, dnsType ? "internal" # or "systemd-resolved"
|
||||||
|
# optional features which are turned *on* by default
|
||||||
|
, enableOpenconnect ? true
|
||||||
|
, openconnect ? null
|
||||||
|
, enableOpenvpn ? true
|
||||||
|
, openvpn ? null
|
||||||
|
, enableVpnc ? true
|
||||||
|
, vpnc ? true
|
||||||
|
, enablePolkit ? true
|
||||||
|
, polkit ? null
|
||||||
|
, enablePptp ? true
|
||||||
|
, pptp ? null
|
||||||
|
, ppp ? null
|
||||||
|
, enableLoopback ? true
|
||||||
|
, enableEthernet ? true
|
||||||
|
, enableWireguard ? true
|
||||||
|
, enableGadget ? true
|
||||||
|
, enableWifi ? true
|
||||||
|
, enableBluetooth ? true
|
||||||
|
, enableOfono ? true
|
||||||
|
, enableDundee ? true
|
||||||
|
, enablePacrunner ? true
|
||||||
|
, enableNeard ? true
|
||||||
|
, enableWispr ? true
|
||||||
|
, enableTools ? true
|
||||||
|
, enableStats ? true
|
||||||
|
, enableClient ? true
|
||||||
|
, enableDatafiles ? true
|
||||||
|
# optional features which are turned *off* by default
|
||||||
|
, enableNetworkManager ? false
|
||||||
|
, enableHh2serialGps ? false
|
||||||
|
, enableL2tp ? false
|
||||||
|
, enableIospm ? false
|
||||||
|
, enableTist ? false
|
||||||
|
}:
|
||||||
|
|
||||||
|
assert stdenv.lib.asserts.assertOneOf "firewallType" firewallType [ "iptables" "nftables" ];
|
||||||
|
assert stdenv.lib.asserts.assertOneOf "dnsType" dnsType [ "internal" "systemd-resolved" ];
|
||||||
|
|
||||||
|
let inherit (stdenv.lib) optionals; in
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "connman";
|
||||||
|
version = "1.38";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "mirror://kernel/linux/network/connman/${pname}-${version}.tar.xz";
|
||||||
|
sha256 = "0awkqigvhwwxiapw0x6yd4whl465ka8a4al0v2pcqy9ggjlsqc6b";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
glib
|
||||||
|
dbus
|
||||||
|
libmnl
|
||||||
|
gnutls
|
||||||
|
readline
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
pkgconfig
|
||||||
|
file
|
||||||
|
]
|
||||||
|
++ optionals (enablePolkit) [ polkit ]
|
||||||
|
++ optionals (enablePptp) [ pptp ppp ]
|
||||||
|
++ optionals (firewallType == "iptables") [ iptables ]
|
||||||
|
++ optionals (firewallType == "nftables") [ libnftnl ]
|
||||||
|
;
|
||||||
|
|
||||||
|
# fix invalid path to 'file'
|
||||||
|
postPatch = ''
|
||||||
|
sed -i "s/\/usr\/bin\/file/file/g" ./configure
|
||||||
|
'';
|
||||||
|
|
||||||
|
configureFlags = [
|
||||||
|
# directories flags
|
||||||
|
"--sysconfdir=${placeholder "out"}/etc"
|
||||||
|
"--localstatedir=/var"
|
||||||
|
"--with-dbusconfdir=${placeholder "out"}/share"
|
||||||
|
"--with-dbusdatadir=${placeholder "out"}/share"
|
||||||
|
"--with-tmpfilesdir=${placeholder "out"}/lib/tmpfiles.d"
|
||||||
|
"--with-systemdunitdir=${placeholder "out"}/lib/systemd/system"
|
||||||
|
"--with-dns-backend=${dnsType}"
|
||||||
|
"--with-firewall=${firewallType}"
|
||||||
|
# production build flags
|
||||||
|
"--disable-maintainer-mode"
|
||||||
|
"--enable-session-policy-local=builtin"
|
||||||
|
# for building and running tests
|
||||||
|
# "--enable-tests" # installs the tests, we don't want that
|
||||||
|
"--enable-tools"
|
||||||
|
]
|
||||||
|
++ optionals (!enableLoopback) [ "--disable-loopback" ]
|
||||||
|
++ optionals (!enableEthernet) [ "--disable-ethernet" ]
|
||||||
|
++ optionals (!enableWireguard) [ "--disable-wireguard" ]
|
||||||
|
++ optionals (!enableGadget) [ "--disable-gadget" ]
|
||||||
|
++ optionals (!enableWifi) [ "--disable-wifi" ]
|
||||||
|
# enable IWD support for wifi as it doesn't require any new dependencies
|
||||||
|
# and it's easier for the NixOS module to use only one connman package when
|
||||||
|
# IWD is requested
|
||||||
|
++ optionals (enableWifi) [ "--enable-iwd" ]
|
||||||
|
++ optionals (!enableBluetooth) [ "--disable-bluetooth" ]
|
||||||
|
++ optionals (!enableOfono) [ "--disable-ofono" ]
|
||||||
|
++ optionals (!enableDundee) [ "--disable-dundee" ]
|
||||||
|
++ optionals (!enablePacrunner) [ "--disable-pacrunner" ]
|
||||||
|
++ optionals (!enableNeard) [ "--disable-neard" ]
|
||||||
|
++ optionals (!enableWispr) [ "--disable-wispr" ]
|
||||||
|
++ optionals (!enableTools) [ "--disable-tools" ]
|
||||||
|
++ optionals (!enableStats) [ "--disable-stats" ]
|
||||||
|
++ optionals (!enableClient) [ "--disable-client" ]
|
||||||
|
++ optionals (!enableDatafiles) [ "--disable-datafiles" ]
|
||||||
|
++ optionals (enableOpenconnect) [
|
||||||
|
"--enable-openconnect=builtin"
|
||||||
|
"--with-openconnect=${openconnect}/sbin/openconnect"
|
||||||
|
]
|
||||||
|
++ optionals (enableOpenvpn) [
|
||||||
|
"--enable-openvpn=builtin"
|
||||||
|
"--with-openvpn=${openvpn}/sbin/openvpn"
|
||||||
|
]
|
||||||
|
++ optionals (enableVpnc) [
|
||||||
|
"--enable-vpnc=builtin"
|
||||||
|
"--with-vpnc=${vpnc}/sbin/vpnc"
|
||||||
|
]
|
||||||
|
++ optionals (enablePolkit) [
|
||||||
|
"--enable-polkit"
|
||||||
|
]
|
||||||
|
++ optionals (enablePptp) [
|
||||||
|
"--enable-pptp"
|
||||||
|
"--with-pptp=${pptp}/sbin/pptp"
|
||||||
|
]
|
||||||
|
++ optionals (!enableWireguard) [
|
||||||
|
"--disable-wireguard"
|
||||||
|
]
|
||||||
|
++ optionals (enableNetworkManager) [
|
||||||
|
"--enable-nmcompat"
|
||||||
|
]
|
||||||
|
++ optionals (enableHh2serialGps) [
|
||||||
|
"--enable-hh2serial-gps"
|
||||||
|
]
|
||||||
|
++ optionals (enableL2tp) [
|
||||||
|
"--enable-l2tp"
|
||||||
|
]
|
||||||
|
++ optionals (enableIospm) [
|
||||||
|
"--enable-iospm"
|
||||||
|
]
|
||||||
|
++ optionals (enableTist) [
|
||||||
|
"--enable-tist"
|
||||||
|
]
|
||||||
|
;
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "A daemon for managing internet connections";
|
||||||
|
homepage = "https://01.org/connman";
|
||||||
|
maintainers = [ maintainers.matejc ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
license = licenses.gpl2;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,61 +1,40 @@
|
||||||
{ stdenv, fetchurl, pkgconfig, openconnect, file, gawk,
|
{ callPackage }:
|
||||||
openvpn, vpnc, glib, dbus, iptables, gnutls, polkit,
|
|
||||||
wpa_supplicant, readline6, pptp, ppp }:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
{
|
||||||
pname = "connman";
|
# All the defaults
|
||||||
version = "1.37";
|
connman = callPackage ./connman.nix { };
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://kernel/linux/network/connman/${pname}-${version}.tar.xz";
|
connmanFull = callPackage ./connman.nix {
|
||||||
sha256 = "05kfjiqhqfmbbwc4snnyvi5hc4zxanac62f6gcwaf5mvn0z9pqkc";
|
# TODO: Why is this in `connmanFull` and not the default build? See TODO in
|
||||||
|
# nixos/modules/services/networking/connman.nix (near the assertions)
|
||||||
|
enableNetworkManager = true;
|
||||||
|
enableHh2serialGps = true;
|
||||||
|
enableL2tp = true;
|
||||||
|
enableIospm = true;
|
||||||
|
enableTist = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ openconnect polkit
|
connmanMinimal = callPackage ./connman.nix {
|
||||||
openvpn vpnc glib dbus iptables gnutls
|
enableOpenconnect = false;
|
||||||
wpa_supplicant readline6 pptp ppp ];
|
enableOpenvpn = false;
|
||||||
|
enableVpnc = false;
|
||||||
nativeBuildInputs = [ pkgconfig file gawk ];
|
vpnc = false;
|
||||||
|
enablePolkit = false;
|
||||||
preConfigure = ''
|
enablePptp = false;
|
||||||
export WPASUPPLICANT=${wpa_supplicant}/sbin/wpa_supplicant
|
enableLoopback = false;
|
||||||
export PPPD=${ppp}/sbin/pppd
|
# enableEthernet = false; # If disabled no ethernet connection can be performed
|
||||||
export AWK=${gawk}/bin/gawk
|
enableWireguard = false;
|
||||||
sed -i "s/\/usr\/bin\/file/file/g" ./configure
|
enableGadget = false;
|
||||||
'';
|
# enableWifi = false; # If disabled no WiFi connection can be performed
|
||||||
|
enableBluetooth = false;
|
||||||
configureFlags = [
|
enableOfono = false;
|
||||||
"--sysconfdir=\${out}/etc"
|
enableDundee = false;
|
||||||
"--localstatedir=/var"
|
enablePacrunner = false;
|
||||||
"--with-dbusconfdir=${placeholder "out"}/share"
|
enableNeard = false;
|
||||||
"--with-dbusdatadir=${placeholder "out"}/share"
|
enableWispr = false;
|
||||||
"--disable-maintainer-mode"
|
enableTools = false;
|
||||||
"--enable-openconnect=builtin"
|
enableStats = false;
|
||||||
"--with-openconnect=${openconnect}/sbin/openconnect"
|
enableClient = false;
|
||||||
"--enable-openvpn=builtin"
|
# enableDatafiles = false; # If disabled, configuration and data files are not installed
|
||||||
"--with-openvpn=${openvpn}/sbin/openvpn"
|
|
||||||
"--enable-vpnc=builtin"
|
|
||||||
"--with-vpnc=${vpnc}/sbin/vpnc"
|
|
||||||
"--enable-session-policy-local=builtin"
|
|
||||||
"--enable-client"
|
|
||||||
"--enable-bluetooth"
|
|
||||||
"--enable-wifi"
|
|
||||||
"--enable-polkit"
|
|
||||||
"--enable-tools"
|
|
||||||
"--enable-datafiles"
|
|
||||||
"--enable-pptp"
|
|
||||||
"--with-pptp=${pptp}/sbin/pptp"
|
|
||||||
"--enable-iwd"
|
|
||||||
];
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
cp ./client/connmanctl $out/sbin/connmanctl
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
description = "A daemon for managing internet connections";
|
|
||||||
homepage = https://01.org/connman;
|
|
||||||
maintainers = [ maintainers.matejc ];
|
|
||||||
platforms = platforms.linux;
|
|
||||||
license = licenses.gpl2;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2499,7 +2499,11 @@ in
|
||||||
|
|
||||||
conspy = callPackage ../os-specific/linux/conspy {};
|
conspy = callPackage ../os-specific/linux/conspy {};
|
||||||
|
|
||||||
connman = callPackage ../tools/networking/connman { };
|
inherit (callPackage ../tools/networking/connman {})
|
||||||
|
connman
|
||||||
|
connmanFull
|
||||||
|
connmanMinimal
|
||||||
|
;
|
||||||
|
|
||||||
connman-gtk = callPackage ../tools/networking/connman/connman-gtk { };
|
connman-gtk = callPackage ../tools/networking/connman/connman-gtk { };
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue