rpms/pybliographer/FC-1 pyblio.patch, NONE, 1.1 pybliographer.spec, 1.1, 1.2

Zoltan Kota (zkota) fedora-extras-commits at redhat.com
Sun Mar 20 23:33:54 UTC 2005


Author: zkota

Update of /cvs/extras/rpms/pybliographer/FC-1
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv22293/FC-1

Modified Files:
	pybliographer.spec 
Added Files:
	pyblio.patch 
Log Message:
auto-import pybliographer-1.2.4-0.fdr.4.1 on branch FC-1 from pybliographer-1.2.4-0.fdr.4.1.src.rpm
Update from fedora.us

pyblio.patch:

--- NEW FILE pyblio.patch ---
--- pybliographer-1.2.4/Pyblio/Base.py	2004-07-17 21:52:43.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/Base.py	2004-11-26 08:09:55.000000000 +0100
@@ -76,6 +76,12 @@
 
 	return self.field_and_loss (key) [0]
 
+    def get (self, key, default=None):
+        if self.has_key (key):
+            return self [key]
+        else :
+            return default
+
 
     def __setitem__ (self, name, value):
 	self.dict [name] = value
@@ -116,7 +122,11 @@
 	tp = self.type.name
 	fields = self.type.fields
 
-	text = '%s [%s]\n' % (tp, self.key.key)
+        try:
+            text = '%s [%s]\n' % (tp, self.key.key)
+        except AttributeError:
+            text  = '%s [no key]\n' %(tp)
+            
 	text = text + ('-' * 70) + '\n'
 
 	dico = self.keys ()
--- pybliographer-1.2.4/Pyblio/ConfDir/Base.py	2004-07-07 21:56:42.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/ConfDir/Base.py	2004-11-26 08:09:55.000000000 +0100
@@ -60,7 +60,7 @@
            'Date', 'NoSeries', 'ConfPlace', 'Cote', 'IEEECN', 'Annotate',
            'Quote', 'LoCN', 'ISBN', 'ISSN', 'Note', 'Language', 'HowPublished',
            'To_Appear', 'From', 'Received', 'Owner', 'Keywords', 'Abstract',
-           'Remarks', 'URL' ]
+           'Remarks', 'URL', 'Beigabevermerk' ]
 
 entries = {
     'Article' : (('author', 'title', 'journal', 'date'),
@@ -81,7 +81,7 @@
     
     'InCollection' : (('author', 'title', 'booktitle', 'publisher', 'date', ),
                       ('editor', 'volume', 'number', 'series', 'type',
-                      'chapter', 'pages', 'address', 'edition',)),
+                      'chapter', 'pages', 'address', 'edition', 'note',)),
     
     'InProceedings' : (('author', 'title', 'booktitle', 'date',),
                        ('editor', 'volume', 'number', 'series',
@@ -136,6 +136,7 @@
 desc ['note'].type         = Fields.LongText
 desc ['quote'].type        = Fields.LongText
 desc ['remarks'].type      = Fields.LongText
+#desc ['beigabevermerk'].type      = Fields.LongText
 
 
 Config.set ('base/fields', desc)
--- pybliographer-1.2.4/Pyblio/ConfDir/GnomeUI.py	2004-07-07 21:56:42.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/ConfDir/GnomeUI.py	2004-11-26 08:09:56.000000000 +0100
@@ -64,7 +64,9 @@
              ('editor', 150),
              ('title',  200),
              ('booktitle', 200),
-             ('date', 50)):
+             ('date', 50),
+             ('-author/editor-', 150),
+             ('-author/title-', 250)):
     
     if not h.has_key (f): continue
 
--- pybliographer-1.2.4/Pyblio/ConfDir/Ovid.py	2004-07-07 21:56:42.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/ConfDir/Ovid.py	2004-11-26 08:09:56.000000000 +0100
@@ -11,23 +11,23 @@
 Config.set ('ovid/deftype',
             Config.get ('base/entries').data ['article'])
 
-Config.define ('ovid/sourceregexp',
-               """A regexp used to parse the source and abbreviated
-               source input fields. This is a raw and verbose Python
-               regular expression""",
-               Config.String())
-
-Config.set ('ovid/sourceregexp',
-    r"""
-    (?P<journal>.*)\.\ +
-    (?P<volume>\d+)
-    (?:\((?P<number>.*)\))?
-    (?::(?P<pages>.*?(?:-+.*?)?)
-    (?:;\ *(?P<other>.*))?)
-    (?:,\ *(?P<year>\d\d\d\d))\ *
-    (?P<month>.*)
-    \.\Z
-    """)
+## Config.define ('ovid/sourceregexp',
+##                """A regexp used to parse the source and abbreviated
+##                source input fields. This is a raw and verbose Python
+##                regular expression""",
+##                Config.String())
+
+## Config.set ('ovid/sourceregexp',
+##     r"""
+##     (?P<journal>.*)\.\ +
+##     (?P<volume>\d+)
+##     (?:\((?P<number>.*)\))?
+##     (?::(?P<pages>.*?(?:-+.*?)?)
+##     (?:;\ *(?P<other>.*))?)
+##     (?:,\ *(?P<year>\d\d\d\d))\ *
+##     (?P<month>.*)
+##     \.\Z
+##     """)
 
 Config.define ('ovid/mapping', 
                """ A mapping between the Ovid field name and
@@ -40,52 +40,53 @@
 
 
 Config.set ('ovid/mapping', {
-    'abbreviated source'
+    'Abbreviated Source'
                     : ('abbrevsrc',   SimpleField),
-    'abstract'      : ('abstract',    SimpleField),
-    'accession number'
+    'Abstract'      : ('abstract',    SimpleField),
+    'Accession Number'
                     : ('accession',   SimpleField),
-    'author'        : ('author',      AuthorField),
-    'author keywords'
-                    : ('keywords',    KeywordField),
-    'authors'       : ('author',      AuthorField),
-    'cas registry/ec number' 
+    'Author'        : ('author',      AuthorField),
+    'Author Keywords'
+                    : ('author-keywords',
+                       KeywordField),
+    'Authors'       : ('author',      AuthorField),
+    'CAS Registry/EC Number' 
                     : ('casec',       SimpleField),
-    'cc categories' : ('cccat',       SimpleField),
-    'classification codes'
+    'CC Categories' : ('cccat',       SimpleField),
+    'Classification Codes'
                     : ('classificationCodes',
                                       SimpleField),
-    'country of publication'
+    'Country of Publication'
                     : ('country',     SimpleField),
-    'document delivery'
+    'Document Delivery'
                     : ('docdeliv',    SimpleField),
-    'entry date'    : ('sourceid4',   SimpleField),
-    'institution'   : ('institution', SimpleField),
-    'issn'          : ('issn',        SimpleField),
-    'journal subset': ('nlmsubset',   SimpleField),
-    'key phrase identifiers'
-                    : ('keywords',    SimpleField),
-    'keywords+'     : ('keywords',    KeywordField),
-    'keywords plus' : ('keywords',    KeywordField),
-    'language'      : ('language',    SimpleField),
-    'mesh subject headings'
-                    : ('mesh',        SimpleField),
-    'nlm journal code'
+    'Entry Date'    : ('sourceid4',   SimpleField),
+    'Institution'   : ('institution', SimpleField),
+    'ISSN'          : ('issn',        SimpleField),
+    'Journal Subset': ('nlmsubset',   SimpleField),
+    'Key Phrase Identifiers'
+                    : ('keyphrase',   SimpleField),
+    'Keywords+'     : ('keywords',    KeywordField),
+    'KeyWords Plus' : ('keywordsplus',    KeywordField),
+    'Language'      : ('language',    SimpleField),
+    'Mesh Subject Headings'
+                    : ('mesh',        KeywordField),
+    'NLM Journal Code'
                     : ('nlmjournal',  SimpleField),
-    'publication notes'
+    'Publication Notes'
                     : ('note',        SimpleField),
-    'publication type'
-                    : ('type',        SimpleField),
-    'record owner'  : ('sourceid1',   SimpleField),
-    'revision date' : ('sourceid3',   SimpleField),
-    'source'        : ('journal',     SourceField),
-    'subject headings'
+    'Publication Type'
+                    : ('profile',     SimpleField),
+    'Record Owner'  : ('sourceid1',   SimpleField),
+    'Revision Date' : ('sourceid3',   SimpleField),
+    'Source'        : ('journal',     SourceField),
+    'Subject Headings'
                     : ('subjectHdgs', SimpleField),
-    'subset'        : ('subset',      SimpleField), 
-    'title'         : ('title',       SimpleField),
-    'treatment'     : ('treatment',   SimpleField),
-    'unique identifier'
+    'Subset'        : ('subset',      SimpleField), 
+    'Title'         : ('title',       SimpleField),
+    'Treatment'     : ('treatment',   SimpleField),
+    'Unique Identifier'
                     : ('sourceid0',   SimpleField),
-    'update date'   : ('sourceid2',   SimpleField), 
+    'Update Date'   : ('sourceid2',   SimpleField), 
     })
 
--- pybliographer-1.2.4/Pyblio/Config.py	2004-07-17 21:54:36.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/Config.py	2004-11-26 08:09:56.000000000 +0100
@@ -71,14 +71,16 @@
 
 
     def eventually_resolve (self, key):
+
         if self.items.has_key (key): return
         domain = string.split (key, '/') [0]
-        
+
         if self.sources.has_key (domain):
             file = self.sources [domain]
             del self.sources [domain]
 
             execfile (file, globals (), globals ())
+
         return
 
 
@@ -115,6 +117,7 @@
 
 
     def __getitem__ (self, key):
+
         self.eventually_resolve (key)
         return self.items [key]
         
@@ -148,7 +151,9 @@
     try:
         ConfigItems [key].set (value)
     except KeyError:
-        sys.stderr.write ("pybliographer: warning: configuration key `%s' is undefined\n" % key)
+        sys.stderr.write (
+            "pybliographer: warning: configuration key `%s' is undefined\n"
+            % key)
     return
 
 _changes = {}
--- pybliographer-1.2.4/Pyblio/Fields.py	2004-07-17 21:54:49.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/Fields.py	2004-11-26 08:09:56.000000000 +0100
@@ -154,7 +154,7 @@
 
         total = []
 
-        if self.first is None: return None
+        if self.first is None: return ''
         
         for atom in string.split (self.first, ' '):
             list = []
--- pybliographer-1.2.4/Pyblio/Format/isifile.py	2004-07-07 21:56:42.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/Format/isifile.py	2004-11-26 08:09:56.000000000 +0100
@@ -293,7 +293,7 @@
             authors = []
             for author in entry['author']:
                 initials = author.initials()
-                initials = re.sub('\. *','',initials)
+                initials = re.sub('\. *','', initials)
                 authors.append( '%s, %s' % (author.last, initials))
             del remaining ['author']    
             output_write('AU', authors)    
--- pybliographer-1.2.4/Pyblio/Format/OvidLike.py	2004-07-07 21:56:42.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/Format/OvidLike.py	2004-11-26 08:09:56.000000000 +0100
@@ -33,7 +33,6 @@
 KeywordField = 3
 
 separator_re = re.compile (r'<\d+>$')
-#source_re    = re.compile (r'(\w+)?\(([^\)]+)\):(\d+-\d+)')
 
 compact_dot  = re.compile (r'\.(\s*\.)+')
 
@@ -51,13 +50,32 @@
     month_name [long_month [key] - 1] = key
 
 
+
+def make_anti_mapping (mapping):
+    m = {}
+    for i, j in mapping.items():
+        m[j[0]] = (i, j[1])
+    return m
+
 class OvidLike (Iterator.Iterator):
+    source_rx  = r"""(?P<journal>.*?)\.\ +
+        (?P<volume>\w+)?
+        (?P<inseries>(\ PG\.\ +))?
+        (?:\((?P<number>.*)\))?
+        (?::?(?P<pages>.*?(?:-+.*?)?)
+        (?:;\ *(?P<other>.*))?)
+        (?:[,\.]\ *(?P<year>\d\d\d\d))\ *
+        (?P<month>.*)
+        \.\s*\Z"""
+
+    source_re = re.compile  (source_rx, flags=re.VERBOSE)
 
-    def __init__ (self, file, mapping, deftype, sourceregexp):
+    def __init__ (self, file, mapping, deftype):
         self.file    = file
         self.deftype = deftype
-        self.mapping = mapping
-        self.source_re = re.compile(sourceregexp, flags= re.VERBOSE)
+        self.mapping = {}
+        for i, j in mapping.iteritems():
+            self.mapping[i.lower()] = j
         return
 
     def first (self):
@@ -82,20 +100,17 @@
         dict = {}
         
         # read entry till next blank line
-        text  = ''
+        text  = []
         field = ''
         while 1:
             line = self.file.readline ()
             if line == '': break
-
             line = string.rstrip (line)
 
-            if line == '': continue
-            
             # starting with a blank ?
-            if line [0] == ' ':
+            if line == '' or   line [0] == ' ':
                 # ...then we continue the current text
-                text = text + ' ' + string.lstrip (line)
+                text.append (string.lstrip (line))
                 continue
 
             # new entry ?
@@ -104,25 +119,25 @@
             # else, this is a new field
             if field:
                 # save the previous one if needed
-                dict [field] = text
-                text = ''
+                dict [field] = '\n'.join(text)
+                text = []
 
             # store the name of this new field
             field = string.lower (line)
 
         # don't waste the last field content
         if field:
-            dict [field] = text
+            dict [field] = '\n'.join(text)
 
         # did we parse a field ?
         if len (dict) == 0: return None
-        
+
         # create the entry content
         entry = Base.Entry (type = self.deftype)
 
         for key in dict.keys ():
             if not self.mapping.has_key (key):
-                print "warning: unused key `%s'" % key
+                #print "warning: unused key `%s'" % key
                 continue
 
             (name, type) = self.mapping [key]
@@ -131,18 +146,16 @@
             # parse a simple text field
             if type == SimpleField:
                 entry [name] = text_type (string.strip (dict [key]))
-                continue
 
-            if type == KeywordField:
+            elif type == KeywordField:
                 text = string.strip (dict [key])
                 if entry.has_key (name):
-                    text = str (entry [name]) + '  ' + text
+                    text = str (entry [name]) + '\n  ' + text
                     
                 entry [name] = text_type (text)
-                continue
 
             # parse an author field
-            if type == AuthorField:
+            elif type == AuthorField:
                 ag = Fields.AuthorGroup ()
 
                 for names in string.split (dict [key], '  '):
@@ -169,19 +182,32 @@
                 continue
 
             # parse a source field
-            if type == SourceField:
-
-                m = self.source_re.match (dict[key])
-
+            elif type == SourceField:
+                m = self.source_re.match (dict[key].strip())
                 if m:
                     year, month, day = None, None, None
-
-                    j, v, n, p, o, y, m = m.group(
-                        'journal', 'volume', 'number', 'pages',
-                        'other', 'year', 'month')
-
-                    if j:
-                        entry [name] = Fields.Text (j)
+                    j, v, s, n, p, o, y, d = m.group(
+                        'journal', 'volume', 'inseries', 'number',
+                        'pages', 'other', 'year', 'month')
+
+                    if s:                ### article in a monograph series
+                        entry['booktitle'] = Fields.Text (j)
+                        if d:
+                            entry['beigabevermerk'] = Fields.LongText (d)
+                        entry.type = Types.get_entry('incollection')
+
+                    elif j:
+                        entry ['journal'] = Fields.Text (j)
+                        if d and not d.isspace():
+                            dates = d.split ()                    
+                            try:
+                                month = long_month [dates[0]]
+                            except KeyError:
+                                print 'OVID Warning:',
+                                print '%s is not representable in %s' %(
+                                dates[0], m)
+                            if len(dates) > 1:
+                                day = int (dates[1])
 
                     if v:
                         entry ['volume'] = Fields.Text (v)
@@ -198,21 +224,12 @@
                     if y:
                         year = int(y)
 
-                    if m and not m.isspace():
-                        dates = m.split ()                    
-                        try:
-                            month = long_month [dates[0]]
-                        except KeyError:
-                            print 'OVID Warning: %s is not representable in %s' %(
-                                dates[0], m)
-                        if len(dates) > 1:
-                            day = int (dates[1])
-                            
                     entry ['date'] = Fields.Date((year, month, day))
-                
+                else:
+                    print '>>> Error: Source field  does not parse correctly:'
+                    print dict[key]
+                    print entry
                 continue
-
-            raise TypeError, "unknown field type `%d'" % type
         
         return entry
 
@@ -221,78 +238,139 @@
 
     counter = 1
     entry   = iter.first ()
-
+    m = make_anti_mapping (mapping)
     while entry:
-        output.write ('<%d>\n' % counter)
+        write_entry (output, entry, counter, m)
         counter = counter + 1
+        entry = iter.next ()
+        if entry: output.write ('\n')
 
-        for key in mapping.keys ():
-            (name, type) = mapping [key]
-            key = string.capwords (key)
+def write_entry (output, entry, counter, mapping):
+    output.write ('<%d>\n' % counter)
 
-            if type == SimpleField:
-                if not entry.has_key (name): continue
-                output.write (key + '\n')
+    keys = entry.keys()
 
-                output.write (Utils.format (str (entry [name]),
-                                            75, 2, 2) + '\n')
-                continue
+    write_source_field (output, entry, keys)
+     
+    for key in keys:
+        (name, typ) = mapping.get(key, (None, None))
+        if name == None or typ == SourceField: continue
 
-            if type == AuthorField:
-                if not entry.has_key (name): continue
-                output.write (key + '\n')
+        output.write (name)
+        output.write('\n')
+        
+        if typ == SimpleField:
+            write_simple_field (output, entry[key])
 
-                auths = map (lambda auth: '%s %s' % (auth.last or '', auth.first or ''),
-                             entry [name])
+        elif typ == AuthorField:
+            write_author_field (output, entry[key])
 
-                output.write ('  ' + string.join (auths, '  ') + '\n')
-                continue
+        elif typ == SourceField: print 'sourcefield: %s' %(entry[key])
+#             write_source_field (output, entry, keys)
 
-            if type == SourceField:
-                # do we have one of those fields ?
-                if not (entry.has_key (name [0]) or
-                        entry.has_key (name [1]) or
-                        entry.has_key (name [2]) or
-                        entry.has_key (name [3]) or
-                        entry.has_key (name [4])): continue
-                output.write (key + '\n')
-
-                text = ''
-                if entry.has_key (name [0]):
-                    # put the title
-                    text = text + str (entry [name [0]]) + '. '
-
-                has_source = 0
-                vals = ['', '', '']
-                for i in range (0, 3):
-                    if entry.has_key (name [i + 1]):
-                        has_source = 1
-                        vals [i] = str (entry [name [i + 1]])
-
-                if has_source:
-                    text = text + '%s(%s):%s' % tuple (vals)
-
-                if entry.has_key (name [4]):
-                    if has_source:
-                        text = text + ', '
-
-                    date = entry [name [4]]
-                    text = text + str (date.year)
-                    if date.month:
-                        text = text + ' ' + month_name [date.month - 1]
-                    if date.day:
-                        text = text + ' ' + str (date.day)
-
-                # final dot.
-                if text: text = text + '.'
-
-                # correct the number of dots...
-                text = compact_dot.sub ('.', text)
-                
-                output.write (Utils.format (text,
-                                            75, 2, 2) + '\n')
-                
-        entry = iter.next ()
-        if entry: output.write ('\n')
+        elif typ == KeywordField:
+            if key == 'mesh':
+                offset = 4
+            else:
+                offset = 2
+            write_simple_field (output, entry[key], offset)
+
+    
+def write_simple_field (output, value, offset=2):
+    off = offset * ' '
+    lines = str(value).split('\n')
+    for l in lines:
+        output.write(off)
+        output.write (l)
+        output.write ('\n')
+
+
+def write_keyword_field (output, value):
+    lines = str(value).split('\n')
+    for line in lines:
+        output.write('    ')
+        output.write(line)
+        output.write('\n')
+
+
+def write_author_field (output, value):
+    auths = [ '%s %s' % (auth.last or '', auth.first or '')
+              for auth in value]
+    output.write ('  ')
+    output.write ('  '.join (auths))
+    output.write ('\n')
+
+
+def write_source_field (output, entry, keys):
+    t = []
+
+    output.write('Source\n')
+    
+    if entry.type == Types.get_entry(
+        'incollection') or entry.has_key ('booktitle'):
+        t = [str(entry.get ('booktitle')).strip()]
+        
+        if entry.has_key ('volume'):
+            t.append (".  %s " % (entry ['volume']))
+        if entry.has_key ('number'):
+            t.append ("(%s)" %  (entry ['number']))
+
+        if entry.has_key ('pages'):
+            p = str (entry ['pages'])
+            #p = Utils.compress_page_range (p)
+            t.append ("PG. %s." %(p))
+
+        if entry.has_key('date'):
+            date  = entry['date']
+            t.append (" %s" % (date.year))
+        if entry.has_key ('beigabeevermerk'):
+            t.append (str(entry.get('beigabevermerk')))
+    else: 
+
+        t.append ("%s. " %(entry ['journal']))
+
+        if entry.has_key ('volume'):
+            t.append ("%s" % (entry ['volume']))
+
+        if entry.has_key ('number'):
+            t.append ("(%s)" %  (entry ['number']))
+
+        if entry.has_key ('pages'):
+            p = str (entry ['pages'])
+            #p = Utils.compress_page_range (p)
+            t.append (":%s" %(p))
+
+        if entry.has_key ('other-note'):
+            t.append ("; %s" %(entry ['other-note']))
+
+        if entry.has_key('date'):
+            date  = entry['date']
+
+            t.append (", %s" % (date.year))
+
+            if date.month:
+                t.append (" %s" % (month_name [date.month - 1]))
+            if date.day:
+                t.append (" %s" %(date.day))
+        
+
+    # final dot.
+    t.append (".")
+    text = ''.join (t)
+
+    # correct the number of dots...
+    #text = compact_dot.sub ('.', text)
+    output.write('  ')
+    output.write (text)
+    output.write ('\n')
+
+
+
+
+
+
+### Local Variables:
+### Mode: python
+### py-master-file : "ut_Ovidlike.py"
+### End:
 
-    return
--- pybliographer-1.2.4/Pyblio/Format/Ovid.py	2004-07-07 21:56:42.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/Format/Ovid.py	2004-11-26 08:09:56.000000000 +0100
@@ -73,8 +73,8 @@
     return  OvidLike.OvidLike (
         file,
         Config.get ('ovid/mapping').data,
-        Config.get ('ovid/deftype').data,
-        Config.get ('ovid/sourceregexp').data)
+        Config.get ('ovid/deftype').data
+        )
 
 
 def writer (iter, output):
--- pybliographer-1.2.4/Pyblio/GnomeUI/Document.py	2004-07-17 21:51:48.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/GnomeUI/Document.py	2004-11-26 08:09:58.000000000 +0100
@@ -779,7 +779,7 @@
         Utils.config.set_int ('/apps/pybliographic/ui/width',  alloc [2])
         Utils.config.set_int ('/apps/pybliographic/ui/height', alloc [3])
 
-        # 2.- Proportion betzeen list and text
+        # 2.- Proportion between list and text
         height = self.paned.get_position ()
         Utils.config.set_int ('/apps/pybliographic/ui/paned', height)
 
--- pybliographer-1.2.4/Pyblio/GnomeUI/Editor.py	2004-07-17 21:55:14.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/GnomeUI/Editor.py	2004-11-26 08:09:58.000000000 +0100
@@ -640,6 +640,7 @@
                     self.w.get_toplevel(), gtk.DIALOG_DESTROY_WITH_PARENT,
                     gtk.MESSAGE_WARNING, gtk.BUTTONS_OK_CANCEL,
                     "Text will be lost if you click OK.")
+                dialog.set_transient_for (self.dialogue.w)
                 rc = dialog.run()
                 dialog.destroy()
                 
@@ -1225,7 +1226,7 @@
             anno_label.set_markup(l)
             vbox.pack_start (anno_label)
             
-            if entry.has_key(key): t = str (entry[key])
+            if entry.has_key(key): t = str (entry[key]).decode ('latin-1')
             else:                  t = ''
 
             l = min (len(t), 150)
@@ -1286,7 +1287,7 @@
         key = node['key']
         if not item.has_key(key):
             item[key] = Fields.LongText(_('Enter text here'))
-        self.buff.set_text (str(item[key]), -1)
+        self.buff.set_text (str (item[key]).decode ('latin-1'), -1)
         self.buff.set_modified (False)
         self.page.show_all ()
         if self.hidden:
@@ -1301,7 +1302,7 @@
             start, end = self.buff.get_bounds()
             
             key = self.node['key']
-            text = self.buff.get_text (start, end)
+            text = self.buff.get_text (start, end).encode ('latin-1')
             if text.strip():
                 self.entry[key] = Fields.LongText(text)
             else:
@@ -1325,7 +1326,7 @@
 
         start, end = self.buff.get_bounds()
         key = self.node['key']
-        self.entry[key].text = self.buff.get_text (start, end)
+        self.entry[key].text = self.buff.get_text (start, end).encode ('latin-1')
         
 
     def enable_buttons (self):
--- pybliographer-1.2.4/Pyblio/GnomeUI/Fields.py	2004-07-17 21:55:41.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/GnomeUI/Fields.py	2004-11-26 08:09:48.000000000 +0100
@@ -43,22 +43,26 @@
     Fields.Date        : _('Date')
     }
 
-class FieldsDialog:
+class FieldsDialog (Utils.GladeWindow):
 
-    def __init__ (self, parent = None):
+    gladeinfo = {
 
-        gp = os.path.join (version.pybdir, 'glade', 'fields1.glade')
+        'file': 'fields1.glade',
+        'name': 'fields',
+        'root': 'fields1'
         
-        self.xml = gtk.glade.XML (gp, 'fields1')
-        self.xml.signal_autoconnect (self)
+        }
+
+    def __init__ (self, parent = None):
 
+        Utils.GladeWindow.__init__ (self, parent)
+        
         self.dialog = self.xml.get_widget ('fields1')
         self.w = self.xml.get_widget ('notebook')
 
         tooltips = gtk.Tooltips ()
         tooltips.enable ()
         
-        if parent: self.dialog.set_transient_for (parent)
         self.warning = 0
         self.parent = parent
         self.init_page_1()
@@ -74,7 +78,9 @@
 
     def on_close (self, w):
         self.dialog.hide_all()
-
+        self.size_save ()
+        return
+    
     def on_add(self, *args):
         page = self.w.get_current_page ()
         if page == 0: self.page1_add (*args)
@@ -323,8 +329,8 @@
         for i in item.optional:
              self.sm.append((i.name, False, i.name, i))
         self.label3.set_markup (
-            _('Fields associated with <b>%s</b> entry type' %(
-            item.name)))
+            _('Fields associated with <b>%s</b> entry type') %
+            item.name)
         self.check()
 
     def page3_add (self, *args):
--- pybliographer-1.2.4/Pyblio/GnomeUI/Index.py	2004-07-17 21:55:56.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/GnomeUI/Index.py	2004-11-26 08:09:56.000000000 +0100
@@ -30,7 +30,7 @@
 
 ''' Main index containing the columned view of the entries '''
 
-from Pyblio import Fields, Config, Connector, Types, Sort
+from Pyblio import Fields, Config, Connector, Types, Sort, userformat
 
 from gnome import ui
 import gtk, gobject
@@ -335,6 +335,12 @@
                 elif f == '-type-':
                     row.append (str (entry.type.name))
                     
+                elif f == '-author/editor-':
+                    row.append (userformat.author_editor_format (entry))
+
+                elif f == '-author/title-':
+                    row.append (userformat.author_title_format (entry))
+                    
                 elif entry.has_key (f):
                     
                     if Types.get_field (f).type == Fields.AuthorGroup:
--- pybliographer-1.2.4/Pyblio/GnomeUI/__init__.py	2004-07-17 21:56:41.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/GnomeUI/__init__.py	2004-11-26 08:09:58.000000000 +0100
@@ -24,7 +24,8 @@
 
 import sys, string
 
-sys.argv = sys.argv [:2] + ['--'] + sys.argv [2:]
+files    = sys.argv [2:]
+sys.argv = sys.argv [:2] + ['--'] + files
 
 # correctly identify the program
 import pygtk
@@ -46,9 +47,9 @@
     _vnum (gtk.gtk_version), _vnum (gtk.pygtk_version))
     
 # clean up our garbage
-sys.argv = sys.argv [:2] + sys.argv [3:]
+sys.argv = sys.argv [:2] + files
 
-del sys
+del sys, files
 
 import gtk.glade
 
--- pybliographer-1.2.4/Pyblio/GnomeUI/Pybliographic.py	2004-07-17 21:56:09.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/GnomeUI/Pybliographic.py	2004-11-26 08:09:56.000000000 +0100
@@ -106,13 +106,15 @@
         
         if not document.close_document_request ():
             return
+
+        if len (self.documents) == 1 and maybe_exit:
+            self.exit_application (self.documents [0])
+            return
         
         document.w.destroy ()
         self.documents.remove (document)
         
-        if not self.documents:
-            if maybe_exit: mainquit ()
-            else:          self.new_document ()
+        if not self.documents: self.new_document ()
         return
 
 
@@ -137,6 +139,6 @@
             doc.w.destroy ()
             self.documents.remove (doc)
 
-        mainquit ()
+        main_quit ()
         return
     
--- pybliographer-1.2.4/Pyblio/GnomeUI/Search.py	2004-07-07 21:56:42.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/GnomeUI/Search.py	2004-11-26 08:09:51.000000000 +0100
@@ -128,7 +128,8 @@
                 'after' :    TextUI.after,
                 }
             
-            search = self._w_expert_text.get_text ()
+            search = self._w_expert_text.get_text ().encode ('latin-1')
+            
             try:
                 exec ('tester = ' + search, user_global)
             except:
@@ -157,7 +158,7 @@
 
             if field == ' - any field - ' or field == '':
                 try:
-                    test = Search.AnyTester (match)
+                    test = Search.AnyTester (match.encode ('latin-1'))
                 except re.error, err:
                     error = 1
                     
--- pybliographer-1.2.4/Pyblio/Makefile.am	2004-07-07 21:56:42.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/Makefile.am	2004-11-26 08:09:56.000000000 +0100
@@ -47,7 +47,8 @@
 	__init__.py 	\
 	Query.py	\
 	pybtextvar.py	\
-	recode.py
+	recode.py       \
+	userformat.py
 
 SUBDIRS = GnomeUI Output Format ConfDir Style
 
--- pybliographer-1.2.4/Pyblio/Makefile.in	2004-07-07 22:12:29.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/Makefile.in	2004-11-26 08:12:07.000000000 +0100
@@ -139,7 +139,8 @@
 	__init__.py 	\
 	Query.py	\
 	pybtextvar.py	\
-	recode.py
+	recode.py       \
+	userformat.py

 
 SUBDIRS = GnomeUI Output Format ConfDir Style 
--- pybliographer-1.2.4/Pyblio/Open.py	2004-07-17 21:57:10.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/Open.py	2004-11-26 08:09:57.000000000 +0100
@@ -21,6 +21,7 @@
 
 
 from types import *
+
 from Pyblio import Autoload, Fields, Help, Exceptions
 
 import urlparse, urllib, traceback, os, sys, tempfile, string
--- pybliographer-1.2.4/Pyblio/userformat.py	1970-01-01 01:00:00.000000000 +0100
+++ pybliographer-1.2.4-patch/Pyblio/userformat.py	2004-11-26 08:09:55.000000000 +0100
@@ -0,0 +1,71 @@
+# This file is part of Pybliographer
+# 
+# Copyright (C) 2004 Peter Schulte-Stracke
+# Email : mail at schulte-stracke.de
+#          
+# 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, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+# 
+# 
+
+
+
+def author_editor_format (item):
+    """Return the author or editor of an item, for use
+    in list displays."""
+    s = []
+    r = item.get ('author') or  item.get ('editor', [])
+
+
+    try:  len(r)
+    except TypeError:
+        print 'USERFORMAT INPUT:', `r`, str(r) 
+        return str(r)
+    
+    if len (r) == 1:
+        a = r[0]
+        s.append ("%s, %s" %(
+            a.last, a.initials()))
+    
+    elif len (r) > 3:       
+        a = r[0]
+        s.append ("%s, %s et al." %(
+            a.last, a.initials()))
+    
+    elif len (r) > 1:
+        for a in r:
+            s.append (a.last)
+        return '/'.join (s)
+
+    return "".join (s)
+
+
+def author_title_format (item):
+    """Return author/title string for use in list displays."""
+
+    r = author_editor_format (item)
+    if r:
+        s = [r, ': ']
+    else:
+        s = []
+        
+    r = item.get ('title') or item.get ('booktitle', '[no title]')
+    s.append (str(r))
+
+    return ''.join (s)
+
+
+
+            
+        
--- pybliographer-1.2.4/Pyblio/Utils.py	2004-07-07 21:56:42.000000000 +0200
+++ pybliographer-1.2.4-patch/Pyblio/Utils.py	2004-11-26 08:09:57.000000000 +0100
@@ -18,13 +18,36 @@
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 # 
 # 
-
+import re
 from string import *
 
 from Pyblio import Key, Autoload, recode
 
 _flat = recode.recode ('latin1..flat')
 
+def compress_page_range (pages, separator='-'):
+    """Returns a page range with common prefix
+    elided from the second number. Resulte is string
+    firstpage(separator)(lastpage), except if separator
+    is None, then a sequence is returned."""
+
+    p = re.sub (' *--? *', '-', pages)
+    s = p.split('-')
+    if len(s) > 1:
+        l, r = s
+        if len(l) == len(r):
+            i = 0
+            while r [i] == l[i]:
+                i += 1
+            r = r[i:]
+    else:
+        l, r = s[0], ''
+    if separator:
+        return "%s%s%s" %(l, separator, r)
+    else:
+        return l, r
+
+
 def format (string, width, first, next):
     ''' Format a string on a given width '''
 
--- pybliographer-1.2.4/pybliographer.py	2004-07-07 21:56:42.000000000 +0200
+++ pybliographer-1.2.4-patch/pybliographer.py	2004-11-26 08:09:50.000000000 +0100
@@ -23,14 +23,12 @@
 version  = "@version@"
 progname = "@package@"
 
-lib_pybdir  = "@libpyb@"
 data_pybdir = "@datapyb@"
 localedir   = "@localedir@"
 
 import sys
 
 sys.path.insert (0, data_pybdir)
-sys.path.insert (0, lib_pybdir)
 sys.path.insert (0, '.')
 
 import locale
--- pybliographer-1.2.4/scripts/pybcheck.py	2004-07-07 21:56:42.000000000 +0200
+++ pybliographer-1.2.4-patch/scripts/pybcheck.py	2004-11-26 08:09:45.000000000 +0100
@@ -23,9 +23,12 @@
 import os, sys, string
 from Pyblio import Config, Exceptions
 
+import locale
+charset = locale.getlocale () [1] or 'ascii'
+
 # check the arguments
 if len (sys.argv) < 3:
-    print "usage: pybcheck <file | directory>..."
+    print _("usage: pybcheck <file | directory>...").encode (charset)
     sys.exit (1)
 
 # list containing the broken entries
@@ -54,7 +57,7 @@
         # try to open the database
         try:
             b = bibopen (f)
-            print "file `%s' is ok [%d entries]" % (f, len (b))
+            print (_("file `%s' is ok [%d entries]") % (f, len (b))).encode (charset)
         except (Exceptions.ParserError, KeyError), err:
             broken.append (str (err))
 
--- pybliographer-1.2.4/scripts/pybcompact.py	2004-07-17 22:03:56.000000000 +0200
+++ pybliographer-1.2.4-patch/scripts/pybcompact.py	2004-11-26 08:09:46.000000000 +0100
@@ -23,12 +23,15 @@
 import string, os, re, copy, sys
 from Pyblio import Base, Key
 
+import locale
+charset = locale.getlocale () [1] or 'ascii'
+
 def usage ():
-    print _("usage: pybcompact <latexfile> <bibtexfiles...>")
+    print _("usage: pybcompact <latexfile> <bibtexfiles...>").encode (charset)
     return
 
 def error (msg):
-    sys.stderr.write (_("pybcompact: error: %s\n") % msg)
+    sys.stderr.write ((_("pybcompact: error: %s\n") % msg).encode (charset))
     sys.exit (1)
     return
 
@@ -54,8 +57,8 @@
     try:
         aux = open (auxfile, 'r')
     except IOError, err:
-        error ('%s: %s' % (auxfile, err))
-    
+        error ("`%s': %s" % (auxfile, str (err).decode (charset)))
+
     citations = []
 
     # parse the whole file
--- pybliographer-1.2.4/scripts/pybconvert.py	2004-07-17 22:04:03.000000000 +0200
+++ pybliographer-1.2.4-patch/scripts/pybconvert.py	2004-11-26 08:09:45.000000000 +0100
@@ -22,8 +22,11 @@
 
 import os, sys, string
 
+import locale
+charset = locale.getlocale () [1] or 'ascii'
+
 if len (sys.argv) < 4 or len (sys.argv) > 5:
-    print _("usage: pybconvert <source>..<target> <input> [output]")
+    print _("usage: pybconvert <source>..<target> <input> [output]").encode (charset)
     sys.exit (1)
 
 
@@ -32,7 +35,7 @@
 try:
     source, target = string.split (format, '..')
 except:
-    print _("pybconvert: bad conversion format")
+    print _("pybconvert: error: bad conversion format").encode (charset)
     sys.exit (1)
 
 
--- pybliographer-1.2.4/scripts/pybformat.py	2004-07-17 22:04:11.000000000 +0200
+++ pybliographer-1.2.4-patch/scripts/pybformat.py	2004-11-26 08:09:49.000000000 +0100
@@ -27,18 +27,32 @@
 from Pyblio import Base, Autoload
 from Pyblio.Style import Utils
 
+import locale
+charset = locale.getlocale () [1] or 'ascii'
+
 def usage ():
-    sys.stderr.write (_("usage: pybformat [bibtexfiles...]\n"))
+    print _("""usage: pybformat [options] <database...>
+
+    options:
+      -o file, --output=file		specify an output filename
+      -s style, --style=style		specify a bibliography style
+      -f format, --format=format	specify an output format
+      -H header, --header=header	defines a header file
+      -F footer, --footer=footer	defines a footer file
+      -l 'output', --list='output'	lists the available output formats
+      -h, --help			show this help message
+      -v, --version			show this help message
+    """).encode (charset)
     return
 
 def error (text, exit = 1):
-    sys.stderr.write (_("pybformat: error: %s\n") % text)
+    sys.stderr.write ((_("pybformat: error: %s\n") % text).encode (charset))
     if exit:
         sys.exit (1)
     return
 
 def warning (text, exit = 0):
-    sys.stderr.write (_("pybformat: warning: %s\n") % text)
+    sys.stderr.write ((_("pybformat: warning: %s\n") % text).encode (charset))
     if exit:
         sys.exit (1)
     return
@@ -73,21 +87,21 @@
         try:
             outfile = open (value, 'w')
         except IOError, err:
-            error ("can't open `%s': %s" % (value, err))
+            error (_("can't open `%s': %s") % (value, str (err).decode (charset)))
         continue
 
     if opt == '-l' or opt == '--list':
         try:
             list = Autoload.available (value)
         except KeyError:
-            error ("unknown list `%s'" % value)
+            error (_("unknown list `%s'") % value)
             
         if list:
-            print "pybformat: available values for `%s':" % value
+            print (_("pybformat: available values for `%s':") % value).encode (charset)
             print "  " + string.join (list, ", ")
             sys.exit (0)
         else:
-            warning ("empty value list `%s'" % value)
+            warning (_("empty value list `%s'") % value)
             sys.exit (0)
             
     if opt == '-h' or opt == '--help':
@@ -115,14 +129,14 @@
 if len (args) < 1:
     # user gave wrong arguments...
     usage ()
-    error ("too few arguments")
+    error (_("too few arguments"))
 
 files  = args
 
 # get the specified style and the output
 output = Autoload.get_by_name ('output', format)
 if output is None:
-    error ("unknown output format `%s'" % format)
+    error (_("unknown output format `%s'") % format)
 
 url = None
 style = os.path.splitext (style) [0]
@@ -138,8 +152,7 @@
     error (_("can't find style `%s'") % style)
 
 
-sys.stderr.write ("pybformat: using style `%s', format `%s'\n" \
-                  % (style, output.name))
+sys.stderr.write ((_("pybformat: using style `%s', format `%s'\n") % (style, output.name)).encode (charset))
 
 formatter = output.data
 
@@ -154,7 +167,7 @@
                 outfile.write (line)
         h.close ()
     except IOError, err:
-        error ("can't open header `%s': %s" % (header, err))
+        error (_("can't open header `%s': %s") % (header, str (err).decode (charset)))
 
 # write the data
 for file in files:
@@ -162,7 +175,7 @@
     try:
         db = bibopen (file)
     except IOError, err:
-        error ("can't open database: %s" % file)
+        error (_("can't open database: %s") % file)
 
     Utils.generate (url, formatter, db, db.keys (), outfile)
     
@@ -177,7 +190,7 @@
                 outfile.write (line)
         h.close ()
     except IOError, err:
-        error ("can't open footer `%s': %s" % (header, err))
+        error (_("can't open footer `%s': %s") % (footer, str (err).decode (charset)))
 
         
 outfile.close ()
--- pybliographer-1.2.4/scripts/pybtex.py	2004-07-17 22:04:28.000000000 +0200
+++ pybliographer-1.2.4-patch/scripts/pybtex.py	2004-11-26 08:09:45.000000000 +0100
@@ -27,12 +27,15 @@
 from Pyblio import Base, Autoload, Fields
 from Pyblio.Style import Utils
 
+import locale
+charset = locale.getlocale () [1] or 'ascii'
+
 def usage ():
-    print _("usage: pybtex <latexfile> [bibtexfiles...]")
+    print _("usage: pybtex <latexfile> [bibtexfiles...]").encode (charset)
     return
 
 def error (message):
-    sys.stderr.write (_("pybtex: error: %s\n") % message)
+    sys.stderr.write ((_("pybtex: error: %s\n") % message).encode (charset))
     sys.exit (1)
     return
 
@@ -53,7 +56,7 @@
 
 if missing:
     # warn the user that some entries were not found
-    print _("pybtex: warning: the following keys were not resolved")
+    print _("pybtex: warning: the following keys were not resolved").encode (charset)
     print '	' + string.join (missing, '\n	') + '\n'
 
 if style is None:
--- pybliographer-1.2.4/scripts/pybtext.py	2004-07-17 22:04:41.000000000 +0200
+++ pybliographer-1.2.4-patch/scripts/pybtext.py	2004-11-26 08:09:45.000000000 +0100
@@ -34,17 +34,20 @@
 
 from Pyblio import pybtextvar
 
+import locale
+charset = locale.getlocale () [1] or 'ascii'
+
 def usage ():
-    print _("usage: pybtext [-o outputfile] [-s style] <textfile> <bibfiles...>")
+    print _("usage: pybtext [-o outputfile] [-s style] <textfile> <bibfiles...>").encode (charset)
     return
 
 def error (msg):
-    sys.stderr.write (_("pybtext: error: %s\n") % msg)
+    sys.stderr.write ((_("pybtext: error: %s\n") % msg).encode (charset))
     sys.exit (1)
     return
 
 def warning (msg, exit = 0):
-    sys.stderr.write (_("pybtext: warning: %s\n") % msg)
+    sys.stderr.write ((_("pybtext: warning: %s\n") % msg).encode (charset))
     if exit:
         sys.exit (1)
     return
@@ -111,17 +114,17 @@
 output = Autoload.get_by_name ('output', format)
 
 if output is None:
-    error ("unknown output format `%s'" % format)
+    error (_("unknown output format `%s'") % format)
 
 
 
 reffile = outfile + '.ref'
 
 if os.path.exists(outfile):
-    error ("File already exists: `%s'" % outfile)
+    error (_("File already exists: `%s'") % outfile)
 
 if os.path.exists(reffile):
-    error ("The file `%s' to be used for creating the reference list already exists." % reffile)
+    error (_("A file with the same name already exists: `%s'") % reffile)
 
 textfile = args [0]
 bibfile = args [1:]
@@ -137,7 +140,7 @@
     try:
         txt = open (textfile, 'r')
     except IOError, err:
-        error ('%s: %s' % (textfile, err))
+        error ("`%s': %s" % (textfile, str (err).decode (charset)))
     
     citations = []
 
@@ -187,8 +190,7 @@
 order = copy.copy (entries)
 
 
-sys.stderr.write ("pybtext: using style `%s', format `%s'\n" \
-                  % (style, output.name))
+sys.stderr.write ((_("pybtext: using style `%s', format `%s'\n") % (style, output.name)).encode (charset))
 
 formatter = output.data
 
@@ -247,7 +249,7 @@
 try:
     refs = open (reffile, 'w')
 except IOError, err:
-    error ("can't open `%s': %s" % (reffile, err))
+    error (_("can't open `%s': %s") % (reffile, str (err).decode (charset)))
 
 refs.write ("\n\nReferences:\n")
 
@@ -268,12 +270,12 @@
     try:
         txt = open (textfile, 'r')
     except IOError, err:
-        error ('%s: %s' % (textfile, err))
+        error ("`%s': %s" % (textfile, str (err).decode (charset)))
 
     try:
         dest = open (outfile, 'a')
     except IOError, err:
-        error ("can't open `%s': %s" % (outfile, err))
+        error (_("can't open `%s': %s") % (outfile, str (err).decode (charset)))
 
     citations = []
     
@@ -311,19 +313,19 @@
     try:
         copyfile (textfile, outfile)
     except:
-        error ("can't create `%s'" % outfile)
+        error (_("can't create `%s'") % outfile)
 
     try:
         dest = open (outfile, 'a')
     except IOError, err:
-        error ("can't open `%s': %s" % (outfile, err))
+        error (_("can't open `%s': %s") % (outfile, str (err).decode (charset)))
 
 
 # appending the reference list
 try:
     refs = open (reffile, 'r')
 except IOError, err:
-    error ('%s: %s' % (reffile, err))
+    error ("`%s': %s" % (reffile, str (err).decode (charset)))
 
 while 1:
     line = refs.readline ()
@@ -337,6 +339,6 @@
 try:
     os.remove (reffile)
 except:
-    warning ("can't remove `%s'" % reffile)
+    warning (_("can't remove `%s'") % reffile)
 
-print "Done"
+print _("Done").encode (charset)


Index: pybliographer.spec
===================================================================
RCS file: /cvs/extras/rpms/pybliographer/FC-1/pybliographer.spec,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- pybliographer.spec	8 Nov 2004 05:14:14 -0000	1.1
+++ pybliographer.spec	20 Mar 2005 23:33:52 -0000	1.2
@@ -1,19 +1,17 @@
 Summary: A framework for working with bibliographic databases.
 Name: pybliographer
 Version: 1.2.4
-Release: 0.fdr.1.1
+Release: 0.fdr.4.1
 Epoch: 0
 License: GPL
 Group: Applications/Publishing
 Source: http://dl.sf.net/pybliographer/pybliographer-1.2.4.tar.gz
+Patch: pyblio.patch
 Url: http://www.pybliographer.org/
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildArch: noarch
 
-PreReq: scrollkeeper >= 0:0.1.4
 
-BuildRequires: python >= 0:2.2
-BuildRequires: pygtk2 >= 0:2.0.0
 BuildRequires: pygtk2-libglade >= 0:2.0.0
 BuildRequires: gnome-python2 >= 0:2.0.0
 BuildRequires: gnome-python2-gconf >= 0:2.0.0
@@ -23,14 +21,12 @@
 BuildRequires: desktop-file-utils
 BuildRequires: intltool
 
-Requires: python >= 0:2.2
-Requires: pygtk2 >= 0:2.0.0
 Requires: pygtk2-libglade >= 0:2.0.0
 Requires: gnome-python2 >= 0:2.0.0
 Requires: gnome-python2-gconf >= 0:2.0.0
 Requires: python-bibtex >= 0:1.1.93.1
-Requires: recode >= 0:3.6-11
-
+Requires(post): scrollkeeper >= 0:0.1.4
+Requires(postun): scrollkeeper >= 0:0.1.4
 
 %description
 Pybliographer is a tool for managing bibliographic databases. It can be 
@@ -47,10 +43,11 @@
 
 %prep
 %setup -q
+%patch -p1
 
 %build
 %configure
-make
+make %{?_smp_mflags}
 
 %install
 rm -rf $RPM_BUILD_ROOT
@@ -63,6 +60,10 @@
 
 %__rm -rf $RPM_BUILD_ROOT%{_localstatedir}/scrollkeeper
 
+# Compile .pyc and .pyo
+%{__python} -c "import compileall; compileall.compile_dir('$RPM_BUILD_ROOT%{_datadir}/pybliographer', ddir='%{_datadir}/pybliographer', force=1)"
+%{__python} -O -c "import compileall; compileall.compile_dir('$RPM_BUILD_ROOT%{_datadir}/pybliographer', ddir='%{_datadir}/pybliographer', force=1)"
+
 
 %{find_lang} %{name}
 
@@ -78,7 +79,7 @@
 
 %files -f %{name}.lang
 %defattr(-,root,root)
-%doc AUTHORS COPYING* ChangeLog* INSTALL NEWS README TODO
+%doc AUTHORS COPYING* ChangeLog* NEWS README TODO
 %{_bindir}/*
 %{_datadir}/applications/fedora-pybliographic.desktop
 %{_datadir}/gnome/help/pybliographer
@@ -86,20 +87,74 @@
 %{_datadir}/omf/pybliographer
 %{_datadir}/pixmaps/*
 %dir %{_datadir}/pybliographer
-%{_datadir}/pybliographer/Pyblio
+%dir %{_datadir}/pybliographer/Pyblio
+%dir %{_datadir}/pybliographer/Pyblio/ConfDir
+%{_datadir}/pybliographer/Pyblio/ConfDir/*.py
+%{_datadir}/pybliographer/Pyblio/ConfDir/*.pyc
+%ghost %{_datadir}/pybliographer/Pyblio/ConfDir/*.pyo
+%dir %{_datadir}/pybliographer/Pyblio/Format
+%{_datadir}/pybliographer/Pyblio/Format/*.py
+%{_datadir}/pybliographer/Pyblio/Format/*.pyc
+%ghost %{_datadir}/pybliographer/Pyblio/Format/*.pyo
+%dir %{_datadir}/pybliographer/Pyblio/GnomeUI
+%{_datadir}/pybliographer/Pyblio/GnomeUI/*.py
+%{_datadir}/pybliographer/Pyblio/GnomeUI/*.pyc
+%ghost %{_datadir}/pybliographer/Pyblio/GnomeUI/*.pyo
+%dir %{_datadir}/pybliographer/Pyblio/Output
+%{_datadir}/pybliographer/Pyblio/Output/*.py
+%{_datadir}/pybliographer/Pyblio/Output/*.pyc
+%ghost %{_datadir}/pybliographer/Pyblio/Output/*.pyo
+%dir %{_datadir}/pybliographer/Pyblio/Style
+%{_datadir}/pybliographer/Pyblio/Style/*.py
+%{_datadir}/pybliographer/Pyblio/Style/*.pyc
+%ghost %{_datadir}/pybliographer/Pyblio/Style/*.pyo
+%{_datadir}/pybliographer/Pyblio/*.py
+%{_datadir}/pybliographer/Pyblio/*.pyc
+%ghost %{_datadir}/pybliographer/Pyblio/*.pyo
 %{_datadir}/pybliographer/Styles
 %{_datadir}/pybliographer/glade
-%{_datadir}/pybliographer/pybcheck.py
-%{_datadir}/pybliographer/pybcompact.py
-%{_datadir}/pybliographer/pybconvert.py
-%{_datadir}/pybliographer/pybformat.py
-%{_datadir}/pybliographer/pybliographic.py
-%{_datadir}/pybliographer/pybtex.py
-%{_datadir}/pybliographer/pybtext.py
+%attr(644,root,root) %{_datadir}/pybliographer/pybcheck.py
+%attr(644,root,root) %{_datadir}/pybliographer/pybcompact.py
+%attr(644,root,root) %{_datadir}/pybliographer/pybconvert.py
+%attr(644,root,root) %{_datadir}/pybliographer/pybformat.py
+%attr(644,root,root) %{_datadir}/pybliographer/pybliographic.py
+%attr(644,root,root) %{_datadir}/pybliographer/pybtex.py
+%attr(644,root,root) %{_datadir}/pybliographer/pybtext.py
+%ghost %{_datadir}/pybliographer/pybcheck.pyc
+%ghost %{_datadir}/pybliographer/pybcompact.pyc
+%ghost %{_datadir}/pybliographer/pybconvert.pyc
+%ghost %{_datadir}/pybliographer/pybformat.pyc
+%ghost %{_datadir}/pybliographer/pybliographic.pyc
+%ghost %{_datadir}/pybliographer/pybtex.pyc
+%ghost %{_datadir}/pybliographer/pybtext.pyc
+%ghost %{_datadir}/pybliographer/pybcheck.pyo
+%ghost %{_datadir}/pybliographer/pybcompact.pyo
+%ghost %{_datadir}/pybliographer/pybconvert.pyo
+%ghost %{_datadir}/pybliographer/pybformat.pyo
+%ghost %{_datadir}/pybliographer/pybliographic.pyo
+%ghost %{_datadir}/pybliographer/pybtex.pyo
+%ghost %{_datadir}/pybliographer/pybtext.pyo
 %config %{_datadir}/pybliographer/pybrc.py
 %ghost %{_datadir}/pybliographer/pybrc.pyc
+%ghost %{_datadir}/pybliographer/pybrc.pyo
+
 
 %changelog
+* Fri Mar 11 2005 Zoltan Kota <z.kota at gmx.net> - 0:1.2.4-0.fdr.4
+- fixed file ownerships
+
+* Mon Nov 29 2004 Zoltan Kota <z.kota at gmx.net> - 0:1.2.4-0.fdr.3
+- removed redundant dependencies
+- fixed directories in file list
+
+* Fri Nov 26 2004 Zoltan Kota <z.kota at gmx.net> - 0:1.2.4-0.fdr.2
+- added a patch to fix bugs and add some new features
+  (generated from pyblio arch: 
+  patch-139,141-143,150,154,155,161,163,164,167)
+- (re)compile pyc and pyo files. pyo and redundant pyc
+  files are ghosted
+- fix permission of scripts
+
 * Mon Jul 19 2004 Zoltan Kota <z.kota at gmx.net> - 0:1.2.4-0.fdr.1
 - update to 1.2.4
 - using macros for rm and localstatedir




More information about the fedora-extras-commits mailing list