diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-08-04 10:43:07 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-08-04 10:43:07 +0000 |
commit | 62614cbef7da005c1eda8c9400160f6bcd6546b8 (patch) | |
tree | c2630f69080637987b68acb1ee8676d2681fe304 /pkgs/tools/networking/networkmanager/default.nix | |
parent | d9c82ed3044c72cecf01c6ea042489d30914577c (diff) | |
parent | e24069138dfec3ef94f211f1da005bb5395adc11 (diff) | |
download | nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.gz nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.bz2 nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.lz nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.xz nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.zst nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.zip |
Merge branch 'nixpkgs-update' into master
Diffstat (limited to 'pkgs/tools/networking/networkmanager/default.nix')
-rw-r--r-- | pkgs/tools/networking/networkmanager/default.nix | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/pkgs/tools/networking/networkmanager/default.nix b/pkgs/tools/networking/networkmanager/default.nix new file mode 100644 index 00000000000..4f3b7a3204d --- /dev/null +++ b/pkgs/tools/networking/networkmanager/default.nix @@ -0,0 +1,113 @@ +{ lib, stdenv, fetchurl, substituteAll, intltool, pkg-config, fetchpatch, dbus +, gnome, systemd, libuuid, polkit, gnutls, ppp, dhcp, iptables, 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.30.4"; + + src = fetchurl { + url = "mirror://gnome/sources/NetworkManager/${lib.versions.majorMinor version}/NetworkManager-${version}.tar.xz"; + sha256 = "sha256-YFC3JCEuo85zhhEzWb6pr6H2eaVPYNmZpZmYkuZywZA="; + }; + + 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 = [ + "-Ddhclient=${dhcp}/bin/dhclient" + "-Ddnsmasq=${dnsmasq}/bin/dnsmasq" + # Upstream prefers dhclient, so don't add dhcpcd to the closure + "-Ddhcpcd=no" + "-Ddhcpcanon=no" + "-Dpppd=${ppp}/bin/pppd" + "-Diptables=${iptables}/bin/iptables" + # to enable link-local connections + "-Dudev_dir=${placeholder "out"}/lib/udev" + "-Dresolvconf=${openresolv}/bin/resolvconf" + "-Ddbus_conf_dir=${placeholder "out"}/share/dbus-1/system.d" + "-Dsystemdsystemunitdir=${placeholder "out"}/etc/systemd/system" + "-Dkernel_firmware_dir=/run/current-system/firmware" + "--sysconfdir=/etc" + "--localstatedir=/var" + "-Dcrypto=gnutls" + "-Dsession_tracking=systemd" + "-Dmodem_manager=true" + "-Dnmtui=true" + "-Ddocs=true" + "-Dtests=no" + "-Dqt=false" + "-Dpolkit_agent_helper_1=/run/wrappers/bin/polkit-agent-helper-1" + # Allow using iwd when configured to do so + "-Diwd=true" + "-Dlibaudit=yes-disabled-by-default" + # We don't use firewalld in NixOS + "-Dfirewalld_zone=false" + ]; + + 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/libnm/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; + maintainers = teams.freedesktop.members ++ (with maintainers; [ phreedom domenkozar obadz ]); + platforms = platforms.linux; + }; +} |