Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package librecad for openSUSE:Factory 
checked in at 2022-01-06 15:51:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/librecad (Old)
 and      /work/SRC/openSUSE:Factory/.librecad.new.1896 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "librecad"

Thu Jan  6 15:51:24 2022 rev:27 rq:944222 version:2.2.0~rc3

Changes:
--------
--- /work/SRC/openSUSE:Factory/librecad/librecad.changes        2022-01-03 
10:50:33.583606646 +0100
+++ /work/SRC/openSUSE:Factory/.librecad.new.1896/librecad.changes      
2022-01-06 15:52:07.520998997 +0100
@@ -1,0 +2,10 @@
+Thu Jan  6 11:44:32 UTC 2022 - Jiri Slaby <jsl...@suse.cz>
+
+- replace the revert by an upstream fix
+  * add 0001-fixed-1488-getDirectoryList-failed-on-Linux-when-lib.patch
+  * remove
+    0001-Revert-AppImage-build-on-GitHub-Actions-with-go-appi.patch
+    0002-Revert-RS_System-getDirectoryList-add-plugins-folder.patch
+    0003-Revert-fix-RS_System-getDirectoryList-use-relative-p.patch
+
+-------------------------------------------------------------------

Old:
----
  0001-Revert-AppImage-build-on-GitHub-Actions-with-go-appi.patch
  0002-Revert-RS_System-getDirectoryList-add-plugins-folder.patch
  0003-Revert-fix-RS_System-getDirectoryList-use-relative-p.patch

New:
----
  0001-fixed-1488-getDirectoryList-failed-on-Linux-when-lib.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ librecad.spec ++++++
--- /var/tmp/diff_new_pack.PBaZUU/_old  2022-01-06 15:52:08.064999297 +0100
+++ /var/tmp/diff_new_pack.PBaZUU/_new  2022-01-06 15:52:08.068999298 +0100
@@ -35,9 +35,7 @@
 Source4:        http://wiki.librecad.org/images/9/9d/Electrical1-LCAD.zip
 Source10:       ttf2lff.1
 Source20:       %name-rpmlintrc
-Patch0:         0001-Revert-AppImage-build-on-GitHub-Actions-with-go-appi.patch
-Patch1:         0002-Revert-RS_System-getDirectoryList-add-plugins-folder.patch
-Patch2:         0003-Revert-fix-RS_System-getDirectoryList-use-relative-p.patch
+Patch0:         0001-fixed-1488-getDirectoryList-failed-on-Linux-when-lib.patch
 Patch4:         librecad-no-date.diff
 Patch5:         librecad-use-system-libdxfrw.patch
 Patch6:         librecad-install.diff

++++++ 0001-fixed-1488-getDirectoryList-failed-on-Linux-when-lib.patch ++++++
From: Armin Stebich <h...@mail.lordofbikes.de>
Date: Thu, 6 Jan 2022 11:36:44 +0100
Subject: fixed #1488, getDirectoryList() failed on Linux when librecad is in
 $PATH
Git-repo: git://github.com/LibreCAD/LibreCAD.git
Git-commit: 8c3b652a8813588d67ef6bef17ea83ccc3b20f89
Patch-mainline: yes
References: paths fix

Signed-off-by: Jiri Slaby <jsl...@suse.cz>
---
 librecad/src/lib/engine/rs_system.cpp                 |   27 ++++---
 librecad/src/lib/engine/rs_system.h                   |   15 +---
 librecad/src/main/console_dxf2pdf/console_dxf2pdf.cpp |   61 ++++++++----------
 librecad/src/main/main.cpp                            |   21 ++----
 4 files changed, 57 insertions(+), 67 deletions(-)

--- a/librecad/src/lib/engine/rs_system.cpp
+++ b/librecad/src/lib/engine/rs_system.cpp
@@ -47,20 +47,20 @@ RS_System* RS_System::uniqueInstance = N
  * @param appVersion Application version (e.g. "1.2.3")
  * @param appDirName Application directory name used for
  *     subdirectories in /usr, /etc ~/.
- * @param appDir Absolute application directory (e.g. /opt/qcad)
- *                 defaults to current directory.
  */
-void RS_System::init(const QString& appName, const QString& appVersion,
-                     const QString& appDirName, const QString& appDir) {
+void RS_System::init(const QString& appName,
+                     const QString& appVersion,
+                     const QString& appDirName) {
     this->appName = appName;
     this->appVersion = appVersion;
     this->appDirName = appDirName;
-    if (appDir == "") {
-        this->appDir = QDir::currentPath();
-    }
-    else {
-        this->appDir = appDir;
-    }
+    this->appDir = QCoreApplication::applicationDirPath();
+
+    // when appDir is not HOME or CURRENT dir, search appDir too in 
getDirectoryList()
+    externalAppDir = (!appDir.isEmpty()
+                   && "/" != appDir
+                   && getHomeDir() != appDir
+                   && getCurrentDir() != appDir);
 
     RS_DEBUG->print("RS_System::init: System %s initialized.", 
appName.toLatin1().data());
     RS_DEBUG->print("RS_System::init: App dir: %s", appDir.toLatin1().data());
@@ -563,14 +563,15 @@ QStringList RS_System::getDirectoryList(
     dirList.append( getHomeDir() + "/." + appDirName + "/" + subDirectory);
 
     //local (application) directory has priority over other dirs:
-    if (!appDir.isEmpty() && appDir!="/" && appDir!=getHomeDir()) {
-        if (appDir != getCurrentDir() && subDirectory != QString( "plugins")) 
{// 17 Aug, 2011, Dongxu Li, do not look for plugins in the current folder, we 
should install plugins to system or ~/.LibreCAD/plugins/
+    if (!subDirectory.compare( "plugins")) {
+        // 17 Aug, 2011, Dongxu Li, do not look for plugins in the current 
folder,
+        // we should install plugins to system or ~/.librecad/plugins/
+        if (externalAppDir) {
             dirList.append( appDir + "/" + subDirectory);
         }
     }
 
 #ifdef Q_OS_UNIX
-    RS_DEBUG->print( RS_Debug::D_ERROR, "RS_System::getDirectoryList: %s", 
appDir.toStdString().c_str());
     // for AppImage use relative paths from executable
     // from packet manager the executable is in /usr/bin
     // in AppImage the executable is APPDIR/usr/bin
--- a/librecad/src/lib/engine/rs_system.h
+++ b/librecad/src/lib/engine/rs_system.h
@@ -63,8 +63,9 @@ public:
         return uniqueInstance;
     }
 
-    void init(const QString& appName, const QString& appVersion,
-              const QString& appDirName, const QString& appDir="");
+    void init(const QString& appName,
+              const QString& appVersion,
+              const QString& appDirName);
     void initLanguageList();
     void initAllLanguagesList();
 
@@ -86,13 +87,6 @@ public:
     }
 
     /**
-     * @return Application directory.
-     */
-    QString getAppDir() {
-        return appDir;
-    }
-
-    /**
      * @return Application Data directory.
      */
     QString getAppDataDir();
@@ -200,7 +194,8 @@ protected:
     QString appDir;
 
     QStringList languageList;   //< List of available translations
-    bool initialized;
+    bool initialized {false};
+    bool externalAppDir {false};
     QList<QSharedPointer<RS_Locale> > allKnownLocales;
 };
 
--- a/librecad/src/main/console_dxf2pdf/console_dxf2pdf.cpp
+++ b/librecad/src/main/console_dxf2pdf/console_dxf2pdf.cpp
@@ -3,6 +3,7 @@
 ** This file was created for the LibreCAD project, a 2D CAD program.
 **
 ** Copyright (C) 2018 Alexander Pravdin <ale...@mail.ru>
+** Copyright (C) 2022 A. Stebich (libre...@mail.lordofbikes.de)
 **
 ** This file may be distributed and/or modified under the terms of the
 ** GNU General Public License version 2 as published by the Free Software
@@ -45,8 +46,6 @@ static void parseMarginsArg(QString, Pdf
 
 int console_dxf2pdf(int argc, char* argv[])
 {
-    //QT_REQUIRE_VERSION(argc, argv, "5.2.1");
-
     RS_DEBUG->setLevel(RS_Debug::D_NOTHING);
 
     QApplication app(argc, argv);
@@ -55,78 +54,78 @@ int console_dxf2pdf(int argc, char* argv
     QCoreApplication::setApplicationVersion(XSTR(LC_VERSION));
 
     QFileInfo prgInfo(QFile::decodeName(argv[0]));
-    QString prgDir(prgInfo.absolutePath());
     RS_SETTINGS->init(app.organizationName(), app.applicationName());
-    RS_SYSTEM->init(app.applicationName(), app.applicationVersion(),
-        XSTR(QC_APPDIR), prgDir);
+    RS_SYSTEM->init( app.applicationName(), app.applicationVersion(), 
XSTR(QC_APPDIR));
 
     QCommandLineParser parser;
 
-    QString appDesc;
-    QString librecad;
+    QStringList appDesc;
+    QString librecad( prgInfo.filePath());
     if (prgInfo.baseName() != "dxf2pdf") {
-        librecad = prgInfo.filePath();
-        appDesc = "\ndxf2pdf usage: " + prgInfo.filePath()
-            + " dxf2pdf [options] <dxf_files>\n";
+        librecad += " dxf2pdf"; // executable is not dxf2pdf, thus argv[1] 
must be 'dxf2pdf'
+        appDesc << "";
+        appDesc << "dxf2pdf " + QObject::tr( "usage: ") + librecad + 
QObject::tr( " [options] <dxf_files>");
     }
-    appDesc += "\nPrint a bunch of DXF files to PDF file(s).";
-    appDesc += "\n\n";
-    appDesc += "Examples:\n\n";
-    appDesc += "  " + librecad + " dxf2pdf *.dxf";
-    appDesc += "    -- print all dxf files to pdf files with the same 
names.\n";
-    appDesc += "\n";
-    appDesc += "  " + librecad + " dxf2pdf -o some.pdf *.dxf";
-    appDesc += "    -- print all dxf files to 'some.pdf' file.";
-    parser.setApplicationDescription(appDesc);
+    appDesc << "";
+    appDesc << "Print a bunch of DXF files to PDF file(s).";
+    appDesc << "";
+    appDesc << "Examples:";
+    appDesc << "";
+    appDesc << "  " + librecad + QObject::tr( " *.dxf");
+    appDesc << "    " + QObject::tr( "-- print all dxf files to pdf files with 
the same names.");
+    appDesc << "";
+    appDesc << "  " + librecad + QObject::tr( " -o some.pdf *.dxf");
+    appDesc << "    " + QObject::tr( "-- print all dxf files to 'some.pdf' 
file.");
+    parser.setApplicationDescription( appDesc.join( "\n"));
 
     parser.addHelpOption();
     parser.addVersionOption();
 
     QCommandLineOption fitOpt(QStringList() << "a" << "fit",
-        "Auto fit and center drawing to page.");
+        QObject::tr( "Auto fit and center drawing to page."));
     parser.addOption(fitOpt);
 
     QCommandLineOption centerOpt(QStringList() << "c" << "center",
-        "Auto center drawing on page.");
+        QObject::tr( "Auto center drawing on page."));
     parser.addOption(centerOpt);
 
     QCommandLineOption grayOpt(QStringList() << "k" << "grayscale",
-        "Print grayscale.");
+        QObject::tr( "Print grayscale."));
     parser.addOption(grayOpt);
 
     QCommandLineOption monoOpt(QStringList() << "m" << "monochrome",
-        "Print monochrome (black/white).");
+        QObject::tr( "Print monochrome (black/white)."));
     parser.addOption(monoOpt);
 
     QCommandLineOption pageSizeOpt(QStringList() << "p" << "paper",
-        "Paper size (Width x Height) in mm.", "WxH");
+        QObject::tr( "Paper size (Width x Height) in mm.", "WxH"));
     parser.addOption(pageSizeOpt);
 
     QCommandLineOption resOpt(QStringList() << "r" << "resolution",
-        "Output resolution (DPI).", "integer");
+        QObject::tr( "Output resolution (DPI).", "integer"));
     parser.addOption(resOpt);
 
     QCommandLineOption scaleOpt(QStringList() << "s" << "scale",
-        "Output scale. E.g.: 0.01 (for 1:100 scale).", "double");
+        QObject::tr( "Output scale. E.g.: 0.01 (for 1:100 scale)."), "double");
     parser.addOption(scaleOpt);
 
     QCommandLineOption marginsOpt(QStringList() << "f" << "margins",
-        "Paper margins in mm (integer or float).", "L,T,R,B");
+        QObject::tr( "Paper margins in mm (integer or float)."), "L,T,R,B");
     parser.addOption(marginsOpt);
 
     QCommandLineOption pagesNumOpt(QStringList() << "z" << "pages",
-        "Print on multiple pages (Horiz. x Vert.).", "HxV");
+        QObject::tr( "Print on multiple pages (Horiz. x Vert.)."), "HxV");
     parser.addOption(pagesNumOpt);
 
     QCommandLineOption outFileOpt(QStringList() << "o" << "outfile",
-        "Output PDF file.", "file");
+        QObject::tr( "Output PDF file.", "file"));
     parser.addOption(outFileOpt);
 
     QCommandLineOption outDirOpt(QStringList() << "t" << "directory",
-        "Target output directory.", "path");
+        QObject::tr( "Target output directory."), "path");
     parser.addOption(outDirOpt);
 
-    parser.addPositionalArgument("<dxf_files>", "Input DXF file(s)");
+    parser.addPositionalArgument(QObject::tr( "<dxf_files>"), QObject::tr( 
"Input DXF file(s)"));
 
     parser.process(app);
 
--- a/librecad/src/main/main.cpp
+++ b/librecad/src/main/main.cpp
@@ -55,16 +55,13 @@ int main(int argc, char** argv)
 {
     QT_REQUIRE_VERSION(argc, argv, "5.2.1");
 
-    // Check first two arguments in order to decide if we want to run librecad
-    // as console dxf2pdf tool. On Linux we can create a link to librecad
-    // executable and  name it dxf2pdf. So, we can run either:
-    //
-    //     librecad dxf2pdf [options] ...
-    //
-    // or just:
-    //
-    //     dxf2pdf [options] ...
-    //
+    /* Check first two arguments in order to decide if we want to run librecad
+     * as console dxf2pdf tool. On Linux we can create a link to librecad
+     * executable and  name it dxf2pdf. So, we can run either:
+     *     librecad dxf2pdf [options] ...
+     * or just:
+     *     dxf2pdf [options] ...
+     */
     for (int i = 0; i < qMin(argc, 2); i++) {
         QString arg(argv[i]);
         if (i == 0) {
@@ -206,10 +203,8 @@ int main(int argc, char** argv)
     }
     RS_DEBUG->print("param 0: %s", argv[0]);
 
-    QFileInfo prgInfo( QFile::decodeName(argv[0]) );
-    QString prgDir(prgInfo.absolutePath());
     RS_SETTINGS->init(app.organizationName(), app.applicationName());
-    RS_SYSTEM->init(app.applicationName(), app.applicationVersion(), 
XSTR(QC_APPDIR), prgDir);
+    RS_SYSTEM->init(app.applicationName(), app.applicationVersion(), 
XSTR(QC_APPDIR));
 
     // parse command line arguments that might not need a launched program:
     QStringList fileList = handleArgs(argc, argv, argClean);

Reply via email to