summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/tools/networking/network-manager-applet/default.nix31
-rw-r--r--pkgs/tools/networking/network-manager/default.nix33
-rw-r--r--pkgs/tools/networking/network-manager/libnl-3.2.25.patch61
-rw-r--r--pkgs/tools/networking/network-manager/openconnect.nix10
-rw-r--r--pkgs/tools/networking/network-manager/openvpn.nix14
-rw-r--r--pkgs/tools/networking/network-manager/pptp.nix13
-rw-r--r--pkgs/tools/networking/network-manager/vpnc.nix15
7 files changed, 45 insertions, 132 deletions
diff --git a/pkgs/tools/networking/network-manager-applet/default.nix b/pkgs/tools/networking/network-manager-applet/default.nix
index 56c0dd1363a..54b349c425c 100644
--- a/pkgs/tools/networking/network-manager-applet/default.nix
+++ b/pkgs/tools/networking/network-manager-applet/default.nix
@@ -1,13 +1,11 @@
 { stdenv, fetchurl, intltool, pkgconfig, libglade, networkmanager, gnome3
-, libnotify, libsecret, dbus_glib, polkit, isocodes, libgnome_keyring 
+, libnotify, libsecret, dbus_glib, polkit, isocodes
 , mobile_broadband_provider_info, glib_networking, gsettings_desktop_schemas
-, makeWrapper, networkmanager_openvpn, networkmanager_vpnc
-, networkmanager_openconnect, networkmanager_pptp, networkmanager_l2tp
-, udev, hicolor_icon_theme, dconf }:
+, makeWrapper, udev, hicolor_icon_theme, dconf }:
 
 let
   pn = "network-manager-applet";
-  major = "0.9";
+  major = "1.0";
   version = networkmanager.version;
 in
 
@@ -16,7 +14,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pn}/${major}/${name}.tar.xz";
-    sha256 = "1jz0vawfixzm892m6plrzhsybgdxwv96pfwld9p85lb7wshykzj6";
+    sha256 = "0liia390bhkl09lvk2rplcwhmfbxpjffa1xszfawc0h00v9fivaz";
   };
 
   buildInputs = [
@@ -32,27 +30,6 @@ stdenv.mkDerivation rec {
     ''CFLAGS=-DMOBILE_BROADBAND_PROVIDER_INFO=\"${mobile_broadband_provider_info}/share/mobile-broadband-provider-info/serviceproviders.xml\"''
   ];
 
-  postInstall = ''
-    mkdir -p $out/etc/NetworkManager/VPN
-    ln -s ${networkmanager_openvpn}/etc/NetworkManager/VPN/nm-openvpn-service.name $out/etc/NetworkManager/VPN/nm-openvpn-service.name
-    ln -s ${networkmanager_vpnc}/etc/NetworkManager/VPN/nm-vpnc-service.name $out/etc/NetworkManager/VPN/nm-vpnc-service.name
-    ln -s ${networkmanager_openconnect}/etc/NetworkManager/VPN/nm-openconnect-service.name $out/etc/NetworkManager/VPN/nm-openconnect-service.name
-    ln -s ${networkmanager_pptp}/etc/NetworkManager/VPN/nm-pptp-service.name $out/etc/NetworkManager/VPN/nm-pptp-service.name
-    ln -s ${networkmanager_l2tp}/etc/NetworkManager/VPN/nm-l2tp-service.name $out/etc/NetworkManager/VPN/nm-l2tp-service.name
-    mkdir -p $out/lib/NetworkManager
-    ln -s ${networkmanager_openvpn}/lib/NetworkManager/* $out/lib/NetworkManager/
-    ln -s ${networkmanager_vpnc}/lib/NetworkManager/* $out/lib/NetworkManager/
-    ln -s ${networkmanager_openconnect}/lib/NetworkManager/* $out/lib/NetworkManager/
-    ln -s ${networkmanager_pptp}/lib/NetworkManager/* $out/lib/NetworkManager/
-    ln -s ${networkmanager_l2tp}/lib/NetworkManager/* $out/lib/NetworkManager/
-    mkdir -p $out/libexec
-    ln -s ${networkmanager_openvpn}/libexec/* $out/libexec/
-    ln -s ${networkmanager_vpnc}/libexec/* $out/libexec/
-    ln -s ${networkmanager_openconnect}/libexec/* $out/libexec/
-    ln -s ${networkmanager_pptp}/libexec/* $out/libexec/
-    ln -s ${networkmanager_l2tp}/libexec/* $out/libexec/
-  '';
-
   preFixup = ''
     wrapProgram "$out/bin/nm-applet" \
       --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules:${dconf}/lib/gio/modules" \
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
index 505f42d2f3d..c39d1a9f5ba 100644
--- a/pkgs/tools/networking/network-manager/default.nix
+++ b/pkgs/tools/networking/network-manager/default.nix
@@ -1,19 +1,22 @@
 { stdenv, fetchurl, intltool, wirelesstools, pkgconfig, dbus_glib, xz
 , udev, libnl, libuuid, polkit, gnutls, ppp, dhcp, dhcpcd, iptables
-, libgcrypt, dnsmasq, avahi, bind, perl, bluez5, substituteAll
-, gobjectIntrospection, modemmanager, openresolv }:
+, libgcrypt, dnsmasq, avahi, bind, perl, bluez5, substituteAll, readline
+, gobjectIntrospection, modemmanager, openresolv, libndp }:
 
 stdenv.mkDerivation rec {
   name = "network-manager-${version}";
-  version = "0.9.8.10";
+  version = "1.0.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/NetworkManager/0.9/NetworkManager-${version}.tar.xz";
-    sha256 = "0wn9qh8r56r8l19dqr68pdl1rv3zg1dv47rfy6fqa91q7li2fk86";
+    url = "mirror://gnome/sources/NetworkManager/1.0/NetworkManager-${version}.tar.xz";
+    sha256 = "0isrv1875whysnrf3fd1cz96xwd54nvj1rijk3fmx5qccznayris";
   };
 
   preConfigure = ''
     substituteInPlace tools/glib-mkenums --replace /usr/bin/perl ${perl}/bin/perl
+    substituteInPlace src/ppp-manager/nm-ppp-manager.c --replace /sbin/modprobe /run/current-system/sw/sbin/modprobe
+    substituteInPlace src/devices/nm-device.c --replace /sbin/modprobe /run/current-system/sw/sbin/modprobe
+    configureFlags="$configureFlags --with-udev-dir=$out/lib/udev"
   '';
 
   # Right now we hardcode quite a few paths at build time. Probably we should
@@ -21,12 +24,13 @@ stdenv.mkDerivation rec {
   # remove unneeded build-time dependencies.
   configureFlags = [
     "--with-distro=exherbo"
-    "--with-dhclient=${dhcp}/sbin/dhclient"
+    "--with-dhclient=${dhcp}/bin/dhclient"
     # Upstream prefers dhclient, so don't add dhcpcd to the closure
     #"--with-dhcpcd=${dhcpcd}/sbin/dhcpcd"
     "--with-dhcpcd=no"
-    "--with-iptables=${iptables}/sbin/iptables"
-    "--with-udev-dir=\${out}/lib/udev"
+    "--with-pppd=${ppp}/bin/pppd"
+    "--with-iptables=${iptables}/bin/iptables"
+    #"--with-udev-dir=$(out)/lib/udev"
     "--with-resolvconf=${openresolv}/sbin/resolvconf"
     "--sysconfdir=/etc" "--localstatedir=/var"
     "--with-dbus-sys-dir=\${out}/etc/dbus-1/system.d"
@@ -37,21 +41,13 @@ stdenv.mkDerivation rec {
     "--with-modem-manager-1"
   ];
 
-  buildInputs = [ wirelesstools udev libnl libuuid polkit ppp xz bluez5 gobjectIntrospection modemmanager ];
+  buildInputs = [ wirelesstools udev libnl libuuid polkit ppp libndp
+                  xz bluez5 gobjectIntrospection modemmanager readline ];
 
   propagatedBuildInputs = [ dbus_glib gnutls libgcrypt ];
 
   nativeBuildInputs = [ intltool pkgconfig ];
 
-  patches =
-    [ ( substituteAll {
-        src = ./nixos-purity.patch;
-        inherit avahi dnsmasq ppp bind;
-        glibc = stdenv.cc.libc;
-      })
-      ./libnl-3.2.25.patch
-    ];
-
   preInstall =
     ''
       installFlagsArray=( "sysconfdir=$out/etc" "localstatedir=$out/var" )
@@ -66,7 +62,6 @@ stdenv.mkDerivation rec {
 
       # rename to network-manager to be in style
       mv $out/etc/systemd/system/NetworkManager.service $out/etc/systemd/system/network-manager.service 
-      echo "Alias=NetworkManager.service" >> $out/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service
 
       # systemd in NixOS doesn't use `systemctl enable`, so we need to establish
       # aliases ourselves.
diff --git a/pkgs/tools/networking/network-manager/libnl-3.2.25.patch b/pkgs/tools/networking/network-manager/libnl-3.2.25.patch
deleted file mode 100644
index 17c2966b706..00000000000
--- a/pkgs/tools/networking/network-manager/libnl-3.2.25.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-diff --git a/src/nm-netlink-monitor.c b/src/nm-netlink-monitor.c
-index ba8053e..5ac39d3 100644
---- a/src/nm-netlink-monitor.c
-+++ b/src/nm-netlink-monitor.c
-@@ -177,40 +177,15 @@ link_msg_handler (struct nl_object *obj, void *arg)
- static int
- event_msg_recv (struct nl_msg *msg, void *arg)
- {
--	struct nl_sock *nlh = arg;
--	struct nlmsghdr *hdr = nlmsg_hdr (msg);
- 	struct ucred *creds = nlmsg_get_creds (msg);
--	const struct sockaddr_nl *snl;
--	guint32 local_port;
--	gboolean accept_msg = FALSE;
--
--	/* Only messages sent from the kernel */
--	if (!creds || creds->uid != 0) {
--		nm_log_dbg (LOGD_HW, "ignoring netlink message from UID %d",
--		            creds ? creds->uid : -1);
--		return NL_SKIP;
--	}
--
--	snl = nlmsg_get_src (msg);
--	g_assert (snl);
--
--	/* Accept any messages from the kernel */
--	if (hdr->nlmsg_pid == 0 || snl->nl_pid == 0)
--		accept_msg = TRUE;
- 
--	/* And any multicast message directed to our netlink PID, since multicast
--	 * currently requires CAP_ADMIN to use.
--	 */
--	local_port = nl_socket_get_local_port (nlh);
--	if ((hdr->nlmsg_pid == local_port) && snl->nl_groups)
--		accept_msg = TRUE;
--
--	if (accept_msg == FALSE) {
--		nm_log_dbg (LOGD_HW, "ignoring netlink message from PID %d (local PID %d, multicast %d)",
--		            hdr->nlmsg_pid,
--		            local_port,
--		            (hdr->nlmsg_flags & NLM_F_MULTI));
--		return NL_SKIP;
-+	if (!creds || creds->pid || creds->uid || creds->gid) {
-+		if (creds)
-+			nm_log_dbg (LOGD_HW, "netlink: received non-kernel message (pid %d uid %d gid %d)",
-+			            creds->pid, creds->uid, creds->gid);
-+		else
-+			nm_log_dbg (LOGD_HW, "netlink: received message without credentials");
-+		return NL_STOP;
- 	}
- 
- 	return NL_OK;
-@@ -285,7 +260,7 @@ nlh_setup (struct nl_sock *nlh,
- {
- 	int err;
- 
--	nl_socket_modify_cb (nlh, NL_CB_MSG_IN, NL_CB_CUSTOM, event_msg_recv, cb_data);
-+	nl_socket_modify_cb (nlh, NL_CB_MSG_IN, NL_CB_CUSTOM, event_msg_recv, NULL);
- 
- 	if (valid_func)
- 		nl_socket_modify_cb (nlh, NL_CB_VALID, NL_CB_CUSTOM, valid_func, cb_data);
diff --git a/pkgs/tools/networking/network-manager/openconnect.nix b/pkgs/tools/networking/network-manager/openconnect.nix
index cc6532bac71..79e12244732 100644
--- a/pkgs/tools/networking/network-manager/openconnect.nix
+++ b/pkgs/tools/networking/network-manager/openconnect.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, openconnect, intltool, pkgconfig, networkmanager
+{ stdenv, fetchurl, openconnect, intltool, pkgconfig, networkmanager, libsecret
 , withGnome ? true, gnome3, procps, module_init_tools }:
 
 stdenv.mkDerivation rec {
   name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
   pname = "NetworkManager-openconnect";
-  version = "0.9.8.4";
+  version = networkmanager.version;
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/0.9/${pname}-${version}.tar.xz";
-    sha256 = "1dl7wcmibrzf9qnpchgk9fxfhw0j2hzzzqmylkm2c41iv81xrd4r";
+    url = "mirror://gnome/sources/${pname}/1.0/${pname}-${version}.tar.xz";
+    sha256 = "0przs8hzvb6wrf4gc0p9063x67qp9503396aknqq5f79xzw25wq6";
   };
 
-  buildInputs = [ openconnect networkmanager ]
+  buildInputs = [ openconnect networkmanager libsecret ]
     ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome_keyring gnome3.gconf ];
 
   nativeBuildInputs = [ intltool pkgconfig ];
diff --git a/pkgs/tools/networking/network-manager/openvpn.nix b/pkgs/tools/networking/network-manager/openvpn.nix
index bb837dc6b8f..e48f4f32bf1 100644
--- a/pkgs/tools/networking/network-manager/openvpn.nix
+++ b/pkgs/tools/networking/network-manager/openvpn.nix
@@ -1,24 +1,26 @@
-{ stdenv, fetchurl, openvpn, intltool, pkgconfig, networkmanager
+{ stdenv, fetchurl, openvpn, intltool, pkgconfig, networkmanager, libsecret
 , withGnome ? true, gnome3, procps, module_init_tools }:
 
 stdenv.mkDerivation rec {
   name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
   pname = "NetworkManager-openvpn";
-  version = "0.9.8.4";
+  version = networkmanager.version;
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/0.9/${pname}-${version}.tar.xz";
-    sha256 = "11v63s1f3bsa7pmkvr7x65rsigh48wfqzsnixrwc3wqslsv5535g";
+    url = "mirror://gnome/sources/${pname}/1.0/${pname}-${version}.tar.xz";
+    sha256 = "1w0v3xah0wg467jy0fd3188zla8q4l1iq0zdy28bcdipin693bfh";
   };
 
-  buildInputs = [ openvpn networkmanager ]
-    ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome_keyring ];
+  buildInputs = [ openvpn networkmanager libsecret ]
+    ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome_keyring
+                                        gnome3.networkmanagerapplet ];
 
   nativeBuildInputs = [ intltool pkgconfig ];
 
   configureFlags = [
     "${if withGnome then "--with-gnome --with-gtkver=3" else "--without-gnome"}"
     "--disable-static"
+    "--localstatedir=/" # needed for the management socket under /run/NetworkManager
   ];
 
   preConfigure = ''
diff --git a/pkgs/tools/networking/network-manager/pptp.nix b/pkgs/tools/networking/network-manager/pptp.nix
index 6928db809a8..78293504533 100644
--- a/pkgs/tools/networking/network-manager/pptp.nix
+++ b/pkgs/tools/networking/network-manager/pptp.nix
@@ -1,18 +1,19 @@
 { stdenv, fetchurl, networkmanager, pptp, ppp, intltool, pkgconfig, substituteAll
-, withGnome ? true, gnome3 }:
+, libsecret, withGnome ? true, gnome3 }:
 
 stdenv.mkDerivation rec {
   name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
   pname = "NetworkManager-pptp";
-  version = "0.9.8.4";
+  version = networkmanager.version;
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/0.9/${pname}-${version}.tar.xz";
-    sha256 = "1s6wmznd6azvg028x8y3syniqy9j7nmx5j71w2wc6mk0f9pqzflp";
+    url = "mirror://gnome/sources/${pname}/1.0/${pname}-${version}.tar.xz";
+    sha256 = "0xpflw6vp1ahvpz7mnnldqvk455wz2j7dahd9lxqs95frmjmq390";
   };
 
-  buildInputs = [ networkmanager pptp ppp ]
-    ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome_keyring ];
+  buildInputs = [ networkmanager pptp ppp libsecret ]
+    ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome_keyring
+                                        gnome3.networkmanagerapplet ];
 
   nativeBuildInputs = [ intltool pkgconfig ];
 
diff --git a/pkgs/tools/networking/network-manager/vpnc.nix b/pkgs/tools/networking/network-manager/vpnc.nix
index 809970ff0fd..8e2bb2bbfc3 100644
--- a/pkgs/tools/networking/network-manager/vpnc.nix
+++ b/pkgs/tools/networking/network-manager/vpnc.nix
@@ -1,20 +1,19 @@
-{ stdenv, fetchurl, vpnc, intltool, pkgconfig, networkmanager
+{ stdenv, fetchurl, vpnc, intltool, pkgconfig, networkmanager, libsecret
 , withGnome ? true, gnome3, procps, module_init_tools }:
 
 stdenv.mkDerivation rec {
   name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
   pname = "NetworkManager-vpnc";
-  # TODO: version doesn't match due to bad release
-  #version = networkmanager.version;
-  version = "0.9.8.6";
+  version = networkmanager.version;
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/0.9/${pname}-${version}.tar.xz";
-    sha256 = "1mmbm3q27b3dbbs4vs976cxif8jdcs92j3ajdbgykrnl2gbnqc20";
+    url = "mirror://gnome/sources/${pname}/1.0/${pname}-${version}.tar.xz";
+    sha256 = "154q6lcy99h00kyivjhsv21a2i4cw4ff35cbvh062bfd68wl3l2y";
   };
 
-  buildInputs = [ vpnc networkmanager ]
-    ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome_keyring ];
+  buildInputs = [ vpnc networkmanager libsecret ]
+    ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome_keyring
+                                        gnome3.networkmanagerapplet ];
 
   nativeBuildInputs = [ intltool pkgconfig ];