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 - [email protected]
+
+- 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 - [email protected]
+
+- Remove dbus system-service for NetworkManager, to prevent
+ warnings about it not being running (bnc#780911)
+
+-------------------------------------------------------------------
+Mon Sep 17 07:07:45 UTC 2012 - [email protected]
+
+- 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 - [email protected]
+
+- Add nm-wireless-strength.patch, fix wireless status for ipw2200.
+ (bnc#755541, bgo#675017).
+
+-------------------------------------------------------------------
+Wed Jul 18 04:37:40 UTC 2012 - [email protected]
+
+- 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 - [email protected]
+
+- 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 - [email protected]
+
+- 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 - [email protected]
+
+- Add nm-ensure_inited-fixing.patch, ensure initialization
+ in get_property() calls.(bnc#764290).
+
+-------------------------------------------------------------------
+Tue Apr 17 22:13:49 UTC 2012 - [email protected]
+
+- Add nm-gerror-must-be-null.patch: GError * must be initialized to
+ NULL (bnc#757656).
+
+-------------------------------------------------------------------
+Sat Mar 24 09:29:40 UTC 2012 - [email protected]
+
+- 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 - [email protected]
+
+- 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 - [email protected]
+
+- Add NetworkManager Supplements to
+ NetworkManager-device-plugin-wimax so that it gets automatically
+ installed by default.
+
+-------------------------------------------------------------------
+Fri Mar 2 19:23:53 UTC 2012 - [email protected]
+
+- 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 - [email protected]
+
+- 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 - [email protected]
+
+- 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 - [email protected]
+
+- 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 - [email protected]
+
+- 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 - [email protected]
+
+- Update systemd-network-config.patch to handle NM_TIMEOUT value 0
+ as no timeout (bnc#730628).
+
+-------------------------------------------------------------------
+Tue Nov 15 14:07:06 UTC 2011 - [email protected]
+
+- Really enable parallel build: fix typo smp_flags => smp_mflags.
+
+-------------------------------------------------------------------
+Sat Nov 12 19:06:06 UTC 2011 - [email protected]
+
+- 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 - [email protected]
+
+- 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
[email protected] -- 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 [email protected]
-- 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 [email protected]
-- 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
[email protected] -- GError * must be initialized to NULL
Patch5: nm-gerror-must-be-null.patch
# PATCH-FIX-UPSTREAM nm-ensure_inited-fixing.patch bnc#764290
[email protected] -- more ensure_inited() fixing.
Patch6: nm-ensure_inited-fixing.patch
# PATCH-FIX-UPSTREAM nm-ppp-build-error.patch [email protected] -- 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 [email protected] -- 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 [email protected]
-- 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
[email protected] -- 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
[email protected] -- 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 ([email protected]).
#/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 <[email protected]>
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š <[email protected]>
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-construction
+ * It is much better explanation than the official docs
+ *
http://developer.gnome.org/gobject/unstable/chapter-gobject.html#gobject-instantiation
+ */
+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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
---
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 <[email protected]>
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š <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]