Drop support for inkscape < 1.0

Pavel Sanda <[email protected]>
Newsgroups gmane.editors.lyx.devel
Message-ID <[email protected]>
Hi,

another thing which surfaced during my review is that we still ship
check for pre-2020 inkscape which add complexity to the code.

I think it's time to kill it. Any objections?

Pavel

-- 
lyx-devel mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-devel
clean_inkscape.patch (text/x-diff, 15.3 KB)
diff --git a/lib/configure.py b/lib/configure.py
index 5f53d135c7..fbbbca51ef 100644
--- a/lib/configure.py
+++ b/lib/configure.py
@@ -651,19 +651,6 @@ def checkInkscape():
                 return 'inkscape'
 
 
-def checkInkscapeStable():
-    ''' Check whether we use Inkscape >= 1.0 '''
-    inkscape_bin = inkscape_cl
-    if os.name == 'nt':
-        # Windows needs the full path, quoted if it contains spaces
-        inkscape_bin = quoteIfSpace(os.path.join(inkscape_path, inkscape_cl))
-    version_string = cmdOutput(inkscape_bin + " --version")
-    if version_string.find(' 0.') > 0:
-        return False
-    else:
-        return True
-
-
 def checkDrawIO(progName, WinLMkey):
     # Returns a list of additional paths to search for binary draw.io
     # (draw.io inside of draw.io.app contents in the case of MacOS)
@@ -1170,22 +1157,13 @@ def checkConverterEntries():
 \converter fig        pdftex     "$${python} $$s/scripts/fig2pdftex.py $$i $$o"	""
 \converter fig        pstex      "$${python} $$s/scripts/fig2pstex.py $$i $$o"	""''')
     #
-    if inkscape_stable:
-        checkProg('a SVG -> PDFTeX converter', [inkscape_cl],
-            rc_entry = [ r'\converter svg        pdftex     "$${python} $$s/scripts/svg2pdftex.py %% $$p$$i $$p$$o" ""'],
-            path = [inkscape_path])
-        #
-        checkProg('a SVG -> PSTeX converter', [inkscape_cl],
-            rc_entry = [ r'\converter svg        pstex     "$${python} $$s/scripts/svg2pstex.py %% $$p$$i $$p$$o" ""'],
-            path = [inkscape_path])
-    else:
-        checkProg('a SVG -> PDFTeX converter', [inkscape_cl],
-            rc_entry = [ r'\converter svg        pdftex     "$${python} $$s/scripts/svg2pdftex.py --unstable %% $$p$$i $$p$$o" ""'],
-            path = [inkscape_path])
-        #
-        checkProg('a SVG -> PSTeX converter', [inkscape_cl],
-            rc_entry = [ r'\converter svg        pstex     "$${python} $$s/scripts/svg2pstex.py --unstable %% $$p$$i $$p$$o" ""'],
-            path = [inkscape_path])
+    checkProg('a SVG -> PDFTeX converter', [inkscape_cl],
+        rc_entry = [ r'\converter svg        pdftex     "$${python} $$s/scripts/svg2pdftex.py %% $$p$$i $$p$$o" ""'],
+        path = [inkscape_path])
+    #
+    checkProg('a SVG -> PSTeX converter', [inkscape_cl],
+        rc_entry = [ r'\converter svg        pstex     "$${python} $$s/scripts/svg2pstex.py %% $$p$$i $$p$$o" ""'],
+        path = [inkscape_path])
     #
     checkProg('a TIFF -> PS converter', ['tiff2ps $$i > $$o'],
         rc_entry = [ r'\converter tiff       eps        "%%"	""'])
@@ -1196,31 +1174,18 @@ def checkConverterEntries():
 \converter tgif       png        "tgif -print -color -png -o $$d $$i"	""
 \converter tgif       pdf6       "tgif -print -color -pdf -stdout $$i > $$o"	""'''])
     #
-    # inkscape 1.0 has changed cl options
-    if inkscape_stable:
-        checkProg('a WMF -> EPS converter', ['metafile2eps $$i $$o', 'wmf2eps -o $$o $$i', inkscape_cl + ' $$i --export-area-drawing --export-filename=$$o'],
-            rc_entry = [ r'\converter wmf        eps        "%%"	""'])
-        #
-        checkProg('an EMF -> EPS converter', ['metafile2eps $$i $$o', inkscape_cl + ' $$i --export-area-drawing --export-filename=$$o'],
-            rc_entry = [ r'\converter emf        eps        "%%"	""'])
-        #
-        checkProg('a WMF -> PDF converter', [inkscape_cl + ' $$i --export-area-drawing --export-filename=$$o'],
-            rc_entry = [ r'\converter wmf        pdf6        "%%"	""'])
-        #
-        checkProg('an EMF -> PDF converter', [inkscape_cl + ' $$i --export-area-drawing --export-filename=$$o'],
-            rc_entry = [ r'\converter emf        pdf6        "%%"	""'])
-    else:
-        checkProg('a WMF -> EPS converter', ['metafile2eps $$i $$o', 'wmf2eps -o $$o $$i', inkscape_cl + ' --file=$$i --export-area-drawing --without-gui --export-eps=$$o'],
-            rc_entry = [ r'\converter wmf        eps        "%%"	""'])
-        #
-        checkProg('an EMF -> EPS converter', ['metafile2eps $$i $$o', inkscape_cl + ' --file=$$i --export-area-drawing --without-gui --export-eps=$$o'],
-            rc_entry = [ r'\converter emf        eps        "%%"	""'])
-        #
-        checkProg('a WMF -> PDF converter', [inkscape_cl + ' --file=$$i --export-area-drawing --without-gui --export-pdf=$$o'],
-            rc_entry = [ r'\converter wmf        pdf6        "%%"	""'])
-        #
-        checkProg('an EMF -> PDF converter', [inkscape_cl + ' --file=$$i --export-area-drawing --without-gui --export-pdf=$$o'],
-            rc_entry = [ r'\converter emf        pdf6        "%%"	""'])
+    # inkscape 1.0 changed the cl options (LyX now requires >= 1.0)
+    checkProg('a WMF -> EPS converter', ['metafile2eps $$i $$o', 'wmf2eps -o $$o $$i', inkscape_cl + ' $$i --export-area-drawing --export-filename=$$o'],
+        rc_entry = [ r'\converter wmf        eps        "%%"	""'])
+    #
+    checkProg('an EMF -> EPS converter', ['metafile2eps $$i $$o', inkscape_cl + ' $$i --export-area-drawing --export-filename=$$o'],
+        rc_entry = [ r'\converter emf        eps        "%%"	""'])
+    #
+    checkProg('a WMF -> PDF converter', [inkscape_cl + ' $$i --export-area-drawing --export-filename=$$o'],
+        rc_entry = [ r'\converter wmf        pdf6        "%%"	""'])
+    #
+    checkProg('an EMF -> PDF converter', [inkscape_cl + ' $$i --export-area-drawing --export-filename=$$o'],
+        rc_entry = [ r'\converter emf        pdf6        "%%"	""'])
     # Only define a converter to pdf6 for graphics
     checkProg('an EPS -> PDF converter', ['epstopdf'],
         rc_entry = [ r'\converter eps        pdf6       "epstopdf --outfile=$$o $$i"	""'])
@@ -1276,12 +1241,8 @@ def checkConverterEntries():
 
     if not have_png2eps:
         #try inkscape instead.
-        if inkscape_stable:
-            checkProg('an alternative PNG -> EPS converter', [inkscape_cl + ' $$i --export-area-drawing --export-filename=$$o'],
-                rc_entry = [ r'\converter png        eps        "%%"	""'])
-        else:
-            checkProg('an alternative PNG -> EPS converter', [inkscape_cl + ' --file=$$i --export-area-drawing --without-gui --export-eps=$$o'],
-                rc_entry = [ r'\converter png        eps        "%%"	""'])
+        checkProg('an alternative PNG -> EPS converter', [inkscape_cl + ' $$i --export-area-drawing --export-filename=$$o'],
+            rc_entry = [ r'\converter png        eps        "%%"	""'])
     #
     # PDF -> PNG: sips (mac), IM convert (windows, linux), pdftoppm (linux with IM ban)
     # sips:Define a converter from pdf6 to png for Macs where pdftops is missing.
@@ -1347,37 +1308,21 @@ def checkConverterEntries():
         rc_entry = [ r'\converter svg        svgz       "%%"	""'])
     # Only define a converter to pdf6 for graphics
     # Prefer rsvg-convert over inkscape since it is faster (see http://www.lyx.org/trac/ticket/9891)
-    # inkscape 1.0 has changed cl options
-    if inkscape_stable:
-        checkProg('a SVG -> PDF converter', ['rsvg-convert -f pdf -o $$o $$i', inkscape_cl + ' $$i --export-area-drawing --export-filename=$$o'],
-            rc_entry = [ r'''\converter svg        pdf6       "%%"    ""
+    # inkscape 1.0 changed the cl options (LyX now requires >= 1.0)
+    checkProg('a SVG -> PDF converter', ['rsvg-convert -f pdf -o $$o $$i', inkscape_cl + ' $$i --export-area-drawing --export-filename=$$o'],
+        rc_entry = [ r'''\converter svg        pdf6       "%%"    ""
 \converter svgz       pdf6       "%%"    ""'''],
-            path = ['', inkscape_path])
-        #
-        checkProg('a SVG -> EPS converter', ['rsvg-convert -f ps -o $$o $$i', inkscape_cl + ' $$i --export-area-drawing --export-filename=$$o'],
-            rc_entry = [ r'''\converter svg        eps        "%%"    ""
+        path = ['', inkscape_path])
+    #
+    checkProg('a SVG -> EPS converter', ['rsvg-convert -f ps -o $$o $$i', inkscape_cl + ' $$i --export-area-drawing --export-filename=$$o'],
+        rc_entry = [ r'''\converter svg        eps        "%%"    ""
 \converter svgz       eps        "%%"    ""'''],
-            path = ['', inkscape_path])
-        #
-        checkProg('a SVG -> PNG converter', ['rsvg-convert -f png -o $$o $$i', inkscape_cl + ' $$i --export-filename=$$o'],
-            rc_entry = [ r'''\converter svg        png        "%%"    "",
+        path = ['', inkscape_path])
+    #
+    checkProg('a SVG -> PNG converter', ['rsvg-convert -f png -o $$o $$i', inkscape_cl + ' $$i --export-filename=$$o'],
+        rc_entry = [ r'''\converter svg        png        "%%"    "",
 \converter svgz       png        "%%"    ""'''],
-            path = ['', inkscape_path])
-    else:
-        checkProg('a SVG -> PDF converter', ['rsvg-convert -f pdf -o $$o $$i', inkscape_cl + ' --file=$$i --export-area-drawing --without-gui --export-pdf=$$o'],
-            rc_entry = [ r'''\converter svg        pdf6       "%%"    ""
-\converter svgz       pdf6       "%%"    ""'''],
-            path = ['', inkscape_path])
-        #
-        checkProg('a SVG -> EPS converter', ['rsvg-convert -f ps -o $$o $$i', inkscape_cl + ' --file=$$i --export-area-drawing --without-gui --export-eps=$$o'],
-            rc_entry = [ r'''\converter svg        eps        "%%"    ""
-\converter svgz       eps        "%%"    ""'''],
-            path = ['', inkscape_path])
-        #
-        checkProg('a SVG -> PNG converter', ['rsvg-convert -f png -o $$o $$i', inkscape_cl + ' --without-gui --file=$$i --export-png=$$o'],
-            rc_entry = [ r'''\converter svg        png        "%%"    "",
-\converter svgz       png        "%%"    ""'''],
-            path = ['', inkscape_path])
+        path = ['', inkscape_path])
     #
     checkProg('Gnuplot', ['gnuplot'],
         rc_entry = [ r'''\Format gnuplot     "gp, gnuplot, plt"    "Gnuplot"     "" "" ""  "vector"	"text/plain"
@@ -2182,7 +2127,6 @@ Format %i
     inkscape_cl = inkscape_gui
     if os.name == 'nt':
         inkscape_cl = inkscape_gui.replace('.exe', '.com')
-    inkscape_stable = checkInkscapeStable()
     checkFormatEntries(dtl_tools)
     checkConverterEntries()
     checkTeXAllowSpaces()
diff --git a/lib/scripts/svg2pdftex.py b/lib/scripts/svg2pdftex.py
index aad6d0b321..bfc6c0fa23 100644
--- a/lib/scripts/svg2pdftex.py
+++ b/lib/scripts/svg2pdftex.py
@@ -14,12 +14,11 @@
 # with pdflatex into high quality PDF. It requires Inkscape.
 
 # Usage:
-#   python svg2pdftex.py [--unstable] [inkscape_command] inputfile.svg outputfile.pdf_tex
+#   python svg2pdftex.py [inkscape_command] inputfile.svg outputfile.pdf_tex
 # This command generates
 #   1. outputfile.pdf     -- the converted PDF file (text from SVG stripped)
 #   2. outputfile.pdf_tex -- a TeX file that can be included in your
 #                             LaTeX document using '\input{outputfile.pdf_text}'
-# use --unstable for inkscape < 1.0
 #
 # Note:
 #   Do not use this command as
@@ -42,29 +41,16 @@ def runCommand(cmd):
 InkscapeCmd = "inkscape"
 InputFile = ""
 OutputFile = ""
-unstable = False
 
-# We expect two to four args: the names of the input and output files
-# and optionally the inkscape command (with path if needed) and --unstable.
+# We expect two or three args: the names of the input and output files
+# and optionally the inkscape command (with path if needed).
 args = len(sys.argv)
 if args == 3:
     # Two args: input and output file only
     InputFile, OutputFile = sys.argv[1:]
 elif args == 4:
-    # Three args: check whether we have --unstable as first arg
-    if sys.argv[1] == "--unstable":
-        unstable = True
-        InputFile, OutputFile = sys.argv[2:]
-    else:
-        InkscapeCmd, InputFile, OutputFile = sys.argv[1:]
-elif args == 5:
-    # Four args: check whether we have --unstable as first arg
-    if sys.argv[1] != "--unstable":
-        # Invalid number of args. Exit with error.
-        sys.exit(1)
-    else:
-        unstable = True
-        InkscapeCmd, InputFile, OutputFile = sys.argv[2:]
+    # Three args: inkscape command, input and output file
+    InkscapeCmd, InputFile, OutputFile = sys.argv[1:]
 else:
     # Invalid number of args. Exit with error.
     sys.exit(1)
@@ -80,10 +66,7 @@ OutBase = os.path.splitext(OutputFile)[0]
 # while outsourcing the text to a LaTeX file ${OutBase}.pdf_tex which includes and overlays
 # the PDF image and can be \input to LaTeX files. We rename the latter file to ${OutputFile}
 # (although this is probably the name it already has).
-if unstable:
-    runCommand([r'%s' % InkscapeCmd, '--file=%s' % InputFile, '--export-pdf=%s.pdf' % OutBase, '--export-latex'])
-else:
-    runCommand([r'%s' % InkscapeCmd, '%s' % InputFile, '--export-filename=%s.pdf' % OutBase, '--export-latex'])
+runCommand([r'%s' % InkscapeCmd, '%s' % InputFile, '--export-filename=%s.pdf' % OutBase, '--export-latex'])
 
 os.rename('%s.pdf_tex' % OutBase, OutputFile)
 
diff --git a/lib/scripts/svg2pstex.py b/lib/scripts/svg2pstex.py
index 33aedc226a..f4d085ef1f 100644
--- a/lib/scripts/svg2pstex.py
+++ b/lib/scripts/svg2pstex.py
@@ -14,12 +14,11 @@
 # with latex into high quality DVI/PostScript. It requires Inkscape.
 
 # Usage:
-#   python svg2pstex.py [--unstable] [inkscape_command] inputfile.svg outputfile.eps_tex
+#   python svg2pstex.py [inkscape_command] inputfile.svg outputfile.eps_tex
 # This command generates
 #   1. outputfile.eps     -- the converted EPS file (text from SVG stripped)
 #   2. outputfile.eps_tex -- a TeX file that can be included in your
 #                             LaTeX document using '\input{outputfile.eps_text}'
-# use --unstable for inkscape < 1.0
 #
 # Note:
 #   Do not use this command as
@@ -45,29 +44,16 @@ def runCommand(cmd):
 InkscapeCmd = "inkscape"
 InputFile = ""
 OutputFile = ""
-unstable = False
 
-# We expect two to four args: the names of the input and output files
-# and optionally the inkscape command (with path if needed) and --unstable.
+# We expect two or three args: the names of the input and output files
+# and optionally the inkscape command (with path if needed).
 args = len(sys.argv)
 if args == 3:
     # Two args: input and output file only
     InputFile, OutputFile = sys.argv[1:]
 elif args == 4:
-    # Three args: check whether we have --unstable as first arg
-    if sys.argv[1] == "--unstable":
-        unstable = True
-        InputFile, OutputFile = sys.argv[2:]
-    else:
-        InkscapeCmd, InputFile, OutputFile = sys.argv[1:]
-elif args == 5:
-    # Four args: check whether we have --unstable as first arg
-    if sys.argv[1] != "--unstable":
-        # Invalid number of args. Exit with error.
-        sys.exit(1)
-    else:
-        unstable = True
-        InkscapeCmd, InputFile, OutputFile = sys.argv[2:]
+    # Three args: inkscape command, input and output file
+    InkscapeCmd, InputFile, OutputFile = sys.argv[1:]
 else:
     # Invalid number of args. Exit with error.
     sys.exit(1)
@@ -83,10 +69,7 @@ OutBase = os.path.splitext(OutputFile)[0]
 # while outsourcing the text to a LaTeX file ${OutBase}.eps_tex which includes and overlays
 # the EPS image and can be \input to LaTeX files. We rename the latter file to ${OutputFile}
 # (although this is probably the name it already has).
-if unstable:
-    runCommand([r'%s' % InkscapeCmd, '--file=%s' % InputFile, '--export-eps=%s.eps' % OutBase, '--export-latex'])
-else:
-    runCommand([r'%s' % InkscapeCmd, '%s' % InputFile, '--export-filename=%s.eps' % OutBase, '--export-latex'])
+runCommand([r'%s' % InkscapeCmd, '%s' % InputFile, '--export-filename=%s.eps' % OutBase, '--export-latex'])
 
 os.rename('%s.eps_tex' % OutBase, OutputFile)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.