diff options
| author | Remi Collet <fedora@famillecollet.com> | 2012-09-08 09:54:23 +0200 | 
|---|---|---|
| committer | Remi Collet <fedora@famillecollet.com> | 2012-09-08 09:54:23 +0200 | 
| commit | 87a994c14ce8c9430ba7f240c151473aea366f29 (patch) | |
| tree | 45a1c093f0bdad8a7efde89631986c10725629d6 | |
supybot: import from rawhide
| -rw-r--r-- | Supybot-0.83.4.1-karma-plugin.patch | 184 | ||||
| -rw-r--r-- | supybot-0.83.4.1-json.patch | 30 | ||||
| -rw-r--r-- | supybot.spec | 179 | 
3 files changed, 393 insertions, 0 deletions
| diff --git a/Supybot-0.83.4.1-karma-plugin.patch b/Supybot-0.83.4.1-karma-plugin.patch new file mode 100644 index 0000000..1cad0bf --- /dev/null +++ b/Supybot-0.83.4.1-karma-plugin.patch @@ -0,0 +1,184 @@ +diff -uNr Supybot-0.83.4.1-orig/plugins/Karma/plugin.py Supybot-0.83.4.1/plugins/Karma/plugin.py +--- Supybot-0.83.4.1-orig/plugins/Karma/plugin.py	2009-05-25 12:38:12.000000000 -0500 ++++ Supybot-0.83.4.1/plugins/Karma/plugin.py	2010-06-03 12:17:20.355768834 -0500 +@@ -49,7 +49,7 @@ +  +     def _getDb(self, channel): +         try: +-            import sqlite ++            from pysqlite2 import dbapi2 +         except ImportError: +             raise callbacks.Error, 'You need to have PySQLite installed to ' \ +                                    'use Karma.  Download it at ' \ +@@ -58,9 +58,9 @@ +         if filename in self.dbs: +             return self.dbs[filename] +         if os.path.exists(filename): +-            self.dbs[filename] = sqlite.connect(filename) ++            self.dbs[filename] = dbapi2.connect(filename) +             return self.dbs[filename] +-        db = sqlite.connect(filename) ++        db = dbapi2.connect(filename) +         self.dbs[filename] = db +         cursor = db.cursor() +         cursor.execute("""CREATE TABLE karma ( +@@ -80,12 +80,16 @@ +         db = self._getDb(channel) +         thing = thing.lower() +         cursor = db.cursor() +-        cursor.execute("""SELECT added, subtracted FROM karma +-                          WHERE normalized=%s""", thing) +-        if cursor.rowcount == 0: ++        sql = """SELECT added, subtracted FROM karma ++                          WHERE normalized='%s'""" % thing ++        cursor.execute(sql) ++        results = cursor.fetchall() ++        print results ++        if results == []: +             return None +         else: +-            return map(int, cursor.fetchone()) ++            return results[0] ++            #return map(int, results) +  +     def gets(self, channel, things): +         db = self._getDb(channel) +@@ -93,7 +97,7 @@ +         normalizedThings = dict(zip(map(lambda s: s.lower(), things), things)) +         criteria = ' OR '.join(['normalized=%s'] * len(normalizedThings)) +         sql = """SELECT name, added-subtracted FROM karma +-                 WHERE %s ORDER BY added-subtracted DESC""" % criteria ++                 WHERE '%s' ORDER BY added-subtracted DESC""" % criteria +         cursor.execute(sql, *normalizedThings) +         L = [(name, int(karma)) for (name, karma) in cursor.fetchall()] +         for (name, _) in L: +@@ -106,53 +110,49 @@ +         db = self._getDb(channel) +         cursor = db.cursor() +         cursor.execute("""SELECT name, added-subtracted FROM karma +-                          ORDER BY added-subtracted DESC LIMIT %s""", limit) ++                          ORDER BY added-subtracted DESC LIMIT '%s'""" % limit) +         return [(t[0], int(t[1])) for t in cursor.fetchall()] +  +     def bottom(self, channel, limit): +         db = self._getDb(channel) +         cursor = db.cursor() +         cursor.execute("""SELECT name, added-subtracted FROM karma +-                          ORDER BY added-subtracted ASC LIMIT %s""", limit) ++                          ORDER BY added-subtracted ASC LIMIT '%s'""" % limit) +         return [(t[0], int(t[1])) for t in cursor.fetchall()] +  +     def rank(self, channel, thing): +         db = self._getDb(channel) +         cursor = db.cursor() +         cursor.execute("""SELECT added-subtracted FROM karma +-                          WHERE name=%s""", thing) +-        if cursor.rowcount == 0: ++                          WHERE name='%s'""" % thing) ++        if cursor.rowcount <= 0: +             return None +-        karma = int(cursor.fetchone()[0]) ++        karma = int(cursor.fetchall()[0]) +         cursor.execute("""SELECT COUNT(*) FROM karma +-                          WHERE added-subtracted > %s""", karma) +-        rank = int(cursor.fetchone()[0]) ++                          WHERE added-subtracted > '%s'""" % karma) ++        rank = int(cursor.fetchall()[0]) +         return rank+1 +  +     def size(self, channel): +         db = self._getDb(channel) +         cursor = db.cursor() +         cursor.execute("""SELECT COUNT(*) FROM karma""") +-        return int(cursor.fetchone()[0]) ++        return int(cursor.fetchall()[0]) +  +     def increment(self, channel, name): +         db = self._getDb(channel) +         cursor = db.cursor() +         normalized = name.lower() +-        cursor.execute("""INSERT INTO karma VALUES (NULL, %s, %s, 0, 0)""", +-                       name, normalized) +-        cursor.execute("""UPDATE karma SET added=added+1 +-                          WHERE normalized=%s""", normalized) ++        cursor.execute("""INSERT INTO karma VALUES (NULL, '%s', '%s', 0, 0)""" % (name, normalized)) ++        cursor.execute("""UPDATE karma SET added=added+1 WHERE normalized='%s'"""  % normalized) +         db.commit() +  +     def decrement(self, channel, name): +         db = self._getDb(channel) +         cursor = db.cursor() +         normalized = name.lower() +-        cursor.execute("""INSERT INTO karma VALUES (NULL, %s, %s, 0, 0)""", +-                       name, normalized) +-        cursor.execute("""UPDATE karma SET subtracted=subtracted+1 +-                          WHERE normalized=%s""", normalized) ++        cursor.execute("""INSERT INTO karma VALUES (NULL, '%s', '%s', 0, 0)""" % (name, normalized)) ++        cursor.execute("""UPDATE karma SET subtracted=subtracted+1 WHERE normalized='%s'""" % normalized) +         db.commit() +  +     def most(self, channel, kind, limit): +@@ -164,7 +164,7 @@ +             orderby = 'added+subtracted' +         else: +             raise ValueError, 'invalid kind' +-        sql = """SELECT name, %s FROM karma ORDER BY %s DESC LIMIT %s""" % \ ++        sql = """SELECT name, '%s' FROM karma ORDER BY '%s' DESC LIMIT '%s'""" % \ +               (orderby, orderby, limit) +         db = self._getDb(channel) +         cursor = db.cursor() +@@ -176,7 +176,7 @@ +         cursor = db.cursor() +         normalized = name.lower() +         cursor.execute("""UPDATE karma SET subtracted=0, added=0 +-                          WHERE normalized=%s""", normalized) ++                          WHERE normalized='%s'""" % normalized) +         db.commit() +  +     def dump(self, channel, filename): +@@ -200,13 +200,13 @@ +         for (name, added, subtracted) in reader: +             normalized = name.lower() +             cursor.execute("""INSERT INTO karma +-                              VALUES (NULL, %s, %s, %s, %s)""", +-                           name, normalized, added, subtracted) ++                              VALUES (NULL, '%s', '%s', '%s', '%s')""" % ++                           (name, normalized, added, subtracted)) +         db.commit() +         fd.close() +  + KarmaDB = plugins.DB('Karma', +-                     {'sqlite': SqliteKarmaDB}) ++                     {'pysqlite2': SqliteKarmaDB}) +  + class Karma(callbacks.Plugin): +     callBefore = ('Factoids', 'MoobotFactoids', 'Infobot') +@@ -249,6 +249,10 @@ +             elif thing: +                 self.db.decrement(channel, self._normalizeThing(thing)) +                 self._respond(irc, channel) ++        t = self.db.get(channel, thing) ++        (added, subtracted) = t ++        total = added - subtracted ++        irc.reply('Karma for %s (%s)' % (thing, total)) +  +     def invalidCommand(self, irc, msg, tokens): +         channel = msg.args[0] +diff -uNr Supybot-0.83.4.1-orig/plugins/Karma/test.py Supybot-0.83.4.1/plugins/Karma/test.py +--- Supybot-0.83.4.1-orig/plugins/Karma/test.py	2009-05-25 12:38:12.000000000 -0500 ++++ Supybot-0.83.4.1/plugins/Karma/test.py	2010-06-03 12:12:41.090762813 -0500 +@@ -30,11 +30,11 @@ + from supybot.test import * +  + try: +-    import sqlite ++    import pysqlite2 + except ImportError: +-    sqlite = None ++    pysqlite2 = None +  +-if sqlite is not None: ++if pysqlite2 is not None: +     class KarmaTestCase(ChannelPluginTestCase): +         plugins = ('Karma',) +         def testKarma(self): diff --git a/supybot-0.83.4.1-json.patch b/supybot-0.83.4.1-json.patch new file mode 100644 index 0000000..f6606fe --- /dev/null +++ b/supybot-0.83.4.1-json.patch @@ -0,0 +1,30 @@ +diff --git a/plugins/Google/plugin.py b/plugins/Google/plugin.py +index e1b6bee..98fd7dd 100644 +--- a/plugins/Google/plugin.py ++++ b/plugins/Google/plugin.py +@@ -42,15 +42,21 @@ import supybot.ircmsgs as ircmsgs + import supybot.ircutils as ircutils + import supybot.callbacks as callbacks +  ++simplejson = None ++ ++try: ++    simplejson = utils.python.universalImport('json') ++except ImportError: ++    pass ++ + try: +-    simplejson = utils.python.universalImport('json', 'simplejson', +-                                              'local.simplejson') +     # The 3rd party simplejson module was included in Python 2.6 and renamed to +     # json.  Unfortunately, this conflicts with the 3rd party json module. +     # Luckily, the 3rd party json module has a different interface so we test +     # to make sure we aren't using it. +-    if hasattr(simplejson, 'read'): +-        raise ImportError ++    if simplejson is None or hasattr(simplejson, 'read'): ++        simplejson = utils.python.universalImport('simplejson', ++                                                  'local.simplejson') + except ImportError: +     raise callbacks.Error, \ +             'You need Python2.6 or the simplejson module installed to use ' \ diff --git a/supybot.spec b/supybot.spec new file mode 100644 index 0000000..1d582ea --- /dev/null +++ b/supybot.spec @@ -0,0 +1,179 @@ +%global origname Supybot +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} + +Name:           supybot +Version:        0.83.4.1 +Release:        9%{?dist} +Summary:        Cross-platform IRC bot written in Python + +Group:          Applications/Internet +# The entire source code is BSD except for +# Supybot-0.83.4/plugins/Math/local/convertcore.py which is GPLv2 +License:        BSD and GPLv2 +URL:            http://supybot.com +Source0:        http://downloads.sourceforge.net/supybot/%{origname}-%{version}.tar.bz2 +# Fix a conflict between python-json and the built in json module +# in Python 2.6.  Already submitted and commited upstream. +Patch0:         %{name}-%{version}-json.patch +#fix karma plugin to actually work should go upstream +Patch1:         Supybot-0.83.4.1-karma-plugin.patch +BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) + +BuildArch:      noarch +BuildRequires:  python-setuptools-devel +Requires:       python-twisted-core +Requires:       python-twisted-names +Requires:       python-dateutil +Requires:       python-feedparser +Requires:       python-dictclient +Requires:       python-simplejson +Provides:       Supybot = %{version}-%{release} +Conflicts:	supybot-gribble + +%description +Supybot is a robust, user-friendly, and programmer-friendly Python IRC bot. +It aims to be an adequate replacement for most existing IRC bots.  It +includes a very flexible and powerful ACL system for controlling access +to commands, as well as more than 50 builtin plugins providing around +400 actual commands. + +%prep +%setup -q -n %{origname}-%{version} +%patch0 -p1 +%patch1 -p1 + + +%build +CFLAGS="%{optflags}" %{__python} -c 'import setuptools; execfile("setup.py")' build + + +%install +%{__rm} -rf %{buildroot} +%{__python} -c 'import setuptools; execfile("setup.py")' install \ +    --skip-build --root %{buildroot} + +%{__install} -d -m 755 %{buildroot}%{_mandir}/man1/ +%{__install} -m 644 docs/man/supybot.1 %{buildroot}%{_mandir}/man1/ +%{__install} -m 644 docs/man/supybot-adduser.1 %{buildroot}%{_mandir}/man1/ +%{__install} -m 644 docs/man/supybot-botchk.1 %{buildroot}%{_mandir}/man1/ +%{__install} -m 644 docs/man/supybot-plugin-create.1 %{buildroot}%{_mandir}/man1/ +%{__install} -m 644 docs/man/supybot-plugin-doc.1 %{buildroot}%{_mandir}/man1/ +%{__install} -m 644 docs/man/supybot-test.1 %{buildroot}%{_mandir}/man1/ +%{__install} -m 644 docs/man/supybot-wizard.1 %{buildroot}%{_mandir}/man1/ + +# These are provided in python-feedparser, python-dateutil, +# python-dictclient, and python-simplejson +%{__rm} -rf %{buildroot}%{python_sitelib}/supybot/plugins/RSS/local +%{__rm} -rf %{buildroot}%{python_sitelib}/supybot/plugins/Time/local +%{__rm} -rf %{buildroot}%{python_sitelib}/supybot/plugins/Dict/local +%{__rm} -rf %{buildroot}%{python_sitelib}/supybot/plugins/Google/local + + +%clean +%{__rm} -rf %{buildroot} + + +%files +%defattr(-,root,root,-) +%doc ACKS ChangeLog LICENSE README RELNOTES +%doc docs/{ADVANCED_PLUGIN_CONFIG,ADVANCED_PLUGIN_TESTING,CAPABILITIES} +%doc docs/{CONFIGURATION,FAQ,GETTING_STARTED,PLUGIN_TUTORIAL,STYLE} +%doc docs/{USING_UTILS,USING_WRAP} +%{python_sitelib}/*egg-info +%{python_sitelib}/supybot +%{_bindir}/supybot +%{_bindir}/supybot-adduser +%{_bindir}/supybot-botchk +%{_bindir}/supybot-plugin-create +%{_bindir}/supybot-plugin-doc +%{_bindir}/supybot-plugin-package +%{_bindir}/supybot-test +%{_bindir}/supybot-wizard +%{_mandir}/man1/supybot.1* +%{_mandir}/man1/supybot-adduser.1* +%{_mandir}/man1/supybot-botchk.1* +%{_mandir}/man1/supybot-plugin-create.1* +%{_mandir}/man1/supybot-plugin-doc.1* +%{_mandir}/man1/supybot-test.1* +%{_mandir}/man1/supybot-wizard.1* + + +%changelog +* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.83.4.1-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.83.4.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Apr 18 2011 Dave Riches <dcr226@fedoraproject.org> - 0.83.4.1-7 +- added conflict with supybot-gribble + +* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.83.4.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Thu Jul 22 2010 David Malcolm <dmalcolm@redhat.com> - 0.83.4.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Thu Jun 03 2010 Dennis Gilmore <dennis@ausil.us> - 0.83.4.1-4 +- actually apply the patch + +* Thu Jun 03 2010 Dennis Gilmore <dennis@ausil.us> - 0.83.4.1-3 +- add a patch to make the karma plugin work + +* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.83.4.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Jun 03 2009 Ricky Zhou <ricky@fedoraproject.org> - 0.83.4.1-1 +- Upstream released new version. + +* Mon May 18 2009 Ricky Zhou <ricky@fedoraproject.org> - 0.83.4-1 +- Upstream released new version. + +* Tue Apr 14 2009 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-11 +- Change define to global. +- Remove old >= 8 conditional. +- Remove unnecessary BuildRequires on python-devel. + +* Sat Apr 11 2009 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-10 +- Backporting Python 2.6 fixes from Supybot git. + +* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.83.3-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 0.83.3-8 +- Rebuild for Python 2.6 + +* Thu Jun 05 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-7 +- Uncomment python-dictclient requirement. + +* Wed May 24 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-6 +- Add Requires for plugin dependencies. +- Add Provides Supybot. + +* Wed May 07 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-5 +- Apply Douglas Warner's patch to fix line lengths/add origname macro. + +* Wed May 07 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-4 +- Rename from Supybot to supybot. +- Fix incorrect paths to rm. + +* Sun Apr 06 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-3 +- Remove included Python modules. +- Mention different license for plugins/Math/convertcore.py. + +* Fri Mar 07 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-2 +- Use macros instead of calling commands directly. + +* Fri Mar 07 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-1 +- Update for 0.83.3 release. + +* Fri Mar 07 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.2-3 +- Generate egg-info for Fedora <= 8, add to files section. + +* Fri Mar 07 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.2-2 +- Use consistent macro style. +- Update source URLs to match guidelines more precisely. + +* Fri Mar 07 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.2-1 +- Initial RPM Package. + | 
