diff options
Diffstat (limited to 'pkgs/tools/networking/network-manager')
18 files changed, 354 insertions, 236 deletions
diff --git a/pkgs/tools/networking/network-manager/applet.nix b/pkgs/tools/networking/network-manager/applet.nix index 52e350c6319e..0b6a7e622a86 100644 --- a/pkgs/tools/networking/network-manager/applet.nix +++ b/pkgs/tools/networking/network-manager/applet.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, meson, ninja, intltool, gtk-doc, pkgconfig, networkmanager, gnome3 , libnotify, libsecret, polkit, isocodes, modemmanager, libxml2, docbook_xsl , mobile-broadband-provider-info, glib-networking, gsettings-desktop-schemas -, libgudev, hicolor-icon-theme, jansson, wrapGAppsHook, webkitgtk, gobjectIntrospection +, libgudev, jansson, wrapGAppsHook, gobjectIntrospection , libappindicator-gtk3, withGnome ? false }: let @@ -15,27 +15,28 @@ in stdenv.mkDerivation rec { sha256 = "0lmlkh4yyl9smvkgrzshn127zqfbp9f41f448ks8dlhhm38s38v2"; }; + patches = [ + # https://gitlab.gnome.org/GNOME/network-manager-applet/merge_requests/19 + ./libnm-gtk-mbpi.patch + ]; + mesonFlags = [ "-Dselinux=false" "-Dappindicator=yes" "-Dgcr=${if withGnome then "true" else "false"}" ]; - outputs = [ "out" "dev" "devdoc" ]; + outputs = [ "out" "lib" "dev" "devdoc" "man" ]; buildInputs = [ gnome3.gtk networkmanager libnotify libsecret gsettings-desktop-schemas polkit isocodes mobile-broadband-provider-info libgudev modemmanager jansson glib-networking libappindicator-gtk3 - ] ++ stdenv.lib.optionals withGnome [ gnome3.gcr webkitgtk ]; + ] ++ stdenv.lib.optionals withGnome [ gnome3.gcr ]; # advanced certificate chooser nativeBuildInputs = [ meson ninja intltool pkgconfig wrapGAppsHook gobjectIntrospection gtk-doc docbook_xsl libxml2 ]; - propagatedUserEnvPkgs = [ - hicolor-icon-theme - ]; - postPatch = '' chmod +x meson_post_install.py # patchShebangs requires executable file patchShebangs meson_post_install.py diff --git a/pkgs/tools/networking/network-manager/fortisslvpn.nix b/pkgs/tools/networking/network-manager/fortisslvpn.nix deleted file mode 100644 index ab49514d720b..000000000000 --- a/pkgs/tools/networking/network-manager/fortisslvpn.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ stdenv, fetchurl, openfortivpn, automake, autoconf, libtool, intltool, pkgconfig, -networkmanager, ppp, libsecret, withGnome ? true, gnome3 }: - -let - pname = "NetworkManager-fortisslvpn"; - version = "1.2.8"; -in stdenv.mkDerivation rec { - name = "${pname}${if withGnome then "-gnome" else ""}-${version}"; - - src = fetchurl { - url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "01gvdv9dknvzx05plq863jh1xz1v8vgj5w7v9fmw5v601ggybf4w"; - }; - - buildInputs = [ openfortivpn networkmanager ppp libtool libsecret ] - ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome-keyring gnome3.networkmanagerapplet ]; - - nativeBuildInputs = [ automake autoconf intltool pkgconfig ]; - - configureFlags = [ - "${if withGnome then "--with-gnome" else "--without-gnome"}" - "--disable-static" - "--localstatedir=/tmp" - ]; - - preConfigure = '' - substituteInPlace "src/nm-fortisslvpn-service.c" \ - --replace "/bin/openfortivpn" "${openfortivpn}/bin/openfortivpn" - ''; - - passthru = { - updateScript = gnome3.updateScript { - packageName = pname; - attrPath = "networkmanager-fortisslvpn"; - }; - }; - - meta = { - description = "NetworkManager's FortiSSL plugin"; - inherit (networkmanager.meta) maintainers platforms; - }; -} - diff --git a/pkgs/tools/networking/network-manager/fortisslvpn/default.nix b/pkgs/tools/networking/network-manager/fortisslvpn/default.nix new file mode 100644 index 000000000000..11b29081f9bb --- /dev/null +++ b/pkgs/tools/networking/network-manager/fortisslvpn/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchurl, substituteAll, openfortivpn, intltool, pkgconfig, +networkmanager, ppp, libsecret, withGnome ? true, gnome3 }: + +let + pname = "NetworkManager-fortisslvpn"; + version = "1.2.8"; +in stdenv.mkDerivation rec { + name = "${pname}${if withGnome then "-gnome" else ""}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "01gvdv9dknvzx05plq863jh1xz1v8vgj5w7v9fmw5v601ggybf4w"; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit openfortivpn; + }) + ]; + + buildInputs = [ openfortivpn networkmanager ppp ] + ++ stdenv.lib.optionals withGnome [ gnome3.gtk libsecret gnome3.networkmanagerapplet ]; + + nativeBuildInputs = [ intltool pkgconfig ]; + + configureFlags = [ + "--with-gnome=${if withGnome then "yes" else "no"}" + "--localstatedir=/tmp" + ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "networkmanager-fortisslvpn"; + }; + }; + + meta = with stdenv.lib; { + description = "NetworkManager's FortiSSL plugin"; + inherit (networkmanager.meta) maintainers platforms; + license = licenses.gpl2; + }; +} + diff --git a/pkgs/tools/networking/network-manager/fortisslvpn/fix-paths.patch b/pkgs/tools/networking/network-manager/fortisslvpn/fix-paths.patch new file mode 100644 index 000000000000..a1241b6738c2 --- /dev/null +++ b/pkgs/tools/networking/network-manager/fortisslvpn/fix-paths.patch @@ -0,0 +1,11 @@ +--- a/src/nm-fortisslvpn-service.c ++++ b/src/nm-fortisslvpn-service.c +@@ -387,7 +387,7 @@ + { + static const char *openfortivpn_binary_paths[] = + { +- "/bin/openfortivpn", ++ "@openfortivpn@/bin/openfortivpn", + "/usr/bin/openfortivpn", + "/usr/local/bin/openfortivpn", + NULL diff --git a/pkgs/tools/networking/network-manager/iodine.nix b/pkgs/tools/networking/network-manager/iodine.nix deleted file mode 100644 index cbc0e6e6d2d1..000000000000 --- a/pkgs/tools/networking/network-manager/iodine.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ stdenv, fetchurl, iodine, intltool, pkgconfig, networkmanager, libsecret -, withGnome ? true, gnome3 }: - -let - pname = "NetworkManager-iodine"; - version = "1.2.0"; -in stdenv.mkDerivation rec { - name = "${pname}${if withGnome then "-gnome" else ""}-${version}"; - - src = fetchurl { - url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "0njdigakidji6mfmbsp8lfi8wl88z1dk8cljbva2w0xazyddbwyh"; - }; - - buildInputs = [ iodine networkmanager libsecret ] - ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome-keyring - gnome3.networkmanagerapplet ]; - - nativeBuildInputs = [ intltool pkgconfig ]; - - # Fixes deprecation errors with networkmanager 1.10.2 - NIX_CFLAGS_COMPILE = "-Wno-deprecated-declarations"; - - configureFlags = [ - "${if withGnome then "--with-gnome" else "--without-gnome"}" - "--disable-static" - "--localstatedir=/" # needed for the management socket under /run/NetworkManager - ]; - - preConfigure = '' - substituteInPlace "src/nm-iodine-service.c" \ - --replace "/usr/bin/iodine" "${iodine}/bin/iodine" - ''; - - passthru = { - updateScript = gnome3.updateScript { - packageName = pname; - attrPath = "networkmanager-iodine"; - }; - }; - - meta = { - description = "NetworkManager's iodine plugin"; - inherit (networkmanager.meta) maintainers platforms; - }; -} diff --git a/pkgs/tools/networking/network-manager/iodine/default.nix b/pkgs/tools/networking/network-manager/iodine/default.nix new file mode 100644 index 000000000000..a3dbeaf82651 --- /dev/null +++ b/pkgs/tools/networking/network-manager/iodine/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchurl, substituteAll, iodine, intltool, pkgconfig, networkmanager, libsecret +, withGnome ? true, gnome3 }: + +let + pname = "NetworkManager-iodine"; + version = "1.2.0"; +in stdenv.mkDerivation rec { + name = "${pname}${if withGnome then "-gnome" else ""}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "0njdigakidji6mfmbsp8lfi8wl88z1dk8cljbva2w0xazyddbwyh"; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit iodine; + }) + ]; + + buildInputs = [ iodine networkmanager ] + ++ stdenv.lib.optionals withGnome [ gnome3.gtk libsecret gnome3.networkmanagerapplet ]; + + nativeBuildInputs = [ intltool pkgconfig ]; + + # Fixes deprecation errors with networkmanager 1.10.2 + NIX_CFLAGS_COMPILE = "-Wno-deprecated-declarations"; + + configureFlags = [ + "--with-gnome=${if withGnome then "yes" else "no"}" + "--localstatedir=/" # needed for the management socket under /run/NetworkManager + ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "networkmanager-iodine"; + }; + }; + + meta = with stdenv.lib; { + description = "NetworkManager's iodine plugin"; + inherit (networkmanager.meta) maintainers platforms; + license = licenses.gpl2Plus; + }; +} diff --git a/pkgs/tools/networking/network-manager/iodine/fix-paths.patch b/pkgs/tools/networking/network-manager/iodine/fix-paths.patch new file mode 100644 index 000000000000..d32dbfadbafa --- /dev/null +++ b/pkgs/tools/networking/network-manager/iodine/fix-paths.patch @@ -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", diff --git a/pkgs/tools/networking/network-manager/l2tp.nix b/pkgs/tools/networking/network-manager/l2tp.nix deleted file mode 100644 index 54670ff1bce7..000000000000 --- a/pkgs/tools/networking/network-manager/l2tp.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ stdenv, fetchFromGitHub, autoreconfHook, libtool, intltool, pkgconfig -, networkmanager, ppp, xl2tpd, strongswan, libsecret -, withGnome ? true, gnome3, networkmanagerapplet }: - -stdenv.mkDerivation rec { - name = "${pname}${if withGnome then "-gnome" else ""}-${version}"; - pname = "NetworkManager-l2tp"; - version = "1.2.8"; - - src = fetchFromGitHub { - owner = "nm-l2tp"; - repo = "network-manager-l2tp"; - rev = "${version}"; - sha256 = "110157dpamgr7r5kb8aidi0a2ap9z2m52bff94fb4nhxacz69yv8"; - }; - - buildInputs = [ networkmanager ppp libsecret ] - ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome-keyring networkmanagerapplet ]; - - nativeBuildInputs = [ autoreconfHook libtool intltool pkgconfig ]; - - postPatch = '' - sed -i -e 's%"\(/usr/sbin\|/usr/pkg/sbin\|/usr/local/sbin\)/[^"]*",%%g' ./src/nm-l2tp-service.c - - substituteInPlace ./Makefile.am \ - --replace '$(sysconfdir)/dbus-1/system.d' "$out/etc/dbus-1/system.d" - - substituteInPlace ./src/nm-l2tp-service.c \ - --replace /sbin/ipsec ${strongswan}/bin/ipsec \ - --replace /sbin/xl2tpd ${xl2tpd}/bin/xl2tpd - ''; - - preConfigure = '' - intltoolize -f - ''; - - configureFlags = [ - "--with-gnome=${if withGnome then "yes" else "no"}" - "--localstatedir=/var" - "--sysconfdir=$(out)/etc" - ]; - - enableParallelBuilding = true; - - meta = with stdenv.lib; { - description = "L2TP plugin for NetworkManager"; - inherit (networkmanager.meta) platforms; - homepage = https://github.com/nm-l2tp/network-manager-l2tp; - license = licenses.gpl2; - maintainers = with maintainers; [ abbradar obadz ]; - }; -} diff --git a/pkgs/tools/networking/network-manager/l2tp/default.nix b/pkgs/tools/networking/network-manager/l2tp/default.nix new file mode 100644 index 000000000000..d48d2e910f50 --- /dev/null +++ b/pkgs/tools/networking/network-manager/l2tp/default.nix @@ -0,0 +1,48 @@ +{ stdenv, substituteAll, fetchFromGitHub, autoreconfHook, libtool, intltool, pkgconfig +, networkmanager, ppp, xl2tpd, strongswan, libsecret +, withGnome ? true, gnome3, networkmanagerapplet }: + +stdenv.mkDerivation rec { + name = "${pname}${if withGnome then "-gnome" else ""}-${version}"; + pname = "NetworkManager-l2tp"; + version = "1.2.10"; + + src = fetchFromGitHub { + owner = "nm-l2tp"; + repo = "network-manager-l2tp"; + rev = "${version}"; + sha256 = "1vm004nj2n5abpywr7ji6r28scf7xs45zw4rqrm8jn7mysf96h0x"; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit strongswan xl2tpd; + }) + ]; + + buildInputs = [ networkmanager ppp ] + ++ stdenv.lib.optionals withGnome [ gnome3.gtk libsecret networkmanagerapplet ]; + + nativeBuildInputs = [ autoreconfHook libtool intltool pkgconfig ]; + + preConfigure = '' + intltoolize -f + ''; + + configureFlags = [ + "--with-gnome=${if withGnome then "yes" else "no"}" + "--localstatedir=/var" + "--sysconfdir=$(out)/etc" + ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "L2TP plugin for NetworkManager"; + inherit (networkmanager.meta) platforms; + homepage = https://github.com/nm-l2tp/network-manager-l2tp; + license = licenses.gpl2; + maintainers = with maintainers; [ abbradar obadz ]; + }; +} diff --git a/pkgs/tools/networking/network-manager/l2tp/fix-paths.patch b/pkgs/tools/networking/network-manager/l2tp/fix-paths.patch new file mode 100644 index 000000000000..0a068ee800c6 --- /dev/null +++ b/pkgs/tools/networking/network-manager/l2tp/fix-paths.patch @@ -0,0 +1,20 @@ +--- a/src/nm-l2tp-service.c ++++ b/src/nm-l2tp-service.c +@@ -480,7 +480,7 @@ + { + static const char *ipsec_binary_paths[] = + { +- "/sbin/ipsec", ++ "@strongswan@/bin/ipsec", + "/usr/sbin/ipsec", + "/usr/local/sbin/ipsec", + "/sbin/strongswan", +@@ -505,7 +505,7 @@ + { + static const char *l2tp_binary_paths[] = + { +- "/sbin/xl2tpd", ++ "@xl2tpd@/bin/xl2tpd", + "/usr/sbin/xl2tpd", + "/usr/local/sbin/xl2tpd", + NULL diff --git a/pkgs/tools/networking/network-manager/libnm-gtk-mbpi.patch b/pkgs/tools/networking/network-manager/libnm-gtk-mbpi.patch new file mode 100644 index 000000000000..d7eef5749dba --- /dev/null +++ b/pkgs/tools/networking/network-manager/libnm-gtk-mbpi.patch @@ -0,0 +1,33 @@ +--- a/meson.build ++++ b/meson.build +@@ -137,7 +137,7 @@ + mobile_broadband_provider_info_dep = dependency('mobile-broadband-provider-info') + config_h.set_quoted('MOBILE_BROADBAND_PROVIDER_INFO_DATABASE', mobile_broadband_provider_info_dep.get_pkgconfig_variable('database')) + else +- config_h.set_quoted('MOBILE_BROADBAND_PROVIDER_INFO_DATABASE', join_paths(nma_prefix, 'share', 'mobile-broadband-provider-info', 'serviceproviders.xml')) ++ config_h.set_quoted('MOBILE_BROADBAND_PROVIDER_INFO_DATABASE', join_paths(nma_datadir, 'mobile-broadband-provider-info', 'serviceproviders.xml')) + endif + + gio_dep = dependency('gio-2.0', version: '>= 2.38') +--- a/src/libnm-gtk/nm-mobile-providers.c ++++ b/src/libnm-gtk/nm-mobile-providers.c +@@ -30,10 +30,6 @@ + + #include "nm-mobile-providers.h" + +-#ifndef MOBILE_BROADBAND_PROVIDER_INFO +-#define MOBILE_BROADBAND_PROVIDER_INFO DATADIR"/mobile-broadband-provider-info/serviceproviders.xml" +-#endif +- + #define ISO_3166_COUNTRY_CODES ISO_CODES_PREFIX"/share/xml/iso-codes/iso_3166.xml" + #define ISO_CODES_LOCALESDIR ISO_CODES_PREFIX"/share/locale" + +@@ -990,7 +986,7 @@ + if (!country_codes) + country_codes = ISO_3166_COUNTRY_CODES; + if (!service_providers) +- service_providers = MOBILE_BROADBAND_PROVIDER_INFO; ++ service_providers = MOBILE_BROADBAND_PROVIDER_INFO_DATABASE; + + countries = read_country_codes (country_codes, + cancellable, diff --git a/pkgs/tools/networking/network-manager/openconnect.nix b/pkgs/tools/networking/network-manager/openconnect/default.nix index ad15723dd331..23d4c816a20d 100644 --- a/pkgs/tools/networking/network-manager/openconnect.nix +++ b/pkgs/tools/networking/network-manager/openconnect/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchurl, openconnect, intltool, pkgconfig, networkmanager, libsecret -, withGnome ? true, gnome3, sysctl, kmod }: +{ stdenv, fetchurl, substituteAll, openconnect, intltool, pkgconfig, networkmanager, libsecret +, withGnome ? true, gnome3, kmod }: let pname = "NetworkManager-openconnect"; @@ -12,24 +12,22 @@ in stdenv.mkDerivation rec { sha256 = "15j98wwspv6mcmy91w30as5qc1bzsnhlk060xhjy4qrvd37y0xx1"; }; - buildInputs = [ openconnect networkmanager libsecret ] - ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome-keyring ]; + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit kmod openconnect; + }) + ]; + + buildInputs = [ openconnect networkmanager ] + ++ stdenv.lib.optionals withGnome [ gnome3.gtk libsecret ]; nativeBuildInputs = [ intltool pkgconfig ]; configureFlags = [ - "${if withGnome then "--with-gnome --with-gtkver=3" else "--without-gnome"}" - "--disable-static" + "--with-gnome=${if withGnome then "yes" else "no"}" ]; - preConfigure = '' - substituteInPlace "configure" \ - --replace "/sbin/sysctl" "${sysctl}/bin/sysctl" - substituteInPlace "src/nm-openconnect-service.c" \ - --replace "/usr/sbin/openconnect" "${openconnect}/bin/openconnect" \ - --replace "/sbin/modprobe" "${kmod}/bin/modprobe" - ''; - passthru = { updateScript = gnome3.updateScript { packageName = pname; @@ -37,8 +35,9 @@ in stdenv.mkDerivation rec { }; }; - meta = { + meta = with stdenv.lib; { description = "NetworkManager's OpenConnect plugin"; inherit (networkmanager.meta) maintainers platforms; + license = licenses.gpl2Plus; }; } diff --git a/pkgs/tools/networking/network-manager/openconnect/fix-paths.patch b/pkgs/tools/networking/network-manager/openconnect/fix-paths.patch new file mode 100644 index 000000000000..9b342f5bd08b --- /dev/null +++ b/pkgs/tools/networking/network-manager/openconnect/fix-paths.patch @@ -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) diff --git a/pkgs/tools/networking/network-manager/openvpn/default.nix b/pkgs/tools/networking/network-manager/openvpn/default.nix index 28b7c873d364..8d3bd874718c 100644 --- a/pkgs/tools/networking/network-manager/openvpn/default.nix +++ b/pkgs/tools/networking/network-manager/openvpn/default.nix @@ -2,13 +2,13 @@ , withGnome ? true, gnome3, kmod }: let - pname = "NetworkManager-openvpn"; + pname = "NetworkManager-openvpn"; version = "1.8.4"; in stdenv.mkDerivation rec { - name = "${pname}${if withGnome then "-gnome" else ""}-${version}"; + name = "${pname}${if withGnome then "-gnome" else ""}-${version}"; src = fetchurl { - url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; sha256 = "0gyrv46h9k17qym48qacq4zpxbap6hi17shn921824zm98m2bdvr"; }; @@ -19,15 +19,13 @@ in stdenv.mkDerivation rec { }) ]; - buildInputs = [ openvpn networkmanager libsecret ] - ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome-keyring - gnome3.networkmanagerapplet ]; + buildInputs = [ openvpn networkmanager ] + ++ stdenv.lib.optionals withGnome [ gnome3.gtk libsecret gnome3.networkmanagerapplet ]; nativeBuildInputs = [ intltool pkgconfig libxml2 ]; configureFlags = [ - "${if withGnome then "--with-gnome --with-gtkver=3" else "--without-gnome"}" - "--disable-static" + "--with-gnome=${if withGnome then "yes" else "no"}" "--localstatedir=/" # needed for the management socket under /run/NetworkManager ]; @@ -38,8 +36,9 @@ in stdenv.mkDerivation rec { }; }; - meta = { + meta = with stdenv.lib; { description = "NetworkManager's OpenVPN plugin"; inherit (networkmanager.meta) maintainers platforms; + license = licenses.gpl2Plus; }; } diff --git a/pkgs/tools/networking/network-manager/strongswan.nix b/pkgs/tools/networking/network-manager/strongswan.nix index fb3ba2bbdf5a..fc10fc6364c9 100644 --- a/pkgs/tools/networking/network-manager/strongswan.nix +++ b/pkgs/tools/networking/network-manager/strongswan.nix @@ -1,38 +1,35 @@ -{ stdenv, fetchurl, intltool, pkgconfig, networkmanager, strongswanNM, sysctl -, gnome3, libgnome-keyring, libsecret }: +{ stdenv, fetchurl, intltool, pkgconfig, networkmanager, strongswanNM +, gnome3, libsecret }: stdenv.mkDerivation rec { - name = "${pname}-${version}"; - pname = "NetworkManager-strongswan"; - version = "1.4.3"; + name = "${pname}-${version}"; + pname = "NetworkManager-strongswan"; + version = "1.4.4"; src = fetchurl { - url = "https://download.strongswan.org/NetworkManager/${name}.tar.bz2"; - sha256 = "0jzl52wmh2q2djb1s546kxliy7s6akhi5bx6rp2ppjfk3wbi2a2l"; + url = "https://download.strongswan.org/NetworkManager/${name}.tar.bz2"; + sha256 = "1xhj5cipwbihf0cna8lpicpz7cd8fgkagpmg0xvj6pshymm5jbcd"; }; - postPatch = '' - sed -i "s,nm_plugindir=.*,nm_plugindir=$out/lib/NetworkManager," "configure" - sed -i "s,nm_libexecdir=.*,nm_libexecdir=$out/libexec," "configure" - ''; - buildInputs = [ networkmanager strongswanNM libsecret ] - ++ (with gnome3; [ gtk libgnome-keyring networkmanagerapplet ]); + ++ (with gnome3; [ gtk networkmanagerapplet ]); nativeBuildInputs = [ intltool pkgconfig ]; # Fixes deprecation errors with networkmanager 1.10.2 NIX_CFLAGS_COMPILE = "-Wno-deprecated-declarations"; - preConfigure = '' - substituteInPlace "configure" \ - --replace "/sbin/sysctl" "${sysctl}/bin/sysctl" - ''; + configureFlags = [ + "--with-charon=${strongswanNM}/libexec/ipsec/charon-nm" + "--with-nm-libexecdir=$(out)/libexec" + "--with-nm-plugindir=$(out)/lib/NetworkManager" + ]; - configureFlags = [ "--with-charon=${strongswanNM}/libexec/ipsec/charon-nm" ]; + PKG_CONFIG_LIBNM_VPNSERVICEDIR = "$(out)/lib/NetworkManager/VPN"; - meta = { + meta = with stdenv.lib; { description = "NetworkManager's strongswan plugin"; inherit (networkmanager.meta) platforms; + license = licenses.gpl2Plus; }; } diff --git a/pkgs/tools/networking/network-manager/vpnc.nix b/pkgs/tools/networking/network-manager/vpnc.nix deleted file mode 100644 index 577e04f6648d..000000000000 --- a/pkgs/tools/networking/network-manager/vpnc.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ stdenv, fetchurl, vpnc, intltool, pkgconfig, networkmanager, libsecret -, withGnome ? true, gnome3, procps, kmod, file }: -let - pname = "NetworkManager-vpnc"; - version = "1.2.6"; -in stdenv.mkDerivation rec { - name = "${pname}${if withGnome then "-gnome" else ""}-${version}"; - - src = fetchurl { - url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"; - }; - - buildInputs = [ vpnc networkmanager libsecret ] - ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome-keyring - gnome3.networkmanagerapplet ]; - - nativeBuildInputs = [ intltool pkgconfig file ]; - - configureFlags = [ - "${if withGnome then "--with-gnome --with-gtkver=3" else "--without-gnome"}" - "--disable-static" - ]; - - preConfigure = '' - substituteInPlace "configure" \ - --replace "/sbin/sysctl" "${procps}/bin/sysctl" - substituteInPlace "src/nm-vpnc-service.c" \ - --replace "/sbin/vpnc" "${vpnc}/bin/vpnc" \ - --replace "/sbin/modprobe" "${kmod}/bin/modprobe" - ''; - - passthru = { - updateScript = gnome3.updateScript { - packageName = pname; - attrPath = "networkmanager-vpnc"; - }; - }; - - meta = { - description = "NetworkManager's VPNC plugin"; - inherit (networkmanager.meta) maintainers platforms; - }; -} - diff --git a/pkgs/tools/networking/network-manager/vpnc/default.nix b/pkgs/tools/networking/network-manager/vpnc/default.nix new file mode 100644 index 000000000000..d2b3a345d495 --- /dev/null +++ b/pkgs/tools/networking/network-manager/vpnc/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchurl, substituteAll, vpnc, intltool, pkgconfig, networkmanager, libsecret +, withGnome ? true, gnome3, kmod, file }: +let + pname = "NetworkManager-vpnc"; + version = "1.2.6"; +in stdenv.mkDerivation rec { + name = "${pname}${if withGnome then "-gnome" else ""}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit vpnc kmod; + }) + ]; + + buildInputs = [ vpnc networkmanager ] + ++ stdenv.lib.optionals withGnome [ gnome3.gtk libsecret gnome3.networkmanagerapplet ]; + + nativeBuildInputs = [ intltool pkgconfig file ]; + + configureFlags = [ + "--with-gnome=${if withGnome then "yes" else "no"}" + ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "networkmanager-vpnc"; + }; + }; + + meta = with stdenv.lib; { + description = "NetworkManager's VPNC plugin"; + inherit (networkmanager.meta) maintainers platforms; + license = licenses.gpl2Plus; + }; +} diff --git a/pkgs/tools/networking/network-manager/vpnc/fix-paths.patch b/pkgs/tools/networking/network-manager/vpnc/fix-paths.patch new file mode 100644 index 000000000000..98238ac01f76 --- /dev/null +++ b/pkgs/tools/networking/network-manager/vpnc/fix-paths.patch @@ -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); |