You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/net-libs/libproxy/files/libproxy-0.4.16-avoid-nm-bu...

88 lines
3.5 KiB

https://github.com/libproxy/libproxy/issues/28
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
* sam@gentoo.org: Rebased on top of 0.4.16
(same revert included)
---
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 11d2d43..cc2b58f 100644
--- a/libproxy/cmake/modules.cmk
+++ b/libproxy/cmake/modules.cmk
@@ -40,10 +40,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 0 ${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..317f1ab 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-1.26.0'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: