Index | Thread | Search

From:
Rafael Sadowski <rafael@sizeofvoid.org>
Subject:
Re: graphics/flameshot fails to build
To:
Denis Fondras <denis@openbsd.org>
Cc:
ports@openbsd.org, Christian Weisgerber <naddy@mips.inka.de>, Theo Buehler <tb@theobuehler.org>
Date:
Mon, 11 Aug 2025 08:48:26 +0200

Download raw body.

Thread
On Sun Aug 10, 2025 at 08:56:49PM +0200, Denis Fondras wrote:
> On Sun, Aug 10, 2025 at 08:15:37PM +0200, Rafael Sadowski wrote:
> > On Sun Aug 10, 2025 at 07:57:04PM +0200, Matthias Kilian wrote:
> > > Hi,
> > > 
> > > [cc'd rsadowski, because this may as well be a qt6 problem]
> > > 
> > > during my partial bulk build (with a ports tree from 8th august),
> > > graphics/flameshot first failed during configure because it wanted git
> > > installed. So I pkg_added git, removed the build dir and the dpb lock,
> > > and now it tries to clone some stuff from gitlab.com (which isn't
> > > allowed):
> > 
> > This is because flameshot 13 has been switched from Qt5 to Qt6 (see
> > QT_DEFAULT_MAJOR_VERSION and QT_VERSION_MAJOR) but the port still
> > uses Qt5.
> > 
> > I see the following options:
> > 
> > - Port https://gitlab.com/mattbas/Qt-Color-Widgets.git and switch
> >   flameshot 13 to Qt6 and add qt-color-widgets as a new dependency.
> > 
> > - Get a second source of
> >   https://gitlab.com/mattbas/Qt-Color-Widgets.git and extract it to
> >   "${CMAKE_SOURCE_DIR}/external/Qt-Color-Widgets/"
> > 
> > - Backport to 12.
> > 
> > I would opt for the first option. Until then, we should mark
> > flameshot as broken. The old one will still work.
> > 
> 
> Would this work until I can make more tests ?
> 

The update to 13 completely failed. This diff replaces the bundled
QtColorWidgets and KDSingleApplication with our ports and switched
flameshot to Qt6. Tested in KDE Plasma.

diff --git a/graphics/flameshot/Makefile b/graphics/flameshot/Makefile
index 25bf3cb3f73..497f247a402 100644
--- a/graphics/flameshot/Makefile
+++ b/graphics/flameshot/Makefile
@@ -4,6 +4,7 @@ CATEGORIES =	graphics x11
 GH_ACCOUNT =	flameshot-org
 GH_PROJECT =	flameshot
 GH_TAGNAME =	v13.0.1
+REVISION =	0
 
 HOMEPAGE =	https://flameshot.org/
 MAINTAINER =	Denis Fondras <denis@openbsd.org>
@@ -11,18 +12,24 @@ MAINTAINER =	Denis Fondras <denis@openbsd.org>
 # GPLv3+
 PERMIT_PACKAGE =	Yes
 
-WANTLIB += ${COMPILER_LIBCXX} Qt5Core Qt5DBus Qt5Gui Qt5Network
-WANTLIB += Qt5Svg Qt5Widgets c m
+WANTLIB += ${COMPILER_LIBCXX} GL Qt6Core Qt6DBus Qt6Gui Qt6Network
+WANTLIB += Qt6Svg Qt6Widgets QtColorWidgets c kdsingleapplication-qt6
+WANTLIB += m
 
 MODULES =	devel/cmake \
-		x11/qt5
+		x11/qt6
 
-LIB_DEPENDS =	x11/qt5/qtsvg
+LIB_DEPENDS =	x11/qt6/qtsvg \
+		x11/kdsingleapplication \
+		x11/qt-color-widgets
 
 RUN_DEPENDS =	devel/desktop-file-utils \
 		x11/gtk+4,-guic
 
 CONFIGURE_ARGS +=	-DENABLE_CACHE=OFF \
+			-DDISABLE_UPDATE_CHECKER=OFF
+
+CONFIGURE_ARGS +=	-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON \
 			-Wno-dev
 
 NO_TEST =	Yes
diff --git a/graphics/flameshot/patches/patch-CMakeLists_txt b/graphics/flameshot/patches/patch-CMakeLists_txt
new file mode 100644
index 00000000000..d44a39e99a9
--- /dev/null
+++ b/graphics/flameshot/patches/patch-CMakeLists_txt
@@ -0,0 +1,34 @@
+Index: CMakeLists.txt
+--- CMakeLists.txt.orig
++++ CMakeLists.txt
+@@ -25,10 +25,14 @@ option(BUILD_SHARED_LIBS OFF)
+ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+ 
+ 
+-# Dependency can be fetched via flatpak builder
+-if(EXISTS "${CMAKE_SOURCE_DIR}/external/Qt-Color-Widgets/CMakeLists.txt")
++find_package(QtColorWidgets)
++
++if(QtColorWidgets_FOUND)
++    message(STATUS "Found system QtColorWidgets package")
++elseif(EXISTS "${CMAKE_SOURCE_DIR}/external/Qt-Color-Widgets/CMakeLists.txt")
+     add_subdirectory("${CMAKE_SOURCE_DIR}/external/Qt-Color-Widgets" EXCLUDE_FROM_ALL)
+ else()
++    # Dependency can be fetched via flatpak builder
+     FetchContent_Declare(
+         qtColorWidgets
+         GIT_REPOSITORY https://gitlab.com/mattbas/Qt-Color-Widgets.git
+@@ -111,8 +115,12 @@ if (USE_KDSINGLEAPPLICATION)
+   set(KDSingleApplication_EXAMPLES OFF CACHE BOOL "Don't build the examples")
+   set(KDSingleApplication_STATIC ON CACHE BOOL "Build static versions of the libraries")
+ 
++  find_package(KDSingleApplication-qt6)
++
++  if(KDSingleApplication-qt6_FOUND)
++    message(STATUS "Found system KDSingleApplication package")
+   # Check if KDSingleApplication is available locally
+-  if(EXISTS "${CMAKE_SOURCE_DIR}/external/KDSingleApplication/CMakeLists.txt")
++  elseif(EXISTS "${CMAKE_SOURCE_DIR}/external/KDSingleApplication/CMakeLists.txt")
+     add_subdirectory("${CMAKE_SOURCE_DIR}/external/KDSingleApplication")
+   else()
+     FetchContent_Declare(
diff --git a/graphics/flameshot/patches/patch-src_CMakeLists_txt b/graphics/flameshot/patches/patch-src_CMakeLists_txt
index c274b9db0cc..32ad2428858 100644
--- a/graphics/flameshot/patches/patch-src_CMakeLists_txt
+++ b/graphics/flameshot/patches/patch-src_CMakeLists_txt
@@ -3,6 +3,15 @@ Install manpage to correct location
 Index: src/CMakeLists.txt
 --- src/CMakeLists.txt.orig
 +++ src/CMakeLists.txt
+@@ -220,7 +220,7 @@ if (USE_KDSINGLEAPPLICATION)
+ 
+   target_link_libraries(
+           flameshot
+-          kdsingleapplication
++          KDAB::kdsingleapplication
+   )
+ endif()
+ 
 @@ -362,7 +362,7 @@ if (UNIX)
  
      # Install man pages
diff --git a/graphics/flameshot/pkg/PLIST b/graphics/flameshot/pkg/PLIST
index 0cc7fae3a80..11cbada6708 100644
--- a/graphics/flameshot/pkg/PLIST
+++ b/graphics/flameshot/pkg/PLIST
@@ -1,70 +1,10 @@
 @bin bin/flameshot
-include/QtColorWidgets/
-include/QtColorWidgets/AbstractWidgetList
-include/QtColorWidgets/BoundColorSelector
-include/QtColorWidgets/ColorDelegate
-include/QtColorWidgets/ColorDialog
-include/QtColorWidgets/ColorListWidget
-include/QtColorWidgets/ColorPreview
-include/QtColorWidgets/ColorSelector
-include/QtColorWidgets/ColorWheel
-include/QtColorWidgets/GradientEditor
-include/QtColorWidgets/GradientListModel
-include/QtColorWidgets/GradientSlider
-include/QtColorWidgets/HarmonyColorWheel
-include/QtColorWidgets/HueSlider
-include/QtColorWidgets/QtColorWidgets_version.h
-include/QtColorWidgets/abstract_widget_list.hpp
-include/QtColorWidgets/bound_color_selector.hpp
-include/QtColorWidgets/color_2d_slider.hpp
-include/QtColorWidgets/color_delegate.hpp
-include/QtColorWidgets/color_dialog.hpp
-include/QtColorWidgets/color_line_edit.hpp
-include/QtColorWidgets/color_list_widget.hpp
-include/QtColorWidgets/color_names.hpp
-include/QtColorWidgets/color_palette.hpp
-include/QtColorWidgets/color_palette_model.hpp
-include/QtColorWidgets/color_palette_widget.hpp
-include/QtColorWidgets/color_preview.hpp
-include/QtColorWidgets/color_selector.hpp
-include/QtColorWidgets/color_utils.hpp
-include/QtColorWidgets/color_wheel.hpp
-include/QtColorWidgets/color_wheel_private.hpp
-include/QtColorWidgets/colorwidgets_global.hpp
-include/QtColorWidgets/gradient_delegate.hpp
-include/QtColorWidgets/gradient_editor.hpp
-include/QtColorWidgets/gradient_helper.hpp
-include/QtColorWidgets/gradient_list_model.hpp
-include/QtColorWidgets/gradient_slider.hpp
-include/QtColorWidgets/harmony_color_wheel.hpp
-include/QtColorWidgets/hue_slider.hpp
-include/QtColorWidgets/qt_compatibility.hpp
-include/QtColorWidgets/swatch.hpp
-include/kdsingleapplication-qt6/
-include/kdsingleapplication-qt6/kdsingleapplication.h
-include/kdsingleapplication-qt6/kdsingleapplication_lib.h
-include/kdsingleapplication-qt6/kdsingleapplication_version.h
-lib/cmake/KDSingleApplication-qt6/
-lib/cmake/KDSingleApplication-qt6/KDSingleApplication-qt6Targets${MODCMAKE_BUILD_SUFFIX}
-lib/cmake/KDSingleApplication-qt6/KDSingleApplication-qt6Targets.cmake
-lib/cmake/QtColorWidgets/
-lib/cmake/QtColorWidgets/QtColorWidgets${MODCMAKE_BUILD_SUFFIX}
-lib/cmake/QtColorWidgets/QtColorWidgets.cmake
-lib/cmake/QtColorWidgets/qtcolorwidgets-config-version.cmake
-lib/cmake/QtColorWidgets/qtcolorwidgets-config.cmake
-lib/cmake/QtColorWidgets/qtcolorwidgets-targets${MODCMAKE_BUILD_SUFFIX}
-lib/cmake/QtColorWidgets/qtcolorwidgets-targets.cmake
-@static-lib lib/libQtColorWidgets.a
-@static-lib lib/libkdsingleapplication-qt6.a
-lib/pkgconfig/QtColorWidgets.pc
 @man man/man1/flameshot.1
 share/applications/org.flameshot.Flameshot.desktop
 share/bash-completion/completions/flameshot
 share/dbus-1/interfaces/
 share/dbus-1/interfaces/org.flameshot.Flameshot.xml
 share/dbus-1/services/org.flameshot.Flameshot.service
-share/fish/
-share/fish/vendor_completions.d/
 share/fish/vendor_completions.d/flameshot.fish
 share/flameshot/
 share/flameshot/translations/
@@ -111,8 +51,6 @@ share/icons/hicolor/scalable/apps/flameshot.svg
 share/icons/hicolor/scalable/apps/org.flameshot.Flameshot.svg
 share/metainfo/
 share/metainfo/org.flameshot.Flameshot.metainfo.xml
-share/zsh/
-share/zsh/site-functions/
 share/zsh/site-functions/_flameshot
 @tag gtk-update-icon-cache %D/share/icons/hicolor
 @tag update-desktop-database