diff options
Diffstat (limited to 'pkgs/tools/networking/network-manager/default.nix')
-rw-r--r-- | pkgs/tools/networking/network-manager/default.nix | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix index cac37bce280f..fd470143a3c5 100644 --- a/pkgs/tools/networking/network-manager/default.nix +++ b/pkgs/tools/networking/network-manager/default.nix @@ -2,25 +2,34 @@ , systemd, libgudev, libnl, libuuid, polkit, gnutls, ppp, dhcp, iptables , libgcrypt, dnsmasq, bluez5, readline , gobjectIntrospection, modemmanager, openresolv, libndp, newt, libsoup -, ethtool, gnused, coreutils, file, inetutils, kmod }: +, ethtool, iputils, gnused, coreutils, file, inetutils, kmod, jansson, libxslt +, python3Packages, docbook_xsl, fetchpatch }: stdenv.mkDerivation rec { name = "network-manager-${version}"; pname = "NetworkManager"; - major = "1.4"; - version = "${major}.4"; + major = "1.6"; + version = "${major}.2"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${major}/${pname}-${version}.tar.xz"; - sha256 = "029k2f1arx1m5hppmr778i9yg34jj68nmji3i89qs06c33rpi4w2"; + sha256 = "1y96k82rav8if334jl500zc024d210c4pgprh94yqyz3rmanyaxj"; }; outputs = [ "out" "dev" ]; + postPatch = '' + patchShebangs ./tools + ''; + preConfigure = '' substituteInPlace configure --replace /usr/bin/uname ${coreutils}/bin/uname substituteInPlace configure --replace /usr/bin/file ${file}/bin/file - substituteInPlace src/devices/nm-device.c --replace /usr/bin/ping ${inetutils}/bin/ping + substituteInPlace src/devices/nm-device.c \ + --replace /usr/bin/ping ${inetutils}/bin/ping \ + --replace /usr/bin/ping6 ${inetutils}/bin/ping + substituteInPlace src/devices/nm-arping-manager.c \ + --replace '("arping", NULL, NULL);' '("arping", "${inetutils}/bin/arping", NULL);' substituteInPlace src/NetworkManagerUtils.c --replace /sbin/modprobe ${kmod}/bin/modprobe substituteInPlace data/84-nm-drivers.rules \ --replace /bin/sh ${stdenv.shell} @@ -58,14 +67,21 @@ stdenv.mkDerivation rec { "--with-libsoup=yes" ]; - patches = [ ./PppdPath.patch ]; + patches = [ + ./PppdPath.patch + (fetchpatch { + sha256 = "1n90j5rwg97xkrhlldyr92filc2dmycl9pr0svky9hlcn9csk2z6"; + name = "null-dereference.patch"; + url = "https://github.com/NetworkManager/NetworkManager/commit/4e8eddd100bbc8429806a70620c90b72cfd29cb1.patch"; + }) + ]; buildInputs = [ systemd libgudev libnl libuuid polkit ppp libndp - bluez5 dnsmasq gobjectIntrospection modemmanager readline newt libsoup ]; + bluez5 dnsmasq gobjectIntrospection modemmanager readline newt libsoup jansson ]; - propagatedBuildInputs = [ dbus_glib gnutls libgcrypt ]; + propagatedBuildInputs = [ dbus_glib gnutls libgcrypt python3Packages.pygobject3 ]; - nativeBuildInputs = [ intltool pkgconfig ]; + nativeBuildInputs = [ intltool pkgconfig libxslt docbook_xsl ]; preInstall = '' installFlagsArray=( "sysconfdir=$out/etc" "localstatedir=$out/var" "runstatedir=$out/var/run" ) @@ -78,7 +94,7 @@ stdenv.mkDerivation rec { substituteInPlace $out/etc/dbus-1/system.d/org.freedesktop.NetworkManager.conf --replace 'at_console="true"' 'group="networkmanager"' # rename to network-manager to be in style - mv $out/etc/systemd/system/NetworkManager.service $out/etc/systemd/system/network-manager.service + mv $out/etc/systemd/system/NetworkManager.service $out/etc/systemd/system/network-manager.service # systemd in NixOS doesn't use `systemctl enable`, so we need to establish # aliases ourselves. |