uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
89
pkgs/tools/networking/networkmanager/applet/default.nix
Normal file
89
pkgs/tools/networking/networkmanager/applet/default.nix
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
{ lib, stdenv
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, gettext
|
||||
, pkg-config
|
||||
, networkmanager
|
||||
, gnome
|
||||
, libnotify
|
||||
, libsecret
|
||||
, polkit
|
||||
, modemmanager
|
||||
, libnma
|
||||
, glib-networking
|
||||
, gsettings-desktop-schemas
|
||||
, libgudev
|
||||
, jansson
|
||||
, wrapGAppsHook
|
||||
, gobject-introspection
|
||||
, python3
|
||||
, gtk3
|
||||
, libappindicator-gtk3
|
||||
, glib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "network-manager-applet";
|
||||
version = "1.26.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-aWEbKQZK29Vzlf4+Uanr3h6nlGFfd2kARTorvj2M3f0=";
|
||||
};
|
||||
|
||||
mesonFlags = [
|
||||
"-Dselinux=false"
|
||||
"-Dappindicator=yes"
|
||||
];
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
buildInputs = [
|
||||
libnma
|
||||
gtk3
|
||||
networkmanager
|
||||
libnotify
|
||||
libsecret
|
||||
gsettings-desktop-schemas
|
||||
polkit
|
||||
libgudev
|
||||
modemmanager
|
||||
jansson
|
||||
glib
|
||||
glib-networking
|
||||
libappindicator-gtk3
|
||||
gnome.adwaita-icon-theme
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
gettext
|
||||
pkg-config
|
||||
wrapGAppsHook
|
||||
gobject-introspection
|
||||
python3
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py # patchShebangs requires executable file
|
||||
patchShebangs meson_post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "networkmanagerapplet";
|
||||
versionPolicy = "odd-unstable";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://gitlab.gnome.org/GNOME/network-manager-applet/";
|
||||
description = "NetworkManager control applet for GNOME";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
197
pkgs/tools/networking/networkmanager/default.nix
Normal file
197
pkgs/tools/networking/networkmanager/default.nix
Normal file
|
|
@ -0,0 +1,197 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, substituteAll
|
||||
, intltool
|
||||
, pkg-config
|
||||
, fetchpatch
|
||||
, dbus
|
||||
, gnome
|
||||
, systemd
|
||||
, libuuid
|
||||
, polkit
|
||||
, gnutls
|
||||
, ppp
|
||||
, dhcpcd
|
||||
, iptables
|
||||
, nftables
|
||||
, python3
|
||||
, vala
|
||||
, libgcrypt
|
||||
, dnsmasq
|
||||
, bluez5
|
||||
, readline
|
||||
, libselinux
|
||||
, audit
|
||||
, gobject-introspection
|
||||
, modemmanager
|
||||
, openresolv
|
||||
, libndp
|
||||
, newt
|
||||
, libsoup
|
||||
, ethtool
|
||||
, gnused
|
||||
, iputils
|
||||
, kmod
|
||||
, jansson
|
||||
, gtk-doc
|
||||
, libxslt
|
||||
, docbook_xsl
|
||||
, docbook_xml_dtd_412
|
||||
, docbook_xml_dtd_42
|
||||
, docbook_xml_dtd_43
|
||||
, openconnect
|
||||
, curl
|
||||
, meson
|
||||
, ninja
|
||||
, libpsl
|
||||
, mobile-broadband-provider-info
|
||||
, runtimeShell
|
||||
}:
|
||||
|
||||
let
|
||||
pythonForDocs = python3.withPackages (pkgs: with pkgs; [ pygobject3 ]);
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "networkmanager";
|
||||
version = "1.38.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/NetworkManager/${lib.versions.majorMinor version}/NetworkManager-${version}.tar.xz";
|
||||
sha256 = "sha256-gqTPB93+sIFnh7Z8D1BYrmxQ1iWcCwVBok41FWBisu8=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" "devdoc" "man" "doc" ];
|
||||
|
||||
# Right now we hardcode quite a few paths at build time. Probably we should
|
||||
# patch networkmanager to allow passing these path in config file. This will
|
||||
# remove unneeded build-time dependencies.
|
||||
mesonFlags = [
|
||||
# System paths
|
||||
"--sysconfdir=/etc"
|
||||
"--localstatedir=/var"
|
||||
"-Dsystemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
|
||||
# to enable link-local connections
|
||||
"-Dudev_dir=${placeholder "out"}/lib/udev"
|
||||
"-Ddbus_conf_dir=${placeholder "out"}/share/dbus-1/system.d"
|
||||
"-Dkernel_firmware_dir=/run/current-system/firmware"
|
||||
|
||||
# Platform
|
||||
"-Dsession_tracking=systemd"
|
||||
"-Dlibaudit=yes-disabled-by-default"
|
||||
"-Dpolkit_agent_helper_1=/run/wrappers/bin/polkit-agent-helper-1"
|
||||
|
||||
# Features
|
||||
# Allow using iwd when configured to do so
|
||||
"-Diwd=true"
|
||||
"-Dpppd=${ppp}/bin/pppd"
|
||||
"-Diptables=${iptables}/bin/iptables"
|
||||
"-Dnft=${nftables}/bin/nft"
|
||||
"-Dmodem_manager=true"
|
||||
"-Dnmtui=true"
|
||||
"-Ddnsmasq=${dnsmasq}/bin/dnsmasq"
|
||||
"-Dqt=false"
|
||||
|
||||
# Handlers
|
||||
"-Dresolvconf=${openresolv}/bin/resolvconf"
|
||||
|
||||
# DHCP clients
|
||||
# ISC DHCP client has reached it's end of life, so stop using it
|
||||
"-Ddhclient=no"
|
||||
"-Ddhcpcd=${dhcpcd}/bin/dhcpcd"
|
||||
"-Ddhcpcanon=no"
|
||||
|
||||
# Miscellaneous
|
||||
"-Ddocs=true"
|
||||
# We don't use firewalld in NixOS
|
||||
"-Dfirewalld_zone=false"
|
||||
"-Dtests=no"
|
||||
"-Dcrypto=gnutls"
|
||||
];
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit iputils kmod openconnect ethtool gnused systemd;
|
||||
inherit runtimeShell;
|
||||
})
|
||||
|
||||
# Meson does not support using different directories during build and
|
||||
# for installation like Autotools did with flags passed to make install.
|
||||
./fix-install-paths.patch
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
systemd
|
||||
libselinux
|
||||
audit
|
||||
libpsl
|
||||
libuuid
|
||||
polkit
|
||||
ppp
|
||||
libndp
|
||||
curl
|
||||
mobile-broadband-provider-info
|
||||
bluez5
|
||||
dnsmasq
|
||||
gobject-introspection
|
||||
modemmanager
|
||||
readline
|
||||
newt
|
||||
libsoup
|
||||
jansson
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ gnutls libgcrypt ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
intltool
|
||||
pkg-config
|
||||
vala
|
||||
gobject-introspection
|
||||
dbus
|
||||
# Docs
|
||||
gtk-doc
|
||||
libxslt
|
||||
docbook_xsl
|
||||
docbook_xml_dtd_412
|
||||
docbook_xml_dtd_42
|
||||
docbook_xml_dtd_43
|
||||
pythonForDocs
|
||||
];
|
||||
|
||||
doCheck = false; # requires /sys, the net
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs ./tools
|
||||
patchShebangs libnm/generate-setting-docs.py
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
# Our gobject-introspection patches make the shared library paths absolute
|
||||
# in the GIR files. When building docs, the library is not yet installed,
|
||||
# though, so we need to replace the absolute path with a local one during build.
|
||||
# We are using a symlink that will be overridden during installation.
|
||||
mkdir -p ${placeholder "out"}/lib
|
||||
ln -s $PWD/src/libnm-client-impl/libnm.so.0 ${placeholder "out"}/lib/libnm.so.0
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "NetworkManager";
|
||||
attrPath = "networkmanager";
|
||||
versionPolicy = "odd-unstable";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Projects/NetworkManager";
|
||||
description = "Network configuration and management tool";
|
||||
license = licenses.gpl2Plus;
|
||||
changelog = "https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/raw/${version}/NEWS";
|
||||
maintainers = teams.freedesktop.members ++ (with maintainers; [ domenkozar obadz maxeaubrey ]);
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
40
pkgs/tools/networking/networkmanager/dmenu/default.nix
Normal file
40
pkgs/tools/networking/networkmanager/dmenu/default.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{ lib, stdenv, glib, fetchFromGitHub, networkmanager, python3Packages
|
||||
, gobject-introspection }:
|
||||
|
||||
let inherit (python3Packages) python pygobject3;
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "networkmanager_dmenu";
|
||||
version = "1.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "firecat53";
|
||||
repo = "networkmanager-dmenu";
|
||||
rev = version;
|
||||
sha256 = "1liidqh8c33pxyb07qyj0jkd0fdak73g9r2iwiq62vfzrpik09k0";
|
||||
};
|
||||
|
||||
buildInputs = [ glib python pygobject3 gobject-introspection networkmanager python3Packages.wrapPython ];
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp networkmanager_dmenu $out/bin/
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
makeWrapperArgs="\
|
||||
--prefix GI_TYPELIB_PATH : $GI_TYPELIB_PATH \
|
||||
--prefix PYTHONPATH : \"$(toPythonPath $out):$(toPythonPath ${pygobject3})\""
|
||||
wrapPythonPrograms
|
||||
'';
|
||||
|
||||
|
||||
meta = with lib; {
|
||||
description = "Small script to manage NetworkManager connections with dmenu instead of nm-applet";
|
||||
homepage = "https://github.com/firecat53/networkmanager-dmenu";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.jensbin ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
16
pkgs/tools/networking/networkmanager/fix-install-paths.patch
Normal file
16
pkgs/tools/networking/networkmanager/fix-install-paths.patch
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
diff --git a/meson.build b/meson.build
|
||||
index a2d925a7e..5a65cd2fe 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -959,9 +959,9 @@ meson.add_install_script(
|
||||
join_paths('tools', 'meson-post-install.sh'),
|
||||
nm_datadir,
|
||||
nm_bindir,
|
||||
- nm_pkgconfdir,
|
||||
+ nm_prefix + nm_pkgconfdir,
|
||||
nm_pkglibdir,
|
||||
- nm_pkgstatedir,
|
||||
+ nm_prefix + nm_pkgstatedir,
|
||||
nm_mandir,
|
||||
nm_sysconfdir,
|
||||
enable_docs ? '1' : '0',
|
||||
134
pkgs/tools/networking/networkmanager/fix-paths.patch
Normal file
134
pkgs/tools/networking/networkmanager/fix-paths.patch
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
diff --git a/data/84-nm-drivers.rules b/data/84-nm-drivers.rules
|
||||
index 148acade5c..6395fbfbe5 100644
|
||||
--- a/data/84-nm-drivers.rules
|
||||
+++ b/data/84-nm-drivers.rules
|
||||
@@ -7,6 +7,6 @@ ACTION!="add|change|move", GOTO="nm_drivers_end"
|
||||
# Determine ID_NET_DRIVER if there's no ID_NET_DRIVER or DRIVERS (old udev?)
|
||||
ENV{ID_NET_DRIVER}=="?*", GOTO="nm_drivers_end"
|
||||
DRIVERS=="?*", GOTO="nm_drivers_end"
|
||||
-PROGRAM="/bin/sh -c '/usr/sbin/ethtool -i $$1 |/usr/bin/sed -n s/^driver:\ //p' -- $env{INTERFACE}", ENV{ID_NET_DRIVER}="%c"
|
||||
+PROGRAM="@runtimeShell@ -c '@ethtool@/bin/ethtool -i $$1 |@gnused@/bin/sed -n s/^driver:\ //p' -- $env{INTERFACE}", ENV{ID_NET_DRIVER}="%c"
|
||||
|
||||
LABEL="nm_drivers_end"
|
||||
diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in
|
||||
index e23b3a5282..c7246a3b61 100644
|
||||
--- a/data/NetworkManager.service.in
|
||||
+++ b/data/NetworkManager.service.in
|
||||
@@ -8,7 +8,7 @@ Before=network.target @DISTRO_NETWORK_SERVICE@
|
||||
[Service]
|
||||
Type=dbus
|
||||
BusName=org.freedesktop.NetworkManager
|
||||
-ExecReload=/usr/bin/busctl call org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager Reload u 0
|
||||
+ExecReload=@systemd@/bin/busctl call org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager Reload u 0
|
||||
#ExecReload=/bin/kill -HUP $MAINPID
|
||||
ExecStart=@sbindir@/NetworkManager --no-daemon
|
||||
Restart=on-failure
|
||||
diff --git a/src/core/devices/nm-device.c b/src/core/devices/nm-device.c
|
||||
index a11486d54b..de8e9022c6 100644
|
||||
--- a/src/core/devices/nm-device.c
|
||||
+++ b/src/core/devices/nm-device.c
|
||||
@@ -13571,14 +13571,14 @@ nm_device_start_ip_check(NMDevice *self)
|
||||
gw = nm_l3_config_data_get_best_default_route(l3cd, AF_INET);
|
||||
if (gw) {
|
||||
_nm_utils_inet4_ntop(NMP_OBJECT_CAST_IP4_ROUTE(gw)->gateway, buf);
|
||||
- ping_binary = nm_utils_find_helper("ping", "/usr/bin/ping", NULL);
|
||||
+ ping_binary = "@iputils@/bin/ping";
|
||||
log_domain = LOGD_IP4;
|
||||
}
|
||||
} else if (priv->ip_data_6.state == NM_DEVICE_IP_STATE_READY) {
|
||||
gw = nm_l3_config_data_get_best_default_route(l3cd, AF_INET6);
|
||||
if (gw) {
|
||||
_nm_utils_inet6_ntop(&NMP_OBJECT_CAST_IP6_ROUTE(gw)->gateway, buf);
|
||||
- ping_binary = nm_utils_find_helper("ping6", "/usr/bin/ping6", NULL);
|
||||
+ ping_binary = "@iputils@/bin/ping";
|
||||
log_domain = LOGD_IP6;
|
||||
}
|
||||
}
|
||||
diff --git a/src/libnm-client-impl/meson.build b/src/libnm-client-impl/meson.build
|
||||
index 21a01e0b04..091c98428f 100644
|
||||
--- a/src/libnm-client-impl/meson.build
|
||||
+++ b/src/libnm-client-impl/meson.build
|
||||
@@ -162,7 +162,6 @@ if enable_introspection
|
||||
input: libnm_core_settings_sources,
|
||||
output: 'nm-propery-infos-' + info + '.xml',
|
||||
command: [
|
||||
- python.path(),
|
||||
join_paths(meson.source_root(), 'tools', 'generate-docs-nm-property-infos.py'),
|
||||
info,
|
||||
'@OUTPUT@',
|
||||
@@ -219,7 +218,6 @@ if enable_introspection
|
||||
'env',
|
||||
'GI_TYPELIB_PATH=' + gi_typelib_path,
|
||||
'LD_LIBRARY_PATH=' + ld_library_path,
|
||||
- python.path(),
|
||||
join_paths(meson.source_root(), 'tools', 'generate-docs-nm-settings-docs-gir.py'),
|
||||
'--lib-path', meson.current_build_dir(),
|
||||
'--gir', '@INPUT@',
|
||||
diff --git a/src/libnm-platform/nm-platform-utils.c b/src/libnm-platform/nm-platform-utils.c
|
||||
index 9ad030df76..8d800fb1c0 100644
|
||||
--- a/src/libnm-platform/nm-platform-utils.c
|
||||
+++ b/src/libnm-platform/nm-platform-utils.c
|
||||
@@ -2207,7 +2207,7 @@ nmp_utils_modprobe(GError **error, gboolean suppress_error_logging, const char *
|
||||
|
||||
/* construct the argument list */
|
||||
argv = g_ptr_array_sized_new(4);
|
||||
- g_ptr_array_add(argv, "/sbin/modprobe");
|
||||
+ g_ptr_array_add(argv, "@kmod@/bin/modprobe");
|
||||
g_ptr_array_add(argv, "--use-blacklist");
|
||||
g_ptr_array_add(argv, (char *) arg1);
|
||||
|
||||
diff --git a/src/libnmc-base/nm-vpn-helpers.c b/src/libnmc-base/nm-vpn-helpers.c
|
||||
index e2c0c394bd..1a507aa0d4 100644
|
||||
--- a/src/libnmc-base/nm-vpn-helpers.c
|
||||
+++ b/src/libnmc-base/nm-vpn-helpers.c
|
||||
@@ -198,25 +198,8 @@ nm_vpn_openconnect_authenticate_helper(const char *host,
|
||||
gs_free const char **output_v = NULL;
|
||||
const char *const *iter;
|
||||
const char *path;
|
||||
- const char *const DEFAULT_PATHS[] = {
|
||||
- "/sbin/",
|
||||
- "/usr/sbin/",
|
||||
- "/usr/local/sbin/",
|
||||
- "/bin/",
|
||||
- "/usr/bin/",
|
||||
- "/usr/local/bin/",
|
||||
- NULL,
|
||||
- };
|
||||
|
||||
- path = nm_utils_file_search_in_paths("openconnect",
|
||||
- "/usr/sbin/openconnect",
|
||||
- DEFAULT_PATHS,
|
||||
- G_FILE_TEST_IS_EXECUTABLE,
|
||||
- NULL,
|
||||
- NULL,
|
||||
- error);
|
||||
- if (!path)
|
||||
- return FALSE;
|
||||
+ path = "@openconnect@/bin/openconnect";
|
||||
|
||||
if (!g_spawn_sync(NULL,
|
||||
(char **) NM_MAKE_STRV(path, "--authenticate", host),
|
||||
diff --git a/src/libnmc-setting/meson.build b/src/libnmc-setting/meson.build
|
||||
index 8f07ae634e..a1326b3403 100644
|
||||
--- a/src/libnmc-setting/meson.build
|
||||
+++ b/src/libnmc-setting/meson.build
|
||||
@@ -6,7 +6,6 @@ if enable_docs
|
||||
input: [nm_settings_docs_xml_gir, nm_property_infos_xml['nmcli']],
|
||||
output: 'settings-docs-input.xml',
|
||||
command: [
|
||||
- python.path(),
|
||||
join_paths(meson.source_root(), 'tools', 'generate-docs-nm-settings-docs-merge.py'),
|
||||
'@OUTPUT@',
|
||||
nm_property_infos_xml['nmcli'],
|
||||
diff --git a/src/tests/client/meson.build b/src/tests/client/meson.build
|
||||
index b2e455bbbd..a12ebf212a 100644
|
||||
--- a/src/tests/client/meson.build
|
||||
+++ b/src/tests/client/meson.build
|
||||
@@ -6,7 +6,6 @@ test(
|
||||
args: [
|
||||
build_root,
|
||||
source_root,
|
||||
- python.path(),
|
||||
],
|
||||
timeout: 120,
|
||||
)
|
||||
84
pkgs/tools/networking/networkmanager/fortisslvpn/default.nix
Normal file
84
pkgs/tools/networking/networkmanager/fortisslvpn/default.nix
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, substituteAll
|
||||
, openfortivpn
|
||||
, gettext
|
||||
, pkg-config
|
||||
, file
|
||||
, glib
|
||||
, gtk3
|
||||
, gtk4
|
||||
, networkmanager
|
||||
, ppp
|
||||
, libsecret
|
||||
, withGnome ? true
|
||||
, gnome
|
||||
, libnma
|
||||
, libnma-gtk4
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "NetworkManager-fortisslvpn";
|
||||
version = "1.4.0";
|
||||
name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sFXiY0m1FrI1hXmKs+9XtDawFIAOkqiscyz8jnbF2vo=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit openfortivpn;
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
pkg-config
|
||||
file
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
openfortivpn
|
||||
networkmanager
|
||||
ppp
|
||||
glib
|
||||
] ++ lib.optionals withGnome [
|
||||
gtk3
|
||||
gtk4
|
||||
libsecret
|
||||
libnma
|
||||
libnma-gtk4
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
"--with-gnome=${if withGnome then "yes" else "no"}"
|
||||
"--with-gtk4=${if withGnome then "yes" else "no"}"
|
||||
"--localstatedir=/var"
|
||||
"--enable-absolute-paths"
|
||||
];
|
||||
|
||||
installFlags = [
|
||||
# the installer only creates an empty directory in localstatedir, so
|
||||
# we can drop it
|
||||
"localstatedir=."
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "networkmanager-fortisslvpn";
|
||||
versionPolicy = "odd-unstable";
|
||||
};
|
||||
networkManagerPlugin = "VPN/nm-fortisslvpn-service.name";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "NetworkManager’s FortiSSL plugin";
|
||||
inherit (networkmanager.meta) maintainers platforms;
|
||||
license = licenses.gpl2;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
diff --git a/src/nm-fortisslvpn-service.c b/src/nm-fortisslvpn-service.c
|
||||
index 6c340d0..995c981 100644
|
||||
--- a/src/nm-fortisslvpn-service.c
|
||||
+++ b/src/nm-fortisslvpn-service.c
|
||||
@@ -182,6 +182,7 @@ nm_find_openfortivpn (void)
|
||||
{
|
||||
static const char *openfortivpn_binary_paths[] =
|
||||
{
|
||||
+ "@openfortivpn@/bin/openfortivpn",
|
||||
"/usr/local/bin/openfortivpn",
|
||||
"/usr/bin/openfortivpn",
|
||||
NULL
|
||||
59
pkgs/tools/networking/networkmanager/iodine/default.nix
Normal file
59
pkgs/tools/networking/networkmanager/iodine/default.nix
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
{ lib, stdenv, fetchFromGitLab, substituteAll, autoreconfHook, iodine, intltool, pkg-config, networkmanager, libsecret, gtk3
|
||||
, withGnome ? true, gnome, fetchpatch, libnma, glib }:
|
||||
|
||||
let
|
||||
pname = "NetworkManager-iodine";
|
||||
version = "unstable-2019-11-05";
|
||||
in stdenv.mkDerivation {
|
||||
name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "GNOME";
|
||||
repo = "network-manager-iodine";
|
||||
rev = "2ef0abf089b00a0546f214dde0d45e63f2990b79";
|
||||
sha256 = "1ps26fr9b1yyafj7lrzf2kmaxb0ipl0mhagch5kzrjdsc5xkajz7";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit iodine;
|
||||
})
|
||||
# Don't use etc/dbus-1/system.d
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/network-manager-iodine/merge_requests/2.patch";
|
||||
sha256 = "108pkf0mddj32s46k7jkmpwcaq2ylci4dqpp7wck3zm9q2jffff2";
|
||||
})
|
||||
];
|
||||
|
||||
buildInputs = [ iodine networkmanager glib ]
|
||||
++ lib.optionals withGnome [ gtk3 libsecret libnma ];
|
||||
|
||||
nativeBuildInputs = [ intltool autoreconfHook pkg-config ];
|
||||
|
||||
# glib-2.62 deprecations
|
||||
NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
|
||||
|
||||
preConfigure = "intltoolize";
|
||||
configureFlags = [
|
||||
"--without-libnm-glib"
|
||||
"--with-gnome=${if withGnome then "yes" else "no"}"
|
||||
"--localstatedir=/" # needed for the management socket under /run/NetworkManager
|
||||
"--enable-absolute-paths"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "networkmanager-iodine";
|
||||
};
|
||||
networkManagerPlugin = "VPN/nm-iodine-service.name";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "NetworkManager's iodine plugin";
|
||||
inherit (networkmanager.meta) maintainers platforms;
|
||||
license = licenses.gpl2Plus;
|
||||
};
|
||||
}
|
||||
11
pkgs/tools/networking/networkmanager/iodine/fix-paths.patch
Normal file
11
pkgs/tools/networking/networkmanager/iodine/fix-paths.patch
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
--- a/src/nm-iodine-service.c
|
||||
+++ b/src/nm-iodine-service.c
|
||||
@@ -62,7 +62,7 @@
|
||||
|
||||
static const char *iodine_binary_paths[] =
|
||||
{
|
||||
- "/usr/bin/iodine",
|
||||
+ "@iodine@/bin/iodine",
|
||||
"/usr/sbin/iodine",
|
||||
"/usr/local/bin/iodine",
|
||||
"/usr/local/sbin/iodine",
|
||||
80
pkgs/tools/networking/networkmanager/l2tp/default.nix
Normal file
80
pkgs/tools/networking/networkmanager/l2tp/default.nix
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, substituteAll
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, pkg-config
|
||||
, gtk3
|
||||
, gtk4
|
||||
, networkmanager
|
||||
, ppp
|
||||
, xl2tpd
|
||||
, strongswan
|
||||
, libsecret
|
||||
, withGnome ? true
|
||||
, libnma
|
||||
, libnma-gtk4
|
||||
, glib
|
||||
, openssl
|
||||
, nss
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
|
||||
pname = "NetworkManager-l2tp";
|
||||
version = "1.20.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nm-l2tp";
|
||||
repo = "network-manager-l2tp";
|
||||
rev = version;
|
||||
sha256 = "VoqPjMQILBYemRE5VD/XwhWi9zL9QxxHZJ2JKtGglFo=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit strongswan xl2tpd;
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
networkmanager
|
||||
ppp
|
||||
glib
|
||||
openssl
|
||||
nss
|
||||
] ++ lib.optionals withGnome [
|
||||
gtk3
|
||||
gtk4
|
||||
libsecret
|
||||
libnma
|
||||
libnma-gtk4
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
"--with-gnome=${if withGnome then "yes" else "no"}"
|
||||
"--with-gtk4=${if withGnome then "yes" else "no"}"
|
||||
"--localstatedir=/var"
|
||||
"--enable-absolute-paths"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru = {
|
||||
networkManagerPlugin = "VPN/nm-l2tp-service.name";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "L2TP plugin for NetworkManager";
|
||||
inherit (networkmanager.meta) platforms;
|
||||
homepage = "https://github.com/nm-l2tp/network-manager-l2tp";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ abbradar obadz ];
|
||||
};
|
||||
}
|
||||
22
pkgs/tools/networking/networkmanager/l2tp/fix-paths.patch
Normal file
22
pkgs/tools/networking/networkmanager/l2tp/fix-paths.patch
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
diff --git a/shared/utils.c b/shared/utils.c
|
||||
index 453e277..28716a5 100644
|
||||
--- a/shared/utils.c
|
||||
+++ b/shared/utils.c
|
||||
@@ -39,7 +39,7 @@ check_ipsec_daemon(const char *path)
|
||||
const char *
|
||||
nm_find_ipsec(void)
|
||||
{
|
||||
- static const char *ipsec_binary_paths[] = {"/usr/bin/ipsec",
|
||||
+ static const char *ipsec_binary_paths[] = {"@strongswan@/bin/ipsec",
|
||||
"/sbin/ipsec",
|
||||
"/usr/sbin/ipsec",
|
||||
"/usr/local/sbin/ipsec",
|
||||
@@ -70,7 +70,7 @@ nm_find_l2tpd(NML2tpL2tpDaemon *l2tp_daemon)
|
||||
"/usr/local/sbin/kl2tpd",
|
||||
NULL};
|
||||
|
||||
- static const char *xl2tp_binary_paths[] = {"/usr/bin/xl2tpd",
|
||||
+ static const char *xl2tp_binary_paths[] = {"@xl2tpd@/bin/xl2tpd",
|
||||
"/sbin/xl2tpd",
|
||||
"/usr/sbin/xl2tpd",
|
||||
"/usr/local/sbin/xl2tpd",
|
||||
96
pkgs/tools/networking/networkmanager/libnma/default.nix
Normal file
96
pkgs/tools/networking/networkmanager/libnma/default.nix
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
{ stdenv
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, gettext
|
||||
, gtk-doc
|
||||
, pkg-config
|
||||
, vala
|
||||
, networkmanager
|
||||
, gnome
|
||||
, isocodes
|
||||
, libxml2
|
||||
, docbook_xsl
|
||||
, docbook_xml_dtd_43
|
||||
, mobile-broadband-provider-info
|
||||
, gobject-introspection
|
||||
, gtk3
|
||||
, withGtk4 ? false
|
||||
, gtk4
|
||||
, withGnome ? true
|
||||
, gcr
|
||||
, glib
|
||||
, substituteAll
|
||||
, lib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libnma";
|
||||
version = "1.8.38";
|
||||
|
||||
outputs = [ "out" "dev" "devdoc" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "Xtk+rhhFb/WopPQIF4we4ZjcjTpGxl+QdbEBkW5k6LQ=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Needed for wingpanel-indicator-network and switchboard-plug-network
|
||||
./hardcode-gsettings.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
gettext
|
||||
pkg-config
|
||||
gobject-introspection
|
||||
gtk-doc
|
||||
docbook_xsl
|
||||
docbook_xml_dtd_43
|
||||
libxml2
|
||||
vala
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
networkmanager
|
||||
isocodes
|
||||
mobile-broadband-provider-info
|
||||
] ++ lib.optionals withGtk4 [
|
||||
gtk4
|
||||
] ++ lib.optionals withGnome [
|
||||
# advanced certificate chooser
|
||||
gcr
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dgcr=${lib.boolToString withGnome}"
|
||||
"-Dlibnma_gtk4=${lib.boolToString withGtk4}"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/nma-ws/nma-eap.c --subst-var-by \
|
||||
NM_APPLET_GSETTINGS ${glib.makeSchemaPath "$out" "${pname}-${version}"}
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
glib-compile-schemas $out/share/glib-2.0/schemas
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
versionPolicy = "odd-unstable";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://gitlab.gnome.org/GNOME/libnma";
|
||||
description = "NetworkManager UI utilities (libnm version)";
|
||||
license = licenses.gpl2Plus; # Mix of GPL and LPGL 2+
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
--- a/src/nma-ws/nma-eap.c
|
||||
+++ b/src/nma-ws/nma-eap.c
|
||||
@@ -248,11 +248,16 @@ nma_eap_ca_cert_ignore_get (NMAEap *method, NMConnection *connection)
|
||||
static GSettings *
|
||||
_get_ca_ignore_settings (NMConnection *connection)
|
||||
{
|
||||
+ g_autoptr (GSettingsSchemaSource) *schema_source;
|
||||
+ g_autoptr (GSettingsSchema) *schema;
|
||||
GSettings *settings;
|
||||
char *path = NULL;
|
||||
const char *uuid;
|
||||
|
||||
g_return_val_if_fail (connection, NULL);
|
||||
|
||||
+ schema_source = g_settings_schema_source_new_from_directory ("@NM_APPLET_GSETTINGS@", g_settings_schema_source_get_default (), TRUE, NULL);
|
||||
+ schema = g_settings_schema_source_lookup (schema_source, "org.gnome.nm-applet.eap", FALSE);
|
||||
+
|
||||
uuid = nm_connection_get_uuid (connection);
|
||||
g_return_val_if_fail (uuid && *uuid, NULL);
|
||||
|
||||
path = g_strdup_printf ("/org/gnome/nm-applet/eap/%s/", uuid);
|
||||
- settings = g_settings_new_with_path ("org.gnome.nm-applet.eap", path);
|
||||
+ settings = g_settings_new_full (schema, NULL, path);
|
||||
g_free (path);
|
||||
|
||||
return settings;
|
||||
80
pkgs/tools/networking/networkmanager/openconnect/default.nix
Normal file
80
pkgs/tools/networking/networkmanager/openconnect/default.nix
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, substituteAll
|
||||
, glib
|
||||
, libxml2
|
||||
, openconnect
|
||||
, intltool
|
||||
, pkg-config
|
||||
, autoreconfHook
|
||||
, networkmanager
|
||||
, gcr
|
||||
, libsecret
|
||||
, file
|
||||
, gtk3
|
||||
, libnma
|
||||
, libnma-gtk4
|
||||
, gtk4
|
||||
, withGnome ? true
|
||||
, gnome
|
||||
, kmod
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "NetworkManager-openconnect";
|
||||
version = "1.2.8";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/NetworkManager-openconnect/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "Xe2qeF2C2OI53dCCv6xSUMaR6WRGS+GAe2gnJjYzzcw=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit kmod openconnect;
|
||||
})
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
libxml2
|
||||
openconnect
|
||||
networkmanager
|
||||
] ++ lib.optionals withGnome [
|
||||
gtk3
|
||||
libnma
|
||||
libnma-gtk4
|
||||
gtk4
|
||||
gcr
|
||||
libsecret
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
intltool
|
||||
pkg-config
|
||||
file
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
"--with-gnome=${if withGnome then "yes" else "no"}"
|
||||
"--with-gtk4=${if withGnome then "yes" else "no"}"
|
||||
"--enable-absolute-paths"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "networkmanager-openconnect";
|
||||
versionPolicy = "odd-unstable";
|
||||
};
|
||||
networkManagerPlugin = "VPN/nm-openconnect-service.name";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "NetworkManager’s OpenConnect plugin";
|
||||
inherit (networkmanager.meta) maintainers platforms;
|
||||
license = licenses.gpl2Plus;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
--- a/src/nm-openconnect-service.c
|
||||
+++ b/src/nm-openconnect-service.c
|
||||
@@ -60,7 +60,7 @@
|
||||
|
||||
static const char *openconnect_binary_paths[] =
|
||||
{
|
||||
- "/usr/bin/openconnect",
|
||||
+ "@openconnect@/bin/openconnect",
|
||||
"/usr/sbin/openconnect",
|
||||
"/usr/local/bin/openconnect",
|
||||
"/usr/local/sbin/openconnect",
|
||||
@@ -734,7 +734,7 @@
|
||||
|
||||
_LOGD ("nm-openconnect-service (version " DIST_VERSION ") starting...");
|
||||
|
||||
- if (system ("/sbin/modprobe tun") == -1)
|
||||
+ if (system ("@kmod@/bin/modprobe tun") == -1)
|
||||
exit (EXIT_FAILURE);
|
||||
|
||||
if (bus_name)
|
||||
78
pkgs/tools/networking/networkmanager/openvpn/default.nix
Normal file
78
pkgs/tools/networking/networkmanager/openvpn/default.nix
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, substituteAll
|
||||
, openvpn
|
||||
, intltool
|
||||
, libxml2
|
||||
, pkg-config
|
||||
, file
|
||||
, networkmanager
|
||||
, libsecret
|
||||
, glib
|
||||
, gtk3
|
||||
, gtk4
|
||||
, withGnome ? true
|
||||
, gnome
|
||||
, kmod
|
||||
, libnma
|
||||
, libnma-gtk4
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "NetworkManager-openvpn";
|
||||
version = "1.8.18";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/NetworkManager-openvpn/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "U9+wrPZEeK3HKAdPFi9i5gv/YqYFvYl+uIsmfnBXkno=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit kmod openvpn;
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
intltool
|
||||
pkg-config
|
||||
file
|
||||
libxml2
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
openvpn
|
||||
networkmanager
|
||||
glib
|
||||
] ++ lib.optionals withGnome [
|
||||
gtk3
|
||||
gtk4
|
||||
libsecret
|
||||
libnma
|
||||
libnma-gtk4
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
"--with-gnome=${if withGnome then "yes" else "no"}"
|
||||
"--with-gtk4=${if withGnome then "yes" else "no"}"
|
||||
"--localstatedir=/" # needed for the management socket under /run/NetworkManager
|
||||
"--enable-absolute-paths"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "networkmanager-openvpn";
|
||||
versionPolicy = "odd-unstable";
|
||||
};
|
||||
networkManagerPlugin = "VPN/nm-openvpn-service.name";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "NetworkManager's OpenVPN plugin";
|
||||
inherit (networkmanager.meta) maintainers platforms;
|
||||
license = licenses.gpl2Plus;
|
||||
};
|
||||
}
|
||||
34
pkgs/tools/networking/networkmanager/openvpn/fix-paths.patch
Normal file
34
pkgs/tools/networking/networkmanager/openvpn/fix-paths.patch
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
--- a/properties/nm-openvpn-editor.c
|
||||
+++ b/properties/nm-openvpn-editor.c
|
||||
@@ -775,8 +775,7 @@
|
||||
nm_find_openvpn (void)
|
||||
{
|
||||
static const char *openvpn_binary_paths[] = {
|
||||
- "/usr/sbin/openvpn",
|
||||
- "/sbin/openvpn",
|
||||
+ "@openvpn@/bin/openvpn",
|
||||
NULL
|
||||
};
|
||||
const char **openvpn_binary = openvpn_binary_paths;
|
||||
--- a/src/nm-openvpn-service.c
|
||||
+++ b/src/nm-openvpn-service.c
|
||||
@@ -522,9 +522,7 @@
|
||||
openvpn_binary_find_exepath (void)
|
||||
{
|
||||
static const char *paths[] = {
|
||||
- "/usr/sbin/openvpn",
|
||||
- "/sbin/openvpn",
|
||||
- "/usr/local/sbin/openvpn",
|
||||
+ "@openvpn@/bin/openvpn",
|
||||
};
|
||||
int i;
|
||||
|
||||
@@ -2326,7 +2324,7 @@
|
||||
_LOGD ("nm-openvpn-service (version " DIST_VERSION ") starting...");
|
||||
|
||||
if ( !g_file_test ("/sys/class/misc/tun", G_FILE_TEST_EXISTS)
|
||||
- && (system ("/sbin/modprobe tun") == -1))
|
||||
+ && (system ("@kmod@/bin/modprobe tun") == -1))
|
||||
return EXIT_FAILURE;
|
||||
|
||||
plugin = nm_openvpn_plugin_new (bus_name);
|
||||
73
pkgs/tools/networking/networkmanager/sstp/default.nix
Normal file
73
pkgs/tools/networking/networkmanager/sstp/default.nix
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, file
|
||||
, glib
|
||||
, gnome
|
||||
, gtk3
|
||||
, gtk4
|
||||
, intltool
|
||||
, libnma
|
||||
, libnma-gtk4
|
||||
, libsecret
|
||||
, networkmanager
|
||||
, pkg-config
|
||||
, ppp
|
||||
, sstp
|
||||
, withGnome ? true
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "NetworkManager-sstp";
|
||||
version = "1.3.0";
|
||||
name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "+IJw3jvOYs/+NDS9HvCrSQ6wxh1x1yqwiFij7UZb+rU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
file
|
||||
intltool
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
sstp
|
||||
networkmanager
|
||||
glib
|
||||
ppp
|
||||
] ++ lib.optionals withGnome [
|
||||
gtk3
|
||||
gtk4
|
||||
libsecret
|
||||
libnma
|
||||
libnma-gtk4
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
sed -i 's#/sbin/pppd#${ppp}/bin/pppd#' src/nm-sstp-service.c
|
||||
sed -i 's#/sbin/sstpc#${sstp}/bin/sstpc#' src/nm-sstp-service.c
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--with-gnome=${if withGnome then "yes" else "no"}"
|
||||
"--with-gtk4=${if withGnome then "yes" else "no"}"
|
||||
"--enable-absolute-paths"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "networkmanager-sstp";
|
||||
};
|
||||
networkManagerPlugin = "VPN/nm-sstp-service.name";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "NetworkManager's sstp plugin";
|
||||
inherit (networkmanager.meta) maintainers platforms;
|
||||
license = licenses.gpl2Plus;
|
||||
};
|
||||
}
|
||||
58
pkgs/tools/networking/networkmanager/strongswan/default.nix
Normal file
58
pkgs/tools/networking/networkmanager/strongswan/default.nix
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, intltool
|
||||
, pkg-config
|
||||
, networkmanager
|
||||
, strongswanNM
|
||||
, gtk3
|
||||
, gtk4
|
||||
, gnome
|
||||
, libsecret
|
||||
, libnma
|
||||
, libnma-gtk4
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "NetworkManager-strongswan";
|
||||
version = "1.6.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.strongswan.org/NetworkManager/${pname}-${version}.tar.bz2";
|
||||
sha256 = "bbyA9qCboM9hBKMXhJWXgEFN13Fl4pY6zWZXwowlRMI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
intltool
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
networkmanager
|
||||
strongswanNM
|
||||
libsecret
|
||||
gtk3
|
||||
gtk4
|
||||
libnma
|
||||
libnma-gtk4
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
"--with-charon=${strongswanNM}/libexec/ipsec/charon-nm"
|
||||
"--with-nm-libexecdir=${placeholder "out"}/libexec"
|
||||
"--with-nm-plugindir=${placeholder "out"}/lib/NetworkManager"
|
||||
"--with-gtk4"
|
||||
];
|
||||
|
||||
PKG_CONFIG_LIBNM_VPNSERVICEDIR = "${placeholder "out"}/lib/NetworkManager/VPN";
|
||||
|
||||
passthru = {
|
||||
networkManagerPlugin = "VPN/nm-strongswan-service.name";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "NetworkManager's strongswan plugin";
|
||||
inherit (networkmanager.meta) platforms;
|
||||
license = licenses.gpl2Plus;
|
||||
};
|
||||
}
|
||||
31
pkgs/tools/networking/networkmanager/tray.nix
Normal file
31
pkgs/tools/networking/networkmanager/tray.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ lib, mkDerivation, fetchFromGitHub, cmake, pkg-config, qttools, qtbase, networkmanager-qt, modemmanager-qt }:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "nm-tray";
|
||||
version = "0.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "palinek";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-JTH1cmkgdW2aRWMYPRvOAvCJz0ClCIpjUtcWcqJQGSU=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
sed -i -e '1i#include <QMetaEnum>' src/nmmodel.cpp
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config qttools ];
|
||||
|
||||
cmakeFlags = [ "-DWITH_MODEMMANAGER_SUPPORT=ON" ];
|
||||
|
||||
buildInputs = [ qtbase networkmanager-qt modemmanager-qt ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple Network Manager frontend written in Qt";
|
||||
homepage = "https://github.com/palinek/nm-tray";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ dtzWill ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
75
pkgs/tools/networking/networkmanager/vpnc/default.nix
Normal file
75
pkgs/tools/networking/networkmanager/vpnc/default.nix
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, substituteAll
|
||||
, vpnc
|
||||
, intltool
|
||||
, pkg-config
|
||||
, networkmanager
|
||||
, libsecret
|
||||
, gtk3
|
||||
, gtk4
|
||||
, withGnome ? true
|
||||
, gnome
|
||||
, glib
|
||||
, kmod
|
||||
, file
|
||||
, libnma
|
||||
, libnma-gtk4
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "NetworkManager-vpnc";
|
||||
version = "1.2.8";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/NetworkManager-vpnc/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "1l4xqlPI/cP95++EpNqpeaYFwj/THO/2R79+qqma+8w=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit vpnc kmod;
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
intltool
|
||||
pkg-config
|
||||
file
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
vpnc
|
||||
networkmanager
|
||||
glib
|
||||
] ++ lib.optionals withGnome [
|
||||
gtk3
|
||||
gtk4
|
||||
libsecret
|
||||
libnma
|
||||
libnma-gtk4
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
"--with-gnome=${if withGnome then "yes" else "no"}"
|
||||
"--with-gtk4=${if withGnome then "yes" else "no"}"
|
||||
"--enable-absolute-paths"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "networkmanager-vpnc";
|
||||
versionPolicy = "odd-unstable";
|
||||
};
|
||||
networkManagerPlugin = "VPN/nm-vpnc-service.name";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "NetworkManager's VPNC plugin";
|
||||
inherit (networkmanager.meta) maintainers platforms;
|
||||
license = licenses.gpl2Plus;
|
||||
};
|
||||
}
|
||||
31
pkgs/tools/networking/networkmanager/vpnc/fix-paths.patch
Normal file
31
pkgs/tools/networking/networkmanager/vpnc/fix-paths.patch
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
--- a/properties/nm-vpnc-editor-plugin.c
|
||||
+++ b/properties/nm-vpnc-editor-plugin.c
|
||||
@@ -161,7 +161,7 @@
|
||||
GError *error = NULL;
|
||||
|
||||
const char *decrypt_possible_paths[] = {
|
||||
- "/usr/lib/vpnc/cisco-decrypt",
|
||||
+ "@vpnc@/bin/cisco-decrypt",
|
||||
"/usr/bin/cisco-decrypt",
|
||||
NULL
|
||||
};
|
||||
--- a/src/nm-vpnc-service.c
|
||||
+++ b/src/nm-vpnc-service.c
|
||||
@@ -610,7 +610,7 @@
|
||||
find_vpnc (void)
|
||||
{
|
||||
static const char *vpnc_paths[] = {
|
||||
- "/usr/sbin/vpnc",
|
||||
+ "@vpnc@/bin/vpnc",
|
||||
"/sbin/vpnc",
|
||||
"/usr/local/sbin/vpnc",
|
||||
NULL
|
||||
@@ -1308,7 +1308,7 @@
|
||||
_LOGD (" vpnc interactive mode is %s", interactive_available ? "enabled" : "disabled");
|
||||
_LOGD (" uses%s --bus-name \"%s\"", bus_name_free ? "" : " default", bus_name);
|
||||
|
||||
- if (system ("/sbin/modprobe tun") == -1)
|
||||
+ if (system ("@kmod@/bin/modprobe tun") == -1)
|
||||
exit (EXIT_FAILURE);
|
||||
|
||||
plugin = nm_vpnc_plugin_new (bus_name);
|
||||
Loading…
Add table
Add a link
Reference in a new issue