Is it bug in Straw or Python?
Jeremy Messenger
mezz7 at cox.net
Sun May 2 18:27:17 PDT 2004
Hello,
I am sure, some of you might remember that net/straw has hit on Python bug
sometime ago. So, I am not sure if it's Straw or Python bug. The update
version (0.23, not in ports tree yet) of Straw will complain:
=======================================
creating /var/tmp/straw/etc/gconf/schemas
copying data/straw.schemas -> /var/tmp/straw/etc/gconf/schemas
running install_gconf
error: Interrupted system call
*** Error code 1
=======================================
It complains with and without '-c -O1' in PYDISTUTILS_INSTALLARGS. So, I
created a workaround for now like this:
=======================================
- msg_sources = translation_files(),
+ msg_sources = ['glade/strings.c'] + glob.glob('src/lib/*.py'),
=======================================
It solves problem, since this is what has in the old version of Straw.
Here's what translation_files() that was added looks like in setup.py:
=======================================
def translation_files():
'''Files for translation...'''
potfile = './po/POTFILES.in'
if not os.path.exists(potfile):
sys.exit("No such file, '%s'. Please file a bug report.." %
potfile)
f = open(potfile)
files = []
for line in f:
# ignore comments and newline
if line.startswith('#') or line.startswith('\n'):
continue
else: files.append(line.strip())
f.close()
return files
=======================================
Attaching setup.py here in case if anyone want the full of it.
P.S. CC me, I am not on this list. Thanks!
Cheers,
Mezz
--
mezz7 at cox.net - mezz at FreeBSD.org
bsdforums.org 's moderator, mezz.
-------------- next part --------------
#! /usr/bin/env python
#
# setup.py for Straw
#
#
import imp
import sys
import glob
import os.path
from tools.straw_distutils import setup
name = 'straw'
version = '0.23'
# Check for Python < 2.2
if sys.version < '2.2':
sys.exit('Error: Python-2.2 or newer is required. Current version:\n %s'
% sys.version)
def modules_check():
'''Check if necessary modules is installed.
The function is executed by distutils (by the install command).'''
try:
import pygtk
pygtk.require('2.0')
imp.find_module('gtk')
except:
sys.exit('Error: PyGTK-1.99.13 or newer is required.')
mod_list = [
('ORBit', 'pyorbit', 0),
('gnome', 'gnome-python', 0),
('gnome.vfs', "gnome-python's gnomevfs", 0),
('gtkhtml2', "gnome-python's gtkhtml2", 1),
('gconf', "gnome-python's gconf", 0)]
if sys.version < '2.3':
mod_list.append(('bsddb3.db', 'bsddb3', 0))
ok = 1
for m, w, x in mod_list:
try:
if not x:
exec('import %s' % m)
else:
imp.find_module(m)
except ImportError:
ok = False
print 'Error: %s Python module is required to install %s' \
% (w, name.title())
try:
import adns, ADNS
except ImportError:
print 'Warning: adns Python module not found, will continue without.'
# gtk.glade needs special care (ugly...)
if ok:
path = imp.find_module('gtk')
if not os.path.exists(path[1] + '/glade.so'):
ok = False
print 'Error: %s Python module is required to install %s' \
% ("PyGTK's glade", name.title())
if not ok:
sys.exit(1)
def translations():
'''Build mo-po mapping from po directory'''
trans = []
dest = 'share/locale/%s/LC_MESSAGES/%s.mo'
for po in glob.glob('po/*.po'):
lang = os.path.splitext(os.path.basename(po))[0]
trans.append((dest % (lang , name), po))
return trans
def translation_files():
'''Files for translation...'''
potfile = './po/POTFILES.in'
if not os.path.exists(potfile):
sys.exit("No such file, '%s'. Please file a bug report.." % potfile)
f = open(potfile)
files = []
for line in f:
# ignore comments and newline
if line.startswith('#') or line.startswith('\n'):
continue
else: files.append(line.strip())
f.close()
return files
def data_files():
'''Build list of data files to be installed'''
images = glob.glob('images/*.png')
files = [
('share/pixmaps', ['images/straw.png']),
('share/straw', images + ['data/default_subscriptions.opml', 'glade/straw.glade'])]
return files
long_desc = '''\
Straw is a desktop news aggregator for the GNOME environment.
Its aim is to be a faster, easier and more accessible way to read
news and blogs than the traditional browser.'''
# Let distutils do the work
setup(name = name,
version = version,
description = 'Desktop news aggregator for GNOME',
long_description = long_desc,
author = 'Juri Pakaste',
author_email = 'juri at iki.fi',
url = 'http://www.nongnu.org/straw/',
license = 'GPL',
data_files = data_files(),
pot_file = 'po/straw.pot',
translations = translations(),
config_files = [('gconf/schemas',['data/straw.schemas'],
'with-gconf-schema-file-dir')],
scripts = ['src/straw'],
modules_check = modules_check,
packages = ['straw'],
package_dir = {'straw' : 'src/lib'},
msg_sources = translation_files(),
desktop_file = ['straw.desktop.in'])
More information about the freebsd-python
mailing list