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 ];