Dominique Leuenberger 2019-08-15 13:43:18 +00:00 committed by Git OBS Bridge
commit a50a61b256
6 changed files with 5191 additions and 19 deletions

View File

@ -0,0 +1,79 @@
From 5d0de061d393cc0aa134708a7482e9913a0d0736 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
Date: Tue, 30 Jul 2019 16:02:49 +0200
Subject: [PATCH] Run python script for translations with Python 3
---
share/filters/CMakeLists.txt | 2 +-
share/palettes/CMakeLists.txt | 2 +-
share/patterns/CMakeLists.txt | 2 +-
share/symbols/CMakeLists.txt | 2 +-
share/templates/CMakeLists.txt | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/share/filters/CMakeLists.txt b/share/filters/CMakeLists.txt
index bfcdd78..17cb98f 100644
--- a/share/filters/CMakeLists.txt
+++ b/share/filters/CMakeLists.txt
@@ -1,6 +1,6 @@
add_custom_command(
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/filters.svg.h
- COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${CMAKE_CURRENT_SOURCE_DIR}/filters.svg > ${CMAKE_CURRENT_SOURCE_DIR}/filters.svg.h
+ COMMAND python3 ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${CMAKE_CURRENT_SOURCE_DIR}/filters.svg > ${CMAKE_CURRENT_SOURCE_DIR}/filters.svg.h
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/filters.svg
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py
)
diff --git a/share/palettes/CMakeLists.txt b/share/palettes/CMakeLists.txt
index 49b1b5e..ef6f501 100644
--- a/share/palettes/CMakeLists.txt
+++ b/share/palettes/CMakeLists.txt
@@ -2,7 +2,7 @@ set(I18N_FILES "inkscape.gpl" "svg.gpl" "Tango-Palette.gpl")
add_custom_command(
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/palettes.h
- COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${I18N_FILES} > ${CMAKE_CURRENT_SOURCE_DIR}/palettes.h
+ COMMAND python3 ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${I18N_FILES} > ${CMAKE_CURRENT_SOURCE_DIR}/palettes.h
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${I18N_FILES}
)
diff --git a/share/patterns/CMakeLists.txt b/share/patterns/CMakeLists.txt
index 4dd4153..4d63fc0 100644
--- a/share/patterns/CMakeLists.txt
+++ b/share/patterns/CMakeLists.txt
@@ -1,6 +1,6 @@
add_custom_command(
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/patterns.svg.h
- COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${CMAKE_CURRENT_SOURCE_DIR}/patterns.svg > ${CMAKE_CURRENT_SOURCE_DIR}/patterns.svg.h
+ COMMAND python3 ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${CMAKE_CURRENT_SOURCE_DIR}/patterns.svg > ${CMAKE_CURRENT_SOURCE_DIR}/patterns.svg.h
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/patterns.svg
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py
)
diff --git a/share/symbols/CMakeLists.txt b/share/symbols/CMakeLists.txt
index 36f7564..ed0bc43 100644
--- a/share/symbols/CMakeLists.txt
+++ b/share/symbols/CMakeLists.txt
@@ -2,7 +2,7 @@ file(GLOB _FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.svg")
add_custom_command(
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/symbols.h
- COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${_FILES} > ${CMAKE_CURRENT_SOURCE_DIR}/symbols.h
+ COMMAND python3 ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${_FILES} > ${CMAKE_CURRENT_SOURCE_DIR}/symbols.h
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${_FILES}
)
diff --git a/share/templates/CMakeLists.txt b/share/templates/CMakeLists.txt
index a267e43..8a95704 100644
--- a/share/templates/CMakeLists.txt
+++ b/share/templates/CMakeLists.txt
@@ -2,7 +2,7 @@ file(GLOB _FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.svg")
add_custom_command(
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/templates.h
- COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${_FILES} > ${CMAKE_CURRENT_SOURCE_DIR}/templates.h
+ COMMAND python3 ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${_FILES} > ${CMAKE_CURRENT_SOURCE_DIR}/templates.h
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${_FILES}
)
--
2.22.0

View File

@ -0,0 +1,34 @@
From f5e0ea893f34c91f25d4781b37ee6eff15a7e213 Mon Sep 17 00:00:00 2001
From: Thomas Holder <thomas@thomas-holder.de>
Date: Thu, 7 Mar 2019 21:48:37 +0100
Subject: [PATCH] extensions 2to3: fix dxf_outlines
---
share/extensions/dxf_outlines.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/share/extensions/dxf_outlines.py b/share/extensions/dxf_outlines.py
index 63d813f94c..e07681bbba 100755
--- a/share/extensions/dxf_outlines.py
+++ b/share/extensions/dxf_outlines.py
@@ -31,6 +31,7 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
'''
# standard library
+import sys
import math
# local library
import inkex
@@ -101,7 +102,8 @@ class MyEffect(inkex.Effect):
self.d = array([0], float) # knot vector
self.poly = [[0.0,0.0]] # LWPOLYLINE data
def output(self):
- print(b''.join(self.dxf))
+ stdout = sys.stdout if sys.version_info[0] < 3 else sys.stdout.buffer
+ stdout.write(b''.join(self.dxf))
def dxf_add(self, str):
self.dxf.append(str.encode(self.options.char_encode))
def dxf_line(self,csp):
--
2.21.0

View File

@ -1,3 +1,17 @@
-------------------------------------------------------------------
Tue Jul 30 16:18:54 UTC 2019 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Change Python dependencies to Python 3 as Python 2 will be EOL in 2020.
- Use Python 3 to extract translations, add
0001-Run-python-script-for-translations-with-Python-3.patch
- Make extensions compatible with Python 3
(https://bugs.launchpad.net/inkscape/+bug/1735363)
* Add mr_568_extensions_python3_compatibility.patch
* Add f5e0ea893f34_extensions_python3_compatibility.patch
* Add mr_582_extensions_python3_compatibility.patch
- Some spec cleanups (buildroot, defattr)
- Require extensions-extra for gimp extension
-------------------------------------------------------------------
Fri May 31 08:43:53 UTC 2019 - Bjørn Lie <bjorn.lie@gmail.com>

View File

@ -37,6 +37,14 @@ Patch1: build_internal_libraries_as_static.patch
Patch2: fix_install_targets.patch
# PATCH-FIX-UPSTREAM inkscape-fix-for-poppler-0.76.patch -- Fix build with poppler 0.76
Patch3: inkscape-fix-for-poppler-0.76.patch
# PATCH-FIX-OPENSUSE -- run i18n string extraction with python3
Patch4: 0001-Run-python-script-for-translations-with-Python-3.patch
# PATCH-FIX-UPSTREAM https://gitlab.com/inkscape/inkscape/merge_requests/568.patch -- fixed in 0.92.5
Patch5: mr_568_extensions_python3_compatibility.patch
# PATCH-FIX-UPSTREAM https://gitlab.com/inkscape/inkscape/commit/f5e0ea893f34c91f25d4781b37ee6eff15a7e213
Patch6: f5e0ea893f34_extensions_python3_compatibility.patch
# PATCH-FIX-UPSTREAM https://gitlab.com/inkscape/inkscape/merge_requests/582.patch -- fixed in 0.92.5
Patch7: mr_582_extensions_python3_compatibility.patch
BuildRequires: gtkspell-devel
%if 0%{?suse_version} > 1325
@ -60,9 +68,9 @@ BuildRequires: libxslt-devel
BuildRequires: perl
BuildRequires: popt-devel
BuildRequires: potrace-devel
BuildRequires: python-devel
BuildRequires: python-gtk-devel
BuildRequires: python2-xml
BuildRequires: python3-devel
BuildRequires: python3-gobject-devel
BuildRequires: python3-xml
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(dbus-glib-1)
BuildRequires: pkgconfig(libcdr-0.1)
@ -72,11 +80,10 @@ BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(librevenge-0.0)
BuildRequires: pkgconfig(libvisio-0.1)
BuildRequires: pkgconfig(libwpg-0.3)
Requires: python-gtk
Requires: python3-gobject
Recommends: %{name}-lang
Recommends: python-lxml
Recommends: python-scour
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Recommends: python3-lxml
Recommends: python3-scour
%description
Inkscape is a vector graphics editor.
@ -87,15 +94,15 @@ Group: Productivity/Graphics/Vector Editors
Requires: %{name} = %{version}
# ps2pdf-ext.py is a wrapper around ps2pdf, which lives in ghostscript package.
Requires: ghostscript
Requires: python-lxml
Requires: python-xml
Requires: python3-lxml
Requires: python3-xml
# for cdr and wmf modules
Recommends: yudit
# dxf_output.inx, eqtexsvg.inx:
Requires: pstoedit
Enhances: %{name}
# python-xml is already likely installed, so the big dependency is python-lxml. Hence this supplements.
Supplements: packageand(%{name}:python-lxml)
# python3-xml is already likely installed, so the big dependency is python3-lxml. Hence this supplements.
Supplements: packageand(%{name}:python3-lxml)
%description extensions-extra
Extra extensions for Inkscape. Recommended for everybody who wants to
@ -134,6 +141,7 @@ Inkscape is a vector graphics editor.
Summary: GIMP extensions for Inkscape
Group: Productivity/Graphics/Vector Editors
Requires: %{name} = %{version}
Requires: %{name}-extensions-extra = %{version}
Requires: gimp
Enhances: %{name}
Supplements: packageand(%{name}:gimp)
@ -209,7 +217,7 @@ install -D -m 0644 %{SOURCE1} %{buildroot}%{_datadir}/inkscape/palettes
# split extensions
bash %{SOURCE2} %{buildroot}%{_datadir}/inkscape/extensions "%%{_datadir}/inkscape/extensions/"
sed -i -e "1 s,#! */usr/bin/env python,#!/usr/bin/python2," %{buildroot}%{_datadir}/inkscape/extensions/*.py
sed -i -e "1 s,#! */usr/bin/env python,#!/usr/bin/python3," %{buildroot}%{_datadir}/inkscape/extensions/*.py
# Localized man pages, correct install path
for man in %{buildroot}%{_mandir}/man1/inkscape.*.1; do
@ -240,7 +248,6 @@ install -D -m 0644 inkscape.appdata.xml %{buildroot}%{_datadir}/metainfo/inkscap
# create a conflict between the lang subpackage and bundles
%files -f inkscape.lst -f %{name}.man-lang
%defattr(-,root,root)
%{_bindir}/*
%{_libdir}/libinkscape_base.so
%{_datadir}/applications/inkscape.desktop
@ -285,7 +292,6 @@ install -D -m 0644 inkscape.appdata.xml %{buildroot}%{_datadir}/metainfo/inkscap
%exclude %{_datadir}/inkscape/extensions/ps2pdf-ext.py
%files extensions-extra -f inkscape-extensions-extra.lst
%defattr(-,root,root)
%{_datadir}/inkscape/extensions/Barcode
# ps2pdf-ext is a wrapper around ps2pdf binary (part of ghostscript)
%{_datadir}/inkscape/extensions/ps_input.inx
@ -299,23 +305,18 @@ install -D -m 0644 inkscape.appdata.xml %{buildroot}%{_datadir}/metainfo/inkscap
%exclude %{_datadir}/inkscape/extensions/sk*
%files extensions-dia
%defattr(-,root,root)
%{_datadir}/inkscape/extensions/dia*
%files extensions-fig
%defattr(-,root,root)
%{_datadir}/inkscape/extensions/fig*
%files extensions-gimp
%defattr(-,root,root)
# NOTE: export_gimp_palette* does not depend on gimp, but belongs here logically:
%{_datadir}/inkscape/extensions/*gimp*
%files extensions-skencil
%defattr(-,root,root)
%{_datadir}/inkscape/extensions/sk*
%files lang -f %{name}.lang
%defattr(-,root,root)
%changelog

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,130 @@
From d3ed2703736d9157b2cdadd4b5a95324aacc6191 Mon Sep 17 00:00:00 2001
From: Thomas Holder <thomas@thomas-holder.de>
Date: Tue, 12 Mar 2019 16:29:56 +0100
Subject: [PATCH] extensions 2to3: follow-up
---
share/extensions/color_desaturate.py | 2 +-
share/extensions/dxf_input.py | 2 +-
share/extensions/dxf_outlines.py | 2 +-
share/extensions/ink2canvas/svg.py | 6 +++++-
share/extensions/voronoi.py | 12 +++++++++---
5 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/share/extensions/color_desaturate.py b/share/extensions/color_desaturate.py
index a2350a4d32..978e199a29 100755
--- a/share/extensions/color_desaturate.py
+++ b/share/extensions/color_desaturate.py
@@ -3,7 +3,7 @@ import coloreffect
class C(coloreffect.ColorEffect):
def colmod(self,r,g,b):
- l = (max(r,g,b)+min(r,g,b))/2
+ l = (max(r,g,b)+min(r,g,b)) // 2
ig=int(round(l))
return '%02x%02x%02x' % (ig,ig,ig)
diff --git a/share/extensions/dxf_input.py b/share/extensions/dxf_input.py
index 3e15c0b8fd..8754e7cb63 100755
--- a/share/extensions/dxf_input.py
+++ b/share/extensions/dxf_input.py
@@ -109,7 +109,7 @@ def export_SPLINE():
vals[groups['20']].insert(i-1, (1.0 - a1)*vals[groups['20']][i-2] + a1*vals[groups['20']][i-1])
ctrls = len(vals[groups['10']])
path = 'M %f,%f' % (vals[groups['10']][0], vals[groups['20']][0])
- for i in range (0, (ctrls - 1)/3):
+ for i in range (0, (ctrls - 1) // 3):
path += ' C %f,%f %f,%f %f,%f' % (vals[groups['10']][3*i + 1], vals[groups['20']][3*i + 1], vals[groups['10']][3*i + 2], vals[groups['20']][3*i + 2], vals[groups['10']][3*i + 3], vals[groups['20']][3*i + 3])
if vals[groups['70']][0] & 1: # closed path
path += ' z'
diff --git a/share/extensions/dxf_outlines.py b/share/extensions/dxf_outlines.py
index e07681bbba..53c1a523e6 100755
--- a/share/extensions/dxf_outlines.py
+++ b/share/extensions/dxf_outlines.py
@@ -103,7 +103,7 @@ class MyEffect(inkex.Effect):
self.poly = [[0.0,0.0]] # LWPOLYLINE data
def output(self):
stdout = sys.stdout if sys.version_info[0] < 3 else sys.stdout.buffer
- stdout.write(b''.join(self.dxf))
+ stdout.write(b''.join(self.dxf) + b'\n')
def dxf_add(self, str):
self.dxf.append(str.encode(self.options.char_encode))
def dxf_line(self,csp):
diff --git a/share/extensions/ink2canvas/svg.py b/share/extensions/ink2canvas/svg.py
index f4dca8279d..8d1402b7b0 100644
--- a/share/extensions/ink2canvas/svg.py
+++ b/share/extensions/ink2canvas/svg.py
@@ -16,6 +16,10 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
'''
+import sys
+if sys.version_info[0] > 2:
+ unicode = lambda s: s.decode() if isinstance(s, bytes) else str(s)
+
import inkex
import simplestyle
from simplepath import parsePath
@@ -326,7 +330,7 @@ class Polygon(Path):
points = map(lambda x: x.split(","), points)
comm = []
for pt in points: # creating path command similar
- pt = map(float, pt)
+ pt = list(map(float, pt))
comm.append(["L", pt])
comm[0][0] = "M" # first command must be a 'M' => moveTo
return comm
diff --git a/share/extensions/voronoi.py b/share/extensions/voronoi.py
index af83007f1a..d3e9b124df 100644
--- a/share/extensions/voronoi.py
+++ b/share/extensions/voronoi.py
@@ -189,7 +189,7 @@ def voronoi(siteList,context):
if not priorityQ.isEmpty():
minpt = priorityQ.getMinPt()
- if (newsite and (priorityQ.isEmpty() or cmp(newsite,minpt) < 0)):
+ if (newsite and (priorityQ.isEmpty() or newsite < minpt)):
# newsite is smallest - this is a site event
context.outSite(newsite)
@@ -341,6 +341,9 @@ class Site(object):
else:
return 0
+ def __lt__(self, other):
+ return self.__cmp__(other) < 0
+
def distance(self,other):
dx = self.x - other.x
dy = self.y - other.y
@@ -442,6 +445,9 @@ class Halfedge(object):
else:
return 0
+ def __lt__(self, other):
+ return self.__cmp__(other) < 0
+
def leftreg(self,default):
if not self.edge:
return default
@@ -519,7 +525,7 @@ class Halfedge(object):
xint = (e1.c*e2.b - e2.c*e1.b) / d
yint = (e2.c*e1.a - e1.c*e2.a) / d
- if(cmp(e1.reg[1],e2.reg[1]) < 0):
+ if e1.reg[1] < e2.reg[1]:
he = self
e = e1
else:
@@ -637,7 +643,7 @@ class PriorityQueue(object):
he.ystar = site.y + offset
last = self.hash[self.getBucket(he)]
next = last.qnext
- while((next is not None) and cmp(he,next) > 0):
+ while((next is not None) and he > next):
last = next
next = last.qnext
he.qnext = last.qnext
--
2.21.0