[arch-commits] Commit in itstool/repos (3 files)

Felix Yan felixonmars at archlinux.org
Tue May 19 08:17:35 UTC 2020


    Date: Tuesday, May 19, 2020 @ 08:17:34
  Author: felixonmars
Revision: 386236

archrelease: copy trunk to staging-any

Added:
  itstool/repos/staging-any/
  itstool/repos/staging-any/PKGBUILD
    (from rev 386235, itstool/trunk/PKGBUILD)
  itstool/repos/staging-any/itstool-2.0.5-fix-crash-wrong-encoding.patch
    (from rev 386235, itstool/trunk/itstool-2.0.5-fix-crash-wrong-encoding.patch)

----------------------------------------------+
 PKGBUILD                                     |   48 +++++++++++++++++
 itstool-2.0.5-fix-crash-wrong-encoding.patch |   68 +++++++++++++++++++++++++
 2 files changed, 116 insertions(+)

Copied: itstool/repos/staging-any/PKGBUILD (from rev 386235, itstool/trunk/PKGBUILD)
===================================================================
--- staging-any/PKGBUILD	                        (rev 0)
+++ staging-any/PKGBUILD	2020-05-19 08:17:34 UTC (rev 386236)
@@ -0,0 +1,48 @@
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens at gmail.com>
+# Contributor: Michael Pusterhofer <pusterhofer(at)student(dot)tugraz(dot)at>
+
+pkgname=itstool
+pkgver=2.0.6
+pkgrel=2
+epoch=1
+pkgdesc="XML to PO and back again"
+arch=(any)
+url="http://itstool.org/"
+license=(GPL3)
+depends=(python libxml2 docbook-xml)
+makedepends=(git)
+_commit=60f3a955ca047b1d62a1d952beec74afaff7cbbf  # tags/2.0.6^0
+source=("git+https://github.com/itstool/itstool#commit=$_commit"
+        itstool-2.0.5-fix-crash-wrong-encoding.patch)
+sha256sums=('SKIP'
+            'cb57e3694ab3d7c62b063629b2e9edc6327260c0797d0f33c8dc97fe37c40ebb')
+
+pkgver() {
+  cd $pkgname
+  git describe --tags | sed 's/-/+/g'
+}
+
+prepare() {
+  cd $pkgname
+
+  # From https://src.fedoraproject.org/rpms/libxml2/tree/master
+  patch -Np1 -i ../itstool-2.0.5-fix-crash-wrong-encoding.patch
+
+  autoreconf -fvi
+}
+
+build() {
+  cd $pkgname
+  ./configure --prefix=/usr
+  make
+}
+
+check() {
+  cd $pkgname
+  make check
+}
+
+package() {
+  cd $pkgname
+  make DESTDIR="$pkgdir" install
+}

Copied: itstool/repos/staging-any/itstool-2.0.5-fix-crash-wrong-encoding.patch (from rev 386235, itstool/trunk/itstool-2.0.5-fix-crash-wrong-encoding.patch)
===================================================================
--- staging-any/itstool-2.0.5-fix-crash-wrong-encoding.patch	                        (rev 0)
+++ staging-any/itstool-2.0.5-fix-crash-wrong-encoding.patch	2020-05-19 08:17:34 UTC (rev 386236)
@@ -0,0 +1,68 @@
+Description: Fix the crash from #912099
+ ITS Tool 2.0.4 crashes when building some documentation, as reported in
+ #912099. This comes from translations with invalid XML markup, which ITS Tool
+ fails to merge (which is not abnormal), and to report these issues, needlessly
+ encodes the original msgstr from unicode to bytes, causing it to be recoded
+ using the default ascii codec, which fails when the msgstr contains anything
+ out of ascii.
+ .
+ This patch removes the useless decoding, avoiding the failing subsequent
+ recoding. It also explicitly encodes the output strings to be able to print
+ them in all cases, even when the output encoding cannot be detected.
+Bug: https://github.com/itstool/itstool/issues/25
+Bug-Debian: https://bugs.debian.org/912099
+Forwarded: https://github.com/itstool/itstool/issues/25
+Author: Tanguy Ortolo <tanguy+debian at ortolo.eu>
+Last-Update: 2018-12-071
+
+Index: itstool/itstool.in
+===================================================================
+--- itstool.orig/itstool.in	2018-12-10 18:31:23.762143539 +0100
++++ itstool/itstool.in	2018-12-10 18:38:03.496777117 +0100
+@@ -44,9 +44,22 @@
+         else:
+             return str(s)
+     ustr_type = str
++    def pr_str(s):
++        """Return a string that can be safely print()ed"""
++        # Since print works on both bytes and unicode, just return the argument
++        return s
+ else:
+     string_types = basestring,
+     ustr = ustr_type = unicode
++    def pr_str(s):
++        """Return a string that can be safely print()ed"""
++        if isinstance(s, str):
++            # Since print works on str, just return the argument
++            return s
++        else:
++            # print may not work on unicode if the output encoding cannot be
++            # detected, so just encode with UTF-8
++            return unicode.encode(s, 'utf-8')
+ 
+ NS_ITS = 'http://www.w3.org/2005/11/its'
+ NS_ITST = 'http://itstool.org/extensions/'
+@@ -1060,9 +1073,9 @@
+             if strict:
+                 raise
+             else:
+-                sys.stderr.write('Warning: Could not merge %stranslation for msgid:\n%s\n' % (
++                sys.stderr.write(pr_str('Warning: Could not merge %stranslation for msgid:\n%s\n' % (
+                         (lang + ' ') if lang is not None else '',
+-                        msgstr.encode('utf-8')))
++                        msgstr)))
+                 self._xml_err = ''
+                 return node
+         def scan_node(node):
+@@ -1087,9 +1100,9 @@
+             if strict:
+                 raise
+             else:
+-                sys.stderr.write('Warning: Could not merge %stranslation for msgid:\n%s\n' % (
++                sys.stderr.write(pr_str('Warning: Could not merge %stranslation for msgid:\n%s\n' % (
+                     (lang + ' ') if lang is not None else '',
+-                    msgstr.encode('utf-8')))
++                    msgstr)))
+                 self._xml_err = ''
+                 ctxt.doc().freeDoc()
+                 return node


More information about the arch-commits mailing list