summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2020-05-24 16:09:36 +0200
committerTobias Geerinckx-Rice <me@tobias.gr>2020-05-24 16:16:14 +0200
commit4492981706e0f2041053fdc728e29232855d8689 (patch)
tree789f1b07c98c657158b4ccac0676e3104dd8be15 /gnu/packages
parentdfc426582f7e5a34a89015663cadbad3829f55e5 (diff)
downloadguix-4492981706e0f2041053fdc728e29232855d8689.tar.gz
gnu: pidgin: Fix build with Meson network-manager.
This is a follow-up commit to 255ff74f3ab514a76068f6cfccc7f8dbcf8b7f3f:
building network-manager with Meson breaks users of NetworkManager.pc.

* gnu/packages/messaging.scm (pidgin)[source]: Add pidgin-libnm.patch.
Force re-bootstrapping in a new snippet.
[native-inputs]: Add autoconf, automake, and libtool.
* gnu/packages/patches/pidgin-libnm.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/messaging.scm18
-rw-r--r--gnu/packages/patches/pidgin-libnm.patch60
2 files changed, 76 insertions, 2 deletions
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 57ff0835d1..ce542ad4f4 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -440,7 +440,16 @@ authentication.")
                            version "/pidgin-" version ".tar.bz2"))
        (sha256
         (base32 "13vdqj70315p9rzgnbxjp9c51mdzf1l4jg1kvnylc4bidw61air7"))
-       (patches (search-patches "pidgin-add-search-path.patch"))))
+       (patches (search-patches "pidgin-add-search-path.patch"
+                                ;; Remove the snippet and bootstrapping
+                                ;; native-inputs together with this patch.
+                                "pidgin-libnm.patch"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Remove stale generated file after applying pidgin-libnm.patch.
+           (delete-file "configure")
+           #t))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -448,7 +457,12 @@ authentication.")
        ("intltool" ,intltool)
        ("gconf" ,gconf)
        ("python" ,python-2)
-       ("doxygen" ,doxygen)))
+       ("doxygen" ,doxygen)
+
+       ;; For bootstrapping after applying pidgin-libnm.patch.
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
     (inputs
      `(("gtk+" ,gtk+-2)
        ("libgcrypt" ,libgcrypt)
diff --git a/gnu/packages/patches/pidgin-libnm.patch b/gnu/packages/patches/pidgin-libnm.patch
new file mode 100644
index 0000000000..d34af749af
--- /dev/null
+++ b/gnu/packages/patches/pidgin-libnm.patch
@@ -0,0 +1,60 @@
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Sun, 24 May 2020 16:11:01 +0200
+Subject: [PATCH] gnu: pidgin: Find libnm.
+
+Copied verbatim from[0].
+
+[0]: https://git.archlinux.org/svntogit/packages.git/plain/trunk/pidgin-nm-1.0.patch?h=packages/pidgin
+
+diff --git a/configure.ac b/configure.ac
+index 04836fa..0a2d451 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1423,18 +1423,24 @@ fi
+ dnl Check for NetworkManager.h; if we don't have it, oh well
+ if test "x$enable_dbus" = "xyes" ; then
+ 	if test "x$enable_nm" = "xyes" ; then
+-		PKG_CHECK_MODULES(NETWORKMANAGER, [NetworkManager >= 0.5.0], [
++		PKG_CHECK_MODULES(NETWORKMANAGER, [libnm], [
+ 			AC_SUBST(NETWORKMANAGER_CFLAGS)
+ 			AC_SUBST(NETWORKMANAGER_LIBS)
+ 			AC_DEFINE(HAVE_NETWORKMANAGER, 1, [Define if we have NetworkManager.])
+ 		], [
+-			enable_nm=no
+-			if test "x$force_deps" = "xyes" ; then
+-				AC_MSG_ERROR([
++			PKG_CHECK_MODULES(NETWORKMANAGER, [NetworkManager >= 0.5.0], [
++				AC_SUBST(NETWORKMANAGER_CFLAGS)
++				AC_SUBST(NETWORKMANAGER_LIBS)
++				AC_DEFINE(HAVE_NETWORKMANAGER, 1, [Define if we have NetworkManager.])
++			], [
++				enable_nm=no
++				if test "x$force_deps" = "xyes" ; then
++					AC_MSG_ERROR([
+ NetworkManager development headers not found.
+ Use --disable-nm if you do not need NetworkManager support.
+ ])
+-			fi])
++				fi])
++		])
+ 	fi
+ else
+ 	enable_nm=no
+diff --git a/libpurple/network.c b/libpurple/network.c
+index c43e3c7..b17e439 100644
+--- a/libpurple/network.c
++++ b/libpurple/network.c
+@@ -939,8 +939,13 @@ nm_update_state(NMState state)
+ #if NM_CHECK_VERSION(0,8,992)
+ 		case NM_STATE_DISCONNECTING:
+ #endif
++#if NM_CHECK_VERSION(1,0,0)
++			if (prev != NM_STATE_CONNECTED_GLOBAL && prev != NM_STATE_UNKNOWN)
++				break;
++#else
+ 			if (prev != NM_STATE_CONNECTED && prev != NM_STATE_UNKNOWN)
+ 				break;
++#endif
+ 			if (ui_ops != NULL && ui_ops->network_disconnected != NULL)
+ 				ui_ops->network_disconnected();
+ 			break;