From ce98eb666162b7a530301601220a358f8763c569 Mon Sep 17 00:00:00 2001 From: Schrijvers Luc Date: Sat, 9 Aug 2025 09:03:45 +0200 Subject: [PATCH] labplot, revbump, drop requirement for libxcb (#12682) --- .../labplot/labplot-2.12.0.recipe | 8 +- .../labplot/patches/labplot-2.12.0.patchset | 363 +++++++++++++++++- 2 files changed, 365 insertions(+), 6 deletions(-) diff --git a/sci-visualization/labplot/labplot-2.12.0.recipe b/sci-visualization/labplot/labplot-2.12.0.recipe index 82f8e3814..2909de561 100644 --- a/sci-visualization/labplot/labplot-2.12.0.recipe +++ b/sci-visualization/labplot/labplot-2.12.0.recipe @@ -12,7 +12,7 @@ Feature highlights: HOMEPAGE="https://invent.kde.org/education/labplot" COPYRIGHT="2010-2025 KDE Organisation" LICENSE="GNU GPL v2" -REVISION="1" +REVISION="2" SOURCE_URI="https://download.kde.org/stable/labplot/labplot-$portVersion.tar.xz" CHECKSUM_SHA256="25f1751261ec2d11312f0179049ea1f16db33b3a89800dc572d68ad8d267afe7" SOURCE_DIR="labplot-$portVersion" @@ -45,7 +45,6 @@ REQUIRES=" lib:libpoppler$secondaryArchSuffix lib:libpoppler_qt6$secondaryArchSuffix lib:libspectre$secondaryArchSuffix - lib:libxcb$secondaryArchSuffix lib:libz$secondaryArchSuffix lib:libzstd$secondaryArchSuffix # KF6 @@ -107,11 +106,10 @@ BUILD_REQUIRES=" devel:libmatio$secondaryArchSuffix devel:libnetcdf$secondaryArchSuffix devel:liborigin$secondaryArchSuffix - devel:libpoppler$secondaryArchSuffix >= 144 - devel:libpoppler_qt6$secondaryArchSuffix >= 3.9.0 + devel:libpoppler$secondaryArchSuffix >= 148 + devel:libpoppler_qt6$secondaryArchSuffix >= 3.10 devel:libspectre$secondaryArchSuffix devel:libssp_nonshared$secondaryArchSuffix - devel:libxcb$secondaryArchSuffix devel:libz$secondaryArchSuffix devel:libzstd$secondaryArchSuffix # KF6 diff --git a/sci-visualization/labplot/patches/labplot-2.12.0.patchset b/sci-visualization/labplot/patches/labplot-2.12.0.patchset index 7e67e1467..4ba8b4133 100644 --- a/sci-visualization/labplot/patches/labplot-2.12.0.patchset +++ b/sci-visualization/labplot/patches/labplot-2.12.0.patchset @@ -1,4 +1,4 @@ -From 4589008cc71aa2d086d0ec9b2c44bc19816f4be7 Mon Sep 17 00:00:00 2001 +From 6dd3c55a8f548fdf765eb58f1068ceed491afd36 Mon Sep 17 00:00:00 2001 From: Luc Schrijvers Date: Sat, 26 Apr 2025 19:12:21 +0200 Subject: Don't default to xcb qt plugin on Haiku @@ -20,3 +20,364 @@ index 23bab67..50cf6dd 100644 -- 2.48.1 + +From 762fc82832ef9581f8793f29d8848f9ba56cff10 Mon Sep 17 00:00:00 2001 +From: Luc Schrijvers +Date: Tue, 5 Aug 2025 15:46:28 +0200 +Subject: Haiku fixes to disable libxcb + + +diff --git a/src/3rdparty/Qt-Advanced-Docking-System/src/CMakeLists.txt b/src/3rdparty/Qt-Advanced-Docking-System/src/CMakeLists.txt +index cc84e23..0257e56 100644 +--- a/src/3rdparty/Qt-Advanced-Docking-System/src/CMakeLists.txt ++++ b/src/3rdparty/Qt-Advanced-Docking-System/src/CMakeLists.txt +@@ -66,7 +66,7 @@ set(ads_HEADERS + ResizeHandle.h + ) + add_compile_options("$<$:/utf-8>") +-if (UNIX AND NOT APPLE) ++if (UNIX AND NOT APPLE AND NOT HAIKU) + set(ads_SRCS linux/FloatingWidgetTitleBar.cpp ${ads_SRCS}) + set(ads_HEADERS linux/FloatingWidgetTitleBar.h ${ads_HEADERS}) + endif() +@@ -89,7 +89,7 @@ endif() + target_link_libraries(${library_name} PUBLIC Qt${QT_VERSION_MAJOR}::Core + Qt${QT_VERSION_MAJOR}::Gui + Qt${QT_VERSION_MAJOR}::Widgets) +-if (UNIX AND NOT APPLE) ++if (UNIX AND NOT APPLE AND NOT HAIKU) + if (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") + find_package(X11 REQUIRED) + target_link_libraries(${library_name} PUBLIC X11::xcb) +diff --git a/src/3rdparty/Qt-Advanced-Docking-System/src/DockFocusController.cpp b/src/3rdparty/Qt-Advanced-Docking-System/src/DockFocusController.cpp +index 27acc4a..b7a0539 100644 +--- a/src/3rdparty/Qt-Advanced-Docking-System/src/DockFocusController.cpp ++++ b/src/3rdparty/Qt-Advanced-Docking-System/src/DockFocusController.cpp +@@ -27,7 +27,7 @@ + #include "DockManager.h" + #include "DockAreaTitleBar.h" + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + #include "linux/FloatingWidgetTitleBar.h" + #endif + +@@ -44,7 +44,7 @@ struct DockFocusControllerPrivate + QPointer FocusedDockWidget = nullptr; + QPointer FocusedArea = nullptr; + QPointer OldFocusedDockWidget = nullptr; +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + QPointer FloatingWidget = nullptr; + #endif + CDockManager* DockManager; +@@ -85,7 +85,7 @@ static void updateDockAreaFocusStyle(CDockAreaWidget* DockArea, bool Focused) + + + //=========================================================================== +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + static void updateFloatingWidgetFocusStyle(CFloatingDockContainer* FloatingWidget, bool Focused) + { + if (FloatingWidget->hasNativeTitleBar()) +@@ -170,7 +170,7 @@ void DockFocusControllerPrivate::updateDockWidgetFocus(CDockWidget* DockWidget) + } + + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + // This code is required for styling the floating widget titlebar for linux + // depending on the current focus state + if (FloatingWidget != NewFloatingWidget) +@@ -289,7 +289,7 @@ void CDockFocusController::onApplicationFocusChanged(QWidget* focusedOld, QWidge + DockWidget = internal::findParent(focusedNow); + } + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + if (!DockWidget) + { + return; +diff --git a/src/3rdparty/Qt-Advanced-Docking-System/src/DockManager.cpp b/src/3rdparty/Qt-Advanced-Docking-System/src/DockManager.cpp +index bf568d7..26f7283 100644 +--- a/src/3rdparty/Qt-Advanced-Docking-System/src/DockManager.cpp ++++ b/src/3rdparty/Qt-Advanced-Docking-System/src/DockManager.cpp +@@ -63,7 +63,7 @@ + #include "DockComponentsFactory.h" + + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + #include "linux/FloatingWidgetTitleBar.h" + #endif + +@@ -207,7 +207,7 @@ void DockManagerPrivate::loadStylesheet() + QString FileName = QStringLiteral(":ads/stylesheets/"); + FileName += CDockManager::testConfigFlag(CDockManager::FocusHighlighting) + ? QStringLiteral("focus_highlighting") : QStringLiteral("default"); +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + FileName += QStringLiteral("_linux"); + #endif + FileName += QStringLiteral(".css"); +@@ -529,7 +529,7 @@ CDockManager::CDockManager(QWidget *parent) : + + window()->installEventFilter(this); + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + connect(qApp, &QApplication::focusWindowChanged, [](QWindow* focusWindow) + { + // bring modal dialogs to foreground to ensure that they are in front of any +@@ -614,7 +614,7 @@ void CDockManager::setComponentsFactory(QSharedPointerMode = Mode; + d->Cross = new CDockOverlayCross(this); +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + setWindowFlags(Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint); + #else + setWindowFlags(Qt::Tool | Qt::FramelessWindowHint); +@@ -738,7 +738,7 @@ CDockOverlayCross::CDockOverlayCross(CDockOverlay* overlay) : + d(new DockOverlayCrossPrivate(this)) + { + d->DockOverlay = overlay; +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + setWindowFlags(Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint); + #else + setWindowFlags(Qt::Tool | Qt::FramelessWindowHint); +diff --git a/src/3rdparty/Qt-Advanced-Docking-System/src/FloatingDockContainer.cpp b/src/3rdparty/Qt-Advanced-Docking-System/src/FloatingDockContainer.cpp +index f151a9f..50a16de 100644 +--- a/src/3rdparty/Qt-Advanced-Docking-System/src/FloatingDockContainer.cpp ++++ b/src/3rdparty/Qt-Advanced-Docking-System/src/FloatingDockContainer.cpp +@@ -52,7 +52,7 @@ + #pragma comment(lib, "User32.lib") + #endif + #endif +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + #include "linux/FloatingWidgetTitleBar.h" + #include + #endif +@@ -374,7 +374,7 @@ struct FloatingDockContainerPrivate + QPoint DragStartPos; + bool Hiding = false; + bool AutoHideChildren = true; +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + QWidget* MouseEventHandler = nullptr; + CFloatingWidgetTitleBar* TitleBar = nullptr; + bool IsResizing = false; +@@ -425,7 +425,7 @@ struct FloatingDockContainerPrivate + + void setWindowTitle(const QString &Text) + { +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + if (TitleBar) + { + TitleBar->setTitle(Text); +@@ -545,7 +545,7 @@ void FloatingDockContainerPrivate::updateDropOverlays(const QPoint &GlobalPos) + return; + } + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + // Prevent display of drop overlays and docking as long as a model dialog + // is active + if (qApp->activeModalWidget()) +@@ -660,7 +660,7 @@ CFloatingDockContainer::CFloatingDockContainer(CDockManager *DockManager) : + connect(d->DockContainer, SIGNAL(dockAreasRemoved()), this, + SLOT(onDockAreasAddedOrRemoved())); + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + QDockWidget::setWidget(d->DockContainer); + QDockWidget::setFeatures(QDockWidget::DockWidgetClosable + | QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable); +@@ -820,7 +820,7 @@ void CFloatingDockContainer::changeEvent(QEvent *event) + ADS_PRINT("FloatingWidget::changeEvent QEvent::ActivationChange "); + d->zOrderIndex = ++zOrderCounterFloating; + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + if (d->DraggingState == DraggingFloatingWidget) + { + d->titleMouseReleaseEvent(); +@@ -994,7 +994,7 @@ void CFloatingDockContainer::hideEvent(QHideEvent *event) + void CFloatingDockContainer::showEvent(QShowEvent *event) + { + Super::showEvent(event); +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + if (CDockManager::testConfigFlag(CDockManager::FocusHighlighting)) + { + this->window()->activateWindow(); +@@ -1007,7 +1007,7 @@ void CFloatingDockContainer::showEvent(QShowEvent *event) + void CFloatingDockContainer::startFloating(const QPoint &DragStartMousePos, + const QSize &Size, eDragState DragState, QWidget *MouseEventHandler) + { +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + if (!isMaximized()) + { + resize(Size); +@@ -1144,7 +1144,7 @@ bool CFloatingDockContainer::restoreState(CDockingStateReader &Stream, + return false; + } + onDockAreasAddedOrRemoved(); +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + if(d->TitleBar) + { + d->TitleBar->setMaximizedIcon(windowState() == Qt::WindowMaximized); +@@ -1198,7 +1198,7 @@ void CFloatingDockContainer::finishDropOperation() + void CFloatingDockContainer::finishDragging() + { + ADS_PRINT("CFloatingDockContainer::finishDragging"); +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + setWindowOpacity(1); + activateWindow(); + if (d->MouseEventHandler) +@@ -1210,7 +1210,7 @@ void CFloatingDockContainer::finishDragging() + d->titleMouseReleaseEvent(); + } + +-#ifdef Q_OS_MACOS ++#if defined(Q_OS_MACOS) || defined(Q_OS_HAIKU) + //============================================================================ + bool CFloatingDockContainer::event(QEvent *e) + { +@@ -1313,7 +1313,7 @@ void CFloatingDockContainer::moveEvent(QMoveEvent *event) + #endif + + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + //============================================================================ + void CFloatingDockContainer::onMaximizeRequest() + { +diff --git a/src/3rdparty/Qt-Advanced-Docking-System/src/FloatingDockContainer.h b/src/3rdparty/Qt-Advanced-Docking-System/src/FloatingDockContainer.h +index a26cbac..3df39d3 100644 +--- a/src/3rdparty/Qt-Advanced-Docking-System/src/FloatingDockContainer.h ++++ b/src/3rdparty/Qt-Advanced-Docking-System/src/FloatingDockContainer.h +@@ -33,7 +33,7 @@ + + #include + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + #include + #define tFloatingWidgetBase QDockWidget + #else +@@ -178,7 +178,7 @@ protected: // reimplements QWidget + virtual void hideEvent(QHideEvent *event) override; + virtual void showEvent(QShowEvent *event) override; + +-#ifdef Q_OS_MACOS ++#if defined(Q_OS_MACOS) || defined(Q_OS_HAIKU) + virtual bool event(QEvent *e) override; + virtual void moveEvent(QMoveEvent *event) override; + #elif defined(Q_OS_UNIX) +@@ -269,7 +269,7 @@ public: + */ + void finishDropOperation(); + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + /** + * This is a function that responds to FloatingWidgetTitleBar::maximizeRequest() + * Maximize or normalize the container size. +diff --git a/src/3rdparty/Qt-Advanced-Docking-System/src/FloatingDragPreview.cpp b/src/3rdparty/Qt-Advanced-Docking-System/src/FloatingDragPreview.cpp +index f7a45a2..9b8041e 100644 +--- a/src/3rdparty/Qt-Advanced-Docking-System/src/FloatingDragPreview.cpp ++++ b/src/3rdparty/Qt-Advanced-Docking-System/src/FloatingDragPreview.cpp +@@ -295,7 +295,7 @@ CFloatingDragPreview::CFloatingDragPreview(QWidget* Content, QWidget* parent) : + setAttribute(Qt::WA_TranslucentBackground); + } + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + auto Flags = windowFlags(); + Flags |= Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint; + setWindowFlags(Flags); +diff --git a/src/3rdparty/Qt-Advanced-Docking-System/src/ads_globals.cpp b/src/3rdparty/Qt-Advanced-Docking-System/src/ads_globals.cpp +index 2abcd03..5714528 100644 +--- a/src/3rdparty/Qt-Advanced-Docking-System/src/ads_globals.cpp ++++ b/src/3rdparty/Qt-Advanced-Docking-System/src/ads_globals.cpp +@@ -38,7 +38,7 @@ + #include "IconProvider.h" + #include "ads_globals.h" + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + #include + #include + #include +@@ -52,7 +52,7 @@ namespace internal + { + const int FloatingWidgetDragStartEvent = QEvent::registerEventType(); + const int DockedWidgetDragStartEvent = QEvent::registerEventType(); +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + static QString _window_manager; + static QHash _xcb_atom_cache; + +@@ -412,7 +412,7 @@ void setButtonIcon(QAbstractButton* Button, QStyle::StandardPixmap StandarPixmap + return; + } + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + Button->setIcon(Button->style()->standardIcon(StandarPixmap)); + #else + // The standard icons does not look good on high DPI screens so we create +diff --git a/src/3rdparty/Qt-Advanced-Docking-System/src/ads_globals.h b/src/3rdparty/Qt-Advanced-Docking-System/src/ads_globals.h +index f7ccc8e..ddede0a 100644 +--- a/src/3rdparty/Qt-Advanced-Docking-System/src/ads_globals.h ++++ b/src/3rdparty/Qt-Advanced-Docking-System/src/ads_globals.h +@@ -40,7 +40,7 @@ + + #include + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + #include + #endif + +@@ -171,7 +171,7 @@ static const char* const LocationProperty = "Location"; + extern const int FloatingWidgetDragStartEvent; + extern const int DockedWidgetDragStartEvent; + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(Q_OS_HAIKU) + // Utils to directly communicate with the X server + /** + * Get atom from cache or request it from the XServer. +-- +2.48.1 +