summaryrefslogtreecommitdiff
path: root/net-libs/libproxy/files/libproxy-0.4.15-avoid-nm-build-dep.patch
blob: e896baa3baccd3471e89409ac2d2ce85ef8547f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
From 703ac16ea2b508dc16d433b3fd597fcd496d05c1 Mon Sep 17 00:00:00 2001
From: Alexandre Rostovtsev <tetromino@gentoo.org>
Date: Mon, 29 Apr 2013 23:02:25 -0400
Subject: [PATCH] Avoid build-time dependency on NetworkManager

Needed to prevent a dependency loop:
nm -> libsoup -> glib-networking -> libproxy -> nm

https://bugs.gentoo.org/467696

* asturm@gentoo.org: Rebased on top of 0.4.15
  also revert 423801295921ab1ec0d98565fcbc2635088d45da
---
 libproxy/cmake/modules.cmk                    |  6 ++---
 .../cmake/modules/network_networkmanager.cmk  |  5 +---
 libproxy/modules/network_networkmanager.cpp   | 23 ++++++++++++++-----
 3 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/libproxy/cmake/modules.cmk b/libproxy/cmake/modules.cmk
index b3211f2..d4436e1 100644
--- a/libproxy/cmake/modules.cmk
+++ b/libproxy/cmake/modules.cmk
@@ -38,10 +38,10 @@ px_module(config_w32reg            "${WIN32}"        1)
 px_module(ignore_domain            1                 1)
 px_module(ignore_hostname          1                 1)
 px_module(ignore_ip                1                 1)
-if(NM_FOUND OR NMold_FOUND)
+if(NM_FOUND)
   set(NM_BUILD 1)
-endif(NM_FOUND OR NMold_FOUND)
-px_module(network_networkmanager   "${NM_BUILD}"     0       ${NM_LIBRARIES}${NMold_LIBRARIES})
+endif(NM_FOUND)
+px_module(network_networkmanager   "${NM_BUILD}"     0       ${NM_LIBRARIES})
 px_module(pacrunner_mozjs          "${MOZJS_FOUND}"  ${BIPR} ${MOZJS_LIBRARIES})
 px_module(pacrunner_natus          "${NATUS_FOUND}"  ${BIPR} ${NATUS_LIBRARIES})
 px_module(pacrunner_webkit         "${WEBKIT_FOUND}" ${BIPR} ${WEBKIT_LIBRARIES})
diff --git a/libproxy/cmake/modules/network_networkmanager.cmk b/libproxy/cmake/modules/network_networkmanager.cmk
index 6ef6ead..2586bbd 100644
--- a/libproxy/cmake/modules/network_networkmanager.cmk
+++ b/libproxy/cmake/modules/network_networkmanager.cmk
@@ -1,6 +1,3 @@
 if (NOT WIN32 AND NOT APPLE)
-  px_check_modules(NM libnm dbus-1)
-  if (NOT NM_FOUND)
-    px_check_modules(NMold NetworkManager dbus-1)
-  endif (NOT NM_FOUND)
+  px_check_modules(NM dbus-1)
 endif()
diff --git a/libproxy/modules/network_networkmanager.cpp b/libproxy/modules/network_networkmanager.cpp
index 546a8ee..4dc3d8d 100644
--- a/libproxy/modules/network_networkmanager.cpp
+++ b/libproxy/modules/network_networkmanager.cpp
@@ -23,13 +23,24 @@
 using namespace libproxy;
 
 #include <dbus/dbus.h>
-#include <NetworkManager.h>
 
-// Backwards compatibility: with the switch to libnm, NM_STATE_CONNECTED is no
-// longer defined. NM_STATE_CONNECTED_GLOBAL appeared with NM 0.9 and was aliased
-#ifndef NM_STATE_CONNECTED
-  #define NM_STATE_CONNECTED NM_STATE_CONNECTED_GLOBAL
-#endif
+/*
+ * copy-pasted from NetworkManager-0.9.6.4's NetworkManager.h to prevent
+ * a circular dependency; https://bugs.gentoo.org/467696
+ */
+#define	NM_DBUS_PATH                        "/org/freedesktop/NetworkManager"
+#define	NM_DBUS_INTERFACE                   "org.freedesktop.NetworkManager"
+typedef enum {
+	NM_STATE_UNKNOWN          = 0,
+	NM_STATE_ASLEEP           = 10,
+	NM_STATE_DISCONNECTED     = 20,
+	NM_STATE_DISCONNECTING    = 30,
+	NM_STATE_CONNECTING       = 40,
+	NM_STATE_CONNECTED_LOCAL  = 50,
+	NM_STATE_CONNECTED_SITE   = 60,
+	NM_STATE_CONNECTED_GLOBAL = 70
+} NMState;
+#define NM_STATE_CONNECTED NM_STATE_CONNECTED_GLOBAL
 
 class networkmanager_network_extension : public network_extension {
 public:
-- 
2.25.0