SHA256
1
0
forked from pool/pidgin
Alexei Sorokin 2018-03-07 18:13:02 +00:00 committed by Git OBS Bridge
parent 1ae4a1456c
commit a40dd48d0e
4 changed files with 132 additions and 337 deletions

View File

@ -0,0 +1,64 @@
Actually make things work in python3.
Author: Jan Synacek <jsynacek@redhat.com>
--- a/libpurple/purple-remote 2015-06-03 09:52:26.324668688 +0200
+++ b/libpurple/purple-remote 2015-06-03 09:55:41.287253981 +0200
@@ -3,13 +3,13 @@
import codecs
import dbus
import re
-import urllib
+import urllib.parse
import sys
import xml.dom.minidom
sys.stdin = codecs.getwriter('utf-8')(sys.stdin);
-sys.stdout = codecs.getwriter('utf-8')(sys.stdout);
+sys.stdout = codecs.getwriter('utf-8')(sys.stdout.detach());
xml.dom.minidom.Element.all = xml.dom.minidom.Element.getElementsByTagName
@@ -41,7 +41,7 @@ class CheckedAttribute:
return result
def show_help(requested=False):
- print """This program uses D-Bus to communicate with purple.
+ print("""This program uses D-Bus to communicate with purple.
Usage:
@@ -72,7 +72,7 @@ Examples of commands:
PurpleAccountsFindConnected?name=&protocol=prpl-jabber
PurpleAccountsFindConnected(,prpl-jabber)
-""" % sys.argv[0]
+""" % sys.argv[0])
if (requested):
sys.exit(0)
else:
@@ -120,7 +120,7 @@ def execute(uri):
if paramstring is not None:
for param in paramstring.split("&"):
key, value = extendlist(param.split("=",1), 2, "")
- params[key] = urllib.unquote(value)
+ params[key] = urllib.parse.unquote(value)
accountname = params.get("account", "")
@@ -233,12 +233,12 @@ if len(sys.argv) == 1:
elif (sys.argv[1] == "--help" or sys.argv[1] == "-h"):
show_help(True)
elif (obj == None):
- print "No existing libpurple instance detected."
+ print("No existing libpurple instance detected.")
sys.exit(1);
for arg in sys.argv[1:]:
output = execute(arg)
if (output != None):
- print output
+ print(output)

View File

@ -1,226 +0,0 @@
--- a/configure.ac
+++ b/configure.ac
@@ -2222,6 +2222,20 @@ MSN, Yahoo!, Novell Groupwise and Google
fi
dnl #######################################################################
+dnl # Check for gnome-keyring
+dnl #--enable-gnome-keyring=(yes|no)
+dnl #######################################################################
+AC_ARG_ENABLE(gnome-keyring,
+ AC_HELP_STRING([--enable-gnome-keyring],
+ [use gnome keyring for storing password [default=no]]),,
+ enable_gnome_keyring=no)
+if test "x$enable_gnome_keyring" = "xyes"; then
+ PKG_CHECK_MODULES(PURPLE_KEYRING,
+ gnome-keyring-1,
+ AC_DEFINE(PURPLE_ENABLE_KEYRING, [], [Set if we should use gnome-keyring]))
+fi
+
+dnl #######################################################################
dnl # Check for Tcl
dnl #######################################################################
AC_ARG_ENABLE(tcl, [AC_HELP_STRING([--disable-tcl],
--- a/libpurple/account.c
+++ b/libpurple/account.c
@@ -54,6 +54,16 @@ typedef struct
#define PURPLE_ACCOUNT_GET_PRIVATE(account) \
((PurpleAccountPrivate *) (account->priv))
+#ifdef PURPLE_ENABLE_KEYRING
+#include <gnome-keyring.h>
+
+static char *
+purple_account_get_password_from_keyring(const char *_prpl, const char *_user);
+static gboolean
+purple_account_set_password_in_keyring(const char *_prpl, const char *_user,
+ const char *password);
+#endif
+
/* TODO: Should use PurpleValue instead of this? What about "ui"? */
typedef struct
{
@@ -394,8 +404,13 @@ account_to_xmlnode(PurpleAccount *accoun
if (purple_account_get_remember_password(account) &&
((tmp = purple_account_get_password(account)) != NULL))
{
+#ifdef PURPLE_ENABLE_KEYRING
+ purple_account_set_password_in_keyring(purple_account_get_protocol_id(account),
+ purple_account_get_username(account), tmp);
+#else
child = xmlnode_new_child(node, "password");
xmlnode_insert_data(child, tmp, -1);
+#endif
} else if (_purple_account_is_password_encrypted(account)) {
const char *keyring = NULL;
const char *mode = NULL;
@@ -903,6 +918,7 @@ parse_account(xmlnode *node)
char *protocol_id = NULL;
char *name = NULL;
char *data;
+ gboolean got_pwd = FALSE;
child = xmlnode_get_child(node, "protocol");
if (child != NULL)
@@ -927,36 +943,51 @@ parse_account(xmlnode *node)
}
ret = purple_account_new(name, _purple_oscar_convert(name, protocol_id)); /* XXX: */
+#ifdef PURPLE_ENABLE_KEYRING
+
+ /* Read the password from GNOME Keyring */
+ data = purple_account_get_password_from_keyring(protocol_id, name);
+ if (data)
+ {
+ got_pwd = TRUE;
+ purple_account_set_remember_password(ret, TRUE);
+ purple_account_set_password(ret, data);
+ g_free(data);
+ }
+#endif
g_free(name);
g_free(protocol_id);
/* Read the password */
- child = xmlnode_get_child(node, "password");
- if (child != NULL) {
- const char *keyring_id = xmlnode_get_attrib(child, "keyring_id");
- const char *mode = xmlnode_get_attrib(child, "mode");
- gboolean is_plaintext;
-
- data = xmlnode_get_data(child);
-
- if (keyring_id == NULL || keyring_id[0] == '\0')
- is_plaintext = TRUE;
- else if (g_strcmp0(keyring_id, "keyring-internal") != 0)
- is_plaintext = FALSE;
- else if (mode == NULL || mode[0] == '\0' || g_strcmp0(mode, "cleartext") == 0)
- is_plaintext = TRUE;
- else
- is_plaintext = FALSE;
-
- if (is_plaintext) {
- purple_account_set_remember_password(ret, TRUE);
- purple_account_set_password(ret, data);
- } else {
- purple_debug_warning("account", "found encrypted password, "
- "but it's not supported in 2.x.y\n");
- _purple_account_set_encrypted_password(ret, keyring_id, mode, data);
+ if (!got_pwd)
+ {
+ child = xmlnode_get_child(node, "password");
+ if (child != NULL) {
+ const char *keyring_id = xmlnode_get_attrib(child, "keyring_id");
+ const char *mode = xmlnode_get_attrib(child, "mode");
+ gboolean is_plaintext;
+
+ data = xmlnode_get_data(child);
+
+ if (keyring_id == NULL || keyring_id[0] == '\0')
+ is_plaintext = TRUE;
+ else if (g_strcmp0(keyring_id, "keyring-internal") != 0)
+ is_plaintext = FALSE;
+ else if (mode == NULL || mode[0] == '\0' || g_strcmp0(mode, "cleartext") == 0)
+ is_plaintext = TRUE;
+ else
+ is_plaintext = FALSE;
+
+ if (is_plaintext) {
+ purple_account_set_remember_password(ret, TRUE);
+ purple_account_set_password(ret, data);
+ } else {
+ purple_debug_warning("account", "found encrypted password, "
+ "but it's not supported in 2.x.y\n");
+ _purple_account_set_encrypted_password(ret, keyring_id, mode, data);
+ }
+ g_free(data);
}
- g_free(data);
}
/* Read the alias */
@@ -3375,6 +3406,64 @@ purple_accounts_uninit(void)
purple_signals_unregister_by_instance(handle);
}
+#ifdef PURPLE_ENABLE_KEYRING
+static char *
+purple_account_get_password_from_keyring(const char *_prpl, const char *_user)
+{
+ GnomeKeyringNetworkPasswordData *found_item;
+ GnomeKeyringResult result;
+ GList *matches;
+ char *password;
+
+ matches = NULL;
+
+ result = gnome_keyring_find_network_password_sync(
+ _user, /* user */
+ NULL, /* domain */
+ "gaim.local", /* server */
+ NULL, /* object */
+ _prpl, /* protocol */
+ NULL, /* authtype */
+ 1863, /* port */
+ &matches);
+
+ if (result != GNOME_KEYRING_RESULT_OK)
+ return NULL;
+
+ g_assert(matches != NULL && matches->data != NULL);
+
+ found_item = (GnomeKeyringNetworkPasswordData *) matches->data;
+
+ password = g_strdup(found_item->password);
+
+ gnome_keyring_network_password_list_free(matches);
+
+ return password;
+}
+
+static gboolean
+purple_account_set_password_in_keyring(const char *_prpl, const char *_user,
+ const char *_password)
+{
+ GnomeKeyringResult result;
+ guint32 item_id;
+
+ result = gnome_keyring_set_network_password_sync(
+ NULL, /* default keyring */
+ _user, /* user */
+ NULL, /* domain */
+ "gaim.local", /* server */
+ NULL, /* object */
+ _prpl, /* protocol */
+ NULL, /* authtype */
+ 1863, /* port */
+ _password, /* password */
+ &item_id);
+
+ return (result == GNOME_KEYRING_RESULT_OK);
+}
+#endif
+
/* libpurple 3.0.0 compatibility */
static void
--- a/libpurple/Makefile.am
+++ b/libpurple/Makefile.am
@@ -309,6 +309,7 @@ libpurple_la_LIBADD = \
$(GLIB_LIBS) \
$(LIBXML_LIBS) \
$(NETWORKMANAGER_LIBS) \
+ $(PURPLE_KEYRING_LIBS) \
$(INTLLIBS) \
$(FARSTREAM_LIBS) \
$(GSTREAMER_LIBS) \
@@ -334,7 +335,8 @@ AM_CPPFLAGS = \
$(GSTAPP_CFLAGS) \
$(GSTINTERFACES_CFLAGS) \
$(IDN_CFLAGS) \
- $(NETWORKMANAGER_CFLAGS)
+ $(NETWORKMANAGER_CFLAGS) \
+ $(PURPLE_KEYRING_CFLAGS)
# INSTALL_SSL_CERTIFICATES is true when SSL_CERTIFICATES_DIR is empty.
# We want to use SSL_CERTIFICATES_DIR when it's not empty.

View File

@ -1,3 +1,17 @@
-------------------------------------------------------------------
Tue Mar 6 21:35:58 UTC 2018 - mgorse@suse.com
- Add pidgin-2.10.11-purple-remote-python3.patch: port
purple-remote to python 3 (bsc#1084147).
- Export PYTHON=python3 in %build.
- Adjust scripts to invoke python3, not python2.
-------------------------------------------------------------------
Tue Mar 6 20:12:39 UTC 2018 - sor.alexei@meowr.ru
- Drop support for SLE 11 and openSUSE older than 42.x.
- Remove pidgin-gnome-keyring.patch: was only useful for SLE 11.
-------------------------------------------------------------------
Tue Mar 6 15:52:11 UTC 2018 - dimstar@opensuse.org

View File

@ -23,7 +23,7 @@ Release: 0
Summary: Multiprotocol Instant Messaging Client
License: GPL-2.0-only
Group: Productivity/Networking/Instant Messenger
URL: https://pidgin.im/
Url: https://pidgin.im/
Source: http://downloads.sf.net/%{name}/%{name}-%{version}.tar.bz2
Source1: http://downloads.sf.net/%{name}/%{name}-%{version}.tar.bz2.asc
Source2: pidgin.keyring
@ -32,84 +32,64 @@ Source3: pidgin-prefs.xml
Patch0: pidgin-nonblock-common.patch
# PATCH-FIX-OPENSUSE pidgin-nonblock-gwim.patch
Patch1: pidgin-nonblock-gwim.patch
# PATCH-FEATURE-SLE pidgin-gnome-keyring.patch
Patch2: pidgin-gnome-keyring.patch
# PATCH-FIX-OPENSUSE pidgin-fix-perl-build.patch vuntz@opensuse.org -- Revert https://bitbucket.org/pidgin/main/commits/a083625 as it breaks the build.
Patch3: pidgin-fix-perl-build.patch
Patch2: pidgin-fix-perl-build.patch
# PATCH-FIX-UPSTREAM pidgin-ncurses-6.0-accessors.patch pidgin.im#16764 dimstar@opensuse.org -- Fix build with NCurses 6.0 with WINDOW_OPAQUE set to 1.
Patch4: pidgin-ncurses-6.0-accessors.patch
Patch3: pidgin-ncurses-6.0-accessors.patch
# PATCH-FIX-UPSTREAM pidgin-2.10.11-purple-remote-python3.patch bsc#1084147 mgorse@suse.com -- Port purple=-remote to Python 3.
Patch4: pidgin-2.10.11-purple-remote-python3.patch
# PATCH-FIX-SLE pidgin-use-default-alsa.patch bsc#886670 tiwai@suse.de -- Use ALSA as a default for avoiding broken volume control.
Patch5: pidgin-use-default-alsa.patch
BuildRequires: NetworkManager-devel
# Can use external libzephyr.
BuildRequires: cyrus-sasl-devel
BuildRequires: dbus-1-devel
BuildRequires: dbus-1-glib-devel
BuildRequires: ca-certificates-mozilla
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: graphviz
BuildRequires: gtk-doc
BuildRequires: gtkspell-devel
BuildRequires: intltool
BuildRequires: libavahi-glib-devel
BuildRequires: libgadu-devel
BuildRequires: libgnutls-devel
BuildRequires: libidn-devel
BuildRequires: libnotify-devel
BuildRequires: libstdc++-devel
BuildRequires: libtool
BuildRequires: libxml2-devel
BuildRequires: libxslt
BuildRequires: meanwhile-devel
BuildRequires: mozilla-nspr-devel
BuildRequires: ncurses-devel
BuildRequires: pkgconfig
BuildRequires: startup-notification-devel
BuildRequires: tk-devel
BuildRequires: update-desktop-files
Requires: perl-base >= %{perl_version}
%if 0%{?suse_version} >= 1120
BuildRequires: translation-update-upstream
%else
# gnome-keyring support summary (boo#566286):
# 11.1 & SLE11: patch present and active (boo#569025)
# 11.2 and above: patch not applied
# For openSUSE, it's better to avoid this patch:
# + does not work well outside GNOME
# - passwords are stored in readable form
BuildRequires: gnome-keyring-devel
Recommends: %{name}-emoticons-nld
Recommends: %{name}-emoticons-tango
%endif
%if 0%{?suse_version} > 1210
BuildRequires: libSM-devel
BuildRequires: libX11-devel
BuildRequires: libXScrnSaver-devel
BuildRequires: libXext-devel
BuildRequires: mozilla-nss-devel
%endif
%if 0%{?suse_version} >= 1230
BuildRequires: ca-certificates-mozilla
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(NetworkManager)
BuildRequires: pkgconfig(avahi-glib)
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(dbus-glib-1)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gnutls)
BuildRequires: pkgconfig(gtk+-2.0)
BuildRequires: pkgconfig(gtkspell-2.0)
BuildRequires: pkgconfig(libgadu)
BuildRequires: pkgconfig(libidn)
BuildRequires: pkgconfig(libnotify)
# Can use external libzephyr.
BuildRequires: pkgconfig(libsasl2)
BuildRequires: pkgconfig(libstartup-notification-1.0)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(meanwhile)
BuildRequires: pkgconfig(nspr)
BuildRequires: pkgconfig(nss)
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(sm)
BuildRequires: pkgconfig(tk)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xscrnsaver)
Requires: ca-certificates-mozilla
%else
BuildRequires: openssl-certs
Requires: openssl-certs
%endif
%if 0%{?suse_version} > 1320 || 0%{?sle_version} >= 120200 || (0%{?sle_version} >= 120100 && 0%{?is_opensuse})
BuildRequires: farstream-devel >= 0.2.7
BuildRequires: gstreamer-devel
BuildRequires: gstreamer-plugins-base-devel
Requires: perl-base >= %{perl_version}
%if 0%{?suse_version} >= 1500 || 0%{?sle_version} >= 120200 || (0%{?sle_version} >= 120100 && 0%{?is_opensuse})
BuildRequires: pkgconfig(farstream-0.2) >= 0.2.7
BuildRequires: pkgconfig(gstreamer-1.0)
BuildRequires: pkgconfig(gstreamer-app-1.0)
BuildRequires: pkgconfig(gstreamer-video-1.0)
Recommends: gstreamer-plugins-good
%else
BuildRequires: gstreamer-0_10-devel
BuildRequires: gstreamer-0_10-plugins-base-devel
BuildRequires: pkgconfig(gstreamer-0.10)
BuildRequires: pkgconfig(gstreamer-interfaces-0.10)
Recommends: gstreamer-0_10-plugins-good
%endif
%if 0%{?suse_version} > 1320 || 0%{?sle_version} >= 120300
BuildRequires: python2-devel
%else
BuildRequires: python-devel
%endif
%if 0%{?suse_version} >= 1500 && !0%{?is_opensuse}
Recommends: purple-import-empathy
%endif
@ -127,9 +107,9 @@ support many more with plugins.
Summary: Development Headers, Documentation, and Libraries for Pidgin
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
Requires: glib2-devel
Requires: gtk2-devel
Requires: libpurple-devel = %{version}
Requires: pkgconfig(glib-2.0)
Requires: pkgconfig(gtk+-2.0)
%description devel
The pidgin-devel package contains the header files, developer
@ -138,19 +118,19 @@ and plugins.
%package -n libpurple
Summary: GLib-based Instant Messenger Library
# Not really required, but standard XMPP accounts require it, if compiled with SASL support.
Group: System/Libraries
Requires: ca-certificates-mozilla
# Not really required, but standard XMPP accounts require it, if compiled with SASL support.
Requires: cyrus-sasl-digestmd5
Requires: cyrus-sasl-plain
# Needed for purple-url-handler.
Requires: dbus-1-python
Requires: libpurple-branding
Requires: perl >= %{perl_version}
Recommends: libpurple-lang
%if 0%{?suse_version} >= 1230
Requires: ca-certificates-mozilla
# Needed for purple-url-handler.
%if 0%{?suse_version} >= 1500
Requires: python3-dbus-python
%else
Requires: openssl-certs
Requires: dbus-1-python3
%endif
%description -n libpurple
@ -169,11 +149,9 @@ Summary: GLib-based Instant Messenger Library -- Upstream default configu
Group: System/Libraries
Requires: libpurple = %{version}
Supplements: packageand(libpurple:branding-upstream)
Conflicts: libpurple-branding
Conflicts: otherproviders(libpurple-branding)
Provides: libpurple-branding = %{version}
%if 0%{?suse_version} >= 1210
BuildArch: noarch
%endif
#BRAND: Provides /etc/purple/prefs.xml, the default configuration for
#BRAND: libpurple, and libpurple-based clients.
@ -218,8 +196,8 @@ Summary: Sametime Plugin for Pidgin using the Meanwhile Library
Group: Productivity/Networking/Instant Messenger
Requires: libpurple = %{version}
# libpurple-meanwhile was last used in openSUSE Leap 42.2.
Provides: libpurple-meanwhile = %{version}-%{release}
Obsoletes: libpurple-meanwhile < %{version}-%{release}
Provides: libpurple-meanwhile = %{version}
Obsoletes: libpurple-meanwhile < %{version}
%description -n libpurple-plugin-sametime
IBM Sametime plugin for Pidgin using the Meanwhile library.
@ -251,9 +229,7 @@ scripts and plugins.
%prep
%setup -q
%if 0%{?suse_version} >= 1120
translation-update-upstream
%endif
%patch0 -p1
%patch1 -p1
%patch2 -p1
@ -270,13 +246,14 @@ mv po/my_MM.po po/my.po
sed -i "/ALL_LINGUAS/s/ my_MM / my /" configure.ac
# Do not use env for python sripts.
sed -i '/^#!/s|env python$|python2|' libpurple/purple-*
sed -i '/^#!/s|env python$|python3|' libpurple/purple-*
%build
export CFLAGS="%{optflags} -fstack-protector -fPIC"
export CXXFLAGS="%{optflags} -fstack-protector -fPIC"
export FFLAGS="%{optflags} -fstack-protector -fPIC"
export LDFLAGS="-pie"
export PYTHON=python3
autoreconf -fi
%configure \
--disable-static \
@ -284,15 +261,12 @@ autoreconf -fi
--enable-cyrus-sasl \
--enable-dbus \
--enable-gstreamer \
%if 0%{?suse_version} > 1320 || 0%{?sle_version} >= 120200 || (0%{?sle_version} >= 120100 && 0%{?is_opensuse})
%if 0%{?suse_version} >= 1500 || 0%{?sle_version} >= 120200
--with-gstreamer=1.0 \
--enable-vv \
%else
--with-gstreamer=0.10 \
--disable-vv \
%endif
%if 0%{?suse_version} < 1120
--enable-gnome-keyring \
%endif
--enable-nm \
--enable-dbus \
@ -305,10 +279,6 @@ make %{?_smp_mflags} V=1
%install
%make_install
%if 0%{?suse_version} <= 1140
mkdir -p %{buildroot}%{_sysconfdir}/purple/
rm -f %{buildroot}%{_sysconfdir}/gconf/schemas/purple.schemas
%endif
install -Dpm 0644 %{name}-prefs.xml %{buildroot}%{_sysconfdir}/purple/prefs.xml
%perl_process_packlist
@ -328,7 +298,7 @@ done
%suse_update_desktop_file -N %{_name} -G "Instant Messenger" %{name}
%find_lang %{name} %{?no_lang_C}
%if 0%{?suse_version} > 1130 && 0%{?suse_version} <= 1320
%if 0%{?suse_version} < 1500
%post
%desktop_database_post
%icon_theme_cache_post
@ -339,15 +309,11 @@ done
%endif
%post -n libpurple -p /sbin/ldconfig
%postun -n libpurple -p /sbin/ldconfig
%post -n finch -p /sbin/ldconfig
%postun -n finch -p /sbin/ldconfig
%files
%defattr(-,root,root)
%license COPYING
%doc AUTHORS COPYRIGHT ChangeLog README doc/the_penguin.txt
%{_bindir}/%{name}
@ -361,13 +327,11 @@ done
%{_mandir}/man1/%{name}.1%{?ext_man}
%files devel
%defattr(-,root,root)
%{_includedir}/%{name}/
%{_libdir}/pkgconfig/%{name}.pc
%{_mandir}/man3/%{_name}.3*%{?ext_man}
%files -n libpurple
%defattr(-,root,root)
%dir %{_sysconfdir}/purple/
%{_bindir}/purple-client-example
%{_bindir}/purple-remote
@ -381,36 +345,17 @@ done
%exclude %{_libdir}/purple-2/tcl.so
%files -n libpurple-lang -f %{name}.lang
%defattr(-,root,root)
%if 0%{?suse_version} < 1140
# These locales are not included in respective products.
# See https://bugzilla.opensuse.org/show_bug.cgi?id=659001
%dir %{_datadir}/locale/brx/
%dir %{_datadir}/locale/brx/LC_MESSAGES/
%dir %{_datadir}/locale/ku_IQ/
%dir %{_datadir}/locale/ku_IQ/LC_MESSAGES/
%dir %{_datadir}/locale/mhr/
%dir %{_datadir}/locale/mhr/LC_MESSAGES/
%dir %{_datadir}/locale/ms_MY/
%dir %{_datadir}/locale/ms_MY/LC_MESSAGES/
%dir %{_datadir}/locale/sd/
%dir %{_datadir}/locale/sd/LC_MESSAGES/
%endif
%files -n libpurple-branding-upstream
%defattr(-,root,root)
%config %{_sysconfdir}/purple/prefs.xml
%files -n libpurple-tcl
%defattr(-,root,root)
%{_libdir}/purple-2/tcl.so
%files -n libpurple-plugin-sametime
%defattr(-,root,root)
%{_libdir}/purple-2/libsametime.so
%files -n libpurple-devel
%defattr(-,root,root)
%doc ChangeLog.API HACKING PLUGIN_HOWTO
%doc libpurple/purple-notifications-example
%{_includedir}/libpurple/
@ -421,7 +366,6 @@ done
%{_mandir}/man3/Purple.3*
%files -n finch
%defattr(-,root,root)
%{_bindir}/finch
%{_libdir}/finch/
%{_libdir}/libgnt.so.*
@ -430,7 +374,6 @@ done
%{_mandir}/man1/finch.1*
%files -n finch-devel
%defattr(-,root,root)
%{_includedir}/finch/
%{_includedir}/gnt/
%{_libdir}/libgnt.so