summaryrefslogtreecommitdiff
path: root/app-doc
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-09-23 10:22:15 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-09-23 10:22:15 +0100
commit8b4ace9c50842c5b83401ea7b179dcab940387e1 (patch)
tree230f3135ceaace633cf93e9838b185c4a6664c2e /app-doc
parent9ee6d97c2883d42f204a533a8bc1f4562df778fb (diff)
gentoo resync : 23.09.2020
Diffstat (limited to 'app-doc')
-rw-r--r--app-doc/Manifest.gzbin7504 -> 7497 bytes
-rw-r--r--app-doc/csound-manual/Manifest7
-rw-r--r--app-doc/csound-manual/csound-manual-6.14.ebuild64
-rw-r--r--app-doc/csound-manual/csound-manual-6.15-r1.ebuild2
-rw-r--r--app-doc/gimp-help/Manifest3
-rw-r--r--app-doc/gimp-help/files/gimp-help-2.10.0-python3.patch297
-rw-r--r--app-doc/gimp-help/gimp-help-2.10.0-r1.ebuild (renamed from app-doc/gimp-help/gimp-help-2.10.0.ebuild)8
7 files changed, 307 insertions, 74 deletions
diff --git a/app-doc/Manifest.gz b/app-doc/Manifest.gz
index f6d16b9f3a86..547b4a964c0a 100644
--- a/app-doc/Manifest.gz
+++ b/app-doc/Manifest.gz
Binary files differ
diff --git a/app-doc/csound-manual/Manifest b/app-doc/csound-manual/Manifest
index 23b366f09959..357b573ffde4 100644
--- a/app-doc/csound-manual/Manifest
+++ b/app-doc/csound-manual/Manifest
@@ -1,11 +1,6 @@
-DIST Csound6.14.0_manual-fr_html.zip 17370248 BLAKE2B a937df6ac27ba7c7b65caf826cb27111169b1bb4fb8fdedc1eaa56f08e6751b2e4b47237333e624c3104a3022a300fbd4d25c7ecf77286f43138aec14beeb191 SHA512 a92d74003ebedd8f7b208053d5eeaa2a88e84bdb3d7bd3aeb3ff20bbe31700ad29a89901d574a28284acf4cdba46abe620a65b228e68cf078b96f251bb1ea739
-DIST Csound6.14.0_manual-fr_pdf.zip 9272138 BLAKE2B a553f553ce173e3f3788b57478569bdec9638493e8f9098631c2f9615e71315b6ef4ef72c91d24e2b284666a10b38ba39cf440309c917bd78161b9ec5fa9cb83 SHA512 ebadac56000056d0de0cfbb16eca6a06009800fdcdc5b4e07ebec41561745faa451ddd250610e5253bb5437e1190f184572c1dc9365a096676c6a7f4923cd266
-DIST Csound6.14.0_manual_html.zip 17081006 BLAKE2B 9565c21623a60e06aae82bfbde186e496b5f3ae0eb619289a7db08235c7dcd520bee2283552fdf2ddb4eb85c7b0f184397d2fa0ee14d3bdeff9dccb44a7d7ff1 SHA512 638ecd8bc0b4c981e1f8c5592a123a3b1bb5582ee7017288be224eb670fccda79242ae42b6f6d8e91c2ad2f708af1de3c66283030d4b3373c0ec29ec260f379b
-DIST Csound6.14.0_manual_pdf.zip 8881242 BLAKE2B a91a3689dd3efa5c32c924178b646b73787132a07575f05a65ee1acafc69108ce6c33512e0b703012f75f201a86a0b84e08976f158b01ef5201807d1aaa31c35 SHA512 55769acd58add0ec6df5e188c74e16424deb679aebdbdd50dc5d9006c80a26c31dfe2564e5d71478abcb7a920b40c1f1baa02e4c3fd682a6d3bbc378ddcb8b7d
DIST Csound6.15.0_manual-fr_html.zip 20968371 BLAKE2B aed67cf5dc09032839fd3c56c00ad0f154f543e41335245662f75929c18c095398b6237340751c6f3a2c38d2e14bc6ab916b3d5a9cb59c11b02c53cabb7770ac SHA512 40f21bf0337b1b9cc929804e3a882acf86dad20b4cb2a5753ff7bda10a6ad8ce31b088289f55a3491ca66abbbf2a0b08361457a05fedf636476bbaf97d01a16b
DIST Csound6.15.0_manual-fr_pdf.zip 9761787 BLAKE2B 671d94bebbabbead16ff251c88a99f3cf278cd0b0f746ce8239fbfe481db1a2c3b747c48026b82b8a54b72d5f7ac83b8c095aedc19088c3f070e773c46981bf6 SHA512 3db587fb5f15febbd39c8d090df46b71ed590c8eaaaeda8c53b9218283cc7375673f1711755e47cd80048934252bfe97e92ff699e3bae0e86942ffd99597f8c6
DIST Csound6.15.0_manual_html.zip 20674415 BLAKE2B b15b3381f13c7877130dfec60803ba1cdd12e5d2d92e5ea02c4d0dd5c1c70cc2bbec5f76634b385a0ffd20e7397d6c33bbe374128f01345999f34e2e2a0b7dd1 SHA512 cf7df42f3b6d869a5e9f531c64a50287f9385927b26c48ff3c334b2ed95d17334be85a3ef671008504d1a365b1412e2715dcff61a41e3c83b60621df25d67946
DIST Csound6.15.0_manual_pdf.zip 9360598 BLAKE2B 898da87eb8b10a75f3f6256eeade7aa180ff5e6dd93de8d2bf462d01d1d1cf5f4c5d7c4ed73402aa019674d597ff3fd1b7ac436059d9df39e0d77a15365d529e SHA512 0eca00951708d7064d789bdd0d98534e815ecc275e09b3020cce89d6f6b1009c0347e7d5fd400ed321bd7e05c89d79644f64c18f47b46013bb6b49c88e42fca0
-EBUILD csound-manual-6.14.ebuild 1298 BLAKE2B 5ad1ebab4d37e8581a1569319c3785d858763d4c34a3643cbeeb25911761a65fe844985310c21c80d84d17a72bc27df398cf71d658c78c988fb14bbbc7ed85e1 SHA512 3d22733c172838cea65404d134ae813684400054c2da85ee0376591b81e42f2573387c8b04a8f4e8994b2ed3ed8be8f8d1f54b709c25720611b168b65da9b717
-EBUILD csound-manual-6.15-r1.ebuild 1630 BLAKE2B 1eda7b9d7be73ac58894d48dfd40e5668a4830d9f25b77913c5ef47719cbfbadd0c2bba23d5cd3c851f1198070e644a69d61c72acb8b54d1c6bb7933ed459650 SHA512 5a9fb0d4b3e90f542f231f4290bc4773e45a92d87bf13ad0243e5ab736d6e4e59742786c8518f634b3a99c48d7d129d446d3ca6847e7dc41209cbb999b54f62d
+EBUILD csound-manual-6.15-r1.ebuild 1628 BLAKE2B abca47160974a800e828817a5a2633c179cb9ece054405849f498602b4f54432f1675cf15cdd1f3a81efe6885c1b4979a7b8286cec26d258614e04b2e6bd23d7 SHA512 d75154686ef98be6c52ea10fe1df6ef89ed59de8db52e2055b86e22a98df1b0f23f4830763e95125f48d92b4264900fea4d6082601512ee66efaa9c1a7209037
MISC metadata.xml 457 BLAKE2B 9cd43383f76b6c6343bd35e014b4d47d7ce84993c06423a4ece92c0dadd34c55b2ca8cc1487c6f809eb6294cf2ae45a8b66f4a41cc32f81a3aee24457f2d4ccf SHA512 3c5fae5f35af69eeb1b3da8aa3bc6995dc4af3c582843e9b86691a68e0e084382a64a47651596f8f04714c41f7004ea1c0fef1765d334ae0dbbb1569d74daae4
diff --git a/app-doc/csound-manual/csound-manual-6.14.ebuild b/app-doc/csound-manual/csound-manual-6.14.ebuild
deleted file mode 100644
index 6cb62d5a0f00..000000000000
--- a/app-doc/csound-manual/csound-manual-6.14.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-MY_P=Csound${PV}.0
-
-DESCRIPTION="The Csound reference manual"
-HOMEPAGE="http://csounds.com/"
-SRC_URI="
- https://github.com/csound/csound/releases/download/${PV}.0/${MY_P}_manual_pdf.zip
- l10n_fr? ( https://github.com/csound/csound/releases/download/${PV}.0/${MY_P}_manual-fr_pdf.zip )
-
- html? (
- https://github.com/csound/csound/releases/download/${PV}.0/${MY_P}_manual_html.zip
- l10n_fr? ( https://github.com/csound/csound/releases/download/${PV}.0/${MY_P}_manual-fr_html.zip )
- )"
-
-LICENSE="FDL-1.2+"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="html"
-
-LANGS=" fr"
-IUSE+="${LANGS// / l10n_}"
-
-DEPEND="app-arch/unzip"
-
-S=${WORKDIR}
-
-src_unpack() {
- unpack ${MY_P}_manual_pdf.zip
-
- if use html ; then
- unpack ${MY_P}_manual_html.zip
- mv html html-en
- fi
-
- local lang
- for lang in ${LANGS} ; do
- use l10n_${lang} || continue
- unpack ${MY_P}_manual-${lang}_pdf.zip
- if use html ; then
- unpack ${MY_P}_manual-${lang}_html.zip
- mv html html-${lang}
- fi
- done
-}
-
-src_install() {
- dodoc *.pdf
-
- if use html ; then
- docinto html
- dodoc -r html-en/*
-
- local lang
- for lang in ${LANGS} ; do
- use l10n_${lang} || continue
- docinto html-${lang}
- dodoc -r html-${lang}/*
- done
- fi
-}
diff --git a/app-doc/csound-manual/csound-manual-6.15-r1.ebuild b/app-doc/csound-manual/csound-manual-6.15-r1.ebuild
index 57b53d8d76a5..d4cc8e1b6a5b 100644
--- a/app-doc/csound-manual/csound-manual-6.15-r1.ebuild
+++ b/app-doc/csound-manual/csound-manual-6.15-r1.ebuild
@@ -18,7 +18,7 @@ SRC_URI="
LICENSE="FDL-1.2+"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
IUSE="html"
LANGS=" fr"
diff --git a/app-doc/gimp-help/Manifest b/app-doc/gimp-help/Manifest
index 9212c6883703..da4140d90a7e 100644
--- a/app-doc/gimp-help/Manifest
+++ b/app-doc/gimp-help/Manifest
@@ -1,5 +1,6 @@
+AUX gimp-help-2.10.0-python3.patch 13294 BLAKE2B 86ed2514e95210986e9d108e908abbf89354e3ff2ef314ad4409e42804b59728cac8f4b8eab3d1d431aaf3fc4745774fbf405ebad80c235b69e3583e47132b38 SHA512 b1932670247c793c8bd9c70045fb3f568ff99c964f2bc8ca1e7971f510512b7e476ced5c79b0bbd4e6966c9caf5c75f436926772b36996f5cf3d9e80bcc7ad76
DIST gimp-help-2.10.0.tar.bz2 187092180 BLAKE2B 29a7fbe3fcb6f3210aeda4bc514d7e0eeca05f9fabd3b9022c7ed1e5a9432876cc3bf530632648e2eb50509add4e387106d9705a1c17469e33496daec737d21b SHA512 2f6d5e7cf0c3b4960c92074ef02d51a1d089c148f6453a66e453a3084cdede280f72c6b77d35f66777adbda8aa273ec2a472fb538142e51bb263c3077eec473a
DIST gimp-help-2.8.2.tar.bz2 158504580 BLAKE2B d0023a4290879f97e3365f1208427997d1facc09a7ed4ac0a274615e9eff378c9a4da0d7c5190bc24ad27c2b03d6c513003297d835562b0fa3e02685443d15e9 SHA512 3afdaa8b2f005d939d039d2e22c8306145e7b7acaca5ef89279998e87931e99d1fe607f1337f7796d667d5c6be456ba976b3c8a937c9dd6b1888d7158cfbed67
-EBUILD gimp-help-2.10.0.ebuild 652 BLAKE2B b8ef63632f6f4092693b0f6f815d8cba76a32d767bcc3ecfa6cbf6120a12ef1c264a503324d5d02d824981fa250af14494ec3a864afe6886780c5e9efe6c3a34 SHA512 2a1aed5ec78fc25fd509a384fb40ff1b39cea082a2a04c25902295274f130442deb96c971affa685fcd7266d41c53eeec3e23403482e1e1be3e39febbb1b79ff
+EBUILD gimp-help-2.10.0-r1.ebuild 815 BLAKE2B be668d378c70c7e7886f303489079443d64fc98d0d12741fe587c83408c532a0c916f5fe6e02ab2488074078c9a9f03f3c3e38547187d0e8d391c64caf3ff283 SHA512 2947622745a5d351f5edcf4a790c46433dad8417292555cd7b1fd76c0447bd359faeee13d891e3f2c3cee8115038d6e919aeb8414ce3fbf6c8615848e6d453ca
EBUILD gimp-help-2.8.2.ebuild 705 BLAKE2B 4215bc3e5412c04561fe446f6af0e15f5db175f9344404980df1fc7949a921d479a2821551739d9c6cfaeed7f90eb258e40d0a80c74fc8635a7a79d7a54463b4 SHA512 d401d0ed37534661e4704f17afca367e972118895a5e46d7a020ee8b778648ee6311209dff153143be47afa89d473694a7faf82359cca369aeab980e88126c04
MISC metadata.xml 370 BLAKE2B 18f0dfd3b6fb8f284f888dbcd30d3d4ddce8753e58ef3e92ba0803bd6dadd36962f2f6e57dcd6ccebc547bf43b8972bdaf27e5817c77307172fdb835fe2d9c9e SHA512 9ad9dbdfc25d5a59c0129f1f83615d73bcb9026cc0411a71e9987bca46389fa5f3905a72d22ddac319b1838b770cc5755a2ec312a05db1752e10be5cca08ea38
diff --git a/app-doc/gimp-help/files/gimp-help-2.10.0-python3.patch b/app-doc/gimp-help/files/gimp-help-2.10.0-python3.patch
new file mode 100644
index 000000000000..e42214a0f82b
--- /dev/null
+++ b/app-doc/gimp-help/files/gimp-help-2.10.0-python3.patch
@@ -0,0 +1,297 @@
+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
+@@ -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 <danilo@gnome.org>.
+ # Copyright (c) 2009 Claude Paroz <claude@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])
diff --git a/app-doc/gimp-help/gimp-help-2.10.0.ebuild b/app-doc/gimp-help/gimp-help-2.10.0-r1.ebuild
index 5180a87afe25..76ecfd70d852 100644
--- a/app-doc/gimp-help/gimp-help-2.10.0.ebuild
+++ b/app-doc/gimp-help/gimp-help-2.10.0-r1.ebuild
@@ -3,7 +3,7 @@
EAPI=7
-PYTHON_COMPAT=( python2_7 )
+PYTHON_COMPAT=( python3_{6,7,8,9} )
inherit python-any-r1
DESCRIPTION="GNU Image Manipulation Program help files"
@@ -12,7 +12,7 @@ SRC_URI="mirror://gimp/help/${P}.tar.bz2"
LICENSE="FDL-1.2"
SLOT="2"
-KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 sparc x86"
IUSE=""
BDEPEND="${PYTHON_DEPS}
@@ -23,6 +23,10 @@ DEPEND="$(python_gen_any_dep 'dev-libs/libxml2[python,${PYTHON_USEDEP}]')
dev-libs/libxslt
"
+# Adds python3 build support, bug 725940
+# patch is from https://gitlab.gnome.org/GNOME/gimp-help/-/issues/201
+PATCHES=( "${FILESDIR}/${P}-python3.patch" )
+
python_check_deps() {
has_version "dev-libs/libxml2[${PYTHON_USEDEP}]"
}