ports/157840: [NEW PORT] net-im/py-turpial, Identi.ca and Twitter client written in Python and GTK

Olivier Duchateau duchateau.olivier at gmail.com
Mon Jun 13 14:00:25 UTC 2011


>Number:         157840
>Category:       ports
>Synopsis:       [NEW PORT] net-im/py-turpial, Identi.ca and Twitter client written in Python and GTK
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jun 13 14:00:23 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Olivier Duchateau
>Release:        FreeBSD 8.2-RELEASE
>Organization:
>Environment:
FreeBSD bornem.errements.net 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Fri Feb 18 02:24:46 UTC 2011     root at almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386
>Description:
Turpial is a microblogging client for social networks like Twitter and Identi.ca. It's written in Python (with GTK like toolkit).

- Patches for Python >= 2.7 (argparse) and Python < 2.7 (optparse)
- Replace linux related stuff
- Fix problem with Unicode when filesystem is in ISO (I send patches in upstream, but I never got response)
>How-To-Repeat:

>Fix:


Patch attached with submission follows:

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	py-turpial/
#	py-turpial/files
#	py-turpial/files/patch-turpial.desktop
#	py-turpial/files/patch-turpial_ui_gtk_about.py
#	py-turpial/files/extra-patch-optparse-turpial_main.py
#	py-turpial/files/extra-patch-argparse-turpial_main.py
#	py-turpial/files/patch-turpial_ui_gtk_statuslist.py
#	py-turpial/files/patch-turpial_api_interfaces_protocol.py
#	py-turpial/pkg-plist
#	py-turpial/pkg-descr
#	py-turpial/distinfo
#	py-turpial/Makefile
#
echo c - py-turpial/
mkdir -p py-turpial/ > /dev/null 2>&1
echo c - py-turpial/files
mkdir -p py-turpial/files > /dev/null 2>&1
echo x - py-turpial/files/patch-turpial.desktop
sed 's/^X//' >py-turpial/files/patch-turpial.desktop << 'cd293df79eaec76834f952ad78a64a78'
X--- turpial.desktop.orig	2011-01-22 22:05:07.000000000 +0100
X+++ turpial.desktop	2011-02-18 23:38:51.000000000 +0100
X@@ -3,8 +3,10 @@
X Encoding=UTF-8
X Name=Turpial
X Name[es]=Turpial
X+Name[fr]=Turpial
X GenericName=Twitter client
X GenericName[es]=Cliente Twitter
X+GenericName[fr]=Client pour Twitter et Identi.ca
X Comment=Twitter client written in Python
X Comment[es]=Cliente Twitter escrito en Python
X Exec=turpial
cd293df79eaec76834f952ad78a64a78
echo x - py-turpial/files/patch-turpial_ui_gtk_about.py
sed 's/^X//' >py-turpial/files/patch-turpial_ui_gtk_about.py << '6f9b9be384fbbafdece4e8441c672797'
X--- turpial/ui/gtk/about.py.orig	2011-01-22 22:05:08.000000000 +0100
X+++ turpial/ui/gtk/about.py	2011-02-18 23:35:39.000000000 +0100
X@@ -22,8 +22,8 @@
X         about.set_website('http://turpial.org.ve')
X         
X         try:
X-            path = os.path.realpath(os.path.join(os.path.dirname(__file__), 
X-                '..', '..', '..', 'COPYING'))
X+            path = os.path.realpath(os.path.join('%%PREFIX%%', 'share', 'doc', 
X+                'turpial', 'COPYING'))
X             lic = file(path, 'r')
X             license = lic.read()
X             lic.close()
X@@ -39,8 +39,8 @@
X         about.set_license(license)
X         authors = []
X         try:
X-            path = os.path.realpath(os.path.join(os.path.dirname(__file__), 
X-                '..', '..', '..', 'AUTHORS'))
X+            path = os.path.realpath(os.path.join('%%PREFIX%%', 'share', 'doc', 
X+                'turpial', 'AUTHORS'))
X             f = file(path, 'r')
X             for line in f:
X                 authors.append(line.strip('\n'))
X@@ -51,8 +51,8 @@
X         
X         translators = ''
X         try:
X-            path = os.path.realpath(os.path.join(os.path.dirname(__file__), 
X-                '..', '..', '..', 'TRANSLATORS'))
X+            path = os.path.realpath(os.path.join('%%PREFIX%%', 'share', 'doc', 
X+                'turpial', 'TRANSLATORS'))
X             f = file(path, 'r')
X             translators = f.read()
X             f.close()
6f9b9be384fbbafdece4e8441c672797
echo x - py-turpial/files/extra-patch-optparse-turpial_main.py
sed 's/^X//' >py-turpial/files/extra-patch-optparse-turpial_main.py << '7535e186ee5fc66933cc801899c85c75'
X--- turpial/main.py.orig	2011-03-23 17:50:07.000000000 +0100
X+++ turpial/main.py	2011-03-27 11:35:32.000000000 +0200
X@@ -21,8 +21,8 @@
X 
X try:
X     import ctypes
X-    libc = ctypes.CDLL('libc.so.6')
X-    libc.prctl(15, 'turpial', 0, 0)
X+    libc = ctypes.CDLL(os.path.join('/usr/lib', 'libc.so'))
X+    libc.setproctitle('turpial')
X except ImportError:
X     pass
X 
7535e186ee5fc66933cc801899c85c75
echo x - py-turpial/files/extra-patch-argparse-turpial_main.py
sed 's/^X//' >py-turpial/files/extra-patch-argparse-turpial_main.py << 'd027ddb0b9372c57a7dc75bc51822874'
X--- turpial/main.py.orig	2011-03-23 17:50:07.000000000 +0100
X+++ turpial/main.py	2011-03-27 16:33:05.000000000 +0200
X@@ -12,7 +12,7 @@
X import base64
X import logging
X import getpass
X-from optparse import OptionParser
X+import argparse
X 
X from turpial.api.servicesapi import HTTPServices
X from turpial.api.turpialapi import TurpialAPI
X@@ -21,8 +21,8 @@
X 
X try:
X     import ctypes
X-    libc = ctypes.CDLL('libc.so.6')
X-    libc.prctl(15, 'turpial', 0, 0)
X+    libc = ctypes.CDLL(os.path.join('/usr/lib', 'libc.so'))
X+    libc.setproctitle('turpial')
X except ImportError:
X     pass
X 
X@@ -44,34 +44,34 @@
X         ui_avail = ui_avail[:-1] + ')'
X         default_ui = INTERFACES[1] if len(INTERFACES) > 1 else ''
X         
X-        parser = OptionParser()
X-        parser.add_option('-d', '--debug', dest='debug', action='store_true',
X+        parser = argparse.ArgumentParser() 
X+        parser.add_argument('-d', '--debug', dest='debug', action='store_true',
X             help='show debug info in shell during execution', default=False)
X-        parser.add_option('-i', '--interface', dest='interface',
X+        parser.add_argument('-i', '--interface', dest='interface',
X             help='select interface to use %s' % ui_avail, default=default_ui)
X-        parser.add_option('-c', '--clean', dest='clean', action='store_true',
X+        parser.add_argument('-c', '--clean', dest='clean', action='store_true',
X             help='clean all bytecodes', default=False)
X-        parser.add_option('-s', '--save-credentials', dest='save', action='store_true',
X+        parser.add_argument('-s', '--save-credentials', dest='save', action='store_true',
X             help='save user credentials', default=False)
X-        parser.add_option('--version', dest='version', action='store_true',
X+        parser.add_argument('--version', dest='version', action='store_true',
X             help='show the version of Turpial and exit', default=False)
X-        parser.add_option('--test', dest='test', action='store_true',
X+        parser.add_argument('--test', dest='test', action='store_true',
X             help='only load timeline and friends', default=False)
X-        parser.add_option('--no-sound', dest='no_sound', action='store_true',
X+        parser.add_argument('--no-sound', dest='no_sound', action='store_true',
X             help='disable the sounds module', default=False)
X-        parser.add_option('--no-notif', dest='no_notif', action='store_true',
X+        parser.add_argument('--no-notif', dest='no_notif', action='store_true',
X             help='disable the notifications module', default=False)
X         
X-        (options, args) = parser.parse_args()
X+        args = parser.parse_args()
X         
X         self.config = None
X         self.global_cfg = ConfigApp()
X         self.protocol_cfg = {}
X         self.profile = None
X-        self.testmode = options.test
X-        self.interface = options.interface
X-        self.no_sound = options.no_sound
X-        self.no_notif = options.no_notif
X+        self.testmode = args.test
X+        self.interface = args.interface
X+        self.no_sound = args.no_sound
X+        self.no_notif = args.no_notif
X         self.httpserv = None
X         self.api = None
X         self.version = self.global_cfg.read('App', 'version')
X@@ -79,34 +79,34 @@
X         for p in PROTOCOLS:
X             self.protocol_cfg[p] = ConfigProtocol(p)
X         
X-        if options.debug or options.clean: 
X+        if args.debug or args.clean: 
X             logging.basicConfig(level=logging.DEBUG)
X         else:
X             logging.basicConfig(level=logging.INFO)
X         self.log = logging.getLogger('Controller')
X         
X-        if options.clean:
X+        if args.clean:
X             self.__clean()
X             sys.exit(0)
X             
X-        if options.version:
X+        if args.version:
X             print "Turpial v%s" % self.version
X             print "Python v%X" % sys.hexversion
X             sys.exit(0)
X             
X-        if options.save:
X+        if args.save:
X             try:
X                 self.__save_credentials()
X             except KeyboardInterrupt:
X                 self.log.debug('Interceptado Keyboard Interrupt')
X             sys.exit(0)
X             
X-        self.interface = options.interface
X-        if options.interface == 'gtk+' and ('gtk+' in INTERFACES):
X+        self.interface = args.interface
X+        if args.interface == 'gtk+' and ('gtk+' in INTERFACES):
X             self.ui = _GTK(self, extend=True)
X-        elif options.interface == 'gtk' and ('gtk' in INTERFACES):
X+        elif args.interface == 'gtk' and ('gtk' in INTERFACES):
X             self.ui = _GTK(self)
X-        elif options.interface == 'cmd' and ('cmd' in INTERFACES):
X+        elif args.interface == 'cmd' and ('cmd' in INTERFACES):
X             self.ui = _CMD(self, args)
X         else:
X             print 'No existe una interfaz válida. Las interfaces válidas son: %s' % INTERFACES
d027ddb0b9372c57a7dc75bc51822874
echo x - py-turpial/files/patch-turpial_ui_gtk_statuslist.py
sed 's/^X//' >py-turpial/files/patch-turpial_ui_gtk_statuslist.py << '462893432f4352df7217ec2515aa3b4d'
X--- turpial/ui/gtk/statuslist.py.orig	2011-05-08 05:01:09.000000000 +0200
X+++ turpial/ui/gtk/statuslist.py	2011-06-12 19:55:15.000000000 +0200
X@@ -5,6 +5,7 @@
X # Author: Wil Alvarez (aka Satanas)
X # Jun 25, 2009
X 
X+import sys
X import gtk
X import pango
X import gobject
X@@ -81,14 +82,14 @@
X         if len(hashtags) == 0: return text
X         
X         for h in hashtags:
X-            torep = '%s' % h
X+            torep = u'%s' % h
X             try:
X-                cad = '<span foreground="%s">%s</span>' % (
X+                cad = u'<span foreground="%s">%s</span>' % (
X                     self.mainwin.link_color, h
X                 )
X                 text = text.replace(torep, cad)
X             except:
X-                log.debug('Problemas para resaltar el hashtag: %s' % h)
X+                log.debug(u'Problemas para resaltar el hashtag: %s' % h)
X         return text
X         
X     def __highlight_groups(self, text):
X@@ -99,14 +100,14 @@
X         if len(groups) == 0: return text
X         
X         for h in groups:
X-            torep = '%s' % h
X+            torep = u'%s' % h
X             try:
X-                cad = '<span foreground="%s">%s</span>' % (
X+                cad = u'<span foreground="%s">%s</span>' % (
X                     self.mainwin.link_color, h
X                 )
X                 text = text.replace(torep, cad)
X             except:
X-                log.debug('Problemas para resaltar el grupo: %s' % h)
X+                log.debug(u'Problemas para resaltar el grupo: %s' % h)
X         return text
X         
X     def __highlight_mentions(self, text):
X@@ -117,8 +118,8 @@
X         for h in mentions:
X             if len(h) == 1: 
X                 continue
X-            torep = '%s' % h
X-            cad = '<span foreground="%s">%s</span>' % (
X+            torep = u'%s' % h
X+            cad = u'<span foreground="%s">%s</span>' % (
X                 self.mainwin.link_color, h
X             )
X             text = text.replace(torep, cad)
X@@ -128,7 +129,7 @@
X         #if len(urls) == 0: return text
X         
X         for u in urls:
X-            cad = '<span foreground="%s">%s</span>' % (
X+            cad = u'<span foreground="%s">%s</span>' % (
X                 self.mainwin.link_color, u
X             )
X             text = text.replace(u, cad)
X@@ -180,8 +181,17 @@
X         amarillo = gtk.gdk.Color(253 * 257, 255 * 257, 229 * 257)
X         naranja = gtk.gdk.Color(255 * 257, 240 * 257, 229 * 257)
X         '''
X-        me = '@'+self.mainwin.me.lower()
X-        mention = True if msg.lower().find(me) >= 0 else False
X+        me = unichr(64) + self.mainwin.me.lower()
X+        if sys.getfilesystemencoding() != 'UTF-8':
X+            if msg.startswith(me):
X+                mention = True
X+            else:
X+                mention = False 
X+        else:
X+            if msg.lower().startswith(me):
X+                mention = True
X+            else:
X+                mention = False 
X         
X         if new:
X             color = self.mainwin.get_gdk_color_from_base('unread')
X@@ -206,15 +216,15 @@
X         pango_twt = util.unescape_text(status.text)
X         pango_twt = gobject.markup_escape_text(pango_twt)
X         
X-        user = '<span size="9000" foreground="%s"><b>%s</b></span> ' % (
X+        user = u'<span size="9000" foreground="%s"><b>%s</b></span> ' % (
X             self.mainwin.link_color, status.username
X         )
X-        pango_twt = '<span size="9000">%s</span>' % pango_twt
X+        pango_twt = u'<span size="9000">%s</span>' % pango_twt
X         pango_twt = self.__highlight_hashtags(pango_twt)
X         pango_twt = self.__highlight_groups(pango_twt)
X         pango_twt = self.__highlight_mentions(pango_twt)
X         pango_twt = self.__highlight_urls(urls, pango_twt)
X-        pango_twt += '<span size="2000">\n\n</span>'
X+        pango_twt += u'<span size="2000">\n\n</span>'
X         
X         try:
X             pango_twt = user + pango_twt
X@@ -227,17 +237,17 @@
X                 except UnicodeDecodeError:
X                     invalid_chars.append(c)
X                     clear_txt += '?'
X-            log.debug('Problema con caracteres inválidos en un tweet: %s' % invalid_chars)
X+            log.debug(u'Problema con caracteres inválidos en un tweet: %s' % invalid_chars)
X             pango_twt = clear_txt
X         
X-        footer = '<span size="small" foreground="#999">%s' % status.datetime
X+        footer = u'<span size="small" foreground="#999">%s' % status.datetime
X         if status.source: 
X-            footer += ' %s %s' % (_('from'), status.source)
X+            footer += u' %s %s' % (_('from'), status.source)
X         if status.in_reply_to_user:
X-            footer += ' %s %s' % (_('in reply to'), status.in_reply_to_user)
X+            footer += u' %s %s' % (_('in reply to'), status.in_reply_to_user)
X         if status.retweet_by:
X-            footer += '\n%s %s' % (_('Retweeted by'), status.retweet_by)
X-        footer += '</span>'
X+            footer += u'\n%s %s' % (_('Retweeted by'), status.retweet_by)
X+        footer += u'</span>'
X         pango_twt += footer
X         
X         return pango_twt
462893432f4352df7217ec2515aa3b4d
echo x - py-turpial/files/patch-turpial_api_interfaces_protocol.py
sed 's/^X//' >py-turpial/files/patch-turpial_api_interfaces_protocol.py << '48bddb7457e491a4f284abe4abd364db'
X--- turpial/api/interfaces/protocol.py.orig	2011-03-23 17:50:07.000000000 +0100
X+++ turpial/api/interfaces/protocol.py	2011-05-07 22:14:22.000000000 +0200
X@@ -280,7 +280,7 @@
X         
X     def get_str_time(self, strdate):
X         t = self.convert_time(strdate)
X-        return time.strftime('%b %d, %I:%M %p', t)
X+        return time.strftime('%Y-%m-%d @ %H:%M', t)
X         
X     def get_int_time(self, strdate):
X         t = self.convert_time(strdate)
48bddb7457e491a4f284abe4abd364db
echo x - py-turpial/pkg-plist
sed 's/^X//' >py-turpial/pkg-plist << '80747920e9152a9667d6d2263492846b'
Xbin/turpial
Xshare/applications/turpial.desktop
X%%DOCSDIR%%/AUTHORS
X%%DOCSDIR%%/COPYING
X%%DOCSDIR%%/README.rst
X%%DOCSDIR%%/TRANSLATORS
Xshare/locale/ca/LC_MESSAGES/turpial.mo
Xshare/locale/de/LC_MESSAGES/turpial.mo
Xshare/locale/en/LC_MESSAGES/turpial.mo
Xshare/locale/es/LC_MESSAGES/turpial.mo
Xshare/locale/eu/LC_MESSAGES/turpial.mo
Xshare/locale/fr/LC_MESSAGES/turpial.mo
Xshare/locale/gl/LC_MESSAGES/turpial.mo
Xshare/locale/he/LC_MESSAGES/turpial.mo
Xshare/locale/it/LC_MESSAGES/turpial.mo
Xshare/locale/nn/LC_MESSAGES/turpial.mo
Xshare/locale/pt/LC_MESSAGES/turpial.mo
Xshare/locale/ru/LC_MESSAGES/turpial.mo
Xshare/locale/zh_CN/LC_MESSAGES/turpial.mo
Xshare/locale/zh_TW/LC_MESSAGES/turpial.mo
Xshare/pixmaps/turpial.png
X%%DATADIR%%/__init__.py
X%%DATADIR%%/__init__.pyc
X%%DATADIR%%/__init__.pyo
X%%DATADIR%%/api/__init__.py
X%%DATADIR%%/api/__init__.pyc
X%%DATADIR%%/api/__init__.pyo
X%%DATADIR%%/api/interfaces/__init__.py
X%%DATADIR%%/api/interfaces/__init__.pyc
X%%DATADIR%%/api/interfaces/__init__.pyo
X%%DATADIR%%/api/interfaces/http.py
X%%DATADIR%%/api/interfaces/http.pyc
X%%DATADIR%%/api/interfaces/http.pyo
X%%DATADIR%%/api/interfaces/post.py
X%%DATADIR%%/api/interfaces/post.pyc
X%%DATADIR%%/api/interfaces/post.pyo
X%%DATADIR%%/api/interfaces/protocol.py
X%%DATADIR%%/api/interfaces/protocol.pyc
X%%DATADIR%%/api/interfaces/protocol.pyo
X%%DATADIR%%/api/interfaces/service.py
X%%DATADIR%%/api/interfaces/service.pyc
X%%DATADIR%%/api/interfaces/service.pyo
X%%DATADIR%%/api/protocols/__init__.py
X%%DATADIR%%/api/protocols/__init__.pyc
X%%DATADIR%%/api/protocols/__init__.pyo
X%%DATADIR%%/api/protocols/identica/__init__.py
X%%DATADIR%%/api/protocols/identica/__init__.pyc
X%%DATADIR%%/api/protocols/identica/__init__.pyo
X%%DATADIR%%/api/protocols/identica/globals.py
X%%DATADIR%%/api/protocols/identica/globals.pyc
X%%DATADIR%%/api/protocols/identica/globals.pyo
X%%DATADIR%%/api/protocols/identica/http.py
X%%DATADIR%%/api/protocols/identica/http.pyc
X%%DATADIR%%/api/protocols/identica/http.pyo
X%%DATADIR%%/api/protocols/identica/identica.py
X%%DATADIR%%/api/protocols/identica/identica.pyc
X%%DATADIR%%/api/protocols/identica/identica.pyo
X%%DATADIR%%/api/protocols/twitter/__init__.py
X%%DATADIR%%/api/protocols/twitter/__init__.pyc
X%%DATADIR%%/api/protocols/twitter/__init__.pyo
X%%DATADIR%%/api/protocols/twitter/globals.py
X%%DATADIR%%/api/protocols/twitter/globals.pyc
X%%DATADIR%%/api/protocols/twitter/globals.pyo
X%%DATADIR%%/api/protocols/twitter/http.py
X%%DATADIR%%/api/protocols/twitter/http.pyc
X%%DATADIR%%/api/protocols/twitter/http.pyo
X%%DATADIR%%/api/protocols/twitter/oauth.py
X%%DATADIR%%/api/protocols/twitter/oauth.pyc
X%%DATADIR%%/api/protocols/twitter/oauth.pyo
X%%DATADIR%%/api/protocols/twitter/twitter.py
X%%DATADIR%%/api/protocols/twitter/twitter.pyc
X%%DATADIR%%/api/protocols/twitter/twitter.pyo
X%%DATADIR%%/api/services/__init__.py
X%%DATADIR%%/api/services/__init__.pyc
X%%DATADIR%%/api/services/__init__.pyo
X%%DATADIR%%/api/services/shorturl/__init__.py
X%%DATADIR%%/api/services/shorturl/__init__.pyc
X%%DATADIR%%/api/services/shorturl/__init__.pyo
X%%DATADIR%%/api/services/shorturl/bitly.py
X%%DATADIR%%/api/services/shorturl/bitly.pyc
X%%DATADIR%%/api/services/shorturl/bitly.pyo
X%%DATADIR%%/api/services/shorturl/cligs.py
X%%DATADIR%%/api/services/shorturl/cligs.pyc
X%%DATADIR%%/api/services/shorturl/cligs.pyo
X%%DATADIR%%/api/services/shorturl/isgd.py
X%%DATADIR%%/api/services/shorturl/isgd.pyc
X%%DATADIR%%/api/services/shorturl/isgd.pyo
X%%DATADIR%%/api/services/shorturl/smlkes.py
X%%DATADIR%%/api/services/shorturl/smlkes.pyc
X%%DATADIR%%/api/services/shorturl/smlkes.pyo
X%%DATADIR%%/api/services/shorturl/supr.py
X%%DATADIR%%/api/services/shorturl/supr.pyc
X%%DATADIR%%/api/services/shorturl/supr.pyo
X%%DATADIR%%/api/services/shorturl/tinyurl.py
X%%DATADIR%%/api/services/shorturl/tinyurl.pyc
X%%DATADIR%%/api/services/shorturl/tinyurl.pyo
X%%DATADIR%%/api/services/shorturl/trim.py
X%%DATADIR%%/api/services/shorturl/trim.pyc
X%%DATADIR%%/api/services/shorturl/trim.pyo
X%%DATADIR%%/api/services/shorturl/unu.py
X%%DATADIR%%/api/services/shorturl/unu.pyc
X%%DATADIR%%/api/services/shorturl/unu.pyo
X%%DATADIR%%/api/services/shorturl/ur1ca.py
X%%DATADIR%%/api/services/shorturl/ur1ca.pyc
X%%DATADIR%%/api/services/shorturl/ur1ca.pyo
X%%DATADIR%%/api/services/shorturl/zima.py
X%%DATADIR%%/api/services/shorturl/zima.pyc
X%%DATADIR%%/api/services/shorturl/zima.pyo
X%%DATADIR%%/api/services/uploadpic/__init__.py
X%%DATADIR%%/api/services/uploadpic/__init__.pyc
X%%DATADIR%%/api/services/uploadpic/__init__.pyo
X%%DATADIR%%/api/services/uploadpic/imgly.py
X%%DATADIR%%/api/services/uploadpic/imgly.pyc
X%%DATADIR%%/api/services/uploadpic/imgly.pyo
X%%DATADIR%%/api/services/uploadpic/mobypicture.py
X%%DATADIR%%/api/services/uploadpic/mobypicture.pyc
X%%DATADIR%%/api/services/uploadpic/mobypicture.pyo
X%%DATADIR%%/api/services/uploadpic/posterous.py
X%%DATADIR%%/api/services/uploadpic/posterous.pyc
X%%DATADIR%%/api/services/uploadpic/posterous.pyo
X%%DATADIR%%/api/services/uploadpic/pyTweetPhoto.py
X%%DATADIR%%/api/services/uploadpic/pyTweetPhoto.pyc
X%%DATADIR%%/api/services/uploadpic/pyTweetPhoto.pyo
X%%DATADIR%%/api/services/uploadpic/tweetphoto.py
X%%DATADIR%%/api/services/uploadpic/tweetphoto.pyc
X%%DATADIR%%/api/services/uploadpic/tweetphoto.pyo
X%%DATADIR%%/api/services/uploadpic/twitgoo.py
X%%DATADIR%%/api/services/uploadpic/twitgoo.pyc
X%%DATADIR%%/api/services/uploadpic/twitgoo.pyo
X%%DATADIR%%/api/services/uploadpic/twitpic.py
X%%DATADIR%%/api/services/uploadpic/twitpic.pyc
X%%DATADIR%%/api/services/uploadpic/twitpic.pyo
X%%DATADIR%%/api/services/uploadpic/yfrog.py
X%%DATADIR%%/api/services/uploadpic/yfrog.pyc
X%%DATADIR%%/api/services/uploadpic/yfrog.pyo
X%%DATADIR%%/api/servicesapi.py
X%%DATADIR%%/api/servicesapi.pyc
X%%DATADIR%%/api/servicesapi.pyo
X%%DATADIR%%/api/turpialapi.py
X%%DATADIR%%/api/turpialapi.pyc
X%%DATADIR%%/api/turpialapi.pyo
X%%DATADIR%%/config.py
X%%DATADIR%%/config.pyc
X%%DATADIR%%/config.pyo
X%%DATADIR%%/data/pixmaps/action-add-friends.png
X%%DATADIR%%/data/pixmaps/action-autoscroll.png
X%%DATADIR%%/data/pixmaps/action-clear.png
X%%DATADIR%%/data/pixmaps/action-mark-all.png
X%%DATADIR%%/data/pixmaps/action-refresh.png
X%%DATADIR%%/data/pixmaps/dock-about.png
X%%DATADIR%%/data/pixmaps/dock-favorites.png
X%%DATADIR%%/data/pixmaps/dock-follow.png
X%%DATADIR%%/data/pixmaps/dock-home.png
X%%DATADIR%%/data/pixmaps/dock-profile.png
X%%DATADIR%%/data/pixmaps/dock-settings.png
X%%DATADIR%%/data/pixmaps/dock-update.png
X%%DATADIR%%/data/pixmaps/dock-uploadpic.png
X%%DATADIR%%/data/pixmaps/identica.png
X%%DATADIR%%/data/pixmaps/logo.png
X%%DATADIR%%/data/pixmaps/logo2.png
X%%DATADIR%%/data/pixmaps/turpial-notification.png
X%%DATADIR%%/data/pixmaps/turpial-tray-update.png
X%%DATADIR%%/data/pixmaps/turpial-tray.png
X%%DATADIR%%/data/pixmaps/turpial.png
X%%DATADIR%%/data/pixmaps/twitter.png
X%%DATADIR%%/data/pixmaps/unknown.png
X%%DATADIR%%/data/pixmaps/wait-error.png
X%%DATADIR%%/data/pixmaps/wait10.png
X%%DATADIR%%/data/pixmaps/wait11.png
X%%DATADIR%%/data/pixmaps/wait12.png
X%%DATADIR%%/data/pixmaps/wait13.png
X%%DATADIR%%/data/pixmaps/wait14.png
X%%DATADIR%%/data/pixmaps/wait15.png
X%%DATADIR%%/data/pixmaps/wait16.png
X%%DATADIR%%/data/pixmaps/wait17.png
X%%DATADIR%%/data/pixmaps/wait18.png
X%%DATADIR%%/data/pixmaps/wait19.png
X%%DATADIR%%/data/pixmaps/wait2.png
X%%DATADIR%%/data/pixmaps/wait20.png
X%%DATADIR%%/data/pixmaps/wait21.png
X%%DATADIR%%/data/pixmaps/wait22.png
X%%DATADIR%%/data/pixmaps/wait23.png
X%%DATADIR%%/data/pixmaps/wait24.png
X%%DATADIR%%/data/pixmaps/wait25.png
X%%DATADIR%%/data/pixmaps/wait26.png
X%%DATADIR%%/data/pixmaps/wait27.png
X%%DATADIR%%/data/pixmaps/wait28.png
X%%DATADIR%%/data/pixmaps/wait29.png
X%%DATADIR%%/data/pixmaps/wait3.png
X%%DATADIR%%/data/pixmaps/wait30.png
X%%DATADIR%%/data/pixmaps/wait31.png
X%%DATADIR%%/data/pixmaps/wait32.png
X%%DATADIR%%/data/pixmaps/wait4.png
X%%DATADIR%%/data/pixmaps/wait5.png
X%%DATADIR%%/data/pixmaps/wait6.png
X%%DATADIR%%/data/pixmaps/wait7.png
X%%DATADIR%%/data/pixmaps/wait8.png
X%%DATADIR%%/data/pixmaps/wait9.png
X%%DATADIR%%/data/sounds/cambur_pinton.ogg
X%%DATADIR%%/data/sounds/mencion.ogg
X%%DATADIR%%/data/sounds/mencion2.ogg
X%%DATADIR%%/data/sounds/mencion3.ogg
X%%DATADIR%%/data/sounds/turpial.ogg
X%%DATADIR%%/data/themes/default/style.css
X%%DATADIR%%/data/themes/default/tweet.html
X%%DATADIR%%/data/themes/default/tweet_template.html
X%%DATADIR%%/main.py
X%%DATADIR%%/main.pyc
X%%DATADIR%%/main.pyo
X%%DATADIR%%/notification.py
X%%DATADIR%%/notification.pyc
X%%DATADIR%%/notification.pyo
X%%DATADIR%%/sound.py
X%%DATADIR%%/sound.pyc
X%%DATADIR%%/sound.pyo
X%%DATADIR%%/ui/__init__.py
X%%DATADIR%%/ui/__init__.pyc
X%%DATADIR%%/ui/__init__.pyo
X%%DATADIR%%/ui/base_ui.py
X%%DATADIR%%/ui/base_ui.pyc
X%%DATADIR%%/ui/base_ui.pyo
X%%DATADIR%%/ui/cmd/__init__.py
X%%DATADIR%%/ui/cmd/__init__.pyc
X%%DATADIR%%/ui/cmd/__init__.pyo
X%%DATADIR%%/ui/cmd/main.py
X%%DATADIR%%/ui/cmd/main.pyc
X%%DATADIR%%/ui/cmd/main.pyo
X%%DATADIR%%/ui/gtk/__init__.py
X%%DATADIR%%/ui/gtk/__init__.pyc
X%%DATADIR%%/ui/gtk/__init__.pyo
X%%DATADIR%%/ui/gtk/about.py
X%%DATADIR%%/ui/gtk/about.pyc
X%%DATADIR%%/ui/gtk/about.pyo
X%%DATADIR%%/ui/gtk/columns.py
X%%DATADIR%%/ui/gtk/columns.pyc
X%%DATADIR%%/ui/gtk/columns.pyo
X%%DATADIR%%/ui/gtk/conversation.py
X%%DATADIR%%/ui/gtk/conversation.pyc
X%%DATADIR%%/ui/gtk/conversation.pyo
X%%DATADIR%%/ui/gtk/dock.py
X%%DATADIR%%/ui/gtk/dock.pyc
X%%DATADIR%%/ui/gtk/dock.pyo
X%%DATADIR%%/ui/gtk/errorbox.py
X%%DATADIR%%/ui/gtk/errorbox.pyc
X%%DATADIR%%/ui/gtk/errorbox.pyo
X%%DATADIR%%/ui/gtk/follow.py
X%%DATADIR%%/ui/gtk/follow.pyc
X%%DATADIR%%/ui/gtk/follow.pyo
X%%DATADIR%%/ui/gtk/friendwin.py
X%%DATADIR%%/ui/gtk/friendwin.pyc
X%%DATADIR%%/ui/gtk/friendwin.pyo
X%%DATADIR%%/ui/gtk/home.py
X%%DATADIR%%/ui/gtk/home.pyc
X%%DATADIR%%/ui/gtk/home.pyo
X%%DATADIR%%/ui/gtk/login.py
X%%DATADIR%%/ui/gtk/login.pyc
X%%DATADIR%%/ui/gtk/login.pyo
X%%DATADIR%%/ui/gtk/loginlabel.py
X%%DATADIR%%/ui/gtk/loginlabel.pyc
X%%DATADIR%%/ui/gtk/loginlabel.pyo
X%%DATADIR%%/ui/gtk/main.py
X%%DATADIR%%/ui/gtk/main.pyc
X%%DATADIR%%/ui/gtk/main.pyo
X%%DATADIR%%/ui/gtk/menu.py
X%%DATADIR%%/ui/gtk/menu.pyc
X%%DATADIR%%/ui/gtk/menu.pyo
X%%DATADIR%%/ui/gtk/preferences.py
X%%DATADIR%%/ui/gtk/preferences.pyc
X%%DATADIR%%/ui/gtk/preferences.pyo
X%%DATADIR%%/ui/gtk/profile.py
X%%DATADIR%%/ui/gtk/profile.pyc
X%%DATADIR%%/ui/gtk/profile.pyo
X%%DATADIR%%/ui/gtk/statuslist.py
X%%DATADIR%%/ui/gtk/statuslist.pyc
X%%DATADIR%%/ui/gtk/statuslist.pyo
X%%DATADIR%%/ui/gtk/tweetslistwk.py
X%%DATADIR%%/ui/gtk/tweetslistwk.pyc
X%%DATADIR%%/ui/gtk/tweetslistwk.pyo
X%%DATADIR%%/ui/gtk/updatebox.py
X%%DATADIR%%/ui/gtk/updatebox.pyc
X%%DATADIR%%/ui/gtk/updatebox.pyo
X%%DATADIR%%/ui/gtk/uploadpicbox.py
X%%DATADIR%%/ui/gtk/uploadpicbox.pyc
X%%DATADIR%%/ui/gtk/uploadpicbox.pyo
X%%DATADIR%%/ui/gtk/userform.py
X%%DATADIR%%/ui/gtk/userform.pyc
X%%DATADIR%%/ui/gtk/userform.pyo
X%%DATADIR%%/ui/gtk/waiting.py
X%%DATADIR%%/ui/gtk/waiting.pyc
X%%DATADIR%%/ui/gtk/waiting.pyo
X%%DATADIR%%/ui/gtk/wrapper.py
X%%DATADIR%%/ui/gtk/wrapper.pyc
X%%DATADIR%%/ui/gtk/wrapper.pyo
X%%DATADIR%%/ui/util.py
X%%DATADIR%%/ui/util.pyc
X%%DATADIR%%/ui/util.pyo
X at dirrm %%DATADIR%%/ui/gtk
X at dirrm %%DATADIR%%/ui/cmd
X at dirrm %%DATADIR%%/ui
X at dirrm %%DATADIR%%/data/themes/default
X at dirrm %%DATADIR%%/data/themes
X at dirrm %%DATADIR%%/data/sounds
X at dirrm %%DATADIR%%/data/pixmaps
X at dirrm %%DATADIR%%/data
X at dirrm %%DATADIR%%/api/services/uploadpic
X at dirrm %%DATADIR%%/api/services/shorturl
X at dirrm %%DATADIR%%/api/services
X at dirrm %%DATADIR%%/api/protocols/twitter
X at dirrm %%DATADIR%%/api/protocols/identica
X at dirrm %%DATADIR%%/api/protocols
X at dirrm %%DATADIR%%/api/interfaces
X at dirrm %%DATADIR%%/api
X at dirrm %%DATADIR%%
X at dirrm %%DOCSDIR%%
X at exec %%LOCALBASE%%/bin/update-desktop-database > /dev/null || /usr/bin/true
X at unexec %%LOCALBASE%%/bin/update-desktop-database > /dev/null || /usr/bin/true
80747920e9152a9667d6d2263492846b
echo x - py-turpial/pkg-descr
sed 's/^X//' >py-turpial/pkg-descr << '949b931a978b90ae047aa55f2e1098c5'
XTurpial is a microblogging client for social networks like Twitter and
XIdenti.ca.
X
XWWW:	http://turpial.org.ve/
949b931a978b90ae047aa55f2e1098c5
echo x - py-turpial/distinfo
sed 's/^X//' >py-turpial/distinfo << 'b0d0d02aaccc7d5485362c19106425aa'
XSHA256 (turpial-1.5.0.tar.gz) = f0c85cc0639287b66210571841920cb35dc9117bce9a3e37616f29b1f1b4768a
XSIZE (turpial-1.5.0.tar.gz) = 558659
b0d0d02aaccc7d5485362c19106425aa
echo x - py-turpial/Makefile
sed 's/^X//' >py-turpial/Makefile << '5c0be2b7b52df251791739086b62b969'
X# New ports collection makefile for: py-turpial
X# Date created:		2011-02-19
X# Whom:		Olivier Duchateau <duchateau.olivier at gmail.com>
X#
X# $FreeBSD: $
X#
X
XPORTNAME=	turpial
XPORTVERSION=	1.5.0
XCATEGORIES=	net-im python
XMASTER_SITES=	http://turpial.org.ve/files/sources/%SUBDIR%/
XMASTER_SITE_SUBDIR=	stable
XDISTNAME=	${PORTNAME}-${PORTVERSION}
XPKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
X
XMAINTAINER=	duchateau.olivier at gmail.com
XCOMMENT=	Twitter and Identi.ca client written in Python
X
XLICENSE=	GPLv3
XLICENSE_FILE=	${WRKSRC}/COPYING
X
XBUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}Babel>=0.9:${PORTSDIR}/devel/py-babel
XRUN_DEPENDS=	${LOCALBASE}/libdata/pkgconfig/notify-python.pc:${PORTSDIR}/devel/py-notify \
X		${LOCALBASE}/libdata/pkgconfig/pywebkitgtk-1.0.pc:${PORTSDIR}/www/py-webkitgtk \
X		${PYTHON_SITELIBDIR}/setproctitle.so:${PORTSDIR}/devel/py-setproctitle \
X		${PYTHON_SITELIBDIR}/xdg/__init__.py:${PORTSDIR}/devel/py-xdg
X
XUSE_PYTHON=	yes
XUSE_GNOME=	pygobject pygtk2 desktopfileutils
XUSE_GSTREAMER=	python
X
XREINPLACE_ARGS=	-i ""
X
XDOCSDIR=	${PREFIX}/share/doc/${PORTNAME}
XDATADIR=	${PREFIX}/share/${PORTNAME}
X
XLOCALES_DIR=	ca de en es eu fr gl he it nn pt ru zh_CN zh_TW
X
X.include <bsd.port.pre.mk>
X
X# Since Python > 2.7, optparse module is deprecated
X.if ${PYTHON_REL} >= 270
XEXTRA_PATCHES+= ${FILESDIR}/extra-patch-argparse-turpial_main.py
X.else
XEXTRA_PATCHES+= ${FILESDIR}/extra-patch-optparse-turpial_main.py
X.endif
X
Xpost-patch:
X	@${FIND} ${WRKSRC}/turpial -type f -regex '.*\.py' \
X		| ${XARGS} ${REINPLACE_CMD} 's|bin/python|bin/env python| ; \
X		s|Linux|FreeBSD|g ; \
X		s|from turpial\.|from |g ; \
X		s|%%PREFIX%%|${PREFIX}|g'
X# Avoid to center on screen the window application
X	${REINPLACE_CMD} 's|gtk.WIN_POS_CENTER|gtk.WIN_POS_CENTER_ON_PARENT|' \
X		${WRKSRC}/turpial/ui/gtk/main.py 
X
Xdo-build:
X	@cd ${WRKSRC} && \
X		${PYTHON_CMD} setup.py compile_catalog --directory turpial/i18n ; \
X		${PYTHON_CMD} -m compileall ${WRKSRC} ; \
X		${PYTHON_CMD} -O -m compileall ${WRKSRC}
X
X	@${ECHO_CMD} "#!/bin/sh" >> ${WRKDIR}/run.sh
X	@${ECHO_CMD} "" >> ${WRKDIR}/run.sh
X	@${ECHO_CMD} "cd ${DATADIR} || exit 1" >> ${WRKDIR}/run.sh
X	@${ECHO_CMD} "exec ${PYTHON_CMD} main.py" >> ${WRKDIR}/run.sh
X
Xpre-install:
X	@${FIND} ${WRKSRC} -type f -name '*.orig' \
X		-exec ${RM} -f "{}" \;
X
X	@${MKDIR} -p ${DOCSDIR} ${DATADIR} \
X		${PREFIX}/share/pixmaps \
X		${PREFIX}/share/applications \
X		${PREFIX}/bin
X.for LOCALE in ${LOCALES_DIR}
X	@${MKDIR} -p ${PREFIX}/share/locale/${LOCALE}/LC_MESSAGES
X.endfor
X	@cd ${WRKSRC}/turpial && \
X		${FIND} . -type d \
X			\! -regex '.*i18n.*' -exec ${MKDIR} -p "${DATADIR}/{}" \;
X
Xdo-install:
X	@cd ${WRKSRC} && \
X		${INSTALL_DATA} AUTHORS COPYING TRANSLATORS README.rst ${DOCSDIR} ; \
X		${INSTALL_DATA} turpial/data/pixmaps/turpial.png \
X			${PREFIX}/share/pixmaps ; \
X		${INSTALL_DATA} ${PORTNAME}.desktop ${PREFIX}/share/applications
X
X	@cd ${WRKSRC}/turpial/i18n && \
X		${FIND} . -type f -name '*.mo' \
X			-exec ${INSTALL_DATA} "{}" "${PREFIX}/share/locale/{}" \;
X
X	@cd ${WRKSRC}/turpial && \
X		${FIND} . -type f \
X			\( ! -name '*.mo' -and ! -name '*.po*' \) \
X			-exec ${INSTALL_DATA} "{}" "${DATADIR}/{}" \;
X
X	${INSTALL_SCRIPT} ${WRKDIR}/run.sh ${PREFIX}/bin/${PORTNAME}
X
Xpost-install:
X	@-update-desktop-database
X
X.include <bsd.port.post.mk>
5c0be2b7b52df251791739086b62b969
exit



>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list