blob: 59e368b696ebe031ba60df3db8ed9f5dd94b0257 [file] [log] [blame]
From 518214ee85e10c5bc99d3b115ae7ac9cc3fc14fc 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
---
libproxy/cmake/modules/network_networkmanager.cmk | 4 ++--
libproxy/modules/network_networkmanager.cpp | 21 ++++++++++++++++++++-
2 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/libproxy/cmake/modules/network_networkmanager.cmk b/libproxy/cmake/modules/network_networkmanager.cmk
index d9f9588..2586bbd 100644
--- a/libproxy/cmake/modules/network_networkmanager.cmk
+++ b/libproxy/cmake/modules/network_networkmanager.cmk
@@ -1,3 +1,3 @@
if (NOT WIN32 AND NOT APPLE)
- px_check_modules(NM NetworkManager dbus-1)
-endif()
\ No newline at end of file
+ px_check_modules(NM dbus-1)
+endif()
diff --git a/libproxy/modules/network_networkmanager.cpp b/libproxy/modules/network_networkmanager.cpp
index 564c275..a03425b 100644
--- a/libproxy/modules/network_networkmanager.cpp
+++ b/libproxy/modules/network_networkmanager.cpp
@@ -23,7 +23,26 @@
using namespace libproxy;
#include <dbus/dbus.h>
-#include <NetworkManager/NetworkManager.h>
+
+
+/*
+ * 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:
--
1.8.2.1