Hello community, here is the log from the commit of package gimp-help for openSUSE:Factory checked in at 2020-07-17 20:51:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gimp-help (Old) and /work/SRC/openSUSE:Factory/.gimp-help.new.3592 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gimp-help" Fri Jul 17 20:51:36 2020 rev:32 rq:821428 version:2.10.0 Changes: -------- --- /work/SRC/openSUSE:Factory/gimp-help/gimp-help.changes 2020-01-09 22:51:17.278730098 +0100 +++ /work/SRC/openSUSE:Factory/.gimp-help.new.3592/gimp-help.changes 2020-07-17 20:52:25.569018929 +0200 @@ -1,0 +2,9 @@ +Tue Jul 14 21:12:13 UTC 2020 - Stefan Brüns <stefan.bru...@rwth-aachen.de> + +- Update to version 2.10.0, no changes overview provided. +- Build with Python 3, add gimp-help-2.10.0-python3.patch. +- Clean up spec file, drop unused dependencies. +- Drop huge ChangeLog (verbatim git log), README and TERMINOLOGY + files, not useful for end users. + +------------------------------------------------------------------- Old: ---- gimp-help-2.8.2.tar.bz2 New: ---- gimp-help-2.10.0-python3.patch gimp-help-2.10.0.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gimp-help.spec ++++++ --- /var/tmp/diff_new_pack.WUQL5a/_old 2020-07-17 20:52:28.765022263 +0200 +++ /var/tmp/diff_new_pack.WUQL5a/_new 2020-07-17 20:52:28.769022268 +0200 @@ -1,7 +1,7 @@ # # spec file for package gimp-help # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,32 +12,29 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: gimp-help -Version: 2.8.2 +Version: 2.10.0 Release: 0 -# FIXME: Check if parallel build reliably works again (last check: 2.6.1) Summary: Help System Data for GIMP License: GFDL-1.2 Group: Productivity/Graphics/Bitmap Editors -Url: http://www.gimp.org/ -Source0: http://download.gimp.org/pub/gimp/help/gimp-help-2.8.2.tar.bz2 +Url: https://docs.gimp.org/ +Source0: https://download.gimp.org/pub/gimp/help/gimp-help-%{version}.tar.bz2 +# PATCH-FIX-UPSTREAM -- https://gitlab.gnome.org/GNOME/gimp-help/-/issues/201 +Patch0: gimp-help-2.10.0-python3.patch BuildRequires: docbook-xsl-stylesheets BuildRequires: fdupes -BuildRequires: gimp-devel BuildRequires: libxslt -BuildRequires: xhtml-dtd -BuildRequires: xmlcharent BuildRequires: pngcrush -BuildRequires: python2-libxml2 +BuildRequires: python3-libxml2-python Requires: gimp Enhances: gimp -Provides: gimp-help-2 -Obsoletes: gimp-help-2 -BuildRoot: %{_tmppath}/%{name}-%{version}-build +Provides: gimp-help-2 = %{version} +Obsoletes: gimp-help-2 < %{version} BuildArch: noarch %description @@ -248,6 +245,18 @@ This package provides Brazilian Portuguese data for gimp-help. +%package ro +Summary: Romanian Help System Data for GIMP +Group: System/Localization +Requires: %{name} = %{version} +Provides: locale(%{name}:ro) + +%description ro +GIMP-Help is a help system designed for use with the internal GIMP help +browser, external Web browser and HTML renderers, and human eyeballs. + +This package provides Romanian data for gimp-help. + %package ru Summary: Russian Help System Data for GIMP Group: System/Localization @@ -298,12 +307,21 @@ %prep %setup -q +%patch0 -p1 +find . -iname \*.py -exec sed -i -e '1 s@env python.\?@python3@' '{}' \; %build -%configure +# We install the help to the same prefix as gimp itself, so no +# need to query gimp for the prefix at build time +%configure \ + --without-gimp unset MALLOC_CHECK_ unset MALLOC_PERTURB_ -make + +%if 0%{?sle_version} <= 150100 +export LANG=en_US.utf-8 +%endif +%make_build # unify the permissions of images, to make fdupes working again (bnc#784670) find images/ -type f -exec chmod 0644 {} + @@ -318,93 +336,77 @@ rm -rf %{buildroot} %files -%defattr(-,root,root) -%doc AUTHORS COPYING ChangeLog NEWS README TERMINOLOGY +%doc AUTHORS NEWS +%license COPYING +%dir %{_datadir}/gimp +%dir %{_datadir}/gimp/2.0 %dir %{_datadir}/gimp/2.0/help %{_datadir}/gimp/2.0/help/en/ %files ca -%defattr (-,root,root) %lang(ca) %{_datadir}/gimp/2.0/help/ca/ %files da -%defattr (-,root,root) %lang(da) %{_datadir}/gimp/2.0/help/da/ %files de -%defattr (-,root,root) %lang(de) %{_datadir}/gimp/2.0/help/de/ %files el -%defattr (-,root,root) %lang(el) %{_datadir}/gimp/2.0/help/el/ %files en_GB -%defattr (-,root,root) %lang(en_GB) %{_datadir}/gimp/2.0/help/en_GB/ %files es -%defattr (-,root,root) %lang(es) %{_datadir}/gimp/2.0/help/es/ %files fi -%defattr (-,root,root) -#lang(fi) %{_datadir}/gimp/2.0/help/fi/ +%lang(fi) %{_datadir}/gimp/2.0/help/fi/ %files fr -%defattr (-,root,root) %lang(fr) %{_datadir}/gimp/2.0/help/fr/ %files hr -%defattr (-,root,root) -#lang(hr) %{_datadir}/gimp/2.0/help/hr/ +#lang(hr) %%{_datadir}/gimp/2.0/help/hr/ %files it -%defattr (-,root,root) %lang(it) %{_datadir}/gimp/2.0/help/it/ %files ja -%defattr (-,root,root) %lang(ja) %{_datadir}/gimp/2.0/help/ja/ %files ko -%defattr (-,root,root) %lang(ko) %{_datadir}/gimp/2.0/help/ko/ %files lt -%defattr (-,root,root) -#lang(lt) %{_datadir}/gimp/2.0/help/lt/ +#lang(lt) %%{_datadir}/gimp/2.0/help/lt/ %files nl -%defattr (-,root,root) %lang(nl) %{_datadir}/gimp/2.0/help/nl/ %files nn -%defattr (-,root,root) %lang(nn) %{_datadir}/gimp/2.0/help/nn/ %files pl -%defattr (-,root,root) -#lang(pl) %{_datadir}/gimp/2.0/help/pl/ +#lang(pl) %%{_datadir}/gimp/2.0/help/pl/ %files pt_BR -%defattr (-,root,root) %lang(pt_BR) %{_datadir}/gimp/2.0/help/pt_BR/ +%files ro +%lang(ro) %{_datadir}/gimp/2.0/help/ro/ + %files ru -%defattr (-,root,root) %lang(ru) %{_datadir}/gimp/2.0/help/ru/ %files sl -%defattr (-,root,root) -%lang(sl) %{_datadir}/gimp/2.0/help/sl/ +#%lang(sl) %%{_datadir}/gimp/2.0/help/sl/ %files sv -%defattr (-,root,root) -%lang(sv) %{_datadir}/gimp/2.0/help/sv/ +#%lang(sv) %%{_datadir}/gimp/2.0/help/sv/ %files zh -%defattr (-,root,root) %lang(zh) %{_datadir}/gimp/2.0/help/zh_CN/ %changelog ++++++ gimp-help-2.10.0-python3.patch ++++++ diff -urNp a/tools/xml2po/__init__.py b/tools/xml2po/__init__.py --- a/tools/xml2po/__init__.py 2019-11-28 11:45:00.889048989 +0100 +++ b/tools/xml2po/__init__.py 2020-01-06 13:24:24.715787902 +0100 @@ -86,14 +86,14 @@ class MessageOutput: self.messages.append(t) if spacepreserve: self.nowrap[t] = True - if t in self.linenos.keys(): + if t in list(self.linenos.keys()): self.linenos[t].append((self.filename, tag, lineno)) else: self.linenos[t] = [ (self.filename, tag, lineno) ] if (not self.do_translations) and comment and not t in self.comments: self.comments[t] = comment else: - if t in self.linenos.keys(): + if t in list(self.linenos.keys()): self.linenos[t].append((self.filename, tag, lineno)) else: self.linenos[t] = [ (self.filename, tag, lineno) ] @@ -166,7 +166,7 @@ class XMLDocument(object): elif node.isText(): if node.isBlankNode(): if self.app.options.get('expand_entities') or \ - (not (node.prev and not node.prev.isBlankNode() and node.next and not node.next.isBlankNode()) ): + (not (node.prev and not node.prev.isBlankNode() and node.nextElementSibling() and not node.next.isBlankNode()) ): #print >>sys.stderr, "BLANK" node.setContent('') else: @@ -200,7 +200,7 @@ class XMLDocument(object): tree = ctxt.doc() newnode = tree.getRootElement() except: - print >> sys.stderr, """Error while normalizing string as XML:\n"%s"\n""" % (text) + print("""Error while normalizing string as XML:\n"%s"\n""" % (text), file=sys.stderr) return text self.normalizeNode(newnode) @@ -259,7 +259,7 @@ class XMLDocument(object): if not self.expand_entities: result += '&' + child.name + ';' else: - result += child.content.decode('utf-8') + result += child.content else: result += self.myAttributeSerialize(child) child = child.next @@ -326,7 +326,7 @@ class XMLDocument(object): pass content = '<%s>%s</%s>' % (starttag, text, endtag) - tmp = tmp + content.encode('utf-8') + tmp = tmp + content newnode = None try: @@ -338,7 +338,7 @@ class XMLDocument(object): pass if not newnode: - print >> sys.stderr, """Error while parsing translation as XML:\n"%s"\n""" % (text.encode('utf-8')) + print("""Error while parsing translation as XML:\n"%s"\n""" % (text), file=sys.stderr) return newelem = newnode.getRootElement() @@ -354,7 +354,7 @@ class XMLDocument(object): copy = newelem.copyNodeList() next = node.next node.replaceNode(newelem.copyNodeList()) - node.next = next + node.__next__ = next else: # In practice, this happens with tags such as "<para> </para>" (only whitespace in between) @@ -406,7 +406,7 @@ class XMLDocument(object): translation = self.app.getTranslation(outtxt) # unicode or None if translation is not None: self.replaceAttributeContentsWithText(attr, - translation.encode('utf-8')) + translation) else: self.app.msg.outputMessage(outtxt, node.lineNo(), "", spacepreserve=False, tag = node.name + ":" + attr.name) @@ -447,14 +447,14 @@ class XMLDocument(object): norm_outtxt = self.normalizeString(outtxt, self.app.isSpacePreserveNode(node)) translation = self.app.getTranslation(norm_outtxt) else: - translation = outtxt.decode('utf-8') + translation = outtxt starttag = self.startTagForNode(node) endtag = self.endTagForNode(node) worth = self.worthOutputting(node) if not translation: - translation = outtxt.decode('utf-8') + translation = outtxt if worth and self.app.options.get('mark_untranslated'): node.setLang('C') @@ -463,7 +463,7 @@ class XMLDocument(object): # repl[0] may contain translated attributes with # non-ASCII chars, so implicit conversion to <str> may fail replacement = '<%s>%s</%s>' % \ - (repl[0].decode('utf-8'), repl[3], repl[2]) + (repl[0], repl[3], repl[2]) translation = translation.replace('<placeholder-%d/>' % (i+1), replacement) if worth: @@ -542,7 +542,7 @@ class Main(object): elif output == '-': self.out = sys.stdout else: - self.out = file(output, 'w') + self.out = open(output, 'w') def load_mode(self, modename): try: @@ -565,7 +565,7 @@ class Main(object): try: doc = XMLDocument(xmlfile, self) except Exception as e: - print >> sys.stderr, "Unable to parse XML file '%s': %s" % (xmlfile, str(e)) + print("Unable to parse XML file '%s': %s" % (xmlfile, str(e)), file=sys.stderr) sys.exit(1) self.current_mode.preProcessXml(doc.doc, self.msg) doc.generate_messages() @@ -578,13 +578,13 @@ class Main(object): try: doc = XMLDocument(xmlfile, self) except Exception as e: - print >> sys.stderr, str(e) + print(str(e), file=sys.stderr) sys.exit(1) try: mfile = open(mofile, "rb") except: - print >> sys.stderr, "Can't open MO file '%s'." % (mofile) + print("Can't open MO file '%s'." % (mofile), file=sys.stderr) self.gt = gettext.GNUTranslations(mfile) self.gt.add_fallback(NoneTranslations()) # Has preProcessXml use cases for merge? @@ -607,7 +607,7 @@ class Main(object): try: doc = XMLDocument(xmlfile, self) except Exception as e: - print >> sys.stderr, str(e) + print(str(e), file=sys.stderr) sys.exit(1) doc.generate_messages() @@ -615,7 +615,7 @@ class Main(object): try: doc = XMLDocument(origxml, self) except Exception as e: - print >> sys.stderr, str(e) + print(str(e), file=sys.stderr) sys.exit(1) doc.generate_messages() self.output_po() @@ -646,11 +646,11 @@ class Main(object): text should be a string to look for. """ - #print >>sys.stderr,"getTranslation('%s')" % (text.encode('utf-8')) + #print >>sys.stderr,"getTranslation('%s')" % (text) if not text or text.strip() == '': return text if self.gt: - res = self.gt.ugettext(text.decode('utf-8')) + res = self.gt.gettext(text) return res return text diff -urNp a/tools/xml2po/modes/docbook.py b/tools/xml2po/modes/docbook.py --- a/tools/xml2po/modes/docbook.py 2019-11-28 11:45:00.889048989 +0100 +++ b/tools/xml2po/modes/docbook.py 2020-01-06 13:10:18.324679751 +0100 @@ -43,7 +43,7 @@ try: except ImportError: from md5 import new as md5_new -from basic import basicXmlMode +from .basic import basicXmlMode class docbookXmlMode(basicXmlMode): """Class for special handling of DocBook document types. @@ -131,7 +131,7 @@ class docbookXmlMode(basicXmlMode): hash = self._md5_for_file(fullpath) else: hash = "THIS FILE DOESN'T EXIST" - print >>sys.stderr, "Warning: image file '%s' not found." % fullpath + print("Warning: image file '%s' not found." % fullpath, file=sys.stderr) msg.outputMessage("@@image: '%s'; md5=%s" % (attr, hash), node.lineNo(), "When image changes, this message will be marked fuzzy or untranslated for you.\n"+ @@ -184,7 +184,7 @@ class docbookXmlMode(basicXmlMode): else: ai.addChild(copy) if match.group(3): - copy.newChild(None, "year", match.group(3).encode('utf-8')) + copy.newChild(None, "year", match.group(3)) if match.group(1) and match.group(2): holder = match.group(1)+"(%s)" % match.group(2) elif match.group(1): @@ -193,15 +193,15 @@ class docbookXmlMode(basicXmlMode): holder = match.group(2) else: holder = "???" - copy.newChild(None, "holder", holder.encode('utf-8')) + copy.newChild(None, "holder", holder) # Perform some tests when ran standalone if __name__ == '__main__': test = docbookXmlMode() - print "Ignored tags : " + repr(test.getIgnoredTags()) - print "Final tags : " + repr(test.getFinalTags()) - print "Space-preserve tags: " + repr(test.getSpacePreserveTags()) + print("Ignored tags : " + repr(test.getIgnoredTags())) + print("Final tags : " + repr(test.getFinalTags())) + print("Space-preserve tags: " + repr(test.getSpacePreserveTags())) - print "Credits from string: '%s'" % test.getStringForTranslators() - print "Explanation for credits:\n\t'%s'" % test.getCommentForTranslators() + print("Credits from string: '%s'" % test.getStringForTranslators()) + print("Explanation for credits:\n\t'%s'" % test.getCommentForTranslators()) diff -urNp a/tools/xml2po/modes/gimphelp.py b/tools/xml2po/modes/gimphelp.py --- a/tools/xml2po/modes/gimphelp.py 2019-11-28 11:45:00.889048989 +0100 +++ b/tools/xml2po/modes/gimphelp.py 2020-01-06 11:59:17.387855373 +0100 @@ -31,7 +31,7 @@ try: except ImportError: from md5 import new as md5_new -from docbook import docbookXmlMode +from .docbook import docbookXmlMode class gimphelpXmlMode(docbookXmlMode): """Class for special handling of gimp-help DocBook document types. @@ -91,10 +91,10 @@ class gimphelpXmlMode(docbookXmlMode): # Perform some tests when ran standalone if __name__ == '__main__': test = gimphelpXmlMode() - print "Ignored tags : " + repr(test.getIgnoredTags()) - print "Final tags : " + repr(test.getFinalTags()) - print "Space-preserve tags: " + repr(test.getSpacePreserveTags()) + print("Ignored tags : " + repr(test.getIgnoredTags())) + print("Final tags : " + repr(test.getFinalTags())) + print("Space-preserve tags: " + repr(test.getSpacePreserveTags())) - print "Credits from string: '%s'" % test.getStringForTranslators() - print "Explanation for credits:\n\t'%s'" % test.getCommentForTranslators() + print("Credits from string: '%s'" % test.getStringForTranslators()) + print("Explanation for credits:\n\t'%s'" % test.getCommentForTranslators()) diff -urNp a/tools/xml2po.py b/tools/xml2po.py --- a/tools/xml2po.py 2019-11-28 11:45:00.889048989 +0100 +++ b/tools/xml2po.py 2020-01-06 11:59:17.387855373 +0100 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 # -*- encoding: utf-8 -*- # Copyright (c) 2004, 2005, 2006 Danilo Šegan <dan...@gnome.org>. # Copyright (c) 2009 Claude Paroz <cla...@2xlibre.net>. @@ -41,9 +41,9 @@ NULL_STRING = '/dev/null' if not os.path.exists('/dev/null'): NULL_STRING = 'NUL' def usage (with_help = False): - print >> sys.stderr, "Usage: %s [OPTIONS] [XMLFILE]..." % (sys.argv[0]) + print("Usage: %s [OPTIONS] [XMLFILE]..." % (sys.argv[0]), file=sys.stderr) if with_help: - print >> sys.stderr, """ + print(""" OPTIONS may be some of: -a --automatic-tags Automatically decides if tags are to be considered "final" or not @@ -72,7 +72,7 @@ EXAMPLES: using -p option for each XML file: %(command)s -p de.po chapter1.xml > chapter1.de.xml %(command)s -p de.po chapter2.xml > chapter2.de.xml -""" % {'command': sys.argv[0]} +""" % {'command': sys.argv[0]}, file=sys.stderr) def main(argv): @@ -148,7 +148,7 @@ def main(argv): sys.exit(0) if operation == 'update' and output != "-": - print >> sys.stderr, "Option '-o' is not yet supported when updating translations directly. Ignoring this option." + print("Option '-o' is not yet supported when updating translations directly. Ignoring this option.", file=sys.stderr) # Treat remaining arguments as XML files filenames = [] @@ -158,16 +158,16 @@ def main(argv): try: xml2po_main = Main(default_mode, operation, output, options) except IOError: - print >> sys.stderr, "Error: cannot open file %s for writing." % (output) + print("Error: cannot open file %s for writing." % (output), file=sys.stderr) sys.exit(5) if operation == 'merge': if len(filenames) > 1: - print >> sys.stderr, "Error: You can merge translations with only one XML file at a time." + print("Error: You can merge translations with only one XML file at a time.", file=sys.stderr) sys.exit(2) if not mofile: - print >> sys.stderr, "Error: You must specify MO file when merging translations." + print("Error: You must specify MO file when merging translations.", file=sys.stderr) sys.exit(3) xml2po_main.merge(mofile, filenames[0]) ++++++ gimp-help-2.8.2.tar.bz2 -> gimp-help-2.10.0.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/gimp-help/gimp-help-2.8.2.tar.bz2 /work/SRC/openSUSE:Factory/.gimp-help.new.3592/gimp-help-2.10.0.tar.bz2 differ: char 11, line 1