Toshaan Bharvani
1 year ago
commit
298b01f0ec
2 changed files with 216 additions and 0 deletions
@ -0,0 +1,68 @@
@@ -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@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 |
@ -0,0 +1,148 @@
@@ -0,0 +1,148 @@
|
||||
Name: itstool |
||||
Version: 2.0.6 |
||||
Release: 7%{?dist} |
||||
Summary: ITS-based XML translation tool |
||||
|
||||
License: GPLv3+ |
||||
URL: http://itstool.org/ |
||||
Source0: http://files.itstool.org/itstool/%{name}-%{version}.tar.bz2 |
||||
# See: https://github.com/itstool/itstool/issues/25 |
||||
Patch0: https://sources.debian.org/data/main/i/itstool/2.0.5-2/debian/patches/fix_crash_912099.patch#/%{name}-2.0.5-fix-crash-wrong-encoding.patch |
||||
|
||||
BuildArch: noarch |
||||
|
||||
BuildRequires: python3-libxml2 |
||||
BuildRequires: python3-devel |
||||
BuildRequires: make |
||||
Requires: python3-libxml2 |
||||
|
||||
%description |
||||
ITS Tool allows you to translate XML documents with PO files, using rules from |
||||
the W3C Internationalization Tag Set (ITS) to determine what to translate and |
||||
how to separate it into PO file messages. |
||||
|
||||
%prep |
||||
%setup -q |
||||
%patch0 -p 1 -b .encoding |
||||
|
||||
%build |
||||
export PYTHON=%{__python3} |
||||
%configure |
||||
%make_build |
||||
|
||||
%install |
||||
%make_install |
||||
|
||||
%files |
||||
%license COPYING COPYING.GPL3 |
||||
%doc NEWS |
||||
%{_bindir}/itstool |
||||
%{_datadir}/itstool |
||||
%{_mandir}/man1/itstool.1* |
||||
|
||||
%changelog |
||||
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 2.0.6-7 |
||||
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags |
||||
Related: rhbz#1991688 |
||||
|
||||
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 2.0.6-6 |
||||
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 |
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.6-5 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild |
||||
|
||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.6-4 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild |
||||
|
||||
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.6-3 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild |
||||
|
||||
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.6-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild |
||||
|
||||
* Sun Apr 07 2019 Kalev Lember <klember@redhat.com> - 2.0.6-1 |
||||
- Update to 2.0.6 |
||||
|
||||
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.5-3 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild |
||||
|
||||
* Sun Jan 06 2019 Björn Esser <besser82@fedoraproject.org> - 2.0.5-2 |
||||
- Add a patch from Debian to fix wrong encoding of output message |
||||
|
||||
* Tue Dec 04 2018 Kalev Lember <klember@redhat.com> - 2.0.5-1 |
||||
- Update to 2.0.5 |
||||
- Use make_build and make_install macros |
||||
|
||||
* Mon Jul 16 2018 Charalampos Stratakis <cstratak@redhat.com> - 2.0.4-4 |
||||
- Fix libxml2 related segfaults |
||||
|
||||
* Mon Jul 16 2018 Miro Hrončok <mhroncok@redhat.com> - 2.0.4-3 |
||||
- Switch to Python 3 |
||||
|
||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.4-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild |
||||
|
||||
* Tue Jul 10 2018 Kalev Lember <klember@redhat.com> - 2.0.4-1 |
||||
- Update to 2.0.4 |
||||
- Use license macro for COPYING |
||||
|
||||
* Wed Feb 07 2018 Iryna Shcherbina <ishcherb@redhat.com> - 2.0.2-9 |
||||
- Update Python 2 dependency declarations to new packaging standards |
||||
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) |
||||
|
||||
* Mon Feb 05 2018 Petr Viktorin <pviktori@redhat.com> - 2.0.2-8 |
||||
- Be more explicit about Python build dependencies |
||||
(Require python2-devel, tell autotools that PYTHON is python2) |
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.2-7 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild |
||||
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.2-6 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild |
||||
|
||||
* Wed Jan 18 2017 Merlin Mathesius <mmathesi@redhat.com> - 2.0.2-5 |
||||
- Add BuildRequires: python to fix FTBFS (BZ#1414545). |
||||
|
||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.2-4 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild |
||||
|
||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.2-3 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild |
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.2-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild |
||||
|
||||
* Sat May 17 2014 Kalev Lember <kalevlember@gmail.com> - 2.0.2-1 |
||||
- Update to 2.0.2 |
||||
|
||||
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2.0-4 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild |
||||
|
||||
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2.0-3 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild |
||||
|
||||
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2.0-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild |
||||
|
||||
* Mon Jul 02 2012 Kalev Lember <kalevlember@gmail.com> 1.2.0-1 |
||||
- Update to 1.2.0 |
||||
|
||||
* Wed Mar 21 2012 Kalev Lember <kalevlember@gmail.com> 1.1.2-1 |
||||
- Update to itstool 1.1.2 |
||||
|
||||
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.1-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild |
||||
|
||||
* Mon Sep 19 2011 Shaun McCance <shaunm@gnome.org> 1.1.1-1 |
||||
- Update to itstool 1.1.1 |
||||
|
||||
* Sun Aug 07 2011 Rahul Sundaram <sundaram@fedoraproject.org> 1.1.0-2 |
||||
- Add requires on libxml2-python since itstool uses it |
||||
- Drop redundant defattr |
||||
- Add NEWS to doc |
||||
|
||||
* Mon Jun 27 2011 Shaun McCance <shaunm@gnome.org> 1.1.0-1 |
||||
- Update to itstool 1.1.0 |
||||
|
||||
* Sun May 8 2011 Shaun McCance <shaunm@gnome.org> 1.0.1-1 |
||||
- Initial packaging |
Loading…
Reference in new issue