Hello community,

here is the log from the commit of package libqt5-qtbase for openSUSE:Factory 
checked in at 2019-08-19 20:46:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libqt5-qtbase (Old)
 and      /work/SRC/openSUSE:Factory/.libqt5-qtbase.new.22127 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libqt5-qtbase"

Mon Aug 19 20:46:32 2019 rev:99 rq:722618 version:5.13.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/libqt5-qtbase/libqt5-qtbase.changes      
2019-07-13 13:59:49.314908555 +0200
+++ /work/SRC/openSUSE:Factory/.libqt5-qtbase.new.22127/libqt5-qtbase.changes   
2019-08-19 20:46:34.413108952 +0200
@@ -1,0 +2,9 @@
+Sun Aug 11 20:57:31 UTC 2019 - Stefan BrĂ¼ns <stefan.bru...@rwth-aachen.de>
+
+- Fix qmake pkconfig generation, broken .pc files become apparent
+  when switching from pkg-config to pkgconf. (QTBUG-75901)
+  * 0001-Fix-meta-file-replacements-if-matches-are-empty.patch
+  * 0002-Do-not-write-Libs-into-.pc-files-if-TEMPLATE-is-not-.patch
+  * 0003-Make-sure-.pc-.prl-and-.la-files-are-created-for-hea.patch
+
+-------------------------------------------------------------------

New:
----
  0001-Fix-meta-file-replacements-if-matches-are-empty.patch
  0002-Do-not-write-Libs-into-.pc-files-if-TEMPLATE-is-not-.patch
  0003-Make-sure-.pc-.prl-and-.la-files-are-created-for-hea.patch

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

Other differences:
------------------
++++++ libqt5-qtbase.spec ++++++
--- /var/tmp/diff_new_pack.BR90Ai/_old  2019-08-19 20:46:37.733108240 +0200
+++ /var/tmp/diff_new_pack.BR90Ai/_new  2019-08-19 20:46:37.749108237 +0200
@@ -89,6 +89,12 @@
 Patch2000:      0001-Fix-notification-of-QDockWidget-when-it-gets-undocke.patch
 # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384
 Patch2001:      0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch
+# PATCH-FIX-UPSTREAM 
https://code.qt.io/cgit/qt/qtbase.git/patch/?id=60136b1a846ca5aedeb588edaa178927abb002ec
 -- https://bugreports.qt.io/browse/QTBUG-75901
+PATCH3000:      0001-Fix-meta-file-replacements-if-matches-are-empty.patch
+# PATCH-FIX-UPSTREAM 
https://code.qt.io/cgit/qt/qtbase.git/patch/?id=c64f8ca232cc1f2131282d9eb6279ef9b565be88
 -- https://bugreports.qt.io/browse/QTBUG-75901
+PATCH3001:      0002-Do-not-write-Libs-into-.pc-files-if-TEMPLATE-is-not-.patch
+# PATCH-FIX-UPSTREAM 
https://code.qt.io/cgit/qt/qtbase.git/patch/?id=4da47d0fba04e5d50bf6b63e73bc0de986560f42
 -- https://bugreports.qt.io/browse/QTBUG-75901
+PATCH3002:      0003-Make-sure-.pc-.prl-and-.la-files-are-created-for-hea.patch
 BuildRequires:  alsa-devel
 BuildRequires:  cups-devel
 BuildRequires:  double-conversion-devel

++++++ 0001-Fix-meta-file-replacements-if-matches-are-empty.patch ++++++
>From 60136b1a846ca5aedeb588edaa178927abb002ec Mon Sep 17 00:00:00 2001
From: Joerg Bornemann <joerg.bornem...@qt.io>
Date: Mon, 3 Jun 2019 14:39:07 +0200
Subject: Fix meta file replacements if matches are empty

QMake code like
    rplc.match =
    QMAKE_PRL_INSTALL_REPLACE += rplc
led to the generation of invalid sed calls in the Makefile.

It is already actively checked for empty matches, but if *all* matches
are empty, the sed call looks like
    sed foo > bar
which is invalid.

Task-number: QTBUG-75901
Change-Id: I173ed99826414dcf06253a15a247f7d067ee3977
Reviewed-by: Thiago Macieira <thiago.macie...@intel.com>
---
 qmake/generators/makefile.cpp | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index bfef31f17e..6edaf1f70e 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -3437,19 +3437,23 @@ QString MakefileGenerator::installMetaFile(const ProKey 
&replace_rule, const QSt
         || project->isActiveConfig("no_sed_meta_install")) {
         ret += "-$(INSTALL_FILE) " + escapeFilePath(src) + ' ' + 
escapeFilePath(dst);
     } else {
-        ret += "-$(SED)";
+        QString sedargs;
         const ProStringList &replace_rules = project->values(replace_rule);
         for (int r = 0; r < replace_rules.size(); ++r) {
             const ProString match = project->first(ProKey(replace_rules.at(r) 
+ ".match")),
                         replace = project->first(ProKey(replace_rules.at(r) + 
".replace"));
             if (!match.isEmpty() /*&& match != replace*/) {
-                ret += " -e " + shellQuote("s," + match + "," + replace + 
",g");
+                sedargs += " -e " + shellQuote("s," + match + "," + replace + 
",g");
                 if (isWindowsShell() && 
project->first(ProKey(replace_rules.at(r) + ".CONFIG")).contains("path"))
-                    ret += " -e " + shellQuote("s," + 
windowsifyPath(match.toQString())
+                    sedargs += " -e " + shellQuote("s," + 
windowsifyPath(match.toQString())
                                                + "," + 
windowsifyPath(replace.toQString()) + ",gi");
             }
         }
-        ret += ' ' + escapeFilePath(src) + " > " + escapeFilePath(dst);
+        if (sedargs.isEmpty()) {
+            ret += "-$(INSTALL_FILE) " + escapeFilePath(src) + ' ' + 
escapeFilePath(dst);
+        } else {
+            ret += "-$(SED) " + sedargs + ' ' + escapeFilePath(src) + " > " + 
escapeFilePath(dst);
+        }
     }
     return ret;
 }
-- 
cgit v1.2.1

++++++ 0002-Do-not-write-Libs-into-.pc-files-if-TEMPLATE-is-not-.patch ++++++
>From c64f8ca232cc1f2131282d9eb6279ef9b565be88 Mon Sep 17 00:00:00 2001
From: Joerg Bornemann <joerg.bornem...@qt.io>
Date: Mon, 3 Jun 2019 14:52:49 +0200
Subject: Do not write 'Libs:' into .pc files if TEMPLATE is not 'lib'

Especially for header modules we don't want a 'Libs:' entry in their
.pc file.

Task-number: QTBUG-75901
Change-Id: I39037d3132e39dd360532e1425f794ebec28e0bd
Reviewed-by: Thiago Macieira <thiago.macie...@intel.com>
---
 qmake/generators/makefile.cpp | 74 ++++++++++++++++++++++---------------------
 1 file changed, 38 insertions(+), 36 deletions(-)

diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index 6edaf1f70e..4a99a60892 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -3359,42 +3359,44 @@ MakefileGenerator::writePkgConfigFile()
     if (!version.isEmpty())
         t << "Version: " << version << endl;
 
-    // libs
-    t << "Libs: ";
-    QString pkgConfiglibName;
-    if (target_mode == TARG_MAC_MODE && project->isActiveConfig("lib_bundle")) 
{
-        if (libDir != QLatin1String("/Library/Frameworks"))
-            t << "-F${libdir} ";
-        ProString bundle;
-        if (!project->isEmpty("QMAKE_FRAMEWORK_BUNDLE_NAME"))
-            bundle = project->first("QMAKE_FRAMEWORK_BUNDLE_NAME");
-        else
-            bundle = project->first("TARGET");
-        int suffix = bundle.lastIndexOf(".framework");
-        if (suffix != -1)
-            bundle = bundle.left(suffix);
-        t << "-framework ";
-        pkgConfiglibName = bundle.toQString();
-    } else {
-        if (!project->values("QMAKE_DEFAULT_LIBDIRS").contains(libDir))
-            t << "-L${libdir} ";
-        pkgConfiglibName = "-l" + project->first("QMAKE_ORIG_TARGET");
-        if (project->isActiveConfig("shared"))
-            pkgConfiglibName += 
project->first("TARGET_VERSION_EXT").toQString();
-    }
-    t << shellQuote(pkgConfiglibName) << " \n";
-
-    if (project->isActiveConfig("staticlib")) {
-        ProStringList libs;
-        libs << "LIBS";  // FIXME: this should not be conditional on staticlib
-        libs << "LIBS_PRIVATE";
-        libs << "QMAKE_LIBS";  // FIXME: this should not be conditional on 
staticlib
-        libs << "QMAKE_LIBS_PRIVATE";
-        libs << "QMAKE_LFLAGS_THREAD"; //not sure about this one, but what 
about things like -pthread?
-        t << "Libs.private:";
-        for (ProStringList::ConstIterator it = libs.cbegin(); it != 
libs.cend(); ++it)
-            t << ' ' << fixLibFlags((*it).toKey()).join(' ');
-        t << endl;
+    if (project->first("TEMPLATE") == "lib") {
+        // libs
+        t << "Libs: ";
+        QString pkgConfiglibName;
+        if (target_mode == TARG_MAC_MODE && 
project->isActiveConfig("lib_bundle")) {
+            if (libDir != QLatin1String("/Library/Frameworks"))
+                t << "-F${libdir} ";
+            ProString bundle;
+            if (!project->isEmpty("QMAKE_FRAMEWORK_BUNDLE_NAME"))
+                bundle = project->first("QMAKE_FRAMEWORK_BUNDLE_NAME");
+            else
+                bundle = project->first("TARGET");
+            int suffix = bundle.lastIndexOf(".framework");
+            if (suffix != -1)
+                bundle = bundle.left(suffix);
+            t << "-framework ";
+            pkgConfiglibName = bundle.toQString();
+        } else {
+            if (!project->values("QMAKE_DEFAULT_LIBDIRS").contains(libDir))
+                t << "-L${libdir} ";
+            pkgConfiglibName = "-l" + project->first("QMAKE_ORIG_TARGET");
+            if (project->isActiveConfig("shared"))
+                pkgConfiglibName += 
project->first("TARGET_VERSION_EXT").toQString();
+        }
+        t << shellQuote(pkgConfiglibName) << " \n";
+
+        if (project->isActiveConfig("staticlib")) {
+            ProStringList libs;
+            libs << "LIBS";  // FIXME: this should not be conditional on 
staticlib
+            libs << "LIBS_PRIVATE";
+            libs << "QMAKE_LIBS";  // FIXME: this should not be conditional on 
staticlib
+            libs << "QMAKE_LIBS_PRIVATE";
+            libs << "QMAKE_LFLAGS_THREAD"; //not sure about this one, but what 
about things like -pthread?
+            t << "Libs.private:";
+            for (ProStringList::ConstIterator it = libs.cbegin(); it != 
libs.cend(); ++it)
+                t << ' ' << fixLibFlags((*it).toKey()).join(' ');
+            t << endl;
+        }
     }
 
     // flags
-- 
cgit v1.2.1

++++++ 0003-Make-sure-.pc-.prl-and-.la-files-are-created-for-hea.patch ++++++
>From 4da47d0fba04e5d50bf6b63e73bc0de986560f42 Mon Sep 17 00:00:00 2001
From: Joerg Bornemann <joerg.bornem...@qt.io>
Date: Mon, 3 Jun 2019 14:59:16 +0200
Subject: Make sure .pc, .prl and .la files are created for header_only modules

Those modules are TEMPLATE=aux, so they weren't triggering the file creation
here.

To make this work properly we have to:
  - check for TEMPLATE aux in the right places
  - add a dummy target to INSTALLS to actually trigger the creation
  - initialize PRL_TARGET for aux templates

Fixes: QTBUG-75901
Started-by: Thiago Macieira <thiago.macie...@intel.com>
Change-Id: Idce141629dd34287808bfffd159f92ac28c6c8b1
Reviewed-by: Thiago Macieira <thiago.macie...@intel.com>
---
 mkspecs/features/qt_module.prf      |  5 +++++
 qmake/generators/makefile.cpp       |  3 ++-
 qmake/generators/unix/unixmake.cpp  |  2 +-
 qmake/generators/unix/unixmake2.cpp | 10 +++++++---
 4 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
index 51b5bde67a..18060cd490 100644
--- a/mkspecs/features/qt_module.prf
+++ b/mkspecs/features/qt_module.prf
@@ -82,6 +82,11 @@ header_module {
     CONFIG      += force_qt  # Needed for the headers_clean tests.
     !lib_bundle: \
         CONFIG  += qt_no_install_library
+
+    # Allow creation of .prl, .la and .pc files.
+    target.path = $$[QT_INSTALL_LIBS]
+    target.CONFIG += dummy_install
+    INSTALLS    += target
 } else {
     TEMPLATE     = lib
 }
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index 4a99a60892..caaf6e71b6 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -1120,7 +1120,8 @@ MakefileGenerator::writePrlFile()
        && project->values("QMAKE_FAILED_REQUIREMENTS").isEmpty()
        && project->isActiveConfig("create_prl")
        && (project->first("TEMPLATE") == "lib"
-       || project->first("TEMPLATE") == "vclib")
+       || project->first("TEMPLATE") == "vclib"
+       || project->first("TEMPLATE") == "aux")
        && (!project->isActiveConfig("plugin") || 
project->isActiveConfig("static"))) { //write prl file
         QString local_prl = prlFileName();
         QString prl = fileFixify(local_prl);
diff --git a/qmake/generators/unix/unixmake.cpp 
b/qmake/generators/unix/unixmake.cpp
index 7f42fbe09e..b809bb6c19 100644
--- a/qmake/generators/unix/unixmake.cpp
+++ b/qmake/generators/unix/unixmake.cpp
@@ -726,7 +726,7 @@ UnixMakefileGenerator::defaultInstall(const QString &t)
             }
         }
     }
-    if(project->first("TEMPLATE") == "lib") {
+    if (isAux || project->first("TEMPLATE") == "lib") {
         QStringList types;
         types << "prl" << "libtool" << "pkgconfig";
         for(int i = 0; i < types.size(); ++i) {
diff --git a/qmake/generators/unix/unixmake2.cpp 
b/qmake/generators/unix/unixmake2.cpp
index 24215ae7b0..d9bcccf2e2 100644
--- a/qmake/generators/unix/unixmake2.cpp
+++ b/qmake/generators/unix/unixmake2.cpp
@@ -48,12 +48,15 @@ void
 UnixMakefileGenerator::writePrlFile(QTextStream &t)
 {
     MakefileGenerator::writePrlFile(t);
+    const ProString tmplt = project->first("TEMPLATE");
+    if (tmplt != "lib" && tmplt != "aux")
+        return;
     // libtool support
-    if(project->isActiveConfig("create_libtool") && project->first("TEMPLATE") 
== "lib") { //write .la
+    if (project->isActiveConfig("create_libtool")) {
         writeLibtoolFile();
     }
     // pkg-config support
-    if(project->isActiveConfig("create_pc") && project->first("TEMPLATE") == 
"lib")
+    if (project->isActiveConfig("create_pc"))
         writePkgConfigFile();
 }
 
@@ -1199,7 +1202,8 @@ void UnixMakefileGenerator::init2()
         
project->values("QMAKE_FRAMEWORK_VERSION").append(project->first("VER_MAJ"));
 
     if (project->first("TEMPLATE") == "aux") {
-        // nothing
+        project->values("PRL_TARGET") =
+            
project->values("TARGET").first().prepend(project->first("QMAKE_PREFIX_STATICLIB"));
     } else if (!project->values("QMAKE_APP_FLAG").isEmpty()) {
         if(!project->isEmpty("QMAKE_BUNDLE")) {
             ProString bundle_loc = project->first("QMAKE_BUNDLE_LOCATION");
-- 
cgit v1.2.1


Reply via email to