Merge lp:~sergiusens/phablet-extras/network-manager-packaging into lp:phablet-extras/network-manager-packaging

Proposed by Sergio Schvezov
Status: Superseded
Proposed branch: lp:~sergiusens/phablet-extras/network-manager-packaging
Merge into: lp:phablet-extras/network-manager-packaging
Diff against target: 2884 lines (+617/-1057)
36 files modified
debian/README.source (+1/-1)
debian/changelog (+184/-0)
debian/compat (+1/-1)
debian/control (+31/-31)
debian/gir1.2-networkmanager-1.0.install (+1/-1)
debian/libnm-glib-dev.install (+3/-3)
debian/libnm-glib-vpn-dev.install (+2/-2)
debian/libnm-glib-vpn1.install (+1/-1)
debian/libnm-glib4.install (+1/-1)
debian/libnm-glib4.symbols (+12/-0)
debian/libnm-util-dev.install (+3/-3)
debian/libnm-util2.install (+1/-1)
debian/libnm-util2.symbols (+30/-0)
debian/network-manager-dev.install (+1/-1)
debian/network-manager-dispatcher.script (+0/-4)
debian/network-manager.NEWS (+1/-1)
debian/network-manager.dirs (+1/-0)
debian/network-manager.install (+4/-4)
debian/patches/50_gettext_macros.patch (+0/-14)
debian/patches/70_lp145653_no_sigaction_for_crashes.patch (+0/-37)
debian/patches/add-veth-support.diff (+63/-54)
debian/patches/add_sendsigs_omissions.patch (+13/-38)
debian/patches/adhoc_use_wpa_rsn_part1.patch (+18/-18)
debian/patches/adhoc_use_wpa_rsn_part2.patch (+52/-58)
debian/patches/dhcpv6-duid-support.patch (+0/-553)
debian/patches/dns-dnsmasq-interface-and-dbus-path.patch (+28/-42)
debian/patches/dnsmasq-dbus-updates.patch (+76/-67)
debian/patches/dnsmasq-vpn-dns-filtering.patch (+13/-38)
debian/patches/fix-vapigen-detection.patch (+1/-15)
debian/patches/lp859373_upgrade_policy_fix.patch (+7/-3)
debian/patches/lp990011_use_tempaddr_sysctl_default.patch (+13/-31)
debian/patches/nm-change-dnsmasq-parameters.diff (+9/-9)
debian/patches/quit_dhclient_on_exit.patch (+3/-3)
debian/patches/series (+2/-3)
debian/rules (+22/-10)
debian/tests/dnsmasq (+19/-9)
To merge this branch: bzr merge lp:~sergiusens/phablet-extras/network-manager-packaging
Reviewer Review Type Date Requested Status
Ubuntu Phablet Team Pending
Review via email: mp+155388@code.launchpad.net

Commit message

Updating/Merging latest from lp:network-manager/ubuntu
Releasing for raring phablet

Description of the change

This will only be pushed to raring.

Updates have been brought in manually from lp:network-manager/ubuntu as their is no common ancestry.

We need to determine how this is going to be landed in S.

To post a comment you must log in.

Unmerged revisions

586. By Sergio Schvezov

* Phablet raring build
* Merge from lp:network-manager/ubuntu

585. By Tony Espy

Added code to nm-manager to ignore Android p2p0 wireless interfaces. Fixes: https://bugs.launchpad.net/bugs/1099983.

Approved by Sergio Schvezov, Ricardo Salveti.

584. By Tony Espy

Disable PolKit, session-tracking and unit tests.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/README.source'
2--- debian/README.source 2010-10-22 13:35:58 +0000
3+++ debian/README.source 2013-03-26 02:35:23 +0000
4@@ -18,7 +18,7 @@
5 I. Packaging overview
6
7 + Obtaining latest packaging:
8- bzr branch lp:~network-manager/network-manager/ubuntu.head
9+ bzr branch lp:~network-manager/network-manager/ubuntu
10
11 + this gives you a debian/ only bzr branch
12
13
14=== modified file 'debian/changelog'
15--- debian/changelog 2013-01-22 20:45:29 +0000
16+++ debian/changelog 2013-03-26 02:35:23 +0000
17@@ -1,3 +1,187 @@
18+network-manager (0.9.8.0-0ubuntu2phablet1) raring; urgency=low
19+
20+ * Phablet raring build
21+ * Merge from lp:network-manager/ubuntu
22+
23+ -- Sergio Schvezov <sergio.schvezov@canonical.com> Mon, 25 Mar 2013 23:18:11 -0300
24+
25+network-manager (0.9.8.0-0ubuntu2) raring; urgency=low
26+
27+ * debian/patches/git_machine_id_duid_gen_1d14d17.patch: dhcp: look harder
28+ for machine-id, and generate random DUID if it doesn't exist. (LP: #1153266)
29+
30+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Mon, 25 Mar 2013 10:39:32 -0400
31+
32+network-manager (0.9.8.0-0ubuntu1) raring; urgency=low
33+
34+ * New upstream release.
35+ * Resync package with Debian:
36+ - debian/libnm*.install: Fix paths for vala vapi files: install to
37+ /usr/share/vala, not /usr/share/vala-0.18...
38+ - debian/network-manager-dispatcher.script: clean-up; hostname is still not
39+ triggering any action, but doesn't need to be listed twice.
40+ - debian/network-manager.NEWS: sync with Debian.
41+ - debian/network-manager.dirs: add /etc/NetworkManager/VPN/, used to detect
42+ newly installed VPN plugins.
43+ - debian/control: update Build-Depends, Depends, Architecture fields.
44+ - debian/network-manager.install: reorganize entries to match Debian.
45+ * debian/patches/dnsmasq-vpn-dns-filtering.patch: refresh.
46+ * debian/patches/dnsmasq-dbus-updates.patch: refresh.
47+ * debian/patches/dns-dnsmasq-interface-and-dbus-path.patch: refresh.
48+ * debian/patches/adhoc_use_wpa_rsn_part1.patch: refresh.
49+ * debian/patches/adhoc_use_wpa_rsn_part2.patch: refresh.
50+ * debian/patches/fix-vapigen-detection.patch: drop passing the wanted API to
51+ VAPIGEN_CHECK, as that causes files to get installed in the versioned vapi
52+ directory as well, which should be reserved for what ships with vala.
53+ * debian/control: Modernize:
54+ - Bump to debhelper 9.
55+ - Drop Breaks/Replaces for libnm-glib2.
56+ - Bump Standards-Version.
57+ * debian/compat: bump to compat level 9.
58+ * debian/rules:
59+ - Cover the "release" case where we don't have autogen.sh -- run the same
60+ commands it would run.
61+ - Pass --disable-silent-rules to configure -- I want to see all the gory
62+ details, thanks.
63+ - Resync other configure flags with Debian's.
64+ - Use -delete for the find call to remove .la files.
65+ * debian/libnm-glib4.symbols, debian/libnm-util2.symbols: add new symbols.
66+ * debian/*.install: update paths for multiarch, add bash completion for the
67+ nmcli binary.
68+
69+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Thu, 07 Mar 2013 15:58:27 -0500
70+
71+network-manager (0.9.7.995+git201301311547.17123fc-0ubuntu1) raring; urgency=low
72+
73+ * upstream snapshot 2013-01-31 15:47:41 (GMT)
74+ + 17123fcc612e5704d055d012a0298c954609754a
75+
76+ [ Marius Kotsbak ]
77+ * debian/rules: enable connectivity check again, which is now optional,
78+ with configure option "--enable-concheck".
79+
80+ [ Mathieu Trudel-Lapierre ]
81+ * debian/patches/70_lp145653_no_sigaction_for_crashes.patch: dropped, applied
82+ upstream.
83+ * debian/patches/dhcpv6-duid-support.patch: dropped, applied upstream.
84+ * debian/rules: drop --with-distro; which is no longer needed.
85+ * debian/network-manager.install: drop nm-crash-logger, which is no longer
86+ being built -- internal crash handling was removed.
87+ * debian/libnm-glib4.symbols: new symbols:
88+ + nm_client_get_logging@Base 0.9.7.995+git201301311547.17123fc
89+ + nm_client_set_logging@Base 0.9.7.995+git201301311547.17123fc
90+ + nm_device_wifi_request_scan_simple@Base 0.9.7.995+git201301311547.17123fc
91+ * debian/tests/dnsmasq: improve the test in hope to better catch the state
92+ of dnsmasq when started by NetworkManager.
93+
94+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Fri, 01 Feb 2013 19:12:05 -0500
95+
96+network-manager (0.9.6.0+git201301021750.e78c3e8-0ubuntu3) raring; urgency=low
97+
98+ * debian/patches/bridge_ignore_without_connections.patch: properly handle the
99+ cases where we should still keep a bridge device unmanaged after resume
100+ from suspend.
101+
102+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Mon, 21 Jan 2013 18:59:03 -0500
103+
104+network-manager (0.9.6.0+git201301021750.e78c3e8-0ubuntu2) raring; urgency=low
105+
106+ * debian/patches/bridge_ignore_without_connections.patch: Ignore bridge
107+ devices that don't have configured connections, so as not to compete with
108+ lxc or libvirt and trample their config. (LP: #1099155)
109+
110+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Fri, 18 Jan 2013 15:20:08 -0500
111+
112+network-manager (0.9.6.0+git201301021750.e78c3e8-0ubuntu1) raring; urgency=low
113+
114+ [ Mathieu Trudel-Lapierre ]
115+ * upstream snapshot 2013-01-02 17:50:32 (GMT)
116+ + e78c3e83d2e0b49641c9d484e0b35b3c6ff9f0db
117+ * debian/patches/dhcpv6-duid-support.patch: refreshed.
118+ * debian/patches/nm-change-dnsmasq-parameters.diff: refreshed.
119+ * debian/patches/dnsmasq-vpn-dns-filtering.patch: refreshed.
120+ * debian/patches/lp990011_use_tempaddr_sysctl_default.patch: refreshed.
121+ * debian/patches/add-veth-support.diff: refreshed.
122+ * debian/patches/dnsmasq-dbus-updates.patch: refreshed.
123+ * debian/patches/dns-dnsmasq-interface-and-dbus-path.patch: refreshed.
124+ * debian/patches/adhoc_use_wpa_rsn_part2.patch: refreshed.
125+ * debian/patches/send_hostname_for_default_connection.patch: dropped, applied
126+ upstream.
127+ * debian/patches/fix-vapigen-detection.patch: refreshed.
128+ * debian/patches/50_gettext_macros.patch: dropped.
129+ * debian/rules: simplify call to dh_autoreconf; just run autogen.sh.
130+ * debian/libnm-glib4.symbols: add symbols:
131+ + nm_device_bridge_error_get_type@Base
132+ + nm_device_bridge_error_quark@Base
133+ + nm_device_bridge_get_carrier@Base
134+ + nm_device_bridge_get_hw_address@Base
135+ + nm_device_bridge_get_slaves@Base
136+ + nm_device_bridge_get_type@Base
137+ + nm_device_bridge_new@Base
138+ * debian/libnm-util2.symbols: add symbols:
139+ + nm_connection_get_setting_bridge@Base
140+ + nm_connection_get_setting_bridge_port@Base
141+ + nm_setting_bridge_error_get_type@Base
142+ + nm_setting_bridge_error_quark@Base
143+ + nm_setting_bridge_get_*@Base
144+ + nm_setting_bridge_new@Base
145+ + nm_setting_bridge_port_error_get_type@Base
146+ + nm_setting_bridge_port_error_quark@Base
147+ + nm_setting_bridge_port_get_*@Base
148+ + nm_setting_bridge_port_new@Base
149+ + nm_setting_ip6_config_get_dhcp_hostname@Base
150+
151+ [ Thomas Bechtold ]
152+ * debian/README.source: fix branchname for ubuntu packaging
153+
154+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Mon, 07 Jan 2013 10:45:49 -0500
155+
156+network-manager (0.9.6.0+git201211131441.e9e2c56-0ubuntu3) raring; urgency=low
157+
158+ * debian/patches/send_hostname_for_default_connection.patch: always send
159+ the hostname to the DHCP server if we're activating a default, automatic
160+ wired connection. (LP: #1084064)
161+
162+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Tue, 04 Dec 2012 12:45:24 -0500
163+
164+network-manager (0.9.6.0+git201211131441.e9e2c56-0ubuntu2) raring; urgency=low
165+
166+ * debian/rules: give tests (run by dbus-test-runner) a timeout of 5 minutes.
167+
168+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Mon, 19 Nov 2012 15:42:45 -0500
169+
170+network-manager (0.9.6.0+git201211131441.e9e2c56-0ubuntu1) raring; urgency=low
171+
172+ * upstream snapshot 2012-11-13 14:41:20 (GMT)
173+ + e9e2c5645f869f0671c29f14bf99793787c0272c
174+ * debian/patches/dhcpv6-duid-support.patch:
175+ - refresh patch to properly apply to git master.
176+ - Fix some logic issues when failing to open a default lease file.
177+ * debian/patches/lp859373_upgrade_policy_fix.patch: refreshed.
178+ * debian/patches/nm-change-dnsmasq-parameters.diff: refreshed.
179+ * debian/patches/dnsmasq-vpn-dns-filtering.patch: refreshed.
180+ * debian/patches/add_sendsigs_omissions.patch: refreshed.
181+ * debian/patches/lp990011_use_tempaddr_sysctl_default.patch: refreshed.
182+ * debian/patches/dns-dnsmasq-interface-and-dbus-path.patch: refreshed.
183+ * debian/patches/adhoc_use_wpa_rsn_part1.patch: refreshed.
184+ * debian/patches/adhoc_use_wpa_rsn_part2.patch: refreshed.
185+ * debian/patches/quit_dhclient_on_exit.patch: refreshed.
186+ * debian/patches/dnsmasq-dbus-updates.patch: refreshed.
187+ * debian/libnm-util2.symbols: add new symbols:
188+ + nm_setting_connection_add_secondary@Base
189+ + nm_setting_connection_get_num_secondaries@Base
190+ + nm_setting_connection_get_secondary@Base
191+ + nm_setting_connection_remove_secondary@Base
192+ + nm_utils_ap_mode_security_valid@Base
193+ + nm_utils_iface_valid_name@Base
194+ + nm_utils_is_uuid@Base
195+ * debian/libnm-glib4.symbols: add:
196+ + nm_device_bond_get_slaves@Base
197+ * debian/tests/dnsmasq: bump delay after setting up dnsmasq to 30 seconds, to
198+ give enough time to NM to settle down and be connected.
199+
200+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Mon, 19 Nov 2012 14:16:51 -0500
201+
202 network-manager (0.9.6.0-0ubuntu7phablet2) quantal; urgency=low
203
204 * debian/patches/lp1099983_ignore-p2p-wifi-devices.patch:
205
206=== modified file 'debian/compat'
207--- debian/compat 2011-05-03 19:11:21 +0000
208+++ debian/compat 2013-03-26 02:35:23 +0000
209@@ -1,1 +1,1 @@
210-8
211+9
212
213=== modified file 'debian/control'
214--- debian/control 2012-08-08 15:13:22 +0000
215+++ debian/control 2013-03-26 02:35:23 +0000
216@@ -5,7 +5,7 @@
217 XSBC-Original-Maintainer: Utopia Maintenance Team <pkg-utopia-maintainers@lists.alioth.debian.org>
218 Uploaders: Michael Biebl <biebl@debian.org>
219 Build-Depends:
220- debhelper (>= 8.1.0~),
221+ debhelper (>= 9),
222 dh-autoreconf,
223 autotools-dev,
224 pkg-config,
225@@ -15,34 +15,33 @@
226 libiw-dev(>= 27+28pre9),
227 libglib2.0-dev (>= 2.22),
228 libsoup2.4-dev (>= 2.26),
229- libnl-3-dev,
230- libnl-genl-3-dev,
231- libnl-route-3-dev,
232+ libnl-3-dev (>= 3.2.7),
233+ libnl-route-3-dev (>= 3.2.7),
234+ libnl-genl-3-dev (>= 3.2.7),
235 ppp-dev (>= 2.4.5),
236 libpolkit-gobject-1-dev,
237 libnss3-dev,
238 uuid-dev,
239- libudev-dev (>= 147),
240- libgudev-1.0-dev,
241- libnotify-dev (>= 0.3),
242- isc-dhcp-client (>= 4.1.1-P1-4),
243+ libudev-dev (>= 165),
244+ libgudev-1.0-dev (>= 165),
245+ libgirepository1.0-dev (>= 0.10.7-1~),
246+ gobject-introspection (>= 0.9.12-4~),
247 gtk-doc-tools,
248+ isc-dhcp-client (>= 4.1.1-P1-4),
249 dbus-test-runner,
250 dbus,
251- libgirepository1.0-dev (>= 0.9.12),
252- gobject-introspection (>= 0.9.12-4~),
253 valac-0.18 (>= 0.17.1.24),
254 python-gobject-2,
255 python-dbus,
256 gir1.2-glib-2.0,
257 gir1.2-freedesktop
258-Standards-Version: 3.9.3
259+Standards-Version: 3.9.4
260 Vcs-Bzr: https://code.launchpad.net/~network-manager/network-manager/ubuntu
261 Homepage: http://www.gnome.org/projects/NetworkManager/
262 XS-Testsuite: autopkgtest
263
264 Package: network-manager
265-Architecture: any
266+Architecture: linux-any
267 Pre-Depends: ${misc:Pre-Depends}
268 Depends:
269 ${shlibs:Depends},
270@@ -61,14 +60,17 @@
271 network-manager-gnome | network-manager-kde | plasma-widget-networkmanagement,
272 ppp (>= 2.4.5),
273 iptables,
274- modemmanager
275+ modemmanager,
276+ crda
277 Suggests: avahi-autoipd, python
278 Breaks:
279- network-manager-gnome (<< 0.8.99),
280- network-manager-kde (<< 1:0.9~~),
281- network-manager-openvpn (<< 0.8.99),
282- network-manager-vpnc (<< 0.8.99),
283- network-manager-pptp (<< 0.8.99),
284+ network-manager-gnome (<< 0.9),
285+ network-manager-openvpn (<< 0.9),
286+ network-manager-vpnc (<< 0.9),
287+ network-manager-pptp (<< 0.9),
288+ network-manager-openconnect (<< 0.9),
289+ network-manager-kde (<< 1:0.9),
290+ plasma-widget-networkmanagement (<< 0.9~),
291 ppp (<< 2.4.5)
292 Conflicts: connman
293 Description: network management framework (daemon and userspace tools)
294@@ -87,7 +89,7 @@
295 address configuration.
296
297 Package: network-manager-dev
298-Architecture: any
299+Architecture: linux-any
300 Section: devel
301 Depends: ${misc:Depends}
302 Description: network management framework (development files)
303@@ -103,7 +105,7 @@
304
305 Package: libnm-glib4
306 Section: libs
307-Architecture: any
308+Architecture: linux-any
309 Depends:
310 ${shlibs:Depends},
311 ${misc:Depends}
312@@ -119,13 +121,13 @@
313
314 Package: libnm-glib-dev
315 Section: libdevel
316-Architecture: any
317+Architecture: linux-any
318 Depends:
319 libnm-glib4 (= ${binary:Version}),
320 gir1.2-networkmanager-1.0 (= ${binary:Version}),
321 ${misc:Depends},
322 libnm-util-dev,
323- network-manager-dev (>= 0.9.6.0),
324+ network-manager-dev,
325 libglib2.0-dev,
326 libdbus-glib-1-dev
327 Description: network management framework (GLib interface)
328@@ -140,12 +142,10 @@
329
330 Package: libnm-glib-vpn1
331 Section: libs
332-Architecture: any
333+Architecture: linux-any
334 Depends:
335 ${shlibs:Depends},
336 ${misc:Depends}
337-Breaks: libnm-glib2
338-Replaces: libnm-glib2
339 Description: network management framework (GLib VPN shared library)
340 NetworkManager is a system network service that manages your network devices
341 and connections, attempting to keep active network connectivity when
342@@ -158,7 +158,7 @@
343
344 Package: libnm-glib-vpn-dev
345 Section: libdevel
346-Architecture: any
347+Architecture: linux-any
348 Depends:
349 libnm-glib-vpn1 (= ${binary:Version}),
350 ${misc:Depends},
351@@ -175,7 +175,7 @@
352
353 Package: libnm-util2
354 Section: libs
355-Architecture: any
356+Architecture: linux-any
357 Depends:
358 ${shlibs:Depends},
359 ${misc:Depends}
360@@ -191,7 +191,7 @@
361
362 Package: libnm-util-dev
363 Section: libdevel
364-Architecture: any
365+Architecture: linux-any
366 Depends:
367 libnm-util2 (= ${binary:Version}),
368 gir1.2-networkmanager-1.0 (= ${binary:Version}),
369@@ -208,7 +208,7 @@
370 This package contains header and development files.
371
372 Package: network-manager-dbg
373-Architecture: any
374+Architecture: linux-any
375 Section: debug
376 Priority: extra
377 Depends:
378@@ -224,8 +224,8 @@
379 This package contains detached debugging symbols.
380
381 Package: gir1.2-networkmanager-1.0
382-Section: libs
383-Architecture: any
384+Section: introspection
385+Architecture: linux-any
386 Depends: ${gir:Depends}, ${shlibs:Depends}, ${misc:Depends}
387 Description: GObject introspection data for NetworkManager
388 NetworkManager is a system network service that manages your network devices
389
390=== modified file 'debian/gir1.2-networkmanager-1.0.install'
391--- debian/gir1.2-networkmanager-1.0.install 2011-05-25 18:59:17 +0000
392+++ debian/gir1.2-networkmanager-1.0.install 2013-03-26 02:35:23 +0000
393@@ -1,1 +1,1 @@
394-debian/tmp/usr/lib/girepository-1.0/
395+debian/tmp/usr/lib/*/girepository-1.0/ usr/lib/
396
397=== modified file 'debian/libnm-glib-dev.install'
398--- debian/libnm-glib-dev.install 2012-08-07 15:22:28 +0000
399+++ debian/libnm-glib-dev.install 2013-03-26 02:35:23 +0000
400@@ -1,5 +1,5 @@
401-debian/tmp/usr/lib/pkgconfig/libnm-glib.pc
402-debian/tmp/usr/lib/libnm-glib.so
403+debian/tmp/usr/lib/*/pkgconfig/libnm-glib.pc
404+debian/tmp/usr/lib/*/libnm-glib.so
405 debian/tmp/usr/include/libnm-glib/libnm_glib.h
406 debian/tmp/usr/include/libnm-glib/nm-object.h
407 debian/tmp/usr/include/libnm-glib/nm-client.h
408@@ -16,4 +16,4 @@
409 debian/tmp/usr/include/libnm-glib/nm-glib-enum-types.h
410 debian/tmp/usr/share/gtk-doc/html/libnm-glib/
411 debian/tmp/usr/share/gir-1.0/NMClient-1.0.gir
412-debian/tmp/usr/share/vala-0.18/vapi/libnm-glib.*
413+debian/tmp/usr/share/vala/vapi/libnm-glib.*
414
415=== modified file 'debian/libnm-glib-vpn-dev.install'
416--- debian/libnm-glib-vpn-dev.install 2012-02-17 23:39:02 +0000
417+++ debian/libnm-glib-vpn-dev.install 2013-03-26 02:35:23 +0000
418@@ -1,4 +1,4 @@
419-debian/tmp/usr/lib/pkgconfig/libnm-glib-vpn.pc
420-debian/tmp/usr/lib/libnm-glib-vpn.so
421+debian/tmp/usr/lib/*/pkgconfig/libnm-glib-vpn.pc
422+debian/tmp/usr/lib/*/libnm-glib-vpn.so
423 debian/tmp/usr/include/libnm-glib/nm-vpn-plugin*
424 debian/tmp/usr/include/libnm-glib/nm-vpn-enum-types.h
425
426=== modified file 'debian/libnm-glib-vpn1.install'
427--- debian/libnm-glib-vpn1.install 2011-03-30 14:56:25 +0000
428+++ debian/libnm-glib-vpn1.install 2013-03-26 02:35:23 +0000
429@@ -1,1 +1,1 @@
430-debian/tmp/usr/lib/libnm-glib-vpn.so.*
431+debian/tmp/usr/lib/*/libnm-glib-vpn.so.*
432
433=== modified file 'debian/libnm-glib4.install'
434--- debian/libnm-glib4.install 2011-05-25 18:59:17 +0000
435+++ debian/libnm-glib4.install 2013-03-26 02:35:23 +0000
436@@ -1,1 +1,1 @@
437-debian/tmp/usr/lib/libnm-glib.so.*
438+debian/tmp/usr/lib/*/libnm-glib.so.*
439
440=== modified file 'debian/libnm-glib4.symbols'
441--- debian/libnm-glib4.symbols 2012-06-08 15:40:55 +0000
442+++ debian/libnm-glib4.symbols 2013-03-26 02:35:23 +0000
443@@ -35,6 +35,7 @@
444 nm_client_get_device_by_iface@Base 0.8.9997+git.20110721t045648.36db194
445 nm_client_get_device_by_path@Base 0.7.999
446 nm_client_get_devices@Base 0.7.999
447+ nm_client_get_logging@Base 0.9.7.995+git201301311547.17123fc
448 nm_client_get_manager_running@Base 0.7.999
449 nm_client_get_permission_result@Base 0.8.2
450 nm_client_get_state@Base 0.7.999
451@@ -47,6 +48,7 @@
452 nm_client_new_finish@Base 0.9.2.0+git201202060518.95b0b72
453 nm_client_permission_get_type@Base 0.9.2.0+git201202161854.8572ecf
454 nm_client_permission_result_get_type@Base 0.9.2.0+git201202161854.8572ecf
455+ nm_client_set_logging@Base 0.9.7.995+git201301311547.17123fc
456 nm_client_sleep@Base 0.7.999
457 nm_client_wimax_get_enabled@Base 0.8.998
458 nm_client_wimax_hardware_get_enabled@Base 0.8.998
459@@ -66,8 +68,16 @@
460 nm_device_bond_error_quark@Base 0.9.4.0~git201203162258.69247a0
461 nm_device_bond_get_carrier@Base 0.9.3.995+git201203081848.bba834f
462 nm_device_bond_get_hw_address@Base 0.9.3.995+git201203081848.bba834f
463+ nm_device_bond_get_slaves@Base 0.9.6.0+git201211131441.e9e2c56
464 nm_device_bond_get_type@Base 0.9.3.995+git201203081848.bba834f
465 nm_device_bond_new@Base 0.9.3.995+git201203081848.bba834f
466+ nm_device_bridge_error_get_type@Base 0.9.6.0+git201212071413.8a9759a
467+ nm_device_bridge_error_quark@Base 0.9.6.0+git201212071413.8a9759a
468+ nm_device_bridge_get_carrier@Base 0.9.6.0+git201212071413.8a9759a
469+ nm_device_bridge_get_hw_address@Base 0.9.6.0+git201212071413.8a9759a
470+ nm_device_bridge_get_slaves@Base 0.9.6.0+git201212071413.8a9759a
471+ nm_device_bridge_get_type@Base 0.9.6.0+git201212071413.8a9759a
472+ nm_device_bridge_new@Base 0.9.6.0+git201212071413.8a9759a
473 nm_device_bt_error_get_type@Base 0.9.4.0~git201203162258.69247a0
474 nm_device_bt_error_quark@Base 0.9.4.0~git201203162258.69247a0
475 nm_device_bt_get_capabilities@Base 0.7.999
476@@ -89,6 +99,7 @@
477 nm_device_filter_connections@Base 0.8.998
478 nm_device_get_active_connection@Base 0.8.9997
479 nm_device_get_autoconnect@Base 0.9.4.0+git201206041025.716a09d
480+ nm_device_get_available_connections@Base 0.9.8.0
481 nm_device_get_capabilities@Base 0.7.999
482 nm_device_get_device_type@Base 0.8.998
483 nm_device_get_dhcp4_config@Base 0.7.999
484@@ -147,6 +158,7 @@
485 nm_device_wifi_get_permanent_hw_address@Base 0.8.2
486 nm_device_wifi_get_type@Base 0.7.999
487 nm_device_wifi_new@Base 0.7.999
488+ nm_device_wifi_request_scan_simple@Base 0.9.7.995+git201301311547.17123fc
489 nm_device_wimax_error_get_type@Base 0.9.4.0~git201203162258.69247a0
490 nm_device_wimax_error_quark@Base 0.9.4.0~git201203162258.69247a0
491 nm_device_wimax_get_active_nsp@Base 0.8.998
492
493=== modified file 'debian/libnm-util-dev.install'
494--- debian/libnm-util-dev.install 2012-08-07 15:22:28 +0000
495+++ debian/libnm-util-dev.install 2013-03-26 02:35:23 +0000
496@@ -1,5 +1,5 @@
497-debian/tmp/usr/lib/pkgconfig/libnm-util.pc
498-debian/tmp/usr/lib/libnm-util.so
499+debian/tmp/usr/lib/*/pkgconfig/libnm-util.pc
500+debian/tmp/usr/lib/*/libnm-util.so
501 debian/tmp/usr/include/NetworkManager/nm-connection.h
502 debian/tmp/usr/include/NetworkManager/nm-utils.h
503 debian/tmp/usr/include/NetworkManager/nm-utils-enum-types.h
504@@ -7,4 +7,4 @@
505 debian/tmp/usr/include/NetworkManager/nm-setting-*.h
506 debian/tmp/usr/share/gtk-doc/html/libnm-util/
507 debian/tmp/usr/share/gir-1.0/NetworkManager-1.0.gir
508-debian/tmp/usr/share/vala-0.18/vapi/libnm-util.*
509+debian/tmp/usr/share/vala/vapi/libnm-util.*
510
511=== modified file 'debian/libnm-util2.install'
512--- debian/libnm-util2.install 2011-05-25 18:59:17 +0000
513+++ debian/libnm-util2.install 2013-03-26 02:35:23 +0000
514@@ -1,1 +1,1 @@
515-debian/tmp/usr/lib/libnm-util.so.*
516+debian/tmp/usr/lib/*/libnm-util.so.*
517
518=== modified file 'debian/libnm-util2.symbols'
519--- debian/libnm-util2.symbols 2012-07-16 18:40:57 +0000
520+++ debian/libnm-util2.symbols 2013-03-26 02:35:23 +0000
521@@ -17,6 +17,8 @@
522 nm_connection_get_setting_adsl@Base 0.9.4.0+git201206041025.716a09d
523 nm_connection_get_setting_bluetooth@Base 0.8.998
524 nm_connection_get_setting_bond@Base 0.9.1.90+git.20111124t161539.576acdd
525+ nm_connection_get_setting_bridge@Base 0.9.6.0+git201212071413.8a9759a
526+ nm_connection_get_setting_bridge_port@Base 0.9.6.0+git201212071413.8a9759a
527 nm_connection_get_setting_by_name@Base 0.7.0
528 nm_connection_get_setting_cdma@Base 0.8.998
529 nm_connection_get_setting_connection@Base 0.8.998
530@@ -200,6 +202,24 @@
531 nm_setting_bond_get_valid_options@Base 0.9.3.995+git201203081848.bba834f
532 nm_setting_bond_new@Base 0.9.1.90+git.20111124t161539.576acdd
533 nm_setting_bond_remove_option@Base 0.9.2.0+git201202161854.8572ecf
534+ nm_setting_bridge_error_get_type@Base 0.9.6.0+git201212071413.8a9759a
535+ nm_setting_bridge_error_quark@Base 0.9.6.0+git201212071413.8a9759a
536+ nm_setting_bridge_get_ageing_time@Base 0.9.6.0+git201212071413.8a9759a
537+ nm_setting_bridge_get_forward_delay@Base 0.9.6.0+git201212071413.8a9759a
538+ nm_setting_bridge_get_hello_time@Base 0.9.6.0+git201212071413.8a9759a
539+ nm_setting_bridge_get_interface_name@Base 0.9.6.0+git201212071413.8a9759a
540+ nm_setting_bridge_get_max_age@Base 0.9.6.0+git201212071413.8a9759a
541+ nm_setting_bridge_get_priority@Base 0.9.6.0+git201212071413.8a9759a
542+ nm_setting_bridge_get_stp@Base 0.9.6.0+git201212071413.8a9759a
543+ nm_setting_bridge_get_type@Base 0.9.6.0+git201212071413.8a9759a
544+ nm_setting_bridge_new@Base 0.9.6.0+git201212071413.8a9759a
545+ nm_setting_bridge_port_error_get_type@Base 0.9.6.0+git201212071413.8a9759a
546+ nm_setting_bridge_port_error_quark@Base 0.9.6.0+git201212071413.8a9759a
547+ nm_setting_bridge_port_get_hairpin_mode@Base 0.9.6.0+git201212071413.8a9759a
548+ nm_setting_bridge_port_get_path_cost@Base 0.9.6.0+git201212071413.8a9759a
549+ nm_setting_bridge_port_get_priority@Base 0.9.6.0+git201212071413.8a9759a
550+ nm_setting_bridge_port_get_type@Base 0.9.6.0+git201212071413.8a9759a
551+ nm_setting_bridge_port_new@Base 0.9.6.0+git201212071413.8a9759a
552 nm_setting_cdma_error_get_type@Base 0.7.0
553 nm_setting_cdma_error_quark@Base 0.7.0
554 nm_setting_cdma_get_number@Base 0.7.0
555@@ -213,6 +233,7 @@
556 nm_setting_compare@Base 0.7.0
557 nm_setting_compare_flags_get_type@Base 0.9.2.0+git201202161854.8572ecf
558 nm_setting_connection_add_permission@Base 0.8.998
559+ nm_setting_connection_add_secondary@Base 0.9.6.0+git201210141544.dd42da5
560 nm_setting_connection_error_get_type@Base 0.7.0
561 nm_setting_connection_error_quark@Base 0.7.0
562 nm_setting_connection_get_autoconnect@Base 0.7.0
563@@ -220,8 +241,10 @@
564 nm_setting_connection_get_id@Base 0.7.0
565 nm_setting_connection_get_master@Base 0.9.1.90+git.20111124t161539.576acdd
566 nm_setting_connection_get_num_permissions@Base 0.8.998
567+ nm_setting_connection_get_num_secondaries@Base 0.9.6.0+git201210141544.dd42da5
568 nm_setting_connection_get_permission@Base 0.8.998
569 nm_setting_connection_get_read_only@Base 0.7.0
570+ nm_setting_connection_get_secondary@Base 0.9.6.0+git201210141544.dd42da5
571 nm_setting_connection_get_slave_type@Base 0.9.1.90+git.20111124t161539.576acdd
572 nm_setting_connection_get_timestamp@Base 0.7.0
573 nm_setting_connection_get_type@Base 0.7.0
574@@ -231,6 +254,7 @@
575 nm_setting_connection_new@Base 0.7.0
576 nm_setting_connection_permissions_user_allowed@Base 0.8.998
577 nm_setting_connection_remove_permission@Base 0.8.998
578+ nm_setting_connection_remove_secondary@Base 0.9.6.0+git201210141544.dd42da5
579 nm_setting_diff@Base 0.8.3.998
580 nm_setting_diff_result_get_type@Base 0.9.2.0+git201202161854.8572ecf
581 nm_setting_duplicate@Base 0.7.0
582@@ -309,6 +333,7 @@
583 nm_setting_ip6_config_error_get_type@Base 0.7.999
584 nm_setting_ip6_config_error_quark@Base 0.7.999
585 nm_setting_ip6_config_get_address@Base 0.7.999
586+ nm_setting_ip6_config_get_dhcp_hostname@Base 0.9.6.0+git201212071413.8a9759a
587 nm_setting_ip6_config_get_dns@Base 0.7.999
588 nm_setting_ip6_config_get_dns_search@Base 0.7.999
589 nm_setting_ip6_config_get_ignore_auto_dns@Base 0.7.999
590@@ -490,6 +515,7 @@
591 nm_setting_wireless_security_remove_pairwise@Base 0.7.0
592 nm_setting_wireless_security_remove_proto@Base 0.7.0
593 nm_setting_wireless_security_set_wep_key@Base 0.7.0
594+ nm_utils_ap_mode_security_valid@Base 0.9.6.0+git201211131441.e9e2c56
595 nm_utils_deinit@Base 0.7.0
596 nm_utils_escape_ssid@Base 0.7.0
597 nm_utils_file_is_pkcs12@Base 0.9.6.0~git201207161259.00297f4
598@@ -499,6 +525,7 @@
599 nm_utils_hwaddr_len@Base 0.9.1.90+git.20111124t161539.576acdd
600 nm_utils_hwaddr_ntoa@Base 0.9.1.90+git.20111124t161539.576acdd
601 nm_utils_hwaddr_type@Base 0.9.1.90+git.20111206t233146.dff0d2a
602+ nm_utils_iface_valid_name@Base 0.9.6.0+git201210141544.dd42da5
603 nm_utils_init@Base 0.7.0
604 nm_utils_ip4_addresses_from_gvalue@Base 0.7.0
605 nm_utils_ip4_addresses_to_gvalue@Base 0.7.0
606@@ -514,6 +541,7 @@
607 nm_utils_ip6_routes_from_gvalue@Base 0.7.999
608 nm_utils_ip6_routes_to_gvalue@Base 0.7.999
609 nm_utils_is_empty_ssid@Base 0.7.0
610+ nm_utils_is_uuid@Base 0.9.6.0+git201210141544.dd42da5
611 nm_utils_rsa_key_encrypt@Base 0.7.999
612 nm_utils_same_ssid@Base 0.7.0
613 nm_utils_security_type_get_type@Base 0.9.2.0+git201202161854.8572ecf
614@@ -522,10 +550,12 @@
615 nm_utils_ssid_to_utf8@Base 0.7.0
616 nm_utils_uuid_generate@Base 0.7.0
617 nm_utils_uuid_generate_from_string@Base 0.7.0
618+ nm_utils_wep_key_valid@Base 0.9.8.0
619 nm_utils_wifi_channel_to_freq@Base 0.8.2
620 nm_utils_wifi_find_next_channel@Base 0.8.2
621 nm_utils_wifi_freq_to_channel@Base 0.8.2
622 nm_utils_wifi_is_channel_valid@Base 0.8.2
623+ nm_utils_wpa_psk_valid@Base 0.9.8.0
624 nm_vlan_flags_get_type@Base 0.9.3.995+git201203081848.bba834f
625 nm_vlan_priority_map_get_type@Base 0.9.3.995+git201203081848.bba834f
626 nm_wep_key_type_get_type@Base 0.9.2.0+git201202161854.8572ecf
627
628=== modified file 'debian/network-manager-dev.install'
629--- debian/network-manager-dev.install 2011-05-25 18:59:17 +0000
630+++ debian/network-manager-dev.install 2013-03-26 02:35:23 +0000
631@@ -1,4 +1,4 @@
632-debian/tmp/usr/lib/pkgconfig/NetworkManager.pc
633+debian/tmp/usr/lib/*/pkgconfig/NetworkManager.pc
634 debian/tmp/usr/include/NetworkManager/NetworkManager.h
635 debian/tmp/usr/include/NetworkManager/NetworkManagerVPN.h
636 debian/tmp/usr/include/NetworkManager/nm-version.h
637
638=== modified file 'debian/network-manager-dispatcher.script'
639--- debian/network-manager-dispatcher.script 2011-05-30 13:40:45 +0000
640+++ debian/network-manager-dispatcher.script 2013-03-26 02:35:23 +0000
641@@ -28,10 +28,6 @@
642 export PHASE="post-down"
643 exec run-parts /etc/network/if-post-down.d
644 ;;
645- hostname)
646- # do nothing here, the 'hostname' action is not handled by ifupdown scripts.
647- exit 0
648- ;;
649 # pre-up/pre-down not implemented. See
650 # https://bugzilla.gnome.org/show_bug.cgi?id=387832
651 # pre-up)
652
653=== modified file 'debian/network-manager.NEWS'
654--- debian/network-manager.NEWS 2011-05-04 15:34:45 +0000
655+++ debian/network-manager.NEWS 2013-03-26 02:35:23 +0000
656@@ -1,4 +1,4 @@
657-network-manager (0.6.2-3) unstable; urgency=low
658+network-manager (0.6.2-2) unstable; urgency=low
659
660 * NetworkManager now reads the network interface configuration specified in
661 /etc/network/interfaces. Devices that are listed there and match certain
662
663=== modified file 'debian/network-manager.dirs'
664--- debian/network-manager.dirs 2012-07-31 13:41:17 +0000
665+++ debian/network-manager.dirs 2013-03-26 02:35:23 +0000
666@@ -1,3 +1,4 @@
667 var/lib/NetworkManager/
668 etc/NetworkManager/system-connections/
669+etc/NetworkManager/VPN/
670 etc/NetworkManager/dnsmasq.d/
671
672=== modified file 'debian/network-manager.install'
673--- debian/network-manager.install 2012-03-27 00:29:28 +0000
674+++ debian/network-manager.install 2013-03-26 02:35:23 +0000
675@@ -2,17 +2,16 @@
676 debian/tmp/usr/bin/nm-tool
677 debian/tmp/usr/bin/nm-online
678 debian/tmp/usr/bin/nmcli
679-debian/tmp/usr/lib/NetworkManager/nm-crash-logger
680 debian/tmp/usr/lib/NetworkManager/nm-dhcp-client.action
681 debian/tmp/usr/lib/NetworkManager/nm-dispatcher.action
682 debian/tmp/usr/lib/NetworkManager/nm-avahi-autoipd.action
683-debian/tmp/usr/lib/NetworkManager/libnm-settings-plugin-ifupdown.so
684-debian/debug-helper.py usr/lib/NetworkManager/
685-debian/tmp/usr/lib/pppd/*/*.so
686+debian/tmp/usr/lib/*/NetworkManager/libnm-settings-plugin-ifupdown.so
687+debian/tmp/usr/lib/*/pppd/*/*.so
688 debian/tmp/usr/share/locale/
689 debian/tmp/usr/share/man/
690 debian/tmp/usr/share/dbus-1/system-services/
691 debian/tmp/usr/share/polkit-1/
692+debian/tmp/usr/share/bash-completion/
693 debian/tmp/etc/dbus-1/system.d/org.freedesktop.NetworkManager.conf
694 debian/tmp/etc/dbus-1/system.d/nm-dhcp-client.conf
695 debian/tmp/etc/dbus-1/system.d/nm-dispatcher.conf
696@@ -21,3 +20,4 @@
697 debian/tmp/lib/udev/rules.d/*.rules
698 debian/source_network-manager.py /usr/share/apport/package-hooks/
699 debian/NetworkManager.conf etc/NetworkManager/
700+debian/debug-helper.py usr/lib/NetworkManager/
701
702=== removed file 'debian/patches/50_gettext_macros.patch'
703--- debian/patches/50_gettext_macros.patch 2011-05-25 14:44:27 +0000
704+++ debian/patches/50_gettext_macros.patch 1970-01-01 00:00:00 +0000
705@@ -1,14 +0,0 @@
706-Index: network-manager-0.9~git.20110520t163524.987a132/configure.ac
707-===================================================================
708---- network-manager-0.9~git.20110520t163524.987a132.orig/configure.ac 2011-05-25 10:40:42.220334592 -0400
709-+++ network-manager-0.9~git.20110520t163524.987a132/configure.ac 2011-05-25 10:40:49.300334590 -0400
710-@@ -80,9 +80,6 @@
711- dnl
712- IT_PROG_INTLTOOL([0.40.0])
713-
714--AM_GNU_GETTEXT([external])
715--AM_GNU_GETTEXT_VERSION([0.17])
716--
717- GETTEXT_PACKAGE=NetworkManager
718- AC_SUBST(GETTEXT_PACKAGE)
719- AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package])
720
721=== removed file 'debian/patches/70_lp145653_no_sigaction_for_crashes.patch'
722--- debian/patches/70_lp145653_no_sigaction_for_crashes.patch 2012-05-07 18:20:33 +0000
723+++ debian/patches/70_lp145653_no_sigaction_for_crashes.patch 1970-01-01 00:00:00 +0000
724@@ -1,37 +0,0 @@
725-From: Alexander Sack <asac@ubuntu.com>
726-Subject: Do not call sigaction on crashes, we want apport to provide reports.
727-Last-Update: 2011-03-03
728-
729- Mathieu Trudel-Lapierre <mathieu@canonical.com>:
730- - Updated to add quilt .pc file to POTFILES.skip due to enabling tests in build.
731-
732----
733- po/POTFILES.skip | 1 +
734- src/main.c | 5 -----
735- 2 files changed, 1 insertion(+), 5 deletions(-)
736-
737-Index: b/src/main.c
738-===================================================================
739---- a/src/main.c
740-+++ b/src/main.c
741-@@ -141,11 +141,6 @@ setup_signals (void)
742- sigaddset (&signal_set, SIGHUP);
743- sigaddset (&signal_set, SIGINT);
744- sigaddset (&signal_set, SIGQUIT);
745-- sigaddset (&signal_set, SIGILL);
746-- sigaddset (&signal_set, SIGABRT);
747-- sigaddset (&signal_set, SIGFPE);
748-- sigaddset (&signal_set, SIGBUS);
749-- sigaddset (&signal_set, SIGSEGV);
750- sigaddset (&signal_set, SIGPIPE);
751- sigaddset (&signal_set, SIGTERM);
752- sigaddset (&signal_set, SIGUSR1);
753-Index: b/po/POTFILES.skip
754-===================================================================
755---- a/po/POTFILES.skip
756-+++ b/po/POTFILES.skip
757-@@ -3,3 +3,4 @@ examples/python/systray/eggtrayicon.c
758- vpn-daemons/openvpn
759- vpn-daemons/pptp
760- vpn-daemons/vpnc
761-+.pc/70_lp145653_no_sigaction_for_crashes.patch/src/main.c
762
763=== modified file 'debian/patches/add-veth-support.diff'
764--- debian/patches/add-veth-support.diff 2012-07-16 18:14:42 +0000
765+++ debian/patches/add-veth-support.diff 2013-03-26 02:35:23 +0000
766@@ -1,57 +1,66 @@
767 From: Stéphane Graber <stephane.graber@canonical.com>
768 Subject: Add support for veth virtual ethernet devices.
769
770-Index: network-manager-0.9.4.0+git201206081144.2efeac8/src/nm-udev-manager.c
771-===================================================================
772---- network-manager-0.9.4.0+git201206081144.2efeac8.orig/src/nm-udev-manager.c 2012-07-16 10:30:54.003182512 -0400
773-+++ network-manager-0.9.4.0+git201206081144.2efeac8/src/nm-udev-manager.c 2012-07-16 11:41:55.696204385 -0400
774-@@ -392,6 +392,11 @@
775- case NM_IFACE_TYPE_VLAN:
776- driver = "8021q";
777- break;
778-+ case NM_IFACE_TYPE_VETH:
779-+ // In a veth pair, the host side is called veth*. Don't try to manage these.
780-+ if (!g_str_has_prefix (ifname, "veth"))
781-+ driver = "veth";
782-+ break;
783- default:
784- if (g_str_has_prefix (ifname, "easytether"))
785- driver = "easytether";
786-Index: network-manager-0.9.4.0+git201206081144.2efeac8/src/nm-system.c
787-===================================================================
788---- network-manager-0.9.4.0+git201206081144.2efeac8.orig/src/nm-system.c 2012-07-16 10:30:54.019182597 -0400
789-+++ network-manager-0.9.4.0+git201206081144.2efeac8/src/nm-system.c 2012-07-16 10:30:45.163138675 -0400
790-@@ -1769,6 +1769,8 @@
791- res = NM_IFACE_TYPE_VLAN;
792- else if (!g_strcmp0 (type, "dummy"))
793- res = NM_IFACE_TYPE_DUMMY;
794-+ else if (!g_strcmp0 (type, "veth"))
795-+ res = NM_IFACE_TYPE_VETH;
796-
797- rtnl_link_put (result);
798- out:
799-Index: network-manager-0.9.4.0+git201206081144.2efeac8/src/nm-system.h
800-===================================================================
801---- network-manager-0.9.4.0+git201206081144.2efeac8.orig/src/nm-system.h 2012-07-16 10:30:54.023182612 -0400
802-+++ network-manager-0.9.4.0+git201206081144.2efeac8/src/nm-system.h 2012-07-16 10:30:49.551160436 -0400
803-@@ -116,6 +116,7 @@
804- NM_IFACE_TYPE_BOND,
805- NM_IFACE_TYPE_VLAN,
806- NM_IFACE_TYPE_DUMMY,
807-+ NM_IFACE_TYPE_VETH,
808- };
809-
810- int nm_system_get_iface_type (int ifindex, const char *name);
811-Index: network-manager-0.9.4.0+git201206081144.2efeac8/src/nm-device-ethernet.c
812-===================================================================
813---- network-manager-0.9.4.0+git201206081144.2efeac8.orig/src/nm-device-ethernet.c 2012-07-16 10:30:54.047182731 -0400
814-+++ network-manager-0.9.4.0+git201206081144.2efeac8/src/nm-device-ethernet.c 2012-07-16 10:30:53.227178661 -0400
815-@@ -252,7 +252,7 @@
816- // FIXME: Convert this into a no-export property so type can be specified
817- // when the device is created.
818- itype = nm_system_get_iface_type (nm_device_get_ifindex (self), nm_device_get_iface (self));
819-- g_assert (itype == NM_IFACE_TYPE_UNSPEC);
820-+ g_assert (itype == NM_IFACE_TYPE_UNSPEC || itype == NM_IFACE_TYPE_VETH);
821-
822- nm_log_dbg (LOGD_HW | LOGD_ETHER, "(%s): kernel ifindex %d",
823- nm_device_get_iface (NM_DEVICE (self)),
824+---
825+ src/nm-device-ethernet.c | 2 +-
826+ src/nm-system.c | 2 ++
827+ src/nm-system.h | 3 ++-
828+ src/nm-udev-manager.c | 5 +++++
829+ 4 files changed, 10 insertions(+), 2 deletions(-)
830+
831+Index: b/src/nm-udev-manager.c
832+===================================================================
833+--- a/src/nm-udev-manager.c
834++++ b/src/nm-udev-manager.c
835+@@ -407,6 +407,11 @@ dev_get_attrs (GUdevDevice *udev_device,
836+ case NM_IFACE_TYPE_VLAN:
837+ driver = "8021q";
838+ break;
839++ case NM_IFACE_TYPE_VETH:
840++ // In a veth pair, the host side is called veth*. Don't try to manage these.
841++ if (!g_str_has_prefix (ifname, "veth"))
842++ driver = "veth";
843++ break;
844+ default:
845+ if (g_str_has_prefix (ifname, "easytether"))
846+ driver = "easytether";
847+Index: b/src/nm-system.c
848+===================================================================
849+--- a/src/nm-system.c
850++++ b/src/nm-system.c
851+@@ -1882,6 +1882,8 @@ nm_system_get_iface_type (int ifindex, c
852+ res = NM_IFACE_TYPE_BRIDGE;
853+ else if (!g_strcmp0 (type, "dummy"))
854+ res = NM_IFACE_TYPE_DUMMY;
855++ else if (!g_strcmp0 (type, "veth"))
856++ res = NM_IFACE_TYPE_VETH;
857+
858+ rtnl_link_put (result);
859+ out:
860+Index: b/src/nm-system.h
861+===================================================================
862+--- a/src/nm-system.h
863++++ b/src/nm-system.h
864+@@ -114,7 +114,8 @@ enum {
865+ NM_IFACE_TYPE_BOND,
866+ NM_IFACE_TYPE_VLAN,
867+ NM_IFACE_TYPE_BRIDGE,
868+- NM_IFACE_TYPE_DUMMY
869++ NM_IFACE_TYPE_DUMMY,
870++ NM_IFACE_TYPE_VETH
871+ };
872+
873+ int nm_system_get_iface_type (int ifindex, const char *name);
874+Index: b/src/nm-device-ethernet.c
875+===================================================================
876+--- a/src/nm-device-ethernet.c
877++++ b/src/nm-device-ethernet.c
878+@@ -252,7 +252,7 @@ constructor (GType type,
879+ // FIXME: Convert this into a no-export property so type can be specified
880+ // when the device is created.
881+ itype = nm_system_get_iface_type (nm_device_get_ifindex (self), nm_device_get_iface (self));
882+- g_assert (itype == NM_IFACE_TYPE_UNSPEC);
883++ g_assert (itype == NM_IFACE_TYPE_UNSPEC || itype == NM_IFACE_TYPE_VETH);
884+
885+ nm_log_dbg (LOGD_HW | LOGD_ETHER, "(%s): kernel ifindex %d",
886+ nm_device_get_iface (NM_DEVICE (self)),
887
888=== modified file 'debian/patches/add_sendsigs_omissions.patch'
889--- debian/patches/add_sendsigs_omissions.patch 2012-07-27 19:06:32 +0000
890+++ debian/patches/add_sendsigs_omissions.patch 2013-03-26 02:35:23 +0000
891@@ -9,60 +9,35 @@
892
893 ---
894 src/dhcp-manager/nm-dhcp-dhclient.c | 2 +-
895- src/dhcp-manager/nm-dhcp-dhcpcd.c | 2 +-
896- src/dns-manager/nm-dns-bind.c | 2 +-
897- src/dns-manager/nm-dns-dnsmasq.c | 2 +-
898- 4 files changed, 4 insertions(+), 4 deletions(-)
899+ src/dns-manager/nm-dns-dnsmasq.c | 4 ++++
900+ 2 files changed, 5 insertions(+), 1 deletion(-)
901
902 Index: b/src/dhcp-manager/nm-dhcp-dhclient.c
903 ===================================================================
904 --- a/src/dhcp-manager/nm-dhcp-dhclient.c
905 +++ b/src/dhcp-manager/nm-dhcp-dhclient.c
906-@@ -554,7 +554,7 @@ dhclient_start (NMDHCPClient *client,
907+@@ -553,7 +553,7 @@ dhclient_start (NMDHCPClient *client,
908 return -1;
909 }
910
911 - pid_file = g_strdup_printf (LOCALSTATEDIR "/run/dhclient%s-%s.pid",
912-+ pid_file = g_strdup_printf (LOCALSTATEDIR "/run/sendsigs.omit.d/network-manager.dhclient%s-%s.pid",
913++ pid_file = g_strdup_printf ("/run/sendsigs.omit.d/network-manager.dhclient%s-%s.pid",
914 ipv6 ? "6" : "",
915 iface);
916 if (!pid_file) {
917-Index: b/src/dns-manager/nm-dns-bind.c
918-===================================================================
919---- a/src/dns-manager/nm-dns-bind.c
920-+++ b/src/dns-manager/nm-dns-bind.c
921-@@ -38,7 +38,7 @@ G_DEFINE_TYPE (NMDnsBind, nm_dns_bind, N
922-
923- #define NM_DNS_BIND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DNS_BIND, NMDnsBindPrivate))
924-
925--#define PIDFILE LOCALSTATEDIR "/run/nm-dns-named.pid"
926-+#define PIDFILE LOCALSTATEDIR "/run/sendsigs.omit.d/network-manager.named.pid"
927- #define CONFFILE LOCALSTATEDIR "/run/nm-dns-named.conf"
928-
929- typedef struct {
930 Index: b/src/dns-manager/nm-dns-dnsmasq.c
931 ===================================================================
932 --- a/src/dns-manager/nm-dns-dnsmasq.c
933 +++ b/src/dns-manager/nm-dns-dnsmasq.c
934-@@ -39,7 +39,7 @@ G_DEFINE_TYPE (NMDnsDnsmasq, nm_dns_dnsm
935+@@ -39,7 +39,11 @@ G_DEFINE_TYPE (NMDnsDnsmasq, nm_dns_dnsm
936
937 #define NM_DNS_DNSMASQ_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DNS_DNSMASQ, NMDnsDnsmasqPrivate))
938
939--#define PIDFILE LOCALSTATEDIR "/run/nm-dns-dnsmasq.pid"
940-+#define PIDFILE LOCALSTATEDIR "/run/sendsigs.omit.d/network-manager.dnsmasq.pid"
941- #define CONFFILE LOCALSTATEDIR "/run/nm-dns-dnsmasq.conf"
942- #define CONFDIR SYSCONFDIR "/NetworkManager/dnsmasq.d"
943-
944-Index: b/src/dhcp-manager/nm-dhcp-dhcpcd.c
945-===================================================================
946---- a/src/dhcp-manager/nm-dhcp-dhcpcd.c
947-+++ b/src/dhcp-manager/nm-dhcp-dhcpcd.c
948-@@ -110,7 +110,7 @@ real_ip4_start (NMDHCPClient *client,
949- iface = nm_dhcp_client_get_iface (client);
950- uuid = nm_dhcp_client_get_uuid (client);
951-
952-- priv->pid_file = g_strdup_printf (LOCALSTATEDIR "/run/dhcpcd-%s.pid", iface);
953-+ priv->pid_file = g_strdup_printf (LOCALSTATEDIR "/run/network-manager.dhcpcd-%s.pid", iface);
954- if (!priv->pid_file) {
955- nm_log_warn (LOGD_DHCP4, "(%s): not enough memory for dhcpcd options.", iface);
956- return -1;
957++#if defined(TARGET_DEBIAN)
958++#define PIDFILE "/run/sendsigs.omit.d/network-manager.dnsmasq.pid"
959++#else
960+ #define PIDFILE NMRUNDIR "/dnsmasq.pid"
961++#endif
962+ #define CONFFILE NMRUNDIR "/dnsmasq.conf"
963+ #define CONFDIR NMCONFDIR "/dnsmasq.d"
964+
965
966=== modified file 'debian/patches/adhoc_use_wpa_rsn_part1.patch'
967--- debian/patches/adhoc_use_wpa_rsn_part1.patch 2012-09-07 19:27:20 +0000
968+++ debian/patches/adhoc_use_wpa_rsn_part1.patch 2013-03-26 02:35:23 +0000
969@@ -14,7 +14,7 @@
970 ===================================================================
971 --- a/libnm-util/nm-utils.c
972 +++ b/libnm-util/nm-utils.c
973-@@ -1285,8 +1285,6 @@ nm_utils_security_valid (NMUtilsSecurity
974+@@ -1325,8 +1325,6 @@ nm_utils_security_valid (NMUtilsSecurity
975 }
976 break;
977 case NMU_SEC_WPA_PSK:
978@@ -23,7 +23,7 @@
979 if (!(wifi_caps & NM_WIFI_DEVICE_CAP_WPA))
980 return FALSE;
981 if (have_ap) {
982-@@ -1313,8 +1311,6 @@ nm_utils_security_valid (NMUtilsSecurity
983+@@ -1353,8 +1351,6 @@ nm_utils_security_valid (NMUtilsSecurity
984 }
985 break;
986 case NMU_SEC_WPA2_PSK:
987@@ -36,7 +36,7 @@
988 ===================================================================
989 --- a/src/nm-device-wifi.c
990 +++ b/src/nm-device-wifi.c
991-@@ -967,36 +967,6 @@ real_deactivate (NMDevice *dev)
992+@@ -976,36 +976,6 @@ deactivate (NMDevice *dev)
993 }
994
995 static gboolean
996@@ -70,10 +70,10 @@
997 -}
998 -
999 -static gboolean
1000- real_check_connection_compatible (NMDevice *device,
1001- NMConnection *connection,
1002- GError **error)
1003-@@ -1054,14 +1024,6 @@ real_check_connection_compatible (NMDevi
1004+ check_connection_compatible (NMDevice *device,
1005+ NMConnection *connection,
1006+ GError **error)
1007+@@ -1064,14 +1034,6 @@ check_connection_compatible (NMDevice *d
1008 }
1009 }
1010
1011@@ -85,10 +85,10 @@
1012 - return FALSE;
1013 - }
1014 -
1015- // FIXME: check channel/freq/band against bands the hardware supports
1016- // FIXME: check encryption against device capabilities
1017- // FIXME: check bitrate against device capabilities
1018-@@ -1222,18 +1184,6 @@ real_complete_connection (NMDevice *devi
1019+ /* Early exit if supplicant or device doesn't support requested mode */
1020+ mode = nm_setting_wireless_get_mode (s_wireless);
1021+ if (g_strcmp0 (mode, NM_SETTING_WIRELESS_MODE_ADHOC) == 0) {
1022+@@ -1299,18 +1261,6 @@ complete_connection (NMDevice *device,
1023 return FALSE;
1024 }
1025
1026@@ -107,9 +107,9 @@
1027 g_assert (ssid);
1028 str_ssid = nm_utils_ssid_to_utf8 (ssid);
1029 format = g_strdup_printf ("%s %%d", str_ssid);
1030-@@ -2789,16 +2739,6 @@ real_act_stage1_prepare (NMDevice *dev,
1031- connection = nm_act_request_get_connection (req);
1032- g_return_val_if_fail (connection != NULL, NM_ACT_STAGE_RETURN_FAILURE);
1033+@@ -2973,16 +2923,6 @@ act_stage1_prepare (NMDevice *dev, NMDev
1034+ }
1035+ g_object_notify (G_OBJECT (self), NM_DEVICE_WIFI_MODE);
1036
1037 - /* The kernel doesn't support Ad-Hoc WPA connections well at this time,
1038 - * and turns them into open networks. It's been this way since at least
1039@@ -122,13 +122,13 @@
1040 - }
1041 -
1042 /* Set spoof MAC to the interface */
1043- s_wireless = nm_connection_get_setting_wireless (connection);
1044- g_assert (s_wireless);
1045+ cloned_mac = nm_setting_wireless_get_cloned_mac_address (s_wireless);
1046+ if (cloned_mac && (cloned_mac->len == ETH_ALEN))
1047 Index: b/src/settings/nm-settings.c
1048 ===================================================================
1049 --- a/src/settings/nm-settings.c
1050 +++ b/src/settings/nm-settings.c
1051-@@ -1066,38 +1066,6 @@ add_cb (NMSettings *self,
1052+@@ -1065,38 +1065,6 @@ add_cb (NMSettings *self,
1053 dbus_g_method_return (context, nm_connection_get_path (NM_CONNECTION (connection)));
1054 }
1055
1056@@ -167,7 +167,7 @@
1057 void
1058 nm_settings_add_connection (NMSettings *self,
1059 NMConnection *connection,
1060-@@ -1123,19 +1091,6 @@ nm_settings_add_connection (NMSettings *
1061+@@ -1122,19 +1090,6 @@ nm_settings_add_connection (NMSettings *
1062 callback (self, NULL, error, context, user_data);
1063 g_error_free (error);
1064 return;
1065
1066=== modified file 'debian/patches/adhoc_use_wpa_rsn_part2.patch'
1067--- debian/patches/adhoc_use_wpa_rsn_part2.patch 2012-09-07 19:27:20 +0000
1068+++ debian/patches/adhoc_use_wpa_rsn_part2.patch 2013-03-26 02:35:23 +0000
1069@@ -25,38 +25,38 @@
1070 include/NetworkManager.h | 4 +
1071 libnm-glib/nm-device-wifi.c | 3 -
1072 libnm-util/nm-setting-wireless-security.c | 49 +++--------------
1073- libnm-util/nm-setting-wireless.c | 13 ++--
1074+ libnm-util/nm-setting-wireless.c | 12 ++--
1075 libnm-util/nm-utils.c | 29 +++-------
1076 src/nm-wifi-ap-utils.c | 47 +++++-----------
1077 src/nm-wifi-ap.c | 43 +++++---------
1078 src/settings/plugins/ifcfg-rh/reader.c | 13 +---
1079 src/settings/plugins/ifcfg-rh/writer.c | 2
1080 src/settings/plugins/ifnet/connection_parser.c | 48 ++++++----------
1081- src/settings/plugins/ifnet/tests/wpa_supplicant.conf | 10 +--
1082+ src/settings/plugins/ifnet/tests/wpa_supplicant.conf | 12 ++++
1083 src/supplicant-manager/nm-supplicant-config.c | 3 -
1084 src/supplicant-manager/nm-supplicant-settings-verify.c | 2
1085 src/wifi/wifi-utils-nl80211.c | 3 +
1086- 14 files changed, 101 insertions(+), 168 deletions(-)
1087+ 14 files changed, 108 insertions(+), 162 deletions(-)
1088
1089 Index: b/include/NetworkManager.h
1090 ===================================================================
1091 --- a/include/NetworkManager.h
1092 +++ b/include/NetworkManager.h
1093-@@ -155,6 +155,7 @@ typedef enum {
1094- * @NM_WIFI_DEVICE_CAP_WPA: device supports WPA1 authentication
1095+@@ -159,6 +159,7 @@ typedef enum {
1096 * @NM_WIFI_DEVICE_CAP_RSN: device supports WPA2/RSN authentication
1097 * @NM_WIFI_DEVICE_CAP_AP: device supports Access Point mode
1098+ * @NM_WIFI_DEVICE_CAP_ADHOC: device supports Ad-Hoc mode
1099 + * @NM_WIFI_DEVICE_CAP_IBSS_RSN: device supports WPA2/RSN in an IBSS network.
1100 *
1101 * 802.11 specific device encryption and authentication capabilities.
1102 **/
1103-@@ -166,7 +167,8 @@ typedef enum {
1104- NM_WIFI_DEVICE_CAP_CIPHER_CCMP = 0x00000008,
1105+@@ -171,7 +172,8 @@ typedef enum {
1106 NM_WIFI_DEVICE_CAP_WPA = 0x00000010,
1107 NM_WIFI_DEVICE_CAP_RSN = 0x00000020,
1108-- NM_WIFI_DEVICE_CAP_AP = 0x00000040
1109-+ NM_WIFI_DEVICE_CAP_AP = 0x00000040,
1110-+ NM_WIFI_DEVICE_CAP_IBSS_RSN = 0x00000080
1111+ NM_WIFI_DEVICE_CAP_AP = 0x00000040,
1112+- NM_WIFI_DEVICE_CAP_ADHOC = 0x00000080
1113++ NM_WIFI_DEVICE_CAP_ADHOC = 0x00000080,
1114++ NM_WIFI_DEVICE_CAP_IBSS_RSN = 0x00000100
1115 } NMDeviceWifiCapabilities;
1116
1117
1118@@ -64,7 +64,7 @@
1119 ===================================================================
1120 --- a/libnm-glib/nm-device-wifi.c
1121 +++ b/libnm-glib/nm-device-wifi.c
1122-@@ -463,8 +463,7 @@ connection_compatible (NMDevice *device,
1123+@@ -534,8 +534,7 @@ connection_compatible (NMDevice *device,
1124 if (s_wsec) {
1125 /* Connection has security, verify it against the device's capabilities */
1126 key_mgmt = nm_setting_wireless_security_get_key_mgmt (s_wsec);
1127@@ -78,17 +78,17 @@
1128 ===================================================================
1129 --- a/libnm-util/nm-setting-wireless-security.c
1130 +++ b/libnm-util/nm-setting-wireless-security.c
1131-@@ -785,8 +785,7 @@ need_secrets (NMSetting *setting)
1132+@@ -732,8 +732,7 @@ need_secrets (NMSetting *setting)
1133 }
1134
1135 /* WPA-PSK infrastructure and adhoc */
1136 - if ( (strcmp (priv->key_mgmt, "wpa-none") == 0)
1137 - || (strcmp (priv->key_mgmt, "wpa-psk") == 0)) {
1138 + if (strcmp (priv->key_mgmt, "wpa-psk") == 0) {
1139- if (!verify_wpa_psk (priv->psk)) {
1140+ if (!nm_utils_wpa_psk_valid (priv->psk)) {
1141 g_ptr_array_add (secrets, NM_SETTING_WIRELESS_SECURITY_PSK);
1142 return secrets;
1143-@@ -834,7 +833,7 @@ verify (NMSetting *setting, GSList *all_
1144+@@ -781,7 +780,7 @@ verify (NMSetting *setting, GSList *all_
1145 {
1146 NMSettingWirelessSecurity *self = NM_SETTING_WIRELESS_SECURITY (setting);
1147 NMSettingWirelessSecurityPrivate *priv = NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE (self);
1148@@ -97,7 +97,7 @@
1149 const char *valid_auth_algs[] = { "open", "shared", "leap", NULL };
1150 const char *valid_protos[] = { "wpa", "rsn", NULL };
1151 const char *valid_pairwise[] = { "wep40", "wep104", "tkip", "ccmp", NULL };
1152-@@ -970,38 +969,12 @@ verify (NMSetting *setting, GSList *all_
1153+@@ -917,38 +916,12 @@ verify (NMSetting *setting, GSList *all_
1154 return FALSE;
1155 }
1156
1157@@ -142,7 +142,7 @@
1158 }
1159
1160 if (priv->group && !_nm_utils_string_slist_validate (priv->group, valid_groups)) {
1161-@@ -1273,7 +1246,7 @@ nm_setting_wireless_security_class_init
1162+@@ -1220,7 +1193,7 @@ nm_setting_wireless_security_class_init
1163 * NMSettingWirelessSecurity:key-mgmt:
1164 *
1165 * Key management used for the connection. One of 'none' (WEP), 'ieee8021x'
1166@@ -151,7 +151,7 @@
1167 * WPA-PSK), or 'wpa-eap' (WPA-Enterprise). This property must be set for
1168 * any WiFi connection that uses security.
1169 **/
1170-@@ -1282,8 +1255,8 @@ nm_setting_wireless_security_class_init
1171+@@ -1229,8 +1202,8 @@ nm_setting_wireless_security_class_init
1172 g_param_spec_string (NM_SETTING_WIRELESS_SECURITY_KEY_MGMT,
1173 "Key management",
1174 "Key management used for the connection. One of "
1175@@ -166,15 +166,14 @@
1176 ===================================================================
1177 --- a/libnm-util/nm-setting-wireless.c
1178 +++ b/libnm-util/nm-setting-wireless.c
1179-@@ -184,12 +184,13 @@ nm_setting_wireless_ap_security_compatib
1180+@@ -190,11 +190,13 @@ nm_setting_wireless_ap_security_compatib
1181 }
1182
1183 /* Adhoc WPA */
1184 - if (!strcmp (key_mgmt, "wpa-none")) {
1185 - if (ap_mode != NM_802_11_MODE_ADHOC)
1186 - return FALSE;
1187-- // FIXME: validate ciphers if the BSSID actually puts WPA/RSN IE in
1188-- // it's beacon
1189+- /* FIXME: validate ciphers if they're in the beacon */
1190 - return TRUE;
1191 + if (ap_mode == NM_802_11_MODE_ADHOC) {
1192 + if (!strcmp (key_mgmt, "wpa-psk")) {
1193@@ -185,12 +184,12 @@
1194 + return FALSE;
1195 }
1196
1197- /* Stuff after this point requires infrastructure */
1198+ /* Adhoc WPA2 (ie, RSN IBSS) */
1199 Index: b/libnm-util/nm-utils.c
1200 ===================================================================
1201 --- a/libnm-util/nm-utils.c
1202 +++ b/libnm-util/nm-utils.c
1203-@@ -1287,25 +1287,16 @@ nm_utils_security_valid (NMUtilsSecurity
1204+@@ -1327,25 +1327,16 @@ nm_utils_security_valid (NMUtilsSecurity
1205 case NMU_SEC_WPA_PSK:
1206 if (!(wifi_caps & NM_WIFI_DEVICE_CAP_WPA))
1207 return FALSE;
1208@@ -221,7 +220,7 @@
1209 }
1210 return FALSE;
1211 }
1212-@@ -1314,12 +1305,12 @@ nm_utils_security_valid (NMUtilsSecurity
1213+@@ -1354,12 +1345,12 @@ nm_utils_security_valid (NMUtilsSecurity
1214 if (!(wifi_caps & NM_WIFI_DEVICE_CAP_RSN))
1215 return FALSE;
1216 if (have_ap) {
1217@@ -328,7 +327,7 @@
1218 }
1219
1220 return TRUE;
1221-@@ -665,11 +650,13 @@ nm_ap_utils_complete_connection (const G
1222+@@ -666,11 +651,13 @@ nm_ap_utils_complete_connection (const G
1223 return FALSE;
1224
1225 if (adhoc) {
1226@@ -351,7 +350,7 @@
1227 ===================================================================
1228 --- a/src/nm-wifi-ap.c
1229 +++ b/src/nm-wifi-ap.c
1230-@@ -628,6 +628,7 @@ nm_ap_new_fake_from_connection (NMConnec
1231+@@ -629,6 +629,7 @@ nm_ap_new_fake_from_connection (NMConnec
1232 guint32 channel;
1233 NM80211ApSecurityFlags flags;
1234 gboolean psk = FALSE, eap = FALSE;
1235@@ -359,20 +358,20 @@
1236
1237 g_return_val_if_fail (connection != NULL, NULL);
1238
1239-@@ -648,9 +649,10 @@ nm_ap_new_fake_from_connection (NMConnec
1240+@@ -649,9 +650,10 @@ nm_ap_new_fake_from_connection (NMConnec
1241 if (mode) {
1242 if (!strcmp (mode, "infrastructure"))
1243 nm_ap_set_mode (ap, NM_802_11_MODE_INFRA);
1244 - else if (!strcmp (mode, "adhoc"))
1245 + else if (!strcmp (mode, "adhoc")) {
1246 nm_ap_set_mode (ap, NM_802_11_MODE_ADHOC);
1247-- else
1248+- else if (!strcmp (mode, "ap")) {
1249 + adhoc = TRUE;
1250-+ } else
1251- goto error;
1252- } else {
1253- nm_ap_set_mode (ap, NM_802_11_MODE_INFRA);
1254-@@ -684,7 +686,7 @@ nm_ap_new_fake_from_connection (NMConnec
1255++ } else if (!strcmp (mode, "ap")) {
1256+ nm_ap_set_mode (ap, NM_802_11_MODE_INFRA);
1257+ NM_AP_GET_PRIVATE (ap)->hotspot = TRUE;
1258+ } else
1259+@@ -688,7 +690,7 @@ nm_ap_new_fake_from_connection (NMConnec
1260
1261 psk = !strcmp (key_mgmt, "wpa-psk");
1262 eap = !strcmp (key_mgmt, "wpa-eap");
1263@@ -381,7 +380,7 @@
1264 if (has_proto (s_wireless_sec, PROTO_WPA)) {
1265 flags = nm_ap_get_wpa_flags (ap);
1266 flags |= eap ? NM_802_11_AP_SEC_KEY_MGMT_802_1X : NM_802_11_AP_SEC_KEY_MGMT_PSK;
1267-@@ -698,42 +700,31 @@ nm_ap_new_fake_from_connection (NMConnec
1268+@@ -702,42 +704,31 @@ nm_ap_new_fake_from_connection (NMConnec
1269
1270 add_pair_ciphers (ap, s_wireless_sec);
1271 add_group_ciphers (ap, s_wireless_sec);
1272@@ -440,7 +439,7 @@
1273 ===================================================================
1274 --- a/src/settings/plugins/ifcfg-rh/reader.c
1275 +++ b/src/settings/plugins/ifcfg-rh/reader.c
1276-@@ -1920,8 +1920,8 @@ fill_wpa_ciphers (shvarFile *ifcfg,
1277+@@ -1990,8 +1990,8 @@ fill_wpa_ciphers (shvarFile *ifcfg,
1278 PLUGIN_WARN (IFCFG_PLUGIN_NAME, " warning: ignoring group cipher '%s' (only one group cipher allowed in Ad-Hoc mode)",
1279 *iter);
1280 continue;
1281@@ -451,7 +450,7 @@
1282 *iter);
1283 continue;
1284 }
1285-@@ -2707,8 +2707,8 @@ make_wpa_setting (shvarFile *ifcfg,
1286+@@ -2777,8 +2777,8 @@ make_wpa_setting (shvarFile *ifcfg,
1287
1288 /* WPA and/or RSN */
1289 if (adhoc) {
1290@@ -462,7 +461,7 @@
1291 } else {
1292 char *allow_wpa, *allow_rsn;
1293
1294-@@ -2747,10 +2747,7 @@ make_wpa_setting (shvarFile *ifcfg,
1295+@@ -2817,10 +2817,7 @@ make_wpa_setting (shvarFile *ifcfg,
1296 }
1297 }
1298
1299@@ -478,7 +477,7 @@
1300 ===================================================================
1301 --- a/src/settings/plugins/ifcfg-rh/writer.c
1302 +++ b/src/settings/plugins/ifcfg-rh/writer.c
1303-@@ -592,7 +592,7 @@ write_wireless_security_setting (NMConne
1304+@@ -591,7 +591,7 @@ write_wireless_security_setting (NMConne
1305 svSetValue (ifcfg, "KEY_MGMT", NULL, FALSE);
1306 wep = TRUE;
1307 *no_8021x = TRUE;
1308@@ -491,7 +490,7 @@
1309 ===================================================================
1310 --- a/src/settings/plugins/ifnet/connection_parser.c
1311 +++ b/src/settings/plugins/ifnet/connection_parser.c
1312-@@ -1333,23 +1333,6 @@ fill_wpa_ciphers (const char *ssid,
1313+@@ -1353,23 +1353,6 @@ fill_wpa_ciphers (const char *ssid,
1314
1315 list = g_strsplit_set (value, " ", 0);
1316 for (iter = list; iter && *iter; iter++, i++) {
1317@@ -515,7 +514,7 @@
1318
1319 if (!strcmp (*iter, "CCMP")) {
1320 if (group)
1321-@@ -1358,6 +1341,19 @@ fill_wpa_ciphers (const char *ssid,
1322+@@ -1378,6 +1361,19 @@ fill_wpa_ciphers (const char *ssid,
1323 else
1324 nm_setting_wireless_security_add_pairwise (wsec,
1325 "ccmp");
1326@@ -535,7 +534,7 @@
1327 } else if (!strcmp (*iter, "TKIP")) {
1328 if (group)
1329 nm_setting_wireless_security_add_group (wsec,
1330-@@ -1498,8 +1494,8 @@ make_wpa_setting (const char *ssid,
1331+@@ -1518,8 +1514,8 @@ make_wpa_setting (const char *ssid,
1332
1333 /* WPA and/or RSN */
1334 if (adhoc) {
1335@@ -546,7 +545,7 @@
1336 } else {
1337 nm_setting_wireless_security_add_proto (wsec, "wpa");
1338 nm_setting_wireless_security_add_proto (wsec, "rsn");
1339-@@ -1515,14 +1511,9 @@ make_wpa_setting (const char *ssid,
1340+@@ -1535,14 +1531,9 @@ make_wpa_setting (const char *ssid,
1341 NULL);
1342 g_free (psk);
1343
1344@@ -564,7 +563,7 @@
1345 } else if (!strcmp (value, "WPA-EAP") || !strcmp (value, "IEEE8021X")) {
1346 if (adhoc) {
1347 g_set_error (error, ifnet_plugin_error_quark (), 0,
1348-@@ -2115,8 +2106,7 @@ write_wireless_security_setting (NMConne
1349+@@ -2138,8 +2129,7 @@ write_wireless_security_setting (NMConne
1350 wpa_set_data (conn_name, "key_mgmt", "NONE");
1351 wep = TRUE;
1352 *no_8021x = TRUE;
1353@@ -578,32 +577,27 @@
1354 ===================================================================
1355 --- a/src/settings/plugins/ifnet/tests/wpa_supplicant.conf
1356 +++ b/src/settings/plugins/ifnet/tests/wpa_supplicant.conf
1357-@@ -752,15 +752,15 @@ network={
1358+@@ -68,3 +68,15 @@ network={
1359+ psk="xjtudlc3731###asdfasdfasdf"
1360 }
1361
1362-
1363--# IBSS/ad-hoc network with WPA-None/TKIP.
1364 +# IBSS/ad-hoc network with IBSS RSN.
1365- network={
1366- ssid="test adhoc"
1367- mode=1
1368- frequency=2412
1369-- proto=WPA
1370-- key_mgmt=WPA-NONE
1371-- pairwise=NONE
1372-- group=TKIP
1373++network={
1374++ ssid="test adhoc"
1375++ mode=1
1376++ frequency=2412
1377 + proto=RSN
1378 + key_mgmt=WPA-PSK
1379 + pairwise=CCMP
1380 + group=CCMP
1381- psk="secret passphrase"
1382- }
1383-
1384++ psk="secret passphrase"
1385++}
1386++
1387 Index: b/src/supplicant-manager/nm-supplicant-config.c
1388 ===================================================================
1389 --- a/src/supplicant-manager/nm-supplicant-config.c
1390 +++ b/src/supplicant-manager/nm-supplicant-config.c
1391-@@ -643,8 +643,7 @@ nm_supplicant_config_add_setting_wireles
1392+@@ -651,8 +651,7 @@ nm_supplicant_config_add_setting_wireles
1393 }
1394
1395 /* Only WPA-specific things when using WPA */
1396@@ -630,7 +624,7 @@
1397 ===================================================================
1398 --- a/src/wifi/wifi-utils-nl80211.c
1399 +++ b/src/wifi/wifi-utils-nl80211.c
1400-@@ -684,6 +684,9 @@ static int nl80211_wiphy_info_handler (s
1401+@@ -720,6 +720,9 @@ static int nl80211_wiphy_info_handler (s
1402 }
1403 }
1404
1405
1406=== removed file 'debian/patches/dhcpv6-duid-support.patch'
1407--- debian/patches/dhcpv6-duid-support.patch 2011-11-25 17:59:44 +0000
1408+++ debian/patches/dhcpv6-duid-support.patch 1970-01-01 00:00:00 +0000
1409@@ -1,553 +0,0 @@
1410-From: Mathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com>
1411-Subject: add DUID handling support and DUID generation.
1412-Bug-Ubuntu: https://bugs.launchpad.net/bugs/849994
1413-
1414-This patch watches the DUID already provided by dhclient if it's available
1415-and attempts to make sure it is recorded in the future lease files when
1416-necessary. If the DUID isn't present anywhere, it will be generated as a
1417-DUID-LLT, and the values from dhclient always takes precedence.
1418-
1419-Index: network-manager-0.9.1.90+git.20111124t161539.576acdd/src/dhcp-manager/nm-dhcp-client.c
1420-===================================================================
1421---- network-manager-0.9.1.90+git.20111124t161539.576acdd.orig/src/dhcp-manager/nm-dhcp-client.c 2011-11-25 12:55:48.000000000 -0500
1422-+++ network-manager-0.9.1.90+git.20111124t161539.576acdd/src/dhcp-manager/nm-dhcp-client.c 2011-11-25 12:57:53.575041757 -0500
1423-@@ -29,6 +29,12 @@
1424- #include <netinet/in.h>
1425- #include <arpa/inet.h>
1426- #include <stdlib.h>
1427-+#include <stdint.h>
1428-+
1429-+#include <net/if.h>
1430-+#include <sys/time.h>
1431-+#include <sys/ioctl.h>
1432-+#include <sys/socket.h>
1433-
1434- #include "nm-utils.h"
1435- #include "nm-logging.h"
1436-@@ -40,6 +46,7 @@
1437- gboolean ipv6;
1438- char * uuid;
1439- guint32 timeout;
1440-+ char * duid;
1441-
1442- guchar state;
1443- GPid pid;
1444-@@ -70,12 +77,119 @@
1445- PROP_IFACE,
1446- PROP_IPV6,
1447- PROP_UUID,
1448-+ PROP_DUID,
1449- PROP_TIMEOUT,
1450- LAST_PROP
1451- };
1452-
1453- /********************************************/
1454-
1455-+struct duid_header {
1456-+ uint16_t duid_type;
1457-+ uint16_t hw_type;
1458-+ uint32_t time;
1459-+ /* link-layer address follows */
1460-+} __attribute__((__packed__));
1461-+
1462-+#define DUID_TIME_EPOCH 946684800
1463-+#define DUID_ETHER_LEN 6
1464-+
1465-+static char *
1466-+escape_duid (const guint8 * duid, guint32 len)
1467-+{
1468-+ static char escaped[(sizeof(struct duid_header*) + DUID_ETHER_LEN) * 4 + 1];
1469-+ const guint8 *s = duid;
1470-+ char *d = escaped;
1471-+
1472-+ while (len--) {
1473-+ if (*s == '\0') {
1474-+ *d++ = '\\';
1475-+ *d++ = '0';
1476-+ *d++ = '0';
1477-+ *d++ = '0';
1478-+ } else if (*s == '\a') {
1479-+ *d++ = '\\';
1480-+ *d++ = '0';
1481-+ *d++ = '0';
1482-+ *d++ = '7';
1483-+ } else if (*s == '\b') {
1484-+ *d++ = '\\';
1485-+ *d++ = '0';
1486-+ *d++ = '1';
1487-+ *d++ = '0';
1488-+ } else if (*s == '\t') {
1489-+ *d++ = '\\';
1490-+ *d++ = '0';
1491-+ *d++ = '1';
1492-+ *d++ = '1';
1493-+ } else if (*s == '\n') {
1494-+ *d++ = '\\';
1495-+ *d++ = '0';
1496-+ *d++ = '1';
1497-+ *d++ = '2';
1498-+ } else if (*s == '\f') {
1499-+ *d++ = '\\';
1500-+ *d++ = '0';
1501-+ *d++ = '1';
1502-+ *d++ = '4';
1503-+ } else if (*s == '\r') {
1504-+ *d++ = '\\';
1505-+ *d++ = '0';
1506-+ *d++ = '1';
1507-+ *d++ = '5';
1508-+ } else {
1509-+ *d++ = *s;
1510-+ }
1511-+ s++;
1512-+ }
1513-+ *d = '\0';
1514-+ return g_strescape (escaped, "\\");
1515-+}
1516-+
1517-+/* Get a DHCP Unique Identifier for DHCPv6.
1518-+ * We use the DUID-LLT method (see RFC 3315 s9.2) using code based on Debian's
1519-+ * netcfg code to generate DUID-LL numbers.
1520-+ */
1521-+gboolean
1522-+nm_dhcp_client_generate_duid (const char *iface, char **duid)
1523-+{
1524-+ GByteArray *raw_duid;
1525-+ struct sockaddr sa;
1526-+ struct ifreq ifr;
1527-+ struct duid_header *duid_header;
1528-+ struct timeval tv;
1529-+ int s;
1530-+
1531-+ s = socket(AF_INET, SOCK_DGRAM, 0); /* doesn't matter what kind */
1532-+ if (s < 0) {
1533-+ return FALSE;
1534-+ }
1535-+
1536-+ strncpy(ifr.ifr_name, iface, IFNAMSIZ);
1537-+ if (ioctl(s, SIOCGIFHWADDR, &ifr) < 0) {
1538-+ nm_log_err (LOGD_HW, "Couldn't get hardware address of %s: %s",
1539-+ iface, strerror(errno));
1540-+ return FALSE;
1541-+ }
1542-+ memcpy(&sa, &ifr.ifr_hwaddr, sizeof((void *)&sa));
1543-+
1544-+ raw_duid = g_byte_array_sized_new (sizeof(duid_header) + DUID_ETHER_LEN);
1545-+
1546-+ duid_header = malloc (sizeof(duid_header));
1547-+ duid_header->duid_type = g_htons(1);
1548-+ duid_header->hw_type = g_htons(sa.sa_family);
1549-+ gettimeofday(&tv, NULL);
1550-+ duid_header->time = g_htonl(tv.tv_sec - DUID_TIME_EPOCH);
1551-+
1552-+ g_byte_array_append (raw_duid, (guint8*) duid_header, sizeof(duid_header));
1553-+ g_byte_array_append (raw_duid, (guint8*) sa.sa_data, DUID_ETHER_LEN);
1554-+
1555-+ nm_log_dbg (LOGD_HW, "MATT: DUID: '%s':%d", escape_duid(raw_duid->data, raw_duid->len), raw_duid->len);
1556-+ *duid = escape_duid (raw_duid->data, raw_duid->len);
1557-+
1558-+ return TRUE;
1559-+}
1560-+
1561- GPid
1562- nm_dhcp_client_get_pid (NMDHCPClient *self)
1563- {
1564-@@ -112,6 +226,15 @@
1565- return NM_DHCP_CLIENT_GET_PRIVATE (self)->uuid;
1566- }
1567-
1568-+const char *
1569-+nm_dhcp_client_get_duid (NMDHCPClient *self)
1570-+{
1571-+ g_return_val_if_fail (self != NULL, NULL);
1572-+ g_return_val_if_fail (NM_IS_DHCP_CLIENT (self), NULL);
1573-+
1574-+ return NM_DHCP_CLIENT_GET_PRIVATE (self)->duid;
1575-+}
1576-+
1577- /********************************************/
1578-
1579- static void
1580-@@ -322,6 +445,19 @@
1581- return priv->pid ? TRUE : FALSE;
1582- }
1583-
1584-+void
1585-+nm_dhcp_client_guess_duid (NMDHCPClient *self)
1586-+{
1587-+ NMDHCPClientPrivate *priv;
1588-+
1589-+ g_return_if_fail (self != NULL);
1590-+ g_return_if_fail (NM_IS_DHCP_CLIENT (self));
1591-+
1592-+ priv = NM_DHCP_CLIENT_GET_PRIVATE (self);
1593-+
1594-+ priv->duid = NM_DHCP_CLIENT_GET_CLASS (self)->guess_duid (self);
1595-+}
1596-+
1597- gboolean
1598- nm_dhcp_client_start_ip6 (NMDHCPClient *self,
1599- NMSettingIP6Config *s_ip6,
1600-@@ -339,6 +475,16 @@
1601- g_return_val_if_fail (priv->ipv6 == TRUE, FALSE);
1602- g_return_val_if_fail (priv->uuid != NULL, FALSE);
1603-
1604-+ /* Dealing with IPv6 and following RFCs mean we need a default DUID for
1605-+ * a new connection. DUIDs can be generated, but we usually wouldn't
1606-+ * unless it's not available anywhere else.
1607-+ */
1608-+ if (priv->duid == NULL)
1609-+ nm_dhcp_client_guess_duid (self);
1610-+
1611-+ if (priv->duid != NULL)
1612-+ nm_log_dbg (LOGD_DHCP, "MATT: nm_dhcp_client_start_ip6: DUID is '%s'", priv->duid);
1613-+
1614- priv->info_only = info_only;
1615-
1616- nm_log_info (LOGD_DHCP, "Activation (%s) Beginning DHCPv6 transaction (timeout in %d seconds)",
1617-@@ -1326,6 +1472,7 @@
1618-
1619- priv->options = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
1620- priv->pid = -1;
1621-+ priv->duid = NULL;
1622- }
1623-
1624- static void
1625-@@ -1344,6 +1491,9 @@
1626- case PROP_UUID:
1627- g_value_set_string (value, priv->uuid);
1628- break;
1629-+ case PROP_DUID:
1630-+ g_value_set_string (value, priv->duid);
1631-+ break;
1632- case PROP_TIMEOUT:
1633- g_value_set_uint (value, priv->timeout);
1634- break;
1635-@@ -1372,6 +1522,9 @@
1636- /* construct-only */
1637- priv->uuid = g_value_dup_string (value);
1638- break;
1639-+ case PROP_DUID:
1640-+ priv->duid = g_value_dup_string (value);
1641-+ break;
1642- case PROP_TIMEOUT:
1643- priv->timeout = g_value_get_uint (value);
1644- break;
1645-@@ -1440,6 +1593,14 @@
1646- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
1647-
1648- g_object_class_install_property
1649-+ (object_class, PROP_DUID,
1650-+ g_param_spec_string (NM_DHCP_CLIENT_DUID,
1651-+ "duid",
1652-+ "DUID",
1653-+ NULL,
1654-+ G_PARAM_READWRITE));
1655-+
1656-+ g_object_class_install_property
1657- (object_class, PROP_TIMEOUT,
1658- g_param_spec_uint (NM_DHCP_CLIENT_TIMEOUT,
1659- "timeout",
1660-Index: network-manager-0.9.1.90+git.20111124t161539.576acdd/src/dhcp-manager/nm-dhcp-client.h
1661-===================================================================
1662---- network-manager-0.9.1.90+git.20111124t161539.576acdd.orig/src/dhcp-manager/nm-dhcp-client.h 2011-11-25 12:55:48.000000000 -0500
1663-+++ network-manager-0.9.1.90+git.20111124t161539.576acdd/src/dhcp-manager/nm-dhcp-client.h 2011-11-25 12:57:53.575041757 -0500
1664-@@ -37,6 +37,7 @@
1665- #define NM_DHCP_CLIENT_INTERFACE "iface"
1666- #define NM_DHCP_CLIENT_IPV6 "ipv6"
1667- #define NM_DHCP_CLIENT_UUID "uuid"
1668-+#define NM_DHCP_CLIENT_DUID "duid"
1669- #define NM_DHCP_CLIENT_TIMEOUT "timeout"
1670-
1671- typedef enum {
1672-@@ -90,12 +91,16 @@
1673- void (*stop) (NMDHCPClient *self,
1674- gboolean release);
1675-
1676-+ char * (*guess_duid) (NMDHCPClient *self);
1677-+
1678- /* Signals */
1679- void (*state_changed) (NMDHCPClient *self, NMDHCPState state);
1680- void (*timeout) (NMDHCPClient *self);
1681- void (*remove) (NMDHCPClient *self);
1682- } NMDHCPClientClass;
1683-
1684-+gboolean nm_dhcp_client_generate_duid (const char *iface, char **duid);
1685-+
1686- GType nm_dhcp_client_get_type (void);
1687-
1688- GPid nm_dhcp_client_get_pid (NMDHCPClient *self);
1689-@@ -106,6 +111,8 @@
1690-
1691- const char *nm_dhcp_client_get_uuid (NMDHCPClient *self);
1692-
1693-+void nm_dhcp_client_guess_duid (NMDHCPClient *self);
1694-+
1695- gboolean nm_dhcp_client_start_ip4 (NMDHCPClient *self,
1696- NMSettingIP4Config *s_ip4,
1697- guint8 *dhcp_anycast_addr,
1698-Index: network-manager-0.9.1.90+git.20111124t161539.576acdd/src/dhcp-manager/nm-dhcp-dhclient.c
1699-===================================================================
1700---- network-manager-0.9.1.90+git.20111124t161539.576acdd.orig/src/dhcp-manager/nm-dhcp-dhclient.c 2011-11-25 12:55:48.000000000 -0500
1701-+++ network-manager-0.9.1.90+git.20111124t161539.576acdd/src/dhcp-manager/nm-dhcp-dhclient.c 2011-11-25 12:58:53.283039094 -0500
1702-@@ -33,6 +33,7 @@
1703- #include <netinet/in.h>
1704- #include <arpa/inet.h>
1705- #include <ctype.h>
1706-+#include <fcntl.h>
1707-
1708- #include <config.h>
1709-
1710-@@ -48,11 +49,14 @@
1711- #if defined(TARGET_DEBIAN) || defined(TARGET_SUSE) || defined(TARGET_MANDRIVA)
1712- #if defined(DHCLIENT_V3)
1713- #define NM_DHCLIENT_LEASE_DIR LOCALSTATEDIR "/lib/dhcp3"
1714-+#define NM_DHCLIENT_DEFAULT_LEASE_FILE NM_DHCLIENT_LEASE_DIR "/dhclient6.leases"
1715- #else
1716- #define NM_DHCLIENT_LEASE_DIR LOCALSTATEDIR "/lib/dhcp"
1717-+#define NM_DHCLIENT_DEFAULT_LEASE_FILE NM_DHCLIENT_LEASE_DIR "/dhclient6.leases"
1718- #endif
1719- #else
1720- #define NM_DHCLIENT_LEASE_DIR LOCALSTATEDIR "/lib/dhclient"
1721-+#define NM_DHCLIENT_DEFAULT_LEASE_FILE NM_DHCLIENT_LEASE_DIR "/dhclient6.leases"
1722- #endif
1723-
1724- #define ACTION_SCRIPT_PATH LIBEXECDIR "/nm-dhcp-client.action"
1725-@@ -337,6 +341,103 @@
1726- return success;
1727- }
1728-
1729-+static gboolean
1730-+duid_in_leasefile (char *leasefile, char **duid)
1731-+{
1732-+ char *found_duid = NULL;
1733-+ char *contents;
1734-+ char **line, **split, **params;
1735-+
1736-+ nm_log_dbg (LOGD_DHCP, "MATT: Looking for duid in '%s'.", leasefile);
1737-+
1738-+ if (!g_file_test (leasefile, G_FILE_TEST_EXISTS))
1739-+ return FALSE;
1740-+
1741-+ if (!g_file_get_contents (leasefile, &contents, NULL, NULL))
1742-+ return FALSE;
1743-+
1744-+ split = g_strsplit_set (contents, "\n\r", -1);
1745-+ g_free (contents);
1746-+
1747-+ if (!split)
1748-+ return FALSE;
1749-+
1750-+ for (line = split; line && *line; line++) {
1751-+ *line = g_strstrip (*line);
1752-+
1753-+ if (g_strstr_len (*line, -1, "default-duid")) {
1754-+ nm_log_dbg (LOGD_DHCP, "MATT: Found duid in '%s'.", leasefile);
1755-+ params = g_strsplit_set (*line, " \t\"", -1);
1756-+ nm_log_dbg (LOGD_DHCP, "MATT: Found DUID: '%s'", params[2]);
1757-+ found_duid = g_strdup (params[2]);
1758-+ g_strfreev (params);
1759-+ break;
1760-+ }
1761-+ }
1762-+ g_strfreev (split);
1763-+
1764-+ if (found_duid != NULL) {
1765-+ *duid = found_duid;
1766-+ return TRUE;
1767-+ }
1768-+ else
1769-+ return FALSE;
1770-+}
1771-+
1772-+static char *
1773-+real_guess_duid (NMDHCPClient *self)
1774-+{
1775-+ char *duid = NULL;
1776-+ GPtrArray *leasefiles;
1777-+ const char *iface, *uuid;
1778-+ char *leasefile, *contents;
1779-+ char **line, **split, **params;
1780-+ gboolean ipv6;
1781-+ int i;
1782-+
1783-+ iface = nm_dhcp_client_get_iface (self);
1784-+ uuid = nm_dhcp_client_get_uuid (self);
1785-+ ipv6 = nm_dhcp_client_get_ipv6 (self);
1786-+
1787-+ if (!ipv6)
1788-+ return NULL;
1789-+
1790-+ leasefiles = g_ptr_array_new ();
1791-+
1792-+ /* Always add the "default" lease file from dhclient as first place
1793-+ * to look for the DUID.
1794-+ */
1795-+ g_ptr_array_add (leasefiles, g_strdup(NM_DHCLIENT_DEFAULT_LEASE_FILE));
1796-+
1797-+ leasefile = get_leasefile_for_iface (iface, uuid, ipv6);
1798-+
1799-+ if (!leasefile)
1800-+ return NULL;
1801-+
1802-+ if (g_file_test (leasefile, G_FILE_TEST_EXISTS))
1803-+ g_ptr_array_add (leasefiles, leasefile);
1804-+
1805-+ for (i = 0; i < leasefiles->len; i++) {
1806-+ gboolean found = FALSE;
1807-+
1808-+ leasefile = g_ptr_array_index (leasefiles, i);
1809-+
1810-+ found = duid_in_leasefile (leasefile, &duid);
1811-+
1812-+ if (found && duid != NULL)
1813-+ break;
1814-+ }
1815-+ if (duid != NULL)
1816-+ nm_log_dbg (LOGD_DHCP, "MATT: again, DUID: '%s'", duid);
1817-+
1818-+ for (i = 0; i < leasefiles->len; i++)
1819-+ g_free (g_ptr_array_index (leasefiles, i));
1820-+ g_ptr_array_free (leasefiles, TRUE);
1821-+
1822-+out:
1823-+ return duid;
1824-+}
1825-+
1826- /* NM provides interface-specific options; thus the same dhclient config
1827- * file cannot be used since DHCP transactions can happen in parallel.
1828- * Since some distros don't have default per-interface dhclient config files,
1829-@@ -420,6 +521,7 @@
1830- GError *error = NULL;
1831- const char *iface, *uuid, *system_bus_address;
1832- char *binary_name, *cmd_str, *pid_file = NULL, *system_bus_address_env = NULL;
1833-+ char *duid = NULL;
1834- gboolean ipv6;
1835- guint log_domain;
1836-
1837-@@ -428,6 +530,7 @@
1838- iface = nm_dhcp_client_get_iface (client);
1839- uuid = nm_dhcp_client_get_uuid (client);
1840- ipv6 = nm_dhcp_client_get_ipv6 (client);
1841-+ duid = nm_dhcp_client_get_duid (client);
1842-
1843- log_domain = ipv6 ? LOGD_DHCP6 : LOGD_DHCP4;
1844-
1845-@@ -469,6 +572,110 @@
1846- return -1;
1847- }
1848-
1849-+#if !defined(DHCLIENT_V3)
1850-+ /* Dealing with IPv6 and following RFCs mean we need a default DUID for
1851-+ * a new connection. DUIDs can be generated, but we usually wouldn't
1852-+ * unless it's not available anywhere else.
1853-+ */
1854-+ if (ipv6) {
1855-+ FILE *leasef;
1856-+ gboolean found = FALSE;
1857-+ char *found_duid = NULL;
1858-+ char *contents = NULL, *new_contents = NULL;
1859-+
1860-+ if (!duid) {
1861-+ nm_log_dbg (log_domain, "MATT: oops, no DUID yet... try to guess it again.");
1862-+ duid = real_guess_duid (client);
1863-+ }
1864-+
1865-+ if (!duid) {
1866-+ /* We failed all tries to get a DUID from elsewhere, so generate a DUID-LLT
1867-+ * to pass to the dhclient lease file.
1868-+ */
1869-+ nm_dhcp_client_generate_duid (iface, &duid);
1870-+ nm_log_dbg (log_domain, "MATT: done generation: '%s'", duid);
1871-+
1872-+ /* In all likelihood if there is no DUID before it gets generated
1873-+ * above, then the default dhclient lease file is also missing,
1874-+ * so it's safe to create it if we verify it doesn't exist.
1875-+ */
1876-+ if (!g_file_test (NM_DHCLIENT_DEFAULT_LEASE_FILE, G_FILE_TEST_EXISTS)) {
1877-+ if ((leasef = g_fopen (NM_DHCLIENT_DEFAULT_LEASE_FILE, "w")) == NULL)
1878-+ nm_log_warn (log_domain, "Could not create default DHCPv6 lease file '%s'.",
1879-+ NM_DHCLIENT_DEFAULT_LEASE_FILE);
1880-+ g_chmod (NM_DHCLIENT_DEFAULT_LEASE_FILE, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
1881-+ g_fprintf (leasef, "default-duid \"%s\";\n", duid);
1882-+ fclose (leasef);
1883-+ }
1884-+ }
1885-+
1886-+ if (!g_file_test (priv->lease_file, G_FILE_TEST_EXISTS)) {
1887-+ found = FALSE;
1888-+ if (g_creat (priv->lease_file, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH) < 0)
1889-+ nm_log_warn (log_domain, "Could not create DHCPv6 lease file '%s'.", priv->lease_file);
1890-+ g_chmod (priv->lease_file, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
1891-+ }
1892-+ else {
1893-+ nm_log_dbg (log_domain, "MATT: check if the DUID is available in lease file.");
1894-+ found = duid_in_leasefile (priv->lease_file, &found_duid);
1895-+ }
1896-+
1897-+ /* Write the DUID to lease file if it's not already there.
1898-+ * We need not care about writing it at the end of the file, because it will be
1899-+ * rewritten / sorted by dhclient when it will run.
1900-+ */
1901-+ if (!found) {
1902-+ nm_log_dbg (log_domain, "MATT: oops, no DUID in lease file, write it.");
1903-+ if ((leasef = g_fopen (priv->lease_file, "w+")) == NULL) {
1904-+ nm_log_warn (log_domain, "Can't open lease file for writing DUID.");
1905-+ return -1;
1906-+ }
1907-+ g_fprintf (leasef, "default-duid \"%s\";\n", duid);
1908-+ fclose (leasef);
1909-+ }
1910-+ else {
1911-+ nm_log_dbg (log_domain, "MATT: DUID in lease file, let's make sure it's the right one.");
1912-+ if (!g_file_get_contents (priv->lease_file, &contents, NULL, &error)) {
1913-+ nm_log_warn (log_domain, "couldn't read current DUID from lease file: '%s'", error->message);
1914-+ g_error_free (error);
1915-+ return -1;
1916-+ }
1917-+
1918-+ /* We may have found a DUID in the file, and received a different value from
1919-+ * dhclient's default lease file. In this case, let's use the value from dhclient
1920-+ * as the good one, in case dhclient was run manually for a valid reason.
1921-+ */
1922-+ if (g_strcmp0 (duid, found_duid) != 0) {
1923-+ gchar **split = NULL, **line = NULL;
1924-+
1925-+ nm_log_dbg (log_domain, "MATT: replacing DUID in lease files.");
1926-+
1927-+ split = g_strsplit_set (contents, "\n\r", -1);
1928-+ g_free (contents);
1929-+
1930-+ if (!split)
1931-+ return -1;
1932-+
1933-+ if ((leasef = g_fopen (priv->lease_file, "w")) == NULL) {
1934-+ nm_log_warn (log_domain, "Can't open lease file for writing DUID.");
1935-+ return -1;
1936-+ }
1937-+
1938-+ g_fprintf (leasef, "default-duid \"%s\";\n", duid);
1939-+ for (line = split; line && *line; line++) {
1940-+ *line = g_strstrip (*line);
1941-+
1942-+ if (!g_strstr_len (*line, -1, "default-duid"))
1943-+ g_fprintf (leasef, "%s\n", *line);
1944-+ }
1945-+ g_strfreev (split);
1946-+ fclose (leasef);
1947-+ }
1948-+ nm_log_dbg (log_domain, "MATT: DUID found in lease file...");
1949-+ }
1950-+ }
1951-+#endif
1952-+
1953- argv = g_ptr_array_new ();
1954- g_ptr_array_add (argv, (gpointer) priv->path);
1955-
1956-@@ -630,5 +837,6 @@
1957- client_class->ip4_start = real_ip4_start;
1958- client_class->ip6_start = real_ip6_start;
1959- client_class->stop = real_stop;
1960-+ client_class->guess_duid = real_guess_duid;
1961- }
1962-
1963
1964=== modified file 'debian/patches/dns-dnsmasq-interface-and-dbus-path.patch'
1965--- debian/patches/dns-dnsmasq-interface-and-dbus-path.patch 2012-08-17 21:39:38 +0000
1966+++ debian/patches/dns-dnsmasq-interface-and-dbus-path.patch 2013-03-26 02:35:23 +0000
1967@@ -1,38 +1,37 @@
1968 ---
1969- src/dns-manager/nm-dns-bind.c | 2 +-
1970 src/dns-manager/nm-dns-dnsmasq.c | 8 ++++----
1971 src/dns-manager/nm-dns-manager.c | 6 +++---
1972 src/org.freedesktop.NetworkManager.conf | 10 ++++++++++
1973- 4 files changed, 18 insertions(+), 8 deletions(-)
1974+ 3 files changed, 17 insertions(+), 7 deletions(-)
1975
1976 Index: b/src/dns-manager/nm-dns-dnsmasq.c
1977 ===================================================================
1978 --- a/src/dns-manager/nm-dns-dnsmasq.c
1979 +++ b/src/dns-manager/nm-dns-dnsmasq.c
1980-@@ -48,7 +48,7 @@ G_DEFINE_TYPE (NMDnsDnsmasq, nm_dns_dnsm
1981- #define CONFFILE LOCALSTATEDIR "/run/nm-dns-dnsmasq.conf"
1982- #define CONFDIR SYSCONFDIR "/NetworkManager/dnsmasq.d"
1983+@@ -52,7 +52,7 @@ G_DEFINE_TYPE (NMDnsDnsmasq, nm_dns_dnsm
1984+ #define CONFFILE NMRUNDIR "/dnsmasq.conf"
1985+ #define CONFDIR NMCONFDIR "/dnsmasq.d"
1986
1987 -#define DNSMASQ_DBUS_SERVICE "uk.org.thekelleys.dnsmasq"
1988 +#define DNSMASQ_DBUS_SERVICE "org.freedesktop.NetworkManager.dnsmasq"
1989 #define DNSMASQ_DBUS_PATH "/uk/org/thekelleys/dnsmasq"
1990 #define DNSMASQ_DBUS_INTERFACE "uk.org.thekelleys.dnsmasq"
1991
1992-@@ -281,11 +281,11 @@ start_dnsmasq (NMDnsDnsmasq *self)
1993- argv[3] = "--no-hosts"; /* don't use /etc/hosts to resolve */
1994- argv[4] = "--bind-interfaces";
1995- argv[5] = "--pid-file=" PIDFILE;
1996-- argv[6] = "--listen-address=127.0.0.1"; /* Should work for both 4 and 6 */
1997-+ argv[6] = "--listen-address=127.0.1.1"; /* Should work for both 4 and 6 */
1998- argv[7] = "--conf-file=" CONFFILE;
1999- argv[8] = "--cache-size=0";
2000- argv[9] = "--proxy-dnssec"; /* Allow DNSSEC to pass through */
2001-- argv[10] = "--enable-dbus";
2002-+ argv[10] = "--enable-dbus=" DNSMASQ_DBUS_SERVICE;
2003- argv[11] = "--conf-dir=" CONFDIR;
2004- argv[12] = NULL;
2005+@@ -290,11 +290,11 @@ start_dnsmasq (NMDnsDnsmasq *self)
2006+ argv[idx++] = "--no-hosts"; /* don't use /etc/hosts to resolve */
2007+ argv[idx++] = "--bind-interfaces";
2008+ argv[idx++] = "--pid-file=" PIDFILE;
2009+- argv[idx++] = "--listen-address=127.0.0.1"; /* Should work for both 4 and 6 */
2010++ argv[idx++] = "--listen-address=127.0.1.1"; /* Should work for both 4 and 6 */
2011+ argv[idx++] = "--conf-file=" CONFFILE;
2012+ argv[idx++] = "--cache-size=0";
2013+ argv[idx++] = "--proxy-dnssec"; /* Allow DNSSEC to pass through */
2014+- argv[idx++] = "--enable-dbus";
2015++ argv[idx++] = "--enable-dbus=" DNSMASQ_DBUS_SERVICE;
2016
2017-@@ -405,7 +405,7 @@ update (NMDnsPlugin *plugin,
2018+ /* dnsmasq exits if the conf dir is not present */
2019+ if (g_file_test (CONFDIR, G_FILE_TEST_IS_DIR))
2020+@@ -415,7 +415,7 @@ update (NMDnsPlugin *plugin,
2021
2022 /* If all the configs lists are empty, there is just nothing to be caching --
2023 * we cleared up the dnsmasq cache; but we should also fail the update, so
2024@@ -41,24 +40,11 @@
2025 */
2026 if (((vpn_configs && g_slist_length (vpn_configs) < 1) || !vpn_configs) &&
2027 ((dev_configs && g_slist_length (dev_configs) < 1) || !dev_configs) &&
2028-Index: b/src/dns-manager/nm-dns-bind.c
2029-===================================================================
2030---- a/src/dns-manager/nm-dns-bind.c
2031-+++ b/src/dns-manager/nm-dns-bind.c
2032-@@ -354,7 +354,7 @@ update (NMDnsPlugin *plugin,
2033- " forward only;\n"
2034- " recursion yes;\n"
2035- " listen-on-v6 { ::1; };\n"
2036-- " listen-on { 127.0.0.1; };\n"
2037-+ " listen-on { 127.0.1.1; };\n"
2038- " forwarders {\n");
2039-
2040- for (i = 0; i < globals->len; i++) {
2041 Index: b/src/dns-manager/nm-dns-manager.c
2042 ===================================================================
2043 --- a/src/dns-manager/nm-dns-manager.c
2044 +++ b/src/dns-manager/nm-dns-manager.c
2045-@@ -741,7 +741,7 @@ update_dns (NMDnsManager *self,
2046+@@ -729,7 +729,7 @@ update_dns (NMDnsManager *self,
2047 g_slist_free (dev_configs);
2048 g_slist_free (other_configs);
2049
2050@@ -67,7 +53,7 @@
2051 * to ensure that the glibc resolver doesn't try to round-robin nameservers,
2052 * but only uses the local caching nameserver.
2053 */
2054-@@ -749,7 +749,7 @@ update_dns (NMDnsManager *self,
2055+@@ -737,7 +737,7 @@ update_dns (NMDnsManager *self,
2056 if (nameservers)
2057 g_strfreev (nameservers);
2058 nameservers = g_new0 (char*, 2);
2059@@ -76,15 +62,15 @@
2060 }
2061
2062 #ifdef RESOLVCONF_PATH
2063-@@ -1165,7 +1165,7 @@ dispose (GObject *object)
2064+@@ -1147,7 +1147,7 @@ dispose (GObject *object)
2065+ priv->plugins = NULL;
2066+
2067+ /* If we're quitting leave a valid resolv.conf in place, not one
2068+- * pointing to 127.0.0.1 if any plugins were active. Thus update
2069++ * pointing to 127.0.1.1 if any plugins were active. Thus update
2070+ * DNS after disposing of all plugins. But if we haven't done any
2071+ * DNS updates yet, there's no reason to touch resolv.conf on shutdown.
2072 */
2073- if (priv->last_iface != NULL) {
2074- /* If we're quitting leave a valid resolv.conf in place, not one
2075-- * pointing to 127.0.0.1 if any plugins were active. Thus update
2076-+ * pointing to 127.0.1.1 if any plugins were active. Thus update
2077- * DNS after disposing of all plugins.
2078- */
2079- if (!update_dns (self, priv->last_iface, TRUE, &error)) {
2080 Index: b/src/org.freedesktop.NetworkManager.conf
2081 ===================================================================
2082 --- a/src/org.freedesktop.NetworkManager.conf
2083
2084=== modified file 'debian/patches/dnsmasq-dbus-updates.patch'
2085--- debian/patches/dnsmasq-dbus-updates.patch 2012-08-16 04:45:59 +0000
2086+++ debian/patches/dnsmasq-dbus-updates.patch 2013-03-26 02:35:23 +0000
2087@@ -4,11 +4,11 @@
2088 Subject: [PATCH] dns: update dnsmasq nameservers via its DBus SetServers method
2089
2090 ---
2091- src/dns-manager/nm-dns-dnsmasq.c | 363 +++++++++++++++++++++++++--------------
2092+ src/dns-manager/nm-dns-dnsmasq.c | 372 ++++++++++++++++++++++++---------------
2093 src/dns-manager/nm-dns-manager.c | 24 ++
2094 src/dns-manager/nm-dns-plugin.c | 16 +
2095 src/dns-manager/nm-dns-plugin.h | 1
2096- 4 files changed, 275 insertions(+), 129 deletions(-)
2097+ 4 files changed, 279 insertions(+), 134 deletions(-)
2098
2099 Index: b/src/dns-manager/nm-dns-dnsmasq.c
2100 ===================================================================
2101@@ -31,9 +31,9 @@
2102
2103 G_DEFINE_TYPE (NMDnsDnsmasq, nm_dns_dnsmasq, NM_TYPE_DNS_PLUGIN)
2104
2105-@@ -43,8 +48,13 @@ G_DEFINE_TYPE (NMDnsDnsmasq, nm_dns_dnsm
2106- #define CONFFILE LOCALSTATEDIR "/run/nm-dns-dnsmasq.conf"
2107- #define CONFDIR SYSCONFDIR "/NetworkManager/dnsmasq.d"
2108+@@ -47,8 +52,13 @@ G_DEFINE_TYPE (NMDnsDnsmasq, nm_dns_dnsm
2109+ #define CONFFILE NMRUNDIR "/dnsmasq.conf"
2110+ #define CONFDIR NMCONFDIR "/dnsmasq.d"
2111
2112 +#define DNSMASQ_DBUS_SERVICE "uk.org.thekelleys.dnsmasq"
2113 +#define DNSMASQ_DBUS_PATH "/uk/org/thekelleys/dnsmasq"
2114@@ -46,7 +46,7 @@
2115 } NMDnsDnsmasqPrivate;
2116
2117 /*******************************************/
2118-@@ -69,12 +79,11 @@ find_dnsmasq (void)
2119+@@ -73,12 +83,11 @@ find_dnsmasq (void)
2120 }
2121
2122 static gboolean
2123@@ -61,7 +61,7 @@
2124
2125 if (split) {
2126 char **domains, **iter;
2127-@@ -86,17 +95,18 @@ add_ip4_config (GString *str, NMIP4Confi
2128+@@ -90,17 +99,18 @@ add_ip4_config (GString *str, NMIP4Confi
2129 * per domain (and the manpage says this too) so only use the first
2130 * nameserver here.
2131 */
2132@@ -87,7 +87,7 @@
2133 added = TRUE;
2134 }
2135
2136-@@ -104,9 +114,10 @@ add_ip4_config (GString *str, NMIP4Confi
2137+@@ -108,9 +118,10 @@ add_ip4_config (GString *str, NMIP4Confi
2138 /* If not searches, use any domains */
2139 n = nm_ip4_config_get_num_domains (ip4);
2140 for (i = 0; i < n; i++) {
2141@@ -101,7 +101,7 @@
2142 added = TRUE;
2143 }
2144 }
2145-@@ -117,7 +128,9 @@ add_ip4_config (GString *str, NMIP4Confi
2146+@@ -121,7 +132,9 @@ add_ip4_config (GString *str, NMIP4Confi
2147 domains = nm_dns_utils_get_ip4_rdns_domains (ip4);
2148 if (domains) {
2149 for (iter = domains; iter && *iter; iter++)
2150@@ -112,7 +112,7 @@
2151 g_strfreev (domains);
2152 added = TRUE;
2153 }
2154-@@ -127,65 +140,18 @@ add_ip4_config (GString *str, NMIP4Confi
2155+@@ -131,65 +144,18 @@ add_ip4_config (GString *str, NMIP4Confi
2156 if (!added) {
2157 n = nm_ip4_config_get_num_nameservers (ip4);
2158 for (i = 0; i < n; i++) {
2159@@ -178,12 +178,12 @@
2160 -}
2161 -
2162 static gboolean
2163--add_ip6_config (GString *str, NMIP6Config *ip6, gboolean split, const char *iface)
2164-+add_ip6_config (DBusMessage *message, NMIP6Config *ip6, gboolean split, const char *iface)
2165+-add_ip6_config (GString *str, NMIP6Config *ip6, gboolean split)
2166++add_ip6_config (DBusMessage *message, NMIP6Config *ip6, gboolean split)
2167 {
2168 const struct in6_addr *addr;
2169 char *buf;
2170-@@ -201,16 +167,32 @@ add_ip6_config (GString *str, NMIP6Confi
2171+@@ -209,16 +175,32 @@ add_ip6_config (GString *str, NMIP6Confi
2172 * the first nameserver here.
2173 */
2174 addr = nm_ip6_config_get_nameserver (ip6, 0);
2175@@ -222,7 +222,7 @@
2176 added = TRUE;
2177 }
2178
2179-@@ -218,14 +200,13 @@ add_ip6_config (GString *str, NMIP6Confi
2180+@@ -226,14 +208,13 @@ add_ip6_config (GString *str, NMIP6Confi
2181 /* If not searches, use any domains */
2182 n = nm_ip6_config_get_num_domains (ip6);
2183 for (i = 0; i < n; i++) {
2184@@ -241,7 +241,7 @@
2185 }
2186
2187 /* If no searches or domains, just add the namservers */
2188-@@ -233,11 +214,24 @@ add_ip6_config (GString *str, NMIP6Confi
2189+@@ -241,11 +222,24 @@ add_ip6_config (GString *str, NMIP6Confi
2190 n = nm_ip6_config_get_num_nameservers (ip6);
2191 for (i = 0; i < n; i++) {
2192 addr = nm_ip6_config_get_nameserver (ip6, i);
2193@@ -271,18 +271,19 @@
2194 }
2195 }
2196
2197-@@ -245,6 +239,66 @@ add_ip6_config (GString *str, NMIP6Confi
2198+@@ -253,6 +247,71 @@ add_ip6_config (GString *str, NMIP6Confi
2199 }
2200
2201 static gboolean
2202 +start_dnsmasq (NMDnsDnsmasq *self)
2203 +{
2204 + NMDnsDnsmasqPrivate *priv = NM_DNS_DNSMASQ_GET_PRIVATE (self);
2205-+ const char *argv[13];
2206++ const char *argv[15];
2207 + char *dnsmasq_owner;
2208 + GError *error = NULL;
2209 + GString *conf;
2210 + GPid pid = 0;
2211++ guint idx = 0;
2212 + int ignored;
2213 +
2214 + /* dnsmasq is probably already started; if it's the case, don't do
2215@@ -311,20 +312,24 @@
2216 + nm_log_dbg (LOGD_DNS, "dnsmasq local caching DNS configuration:");
2217 + nm_log_dbg (LOGD_DNS, "%s", conf->str);
2218 +
2219-+ argv[0] = find_dnsmasq ();
2220-+ argv[1] = "--no-resolv"; /* Use only commandline */
2221-+ argv[2] = "--keep-in-foreground";
2222-+ argv[3] = "--no-hosts"; /* don't use /etc/hosts to resolve */
2223-+ argv[4] = "--bind-interfaces";
2224-+ argv[5] = "--pid-file=" PIDFILE;
2225-+ argv[6] = "--listen-address=127.0.0.1"; /* Should work for both 4 and 6 */
2226-+ argv[7] = "--conf-file=" CONFFILE;
2227-+ argv[8] = "--cache-size=0";
2228-+ argv[9] = "--proxy-dnssec"; /* Allow DNSSEC to pass through */
2229-+ argv[10] = "--enable-dbus";
2230-+ argv[11] = "--conf-dir=" CONFDIR;
2231-+ argv[12] = NULL;
2232-+
2233++ argv[idx++] = find_dnsmasq ();
2234++ argv[idx++] = "--no-resolv"; /* Use only commandline */
2235++ argv[idx++] = "--keep-in-foreground";
2236++ argv[idx++] = "--no-hosts"; /* don't use /etc/hosts to resolve */
2237++ argv[idx++] = "--bind-interfaces";
2238++ argv[idx++] = "--pid-file=" PIDFILE;
2239++ argv[idx++] = "--listen-address=127.0.0.1"; /* Should work for both 4 and 6 */
2240++ argv[idx++] = "--conf-file=" CONFFILE;
2241++ argv[idx++] = "--cache-size=0";
2242++ argv[idx++] = "--proxy-dnssec"; /* Allow DNSSEC to pass through */
2243++ argv[idx++] = "--enable-dbus";
2244++
2245++ /* dnsmasq exits if the conf dir is not present */
2246++ if (g_file_test (CONFDIR, G_FILE_TEST_IS_DIR))
2247++ argv[idx++] = "--conf-dir=" CONFDIR;
2248++
2249++ argv[idx++] = NULL;
2250++ g_warn_if_fail (idx <= G_N_ELEMENTS (argv));
2251 +
2252 + /* And finally spawn dnsmasq */
2253 + pid = nm_dns_plugin_child_spawn (NM_DNS_PLUGIN (self), argv, PIDFILE, "bin/dnsmasq");
2254@@ -338,8 +343,8 @@
2255 update (NMDnsPlugin *plugin,
2256 const GSList *vpn_configs,
2257 const GSList *dev_configs,
2258-@@ -253,23 +307,29 @@ update (NMDnsPlugin *plugin,
2259- const char *iface)
2260+@@ -260,24 +319,29 @@ update (NMDnsPlugin *plugin,
2261+ const char *hostname)
2262 {
2263 NMDnsDnsmasq *self = NM_DNS_DNSMASQ (plugin);
2264 - GString *conf;
2265@@ -347,10 +352,11 @@
2266 + DBusConnection *connection;
2267 + DBusMessage *message;
2268 GSList *iter, *vpn_configs_copy;
2269-- const char *argv[12];
2270+- const char *argv[15];
2271 GError *error = NULL;
2272 - int ignored;
2273 - GPid pid = 0;
2274+- guint idx = 0;
2275 + gboolean have_dnsmasq = FALSE;
2276 gboolean might_default = FALSE;
2277 + gboolean ret = FALSE;
2278@@ -380,7 +386,7 @@
2279
2280 /* Work on a copy of the vpn_configs list because we might want to remove
2281 * some items from it, yet not affect other DNS plugins that might run
2282-@@ -286,9 +346,9 @@ update (NMDnsPlugin *plugin,
2283+@@ -294,9 +358,9 @@ update (NMDnsPlugin *plugin,
2284 might_default = !nm_ip6_config_get_never_default (iter->data);
2285 if (might_default) {
2286 if (NM_IS_IP4_CONFIG (iter->data))
2287@@ -388,11 +394,11 @@
2288 + add_ip4_config (message, NM_IP4_CONFIG (iter->data), FALSE);
2289 else if (NM_IS_IP6_CONFIG (iter->data))
2290 - add_ip6_config (conf, NM_IP6_CONFIG (iter->data), FALSE, iface);
2291-+ add_ip6_config (message, NM_IP6_CONFIG (iter->data), FALSE, iface);
2292++ add_ip6_config (message, NM_IP6_CONFIG (iter->data), FALSE);
2293 vpn_configs_copy = g_slist_remove (vpn_configs_copy, iter->data);
2294 break;
2295 }
2296-@@ -297,9 +357,9 @@ update (NMDnsPlugin *plugin,
2297+@@ -305,9 +369,9 @@ update (NMDnsPlugin *plugin,
2298 /* Use split DNS for remaining VPN configs */
2299 for (iter = (GSList *) vpn_configs_copy; iter; iter = g_slist_next (iter)) {
2300 if (NM_IS_IP4_CONFIG (iter->data))
2301@@ -400,11 +406,11 @@
2302 + add_ip4_config (message, NM_IP4_CONFIG (iter->data), TRUE);
2303 else if (NM_IS_IP6_CONFIG (iter->data))
2304 - add_ip6_config (conf, NM_IP6_CONFIG (iter->data), TRUE, iface);
2305-+ add_ip6_config (message, NM_IP6_CONFIG (iter->data), TRUE, iface);
2306++ add_ip6_config (message, NM_IP6_CONFIG (iter->data), TRUE);
2307 }
2308
2309 /* Now add interface configs without split DNS, unless some VPN
2310-@@ -310,9 +370,9 @@ update (NMDnsPlugin *plugin,
2311+@@ -318,62 +382,84 @@ update (NMDnsPlugin *plugin,
2312 if (!might_default) {
2313 for (iter = (GSList *) dev_configs; iter; iter = g_slist_next (iter)) {
2314 if (NM_IS_IP4_CONFIG (iter->data))
2315@@ -412,19 +418,18 @@
2316 + add_ip4_config (message, NM_IP4_CONFIG (iter->data), FALSE);
2317 else if (NM_IS_IP6_CONFIG (iter->data))
2318 - add_ip6_config (conf, NM_IP6_CONFIG (iter->data), FALSE, iface);
2319-+ add_ip6_config (message, NM_IP6_CONFIG (iter->data), FALSE, iface);
2320++ add_ip6_config (message, NM_IP6_CONFIG (iter->data), FALSE);
2321 }
2322 }
2323
2324-@@ -321,48 +381,75 @@ update (NMDnsPlugin *plugin,
2325- */
2326+ /* And any other random configs */
2327 for (iter = (GSList *) other_configs; iter; iter = g_slist_next (iter)) {
2328 if (NM_IS_IP4_CONFIG (iter->data))
2329 - add_ip4_config (conf, NM_IP4_CONFIG (iter->data), FALSE);
2330 + add_ip4_config (message, NM_IP4_CONFIG (iter->data), FALSE);
2331 else if (NM_IS_IP6_CONFIG (iter->data))
2332-- add_ip6_config (conf, NM_IP6_CONFIG (iter->data), FALSE, iface);
2333-+ add_ip6_config (message, NM_IP6_CONFIG (iter->data), FALSE, iface);
2334+- add_ip6_config (conf, NM_IP6_CONFIG (iter->data), FALSE);
2335++ add_ip6_config (message, NM_IP6_CONFIG (iter->data), FALSE);
2336 }
2337
2338 - /* Write out the config file */
2339@@ -435,39 +440,43 @@
2340 - error && error->message ? error->message : "(unknown)");
2341 - g_clear_error (&error);
2342 + if (!nm_dbus_manager_get_name_owner (priv->dbus_mgr, DNSMASQ_DBUS_SERVICE, &error)) {
2343-+ nm_log_err (LOGD_DNS, "dnsmasq not available on the bus, can't update servers.");
2344++ nm_log_warn (LOGD_DNS, "dnsmasq not available on the bus, can't update servers.");
2345 + if (error)
2346 + nm_log_err (LOGD_DNS, "dnsmasq owner not found on bus: %s", error->message);
2347 goto out;
2348 }
2349 - ignored = chmod (CONFFILE, 0644);
2350-
2351+-
2352 - nm_log_dbg (LOGD_DNS, "dnsmasq local caching DNS configuration:");
2353 - nm_log_dbg (LOGD_DNS, "%s", conf->str);
2354+
2355+- argv[idx++] = find_dnsmasq ();
2356+- argv[idx++] = "--no-resolv"; /* Use only commandline */
2357+- argv[idx++] = "--keep-in-foreground";
2358+- argv[idx++] = "--no-hosts"; /* don't use /etc/hosts to resolve */
2359+- argv[idx++] = "--bind-interfaces";
2360+- argv[idx++] = "--pid-file=" PIDFILE;
2361+- argv[idx++] = "--listen-address=127.0.0.1"; /* Should work for both 4 and 6 */
2362+- argv[idx++] = "--conf-file=" CONFFILE;
2363+- argv[idx++] = "--cache-size=0";
2364+- argv[idx++] = "--proxy-dnssec"; /* Allow DNSSEC to pass through */
2365 + dbus_message_set_no_reply (message, TRUE);
2366
2367-- argv[0] = find_dnsmasq ();
2368-- argv[1] = "--no-resolv"; /* Use only commandline */
2369-- argv[2] = "--keep-in-foreground";
2370-- argv[3] = "--no-hosts"; /* don't use /etc/hosts to resolve */
2371-- argv[4] = "--bind-interfaces";
2372-- argv[5] = "--pid-file=" PIDFILE;
2373-- argv[6] = "--listen-address=127.0.0.1"; /* Should work for both 4 and 6 */
2374-- argv[7] = "--conf-file=" CONFFILE;
2375-- argv[8] = "--cache-size=0";
2376-- argv[9] = "--proxy-dnssec"; /* Allow DNSSEC to pass through */
2377-- argv[10] = "--conf-dir=" CONFDIR;
2378-- argv[11] = NULL;
2379+- /* dnsmasq exits if the conf dir is not present */
2380+- if (g_file_test (CONFDIR, G_FILE_TEST_IS_DIR))
2381+- argv[idx++] = "--conf-dir=" CONFDIR;
2382 + result = dbus_connection_send (connection, message, NULL);
2383 + if (!result) {
2384 + nm_log_err (LOGD_DNS, "Could not send dnsmasq SetServers method.");
2385 + goto out;
2386 + }
2387
2388+- argv[idx++] = NULL;
2389+- g_warn_if_fail (idx <= G_N_ELEMENTS (argv));
2390++ ret = TRUE;
2391+
2392 - /* And finally spawn dnsmasq */
2393 - pid = nm_dns_plugin_child_spawn (NM_DNS_PLUGIN (self), argv, PIDFILE, "bin/dnsmasq");
2394-+ ret = TRUE;
2395-+
2396 + /* If all the configs lists are empty, there is just nothing to be caching --
2397 + * we cleared up the dnsmasq cache; but we should also fail the update, so
2398 + * that we don't write 127.0.0.1 to resolv.conf.
2399@@ -520,7 +529,7 @@
2400 static const char *
2401 dm_exit_code_to_msg (int status)
2402 {
2403-@@ -440,13 +527,31 @@ nm_dns_dnsmasq_new (void)
2404+@@ -451,13 +537,31 @@ nm_dns_dnsmasq_new (void)
2405 static void
2406 nm_dns_dnsmasq_init (NMDnsDnsmasq *self)
2407 {
2408@@ -564,7 +573,7 @@
2409 CHILD_QUIT,
2410 LAST_SIGNAL
2411 };
2412-@@ -133,6 +134,12 @@ watch_cb (GPid pid, gint status, gpointe
2413+@@ -131,6 +132,12 @@ watch_cb (GPid pid, gint status, gpointe
2414 g_free (priv->progname);
2415 priv->progname = NULL;
2416
2417@@ -577,7 +586,7 @@
2418 g_signal_emit (self, signals[CHILD_QUIT], 0, status);
2419 }
2420
2421-@@ -312,6 +319,15 @@ nm_dns_plugin_class_init (NMDnsPluginCla
2422+@@ -310,6 +317,15 @@ nm_dns_plugin_class_init (NMDnsPluginCla
2423 G_OBJECT_CLASS_TYPE (object_class),
2424 G_SIGNAL_RUN_FIRST,
2425 G_STRUCT_OFFSET (NMDnsPluginClass, failed),
2426@@ -597,7 +606,7 @@
2427 ===================================================================
2428 --- a/src/dns-manager/nm-dns-manager.c
2429 +++ b/src/dns-manager/nm-dns-manager.c
2430-@@ -781,6 +781,27 @@ update_dns (NMDnsManager *self,
2431+@@ -769,6 +769,27 @@ update_dns (NMDnsManager *self,
2432 }
2433
2434 static void
2435@@ -613,7 +622,7 @@
2436 +
2437 + /* Try to update DNS again; since it's now available on the bus this
2438 + * might work. */
2439-+ if (!update_dns (self, priv->last_iface, FALSE, &error)) {
2440++ if (!update_dns (self, FALSE, &error)) {
2441 + nm_log_warn (LOGD_DNS, "could not commit DNS changes: (%d) %s",
2442 + error ? error->code : -1,
2443 + error && error->message ? error->message : "(unknown)");
2444@@ -625,7 +634,7 @@
2445 plugin_failed (NMDnsPlugin *plugin, gpointer user_data)
2446 {
2447 NMDnsManager *self = NM_DNS_MANAGER (user_data);
2448-@@ -1079,6 +1100,9 @@ load_plugins (NMDnsManager *self, const
2449+@@ -1065,6 +1086,9 @@ load_plugins (NMDnsManager *self, const
2450
2451 nm_log_info (LOGD_DNS, "DNS: loaded plugin %s", nm_dns_plugin_get_name (plugin));
2452 priv->plugins = g_slist_append (priv->plugins, plugin);
2453@@ -646,4 +655,4 @@
2454 +#define NM_DNS_PLUGIN_APPEARED "appeared"
2455 #define NM_DNS_PLUGIN_CHILD_QUIT "child-quit"
2456
2457- typedef struct {
2458+ #define IP_CONFIG_IFACE_TAG "dns-manager-iface"
2459
2460=== modified file 'debian/patches/dnsmasq-vpn-dns-filtering.patch'
2461--- debian/patches/dnsmasq-vpn-dns-filtering.patch 2012-07-27 19:02:50 +0000
2462+++ debian/patches/dnsmasq-vpn-dns-filtering.patch 2013-03-26 02:35:23 +0000
2463@@ -3,48 +3,29 @@
2464 Bug-Ubuntu: https://bugs.launchpad.net/bugs/898224
2465
2466 ---
2467- src/dns-manager/nm-dns-dnsmasq.c | 58 ++++++++++++++++++++++++++++++++-------
2468- 1 file changed, 48 insertions(+), 10 deletions(-)
2469+ src/dns-manager/nm-dns-dnsmasq.c | 48 +++++++++++++++++++++++++++++++--------
2470+ 1 file changed, 39 insertions(+), 9 deletions(-)
2471
2472 Index: b/src/dns-manager/nm-dns-dnsmasq.c
2473 ===================================================================
2474 --- a/src/dns-manager/nm-dns-dnsmasq.c
2475 +++ b/src/dns-manager/nm-dns-dnsmasq.c
2476-@@ -79,6 +79,9 @@ add_ip4_config (GString *str, NMIP4Confi
2477- if (split) {
2478- char **domains, **iter;
2479-
2480-+ if (nm_ip4_config_get_num_nameservers (ip4) < 1)
2481-+ return FALSE;
2482-+
2483- /* FIXME: it appears that dnsmasq can only handle one nameserver
2484- * per domain (and the manpage says this too) so only use the first
2485- * nameserver here.
2486-@@ -188,6 +191,9 @@ add_ip6_config (GString *str, NMIP6Confi
2487- gboolean added = FALSE;
2488-
2489- if (split) {
2490-+ if (nm_ip6_config_get_num_nameservers (ip6) < 1)
2491-+ return FALSE;
2492-+
2493- /* FIXME: it appears that dnsmasq can only handle one nameserver
2494- * per domain (at the manpage seems to indicate that) so only use
2495- * the first nameserver here.
2496-@@ -246,11 +252,12 @@ update (NMDnsPlugin *plugin,
2497+@@ -255,12 +255,13 @@ update (NMDnsPlugin *plugin,
2498 {
2499 NMDnsDnsmasq *self = NM_DNS_DNSMASQ (plugin);
2500 GString *conf;
2501 - GSList *iter;
2502 + GSList *iter, *vpn_configs_copy;
2503- const char *argv[12];
2504+ const char *argv[15];
2505 GError *error = NULL;
2506 int ignored;
2507 GPid pid = 0;
2508+ guint idx = 0;
2509 + gboolean might_default = FALSE;
2510
2511 /* Kill the old dnsmasq; there doesn't appear to be a way to get dnsmasq
2512 * to reread the config file using SIGHUP or similar. This is a small race
2513-@@ -262,23 +269,54 @@ update (NMDnsPlugin *plugin,
2514+@@ -272,20 +273,49 @@ update (NMDnsPlugin *plugin,
2515 /* Build up the new dnsmasq config file */
2516 conf = g_string_sized_new (150);
2517
2518@@ -63,7 +44,7 @@
2519 - add_ip4_config (conf, NM_IP4_CONFIG (iter->data), TRUE);
2520 + might_default = !nm_ip4_config_get_never_default (iter->data);
2521 else if (NM_IS_IP6_CONFIG (iter->data))
2522-- add_ip6_config (conf, NM_IP6_CONFIG (iter->data), TRUE, iface);
2523+- add_ip6_config (conf, NM_IP6_CONFIG (iter->data), TRUE);
2524 + might_default = !nm_ip6_config_get_never_default (iter->data);
2525 + if (might_default) {
2526 + if (NM_IS_IP4_CONFIG (iter->data))
2527@@ -83,11 +64,10 @@
2528 - add_ip4_config (conf, NM_IP4_CONFIG (iter->data), FALSE);
2529 + add_ip4_config (conf, NM_IP4_CONFIG (iter->data), TRUE);
2530 else if (NM_IS_IP6_CONFIG (iter->data))
2531-- add_ip6_config (conf, NM_IP6_CONFIG (iter->data), FALSE, iface);
2532+- add_ip6_config (conf, NM_IP6_CONFIG (iter->data), FALSE);
2533 + add_ip6_config (conf, NM_IP6_CONFIG (iter->data), TRUE, iface);
2534- }
2535-
2536-- /* And any other random configs */
2537++ }
2538++
2539 + /* Now add interface configs without split DNS, unless some VPN
2540 + * grabs the default route (in which case we should not install them
2541 + * at all, since even split DNS may fail, if the local subnet defines
2542@@ -100,11 +80,6 @@
2543 + else if (NM_IS_IP6_CONFIG (iter->data))
2544 + add_ip6_config (conf, NM_IP6_CONFIG (iter->data), FALSE, iface);
2545 + }
2546-+ }
2547-+
2548-+ /* And any other random configs, which provides a backup route if
2549-+ * you actually really want an extra dns server to be queried.
2550-+ */
2551- for (iter = (GSList *) other_configs; iter; iter = g_slist_next (iter)) {
2552- if (NM_IS_IP4_CONFIG (iter->data))
2553- add_ip4_config (conf, NM_IP4_CONFIG (iter->data), FALSE);
2554+ }
2555+
2556+ /* And any other random configs */
2557
2558=== modified file 'debian/patches/fix-vapigen-detection.patch'
2559--- debian/patches/fix-vapigen-detection.patch 2012-08-07 15:18:34 +0000
2560+++ debian/patches/fix-vapigen-detection.patch 2013-03-26 02:35:23 +0000
2561@@ -1,21 +1,7 @@
2562 ---
2563- configure.ac | 2 +-
2564 m4/vapigen.m4 | 8 ++++----
2565- 2 files changed, 5 insertions(+), 5 deletions(-)
2566+ 1 file changed, 4 insertions(+), 4 deletions(-)
2567
2568-Index: b/configure.ac
2569-===================================================================
2570---- a/configure.ac
2571-+++ b/configure.ac
2572-@@ -723,7 +723,7 @@ dnl -------------------------
2573- dnl Vala bindings
2574- dnl -------------------------
2575-
2576--VAPIGEN_CHECK(0.17.1.24)
2577-+VAPIGEN_CHECK(0.17.1.24, 0.18)
2578-
2579- dnl
2580- dnl Tests
2581 Index: b/m4/vapigen.m4
2582 ===================================================================
2583 --- a/m4/vapigen.m4
2584
2585=== modified file 'debian/patches/lp859373_upgrade_policy_fix.patch'
2586--- debian/patches/lp859373_upgrade_policy_fix.patch 2011-10-13 15:22:07 +0000
2587+++ debian/patches/lp859373_upgrade_policy_fix.patch 2013-03-26 02:35:23 +0000
2588@@ -1,7 +1,11 @@
2589-Index: network-manager-0.9.1.90/policy/org.freedesktop.NetworkManager.policy.in
2590+---
2591+ policy/org.freedesktop.NetworkManager.policy.in.in | 9 +++++++++
2592+ 1 file changed, 9 insertions(+)
2593+
2594+Index: b/policy/org.freedesktop.NetworkManager.policy.in.in
2595 ===================================================================
2596---- network-manager-0.9.1.90.orig/policy/org.freedesktop.NetworkManager.policy.in 2011-10-13 10:52:29.908601001 -0400
2597-+++ network-manager-0.9.1.90/policy/org.freedesktop.NetworkManager.policy.in 2011-10-13 10:52:59.712599672 -0400
2598+--- a/policy/org.freedesktop.NetworkManager.policy.in.in
2599++++ b/policy/org.freedesktop.NetworkManager.policy.in.in
2600 @@ -108,5 +108,14 @@
2601 </defaults>
2602 </action>
2603
2604=== modified file 'debian/patches/lp990011_use_tempaddr_sysctl_default.patch'
2605--- debian/patches/lp990011_use_tempaddr_sysctl_default.patch 2012-08-15 20:31:55 +0000
2606+++ debian/patches/lp990011_use_tempaddr_sysctl_default.patch 2013-03-26 02:35:23 +0000
2607@@ -14,47 +14,29 @@
2608 sysctl instead of trying to read these files, but this will do for now ;)
2609
2610 ---
2611- src/backends/NetworkManagerGeneric.c | 33 +++++++++++++++++++++++----------
2612- src/nm-device.c | 2 +-
2613- 2 files changed, 24 insertions(+), 11 deletions(-)
2614+ src/nm-device.c | 35 +++++++++++++++++++++++++----------
2615+ 1 file changed, 25 insertions(+), 10 deletions(-)
2616
2617 Index: b/src/nm-device.c
2618 ===================================================================
2619 --- a/src/nm-device.c
2620 +++ b/src/nm-device.c
2621-@@ -2347,13 +2347,13 @@ real_act_stage3_ip6_config_start (NMDevi
2622- ip6_privacy = CLAMP (ip6_privacy, NM_SETTING_IP6_CONFIG_PRIVACY_UNKNOWN, NM_SETTING_IP6_CONFIG_PRIVACY_PREFER_TEMP_ADDR);
2623+@@ -2513,6 +2513,14 @@ addrconf6_cleanup (NMDevice *self)
2624
2625- switch (ip6_privacy) {
2626-- case NM_SETTING_IP6_CONFIG_PRIVACY_UNKNOWN:
2627- case NM_SETTING_IP6_CONFIG_PRIVACY_DISABLED:
2628- ip6_privacy_str = "0\n";
2629- break;
2630- case NM_SETTING_IP6_CONFIG_PRIVACY_PREFER_PUBLIC_ADDR:
2631- ip6_privacy_str = "1\n";
2632- break;
2633-+ case NM_SETTING_IP6_CONFIG_PRIVACY_UNKNOWN:
2634- case NM_SETTING_IP6_CONFIG_PRIVACY_PREFER_TEMP_ADDR:
2635- ip6_privacy_str = "2\n";
2636- break;
2637-Index: b/src/backends/NetworkManagerGeneric.c
2638-===================================================================
2639---- a/src/backends/NetworkManagerGeneric.c
2640-+++ b/src/backends/NetworkManagerGeneric.c
2641-@@ -113,6 +113,12 @@ void nm_generic_update_dns (void)
2642- {
2643- }
2644+ /******************************************/
2645
2646 +static const char *sysctl_conf_paths[] = {
2647++#ifdef TARGET_DEBIAN
2648 + "/etc/sysctl.d/10-ipv6-privacy.conf",
2649-+ "/etc/sysctl.conf",
2650-+ NULL
2651++#endif /* TARGET_DEBIAN */
2652++ "/etc/sysctl.conf",
2653++ NULL
2654 +};
2655 +
2656- /*
2657- * nm_generic_ipv6_use_tempaddr
2658- *
2659-@@ -125,24 +131,30 @@ int nm_generic_ipv6_use_tempaddr (void)
2660+ /* Get net.ipv6.conf.default.use_tempaddr value from /etc/sysctl.conf or
2661+ * /lib/sysctl.d/sysctl.conf
2662+ */
2663+@@ -2522,24 +2530,30 @@ ip6_use_tempaddr (void)
2664 char *contents = NULL;
2665 gsize len = 0;
2666 const char *group_name = "[forged_group]\n";
2667@@ -93,7 +75,7 @@
2668 goto done;
2669
2670 tmp = g_key_file_get_integer (keyfile, "forged_group", "net.ipv6.conf.default.use_tempaddr", &error);
2671-@@ -150,11 +162,12 @@ int nm_generic_ipv6_use_tempaddr (void)
2672+@@ -2547,11 +2561,12 @@ ip6_use_tempaddr (void)
2673 ret = tmp;
2674
2675 done:
2676
2677=== modified file 'debian/patches/nm-change-dnsmasq-parameters.diff'
2678--- debian/patches/nm-change-dnsmasq-parameters.diff 2012-07-27 19:05:00 +0000
2679+++ debian/patches/nm-change-dnsmasq-parameters.diff 2013-03-26 02:35:23 +0000
2680@@ -15,12 +15,12 @@
2681 ===================================================================
2682 --- a/src/dns-manager/nm-dns-dnsmasq.c
2683 +++ b/src/dns-manager/nm-dns-dnsmasq.c
2684-@@ -308,7 +308,7 @@ update (NMDnsPlugin *plugin,
2685- argv[5] = "--pid-file=" PIDFILE;
2686- argv[6] = "--listen-address=127.0.0.1"; /* Should work for both 4 and 6 */
2687- argv[7] = "--conf-file=" CONFFILE;
2688-- argv[8] = "--cache-size=400";
2689-+ argv[8] = "--cache-size=0";
2690- argv[9] = "--proxy-dnssec"; /* Allow DNSSEC to pass through */
2691- argv[10] = "--conf-dir=" CONFDIR;
2692- argv[11] = NULL;
2693+@@ -315,7 +315,7 @@ update (NMDnsPlugin *plugin,
2694+ argv[idx++] = "--pid-file=" PIDFILE;
2695+ argv[idx++] = "--listen-address=127.0.0.1"; /* Should work for both 4 and 6 */
2696+ argv[idx++] = "--conf-file=" CONFFILE;
2697+- argv[idx++] = "--cache-size=400";
2698++ argv[idx++] = "--cache-size=0";
2699+ argv[idx++] = "--proxy-dnssec"; /* Allow DNSSEC to pass through */
2700+
2701+ /* dnsmasq exits if the conf dir is not present */
2702
2703=== modified file 'debian/patches/quit_dhclient_on_exit.patch'
2704--- debian/patches/quit_dhclient_on_exit.patch 2012-04-23 22:52:08 +0000
2705+++ debian/patches/quit_dhclient_on_exit.patch 2013-03-26 02:35:23 +0000
2706@@ -29,7 +29,7 @@
2707 ===================================================================
2708 --- a/src/nm-device.c
2709 +++ b/src/nm-device.c
2710-@@ -3600,6 +3600,7 @@ dispose (GObject *object)
2711+@@ -3801,6 +3801,7 @@ dispose (GObject *object)
2712
2713 priv->disposed = TRUE;
2714
2715@@ -37,14 +37,14 @@
2716 /* Don't down can-assume-connection capable devices that are activated with
2717 * a connection that can be assumed.
2718 */
2719-@@ -3624,6 +3625,7 @@ dispose (GObject *object)
2720+@@ -3825,6 +3826,7 @@ dispose (GObject *object)
2721 take_down = FALSE;
2722 }
2723 }
2724 +#endif /* TARGET_DEBIAN */
2725
2726 /* Clear any queued transitions */
2727- queued_state_clear (self);
2728+ nm_device_queued_state_clear (self);
2729 Index: b/src/nm-manager.c
2730 ===================================================================
2731 --- a/src/nm-manager.c
2732
2733=== modified file 'debian/patches/series'
2734--- debian/patches/series 2013-01-22 18:37:26 +0000
2735+++ debian/patches/series 2013-03-26 02:35:23 +0000
2736@@ -1,9 +1,7 @@
2737+git_machine_id_duid_gen_1d14d17.patch
2738 fix-vapigen-detection.patch
2739-70_lp145653_no_sigaction_for_crashes.patch
2740 lp191889_always_offline_with_unmanaged_devices.patch
2741-50_gettext_macros.patch
2742 libnl3-cache-args.patch
2743-dhcpv6-duid-support.patch
2744 lp859373_upgrade_policy_fix.patch
2745 nm-change-dnsmasq-parameters.diff
2746 dnsmasq-vpn-dns-filtering.patch
2747@@ -20,4 +18,5 @@
2748 nm-ipv6-route-cache.patch
2749 adhoc_use_wpa_rsn_part1.patch
2750 adhoc_use_wpa_rsn_part2.patch
2751+bridge_ignore_without_connections.patch
2752 lp1099983_ignore-p2p-wifi-devices.patch
2753
2754=== modified file 'debian/rules'
2755--- debian/rules 2013-01-18 15:29:52 +0000
2756+++ debian/rules 2013-03-26 02:35:23 +0000
2757@@ -20,27 +20,34 @@
2758 DPKG_GENSYMBOLS_ARGS := -c4
2759 endif
2760
2761+EXTRA_CONFIGURE_FLAGS = --disable-silent-rules
2762+
2763 %:
2764 dh $@ --with autoreconf
2765
2766 override_dh_auto_configure:
2767- dh_auto_configure -- \
2768+ dh_auto_configure -- $(EXTRA_CONFIGURE_FLAGS) \
2769 --libexecdir=/usr/lib/NetworkManager \
2770 --with-distro=debian \
2771 --with-resolvconf=/sbin/resolvconf \
2772 --with-dhclient=/sbin/dhclient \
2773 --with-iptables=/sbin/iptables \
2774 --with-crypto=nss \
2775+ --with-session-tracking=none \
2776+ --with-suspend-resume=upower \
2777 --disable-more-warnings \
2778+ --enable-polkit=no \
2779+ --enable-ppp \
2780+ --enable-ifupdown \
2781 --enable-introspection \
2782+ --enable-doc \
2783+ --enable-concheck \
2784 --enable-vala \
2785- --with-docs \
2786- --enable-polkit=no \
2787- --with-session-tracking=none
2788+ --with-tests \
2789
2790 override_dh_install:
2791 # Get rid of .la files.
2792- find $(CURDIR)/debian/tmp -name '*.la' -exec rm -vf {} \;
2793+ find $(CURDIR)/debian/tmp -name '*.la' -delete
2794 # Get rid of anything else we don't want to ever install.
2795 rm -vf $(CURDIR)/debian/tmp/etc/init.d/NetworkManager
2796 rm -vf $(CURDIR)/debian/tmp/usr/share/NetworkManager/gdb-cmd
2797@@ -71,7 +78,7 @@
2798 dh_girepository -plibnm-glib4
2799
2800 override_dh_auto_test:
2801- dbus-test-runner -t dh_auto_test
2802+ dbus-test-runner -m 300 -t dh_auto_test
2803
2804 override_dh_clean:
2805 dh_clean
2806@@ -87,11 +94,16 @@
2807 rm -f m4/intltool.m4 intltool-*.in
2808 rm -f aclocal.m4
2809 rm -f po/Makefile.in.in
2810-
2811+
2812 override_dh_autoreconf:
2813- intltoolize -f -c
2814- gtkdocize --copy
2815- dh_autoreconf
2816+ if [ -f ./autogen.sh ]; \
2817+ then \
2818+ NOCONFIGURE=1 dh_autoreconf ./autogen.sh; \
2819+ else \
2820+ gtkdocize; \
2821+ autopoint --force; \
2822+ AUTOPOINT='intltoolize --automake --copy' autoreconf --force --install --verbose; \
2823+ fi
2824
2825 GET_SOURCE = \
2826 set -e; \
2827
2828=== modified file 'debian/tests/dnsmasq'
2829--- debian/tests/dnsmasq 2012-09-07 19:38:51 +0000
2830+++ debian/tests/dnsmasq 2013-03-26 02:35:23 +0000
2831@@ -12,14 +12,17 @@
2832
2833 class TestDnsmasq(unittest.TestCase):
2834
2835+ dbus_address = ""
2836+
2837 @classmethod
2838 def setUpClass(self):
2839 dbus_daemon = subprocess.Popen(['dbus-daemon', '--nofork', '--print-address',
2840 '--config-file',
2841 os.path.join(aptdaemon.test.get_tests_dir(), 'dbus.conf')],
2842 stdout=subprocess.PIPE, universal_newlines=True)
2843- dbus_address = dbus_daemon.stdout.readline().strip()
2844- os.environ['DBUS_SYSTEM_BUS_ADDRESS'] = dbus_address
2845+ self.dbus_address = dbus_daemon.stdout.readline().strip()
2846+ os.environ['DBUS_SYSTEM_BUS_ADDRESS'] = self.dbus_address
2847+ print ("Using DBUS address: %s" % self.dbus_address)
2848
2849 # in tests we need to make sure there are devices not defined in /e/n/i;
2850 # to ensure that, run the same script we run at install to migrate (comment out)
2851@@ -31,7 +34,12 @@
2852 subprocess.call(['NetworkManager', '--pid-file=./NM.pid'])
2853
2854 # Give NM some time to settle up.
2855- sleep(15)
2856+ sleep(30)
2857+
2858+ print("Available devices for NetworkManager:")
2859+ _nmcli = subprocess.Popen(['nmcli', 'dev' ],
2860+ stdout=subprocess.PIPE, universal_newlines=True)
2861+ print(_nmcli.stdout.readline())
2862
2863 def testDnsmasqRunning(self):
2864 processes = subprocess.check_output(['ps', '-A'], universal_newlines=True)
2865@@ -44,12 +52,14 @@
2866 if 'NetworkManager' in l:
2867 self.assertIn('--enable-dbus', l)
2868
2869- bus = dbus.SystemBus()
2870- dnsmasq = bus.get_object('org.freedesktop.NetworkManager.dnsmasq',
2871- '/uk/org/thekelleys/dnsmasq')
2872- dnsmasq_ver = dnsmasq.GetVersion()
2873- print ("Dnsmasq version is " + dnsmasq_ver)
2874- self.assertIsInstance(dnsmasq_ver, dbus.String)
2875+ bus = dbus.bus.BusConnection(self.dbus_address)
2876+ names = bus.list_names()
2877+ if ('org.freedesktop.Networkmanager.dnsmasq' in names):
2878+ dnsmasq = bus.get_object('org.freedesktop.NetworkManager.dnsmasq',
2879+ '/uk/org/thekelleys/dnsmasq')
2880+ dnsmasq_ver = dnsmasq.GetVersion()
2881+ print ("Dnsmasq version is " + dnsmasq_ver)
2882+ self.assertIsInstance(dnsmasq_ver, dbus.String)
2883
2884 unittest.main(testRunner=unittest.TextTestRunner(stream=sys.stdout, verbosity=2))
2885

Subscribers

People subscribed via source and target branches