{ stdenv, fetchurl, meson, ninja, intltool, gtk-doc, pkgconfig, networkmanager, gnome3 , libnotify, libsecret, polkit, isocodes, modemmanager, libxml2, docbook_xsl, docbook_xml_dtd_43 , mobile-broadband-provider-info, glib-networking, gsettings-desktop-schemas , libgudev, jansson, wrapGAppsHook, gobjectIntrospection, python3 , libappindicator-gtk3, withGnome ? false }: let pname = "network-manager-applet"; version = "1.8.16"; in stdenv.mkDerivation rec { name = "${pname}-${version}"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; sha256 = "0lmlkh4yyl9smvkgrzshn127zqfbp9f41f448ks8dlhhm38s38v2"; }; mesonFlags = [ "-Dlibnm_gtk=false" # It is deprecated "-Dselinux=false" "-Dappindicator=yes" "-Dgcr=${if withGnome then "true" else "false"}" ]; 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 ]; # advanced certificate chooser nativeBuildInputs = [ meson ninja intltool pkgconfig wrapGAppsHook gobjectIntrospection python3 gtk-doc docbook_xsl docbook_xml_dtd_43 libxml2 ]; postPatch = '' chmod +x meson_post_install.py # patchShebangs requires executable file patchShebangs meson_post_install.py ''; passthru = { updateScript = gnome3.updateScript { packageName = pname; attrPath = "networkmanagerapplet"; }; }; meta = with stdenv.lib; { homepage = https://wiki.gnome.org/Projects/NetworkManager; description = "NetworkManager control applet for GNOME"; license = licenses.gpl2; maintainers = with maintainers; [ phreedom rickynils ]; platforms = platforms.linux; }; }