From 51a74be34402129b110a10c60ccf1caa11d2d5d258fdb375eccb043313e7c747 Mon Sep 17 00:00:00 2001 From: Luigi Baldoni Date: Fri, 28 Apr 2023 17:39:54 +0000 Subject: [PATCH] Accepting request 1083565 from home:alois:branches:devel:libraries:c_c++ - Fixes boo#1210931 - Add _multibuild to support Qt6 - Add qwt-6.2.0-qt6-pkgconfig.patch and qwt-6.2.0-qt6-libsuffix.patch (courtesy of Fedora) and qwt6-rpmlintrc - Man pages are now installed in the flavored doc dir as per upstream default - Rollback previous changes. - Moved *.so.? & *.so.?.? to the devel subpackage. - Added BSD-3-Clause for examples subpackage (6.2.0 changes). - Obsolete previous library version - Update to 6.2.0 (boo#1187996) * MathML text renderer removed * Class Includes added * BSD License for examples * Spline interpolation * New plot items - Check the installed CHANGES-6.2 file for the complete list of changes. - Drop qwt-6.1.3-pkgconfig.patch. No longer needed - Rebase qwt-6.1.4-mkspecs.patch - Update to version 6.1.6 * QwtPlotLayout::activate: avoid compiler issues with Qt 5.15 * QwtPointPolar: missing copy constructor added - Update URL - Update to 6.1.5: * Avoid using some of the deprecated Qt APIs * Missing includes of QPainterPath ( Qt 5.15 ) added * QwtPlotSpectroCurve: missing public inheritance * QwtPlotTradingCurve: missing public inheritance * QwtLinearColorMap: handling of alpha values in color stops fixed * QwtPlotRasterItem: Fixed missing color table initialization for QImage::Format_Indexed8 * QwtScaleWidget: missing QEvent::LayoutRequest added * QwtSetSample: bound rectangle fixed for empty sets - Fix build with recent libqt5-qttools packages. - Fixed conflict with Qwt 5. - Fix requires for -devel package - Build against Qt5 by default - Dropped qwt-qt5.patch - Update to version 6.1.4 * All widgets ( including plot canvas ) + missing initialization of the background color hint, when drawing a styled focus rectangle + devicePixelRatio handling adjusted, QT_SCALE_FACTOR supported * Maintenance + deprecated QString::null replaced by QString() + making clang-tidy/clazy and friends happier + compiler warnings with newer Qt versions fixed * PyQt-Qwt + specific defines added * QwtPointMapper + being multithreaded when possible * QwtPlotRenderer + using QPdfWriter instead of QPrinter, when possible * Build system + auto-disable building the designer plugin, when the corresponding Qt installation was not build with designer support * Bug fixes + font resolving when using widget fonts for rendering to a different paint device. + QwtPlotDirectPainter::CopyBackingStore: bad offset ( subtracting the canvas frame ), when flushing the updated backing store fixed + QwtAbstractSlider::stepAlignment fixed, when the value is exactly the upperBound, but no tick position + Missing right/bottom pixel added for QwtColumnSymbol::NoFrame + QwtWeedingCurveFitter::fitCurve fixed when being called with no points + missing updates added for QwtLegend::setMaxColumns, QwtScaleWidget::setLayoutFlag + QwtPlotCurve::drawSteps: polygon clipping fixed by adding an extra pixel to the clip rectangle + QwtPlotItem::ScaleInterest enabled for all constructors of QwtPlotSeriesItem + QwtPlotMarker::boundingRect fixed for HLine/VLine + QwtPlotIntervalCurve/QwtPlotTradingCurve::boundingRect fixed - Refreshed qwt-6.1.3-mkspecs.patch as qwt-6.1.4-mkspecs.patch - Fixed manpages conflict with qwt5 - Remove _tmp manpages and rename the existing one to -qt5 pattern to avoid conflict with the qt4 package - Dropped pre_checkin.sh - Remove _multibuild prior to Factory submission - Build qwt6-qt5 as separate package * add qwt6-qt5.spec * add qwt6-qt5.changes * add qwt-qt5.patch (thanks to awissu and other contributors of the KDE:Qt5 package) - Refreshed qwt-rpath.patch as qwt-6.1.3-rpath.patch - Create and install pc files for pkg-config: * add qwt-6.1.3-pkgconfig.patch - Use mkspecs directory * add qwt-6.1.3-mkspecs.patch - Use sover macro - Build the examples modules - Renamed the libqwt6 package as libqwt-qt%%sover - Use license macro on openSUSE >= 42.2 - Add man page - Added pre_checkin.sh to keep .changes files in sync - Spec cleanup - Update to version 6.1.3 * QwtPlotMagnifier, QwtPlotZoomer: handling of non linear transformations ( f.e logarithmic ) * Date/Time scales fixed QwtDate::ceil(), QwtDate::weekNumber(), QwtDate::utcOffset() QwtDateScaleEngine fixed when aligning to months * QwtPlotLayout: layout bug for legends witdh visisble scrollbars fixed * Plot items hiding QwtPlotLegendItem without entries QwtPlotShapeItem render code fixed * QwtPlotGLCanvas slightly improved, nevertheless better use Qwt 6.2 when being interested in OpenGL * Other QwtGraphic boundingRect updates fixed QwtSyntheticPointData::x() fixed QwtLogScaleEngine::divideScale ignoring stepSize parameter for ranges below one "decade" QwtPlotAbstractBarChart::getCanvasMarginHint fixed - Fixed source URL - Update to Qwt 6.1.2 * fixes at QwtPlot, color maps, controls and scales. - Removed Mandriva support. - Renamed qwt-6.1.0-rpath.patch to qwt-rpath.patch because upstream doesn't want merge it. Updated. - qwt6-designer is now conflicting with qwt-designer. - Update to Qwt 6.1.0 * New plot items * Scales beyond linear and logarithmic transformations * Datetime scales * Redesign of the dial and meter widgets * Basic support for an OpenGL plot canvas * A new system for plot legends * Off-screen paint device for vector graphics * Changes and improvements to several classes - Added qwt-6.1.0-rpath.patch to prevent https://sourceforge.net/p/qwt/bugs/191 - Qmake debug info stripping was disabled. - Update to Qwt 6.0.2 * qwtfunctions.pri added * QwtPlotDict::detachItems fixed * QwtWeedingCurveFitter::fitCurve performance improvements * QwtDynGridLayout fixed for non widget items * QwtInterval: avoid annoying compiler warning * Autoscaling of curves without points fixed * QwtPlotDirectPainter::drawSeries bad translation removed * QwtPlotIntervalCurve: drawing of symbols fixed * QwtPlotlayout: minor layout bufs fixed * Usage of QwtPlotRasterItem::pixelHint fixed * QwtPlotRenderer: several minor fixes * QwtRasterData: CONREC algorithm fixed * QwtThermo: layout code fixed * QwtThermo: memory leak fixed * QwtMmlDocument: compiler issues * Logarithmic autoscaler fixed for intervals close below a decade - Fix the SLES build (%make_install is not expanded on SLES) - license update: SUSE-QWT-1.0 Added to spreadsheet linked at license.opensuse.org. Package warrants its own license - Initial release OBS-URL: https://build.opensuse.org/request/show/1083565 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/qwt6?expand=0&rev=18 --- qwt-6.2.0-qt6-libsuffix.patch | 44 +++++++++++++++++++++++++++++++++++ qwt-6.2.0-qt6-pkgconfig.patch | 43 ++++++---------------------------- qwt6.changes | 11 ++++----- qwt6.spec | 32 ++++++++++--------------- 4 files changed, 68 insertions(+), 62 deletions(-) create mode 100644 qwt-6.2.0-qt6-libsuffix.patch diff --git a/qwt-6.2.0-qt6-libsuffix.patch b/qwt-6.2.0-qt6-libsuffix.patch new file mode 100644 index 0000000..44c0945 --- /dev/null +++ b/qwt-6.2.0-qt6-libsuffix.patch @@ -0,0 +1,44 @@ +diff -rupN --no-dereference qwt-6.2.0/qwtfunctions.pri qwt-6.2.0-new/qwtfunctions.pri +--- qwt-6.2.0/qwtfunctions.pri 2021-07-18 13:19:33.644367625 +0200 ++++ qwt-6.2.0-new/qwtfunctions.pri 2022-11-29 15:38:14.943070118 +0100 +@@ -12,7 +12,12 @@ + defineReplace(qwtLibraryTarget) { + + unset(LIBRARY_NAME) ++ ++ greaterThan(QT_MAJOR_VERSION, 4) { ++ LIBRARY_NAME = $${1}-qt$${QT_MAJOR_VERSION} ++ } else { + LIBRARY_NAME = $$1 ++ } + + mac:contains(QWT_CONFIG, QwtFramework) { + +@@ -36,7 +41,11 @@ defineReplace(qwtLibraryTarget) { + defineTest(qwtAddLibrary) { + + LIB_PATH = $$1 ++ greaterThan(QT_MAJOR_VERSION, 4) { ++ LIB_NAME = $${2}-qt$${QT_MAJOR_VERSION} ++ } else { + LIB_NAME = $$2 ++ } + + mac:contains(QWT_CONFIG, QwtFramework) { + +diff -rupN qwt-6.2.0/src/src.pro qwt-6.2.0-new/src/src.pro +--- qwt-6.2.0/src/src.pro 2022-11-29 15:38:15.365070601 +0100 ++++ qwt-6.2.0-new/src/src.pro 2022-11-29 15:45:42.295600411 +0100 +@@ -31,7 +31,11 @@ contains(QWT_CONFIG, QwtDll) { + + # we increase the SONAME for every minor number + +- QWT_SONAME=libqwt.so.$${VER_MAJ}.$${VER_MIN} ++ greaterThan(QT_MAJOR_VERSION, 4) { ++ QWT_SONAME=libqwt-qt$${QT_MAJOR_VERSION}.so.$${VER_MAJ}.$${VER_MIN} ++ } else { ++ QWT_SONAME=libqwt.so.$${VER_MAJ}.$${VER_MIN} ++ } + QMAKE_LFLAGS *= $${QMAKE_LFLAGS_SONAME}$${QWT_SONAME} + QMAKE_LFLAGS_SONAME= + } diff --git a/qwt-6.2.0-qt6-pkgconfig.patch b/qwt-6.2.0-qt6-pkgconfig.patch index 119a053..0d943ff 100644 --- a/qwt-6.2.0-qt6-pkgconfig.patch +++ b/qwt-6.2.0-qt6-pkgconfig.patch @@ -1,41 +1,12 @@ -Index: qwt-6.2.0/src/src.pro -=================================================================== ---- qwt-6.2.0.orig/src/src.pro -+++ qwt-6.2.0/src/src.pro -@@ -82,14 +82,31 @@ contains(QWT_CONFIG, QwtPkgConfig) { +diff -rupN --no-dereference qwt-6.2.0/src/src.pro qwt-6.2.0-new/src/src.pro +--- qwt-6.2.0/src/src.pro 2021-07-18 13:19:33.628367286 +0200 ++++ qwt-6.2.0-new/src/src.pro 2022-11-29 15:38:15.226070441 +0100 +@@ -82,7 +82,7 @@ contains(QWT_CONFIG, QwtPkgConfig) { greaterThan(QT_MAJOR_VERSION, 4) { QMAKE_PKGCONFIG_FILE = Qt$${QT_MAJOR_VERSION}$${QMAKE_PKGCONFIG_NAME} - QMAKE_PKGCONFIG_REQUIRES = Qt5Widgets Qt5Concurrent Qt5PrintSupport ++ QMAKE_PKGCONFIG_REQUIRES = Qt$${QT_MAJOR_VERSION}Widgets Qt$${QT_MAJOR_VERSION}Concurrent Qt$${QT_MAJOR_VERSION}PrintSupport -- contains(QWT_CONFIG, QwtSvg) { -- QMAKE_PKGCONFIG_REQUIRES += Qt5Svg -+ isEqual(QT_MAJOR_VERSION, 5) { -+ -+ QMAKE_PKGCONFIG_REQUIRES = Qt5Widgets Qt5Concurrent Qt5PrintSupport -+ -+ contains(QWT_CONFIG, QwtSvg) { -+ QMAKE_PKGCONFIG_REQUIRES += Qt5Svg -+ } -+ -+ contains(QWT_CONFIG, QwtOpenGL) { -+ QMAKE_PKGCONFIG_REQUIRES += Qt5OpenGL -+ } - } - -- contains(QWT_CONFIG, QwtOpenGL) { -- QMAKE_PKGCONFIG_REQUIRES += Qt5OpenGL -+ isEqual(QT_MAJOR_VERSION, 6) { -+ -+ QMAKE_PKGCONFIG_REQUIRES = Qt6Widgets Qt6Concurrent Qt6PrintSupport -+ -+ contains(QWT_CONFIG, QwtSvg) { -+ QMAKE_PKGCONFIG_REQUIRES += Qt6Svg -+ } -+ -+ contains(QWT_CONFIG, QwtOpenGL) { -+ QMAKE_PKGCONFIG_REQUIRES += Qt6OpenGL -+ } - } - - QMAKE_DISTCLEAN += $${DESTDIR}/$${QMAKE_PKGCONFIG_DESTDIR}/$${QMAKE_PKGCONFIG_FILE}.pc + contains(QWT_CONFIG, QwtSvg) { + QMAKE_PKGCONFIG_REQUIRES += Qt5Svg diff --git a/qwt6.changes b/qwt6.changes index d8a44e2..762f8b5 100644 --- a/qwt6.changes +++ b/qwt6.changes @@ -2,13 +2,12 @@ Fri Apr 28 11:07:33 UTC 2023 - Luigi Baldoni - Fixes boo#1210931 -- Add qwt6-rpmlintrc - -------------------------------------------------------------------- -Thu Aug 25 13:56:16 UTC 2022 - Luigi Baldoni - - Add _multibuild to support Qt6 -- qwt-6.2.0-qt6-pkgconfig.patch +- Add qwt-6.2.0-qt6-pkgconfig.patch and + qwt-6.2.0-qt6-libsuffix.patch (courtesy of Fedora) + and qwt6-rpmlintrc +- Man pages are now installed in the flavored doc dir as per + upstream default ------------------------------------------------------------------- Tue Jul 27 08:07:52 UTC 2021 - Dmitriy Perlow diff --git a/qwt6.spec b/qwt6.spec index ffe2eda..017dee0 100644 --- a/qwt6.spec +++ b/qwt6.spec @@ -36,7 +36,7 @@ ExclusiveArch: do_not_build Name: qwt6%{?pkg_suffix} Version: 6.2.0 Release: 0 -Summary: Qt5 Widgets for Technical Applications +Summary: %{qt_descr} Widgets for Technical Applications License: SUSE-QWT-1.0 Group: Development/Libraries/C and C++ URL: https://qwt.sourceforge.io @@ -49,6 +49,9 @@ Patch0: qwt-6.1.3-rpath.patch Patch2: qwt-6.1.4-mkspecs.patch # PATCH-FIX-OPENSUSE qwt-6.2.0-qt6-pkgconfig.patch -- require correct libraries in Qt6 pkgconfig Patch3: qwt-6.2.0-qt6-pkgconfig.patch +# +# PATCH-FIX-OPENSUSE qwt-6.2.0-qt6-libsuffix.patch -- change SONAMEs to avoid conflicts +Patch4: qwt-6.2.0-qt6-libsuffix.patch BuildRequires: fdupes BuildRequires: freetype2-devel BuildRequires: gcc-c++ @@ -116,7 +119,7 @@ Provides: qwt-qt5-devel = %{version} %description devel This package contains the header files of Qwt and its Qt designer plugin -in order to create Qt applications using the Qwt(Qt5) widgets. +in order to create Qt applications using the Qwt(%{qt_descr}) widgets. %package examples Summary: Example programs using Qwt(%{qt_descr}) @@ -147,7 +150,7 @@ Requires: %{name}-devel = %{version} BuildArch: noarch %description devel-doc -This package contains the development documentation of the Qwt(Qt5) widgets +This package contains the development documentation of the Qwt(%{qt_descr}) widgets as is it created by doxygen. %prep @@ -176,10 +179,10 @@ pushd build popd # nothing references this %if 0%{?qt5} -rm -f "%{buildroot}/%{_libqt5_libdir}/libqwt.so.6" +rm -f "%{buildroot}/%{_libqt5_libdir}/libqwt-%{qwt6_flavor}.so.6" %endif %if 0%{?qt6} -rm -f "%{buildroot}/%{_qt6_libdir}/libqwt.so.6" +rm -f "%{buildroot}/%{_qt6_libdir}/libqwt-%{qwt6_flavor}.so.6" %endif # Qwt base examples @@ -196,16 +199,6 @@ cp -r examples %{buildroot}%{_qt6_docdir}/qwt6/examples cp -r build/examples/bin %{buildroot}%{_qt6_examplesdir}/qwt6 %endif -mkdir -p %{buildroot}%{_mandir} -%if 0%{?qt5} -mv %{buildroot}%{_libqt5_docdir}/qwt6/man/man3 \ - %{buildroot}%{_mandir}/ -%endif -%if 0%{?qt6} -mv %{buildroot}%{_qt6_docdir}/qwt6/man/man3 \ - %{buildroot}%{_mandir}/ -%endif - %fdupes %{buildroot}%{_prefix} %post -n libqwt%{mver}-%{qwt6_flavor}-%{sover} -p /sbin/ldconfig @@ -214,10 +207,10 @@ mv %{buildroot}%{_qt6_docdir}/qwt6/man/man3 \ %files -n libqwt%{mver}-%{qwt6_flavor}-%{sover} %license COPYING %if 0%{?qt5} -%{_libqt5_libdir}/libqwt.so.6.2* +%{_libqt5_libdir}/libqwt-%{qwt6_flavor}.so.6.2* %endif %if 0%{?qt6} -%{_qt6_libdir}/libqwt.so.6.2* +%{_qt6_libdir}/libqwt-%{qwt6_flavor}.so.6.2* %endif %files designer @@ -233,20 +226,19 @@ mv %{buildroot}%{_qt6_docdir}/qwt6/man/man3 \ %files devel %doc README %if 0%{?qt5} -%{_libqt5_libdir}/libqwt.so +%{_libqt5_libdir}/libqwt-%{qwt6_flavor}.so %{_libqt5_libdir}/pkgconfig/Qt5Qwt6.pc %{_libqt5_archdatadir}/mkspecs/features/ %dir %{_libqt5_includedir}/qwt6 %{_libqt5_includedir}/qwt6/* %endif %if 0%{?qt6} -%{_qt6_libdir}/libqwt.so +%{_qt6_libdir}/libqwt-%{qwt6_flavor}.so %{_qt6_libdir}/pkgconfig/%{qt_descr}Qwt6.pc %{_qt6_archdatadir}/mkspecs/features/ %dir %{_qt6_includedir}/qwt6 %{_qt6_includedir}/qwt6/* %endif -%{_mandir}/man?/*.3%{ext_info} %files examples %if 0%{?qt5}