Hello community, here is the log from the commit of package NetworkManager.1123 for openSUSE:12.2:Update checked in at 2012-12-04 13:35:09 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:12.2:Update/NetworkManager.1123 (Old) and /work/SRC/openSUSE:12.2:Update/.NetworkManager.1123.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "NetworkManager.1123", Maintainer is "" Changes: -------- New Changes file: --- /dev/null 2012-11-30 12:21:47.308011256 +0100 +++ /work/SRC/openSUSE:12.2:Update/.NetworkManager.1123.new/NetworkManager.changes 2012-12-04 13:35:11.000000000 +0100 @@ -0,0 +1,2119 @@ +------------------------------------------------------------------- +Thu Nov 8 08:05:32 UTC 2012 - dominique@leuenberger.net + +- Add nm-kernels-vs-nm-for-ipv6.patch: Don't fight with the kernel + over the default IPv6 route (bnc#788339). + +------------------------------------------------------------------- +Tue Sep 18 11:20:18 UTC 2012 - fcrozat@suse.com + +- Remove dbus system-service for NetworkManager, to prevent + warnings about it not being running (bnc#780911) + +------------------------------------------------------------------- +Mon Sep 17 07:07:45 UTC 2012 - glin@suse.com + +- Disable nm-remove-AP-always-on-device-disconnect.diff sine the + AP might be removed from the list forever due to the AP list + update method change in 0.9.4.0 (bnc#768564) + +------------------------------------------------------------------- +Mon Aug 20 07:13:17 UTC 2012 - binli@opensuse.org + +- Add nm-wireless-strength.patch, fix wireless status for ipw2200. + (bnc#755541, bgo#675017). + +------------------------------------------------------------------- +Wed Jul 18 04:37:40 UTC 2012 - glin@suse.com + +- Add nm-probe-radius-server-cert.patch to probe the certificate + of the RADIUS server (bnc#574266, bnc#771185) +- Add nm-null-out-on-dispose.patch to fix crash in gnome-shell or + any other program using libnm-glib (bgo#674473) + +------------------------------------------------------------------- +Thu Jun 7 23:42:26 UTC 2012 - badshah400@gmail.com + +- Add nm-ensure-bindings-created-NMClient-object-work.patch to fix + "nmcli con" not working (bgo#672812, bnc#766045). + +------------------------------------------------------------------- +Sat Jun 2 16:21:22 UTC 2012 - binli@opensuse.org + +- Add nm-ppp-build-error.patch, don't use struct ifpppstatsreq + that was removed from linux/ip_ppp.h in recent kernels. + +------------------------------------------------------------------- +Tue May 29 09:28:01 UTC 2012 - binli@opensuse.org + +- Add nm-ensure_inited-fixing.patch, ensure initialization + in get_property() calls.(bnc#764290). + +------------------------------------------------------------------- +Tue Apr 17 22:13:49 UTC 2012 - jeffm@suse.com + +- Add nm-gerror-must-be-null.patch: GError * must be initialized to + NULL (bnc#757656). + +------------------------------------------------------------------- +Sat Mar 24 09:29:40 UTC 2012 - vuntz@opensuse.org + +- Update to version 0.9.4.0: + + Removed support for WiFi Ad-Hoc WPA connections due to kernel + bugs + +------------------------------------------------------------------- +Tue Mar 20 16:29:47 UTC 2012 - vuntz@opensuse.org + +- Update to version 0.9.3.997: + + A bug causing IPv6 address assignment to fail on newer kernels + with libnl3 has been fixed + + Fix a bug in the ifcfg-rh plugin with backticks in WPA + passphrases + + Ensure connections that cannot be stored are ignored by the + ifnet plugin + + Enable out-of-the-box IPv6 connectivity by allowing IPv4 to + fail if IPv6 succeeds + + Allow proxying of DNSSEC data when using the dnsmasq local + caching nameserver plugin + + Add support for multiple domain names sent from VPN plugins + +------------------------------------------------------------------- +Tue Mar 13 16:11:33 UTC 2012 - vuntz@opensuse.org + +- Add NetworkManager Supplements to + NetworkManager-device-plugin-wimax so that it gets automatically + installed by default. + +------------------------------------------------------------------- +Fri Mar 2 19:23:53 UTC 2012 - dimstar@opensuse.org + +- Update to version 0.9.3.995: + + Linux Wireless Extensions (WEXT) support can be disabled at + configure time with --with-wext=no + + IPv6 Privacy Extensions are now enabled by default for new + connections + + Support for checking Internet connectivity has been added + + The ifnet system config plugin rewrites config files less often +- Add pkgconfig(libsoup-2.4) BuildRequires and pass + --enable-concheck to configure to enable internet connectivity + check. + +------------------------------------------------------------------- +Wed Feb 29 17:59:27 UTC 2012 - dimstar@opensuse.org + +- Add with_wimax define, which prepares NM for wimax. If with_wimax + is defined to 1: + + Add pkgconfig(libiWmxSdk-0) BuildRequires + + Change --disable-wimax to --enable-wimax in configure + + Create NetworkManager-device-plugin-wimax subpackage + +------------------------------------------------------------------- +Thu Feb 23 12:44:10 UTC 2012 - vuntz@opensuse.org + +- Get ready for full-switch to systemd: + + Add a with_systemd macro, currently set to 0 as the systemd + support implies no support for ConsoleKit, which we want to + keep until sysvinit is not supported anymore. + + Add pkgconfig(libsystemd-login) BuildRequires and pass + --with-session-tracking=systemd to configure if we build + systemd support. +- Move to libnl3: + + Remove pkgconfig(libnl-1) BuildRequires. + + Add pkgconfig() BuildRequires: libnl-3.0, libnl-genl-3.0, + libnl-route-3.0. +- Remove libiw-devel BuildRequires: it's not needed anymore. +- Stop changing libexecdir to %{_prefix}/lib/NetworkManager: there + is no need for this. + +------------------------------------------------------------------- +Sat Feb 18 16:10:10 UTC 2012 - dimstar@opensuse.org + +- Update to version 0.9.3.990: + + Better handling of WiFi devices via nl80211 when available + (instead of WEXT) + + IP configuration is now non-blocking; waiting for IPv6 RA no + longer blocks the device from activating if IPv4 is ready and + vice versa + + Addded support for firewall "zones" via FirewallD + + Added basic support for bonded interfaces + + WiFi connections are no longer locked to a specific MAC address + if they are "locally administered" addresses (ie, 02:::::) + + New state change reasons have been added for mobile broadband + PIN errors + + Agent-owned secrets are now sent to agents for newly created + connections + + Support for non-UTF8-encoded 802.1x passwords has been added + + libnm-glib now fetches some properties more aggressively (like + active connections, access points, etc) + + Added basic support for IP-over-Infiniband interfaces + + Added support for device plugins and converted WiMAX support to + a plugin for easier packaging and simpler dependencies + + Added support for VLAN interfaces + + Added support for 802.1x EAP-FAST authentication + + Added non-blocking mode and API to libnm-glib +- Rebased systemd-network-config.patch. + +------------------------------------------------------------------- +Thu Dec 8 08:44:10 UTC 2011 - dimstar@opensuse.org + +- Split typelib files into their own subpackages: + typelib-1_0-NetworkManager-1_0 and typelib-1_0-NMClient-1_0. +- Add typelib-1_0-NetworkManager-1_0 and typelib-1_0-NMClient-1_0 + Requires to devel subpackage. + +------------------------------------------------------------------- +Wed Dec 7 14:48:46 UTC 2011 - fcrozat@suse.com + +- Update systemd-network-config.patch to handle NM_TIMEOUT value 0 + as no timeout (bnc#730628). + +------------------------------------------------------------------- +Tue Nov 15 14:07:06 UTC 2011 - dimstar@opensuse.org + +- Really enable parallel build: fix typo smp_flags => smp_mflags. + +------------------------------------------------------------------- +Sat Nov 12 19:06:06 UTC 2011 - dimstar@opensuse.org + +- Update to version 0.9.2.0: + + Fixes for building with recent GLib versions. + + Don't update routing and DNS until a device is managed. + + Fix bug causing IPv6 RA-provided routes to be ignored. + + Fix possible wrong handling of 'keyfile' connection + certificates. + + Correct Shared connection IP address range to be as documented. + +------------------------------------------------------------------- +Mon Oct 31 13:17:46 UTC 2011 - dimstar@opensuse.org + +- Update to version 0.9.1.95: + + Fix a crash when deleting default wired connections + + Fix a security issue in the ifcfg-rh plugin with newlines in + file names + + Fix the "SpecificObject" property for active VPN connection + objects + + Improve handling of rfkill on some platforms + + Spaces no longer used in ifcfg config file names ++++ 1922 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:12.2:Update/.NetworkManager.1123.new/NetworkManager.changes New: ---- NetworkManager-0.9.4.0.tar.xz NetworkManager-rpmlintrc NetworkManager.changes NetworkManager.conf NetworkManager.spec baselibs.conf nfs nm-don-t-consider-not-needed-secrets-for-has_system_secr.diff nm-ensure-bindings-created-NMClient-object-work.patch nm-ensure_inited-fixing.patch nm-gerror-must-be-null.patch nm-kernels-vs-nm-for-ipv6.patch nm-null-out-on-dispose.patch nm-ppp-build-error.patch nm-probe-radius-server-cert.patch nm-remove-AP-always-on-device-disconnect.diff nm-treat-not-saved-secrets-just-like-agent-owned-when-cl.diff nm-wireless-strength-ipw2200.patch systemd-network-config.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ NetworkManager.spec ++++++ # # spec file for package NetworkManager # # Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # We cannot enable systemd support right now, as it is exclusive and means we # lose ConsoleKit support (bad for sysvinit) %define with_systemd 0 %define with_wimax 0 Name: NetworkManager Url: http://www.gnome.org/projects/NetworkManager/ Version: 0.9.4.0 Release: 0 Summary: Network Link Manager and User Applications License: GPL-2.0+ Group: Productivity/Networking/System Source0: http://download.gnome.org/sources/NetworkManager/0.9/%{name}-%{version}.tar.xz Source1: nfs Source2: NetworkManager.conf Source3: baselibs.conf Source99: NetworkManager-rpmlintrc # PATCH-FEATURE-OPENSUSE systemd-network-config.patch -- don't try to start NM under systemd if it is disabled in system configuration Patch0: systemd-network-config.patch # PATCH-UGLY-HACK-OPENSUSE nm-remove-AP-always-on-device-disconnect.diff lnussel@suse.com -- avoid pw dialog if AP out of range # Patch2: nm-remove-AP-always-on-device-disconnect.diff # PATCH-HACK-OPENSUSE nm-don-t-consider-not-needed-secrets-for-has_system_secr.diff lnussel@suse.com -- avoid polkit popups for 802.11x Patch3: nm-don-t-consider-not-needed-secrets-for-has_system_secr.diff # PATCH-HACK-OPENSUSE nm-treat-not-saved-secrets-just-like-agent-owned-when-cl.diff lnussel@suse.com -- avoid polkit popups for 802.11x Patch4: nm-treat-not-saved-secrets-just-like-agent-owned-when-cl.diff # PATCH-FIX-UPSTREAM nm-gerror-must-be-null.patch bnc#757656 bgo#674042 jeffm@suse.com -- GError * must be initialized to NULL Patch5: nm-gerror-must-be-null.patch # PATCH-FIX-UPSTREAM nm-ensure_inited-fixing.patch bnc#764290 binli@opensuse.org -- more ensure_inited() fixing. Patch6: nm-ensure_inited-fixing.patch # PATCH-FIX-UPSTREAM nm-ppp-build-error.patch binli@opensuse.org -- Fix build error with ppp. Patch7: nm-ppp-build-error.patch # PATCH-FIX-UPSTREAM nm-ensure-bindings-created-NMClient-object-work.patch bnc#766045 bgo#672812 badshah400@gmail.com -- Fixes "nmcli con" not working (patch came from upstream git) Patch8: nm-ensure-bindings-created-NMClient-object-work.patch # PATCH-FIX-UPSTREAM nm-probe-radius-server-cert.patch bnc#574266 glin@suse.com -- Probe the RADIUS server certificate Patch9: nm-probe-radius-server-cert.patch Patch10: nm-null-out-on-dispose.patch # PATCH-FIX-UPSTREAM nm-wireless-strength-ipw2200.patch bnc#755541 binli@opensuse.org -- Fix wireless status for ipw2200 Patch11: nm-wireless-strength-ipw2200.patch # PATCH-FIX-UPSTREAM nm-kernels-vs-nm-for-ipv6.patch bnc#788339 bgo#673476 dimstar@opensuse.org -- Don't fight the kernel over IPv6 default routes. Patch12: nm-kernels-vs-nm-for-ipv6.patch BuildRequires: fdupes BuildRequires: gobject-introspection-devel BuildRequires: gtk-doc BuildRequires: intltool BuildRequires: iptables BuildRequires: libtool BuildRequires: ppp-devel BuildRequires: translation-update-upstream BuildRequires: wireless-tools BuildRequires: pkgconfig(dbus-1) BuildRequires: pkgconfig(dbus-glib-1) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gudev-1.0) %if %{with_wimax} BuildRequires: pkgconfig(libiWmxSdk-0) >= 1.5.1 %endif BuildRequires: pkgconfig(libnl-3.0) BuildRequires: pkgconfig(libnl-genl-3.0) BuildRequires: pkgconfig(libnl-route-3.0) BuildRequires: pkgconfig(libsoup-2.4) >= 2.26 %if %{with_systemd} BuildRequires: pkgconfig(libsystemd-login) %endif BuildRequires: pkgconfig(nss) BuildRequires: pkgconfig(polkit-gobject-1) BuildRequires: pkgconfig(systemd) BuildRequires: pkgconfig(uuid) Requires: dhcp-client Requires: iproute2 Requires: iputils Requires: mozilla-nss Requires: ppp Requires: sysconfig >= 0.71.1 Requires: wpa_supplicant >= 0.6.4 %{?systemd_requires} Provides: dhcdbd = 1.14 Obsoletes: dhcdbd < 1.14 Recommends: dnsmasq Recommends: iptables Recommends: NetworkManager-client Recommends: org.freedesktop.ModemManager Recommends: %{name}-lang BuildRoot: %{_tmppath}/%{name}-%{version}-build %description NetworkManager attempts to keep an active network connection available at all times. The point of NetworkManager is to make networking configuration and setup as painless and automatic as possible. If using DHCP, NetworkManager is intended to replace default routes, obtain IP addresses from a DHCP server, and change name servers whenever it sees fit. %if %{with_wimax} %package device-plugin-wimax Summary: WiMAX support for NetworkManager Group: Productivity/Networking/System Supplements: %{name} %description device-plugin-wimax NetworkManager attempts to keep an active network connection available at all times. The point of NetworkManager is to make networking configuration and setup as painless and automatic as possible. If using DHCP, NetworkManager is intended to replace default routes, obtain IP addresses from a DHCP server, and change name servers whenever it sees fit. %endif %package devel Summary: Libraries and headers for adding NetworkManager support to applications Group: Development/Libraries/Other Requires: %{name} = %{version} Requires: libnm-glib-vpn1 = %{version} Requires: libnm-glib4 = %{version} Requires: libnm-util2 = %{version} Requires: typelib-1_0-NMClient-1_0 = %{version} Requires: typelib-1_0-NetworkManager-1_0 = %{version} Provides: %{name}-doc = %{version} Obsoletes: %{name}-doc < %{version} %description devel This package contains various headers accessing some NetworkManager functionality from applications. %package -n libnm-util2 Summary: Convenience library for clients of NetworkManager Group: System/Libraries %description -n libnm-util2 This package contains the libraries that make it easier to use some Network Manager functionality from applications that use glib. %package -n libnm-glib4 Summary: Convenience library for clients of NetworkManager Group: System/Libraries Provides: %{name}-glib = %{version} Obsoletes: %{name}-glib < %{version} %description -n libnm-glib4 This package contains the libraries that make it easier to use some Network Manager functionality from applications that use glib. %package -n libnm-glib-vpn1 Summary: Convenience library for NetworkManager VPN plugins Group: System/Libraries %description -n libnm-glib-vpn1 This package contains the libraries that make it easier to use some Network Manager functionality from applications that use glib. %package -n typelib-1_0-NetworkManager-1_0 Summary: Convenience library for clients of NetworkManager -- Introspection bindings Group: System/Libraries %description -n typelib-1_0-NetworkManager-1_0 This package contains the gi-bindings that make it easier to use some Network Manager functionality from applications that use glib. This package provides the GObject Introspection bindings for the NetworkManager library. %package -n typelib-1_0-NMClient-1_0 Summary: Convenience library for clients of NetworkManager -- Introspection bindings Group: System/Libraries %description -n typelib-1_0-NMClient-1_0 This package contains the gi-bindings that make it easier to use some Network Manager functionality from applications that use glib. This package provides the GObject Introspection bindings for the NetworkManager library. %lang_package %prep %setup -n %{name}-%{version} -q translation-update-upstream %patch0 -p1 #%patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 %patch11 -p1 %patch12 -p1 %build pppddir=`ls -1d /usr/%_lib/pppd/2*` test -n "$pppddir" || exit 1 export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" %configure\ --disable-static\ --with-crypto=nss \ --with-distro=suse\ --with-docs\ --enable-more-warnings=no \ --with-pppd-plugin-dir=$pppddir \ --with-dhclient=/sbin/dhclient \ --enable-concheck \ %if %{with_systemd} --with-session-tracking=systemd \ %endif %if %{with_wimax} --enable-wimax %else --disable-wimax %endif %__make %{?_smp_mflags} %install %makeinstall find %{buildroot} -type f -name "*.la" -delete -print %find_lang %{name} %fdupes %{buildroot}%{_datadir}/gtk-doc/ mkdir -p $RPM_BUILD_ROOT%{_bindir} mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/NetworkManager/VPN mkdir -p $RPM_BUILD_ROOT/var/log/ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/NetworkManager touch $RPM_BUILD_ROOT/var/log/NetworkManager mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/NetworkManager/system-connections install -m 0755 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/NetworkManager/dispatcher.d/ install -m 0644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/NetworkManager/ %if 0%{suse_version} > 1140 # drop on demand activation, it is handled as a system service rm -f $RPM_BUILD_ROOT%{_datadir}/dbus-1/system-services/org.freedesktop.NetworkManager.service %pre %service_add_pre NetworkManager.service %post %service_add_post NetworkManager.service %preun %service_del_preun NetworkManager.service %postun %service_del_postun NetworkManager.service %endif %post -n libnm-util2 -p /sbin/ldconfig %postun -n libnm-util2 -p /sbin/ldconfig %post -n libnm-glib4 -p /sbin/ldconfig %postun -n libnm-glib4 -p /sbin/ldconfig %post -n libnm-glib-vpn1 -p /sbin/ldconfig %postun -n libnm-glib-vpn1 -p /sbin/ldconfig %files %defattr(-,root,root) %doc COPYING ChangeLog NEWS AUTHORS README CONTRIBUTING TODO %{_bindir}/nm-online %{_bindir}/nm-tool %{_bindir}/nmcli %{_sbindir}/NetworkManager %{_datadir}/NetworkManager/ %{_datadir}/dbus-1/system-services/org.freedesktop.nm_dispatcher.service %{_datadir}/polkit-1/actions/org.freedesktop.NetworkManager.policy %attr(0700,root,root) %{_localstatedir}/lib/NetworkManager %doc %{_mandir}/man1/nm-online.* %doc %{_mandir}/man1/nm-tool.* %doc %{_mandir}/man1/nmcli.* %doc %{_mandir}/man5/NetworkManager.conf.5* %doc %{_mandir}/man5/nm-system-settings.conf.5* %doc %{_mandir}/man8/NetworkManager.* %dir %{_libdir}/NetworkManager/ %{_libdir}/NetworkManager/libnm-settings-plugin-ifcfg-suse.so %dir %{_libdir}/pppd/2.4.5 %{_libdir}/pppd/2.4.5/nm-pppd-plugin.* %{_libexecdir}/nm-avahi-autoipd.action %{_libexecdir}/nm-crash-logger %{_libexecdir}/nm-dhcp-client.action %{_libexecdir}/nm-dispatcher.action %{_sysconfdir}/dbus-1/system.d/org.freedesktop.NetworkManager.conf %{_sysconfdir}/dbus-1/system.d/nm-avahi-autoipd.conf %{_sysconfdir}/dbus-1/system.d/nm-dhcp-client.conf %{_sysconfdir}/dbus-1/system.d/nm-dispatcher.conf %dir %{_sysconfdir}/NetworkManager %dir %{_sysconfdir}/NetworkManager/VPN %dir %{_sysconfdir}/NetworkManager/dispatcher.d %dir %{_sysconfdir}/NetworkManager/system-connections %config(noreplace) %{_sysconfdir}/NetworkManager/NetworkManager.conf %attr(0755,root,root) %{_sysconfdir}/NetworkManager/dispatcher.d/nfs %{_unitdir}/NetworkManager.service %{_unitdir}/NetworkManager-wait-online.service %dir /lib/udev %dir /lib/udev/rules.d /lib/udev/rules.d/77-nm-olpc-mesh.rules %ghost %config(noreplace) /var/log/NetworkManager %if %{with_wimax} %files device-plugin-wimax %defattr(-,root,root) %{_libdir}/NetworkManager/libnm-device-plugin-wimax.so %endif %files devel %defattr(-,root,root) %{_includedir}/NetworkManager/ %{_includedir}/libnm-glib/ %{_datadir}/gir-1.0/*.gir %{_libdir}/libnm-util.so %{_libdir}/libnm-glib.so %{_libdir}/libnm-glib-vpn.so %{_libdir}/pkgconfig/NetworkManager.pc %{_libdir}/pkgconfig/libnm-util.pc %{_libdir}/pkgconfig/libnm-glib.pc %{_libdir}/pkgconfig/libnm-glib-vpn.pc %doc %{_datadir}/gtk-doc/html/NetworkManager/ %doc %{_datadir}/gtk-doc/html/libnm-glib/ %doc %{_datadir}/gtk-doc/html/libnm-util/ %files -n libnm-util2 %defattr(-,root,root) %{_libdir}/libnm-util.so.* %files -n libnm-glib4 %defattr(-,root,root) %{_libdir}/libnm-glib.so.* %files -n libnm-glib-vpn1 %defattr(-,root,root) %{_libdir}/libnm-glib-vpn.so.* %files -n typelib-1_0-NetworkManager-1_0 %defattr(-,root,root) %{_libdir}/girepository-1.0/NetworkManager-1.0.typelib %files -n typelib-1_0-NMClient-1_0 %defattr(-,root,root) %{_libdir}/girepository-1.0/NMClient-1.0.typelib %files lang -f %{name}.lang %changelog ++++++ NetworkManager-rpmlintrc ++++++ addFilter("dbus-policy-missing-allow") ++++++ NetworkManager.conf ++++++ [main] plugins=ifcfg-suse,keyfile ++++++ baselibs.conf ++++++ libnm-util2 libnm-glib4 libnm-glib-vpn1 NetworkManager-devel requires -NetworkManager-<targettype> requires "libnm-util2-<targettype> = <version>" requires "libnm-glib4-<targettype> = <version>" requires "libnm-glib-vpn1-<targettype> = <version>" ++++++ nfs ++++++ #! /bin/sh # # nfs - start NFS in response to interface change # # Robert Love RL=$(/sbin/runlevel); RL=${RL#* } test -z "$RL" && RL=`sed -n 's=^id:(.):initdefault.*$=\1=p' /etc/inittab` case "$2" in up) ls /etc/init.d/rc${RL}.d/S*nfs &>/dev/null || exit 2 # Don't use the restart any more, when one mounts nfs filesystems manually before NM start, # and then swith from ifup to NM, the nfs connection will lose(bnc#559021). # Bin Li (bili@novell.com). #/etc/init.d/nfs restart /bin/mount -alt nfs,nfs4 ;; down) /bin/umount -alt nfs,nfs4 exit 0 ;; *) exit 0 ;; esac ++++++ nm-don-t-consider-not-needed-secrets-for-has_system_secr.diff ++++++
From 7e3c0930ff594c3e6b08c221dedadc9235006d9f Mon Sep 17 00:00:00 2001 From: Ludwig Nussel <ludwig.nussel@suse.de> Date: Fri, 7 Oct 2011 13:58:48 +0200 Subject: [PATCH 3/3] don't consider not needed secrets for has_system_secrets()
--- src/settings/nm-agent-manager.c | 56 +++++++++++++++++++++++++++++++++++--- 1 files changed, 51 insertions(+), 5 deletions(-) diff --git a/src/settings/nm-agent-manager.c b/src/settings/nm-agent-manager.c index 5ccbdc6..f3519c3 100644 --- a/src/settings/nm-agent-manager.c +++ b/src/settings/nm-agent-manager.c @@ -889,6 +889,11 @@ get_agent_modify_auth_cb (NMAuthChain *chain, nm_auth_chain_unref (chain); } +struct system_secrets_cb_data { + GHashTable *hash; + gboolean *has_system; +}; + static void check_system_secrets_cb (NMSetting *setting, const char *key, @@ -897,11 +902,17 @@ check_system_secrets_cb (NMSetting *setting, gpointer user_data) { NMSettingSecretFlags secret_flags = NM_SETTING_SECRET_FLAG_NONE; - gboolean *has_system = user_data; + struct system_secrets_cb_data *data = user_data; + gboolean has_system = FALSE; if (!(flags & NM_SETTING_PARAM_SECRET)) return; + if (!g_hash_table_lookup(data->hash, key)) { + nm_log_dbg (LOGD_AGENTS, "%s: %s not needed", __FUNCTION__, key); + return; + } + /* Clear out system-owned or always-ask secrets */ if (NM_IS_SETTING_VPN (setting) && !strcmp (key, NM_SETTING_VPN_SECRETS)) { GHashTableIter iter; @@ -913,21 +924,44 @@ check_system_secrets_cb (NMSetting *setting, secret_flags = NM_SETTING_SECRET_FLAG_NONE; nm_setting_get_secret_flags (setting, secret_name, &secret_flags, NULL); if (secret_flags == NM_SETTING_SECRET_FLAG_NONE) - *has_system = TRUE; + has_system = TRUE; } } else { nm_setting_get_secret_flags (setting, key, &secret_flags, NULL); if (secret_flags == NM_SETTING_SECRET_FLAG_NONE) - *has_system = TRUE; + has_system = TRUE; } + nm_log_dbg (LOGD_AGENTS, "%s: %s has_system=%d", __FUNCTION__, key, has_system); + *data->has_system = has_system; } static gboolean has_system_secrets (NMConnection *connection) { gboolean has_system = FALSE; + GPtrArray *hints = NULL; + const char *setting_name; + unsigned i; + struct system_secrets_cb_data data = { + NULL, + &has_system, + }; + + setting_name = nm_connection_need_secrets (connection, &hints); + /* some secrets should be needed at this point */ + g_return_val_if_fail(setting_name != NULL, has_system); + g_return_val_if_fail(hints != NULL, has_system); + + data.hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); + for (i = 0; i < hints->len; i++) { + g_hash_table_insert (data.hash, g_strdup ((const char*)g_ptr_array_index(hints, i)), (void*)(long)1); + } + + nm_connection_for_each_setting_value (connection, check_system_secrets_cb, &data); + + g_hash_table_destroy (data.hash); + g_ptr_array_free(hints, TRUE); - nm_connection_for_each_setting_value (connection, check_system_secrets_cb, &has_system); return has_system; } @@ -936,20 +970,32 @@ get_next_cb (Request *req) { NMSettingConnection *s_con; const char *agent_dbus_owner, *perm; + gboolean has_system = FALSE; if (!next_generic (req, "getting")) return; agent_dbus_owner = nm_secret_agent_get_dbus_owner (NM_SECRET_AGENT (req->current)); + has_system = has_system_secrets (req->connection); + nm_log_dbg (LOGD_AGENTS, "flags %d, existing %p, has_system %d", + req->flags, req->existing_secrets, has_system); + /* If the request flags allow user interaction, and there are existing * system secrets (or blank secrets that are supposed to be system-owned), * check whether the agent has the 'modify' permission before sending those * secrets to the agent. We shouldn't leak system-owned secrets to * unprivileged users. */ + /* XXX: there needs to be a way to determine whether there + * are missing system secrets (ie user clicked on a network + * and wants to connect for the first time). Later we should + * not ask for modifying system secrets. The connection + * should simply fail then. Setting new secrets is a job for + * the connection edit dialog. + */ if ( (req->flags != NM_SETTINGS_GET_SECRETS_FLAG_NONE) - && (req->existing_secrets || has_system_secrets (req->connection))) { + && (req->existing_secrets || has_system)) { nm_log_dbg (LOGD_AGENTS, "(%p/%s) request has system secrets; checking agent %s for MODIFY", req, req->setting_name, agent_dbus_owner); -- 1.7.3.4 ++++++ nm-ensure-bindings-created-NMClient-object-work.patch ++++++
From b48dc05b720d86074fce776512123c7f475d81eb Mon Sep 17 00:00:00 2001 From: Jiří Klimeš <jklimes@redhat.com> Date: Tue, 27 Mar 2012 12:38:48 +0000 Subject: libnm-glib: ensure bindings-created NMClient object work (rh #802536)
Most of the stuff was done by 762df85234e7a042a2a5d31053e6cc273ae3e2ec. But to allow this piece of code: from gi.repository import NMClient nmclient = NMClient.Client() print nmclient.get_active_connections() we also need to set "dbus-path" property in NMClient constuctor(), else parent NMObject is not properly constructed. --- diff --git a/libnm-glib/nm-client.c b/libnm-glib/nm-client.c index 937a1bf..b879206 100644 --- a/libnm-glib/nm-client.c +++ b/libnm-glib/nm-client.c @@ -1241,6 +1241,104 @@ nm_client_new_finish (GAsyncResult *result, GError **error) return g_object_ref (g_simple_async_result_get_op_res_gpointer (simple)); } +/* + * Validate D-Bus object path. + * The function is copied and adjusted version of + * g_variant_serialiser_is_object_path() from glib. + * FIXME: The function can be replaced by g_variant_is_object_path() + * when we start using GLib >= 2.24 + */ +static gboolean +_nm_client_is_object_path (const char *string) +{ + gsize i; + + if (!g_utf8_validate (string, -1, NULL)) + return FALSE; + + /* The path must begin with an ASCII '/' (integer 47) character */ + if (string[0] != '/') + return FALSE; + + for (i = 1; string[i]; i++) { + /* Each element must only contain the ASCII characters + * "[A-Z][a-z][0-9]_" + */ + if (g_ascii_isalnum (string[i]) || string[i] == '_') + ; + /* must consist of elements separated by slash characters. */ + else if (string[i] == '/') { + /* No element may be the empty string. */ + /* Multiple '/' characters cannot occur in sequence. */ + if (string[i - 1] == '/') + return FALSE; + } else + return FALSE; + } + + /* A trailing '/' character is not allowed unless the path is the + * root path (a single '/' character). + */ + if (i > 1 && string[i - 1] == '/') + return FALSE; + + return TRUE; +} + +/* + * constructor() shouldn't be overriden in most cases, rather constructed() + * method is preferred and more useful. + * But, this serves as a workaround for bindings (use) calling the constructor() + * directly instead of nm_client_new() function, and neither providing + * construction properties. So, we fill "dbus-path" here if it was not specified + * (was set to default value (NULL)). + * + * It allows this python code: + * from gi.repository import NMClient + * nmclient = NMClient.Client() + * print nmclient.get_active_connections() + * + * instead of proper + * nmclient = NMClient.Client().new() + * + * Note: + * A nice overview of GObject construction is here: + * http://blogs.gnome.org/desrt/2012/02/26/a-gentle-introduction-to-gobject-con... + * It is much better explanation than the official docs + * http://developer.gnome.org/gobject/unstable/chapter-gobject.html#gobject-ins... + */ +static GObject* +constructor (GType type, + guint n_construct_params, + GObjectConstructParam *construct_params) +{ + GObject *object; + guint i; + const char *dbus_path; + + for (i = 0; i < n_construct_params; i++) { + if (strcmp (construct_params[i].pspec->name, NM_OBJECT_DBUS_PATH) == 0) { + dbus_path = g_value_get_string (construct_params[i].value); + if (dbus_path == NULL) { + g_value_set_static_string (construct_params[i].value, NM_DBUS_PATH); + } else { + if (!_nm_client_is_object_path (dbus_path)) { + g_warning ("Passsed D-Bus object path '%s' is invalid; using default '%s' instead", + dbus_path, NM_DBUS_PATH); + g_value_set_static_string (construct_params[i].value, NM_DBUS_PATH); + } + } + break; + } + } + + object = G_OBJECT_CLASS (nm_client_parent_class)->constructor (type, + n_construct_params, + construct_params); + + return object; +} + static void constructed (GObject *object) { @@ -1550,6 +1648,7 @@ nm_client_class_init (NMClientClass *client_class) g_type_class_add_private (client_class, sizeof (NMClientPrivate)); /* virtual methods */ + object_class->constructor = constructor; object_class->constructed = constructed; object_class->set_property = set_property; object_class->get_property = get_property; -- cgit v0.9.0.2-2-gbebe ++++++ nm-ensure_inited-fixing.patch ++++++ commit a4f450aa0bf087453a8d605db81a83368cbe3b0a Author: Dan Winship <danw@gnome.org> Date: Wed Mar 28 09:06:12 2012 -0400 libnm-glib: more ensure_inited() fixing We need to do _nm_object_ensure_inited() / _nm_remote_settings_ensure_inited() from the get_property() implementations; in most cases, get_property() just calls another accessor method (which will call _nm_object_ensure_inited()), but in a few places, it reads priv->whatever directly, so we need to make sure that it's valid. Index: NetworkManager-0.9.4.0/libnm-glib/nm-access-point.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-access-point.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-access-point.c @@ -464,6 +464,8 @@ get_property (GObject *object, { NMAccessPoint *ap = NM_ACCESS_POINT (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_FLAGS: g_value_set_uint (value, nm_access_point_get_flags (ap)); Index: NetworkManager-0.9.4.0/libnm-glib/nm-active-connection.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-active-connection.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-active-connection.c @@ -394,6 +394,8 @@ get_property (GObject *object, { NMActiveConnection *self = NM_ACTIVE_CONNECTION (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_CONNECTION: g_value_set_string (value, nm_active_connection_get_connection (self)); Index: NetworkManager-0.9.4.0/libnm-glib/nm-client.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-client.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-client.c @@ -1502,6 +1502,8 @@ get_property (GObject *object, NMClient *self = NM_CLIENT (object); NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_VERSION: g_value_set_string (value, nm_client_get_version (self)); Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-bond.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-bond.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-device-bond.c @@ -241,6 +241,8 @@ get_property (GObject *object, { NMDeviceBond *device = NM_DEVICE_BOND (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_bond_get_hw_address (device)); Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-bt.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-bt.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-device-bt.c @@ -303,6 +303,8 @@ get_property (GObject *object, { NMDeviceBt *device = NM_DEVICE_BT (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_bt_get_hw_address (device)); Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-ethernet.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-ethernet.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-device-ethernet.c @@ -311,6 +311,8 @@ get_property (GObject *object, { NMDeviceEthernet *device = NM_DEVICE_ETHERNET (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_ethernet_get_hw_address (device)); Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-infiniband.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-infiniband.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-device-infiniband.c @@ -250,6 +250,8 @@ get_property (GObject *object, { NMDeviceInfiniband *device = NM_DEVICE_INFINIBAND (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_infiniband_get_hw_address (device)); Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-modem.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-modem.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-device-modem.c @@ -205,6 +205,8 @@ get_property (GObject *object, { NMDeviceModem *self = NM_DEVICE_MODEM (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_MODEM_CAPS: g_value_set_uint (value, nm_device_modem_get_modem_capabilities (self)); Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-olpc-mesh.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-olpc-mesh.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-device-olpc-mesh.c @@ -257,6 +257,8 @@ get_property (GObject *object, { NMDeviceOlpcMesh *device = NM_DEVICE_OLPC_MESH (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_olpc_mesh_get_hw_address (device)); Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-vlan.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-vlan.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-device-vlan.c @@ -264,6 +264,8 @@ get_property (GObject *object, { NMDeviceVlan *device = NM_DEVICE_VLAN (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_vlan_get_hw_address (device)); Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-wifi.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-wifi.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-device-wifi.c @@ -501,6 +501,8 @@ get_property (GObject *object, { NMDeviceWifi *self = NM_DEVICE_WIFI (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_wifi_get_hw_address (self)); Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-wimax.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-wimax.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-device-wimax.c @@ -444,6 +444,8 @@ get_property (GObject *object, { NMDeviceWimax *self = NM_DEVICE_WIMAX (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_wimax_get_hw_address (self)); Index: NetworkManager-0.9.4.0/libnm-glib/nm-device.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-device.c @@ -313,6 +313,8 @@ get_property (GObject *object, NMDevice *device = NM_DEVICE (object); NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (device); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_DEVICE_TYPE: g_value_set_uint (value, nm_device_get_device_type (device)); Index: NetworkManager-0.9.4.0/libnm-glib/nm-dhcp4-config.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-dhcp4-config.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-dhcp4-config.c @@ -132,6 +132,8 @@ get_property (GObject *object, { NMDHCP4Config *self = NM_DHCP4_CONFIG (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_OPTIONS: g_value_set_boxed (value, nm_dhcp4_config_get_options (self)); Index: NetworkManager-0.9.4.0/libnm-glib/nm-dhcp6-config.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-dhcp6-config.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-dhcp6-config.c @@ -132,6 +132,8 @@ get_property (GObject *object, { NMDHCP6Config *self = NM_DHCP6_CONFIG (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_OPTIONS: g_value_set_boxed (value, nm_dhcp6_config_get_options (self)); Index: NetworkManager-0.9.4.0/libnm-glib/nm-ip4-config.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-ip4-config.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-ip4-config.c @@ -187,6 +187,8 @@ get_property (GObject *object, NMIP4Config *self = NM_IP4_CONFIG (object); NMIP4ConfigPrivate *priv = NM_IP4_CONFIG_GET_PRIVATE (self); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_ADDRESSES: nm_utils_ip4_addresses_to_gvalue (priv->addresses, value); Index: NetworkManager-0.9.4.0/libnm-glib/nm-ip6-config.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-ip6-config.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-ip6-config.c @@ -268,6 +268,8 @@ get_property (GObject *object, NMIP6Config *self = NM_IP6_CONFIG (object); NMIP6ConfigPrivate *priv = NM_IP6_CONFIG_GET_PRIVATE (self); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_ADDRESSES: nm_utils_ip6_addresses_to_gvalue (priv->addresses, value); Index: NetworkManager-0.9.4.0/libnm-glib/nm-remote-settings.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-remote-settings.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-remote-settings.c @@ -1061,6 +1061,8 @@ get_property (GObject *object, guint pro { NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (object); + _nm_remote_settings_ensure_inited (NM_REMOTE_SETTINGS (object)); + switch (prop_id) { case PROP_BUS: g_value_set_boxed (value, priv->bus); Index: NetworkManager-0.9.4.0/libnm-glib/nm-vpn-connection.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-vpn-connection.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-vpn-connection.c @@ -211,6 +211,8 @@ get_property (GObject *object, { NMVPNConnection *self = NM_VPN_CONNECTION (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_VPN_STATE: g_value_set_uint (value, nm_vpn_connection_get_vpn_state (self)); Index: NetworkManager-0.9.4.0/libnm-glib/nm-wimax-nsp.c =================================================================== --- NetworkManager-0.9.4.0.orig/libnm-glib/nm-wimax-nsp.c +++ NetworkManager-0.9.4.0/libnm-glib/nm-wimax-nsp.c @@ -247,6 +247,8 @@ get_property (GObject *object, { NMWimaxNsp *nsp = NM_WIMAX_NSP (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_NAME: g_value_set_string (value, nm_wimax_nsp_get_name (nsp)); ++++++ nm-gerror-must-be-null.patch ++++++ From: Jeff Mahoney <jeffm@suse.com> Subject: NetworkManager: GError * must be initialized to NULL References: bnc#757656 The glib GError API expects a GError ** that it uses to assign an API-allocated error descriptor. It expects that the calling code has initialized to the pointer to NULL. If the pointer is uninitialized, it will use whatever garbage is on the stack causing crashes or, depending on the caller, potential memory corruption. During testing with _MALLOC_PERTURB enabled, I encountered a crash due to this issue where error->message contained the perturb value. The following patch fixes the remaining call sites. Signed-off-by: Jeff Mahoney <jeffm@suse.com> --- libnm-glib/nm-object.c | 2 +- libnm-glib/nm-remote-settings.c | 2 +- src/nm-manager.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) --- a/libnm-glib/nm-object.c +++ b/libnm-glib/nm-object.c @@ -1248,7 +1248,7 @@ reload_complete (NMObject *object) NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (object); GSimpleAsyncResult *simple; GSList *results, *iter; - GError *error; + GError *error = NULL; results = priv->reload_results; priv->reload_results = NULL; --- a/libnm-glib/nm-remote-settings.c +++ b/libnm-glib/nm-remote-settings.c @@ -109,7 +109,7 @@ static void _nm_remote_settings_ensure_inited (NMRemoteSettings *self) { NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (self); - GError *error; + GError *error = NULL; if (!priv->inited) { if (!g_initable_init (G_INITABLE (self), NULL, &error)) { --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -789,7 +789,7 @@ pending_activation_check_authorized (Pen { char *error_desc = NULL; gulong sender_uid = G_MAXULONG; - GError *error; + GError *error = NULL; const char *wifi_permission = NULL; NMConnection *connection; NMSettings *settings; ++++++ nm-kernels-vs-nm-for-ipv6.patch ++++++
From 77de91e5a8b1c1993ae65c54b37e0411e78e6fe6 Mon Sep 17 00:00:00 2001 From: Dan Winship <danw@gnome.org> Date: Thu, 19 Apr 2012 18:27:12 +0000 Subject: core: don't fight with the kernel over the default IPv6 route
The kernel wants there to be a default route over every RA-ed IPv6 interface, and it gets confused and annoyed if we remove that default route and replace it with our own (causing it to effectively drop all further RAs on the floor, which is particularly bad if some of the information in the earlier RA had an expiration time). So, rather than replacing the kernel's default route(s), just add an additional one of our own, with a lower (ie, higher priority) metric. https://bugzilla.redhat.com/show_bug.cgi?id=785772 --- diff --git a/src/nm-system.c b/src/nm-system.c index 91153ec..4cebb13 100644 --- a/src/nm-system.c +++ b/src/nm-system.c @@ -1023,7 +1023,7 @@ add_ip6_route_to_gateway (int ifindex, const struct in6_addr *gw) } static int -replace_default_ip6_route (int ifindex, const struct in6_addr *gw) +add_default_ip6_route (int ifindex, const struct in6_addr *gw) { struct rtnl_route *route = NULL; struct nl_sock *nlh; @@ -1037,22 +1037,36 @@ replace_default_ip6_route (int ifindex, const struct in6_addr *gw) route = nm_netlink_route_new (ifindex, AF_INET6, 0, NMNL_PROP_SCOPE, RT_SCOPE_UNIVERSE, NMNL_PROP_TABLE, RT_TABLE_MAIN, + NMNL_PROP_PRIO, 1, NULL); g_return_val_if_fail (route != NULL, -ENOMEM); /* Add the new default route */ - err = nm_netlink_route6_add (route, &in6addr_any, 0, gw, NLM_F_REPLACE); - if (err == -NLE_EXIST) { - /* FIXME: even though we use NLM_F_REPLACE the kernel won't replace - * the route if it's the same. Suppress the pointless error. - */ + err = nm_netlink_route6_add (route, &in6addr_any, 0, gw, NLM_F_CREATE); + if (err == -NLE_EXIST) err = 0; - } rtnl_route_put (route); return err; } +static struct rtnl_route * +find_static_default_routes (struct rtnl_route *route, + struct nl_addr *dst, + const char *iface, + gpointer user_data) +{ + GList **def_routes = user_data; + + if ( nl_addr_get_prefixlen (dst) == 0 + && rtnl_route_get_protocol (route) == RTPROT_STATIC) { + rtnl_route_get (route); + *def_routes = g_list_prepend (*def_routes, route); + } + + return NULL; +} + /* * nm_system_replace_default_ip6_route * @@ -1062,12 +1076,35 @@ replace_default_ip6_route (int ifindex, const struct in6_addr *gw) gboolean nm_system_replace_default_ip6_route (int ifindex, const struct in6_addr *gw) { - struct rtnl_route *gw_route = NULL; + GList *def_routes, *iter; + struct rtnl_route *route, *gw_route = NULL; gboolean success = FALSE; char *iface; int err; - err = replace_default_ip6_route (ifindex, gw); + /* We can't just use NLM_F_REPLACE here like in the IPv4 case, because + * the kernel doesn't like it if we replace the default routes it + * creates. (See rh#785772.) So we delete any non-kernel default routes, + * and then add a new default route of our own with a lower metric than + * the kernel ones. + */ + def_routes = NULL; + nm_netlink_foreach_route (ifindex, AF_INET6, RT_SCOPE_UNIVERSE, TRUE, + find_static_default_routes, &def_routes); + for (iter = def_routes; iter; iter = iter->next) { + route = iter->data; + if (!nm_netlink_route_delete (route)) { + iface = nm_netlink_index_to_iface (ifindex); + nm_log_err (LOGD_DEVICE | LOGD_IP6, + "(%s): failed to delete existing IPv6 default route", + iface); + g_free (iface); + } + rtnl_route_put (route); + } + g_list_free (def_routes); + + err = add_default_ip6_route (ifindex, gw); if (err == 0) return TRUE; @@ -1091,7 +1128,7 @@ nm_system_replace_default_ip6_route (int ifindex, const struct in6_addr *gw) goto out; /* Try adding the original route again */ - err = replace_default_ip6_route (ifindex, gw); + err = add_default_ip6_route (ifindex, gw); if (err != 0) { nm_netlink_route_delete (gw_route); nm_log_err (LOGD_DEVICE | LOGD_IP6, -- cgit v0.9.0.2-2-gbebe ++++++ nm-null-out-on-dispose.patch ++++++ ++++ 671 lines (skipped) ++++++ nm-ppp-build-error.patch ++++++ commit 6b64e4db2f3c9cfc0e0e240cf0bc58f3b3e90c1f Author: Jiří Klimeš <jklimes@redhat.com> Date: Wed Mar 28 16:42:24 2012 +0200 ppp: don't use struct ifpppstatsreq that was removed from linux/ip_ppp.h in recent kernels. We can use ifreq and ppp_stats structures separately. They needn't have to to be packed in a structure. diff --git a/src/ppp-manager/nm-ppp-manager.c b/src/ppp-manager/nm-ppp-manager.c index 59698c3..243d2e1 100644 --- a/src/ppp-manager/nm-ppp-manager.c +++ b/src/ppp-manager/nm-ppp-manager.c @@ -304,18 +304,20 @@ monitor_cb (gpointer user_data) { NMPPPManager *manager = NM_PPP_MANAGER (user_data); NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (manager); - struct ifpppstatsreq req; + struct ifreq req; + struct ppp_stats stats; memset (&req, 0, sizeof (req)); - req.stats_ptr = (caddr_t) &req.stats; + memset (&stats, 0, sizeof (stats)); + req.ifr_data = (caddr_t) &stats; - strncpy (req.ifr__name, priv->ip_iface, sizeof (req.ifr__name)); + strncpy (req.ifr_name, priv->ip_iface, sizeof (req.ifr_name)); if (ioctl (priv->monitor_fd, SIOCGPPPSTATS, &req) < 0) { nm_log_warn (LOGD_PPP, "could not read ppp stats: %s", strerror (errno)); } else { g_signal_emit (manager, signals[STATS], 0, - req.stats.p.ppp_ibytes, - req.stats.p.ppp_obytes); + stats.p.ppp_ibytes, + stats.p.ppp_obytes); } return TRUE; ++++++ nm-probe-radius-server-cert.patch ++++++ ++++ 983 lines (skipped) ++++++ nm-remove-AP-always-on-device-disconnect.diff ++++++
From 3fca6c951b4db9de7c5337c5a36832b5ac1fe4e8 Mon Sep 17 00:00:00 2001 From: Ludwig Nussel <ludwig.nussel@suse.de> Date: Fri, 7 Oct 2011 14:48:26 +0200 Subject: [PATCH 1/3] remove AP always on device disconnect
This avoids immediate reconnect after link timeout to an AP that may no longer exist (down/out of range). This also avoids needless prompting for a password for the no longer existing AP. --- src/nm-device-wifi.c | 12 +++--------- 1 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/nm-device-wifi.c b/src/nm-device-wifi.c index 42080ae..e73ab92 100644 --- a/src/nm-device-wifi.c +++ b/src/nm-device-wifi.c @@ -1285,15 +1285,9 @@ real_deactivate (NMDevice *dev) set_current_ap (self, NULL); priv->rate = 0; - /* If the AP is 'fake', i.e. it wasn't actually found from - * a scan but the user tried to connect to it manually (maybe it - * was non-broadcasting or something) get rid of it, because 'fake' - * APs should only live for as long as we're connected to them. Fixes - * a bug where user-created Ad-Hoc APs are never removed from the scan - * list, because scanning is disabled while in Ad-Hoc mode (for stability), - * and thus the AP culling never happens. (bgo #569241) - */ - if (orig_ap && nm_ap_get_fake (orig_ap)) { + /* remove ap always. If it's still there it will re-appear on next + * scan. Avoids reconnect when is no longer available */ + if (orig_ap /* && nm_ap_get_fake (orig_ap) */) { access_point_removed (self, orig_ap); priv->ap_list = g_slist_remove (priv->ap_list, orig_ap); g_object_unref (orig_ap); -- 1.7.3.4 ++++++ nm-treat-not-saved-secrets-just-like-agent-owned-when-cl.diff ++++++
From b4ccaf268f1c32d09df8f678dcf4c296f9b2b213 Mon Sep 17 00:00:00 2001 From: Ludwig Nussel <ludwig.nussel@suse.de> Date: Tue, 27 Sep 2011 12:34:11 +0200 Subject: [PATCH 2/3] treat not saved secrets just like agent owned when cleaning
--- src/settings/nm-settings-connection.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c index cdad832..4cd9395 100644 --- a/src/settings/nm-settings-connection.c +++ b/src/settings/nm-settings-connection.c @@ -592,7 +592,7 @@ clear_nonagent_secrets (GHashTableIter *iter, NMSettingSecretFlags flags, gpointer user_data) { - if (flags != NM_SETTING_SECRET_FLAG_AGENT_OWNED) + if (!(flags & (NM_SETTING_SECRET_FLAG_AGENT_OWNED | NM_SETTING_SECRET_FLAG_NOT_SAVED))) g_hash_table_iter_remove (iter); return TRUE; } -- 1.7.3.4 ++++++ nm-wireless-strength-ipw2200.patch ++++++ commit 50435e1d5deff17233f1de73ee030a5982e9fd05 Author: Dan Williams <dcbw@redhat.com> Date: Fri May 4 14:26:10 2012 -0500 wifi: attempt to use same kernel API wpa_supplicant does (bgo #675017) Some drivers (ipw2x00) support capabilities reporting via nl80211 but absolutely nothing else. NM was only checking for capabilities when deciding whether or not to use nl80211 to communicate with the driver for associated AP, signal strength, and channel info, and that clearly fails with half-implementations of nl80211 in the kernel. Instead, match the logic that wpa_supplicant uses to determine whether to stick with nl80211 or fall back to WEXT. For these drivers NM will now fall back to WEXT and should return to the behavior we had with 0.9.2 for these devices. Index: NetworkManager-0.9.4.0/src/wifi/wifi-utils-nl80211.c =================================================================== --- NetworkManager-0.9.4.0.orig/src/wifi/wifi-utils-nl80211.c +++ NetworkManager-0.9.4.0/src/wifi/wifi-utils-nl80211.c @@ -535,7 +535,9 @@ struct nl80211_device_info { guint32 *freqs; int num_freqs; guint32 caps; - gboolean can_scan, can_scan_ssid; + gboolean can_scan; + gboolean can_scan_ssid; + gboolean supported; gboolean success; }; @@ -579,11 +581,24 @@ static int nl80211_wiphy_info_handler (s struct nlattr *nl_cmd; int i; - nla_for_each_nested (nl_cmd, - tb[NL80211_ATTR_SUPPORTED_COMMANDS], i) { - guint32 cmd = nla_get_u32 (nl_cmd); - if (cmd == NL80211_CMD_TRIGGER_SCAN) + nla_for_each_nested (nl_cmd, tb[NL80211_ATTR_SUPPORTED_COMMANDS], i) { + switch (nla_get_u32 (nl_cmd)) { + case NL80211_CMD_TRIGGER_SCAN: info->can_scan = TRUE; + break; + case NL80211_CMD_CONNECT: + case NL80211_CMD_AUTHENTICATE: + /* Only devices that support CONNECT or AUTH actually support + * 802.11, unlike say ipw2x00 (up to at least kernel 3.4) which + * has minimal info support, but no actual command support. + * This check mirrors what wpa_supplicant does to determine + * whether or not to use the nl80211 driver. + */ + info->supported = TRUE; + break; + default: + break; + } } } @@ -720,6 +735,13 @@ wifi_nl80211_init (const char *iface, in nl80211->parent.iface); goto error; } + + if (!device_info.supported) { + nm_log_dbg (LOGD_HW | LOGD_WIFI, + "(%s): driver does not fully support nl80211, falling back to WEXT", + nl80211->parent.iface); + goto error; + } if (!device_info.can_scan_ssid) { nm_log_err (LOGD_HW | LOGD_WIFI, ++++++ systemd-network-config.patch ++++++ Index: NetworkManager-0.9.3.990/data/NetworkManager.service.in =================================================================== --- NetworkManager-0.9.3.990.orig/data/NetworkManager.service.in +++ NetworkManager-0.9.3.990/data/NetworkManager.service.in @@ -1,13 +1,14 @@ [Unit] Description=Network Manager After=syslog.target -Wants=network.target -Before=network.target +Wants=remote-fs.target network.target [Service] Type=dbus BusName=org.freedesktop.NetworkManager ExecStart=@sbindir@/NetworkManager --no-daemon +EnvironmentFile=/etc/sysconfig/network/config +ExecStartPre=/usr/bin/test "x${NETWORKMANAGER}" = xyes # Suppress stderr to eliminate duplicated messages in syslog. NM calls openlog() # with LOG_PERROR when run in foreground. But systemd redirects stderr to # syslog by default, which results in logging each message twice. @@ -15,4 +16,4 @@ StandardError=null [Install] WantedBy=multi-user.target -Alias=dbus-org.freedesktop.NetworkManager.service +Also=NetworkManager-wait-online.service Index: NetworkManager-0.9.3.990/data/NetworkManager-wait-online.service.in =================================================================== --- NetworkManager-0.9.3.990.orig/data/NetworkManager-wait-online.service.in +++ NetworkManager-0.9.3.990/data/NetworkManager-wait-online.service.in @@ -7,7 +7,9 @@ Before=network.target [Service] Type=oneshot -ExecStart=@bindir@/nm-online -q --timeout=30 +Environment=NM_ONLINE_TIMEOUT=0 +EnvironmentFile=-/etc/sysconfig/network/config +ExecStart=/bin/bash -c "if [ ${NM_ONLINE_TIMEOUT} -gt 0 ]; then @bindir@/nm-online -q --timeout=${NM_ONLINE_TIMEOUT} ; else /bin/true ; fi" [Install] WantedBy=network.target -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org