Index | Thread | Search

From:
Rafael Sadowski <rafael@sizeofvoid.org>
Subject:
Re: update cad/qcad 3.32.4.0
To:
George Koehler <kernigh@gmail.com>
Cc:
ports@openbsd.org
Date:
Mon, 17 Nov 2025 10:42:38 +0100

Download raw body.

Thread
On Sun Nov 16, 2025 at 04:05:43PM -0500, George Koehler wrote:
> Hello ports!  This diff updates qcad to 3.32.4.0 and adds and removes
> some patches, ok?
> 
> I don't use qcad, but I need to touch this port because its PLIST had
> lines like
> 
> @lib share/qcad/plugins/script/libqtscript_core.so.1.0
> 
> This breaks a rule: every @lib must be in SHARED_LIBS and have a
> version like ${LIBqtscript_core_VERSION}.  An incoming diff to
> pkg_create(1) will enforce this rule (thread "pkg_create: @lib
> without LIBname_VERSION"), so we must patch qcad.
> 
> After I updated the port, I patched qtbindingsbase.pri to build
> libqtscript_*.so with "CONFIG += plugin".  This chops off the ".1.0"
> and changes each @lib to a @so, which avoids the @lib rule.
> 
> After the update, the patch in ecmaapi.pro broke the build by turning
> off precompiled_header; I turned it back on.  I had errors about
> unknown types like QScriptEngine.  The pch from "stable.h" includes
> some QScript headers and fixes the errors.  The pch works for me with
> base-clang 19.1.7 on amd64.
> 
> "readelf -d /usr/local/bin/qcad" was missing some library version
> numbers; I fixed it by adding some patches to comment out "CONFIG +=
> plugin" for each library linked with -l in shared_app.pri.
> 
> I dropped the patch for run/main.cpp to get rid of a warning on my
> terminal from a Qt Designer plugin.  Without the patch, run/main.cpp
> stops loading such plugins.  I dropped a few other obsolete patches.
> 
> I dropped the dependency on x11/qt5/qtwebengine, because I can't see
> where it is used.  (shared.pri says, "QCAD does not depend on WebKit /
> WebEngine anymore and uses QTextBrowser instead:")
> 
> My last experience with any CAD was more than 20 years ago, but I am
> able to start qcad 3.32.4.0 on amd64 and draw a silly diagram.
> --gkoehler

Thanks George, I had is on my list. Tested and works. OK rsadowski

> 
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/cad/qcad/Makefile,v
> diff -u -p -r1.47 Makefile
> --- Makefile	2 Jan 2024 10:15:24 -0000	1.47
> +++ Makefile	16 Nov 2025 19:01:45 -0000
> @@ -2,9 +2,9 @@ COMMENT =	Qt-based 2D CAD system
>  
>  GH_ACCOUNT =	qcad
>  GH_PROJECT =	qcad
> -GH_TAGNAME =	v3.28.2.2
> +GH_TAGNAME =	v3.32.4.0
>  
> -SO_VERSION =	2.0
> +SO_VERSION =	3.0
>  QCAD_LIBS =	qcadcore \
>  		qcadecmaapi \
>  		qcadentity \
> @@ -31,7 +31,8 @@ PERMIT_PACKAGE =Yes
>  WANTLIB += ${COMPILER_LIBCXX} GL Qt5Concurrent Qt5Core Qt5Designer
>  WANTLIB += Qt5Gui Qt5Help Qt5Network Qt5OpenGL Qt5PrintSupport
>  WANTLIB += Qt5Script Qt5ScriptTools Qt5Sql Qt5Svg Qt5Widgets Qt5Xml
> -WANTLIB += Qt5XmlPatterns c cups jpeg m sqlite3 stemmer tiff z
> +WANTLIB += Qt5XmlPatterns c cups execinfo jpeg m sqlite3 stemmer
> +WANTLIB += tiff z
>  
>  MODULES =	devel/qmake \
>  		x11/qt5
> @@ -39,8 +40,7 @@ MODULES =	devel/qmake \
>  BUILD_DEPENDS =	sysutils/e2fsprogs \
>  		x11/qt5/qtimageformats
>  
> -RUN_DEPENDS =	devel/desktop-file-utils \
> -		x11/qt5/qtwebengine
> +RUN_DEPENDS =	devel/desktop-file-utils
>  
>  LIB_DEPENDS =	print/cups,-libs \
>  		textproc/libstemmer \
> @@ -63,17 +63,11 @@ pre-configure:
>  	cp ${WRKSRC}/src/3rdparty/qt-labs-qtscriptgenerator-5.15.3/qt-labs-qtscriptgenerator-5.15.3.pro \
>             ${WRKSRC}/src/3rdparty/qt-labs-qtscriptgenerator-${MODQT5_VERSION}/qt-labs-qtscriptgenerator-${MODQT5_VERSION}.pro
>  	${SUBST_CMD} ${WRKSRC}/src/core/RS.cpp \
> -		${WRKSRC}/src/core/RSettings.cpp \
> -		${WRKSRC}/scripts/Help/ShowReadme/ShowReadme.js
> -
> +		${WRKSRC}/src/core/RSettings.cpp
>  
>  do-install:
>  	${INSTALL_PROGRAM} ${WRKSRC}/release/qcad-bin ${PREFIX}/bin/qcad
> -.for _lib in ${QCAD_LIBS}
> -	${INSTALL_DATA} ${WRKSRC}/release/lib${_lib}.so \
> -		${PREFIX}/lib/lib${_lib}.so.${SO_VERSION}
> -.endfor
> -	${INSTALL_DATA} ${WRKSRC}/release/*.a ${PREFIX}/lib/
> +	${INSTALL_DATA} ${WRKSRC}/release/*.{a,so.*} ${PREFIX}/lib/
>  	${INSTALL_MAN} ${WRKSRC}/qcad.1 ${PREFIX}/man/man1
>  	${INSTALL_DATA_DIR} ${PREFIX}/share/applications
>  	${INSTALL_DATA} ${WRKSRC}/qcad.desktop ${PREFIX}/share/applications
> @@ -81,7 +75,9 @@ do-install:
>  .for dir in fonts libraries linetypes patterns plugins scripts themes ts
>  	cp -Rp ${WRKSRC}/${dir} ${PREFIX}/share/qcad/
>  .endfor
> -	find ${PREFIX} \( -name .gitignore -or -name *.pr[io] -or -name *.ts \) -delete
> +	find ${PREFIX} \( -name .gitignore -or \
> +		-name '*.orig.port' -or -name '*.pr[io]' -or \
> +		-name '*.ts' \) -delete
>  	${INSTALL_DATA} ${WRKSRC}/readme.txt ${PREFIX}/share/qcad
>  	${INSTALL_DATA_DIR} ${PREFIX}/share/pixmaps
>  	${INSTALL_DATA} ${WRKSRC}/scripts/qcad_icon.png \
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/cad/qcad/distinfo,v
> diff -u -p -r1.13 distinfo
> --- distinfo	14 Dec 2023 12:17:57 -0000	1.13
> +++ distinfo	16 Nov 2025 19:01:45 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (qcad-3.28.2.2.tar.gz) = YXNJV+adhsc2E8bTeDyT71/J92smaoDFoBHbESE3lDw=
> -SIZE (qcad-3.28.2.2.tar.gz) = 42292122
> +SHA256 (qcad-3.32.4.0.tar.gz) = kqo5h2oMIvpsC2nxtNLeL3DYsis9FMrO7VSPd9CjiLw=
> +SIZE (qcad-3.32.4.0.tar.gz) = 48002361
> Index: patches/patch-scripts_Help_About_About_js
> ===================================================================
> RCS file: /cvs/ports/cad/qcad/patches/patch-scripts_Help_About_About_js,v
> diff -u -p -r1.4 patch-scripts_Help_About_About_js
> --- patches/patch-scripts_Help_About_About_js	29 Aug 2022 15:18:10 -0000	1.4
> +++ patches/patch-scripts_Help_About_About_js	16 Nov 2025 19:01:45 -0000
> @@ -1,7 +1,7 @@
>  Index: scripts/Help/About/About.js
>  --- scripts/Help/About/About.js.orig
>  +++ scripts/Help/About/About.js
> -@@ -474,6 +474,9 @@ About.prototype.initAboutSystem = function(textEdit) {
> +@@ -475,6 +475,9 @@ About.prototype.initAboutSystem = function(textEdit) {
>       if (RS.getSystemId()==="solaris") {
>           text += "Solaris";
>       }
> Index: patches/patch-scripts_Help_ShowReadme_ShowReadme_js
> ===================================================================
> RCS file: patches/patch-scripts_Help_ShowReadme_ShowReadme_js
> diff -N patches/patch-scripts_Help_ShowReadme_ShowReadme_js
> --- patches/patch-scripts_Help_ShowReadme_ShowReadme_js	29 Aug 2022 15:18:10 -0000	1.1
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,12 +0,0 @@
> -Index: scripts/Help/ShowReadme/ShowReadme.js
> ---- scripts/Help/ShowReadme/ShowReadme.js.orig
> -+++ scripts/Help/ShowReadme/ShowReadme.js
> -@@ -19,7 +19,7 @@
> - 
> - include("scripts/Help/Help.js");
> - 
> --ShowReadme.readmeFile = "readme.txt";
> -+ShowReadme.readmeFile = "${LOCALBASE}/share/qcadreadme.txt";
> - 
> - function ShowReadme(guiAction) {
> -     Help.call(this, guiAction);
> Index: patches/patch-scripts_Widgets_CommandLine_CommandLine_js
> ===================================================================
> RCS file: /cvs/ports/cad/qcad/patches/patch-scripts_Widgets_CommandLine_CommandLine_js,v
> diff -u -p -r1.5 patch-scripts_Widgets_CommandLine_CommandLine_js
> --- patches/patch-scripts_Widgets_CommandLine_CommandLine_js	2 Jan 2023 12:40:09 -0000	1.5
> +++ patches/patch-scripts_Widgets_CommandLine_CommandLine_js	16 Nov 2025 19:01:45 -0000
> @@ -1,7 +1,7 @@
>  Index: scripts/Widgets/CommandLine/CommandLine.js
>  --- scripts/Widgets/CommandLine/CommandLine.js.orig
>  +++ scripts/Widgets/CommandLine/CommandLine.js
> -@@ -498,6 +498,9 @@ CommandLine.init = function(basePath) {
> +@@ -539,6 +539,9 @@ CommandLine.init = function(basePath) {
>       case "solaris":
>           system = "Solaris";
>           break;
> @@ -9,5 +9,5 @@ Index: scripts/Widgets/CommandLine/Comma
>  +        system = "OpenBSD";
>  +        break;
>       }
> -     EAction.handleUserMessage(
> -                 "%1 %2 / Qt %3 / %4 %5"
> +     var platformName = "";
> +     if (RSettings.getQtVersion() >= 0x060000) {
> Index: patches/patch-shared_app_pri
> ===================================================================
> RCS file: /cvs/ports/cad/qcad/patches/patch-shared_app_pri,v
> diff -u -p -r1.3 patch-shared_app_pri
> --- patches/patch-shared_app_pri	29 Aug 2022 15:18:10 -0000	1.3
> +++ patches/patch-shared_app_pri	16 Nov 2025 19:01:45 -0000
> @@ -10,3 +10,14 @@ Index: shared_app.pri
>   }
>   
>   win32 {
> +@@ -45,6 +45,10 @@ linux-g++ {
> + 
> + freebsd-* {
> +     LIBS += -lGLU -lexecinfo
> ++}
> ++
> ++openbsd {
> ++    LIBS += -lexecinfo
> + }
> + 
> + macx {
> Index: patches/patch-src_3rdparty_3rdparty_pro
> ===================================================================
> RCS file: patches/patch-src_3rdparty_3rdparty_pro
> diff -N patches/patch-src_3rdparty_3rdparty_pro
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_3rdparty_3rdparty_pro	16 Nov 2025 19:01:45 -0000
> @@ -0,0 +1,31 @@
> +Must use textproc/libstemmer, because qcad links to the port if it is
> +installed.
> +
> +Index: src/3rdparty/3rdparty.pro
> +--- src/3rdparty/3rdparty.pro.orig
> ++++ src/3rdparty/3rdparty.pro
> +@@ -1,7 +1,7 @@
> + include (../../shared.pri)
> + TEMPLATE = subdirs
> + SUBDIRS = \
> +-    stemmer \
> ++    #stemmer \
> +     legacy
> + 
> + 
> +@@ -27,12 +27,12 @@ else {
> + }
> + 
> + !r_mobile {
> +-    exists(qt-labs-qtscriptgenerator-$${QT_VERSION}) {
> +-        SUBDIRS += qt-labs-qtscriptgenerator-$${QT_VERSION}
> ++    exists(qt-labs-qtscriptgenerator-5.15.16) {
> ++        SUBDIRS += qt-labs-qtscriptgenerator-5.15.16
> +     }
> +     else {
> +         lessThan(QT_MAJOR_VERSION, 6) {
> +-            error("Script bindings not available for Qt version $${QT_VERSION}. You can add them to src/3rdparty/qt-labs-qtscriptgenerator-$${QT_VERSION} or use another version of Qt.")
> ++            error("Script bindings not available for Qt version 5.15.16. You can add them to src/3rdparty/qt-labs-qtscriptgenerator-5.15.16 or use another version of Qt.")
> +         }
> +     }
> + }
> Index: patches/patch-src_3rdparty_legacy_opennurbs_opennurbs_pro
> ===================================================================
> RCS file: patches/patch-src_3rdparty_legacy_opennurbs_opennurbs_pro
> diff -N patches/patch-src_3rdparty_legacy_opennurbs_opennurbs_pro
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_3rdparty_legacy_opennurbs_opennurbs_pro	16 Nov 2025 19:01:45 -0000
> @@ -0,0 +1,12 @@
> +Use base zlib.  A future version of qcad might need this patch moved
> +from 3rdparty/legacy/opennurbs to 3rdparty/opennurbs.
> +
> +Index: src/3rdparty/legacy/opennurbs/opennurbs.pro
> +--- src/3rdparty/legacy/opennurbs/opennurbs.pro.orig
> ++++ src/3rdparty/legacy/opennurbs/opennurbs.pro
> +@@ -1,5 +1,4 @@
> + include (../../../../shared.pri)
> + TEMPLATE = subdirs
> + SUBDIRS = \
> +-    zlib \
> +     opennurbs
> Index: patches/patch-src_3rdparty_legacy_opennurbs_opennurbs_zlib_cpp
> ===================================================================
> RCS file: patches/patch-src_3rdparty_legacy_opennurbs_opennurbs_zlib_cpp
> diff -N patches/patch-src_3rdparty_legacy_opennurbs_opennurbs_zlib_cpp
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_3rdparty_legacy_opennurbs_opennurbs_zlib_cpp	16 Nov 2025 19:01:45 -0000
> @@ -0,0 +1,62 @@
> +Use base zlib.  A future version of qcad might need this patch moved
> +from 3rdparty/legacy/opennurbs to 3rdparty/opennurbs.
> +
> +Index: src/3rdparty/legacy/opennurbs/opennurbs_zlib.cpp
> +--- src/3rdparty/legacy/opennurbs/opennurbs_zlib.cpp.orig
> ++++ src/3rdparty/legacy/opennurbs/opennurbs_zlib.cpp
> +@@ -293,11 +293,11 @@ size_t ON_BinaryArchive::WriteDeflate( // returns numb
> +       // no uncompressed input is left - switch to finish mode
> +       flush = Z_FINISH;
> +     }
> +-    zrc = z_deflate( &m_zlib.strm, flush ); 
> ++    zrc = deflate( &m_zlib.strm, flush ); 
> +     if ( zrc < 0 ) 
> +     {
> +       // Something went haywire - bail out.
> +-      ON_ERROR("ON_BinaryArchive::WriteDeflate - z_deflate failure");
> ++      ON_ERROR("ON_BinaryArchive::WriteDeflate - deflate failure");
> +       rc = false;
> +       break;
> +     }
> +@@ -491,11 +491,11 @@ bool ON_BinaryArchive::ReadInflate(
> +       // no compressed input is left - switch to finish mode
> +       flush = Z_FINISH;
> +     }
> +-    zrc = z_inflate( &m_zlib.strm, flush );
> ++    zrc = inflate( &m_zlib.strm, flush );
> +     if ( zrc < 0 ) 
> +     {
> +       // Something went haywire - bail out.
> +-      ON_ERROR("ON_BinaryArchive::ReadInflate - z_inflate failure");
> ++      ON_ERROR("ON_BinaryArchive::ReadInflate - inflate failure");
> +       rc = false;
> +       break;
> +     }
> +@@ -1151,11 +1151,11 @@ size_t ON_CompressedBuffer::DeflateHelper( // returns 
> +       // no uncompressed input is left - switch to finish mode
> +       flush = Z_FINISH;
> +     }
> +-    zrc = z_deflate( &m_zlib.strm, flush ); 
> ++    zrc = deflate( &m_zlib.strm, flush ); 
> +     if ( zrc < 0 ) 
> +     {
> +       // Something went haywire - bail out.
> +-      ON_ERROR("ON_CompressedBuffer::DeflateHelper - z_deflate failure");
> ++      ON_ERROR("ON_CompressedBuffer::DeflateHelper - deflate failure");
> +       rc = false;
> +       break;
> +     }
> +@@ -1284,11 +1284,11 @@ bool ON_CompressedBuffer::InflateHelper(
> +       // no compressed input is left - switch to finish mode
> +       flush = Z_FINISH;
> +     }
> +-    zrc = z_inflate( &m_zlib.strm, flush );
> ++    zrc = inflate( &m_zlib.strm, flush );
> +     if ( zrc < 0 ) 
> +     {
> +       // Something went haywire - bail out.
> +-      ON_ERROR("ON_CompressedBuffer::InflateHelper - z_inflate failure");
> ++      ON_ERROR("ON_CompressedBuffer::InflateHelper - inflate failure");
> +       rc = false;
> +       break;
> +     }
> Index: patches/patch-src_3rdparty_legacy_opennurbs_opennurbs_zlib_h
> ===================================================================
> RCS file: patches/patch-src_3rdparty_legacy_opennurbs_opennurbs_zlib_h
> diff -N patches/patch-src_3rdparty_legacy_opennurbs_opennurbs_zlib_h
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_3rdparty_legacy_opennurbs_opennurbs_zlib_h	16 Nov 2025 19:01:45 -0000
> @@ -0,0 +1,15 @@
> +Use base zlib.  A future version of qcad might need this patch moved
> +from 3rdparty/legacy/opennurbs to 3rdparty/opennurbs.
> +
> +Index: src/3rdparty/legacy/opennurbs/opennurbs_zlib.h
> +--- src/3rdparty/legacy/opennurbs/opennurbs_zlib.h.orig
> ++++ src/3rdparty/legacy/opennurbs/opennurbs_zlib.h
> +@@ -39,7 +39,7 @@
> + #endif
> + 
> + extern "C" {
> +-#include "./zlib/zlib.h"
> ++#include <zlib.h>
> + }
> + 
> + ON_BEGIN_EXTERNC
> Index: patches/patch-src_3rdparty_legacy_spatialindexnavel_spatialindexnavel_pro
> ===================================================================
> RCS file: patches/patch-src_3rdparty_legacy_spatialindexnavel_spatialindexnavel_pro
> diff -N patches/patch-src_3rdparty_legacy_spatialindexnavel_spatialindexnavel_pro
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_3rdparty_legacy_spatialindexnavel_spatialindexnavel_pro	16 Nov 2025 19:01:45 -0000
> @@ -0,0 +1,14 @@
> +CONFIG -= plugin if shared_app.pri links to it.
> +
> +Index: src/3rdparty/legacy/spatialindexnavel/spatialindexnavel.pro
> +--- src/3rdparty/legacy/spatialindexnavel/spatialindexnavel.pro.orig
> ++++ src/3rdparty/legacy/spatialindexnavel/spatialindexnavel.pro
> +@@ -6,7 +6,7 @@ r_static_libs {
> +     CONFIG += staticlib
> + }
> + else {
> +-    CONFIG += plugin
> ++    #CONFIG += plugin
> + }
> + 
> + # this is required to compile the spatial index library from navel ltd:
> Index: patches/patch-src_3rdparty_opennurbs_opennurbs_opennurbs_pro
> ===================================================================
> RCS file: patches/patch-src_3rdparty_opennurbs_opennurbs_opennurbs_pro
> diff -N patches/patch-src_3rdparty_opennurbs_opennurbs_opennurbs_pro
> --- patches/patch-src_3rdparty_opennurbs_opennurbs_opennurbs_pro	11 Mar 2022 18:24:31 -0000	1.2
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,12 +0,0 @@
> -Index: src/3rdparty/opennurbs/opennurbs/opennurbs.pro
> ---- src/3rdparty/opennurbs/opennurbs/opennurbs.pro.orig
> -+++ src/3rdparty/opennurbs/opennurbs/opennurbs.pro
> -@@ -225,7 +225,7 @@ CONFIG(release, debug|release) {
> - else {
> -     LIBS += -L../zlib/debug
> - }
> --LIBS += -lzlib
> -+LIBS += -lz
> - win32 {
> -     #DEFINES += ON_DLL_EXPORTS ON_COMPILING_OPENNURBS NDEBUG
> -     DEFINES += ON_COMPILING_OPENNURBS NDEBUG
> Index: patches/patch-src_3rdparty_opennurbs_opennurbs_pro
> ===================================================================
> RCS file: patches/patch-src_3rdparty_opennurbs_opennurbs_pro
> diff -N patches/patch-src_3rdparty_opennurbs_opennurbs_pro
> --- patches/patch-src_3rdparty_opennurbs_opennurbs_pro	11 Mar 2022 18:24:31 -0000	1.2
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,9 +0,0 @@
> -Index: src/3rdparty/opennurbs/opennurbs.pro
> ---- src/3rdparty/opennurbs/opennurbs.pro.orig
> -+++ src/3rdparty/opennurbs/opennurbs.pro
> -@@ -1,5 +1,4 @@
> - include (../../../shared.pri)
> - TEMPLATE = subdirs
> - SUBDIRS = \
> --    zlib \
> -     opennurbs
> Index: patches/patch-src_3rdparty_opennurbs_opennurbs_zlib_cpp
> ===================================================================
> RCS file: patches/patch-src_3rdparty_opennurbs_opennurbs_zlib_cpp
> diff -N patches/patch-src_3rdparty_opennurbs_opennurbs_zlib_cpp
> --- patches/patch-src_3rdparty_opennurbs_opennurbs_zlib_cpp	11 Mar 2022 18:24:31 -0000	1.2
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,59 +0,0 @@
> -Index: src/3rdparty/opennurbs/opennurbs_zlib.cpp
> ---- src/3rdparty/opennurbs/opennurbs_zlib.cpp.orig
> -+++ src/3rdparty/opennurbs/opennurbs_zlib.cpp
> -@@ -293,11 +293,11 @@ size_t ON_BinaryArchive::WriteDeflate( // returns numb
> -       // no uncompressed input is left - switch to finish mode
> -       flush = Z_FINISH;
> -     }
> --    zrc = z_deflate( &m_zlib.strm, flush ); 
> -+    zrc = deflate( &m_zlib.strm, flush ); 
> -     if ( zrc < 0 ) 
> -     {
> -       // Something went haywire - bail out.
> --      ON_ERROR("ON_BinaryArchive::WriteDeflate - z_deflate failure");
> -+      ON_ERROR("ON_BinaryArchive::WriteDeflate - deflate failure");
> -       rc = false;
> -       break;
> -     }
> -@@ -491,11 +491,11 @@ bool ON_BinaryArchive::ReadInflate(
> -       // no compressed input is left - switch to finish mode
> -       flush = Z_FINISH;
> -     }
> --    zrc = z_inflate( &m_zlib.strm, flush );
> -+    zrc = inflate( &m_zlib.strm, flush );
> -     if ( zrc < 0 ) 
> -     {
> -       // Something went haywire - bail out.
> --      ON_ERROR("ON_BinaryArchive::ReadInflate - z_inflate failure");
> -+      ON_ERROR("ON_BinaryArchive::ReadInflate - inflate failure");
> -       rc = false;
> -       break;
> -     }
> -@@ -1151,11 +1151,11 @@ size_t ON_CompressedBuffer::DeflateHelper( // returns 
> -       // no uncompressed input is left - switch to finish mode
> -       flush = Z_FINISH;
> -     }
> --    zrc = z_deflate( &m_zlib.strm, flush ); 
> -+    zrc = deflate( &m_zlib.strm, flush ); 
> -     if ( zrc < 0 ) 
> -     {
> -       // Something went haywire - bail out.
> --      ON_ERROR("ON_CompressedBuffer::DeflateHelper - z_deflate failure");
> -+      ON_ERROR("ON_CompressedBuffer::DeflateHelper - deflate failure");
> -       rc = false;
> -       break;
> -     }
> -@@ -1284,11 +1284,11 @@ bool ON_CompressedBuffer::InflateHelper(
> -       // no compressed input is left - switch to finish mode
> -       flush = Z_FINISH;
> -     }
> --    zrc = z_inflate( &m_zlib.strm, flush );
> -+    zrc = inflate( &m_zlib.strm, flush );
> -     if ( zrc < 0 ) 
> -     {
> -       // Something went haywire - bail out.
> --      ON_ERROR("ON_CompressedBuffer::InflateHelper - z_inflate failure");
> -+      ON_ERROR("ON_CompressedBuffer::InflateHelper - inflate failure");
> -       rc = false;
> -       break;
> -     }
> Index: patches/patch-src_3rdparty_opennurbs_opennurbs_zlib_h
> ===================================================================
> RCS file: patches/patch-src_3rdparty_opennurbs_opennurbs_zlib_h
> diff -N patches/patch-src_3rdparty_opennurbs_opennurbs_zlib_h
> --- patches/patch-src_3rdparty_opennurbs_opennurbs_zlib_h	11 Mar 2022 18:24:31 -0000	1.2
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,21 +0,0 @@
> -Index: src/3rdparty/opennurbs/opennurbs_zlib.h
> ---- src/3rdparty/opennurbs/opennurbs_zlib.h.orig
> -+++ src/3rdparty/opennurbs/opennurbs_zlib.h
> -@@ -30,7 +30,7 @@
> - 
> - #if !defined(Z_PREFIX)
> - /* decorates zlib functions with a "z_" prefix to prevent symbol collision. */
> --#define Z_PREFIX
> -+//#define Z_PREFIX
> - #endif
> - 
> - #if !defined(MY_ZCALLOC)
> -@@ -38,7 +38,7 @@
> - //#define MY_ZCALLOC
> - #endif
> - 
> --#include "./zlib/zlib.h"
> -+#include <zlib.h>
> - 
> - ON_BEGIN_EXTERNC
> - voidpf zcalloc (voidpf, unsigned, unsigned);
> Index: patches/patch-src_3rdparty_qt-labs-qtscriptgenerator-5_5_0_qtbindings_qtbindingsbase_pri
> ===================================================================
> RCS file: /cvs/ports/cad/qcad/patches/patch-src_3rdparty_qt-labs-qtscriptgenerator-5_5_0_qtbindings_qtbindingsbase_pri,v
> diff -u -p -r1.2 patch-src_3rdparty_qt-labs-qtscriptgenerator-5_5_0_qtbindings_qtbindingsbase_pri
> --- patches/patch-src_3rdparty_qt-labs-qtscriptgenerator-5_5_0_qtbindings_qtbindingsbase_pri	11 Mar 2022 18:24:31 -0000	1.2
> +++ patches/patch-src_3rdparty_qt-labs-qtscriptgenerator-5_5_0_qtbindings_qtbindingsbase_pri	16 Nov 2025 19:01:45 -0000
> @@ -1,3 +1,6 @@
> +Build plugins/script/libqtscript_*.so as plugins (without a version
> +number) and only for release.
> +
>  Index: src/3rdparty/qt-labs-qtscriptgenerator-5.5.0/qtbindings/qtbindingsbase.pri
>  --- src/3rdparty/qt-labs-qtscriptgenerator-5.5.0/qtbindings/qtbindingsbase.pri.orig
>  +++ src/3rdparty/qt-labs-qtscriptgenerator-5.5.0/qtbindings/qtbindingsbase.pri
> @@ -6,6 +9,6 @@ Index: src/3rdparty/qt-labs-qtscriptgene
>   QT += script
>   #CONFIG += plugin release build_all
>  -CONFIG += debug_and_release
> -+CONFIG += release
> ++CONFIG += plugin release
>   GENERATEDCPP = $$PWD/../generated_cpp
>   TARGET=$$qtLibraryTarget($$TARGET)
> Index: patches/patch-src_core_RDebug_cpp
> ===================================================================
> RCS file: patches/patch-src_core_RDebug_cpp
> diff -N patches/patch-src_core_RDebug_cpp
> --- patches/patch-src_core_RDebug_cpp	14 Dec 2023 12:17:57 -0000	1.4
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,15 +0,0 @@
> -Forcefully disable the use of backtrace/backtrace_symbols which we don't
> -have in our libc.
> -
> -Index: src/core/RDebug.cpp
> ---- src/core/RDebug.cpp.orig
> -+++ src/core/RDebug.cpp
> -@@ -37,7 +37,7 @@ QString RDebug::prefix;
> - QMutex RDebug::mutexCounter;
> - 
> - void RDebug::printBacktrace(const QString& prefix) {
> --#if !defined(Q_OS_WIN) && !defined(Q_OS_ANDROID)
> -+#if !defined(Q_OS_WIN) && !defined(Q_OS_ANDROID) && !defined(Q_OS_OPENBSD)
> -     void *array[20];
> -     size_t size;
> -     char **strings;
> Index: patches/patch-src_core_RS_cpp
> ===================================================================
> RCS file: /cvs/ports/cad/qcad/patches/patch-src_core_RS_cpp,v
> diff -u -p -r1.4 patch-src_core_RS_cpp
> --- patches/patch-src_core_RS_cpp	2 Jan 2023 12:40:09 -0000	1.4
> +++ patches/patch-src_core_RS_cpp	16 Nov 2025 19:01:45 -0000
> @@ -1,7 +1,7 @@
>  Index: src/core/RS.cpp
>  --- src/core/RS.cpp.orig
>  +++ src/core/RS.cpp
> -@@ -177,6 +177,9 @@ QStringList RS::getDirectoryList(const QString& subDir
> +@@ -179,6 +179,9 @@ QStringList RS::getDirectoryList(const QString& subDir
>       dirList.append(appDir + "/../Resources/" + subDirectory);
>       dirList.append(appDir + "/../../../" + subDirectory);
>       dirList.append(QDir::currentPath() + "/" + subDirectory);
> Index: patches/patch-src_core_RSettings_cpp
> ===================================================================
> RCS file: /cvs/ports/cad/qcad/patches/patch-src_core_RSettings_cpp,v
> diff -u -p -r1.4 patch-src_core_RSettings_cpp
> --- patches/patch-src_core_RSettings_cpp	29 Aug 2022 15:18:11 -0000	1.4
> +++ patches/patch-src_core_RSettings_cpp	16 Nov 2025 19:01:45 -0000
> @@ -1,7 +1,7 @@
>  Index: src/core/RSettings.cpp
>  --- src/core/RSettings.cpp.orig
>  +++ src/core/RSettings.cpp
> -@@ -364,9 +364,13 @@ QString RSettings::getApplicationPath() {
> +@@ -393,9 +393,13 @@ QString RSettings::getApplicationPath() {
>       }
>   #endif
>   
> Index: patches/patch-src_core_core_pro
> ===================================================================
> RCS file: /cvs/ports/cad/qcad/patches/patch-src_core_core_pro,v
> diff -u -p -r1.3 patch-src_core_core_pro
> --- patches/patch-src_core_core_pro	29 Aug 2022 15:18:11 -0000	1.3
> +++ patches/patch-src_core_core_pro	16 Nov 2025 19:01:45 -0000
> @@ -1,7 +1,18 @@
> +CONFIG -= plugin if shared_app.pri links to it.
> +
>  Index: src/core/core.pro
>  --- src/core/core.pro.orig
>  +++ src/core/core.pro
> -@@ -309,7 +309,7 @@ RC_FILE = core.rc
> +@@ -307,7 +307,7 @@ r_static_libs {
> +     CONFIG += staticlib
> + }
> + else {
> +-    CONFIG += plugin
> ++    #CONFIG += plugin
> + }
> + 
> + QT += concurrent
> +@@ -319,7 +319,7 @@ RC_FILE = core.rc
>   OTHER_FILES += core.dox math/math.dox
>   DEFINES += QCADCORE_LIBRARY
>   
> Index: patches/patch-src_entity_entity_pro
> ===================================================================
> RCS file: patches/patch-src_entity_entity_pro
> diff -N patches/patch-src_entity_entity_pro
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_entity_entity_pro	16 Nov 2025 19:01:45 -0000
> @@ -0,0 +1,14 @@
> +CONFIG -= plugin if shared_app.pri links to it.
> +
> +Index: src/entity/entity.pro
> +--- src/entity/entity.pro.orig
> ++++ src/entity/entity.pro
> +@@ -135,7 +135,7 @@ r_static_libs {
> +     CONFIG += staticlib
> + }
> + else {
> +-    CONFIG += plugin
> ++    #CONFIG += plugin
> + }
> + NAME = $${RLIBNAME}entity
> + TARGET = $${NAME}
> Index: patches/patch-src_grid_grid_pro
> ===================================================================
> RCS file: patches/patch-src_grid_grid_pro
> diff -N patches/patch-src_grid_grid_pro
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_grid_grid_pro	16 Nov 2025 19:01:45 -0000
> @@ -0,0 +1,14 @@
> +CONFIG -= plugin if shared_app.pri links to it.
> +
> +Index: src/grid/grid.pro
> +--- src/grid/grid.pro.orig
> ++++ src/grid/grid.pro
> +@@ -11,7 +11,7 @@ r_static_libs {
> +     CONFIG += staticlib
> + }
> + else {
> +-    CONFIG += plugin
> ++    #CONFIG += plugin
> + }
> + TARGET = $${RLIBNAME}grid
> + LIBS += -l$${RLIBNAME}core
> Index: patches/patch-src_gui_RRulerQt_cpp
> ===================================================================
> RCS file: patches/patch-src_gui_RRulerQt_cpp
> diff -N patches/patch-src_gui_RRulerQt_cpp
> --- patches/patch-src_gui_RRulerQt_cpp	29 Aug 2022 15:18:11 -0000	1.3
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,11 +0,0 @@
> -Index: src/gui/RRulerQt.cpp
> ---- src/gui/RRulerQt.cpp.orig
> -+++ src/gui/RRulerQt.cpp
> -@@ -26,6 +26,7 @@
> - 
> - #include <QApplication>
> - #include <QPainter>
> -+#include <QPainterPath>
> - 
> - /**
> -  * Constructor
> Index: patches/patch-src_gui_gui_pro
> ===================================================================
> RCS file: patches/patch-src_gui_gui_pro
> diff -N patches/patch-src_gui_gui_pro
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_gui_gui_pro	16 Nov 2025 19:01:45 -0000
> @@ -0,0 +1,14 @@
> +CONFIG -= plugin if shared_app.pri links to it.
> +
> +Index: src/gui/gui.pro
> +--- src/gui/gui.pro.orig
> ++++ src/gui/gui.pro
> +@@ -96,7 +96,7 @@ r_static_libs {
> +     CONFIG += staticlib
> + }
> + else {
> +-    CONFIG += plugin
> ++    #CONFIG += plugin
> + }
> + 
> + LIBS += -l$${RLIBNAME}core -l$${RLIBNAME}entity
> Index: patches/patch-src_operations_operations_pro
> ===================================================================
> RCS file: patches/patch-src_operations_operations_pro
> diff -N patches/patch-src_operations_operations_pro
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_operations_operations_pro	16 Nov 2025 19:01:45 -0000
> @@ -0,0 +1,14 @@
> +CONFIG -= plugin if shared_app.pri links to it.
> +
> +Index: src/operations/operations.pro
> +--- src/operations/operations.pro.orig
> ++++ src/operations/operations.pro
> +@@ -43,7 +43,7 @@ r_static_libs {
> +     CONFIG += staticlib
> + }
> + else {
> +-    CONFIG += plugin
> ++    #CONFIG += plugin
> + }
> + TARGET = $${RLIBNAME}operations
> + LIBS += \
> Index: patches/patch-src_run_main_cpp
> ===================================================================
> RCS file: patches/patch-src_run_main_cpp
> diff -N patches/patch-src_run_main_cpp
> --- patches/patch-src_run_main_cpp	14 Dec 2023 12:17:57 -0000	1.2
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,18 +0,0 @@
> -don't overwrite the plugins directory: remove the applicationDir and add the pluginPaths
> -
> -Index: src/run/main.cpp
> ---- src/run/main.cpp.orig
> -+++ src/run/main.cpp
> -@@ -326,7 +326,11 @@ int main(int argc, char *argv[]) {
> -         qWarning() << "No plugin paths found";
> -         return -1;
> -     }
> --    app->setLibraryPaths(pluginPaths);
> -+
> -+    app->removeLibraryPath(app->applicationDirPath());
> -+    foreach (const QString &path, pluginPaths)
> -+       app->addLibraryPath(path);
> -+
> - 
> -     // make sure basic entities are initialized before loading plugins:
> -     RDimStyleData::initDefaults();
> Index: patches/patch-src_scripting_ecmaapi_ecmaapi_pro
> ===================================================================
> RCS file: /cvs/ports/cad/qcad/patches/patch-src_scripting_ecmaapi_ecmaapi_pro,v
> diff -u -p -r1.2 patch-src_scripting_ecmaapi_ecmaapi_pro
> --- patches/patch-src_scripting_ecmaapi_ecmaapi_pro	11 Mar 2022 18:24:31 -0000	1.2
> +++ patches/patch-src_scripting_ecmaapi_ecmaapi_pro	16 Nov 2025 19:01:45 -0000
> @@ -1,11 +1,13 @@
> +CONFIG -= plugin if shared_app.pri links to it.
> +
>  Index: src/scripting/ecmaapi/ecmaapi.pro
>  --- src/scripting/ecmaapi/ecmaapi.pro.orig
>  +++ src/scripting/ecmaapi/ecmaapi.pro
> -@@ -4,7 +4,6 @@ CONFIG += plugin
> +@@ -1,6 +1,6 @@
> + include( ../../../shared.pri )
> + TEMPLATE = lib
> +-CONFIG += plugin
> ++#CONFIG += plugin
>   TARGET = $${RLIBNAME}ecmaapi
>   CONFIG -= warn_on
>   CONFIG += warn_off
> --CONFIG += precompile_header
> - PRECOMPILED_HEADER = stable.h
> - OTHER_FILES += ecmaapi.dox
> - DEFINES += QCADECMAAPI_LIBRARY
> Index: patches/patch-src_snap_snap_pro
> ===================================================================
> RCS file: patches/patch-src_snap_snap_pro
> diff -N patches/patch-src_snap_snap_pro
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_snap_snap_pro	16 Nov 2025 19:01:45 -0000
> @@ -0,0 +1,14 @@
> +CONFIG -= plugin if shared_app.pri links to it.
> +
> +Index: src/snap/snap.pro
> +--- src/snap/snap.pro.orig
> ++++ src/snap/snap.pro
> +@@ -42,7 +42,7 @@ r_static_libs {
> +     CONFIG += staticlib
> + }
> + else {
> +-    CONFIG += plugin
> ++    #CONFIG += plugin
> + }
> + TARGET = $${RLIBNAME}snap
> + LIBS += -l$${RLIBNAME}core -l$${RLIBNAME}grid -l$${RLIBNAME}entity
> Index: patches/patch-src_spatialindex_spatialindex_pro
> ===================================================================
> RCS file: patches/patch-src_spatialindex_spatialindex_pro
> diff -N patches/patch-src_spatialindex_spatialindex_pro
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_spatialindex_spatialindex_pro	16 Nov 2025 19:01:45 -0000
> @@ -0,0 +1,14 @@
> +CONFIG -= plugin if shared_app.pri links to it.
> +
> +Index: src/spatialindex/spatialindex.pro
> +--- src/spatialindex/spatialindex.pro.orig
> ++++ src/spatialindex/spatialindex.pro
> +@@ -11,7 +11,7 @@ r_static_libs {
> +     CONFIG += staticlib
> + }
> + else {
> +-    CONFIG += plugin
> ++    #CONFIG += plugin
> + }
> + TARGET = $${RLIBNAME}spatialindex
> + LIBS += -l$${RLIBNAME}core -lspatialindexnavel
> Index: patches/patch-src_stemmer_RStemmer_cpp
> ===================================================================
> RCS file: patches/patch-src_stemmer_RStemmer_cpp
> diff -N patches/patch-src_stemmer_RStemmer_cpp
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_stemmer_RStemmer_cpp	16 Nov 2025 19:01:45 -0000
> @@ -0,0 +1,15 @@
> +Must use textproc/libstemmer, because qcad links to the port if it is
> +installed.
> +
> +Index: src/stemmer/RStemmer.cpp
> +--- src/stemmer/RStemmer.cpp.orig
> ++++ src/stemmer/RStemmer.cpp
> +@@ -18,7 +18,7 @@
> +  */
> + #include <QDebug>
> + 
> +-#include "stemmer/include/libstemmer.h"
> ++#include <libstemmer.h>
> + 
> + #include "RStemmer.h"
> + 
> Index: patches/patch-src_stemmer_stemmer_pro
> ===================================================================
> RCS file: patches/patch-src_stemmer_stemmer_pro
> diff -N patches/patch-src_stemmer_stemmer_pro
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_stemmer_stemmer_pro	16 Nov 2025 19:01:45 -0000
> @@ -0,0 +1,22 @@
> +CONFIG -= plugin if shared_app.pri links to it.
> +
> +Must use textproc/libstemmer, because qcad links to the port if it is
> +installed.
> +
> +Index: src/stemmer/stemmer.pro
> +--- src/stemmer/stemmer.pro.orig
> ++++ src/stemmer/stemmer.pro
> +@@ -5,11 +5,11 @@ HEADERS = \
> +     RStemmer.h
> + 
> + TEMPLATE = lib
> +-CONFIG += plugin
> ++#CONFIG += plugin
> + TARGET = $${RLIBNAME}stemmer
> + LIBS += -lstemmer
> + OTHER_FILES += stemmer.dox
> + DEFINES += QCADSTEMMER_LIBRARY
> + RC_FILE = stemmer.rc
> + 
> +-POST_TARGETDEPS += $$PWD/../../$$ROUTDIR/$${RLIBPRE}stemmer$${RLIBPOST}
> ++#POST_TARGETDEPS += $$PWD/../../$$ROUTDIR/$${RLIBPRE}stemmer$${RLIBPOST}
> Index: pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/cad/qcad/pkg/PLIST,v
> diff -u -p -r1.14 PLIST
> --- pkg/PLIST	14 Dec 2023 12:17:57 -0000	1.14
> +++ pkg/PLIST	16 Nov 2025 19:01:46 -0000
> @@ -11,7 +11,6 @@
>  @lib lib/libqcadspatialindex.so.${LIBqcadspatialindex_VERSION}
>  @lib lib/libqcadstemmer.so.${LIBqcadstemmer_VERSION}
>  @lib lib/libspatialindexnavel.so.${LIBspatialindexnavel_VERSION}
> -@static-lib lib/libstemmer.a
>  @man man/man1/qcad.1
>  share/applications/qcad.desktop
>  share/examples/qcad/
> @@ -547,16 +546,16 @@ share/qcad/plugins/printsupport/
>  @so share/qcad/plugins/printsupport/libcupsprintersupport.so
>  share/qcad/plugins/printsupport/readme.txt
>  share/qcad/plugins/script/
> -@lib share/qcad/plugins/script/libqtscript_core.so.1.0
> -@lib share/qcad/plugins/script/libqtscript_gui.so.1.0
> -@lib share/qcad/plugins/script/libqtscript_network.so.1.0
> -@lib share/qcad/plugins/script/libqtscript_opengl.so.1.0
> -@lib share/qcad/plugins/script/libqtscript_printsupport.so.1.0
> -@lib share/qcad/plugins/script/libqtscript_sql.so.1.0
> -@lib share/qcad/plugins/script/libqtscript_uitools.so.1.0
> -@lib share/qcad/plugins/script/libqtscript_widgets.so.1.0
> -@lib share/qcad/plugins/script/libqtscript_xml.so.1.0
> -@lib share/qcad/plugins/script/libqtscript_xmlpatterns.so.1.0
> +@so share/qcad/plugins/script/libqtscript_core.so
> +@so share/qcad/plugins/script/libqtscript_gui.so
> +@so share/qcad/plugins/script/libqtscript_network.so
> +@so share/qcad/plugins/script/libqtscript_opengl.so
> +@so share/qcad/plugins/script/libqtscript_printsupport.so
> +@so share/qcad/plugins/script/libqtscript_sql.so
> +@so share/qcad/plugins/script/libqtscript_uitools.so
> +@so share/qcad/plugins/script/libqtscript_widgets.so
> +@so share/qcad/plugins/script/libqtscript_xml.so
> +@so share/qcad/plugins/script/libqtscript_xmlpatterns.so
>  share/qcad/plugins/sqldrivers/
>  @so share/qcad/plugins/sqldrivers/libqsqlite.so
>  share/qcad/plugins/sqldrivers/readme.txt
> @@ -1735,9 +1734,19 @@ share/qcad/scripts/Draw/Arc/ArcTPR/ArcTP
>  share/qcad/scripts/Draw/Arc/ArcTPR/ArcTPRInit.js
>  share/qcad/scripts/Draw/Arc/ArcTPR/Tests/
>  share/qcad/scripts/Draw/Arc/ArcTPR/Tests/ArcTPRTest00.js
> +share/qcad/scripts/Draw/Arc/ArcTPR/Tests/ArcTPRTest01.js
> +share/qcad/scripts/Draw/Arc/ArcTPR/Tests/ArcTPRTest02.js
> +share/qcad/scripts/Draw/Arc/ArcTPR/Tests/ArcTPRTest03.js
> +share/qcad/scripts/Draw/Arc/ArcTPR/Tests/ArcTPRTest04.js
>  share/qcad/scripts/Draw/Arc/ArcTPR/Tests/actual/
> +share/qcad/scripts/Draw/Arc/ArcTPR/Tests/data/
> +share/qcad/scripts/Draw/Arc/ArcTPR/Tests/data/four_solutions.dxf
>  share/qcad/scripts/Draw/Arc/ArcTPR/Tests/required/
>  share/qcad/scripts/Draw/Arc/ArcTPR/Tests/required/ArcTPRTest00_000.dxf
> +share/qcad/scripts/Draw/Arc/ArcTPR/Tests/required/ArcTPRTest01_000.dxf
> +share/qcad/scripts/Draw/Arc/ArcTPR/Tests/required/ArcTPRTest02_000.dxf
> +share/qcad/scripts/Draw/Arc/ArcTPR/Tests/required/ArcTPRTest03_000.dxf
> +share/qcad/scripts/Draw/Arc/ArcTPR/Tests/required/ArcTPRTest04_000.dxf
>  share/qcad/scripts/Draw/Arc/ArcTPR/doc/
>  share/qcad/scripts/Draw/Arc/ArcTPR/doc/ArcTPR.png
>  share/qcad/scripts/Draw/Arc/ArcTPR/doc/ArcTPR_bg.html
> @@ -1820,18 +1829,32 @@ share/qcad/scripts/Draw/Arc/ArcTangentia
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_nl.html
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_pl.html
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_bg.html
> +share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_cs.html
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_da.html
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_de.html
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_en.html
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_es.html
> +share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_et.html
> +share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_fi.html
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_fr.html
> +share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_hu.html
> +share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_id.html
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_it.html
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_ja.html
> +share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_lt.html
> +share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_lv.html
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_nl.html
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_pl.html
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_pt.html
> +share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_ro.html
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_ru.html
> +share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_sk.html
> +share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_sl.html
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_sv.html
> +share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_tr.html
> +share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_uk.html
> +share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_zh_CN.html
> +share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_proc_zh_TW.html
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_pt.html
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_ru.html
>  share/qcad/scripts/Draw/Arc/ArcTangential/doc/ArcTangential_sl.html
> @@ -2167,12 +2190,14 @@ share/qcad/scripts/Draw/Circle/Circle3T/
>  share/qcad/scripts/Draw/Circle/Circle3T/Tests/Circle3TTest01.js
>  share/qcad/scripts/Draw/Circle/Circle3T/Tests/Circle3TTest02.js
>  share/qcad/scripts/Draw/Circle/Circle3T/Tests/Circle3TTest03.js
> +share/qcad/scripts/Draw/Circle/Circle3T/Tests/Circle3TTest04.js
>  share/qcad/scripts/Draw/Circle/Circle3T/Tests/actual/
>  share/qcad/scripts/Draw/Circle/Circle3T/Tests/required/
>  share/qcad/scripts/Draw/Circle/Circle3T/Tests/required/Circle3TTest00_000.dxf
>  share/qcad/scripts/Draw/Circle/Circle3T/Tests/required/Circle3TTest01_000.dxf
>  share/qcad/scripts/Draw/Circle/Circle3T/Tests/required/Circle3TTest02_000.dxf
>  share/qcad/scripts/Draw/Circle/Circle3T/Tests/required/Circle3TTest03_000.dxf
> +share/qcad/scripts/Draw/Circle/Circle3T/Tests/required/Circle3TTest04_000.dxf
>  share/qcad/scripts/Draw/Circle/Circle3T/doc/
>  share/qcad/scripts/Draw/Circle/Circle3T/doc/Circle3T.png
>  share/qcad/scripts/Draw/Circle/Circle3T/doc/Circle3T_bg.html
> @@ -3351,59 +3376,6 @@ share/qcad/scripts/Draw/Ellipse/EllipseD
>  share/qcad/scripts/Draw/Ellipse/EllipseDD/doc/EllipseDD_ru.html
>  share/qcad/scripts/Draw/Ellipse/EllipseDD/doc/EllipseDD_sl.html
>  share/qcad/scripts/Draw/Ellipse/EllipseDD/doc/EllipseDD_sv.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/EllipseInscribedQuad-inverse.svg
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/EllipseInscribedQuad.js
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/EllipseInscribedQuad.svg
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/EllipseInscribedQuadInit.js
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/Tests/
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/Tests/EllipseInscribedQuadTest00.js
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/Tests/actual/
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/Tests/required/
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/Tests/required/EllipseInscribedQuadTest00_000.dxf
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad.png
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_bg.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_da.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_de.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_desc_bg.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_desc_da.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_desc_de.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_desc_en.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_desc_es.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_desc_fr.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_desc_it.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_desc_ja.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_desc_nl.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_desc_pl.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_desc_pt.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_desc_ru.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_desc_sl.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_desc_sv.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_en.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_es.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_fr.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_it.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_ja.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_nl.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_pl.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_proc_bg.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_proc_da.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_proc_de.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_proc_en.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_proc_es.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_proc_fr.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_proc_it.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_proc_ja.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_proc_nl.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_proc_pl.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_proc_pt.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_proc_ru.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_proc_sv.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_pt.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_ru.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_sl.html
> -share/qcad/scripts/Draw/Ellipse/EllipseInscribedQuad/doc/EllipseInscribedQuad_sv.html
>  share/qcad/scripts/Draw/Ellipse/EllipseOffset/
>  share/qcad/scripts/Draw/Ellipse/EllipseOffset/EllipseOffset-inverse.svg
>  share/qcad/scripts/Draw/Ellipse/EllipseOffset/EllipseOffset.js
> @@ -4607,10 +4579,14 @@ share/qcad/scripts/Draw/Polyline/DrawPol
>  share/qcad/scripts/Draw/Polyline/DrawPolyline/Tests/
>  share/qcad/scripts/Draw/Polyline/DrawPolyline/Tests/DrawPolylineTest00.js
>  share/qcad/scripts/Draw/Polyline/DrawPolyline/Tests/DrawPolylineTest01.js
> +share/qcad/scripts/Draw/Polyline/DrawPolyline/Tests/DrawPolylineTest02.js
> +share/qcad/scripts/Draw/Polyline/DrawPolyline/Tests/DrawPolylineTest03.js
>  share/qcad/scripts/Draw/Polyline/DrawPolyline/Tests/actual/
>  share/qcad/scripts/Draw/Polyline/DrawPolyline/Tests/required/
>  share/qcad/scripts/Draw/Polyline/DrawPolyline/Tests/required/DrawPolylineTest00_000.dxf
>  share/qcad/scripts/Draw/Polyline/DrawPolyline/Tests/required/DrawPolylineTest01_000.dxf
> +share/qcad/scripts/Draw/Polyline/DrawPolyline/Tests/required/DrawPolylineTest02_000.dxf
> +share/qcad/scripts/Draw/Polyline/DrawPolyline/Tests/required/DrawPolylineTest03_000.dxf
>  share/qcad/scripts/Draw/Polyline/DrawPolyline/Undo-inverse.svg
>  share/qcad/scripts/Draw/Polyline/DrawPolyline/Undo.svg
>  share/qcad/scripts/Draw/Polyline/DrawPolyline/doc/
> @@ -4915,10 +4891,42 @@ share/qcad/scripts/Draw/Shape/ShapeRecta
>  share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/
>  share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest00.js
>  share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest01.js
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest02.js
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest03.js
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest04.js
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest05.js
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest06.js
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest07.js
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest08.js
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest09.js
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest10.js
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest11.js
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest12.js
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest13.js
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest14.js
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest15.js
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest16.js
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/ShapeRectanglePPTest17.js
>  share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/actual/
>  share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/
>  share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest00_000.dxf
>  share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest01_000.dxf
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest02_000.dxf
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest03_000.dxf
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest04_000.dxf
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest05_000.dxf
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest06_000.dxf
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest07_000.dxf
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest08_000.dxf
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest09_000.dxf
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest10_000.dxf
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest11_000.dxf
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest12_000.dxf
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest13_000.dxf
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest14_000.dxf
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest15_000.dxf
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest16_000.dxf
> +share/qcad/scripts/Draw/Shape/ShapeRectanglePP/Tests/required/ShapeRectanglePPTest17_000.dxf
>  share/qcad/scripts/Draw/Shape/ShapeRectanglePP/doc/
>  share/qcad/scripts/Draw/Shape/ShapeRectanglePP/doc/ShapeRectanglePP.png
>  share/qcad/scripts/Draw/Shape/ShapeRectanglePP/doc/ShapeRectanglePP_bg.html
> @@ -7819,6 +7827,9 @@ share/qcad/scripts/Misc/Examples/ExMinim
>  share/qcad/scripts/Misc/Examples/ExMinimal2/ExMinimal2.ui
>  share/qcad/scripts/Misc/Examples/Examples.js
>  share/qcad/scripts/Misc/Examples/IOExamples/
> +share/qcad/scripts/Misc/Examples/IOExamples/ExCsvExport/
> +share/qcad/scripts/Misc/Examples/IOExamples/ExCsvExport/ExCsvExport.js
> +share/qcad/scripts/Misc/Examples/IOExamples/ExCsvExport/ExCsvExportInit.js
>  share/qcad/scripts/Misc/Examples/IOExamples/ExDumpPolyline/
>  share/qcad/scripts/Misc/Examples/IOExamples/ExDumpPolyline/ExDumpPolyline.js
>  share/qcad/scripts/Misc/Examples/IOExamples/ExDumpPolyline/points.txt
> @@ -8207,6 +8218,8 @@ share/qcad/scripts/Misc/MiscInformation/
>  share/qcad/scripts/Misc/MiscInformation/InfoCentroids/InfoCentroidsListener/
>  share/qcad/scripts/Misc/MiscInformation/InfoCentroids/InfoCentroidsListener/InfoCentroidsListener.js
>  share/qcad/scripts/Misc/MiscInformation/InfoCentroids/InfoCentroidsListener/InfoCentroidsListener.svg
> +share/qcad/scripts/Misc/MiscInformation/InfoCentroids/InfoCentroidsListener/InfoCentroidsListenerActive.svg
> +share/qcad/scripts/Misc/MiscInformation/InfoCentroids/InfoCentroidsListener/InfoCentroidsListenerInactive.svg
>  share/qcad/scripts/Misc/MiscInformation/InfoCentroids/InfoCentroidsListener/InfoCentroidsListenerInit.js
>  share/qcad/scripts/Misc/MiscInformation/InfoCentroids/InfoSumCentroidsWeighted/
>  share/qcad/scripts/Misc/MiscInformation/InfoCentroids/InfoSumCentroidsWeighted/InfoSumCentroidsWeighted-inverse.svg
> @@ -8236,9 +8249,12 @@ share/qcad/scripts/Misc/MiscSelect/
>  share/qcad/scripts/Misc/MiscSelect/MiscSelect.js
>  share/qcad/scripts/Misc/MiscSelect/SelectByColor/
>  share/qcad/scripts/Misc/MiscSelect/SelectByColor/SelectByColor.js
> +share/qcad/scripts/Misc/MiscSelect/SelectByColor/SelectByColor.svg
>  share/qcad/scripts/Misc/MiscSelect/SelectByColor/SelectByColorInit.js
>  share/qcad/scripts/Misc/MiscSelect/SelectByHandle/
> +share/qcad/scripts/Misc/MiscSelect/SelectByHandle/SelectByHandle-inverse.svg
>  share/qcad/scripts/Misc/MiscSelect/SelectByHandle/SelectByHandle.js
> +share/qcad/scripts/Misc/MiscSelect/SelectByHandle/SelectByHandle.svg
>  share/qcad/scripts/Misc/MiscSelect/SelectByHandle/SelectByHandleDialog.ui
>  share/qcad/scripts/Misc/MiscSelect/SelectByHandle/SelectByHandleInit.js
>  share/qcad/scripts/Misc/MiscSelect/dir/
> @@ -8260,6 +8276,7 @@ share/qcad/scripts/Misc/Tutorials/Comman
>  share/qcad/scripts/Misc/Tutorials/CommandLineTools/dir/
>  share/qcad/scripts/Misc/Tutorials/CreatingNewTool/
>  share/qcad/scripts/Misc/Tutorials/CreatingNewTool/CreatingNewTool.dox
> +share/qcad/scripts/Misc/Tutorials/CreatingNewTool/ExThreePoints.js
>  share/qcad/scripts/Misc/Tutorials/ImportantClasses.dox
>  share/qcad/scripts/Misc/Tutorials/LibraryBrowserScripts/
>  share/qcad/scripts/Misc/Tutorials/LibraryBrowserScripts/CubeCuttingOut.js
> @@ -8281,14 +8298,13 @@ share/qcad/scripts/Misc/Tutorials/Tutori
>  share/qcad/scripts/Misc/Tutorials/dir/
>  share/qcad/scripts/Misc/dir/
>  share/qcad/scripts/Misc/doc/
> -share/qcad/scripts/Misc/doc/Examples_de.html
> -share/qcad/scripts/Misc/doc/Examples_en.html
> -share/qcad/scripts/Misc/doc/Examples_ja.html
>  share/qcad/scripts/Misc/doc/Misc.png
>  share/qcad/scripts/Misc/doc/Misc_da.html
>  share/qcad/scripts/Misc/doc/Misc_de.html
>  share/qcad/scripts/Misc/doc/Misc_en.html
> +share/qcad/scripts/Misc/doc/Misc_es.html
>  share/qcad/scripts/Misc/doc/Misc_ja.html
> +share/qcad/scripts/Misc/doc/Misc_pl.html
>  share/qcad/scripts/Misc/doc/Misc_ru.html
>  share/qcad/scripts/Misc/doc/Misc_sl.html
>  share/qcad/scripts/Modify/
> @@ -9263,6 +9279,8 @@ share/qcad/scripts/Modify/OffsetThrough/
>  share/qcad/scripts/Modify/OffsetThrough/OffsetThroughInit.js
>  share/qcad/scripts/Modify/OffsetThrough/doc/
>  share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough.png
> +share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_bg.html
> +share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_da.html
>  share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_de.html
>  share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_desc_bg.html
>  share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_desc_da.html
> @@ -9283,6 +9301,8 @@ share/qcad/scripts/Modify/OffsetThrough/
>  share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_fr.html
>  share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_it.html
>  share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_ja.html
> +share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_nl.html
> +share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_pl.html
>  share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_proc_bg.html
>  share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_proc_da.html
>  share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_proc_de.html
> @@ -9297,7 +9317,9 @@ share/qcad/scripts/Modify/OffsetThrough/
>  share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_proc_ru.html
>  share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_proc_sv.html
>  share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_pt.html
> +share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_ru.html
>  share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_sl.html
> +share/qcad/scripts/Modify/OffsetThrough/doc/OffsetThrough_sv.html
>  share/qcad/scripts/Modify/Reverse/
>  share/qcad/scripts/Modify/Reverse/Reverse-inverse.svg
>  share/qcad/scripts/Modify/Reverse/Reverse.js
> @@ -9788,6 +9810,7 @@ share/qcad/scripts/Modify/Translate/doc/
>  share/qcad/scripts/Modify/Translate/doc/Translate_sl.html
>  share/qcad/scripts/Modify/Translate/doc/Translate_sv.html
>  share/qcad/scripts/Modify/TranslateRotate/
> +share/qcad/scripts/Modify/TranslateRotate/PreferencesPage.ui
>  share/qcad/scripts/Modify/TranslateRotate/Tests/
>  share/qcad/scripts/Modify/TranslateRotate/Tests/TranslateRotateTest00.js
>  share/qcad/scripts/Modify/TranslateRotate/Tests/TranslateRotateTest01.js
> @@ -9806,6 +9829,7 @@ share/qcad/scripts/Modify/TranslateRotat
>  share/qcad/scripts/Modify/TranslateRotate/TranslateRotateDialog.svg
>  share/qcad/scripts/Modify/TranslateRotate/TranslateRotateDialog.ui
>  share/qcad/scripts/Modify/TranslateRotate/TranslateRotateInit.js
> +share/qcad/scripts/Modify/TranslateRotate/TranslateRotateNoDialog.ui
>  share/qcad/scripts/Modify/TranslateRotate/doc/
>  share/qcad/scripts/Modify/TranslateRotate/doc/TranslateRotate.png
>  share/qcad/scripts/Modify/TranslateRotate/doc/TranslateRotateDialog.png
> @@ -11926,24 +11950,6 @@ share/qcad/scripts/View/LinetypeMode/doc
>  share/qcad/scripts/View/LinetypeMode/doc/LinetypeMode_ru.html
>  share/qcad/scripts/View/LinetypeMode/doc/LinetypeMode_sl.html
>  share/qcad/scripts/View/LinetypeMode/doc/LinetypeMode_sv.html
> -share/qcad/scripts/View/OptionsToolBarFocus/
> -share/qcad/scripts/View/OptionsToolBarFocus/OptionsToolBarFocus.js
> -share/qcad/scripts/View/OptionsToolBarFocus/OptionsToolBarFocusInit.js
> -share/qcad/scripts/View/OptionsToolBarFocus/doc/
> -share/qcad/scripts/View/OptionsToolBarFocus/doc/OptionsToolBarFocus_bg.html
> -share/qcad/scripts/View/OptionsToolBarFocus/doc/OptionsToolBarFocus_da.html
> -share/qcad/scripts/View/OptionsToolBarFocus/doc/OptionsToolBarFocus_de.html
> -share/qcad/scripts/View/OptionsToolBarFocus/doc/OptionsToolBarFocus_en.html
> -share/qcad/scripts/View/OptionsToolBarFocus/doc/OptionsToolBarFocus_es.html
> -share/qcad/scripts/View/OptionsToolBarFocus/doc/OptionsToolBarFocus_fr.html
> -share/qcad/scripts/View/OptionsToolBarFocus/doc/OptionsToolBarFocus_it.html
> -share/qcad/scripts/View/OptionsToolBarFocus/doc/OptionsToolBarFocus_ja.html
> -share/qcad/scripts/View/OptionsToolBarFocus/doc/OptionsToolBarFocus_nl.html
> -share/qcad/scripts/View/OptionsToolBarFocus/doc/OptionsToolBarFocus_pl.html
> -share/qcad/scripts/View/OptionsToolBarFocus/doc/OptionsToolBarFocus_pt.html
> -share/qcad/scripts/View/OptionsToolBarFocus/doc/OptionsToolBarFocus_ru.html
> -share/qcad/scripts/View/OptionsToolBarFocus/doc/OptionsToolBarFocus_sl.html
> -share/qcad/scripts/View/OptionsToolBarFocus/doc/OptionsToolBarFocus_sv.html
>  share/qcad/scripts/View/ShowToolDialog/
>  share/qcad/scripts/View/ShowToolDialog/ShowToolDialog.js
>  share/qcad/scripts/View/ToggleGrid/
> @@ -12480,6 +12486,7 @@ share/qcad/scripts/Widgets/LayerList/lay
>  share/qcad/scripts/Widgets/LayerList/layerstatus_11.svg
>  share/qcad/scripts/Widgets/MenuBar/
>  share/qcad/scripts/Widgets/MenuBar/MenuBar.js
> +share/qcad/scripts/Widgets/MenuBar/MenuBarInit.js
>  share/qcad/scripts/Widgets/MenuBar/PreferencesPage.ui
>  share/qcad/scripts/Widgets/MouseDisplay/
>  share/qcad/scripts/Widgets/MouseDisplay/Mouse-inverse.svg
> @@ -12712,6 +12719,7 @@ share/qcad/scripts/lib/sprintf2/sprintf2
>  share/qcad/scripts/library.js
>  share/qcad/scripts/map.js
>  share/qcad/scripts/mimetype.png
> +share/qcad/scripts/org.qcad.QCAD.png
>  share/qcad/scripts/qcad_icon.png
>  share/qcad/scripts/qcad_icon.svg
>  share/qcad/scripts/scripts.dox
> @@ -12887,13 +12895,17 @@ share/qcad/ts/assistant_de.qm
>  share/qcad/ts/assistant_en.qm
>  share/qcad/ts/assistant_es.qm
>  share/qcad/ts/assistant_fr.qm
> +share/qcad/ts/assistant_hr.qm
>  share/qcad/ts/assistant_hu.qm
>  share/qcad/ts/assistant_ja.qm
>  share/qcad/ts/assistant_ko.qm
> +share/qcad/ts/assistant_nl.qm
>  share/qcad/ts/assistant_pl.qm
> +share/qcad/ts/assistant_pt_BR.qm
>  share/qcad/ts/assistant_ru.qm
>  share/qcad/ts/assistant_sk.qm
>  share/qcad/ts/assistant_sl.qm
> +share/qcad/ts/assistant_tr.qm
>  share/qcad/ts/assistant_uk.qm
>  share/qcad/ts/assistant_zh_CN.qm
>  share/qcad/ts/assistant_zh_TW.qm
> @@ -12905,13 +12917,16 @@ share/qcad/ts/designer_de.qm
>  share/qcad/ts/designer_en.qm
>  share/qcad/ts/designer_es.qm
>  share/qcad/ts/designer_fr.qm
> +share/qcad/ts/designer_hr.qm
>  share/qcad/ts/designer_hu.qm
>  share/qcad/ts/designer_ja.qm
>  share/qcad/ts/designer_ko.qm
> +share/qcad/ts/designer_nl.qm
>  share/qcad/ts/designer_pl.qm
>  share/qcad/ts/designer_ru.qm
>  share/qcad/ts/designer_sk.qm
>  share/qcad/ts/designer_sl.qm
> +share/qcad/ts/designer_tr.qm
>  share/qcad/ts/designer_uk.qm
>  share/qcad/ts/designer_zh_CN.qm
>  share/qcad/ts/designer_zh_TW.qm
> @@ -12923,13 +12938,18 @@ share/qcad/ts/linguist_de.qm
>  share/qcad/ts/linguist_en.qm
>  share/qcad/ts/linguist_es.qm
>  share/qcad/ts/linguist_fr.qm
> +share/qcad/ts/linguist_hr.qm
>  share/qcad/ts/linguist_hu.qm
> +share/qcad/ts/linguist_it.qm
>  share/qcad/ts/linguist_ja.qm
>  share/qcad/ts/linguist_ko.qm
> +share/qcad/ts/linguist_nl.qm
>  share/qcad/ts/linguist_pl.qm
>  share/qcad/ts/linguist_ru.qm
>  share/qcad/ts/linguist_sk.qm
>  share/qcad/ts/linguist_sl.qm
> +share/qcad/ts/linguist_sv.qm
> +share/qcad/ts/linguist_tr.qm
>  share/qcad/ts/linguist_uk.qm
>  share/qcad/ts/linguist_zh_CN.qm
>  share/qcad/ts/linguist_zh_TW.qm
> @@ -13056,10 +13076,12 @@ share/qcad/ts/qt_es.qm
>  share/qcad/ts/qt_fa.qm
>  share/qcad/ts/qt_fi.qm
>  share/qcad/ts/qt_fr.qm
> +share/qcad/ts/qt_gd.qm
>  share/qcad/ts/qt_gl.qm
>  share/qcad/ts/qt_he.qm
>  share/qcad/ts/qt_help_ar.qm
>  share/qcad/ts/qt_help_bg.qm
> +share/qcad/ts/qt_help_ca.qm
>  share/qcad/ts/qt_help_cs.qm
>  share/qcad/ts/qt_help_da.qm
>  share/qcad/ts/qt_help_de.qm
> @@ -13067,28 +13089,40 @@ share/qcad/ts/qt_help_en.qm
>  share/qcad/ts/qt_help_es.qm
>  share/qcad/ts/qt_help_fr.qm
>  share/qcad/ts/qt_help_gl.qm
> +share/qcad/ts/qt_help_hr.qm
>  share/qcad/ts/qt_help_hu.qm
>  share/qcad/ts/qt_help_it.qm
>  share/qcad/ts/qt_help_ja.qm
>  share/qcad/ts/qt_help_ko.qm
> +share/qcad/ts/qt_help_nl.qm
> +share/qcad/ts/qt_help_nn.qm
>  share/qcad/ts/qt_help_pl.qm
> +share/qcad/ts/qt_help_pt_BR.qm
>  share/qcad/ts/qt_help_ru.qm
>  share/qcad/ts/qt_help_sk.qm
>  share/qcad/ts/qt_help_sl.qm
> +share/qcad/ts/qt_help_tr.qm
>  share/qcad/ts/qt_help_uk.qm
>  share/qcad/ts/qt_help_zh_CN.qm
>  share/qcad/ts/qt_help_zh_TW.qm
> +share/qcad/ts/qt_hr.qm
>  share/qcad/ts/qt_hu.qm
>  share/qcad/ts/qt_it.qm
>  share/qcad/ts/qt_ja.qm
>  share/qcad/ts/qt_ko.qm
>  share/qcad/ts/qt_lt.qm
> +share/qcad/ts/qt_lv.qm
> +share/qcad/ts/qt_nl.qm
> +share/qcad/ts/qt_nn.qm
>  share/qcad/ts/qt_pl.qm
>  share/qcad/ts/qt_pt.qm
> +share/qcad/ts/qt_pt_BR.qm
> +share/qcad/ts/qt_pt_PT.qm
>  share/qcad/ts/qt_ru.qm
>  share/qcad/ts/qt_sk.qm
>  share/qcad/ts/qt_sl.qm
>  share/qcad/ts/qt_sv.qm
> +share/qcad/ts/qt_tr.qm
>  share/qcad/ts/qt_uk.qm
>  share/qcad/ts/qt_zh_CN.qm
>  share/qcad/ts/qt_zh_TW.qm
> @@ -13100,22 +13134,28 @@ share/qcad/ts/qtbase_da.qm
>  share/qcad/ts/qtbase_de.qm
>  share/qcad/ts/qtbase_en.qm
>  share/qcad/ts/qtbase_es.qm
> +share/qcad/ts/qtbase_fa.qm
>  share/qcad/ts/qtbase_fi.qm
>  share/qcad/ts/qtbase_fr.qm
>  share/qcad/ts/qtbase_gd.qm
>  share/qcad/ts/qtbase_he.qm
> +share/qcad/ts/qtbase_hr.qm
>  share/qcad/ts/qtbase_hu.qm
>  share/qcad/ts/qtbase_it.qm
>  share/qcad/ts/qtbase_ja.qm
>  share/qcad/ts/qtbase_ko.qm
>  share/qcad/ts/qtbase_lv.qm
>  share/qcad/ts/qtbase_nl.qm
> +share/qcad/ts/qtbase_nn.qm
>  share/qcad/ts/qtbase_pl.qm
>  share/qcad/ts/qtbase_pt.qm
> +share/qcad/ts/qtbase_pt_BR.qm
>  share/qcad/ts/qtbase_ru.qm
>  share/qcad/ts/qtbase_sk.qm
> +share/qcad/ts/qtbase_tr.qm
>  share/qcad/ts/qtbase_uk.qm
>  share/qcad/ts/qtbase_zh_CN.qm
> +share/qcad/ts/qtbase_zh_TW.qm
>  share/qcad/ts/qtconfig_hu.qm
>  share/qcad/ts/qtconfig_ja.qm
>  share/qcad/ts/qtconfig_ko.qm
>