rpms/grnotify/F-10 grnotify-1.1.2-fixurl.patch, NONE, 1.1 grnotify-setup.py, NONE, 1.1 grnotify.spec, 1.1, 1.2 setup.py, 1.1, NONE
Guillaume Kulakowski
llaumgui at fedoraproject.org
Thu Apr 9 06:21:17 UTC 2009
- Previous message (by thread): rpms/grnotify/F-9 grnotify-1.1.2-fixurl.patch, NONE, 1.1 grnotify-setup.py, NONE, 1.1 grnotify.spec, 1.1, 1.2 setup.py, 1.1, NONE
- Next message (by thread): rpms/grnotify/devel grnotify-1.1.2-fixurl.patch, NONE, 1.1 grnotify-setup.py, NONE, 1.1 grnotify.spec, 1.1, 1.2 setup.py, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: llaumgui
Update of /cvs/pkgs/rpms/grnotify/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv3057
Modified Files:
grnotify.spec
Added Files:
grnotify-1.1.2-fixurl.patch grnotify-setup.py
Removed Files:
setup.py
Log Message:
Fix Greader URL
grnotify-1.1.2-fixurl.patch:
--- NEW FILE grnotify-1.1.2-fixurl.patch ---
diff -up grnotify-1.1.2/grnotify.patch grnotify-1.1.2/grnotify
--- grnotify-1.1.2/grnotify.patch 2009-01-31 22:32:30.000000000 +0100
+++ grnotify-1.1.2/grnotify 2009-04-09 08:07:18.420146374 +0200
@@ -37,13 +37,13 @@ VERSION = '1.1.2'
#########
#Main class: the tray icon
-#
+#
class grnotify(Thread):
-
+
#--------------------------------------------
# initialization
#--------------------------------------------
-
+
#configuration options if there is no config file
def initialConfig(self):
if not (os.path.exists(os.path.join(os.environ['HOME'], '.grnotify/'))):
@@ -65,8 +65,8 @@ class grnotify(Thread):
self.autoHide = False
self.useKeyRing = True
self.ok = False
-
-
+
+
def saveConfig(self):
CONFIGFILE = os.path.join(os.environ['HOME'], '.grnotify/config')
config = ConfigParser.ConfigParser()
@@ -87,7 +87,7 @@ class grnotify(Thread):
config.set("Icons", "New items icon", self.iconNew)
config.set("Icons", "No new items icon", self.iconNoNew)
config.set("Icons", "Broken icon", self.iconBroken)
-
+
config.write(open(CONFIGFILE, 'w'))
def readConfig(self):
@@ -109,7 +109,7 @@ class grnotify(Thread):
self.openReader = config.get("User settings", "open reader").lower() != "false"
self.autoHide = config.get("User settings", "autohide").lower() != "false"
self.useKeyRing = config.get("User settings", "useKeyRing").lower() != "false"
-
+
self.iconNew = config.get("Icons", "New items icon")
self.iconNoNew = config.get("Icons", "No new items icon")
self.iconBroken = config.get("Icons", "Broken icon")
@@ -119,17 +119,17 @@ class grnotify(Thread):
os.remove(CONFIGFILE)
else:
self.newUser = True
-
+
def saveKeyRing(self, passwd):
keyring = "login"
try:
-
+
import gnomekeyring
import gconf
gnomekeyring.create_sync(keyring, None)
except gnomekeyring.AlreadyExistsError:
pass
-
+
try:
auth_token = gnomekeyring.item_create_sync(
keyring,
@@ -146,16 +146,16 @@ class grnotify(Thread):
keyring = "login"
password = ''
try:
-
+
import gnomekeyring
import gconf
- gnomekeyring.create_sync(keyring, None)
- except gnomekeyring.AlreadyExistsError:
- pass
+ gnomekeyring.create_sync(keyring, None)
+ except gnomekeyring.AlreadyExistsError:
+ pass
auth_token = gconf.client_get_default().get_int("/apps/grnotify/keyring_auth_token")
if auth_token > 0:
try:
- password = gnomekeyring.item_get_info_sync(keyring,
+ password = gnomekeyring.item_get_info_sync(keyring,
auth_token).get_secret()
except:
pass
@@ -165,8 +165,7 @@ class grnotify(Thread):
url = "https://www.google.com/accounts/ServiceLoginAuth?" + \
urllib.urlencode({'Email':grnotify_app.greader.email}) + "&" + \
urllib.urlencode({'Passwd':grnotify_app.greader.passwd}) + \
- "&service=reader&continue=" + \
- "https://www.google.com/reader&nui=1"
+ "&continue=https://www.google.com/reader&nui=1"
webbrowser.open_new_tab(url)
def __init__(self):
@@ -182,46 +181,46 @@ class grnotify(Thread):
self.tray_icon = egg.trayicon.TrayIcon("grnotify")
# create a eventbox object which is going to be added to the trayicon object
- self.grnotify_eventbox = gtk.EventBox()
+ self.grnotify_eventbox = gtk.EventBox()
# add the eventbox object to the trayicon object for event handling (click, scroll)
self.tray_icon.add(self.grnotify_eventbox)
-
+
# connect "click" event to their handlers
self.grnotify_eventbox.connect("button_press_event", self.clicked)
-
-
+
+
# create container
self.traycontainer = gtk.HBox()
-
+
# create the image object
self.icon = gtk.Image()
# and the unread label
self.unread_label = gtk.Label('? ')
-
+
# set the image pixmap
self.icon.set_from_file(self.iconBroken)
# add the image object to the tray container
self.traycontainer.pack_start(self.icon, False, False, padding = 0)
self.traycontainer.pack_start(self.unread_label, False, False, padding = 0)
self.grnotify_eventbox.add(self.traycontainer)
-
-
+
+
# create the tooltip, pass it the actual information and add it to the grnotify_eventbox
self.tooltip = gtk.Tooltips()
self.tooltip_message = "Getting feed info"
self.tooltip.set_tip(self.grnotify_eventbox,self.tooltip_message)
self.tooltip.enable()
-
+
# show the trayicon (+ etc.)
- self.tray_icon.show_all()
+ self.tray_icon.show_all()
# self.properties = properties_dialog()
self.menu = tray_menu(self)
self.about = about_dialog()
#
#---- clicked :the eventbox (from the trayicon) click event handler
- #
+ #
def clicked(self,widget,event):
# right click
if event.button == 3:
@@ -231,31 +230,31 @@ class grnotify(Thread):
if event.button == 1:
if self.ok and self.openReader:
self.openGoogleReader()
- else:
+ else:
self.getUnreadFeeds()
-
+
def run(self):
if self.newUser:
configure_window()
while not self.ok:
self.refresh()
time.sleep(30)
- while (1):
+ while (1):
time.sleep(self.waitTime)
self.refresh()
-
+
def refresh(self, forced = False):
- if self.broken:
+ if self.broken:
self.notification('Please fill in your info in preferences')
self.broken = False
self.refresher = updater(forced)
self.refresher.start()
-
+
def updateToolTip(self):
gtk.gdk.threads_enter()
if self.ok:
message = str(self.greader.totalUnread) + ' unread item'
- if self.greader.totalUnread != 1:
+ if self.greader.totalUnread != 1:
message += 's'
i = 0
for feed in self.feeds:
@@ -266,7 +265,7 @@ class grnotify(Thread):
message = 'Something went wrong.\nPlease check your internet connection and settings.'
self.tooltip.set_tip(self.grnotify_eventbox, message)
gtk.gdk.threads_leave()
-
+
def updateIcon(self):
gtk.gdk.threads_enter()
if not self.ok:
@@ -280,13 +279,13 @@ class grnotify(Thread):
grnotify_app.unread_label.set_text(str(self.greader.totalUnread)+ ' ')
grnotify_app.icon.show_all()
grnotify_app.unread_label.show_all()
-
+
if not self.showCounter or self.greader.totalUnread == 0:
grnotify_app.unread_label.hide()
if self.autoHide and self.greader.totalUnread == 0:
grnotify_app.icon.hide()
gtk.gdk.threads_leave()
-
+
#shows the notification
def notify(self, current, previous):
try:
@@ -297,7 +296,7 @@ class grnotify(Thread):
self.notification("You have " + str(current-previous) + " new unread items")
except:
pass
-
+
def notification(self, message):
if self.showNotification:
#try:
@@ -308,7 +307,7 @@ class grnotify(Thread):
bubble.show()
#except:
# pass
-
+
######################### BEGIN CLASS TRAY MENU ##########################
#Create the configure window
#Written by Kristof Bamps @ Feb 5 2008
@@ -323,10 +322,10 @@ class tray_menu:
# create the menu separator menu item object
menu_item_refresh = gtk.ImageMenuItem('gtk-refresh',None)
menu_item_refresh.connect('activate',self.refresh_clicked)
-
+
menu_google_reader = gtk.ImageMenuItem ('Open Google Reader', None)
menu_google_reader.connect ('activate', self.openGoogleReader)
-
+
menu_mark_read = gtk.ImageMenuItem ('Mark all as read', None)
menu_mark_read.connect('activate', self.markAllRead)
if (self.parent.greader.totalUnread == 0 ):
@@ -354,71 +353,71 @@ class tray_menu:
self.window.add(menu_item_feed)
self.window.add(menu_item_preferences)
self.window.add (gtk.SeparatorMenuItem())
-
+
view_item = gtk.Menu()
- menu_view_item = gtk.MenuItem ('View Items', None)
+ menu_view_item = gtk.MenuItem ('View Items', None)
menu_view_item.set_submenu (view_item)
self.setTitels(view_item)
if (self.parent.greader.totalUnread == 0 or self.parent.numberTitles == 0):
menu_view_item.set_sensitive (0)
self.window.add (menu_view_item)
-
+
self.window.add (gtk.SeparatorMenuItem())
# add the about menu item to the menu object
self.window.add(menu_item_about)
-
+
# create the quit menu item object with it's icon
menu_item_quit = gtk.ImageMenuItem('gtk-quit',None)
# connect a handler to it
menu_item_quit.connect('activate',self.exit)
- # add the quit menu item to the menu object
+ # add the quit menu item to the menu object
self.window.add(menu_item_quit)
-
+
# show the menu
- self.window.show_all()
+ self.window.show_all()
def exit(self,widget):
- # quit menu item handler -> quit the application
+ # quit menu item handler -> quit the application
os.system("kill " + str (os.getpid()))
-
+
def feed_clicked (self, widget):
popup = feedPopup()
-
+
def markAllRead (self, widget):
self.parent.greader.markAllRead()
self.parent.refresh()
-
+
def refresh_clicked (self, widget):
self.parent.refresh()
-
+
def preferences_clicked (self, widget):
configureWindow = configure_window()
-
+
def about_clicked(self,widget):
# about menu item handler -> create the about window
grnotify_app.about.create()
-
+
def popup(self,event):
# popup-show the menu
- self.window.popup( None, None, None, 0, event.time);
-
+ self.window.popup( None, None, None, 0, event.time);
+
def close(self,widget):
# the warning close button has been clicked (or the window was closed else way)
grnotify_app.warning_close_button = True
-
+
# the window isn't opened
grnotify_app.warning_window_opened = False
self.window.destroy()
-
+
def openGoogleReader(self, widget = None):
url = "https://www.google.com/accounts/ServiceLoginAuth?" + \
urllib.urlencode({'Email':grnotify_app.greader.email}) + "&" + \
urllib.urlencode({'Passwd':grnotify_app.greader.passwd}) + \
"&service=reader&continue=" + \
- "https://www.google.com/reader&nui=1"
+ "https://www.google.com/reader&nui=1"
webbrowser.open_new_tab(url)
-
+
def openlink(self, item):
i = 0
for item2 in self.items:
@@ -427,18 +426,18 @@ class tray_menu:
self.markRead(self.titles[i].id, self.titles[i].feed)
self.parent.refresh(forced=True)
i = i+1
-
+
def markRead(self, id, feed):
req = urllib2.Request ('http://www.google.com/reader/api/0/token')
f = urllib2.urlopen (req)
token = f.read()
-
+
data = { 'i' : id, 's' : feed, 'T' : token, 'ac' : 'edit-tags' , 'a' : 'user/-/state/com.google/read' }
data = urllib.urlencode (data)
url = 'http://www.google.com/reader/api/0/edit-tag'
req = urllib2.Request (url, data)
f = urllib2.urlopen (req)
-
+
def setTitels(self, menu) :
self.items = []
self.titles = []
@@ -449,7 +448,7 @@ class tray_menu:
self.items.append(gtk.MenuItem (title.title, None))
self.items[-1].connect ('activate', self.openlink)
menu.add (self.items[-1])
-
+
else:
self.menus = []
self.feedMenus = []
@@ -469,14 +468,14 @@ class tray_menu:
menu.add(self.menus[-1])
else:
del self.menus[-1]
-
+
class about_dialog:
def create(self):
CONFIG = '/usr/share/grnotify/'
# set the glade file
- self.gladefile = CONFIG + "about.glade"
+ self.gladefile = CONFIG + "about.glade"
- # create the widget three
+ # create the widget three
self.wTree = gtk.glade.XML(self.gladefile, "window_about")
self.wTree.signal_autoconnect(self)
@@ -495,7 +494,7 @@ class about_dialog:
def on_close_button_clicked(self, button=None, data=None):
#Close the dialog
self.window.destroy()
-
+
class updater (Thread):
def __init__(self, forced = False):
Thread.__init__(self)
@@ -506,8 +505,8 @@ class updater (Thread):
grnotify_app.greader.login(grnotify_app.user, grnotify_app.passwd)
grnotify_app.feeds = grnotify_app.greader.getUnreadFeeds()
grnotify_app.ok = True
-
-
+
+
grnotify_app.updateToolTip()
grnotify_app.updateIcon()
if grnotify_app.unread != grnotify_app.greader.totalUnread or self.forced:
@@ -519,31 +518,31 @@ class updater (Thread):
grnotify_app.updateToolTip()
grnotify_app.updateIcon()
pass
-
-
+
+
class feedPopup:
def __init__(self):
CONFIG = '/usr/share/grnotify/'
#Create the dialog
self.gladefile = CONFIG + "feed.glade"
- self.xml = gtk.glade.XML(self.gladefile)
+ self.xml = gtk.glade.XML(self.gladefile)
self.xml.signal_autoconnect(self)
self.window = self.xml.get_widget('main_window')
self.window.set_title('GrNotify: Add feed')
def on_close_button_clicked(self, button=None, data=None):
#Close the dialog
self.window.destroy()
-
+
def on_save_button_clicked(self, button=None, data=None):
# try:
-
+
feed = self.xml.get_widget('entry1').get_text()
self.window.destroy()
addFeed(feed).start()
-
+
class addFeed(Thread):
- def __init__(self, feed):
+ def __init__(self, feed):
self.feed = feed
Thread.__init__(self)
def run(self):
@@ -551,7 +550,7 @@ class addFeed(Thread):
req = urllib2.Request ('http://www.google.com/reader/api/0/token')
f = urllib2.urlopen (req)
token = f.read()
-
+
data = { 's' : 'feed/' + self.feed, 'T' : token, 'ac' : 'subscribe'}
data = urllib.urlencode (data)
url = 'http://www.google.com/reader/api/0/subscription/edit?client=contact:' + grnotify_app.user
@@ -560,16 +559,16 @@ class addFeed(Thread):
grnotify_app.refresh()
except:
pass
-
+
class DBusReader(dbus.service.Object):
- @dbus.service.method("org.gnome.feed.Reader",
+ @dbus.service.method("org.gnome.feed.Reader",
in_signature="s", out_signature="b")
def Subscribe(self, url):
try:
req = urllib2.Request('http://www.google.com/reader/api/0/token')
f = urllib2.urlopen(req)
token = f.read()
-
+
data = {'s': 'feed/' + url, 'T': token, 'ac': 'subscribe'}
data = urllib.urlencode(data)
req = urllib2.Request('http://www.google.com/reader/api/0/subscription/edit?client=contact:' + grnotify_app.user, data)
@@ -580,7 +579,7 @@ class DBusReader(dbus.service.Object):
return True
except:
return False
-
+
class configure_window:
def __init__(self):
#Set variables
@@ -588,7 +587,7 @@ class configure_window:
#Create the dialog
self.gladefile = CONFIG + "config.glade"
- self.xml = gtk.glade.XML(self.gladefile)
+ self.xml = gtk.glade.XML(self.gladefile)
self.xml.signal_autoconnect(self)
self.window = self.xml.get_widget('main_window')
@@ -602,11 +601,11 @@ class configure_window:
self.xml.get_widget('spinbutton1').set_text( str( ( grnotify_app.waitTime - grnotify_app.waitTime % 60 ) / 60) )
self.xml.get_widget('spinbutton2').set_text( str( grnotify_app.waitTime % 60 ) )
self.xml.get_widget('spinbutton3').set_text( str( grnotify_app.numberFeeds ) )
- if( grnotify_app.showCounter == True ):
+ if( grnotify_app.showCounter == True ):
self.xml.get_widget('showcounter1').set_active(1)
if grnotify_app.showNotification == True:
self.xml.get_widget('showpopups1').set_active(1)
- #Set the appropriate images to the icon chosers!!!
+ #Set the appropriate images to the icon chosers!!!
self.xml.get_widget('imagechooseiconnew2').set_from_file(grnotify_app.iconNew)
self.xml.get_widget('buttonchooseiconnew2').connect("clicked", self.iconclicked, "new")
self.xml.get_widget('imagechooseiconnonew2').set_from_file(grnotify_app.iconNoNew)
@@ -647,22 +646,22 @@ class configure_window:
self.fileselect.add_filter(filter)
response = self.fileselect.run()
-
+
if response == gtk.RESPONSE_OK:
self.iconget(widget,data)
elif response == gtk.RESPONSE_CANCEL:
self.fileselect.destroy()
-
+
def iconget(self, widget, data=None):
filename = self.fileselect.get_filename()
self.fileselect.destroy()
-
+
if(not filename.endswith('.gif') and not filename.endswith('.png') and not filename.endswith('.xpm')):
return
-
+
if(not os.stat(filename).st_size > 0):
return
-
+
if ( data == 'new' ):
gtk.gdk.pixbuf_new_from_file(filename).scale_simple(24, 24, gtk.gdk.INTERP_NEAREST).save(os.path.join(os.environ['HOME'], '.grnotify/newtemp.png'), "png", {})
self.fileiconnew = 'changed'
@@ -674,7 +673,7 @@ class configure_window:
self.fileiconbroken = 'changed'
self.xml.get_widget('imagechooseicon' + data + '2').set_from_file(os.path.join(os.environ['HOME'], '.grnotify/' + data + 'temp.png'))
- def get_info(self):
+ def get_info(self):
grnotify_app.user = self.xml.get_widget('username_entry2').get_text()
grnotify_app.passwd = self.xml.get_widget('password_entry2').get_text()
grnotify_app.waitTime =int( self.xml.get_widget('spinbutton1').get_text()) * 60
@@ -695,8 +694,8 @@ class configure_window:
grnotify_app.iconNoNew = '/usr/share/pixmaps/grnotify/nonew.gif'
grnotify_app.iconBroken = '/usr/share/pixmaps/grnotify/broken.gif'
grnotify_app.numberFeeds = int (self.xml.get_widget('spinbutton3').get_text())
- grnotify_app.showCounter = self.xml.get_widget('showcounter1').get_active()
- grnotify_app.showNotification = self.xml.get_widget('showpopups1').get_active()
+ grnotify_app.showCounter = self.xml.get_widget('showcounter1').get_active()
+ grnotify_app.showNotification = self.xml.get_widget('showpopups1').get_active()
grnotify_app.openReader = not self.xml.get_widget('combobox2').get_active()
grnotify_app.autoHide = self.xml.get_widget('autohide').get_active()
grnotify_app.useKeyRing = self.xml.get_widget('gnomekeyring').get_active()
@@ -705,7 +704,7 @@ class configure_window:
def on_save_button_clicked(self, button=None, data=None):
#Get global access to the config_changed variable
#Aquire the new data
- self.get_info()
+ self.get_info()
#Save the new data to the config file
grnotify_app.saveConfig()
@@ -717,12 +716,12 @@ class configure_window:
def on_close_button_clicked(self, button=None, data=None):
#Close the dialog
self.window.destroy()
-
+
if __name__ == "__main__" :
gtk.gdk.threads_init()
-
+
# create the grnotify object (and icon)
-
+
#readConfig() # fix by Eric Lembregts -> needed to know where the icon's are located!!
grnotify_app = grnotify()
grnotify_app.start()
@@ -734,5 +733,5 @@ if __name__ == "__main__" :
name = dbus.service.BusName("org.gnome.feed.Reader", session_bus)
reader = DBusReader(session_bus, '/org/gnome/feed/Reader')
mainloop = gobject.MainLoop()
-
+
gtk.main()
--- NEW FILE grnotify-setup.py ---
#/usr/bin/python
"""Copyright (C) 2009 Kristof Bamps
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
from distutils.core import setup
from os import path
import sys
DATA_DIR = path.join('share')
PIXMAPS_DIR = path.join(DATA_DIR , 'pixmaps')
APP_DIR = path.join(DATA_DIR , 'applications')
setup(
name='grnotify',
version='1.1.2',
author='Kristof Bamps',
author_email='bamps DOT kristof AT gmail.com',
url='https://sourceforge.net/projects/grnotify/',
license='GPLv2+',
description='A Google Reader in python',
platforms='Any',
py_modules=['GoogleReader'],
scripts=['grnotify'],
data_files=[
(PIXMAPS_DIR + "/grnotify",
['pixmaps/broken.gif', 'pixmaps/new.gif', 'pixmaps/nonew.gif']),
(PIXMAPS_DIR,
['pixmaps/grnotify.xpm']),
(DATA_DIR + "/grnotify",
['share/about.glade', 'share/config.glade', 'share/feed.glade']),
(APP_DIR,
['share/grnotify.desktop'])
]
)
Index: grnotify.spec
===================================================================
RCS file: /cvs/pkgs/rpms/grnotify/F-10/grnotify.spec,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- grnotify.spec 24 Feb 2009 23:53:22 -0000 1.1
+++ grnotify.spec 9 Apr 2009 06:20:47 -0000 1.2
@@ -2,7 +2,7 @@
Name: grnotify
Version: 1.1.2
-Release: 4%{?dist}
+Release: 6%{?dist}
Summary: Google Reader Notifier
Group: Applications/Internet
@@ -10,7 +10,8 @@
URL: http://grnotify.sourceforge.net
Source0: http://downloads.sourceforge.net/%{name}/%{name}_%{version}.tar.gz
Source1: %{name}.desktop
-Source2: setup.py
+Source2: %{name}-setup.py
+Patch0: %{name}-%{version}-fixurl.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
@@ -34,7 +35,8 @@
%prep
%setup -q
-cp -p %{SOURCE2} ./
+%patch0 -p1 -b .fixurl
+cp -p %{SOURCE2} ./setup.py
# rpmlint : "grnotify.noarch: E: non-executable-script /usr/lib/python2.5/site-packages/grnotify/GoogleReader.py 0644"
sed -i -e "s@#!/usr/bin/python@@" GoogleReader.py
@@ -79,6 +81,12 @@
%changelog
+* Thu Apr 09 2009 Guillaume Kulakowski <guillaume DOT kulakowski AT fedoraproject DOT org> - 1.1.2-6
+- Add patch for fix GReader URL
+
+* Sat Feb 22 2009 Guillaume Kulakowski <guillaume DOT kulakowski AT fedoraproject DOT org> - 1.1.2-5
+- Rename setup.py in grnotify-setup.py
+
* Sat Feb 22 2009 Guillaume Kulakowski <guillaume DOT kulakowski AT fedoraproject DOT org> - 1.1.2-4
- Fix vendor tag in desktop file
--- setup.py DELETED ---
- Previous message (by thread): rpms/grnotify/F-9 grnotify-1.1.2-fixurl.patch, NONE, 1.1 grnotify-setup.py, NONE, 1.1 grnotify.spec, 1.1, 1.2 setup.py, 1.1, NONE
- Next message (by thread): rpms/grnotify/devel grnotify-1.1.2-fixurl.patch, NONE, 1.1 grnotify-setup.py, NONE, 1.1 grnotify.spec, 1.1, 1.2 setup.py, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list