diff --git a/graphics/plasma6-spectacle/Makefile b/graphics/plasma6-spectacle/Makefile index 712aea6c14e1..a4077862914a 100644 --- a/graphics/plasma6-spectacle/Makefile +++ b/graphics/plasma6-spectacle/Makefile @@ -1,35 +1,28 @@ PORTNAME= spectacle -DISTVERSION= ${KDE_APPLICATIONS_VERSION} -PORTREVISION= 1 -CATEGORIES= graphics kde kde-applications +DISTVERSION= ${KDE_PLASMA_VERSION} +CATEGORIES= graphics kde kde-plasma MAINTAINER= kde@FreeBSD.org -COMMENT= KDE screen capture program -WWW= https://projects.kde.org/projects/kde/kdegraphics/spectacle +COMMENT= KDE Plasma screen capture program LIB_DEPENDS= libxcb-cursor.so:x11/xcb-util-cursor \ libxcb-image.so:x11/xcb-util-image \ libxcb-util.so:x11/xcb-util \ - libkImageAnnotator-Qt6.so:graphics/kimageannotator@qt6 \ - libZXing.so:textproc/zxing-cpp \ - libopencv_core.so:graphics/opencv + libopencv_core.so:graphics/opencv \ + libwayland-client.so:graphics/wayland -USES= cmake compiler:c++11-lang gettext kde:6 pkgconfig qt:6 tar:xz \ - xorg -USE_KDE= attica auth codecs completion config configwidgets coreaddons \ - dbusaddons globalaccel guiaddons i18n jobwidgets kdeclarative \ - kio layer-shell-qt newstuff notifications package prison \ - purpose service solid statusnotifieritem wayland \ - widgetsaddons windowsystem xmlgui \ +USES= cmake compiler:c++20-lang gettext kde:6 localbase pkgconfig \ + qt:6 tar:xz xorg +USE_KDE= config coreaddons crash dbusaddons globalaccel guiaddons i18n \ + kio kirigami2 kpipewire layer-shell-qt notifications prison \ + purpose statusnotifieritem widgetsaddons windowsystem xmlgui \ doctools:build ecm:build plasma-wayland-protocols:build -USE_QT= base multimedia -USE_XORG= x11 xcb xext xfixes +USE_QT= base declarative multimedia wayland +USE_XORG= x11 xcb xfixes -OPTIONS_DEFINE= DOCS PIPEWIRE -OPTIONS_DEFAULT= PIPEWIRE -PIPEWIRE_DESC= Screen capture via PipeWire (required for Wayland) -PIPEWIRE_USE= KDE=kpipewire -PIPEWIRE_CMAKE_BOOL_OFF= DISABLE_PIPEWIRE -PIPEWIRE_EXTRA_PATCHES_OFF= ${FILESDIR}/extra-patch-pipewire-off +OPTIONS_DEFINE= WAYLAND +OPTIONS_DEFAULT= WAYLAND +WAYLAND_USE= KDE=kpipewire +WAYLAND_EXTRA_PATCHES_OFF= ${FILESDIR}/extra-patch-pipewire-off .include diff --git a/graphics/plasma6-spectacle/distinfo b/graphics/plasma6-spectacle/distinfo index 6e438a7adc6b..a150f9684e96 100644 --- a/graphics/plasma6-spectacle/distinfo +++ b/graphics/plasma6-spectacle/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1738937190 -SHA256 (KDE/release-service/24.12.2/spectacle-24.12.2.tar.xz) = 7c91a5914a37bfc6a4eb34d968a60c8b2f286ba2ef1e3dce217b1295df66cd3f -SIZE (KDE/release-service/24.12.2/spectacle-24.12.2.tar.xz) = 1562304 +TIMESTAMP = 1739484426 +SHA256 (KDE/plasma/6.3.0/spectacle-6.3.0.tar.xz) = be80abbc1e80bc4493711089580a905848499608a2497be3d7eb81cbbf876099 +SIZE (KDE/plasma/6.3.0/spectacle-6.3.0.tar.xz) = 1561288 diff --git a/graphics/plasma6-spectacle/files/extra-patch-pipewire-off b/graphics/plasma6-spectacle/files/extra-patch-pipewire-off index 4858ec011602..7c21c8d198e8 100644 --- a/graphics/plasma6-spectacle/files/extra-patch-pipewire-off +++ b/graphics/plasma6-spectacle/files/extra-patch-pipewire-off @@ -1,111 +1,111 @@ --- CMakeLists.txt.orig 2025-01-30 23:53:22 UTC +++ CMakeLists.txt @@ -86,12 +86,16 @@ find_package(LayerShellQt REQUIRED) find_package(Wayland REQUIRED COMPONENTS Client) find_package(PlasmaWaylandProtocols REQUIRED) find_package(LayerShellQt REQUIRED) -find_package(KPipeWire) -+option(DISABLE_PIPEWIRE "Disable PipeWire support." OFF) ++option(DISABLE_PIPEWIRE "Disable PipeWire support." ON) +if(NOT DISABLE_PIPEWIRE) + find_package(KPipeWire REQUIRED) + set(PIPEWIRE_FOUND 1) +endif() find_package(OpenCV REQUIRED core imgproc) set_package_properties(KPipeWire PROPERTIES DESCRIPTION "Used to record pipewire streams into a file" - TYPE REQUIRED + TYPE OPTIONAL ) # optional components --- src/CMakeLists.txt.orig 2025-01-30 23:53:22 UTC +++ src/CMakeLists.txt @@ -16,6 +16,10 @@ ecm_qt_declare_logging_category(SPECTACLE_SRCS EXPORT SPECTACLE ) +if(PIPEWIRE_FOUND) + list(APPEND SPECTACLE_SRCS Platforms/VideoPlatformWayland.cpp) +endif() + add_executable(spectacle ${SPECTACLE_SRCS} Main.cpp @@ -58,7 +62,6 @@ add_executable(spectacle Platforms/PlatformNull.cpp Platforms/ImagePlatformKWin.cpp Platforms/VideoPlatform.cpp - Platforms/VideoPlatformWayland.cpp Platforms/screencasting.cpp ) @@ -99,6 +102,10 @@ target_include_directories(spectacle PUBLIC ${OpenCV_I target_include_directories(spectacle PUBLIC ${OpenCV_INCLUDE_DIRS}) +if(PIPEWIRE_FOUND) + target_link_libraries(spectacle PRIVATE K::KPipeWireRecord) +endif() + target_link_libraries(spectacle PRIVATE Qt::Concurrent Qt::DBus @@ -124,7 +131,6 @@ target_link_libraries(spectacle PRIVATE KF6::StatusNotifierItem KF6::PrisonScanner KF6::Crash - K::KPipeWireRecord Wayland::Client LayerShellQt::Interface ${OpenCV_LIBRARIES} --- src/Config.h.in.orig 2025-01-30 23:53:22 UTC +++ src/Config.h.in @@ -7,6 +7,9 @@ /* Define to 1 if we have Purpose */ #cmakedefine PURPOSE_FOUND 1 +/* Define to 1 if we are building with PIPEWIRE */ +#cmakedefine PIPEWIRE_FOUND 1 + /* Set the Spectacle version from CMake */ #cmakedefine SPECTACLE_VERSION "@SPECTACLE_VERSION@" --- src/Platforms/PlatformLoader.cpp.orig 2025-01-30 23:53:22 UTC +++ src/Platforms/PlatformLoader.cpp @@ -11,7 +11,9 @@ #include "ImagePlatformKWin.h" #include "PlatformNull.h" +#ifdef PIPEWIRE_FOUND #include "VideoPlatformWayland.h" +#endif #ifdef XCB_FOUND #include "ImagePlatformXcb.h" @@ -74,9 +76,12 @@ VideoPlatformPtr getForcedVideoPlatform() return nullptr; } +#ifdef PIPEWIRE_FOUND if (platformName == VideoPlatformWayland::staticMetaObject.className()) { return std::make_unique(); - } else if (platformName == VideoPlatformNull::staticMetaObject.className()) { + } else +#endif + if (platformName == VideoPlatformNull::staticMetaObject.className()) { return std::make_unique(); } else if (!platformName.isEmpty()) { qWarning() << "SPECTACLE_VIDEO_PLATFORM:" << platformName << "is invalid"; @@ -90,9 +95,11 @@ VideoPlatformPtr loadVideoPlatform() if (auto platform = getForcedVideoPlatform()) { return platform; } +#ifdef PIPEWIRE_FOUND if (KWindowSystem::isPlatformWayland()) { return std::make_unique(); } +#endif if (KWindowSystem::isPlatformX11()) { return std::make_unique(i18nc("@info", "Screen recording is not available on X11.")); } diff --git a/graphics/plasma6-spectacle/pkg-descr b/graphics/plasma6-spectacle/pkg-descr deleted file mode 100644 index b9438708d8db..000000000000 --- a/graphics/plasma6-spectacle/pkg-descr +++ /dev/null @@ -1 +0,0 @@ -The new screenshot capture utility, replaces KSnapshot diff --git a/graphics/plasma6-spectacle/pkg-plist b/graphics/plasma6-spectacle/pkg-plist index c3dd8927c372..8e8052954dca 100644 --- a/graphics/plasma6-spectacle/pkg-plist +++ b/graphics/plasma6-spectacle/pkg-plist @@ -1,79 +1,120 @@ bin/spectacle -lib/kconf_update_bin/spectacle-%%KDE_APPLICATIONS_VERSION_SHORT%%.02.0-change_placeholder_format -lib/kconf_update_bin/spectacle-%%KDE_APPLICATIONS_VERSION_SHORT%%.02.0-keep_old_filename_templates -lib/kconf_update_bin/spectacle-%%KDE_APPLICATIONS_VERSION_SHORT%%.02.0-keep_old_save_location -lib/kconf_update_bin/spectacle-%%KDE_APPLICATIONS_VERSION_SHORT%%.02.0-rename_settings -lib/kconf_update_bin/spectacle-%%KDE_APPLICATIONS_VERSION_SHORT%%.02.0-video_format +lib/kconf_update_bin/spectacle-24.02.0-change_placeholder_format +lib/kconf_update_bin/spectacle-24.02.0-keep_old_filename_templates +lib/kconf_update_bin/spectacle-24.02.0-keep_old_save_location +lib/kconf_update_bin/spectacle-24.02.0-rename_settings +lib/kconf_update_bin/spectacle-24.02.0-video_format lib/systemd/user/app-org.kde.spectacle.service share/applications/org.kde.spectacle.desktop share/dbus-1/interfaces/org.kde.Spectacle.xml share/dbus-1/services/org.kde.Spectacle.service share/dbus-1/services/org.kde.spectacle.service +share/doc/HTML/ca/spectacle/Annotate.png +share/doc/HTML/ca/spectacle/ApplicationPreferences.png +share/doc/HTML/ca/spectacle/MainWindow.png +share/doc/HTML/ca/spectacle/SaveOptions.png +share/doc/HTML/ca/spectacle/index.cache.bz2 +share/doc/HTML/ca/spectacle/index.docbook +share/doc/HTML/de/spectacle/index.cache.bz2 +share/doc/HTML/de/spectacle/index.docbook +share/doc/HTML/en/spectacle/Annotate.png +share/doc/HTML/en/spectacle/ApplicationPreferences.png +share/doc/HTML/en/spectacle/MainWindow.png +share/doc/HTML/en/spectacle/SaveOptions.png +share/doc/HTML/en/spectacle/index.cache.bz2 +share/doc/HTML/en/spectacle/index.docbook +share/doc/HTML/es/spectacle/index.cache.bz2 +share/doc/HTML/es/spectacle/index.docbook +share/doc/HTML/it/spectacle/ApplicationPreferences.png +share/doc/HTML/it/spectacle/MainWindow.png +share/doc/HTML/it/spectacle/SaveOptions.png +share/doc/HTML/it/spectacle/index.cache.bz2 +share/doc/HTML/it/spectacle/index.docbook +share/doc/HTML/nl/spectacle/index.cache.bz2 +share/doc/HTML/nl/spectacle/index.docbook +share/doc/HTML/pt/spectacle/index.cache.bz2 +share/doc/HTML/pt/spectacle/index.docbook +share/doc/HTML/pt_BR/spectacle/index.cache.bz2 +share/doc/HTML/pt_BR/spectacle/index.docbook +share/doc/HTML/ru/spectacle/index.cache.bz2 +share/doc/HTML/ru/spectacle/index.docbook +share/doc/HTML/sl/spectacle/index.cache.bz2 +share/doc/HTML/sl/spectacle/index.docbook +share/doc/HTML/sv/spectacle/index.cache.bz2 +share/doc/HTML/sv/spectacle/index.docbook +share/doc/HTML/tr/spectacle/index.cache.bz2 +share/doc/HTML/tr/spectacle/index.docbook +share/doc/HTML/uk/spectacle/Annotate.png +share/doc/HTML/uk/spectacle/ApplicationPreferences.png +share/doc/HTML/uk/spectacle/MainWindow.png +share/doc/HTML/uk/spectacle/SaveOptions.png +share/doc/HTML/uk/spectacle/index.cache.bz2 +share/doc/HTML/uk/spectacle/index.docbook share/icons/hicolor/scalable/apps/spectacle.svg share/kconf_update/spectacle.upd share/kglobalaccel/org.kde.spectacle.desktop share/knotifications6/spectacle.notifyrc share/locale/ar/LC_MESSAGES/spectacle.mo share/locale/ast/LC_MESSAGES/spectacle.mo share/locale/az/LC_MESSAGES/spectacle.mo share/locale/bg/LC_MESSAGES/spectacle.mo share/locale/ca/LC_MESSAGES/spectacle.mo share/locale/ca@valencia/LC_MESSAGES/spectacle.mo share/locale/cs/LC_MESSAGES/spectacle.mo share/locale/da/LC_MESSAGES/spectacle.mo share/locale/de/LC_MESSAGES/spectacle.mo share/locale/el/LC_MESSAGES/spectacle.mo share/locale/en_GB/LC_MESSAGES/spectacle.mo share/locale/eo/LC_MESSAGES/spectacle.mo share/locale/es/LC_MESSAGES/spectacle.mo share/locale/et/LC_MESSAGES/spectacle.mo share/locale/eu/LC_MESSAGES/spectacle.mo share/locale/fi/LC_MESSAGES/spectacle.mo share/locale/fr/LC_MESSAGES/spectacle.mo share/locale/gl/LC_MESSAGES/spectacle.mo share/locale/he/LC_MESSAGES/spectacle.mo share/locale/hsb/LC_MESSAGES/spectacle.mo share/locale/hu/LC_MESSAGES/spectacle.mo share/locale/ia/LC_MESSAGES/spectacle.mo share/locale/id/LC_MESSAGES/spectacle.mo share/locale/ie/LC_MESSAGES/spectacle.mo share/locale/is/LC_MESSAGES/spectacle.mo share/locale/it/LC_MESSAGES/spectacle.mo share/locale/ja/LC_MESSAGES/spectacle.mo share/locale/ka/LC_MESSAGES/spectacle.mo share/locale/ko/LC_MESSAGES/spectacle.mo share/locale/lt/LC_MESSAGES/spectacle.mo share/locale/lv/LC_MESSAGES/spectacle.mo share/locale/ml/LC_MESSAGES/spectacle.mo share/locale/nl/LC_MESSAGES/spectacle.mo share/locale/nn/LC_MESSAGES/spectacle.mo share/locale/pa/LC_MESSAGES/spectacle.mo share/locale/pl/LC_MESSAGES/spectacle.mo share/locale/pt/LC_MESSAGES/spectacle.mo share/locale/pt_BR/LC_MESSAGES/spectacle.mo share/locale/ro/LC_MESSAGES/spectacle.mo share/locale/ru/LC_MESSAGES/spectacle.mo share/locale/sk/LC_MESSAGES/spectacle.mo share/locale/sl/LC_MESSAGES/spectacle.mo share/locale/sr/LC_MESSAGES/spectacle.mo share/locale/sr@ijekavian/LC_MESSAGES/spectacle.mo share/locale/sr@ijekavianlatin/LC_MESSAGES/spectacle.mo share/locale/sr@latin/LC_MESSAGES/spectacle.mo share/locale/sv/LC_MESSAGES/spectacle.mo share/locale/ta/LC_MESSAGES/spectacle.mo share/locale/tr/LC_MESSAGES/spectacle.mo share/locale/uk/LC_MESSAGES/spectacle.mo share/locale/zh_CN/LC_MESSAGES/spectacle.mo share/locale/zh_TW/LC_MESSAGES/spectacle.mo share/man/ca/man1/spectacle.1.gz share/man/de/man1/spectacle.1.gz share/man/es/man1/spectacle.1.gz share/man/it/man1/spectacle.1.gz share/man/man1/spectacle.1.gz share/man/nl/man1/spectacle.1.gz share/man/sl/man1/spectacle.1.gz share/man/sv/man1/spectacle.1.gz share/man/tr/man1/spectacle.1.gz share/man/uk/man1/spectacle.1.gz share/metainfo/org.kde.spectacle.appdata.xml share/qlogging-categories6/spectacle.categories