aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDima Panov <fluffy@FreeBSD.org>2024-01-22 19:44:24 +0000
committerDima Panov <fluffy@FreeBSD.org>2024-01-22 19:44:24 +0000
commita311aa78c162fbdd2f3319e8775c33c72b56affc (patch)
tree84287d36f65ade4f5524e984d484947469efb5da
parent3f28493dd5a35248cc488975ed89351e4366b51f (diff)
downloadports-a311aa78c162fbdd2f3319e8775c33c72b56affc.tar.gz
ports-a311aa78c162fbdd2f3319e8775c33c72b56affc.zip
graphics/spectacle-devel: add KDE6 screen capture program
-rw-r--r--graphics/Makefile1
-rw-r--r--graphics/spectacle-devel/Makefile33
-rw-r--r--graphics/spectacle-devel/distinfo3
-rw-r--r--graphics/spectacle-devel/files/extra-patch-pipewire-off108
-rw-r--r--graphics/spectacle-devel/pkg-descr1
-rw-r--r--graphics/spectacle-devel/pkg-plist78
6 files changed, 224 insertions, 0 deletions
diff --git a/graphics/Makefile b/graphics/Makefile
index 18436c49af3f..152c2723e3aa 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -1115,6 +1115,7 @@
SUBDIR += skanlite
SUBDIR += skanpage
SUBDIR += spectacle
+ SUBDIR += spectacle-devel
SUBDIR += spirv-tools
SUBDIR += springgraph
SUBDIR += squish
diff --git a/graphics/spectacle-devel/Makefile b/graphics/spectacle-devel/Makefile
new file mode 100644
index 000000000000..84ccb96031b5
--- /dev/null
+++ b/graphics/spectacle-devel/Makefile
@@ -0,0 +1,33 @@
+PORTNAME= spectacle
+DISTVERSION= ${KDE_APPLICATIONS_VERSION}
+CATEGORIES= graphics kde kde-applications kde-devel
+
+MAINTAINER= kde@FreeBSD.org
+COMMENT= KDE screen capture program
+WWW= https://projects.kde.org/projects/kde/kdegraphics/spectacle
+
+LIB_DEPENDS= libxcb-cursor.so:x11/xcb-util-cursor \
+ libxcb-image.so:x11/xcb-util-image \
+ libxcb-util.so:x11/xcb-util \
+ libxkbcommon.so:x11/libxkbcommon \
+ libwayland-server.so:graphics/wayland
+
+USES= cmake compiler:c++11-lang gettext gl kde:6 pkgconfig qt:6 tar:xz \
+ xorg
+USE_GL= gl opengl
+USE_KDE= attica5 auth codecs colorscheme completion config configwidgets coreaddons \
+ dbusaddons globalaccel guiaddons i18n jobwidgets kdeclarative \
+ kio kirigami2 layer-shell-qt newstuff notifications package purpose \
+ service solid wayland widgetsaddons windowsystem xmlgui \
+ doctools:build ecm:build plasma-wayland-protocols:build
+USE_QT= base declarative multimedia wayland
+USE_XORG= x11 xcb xext xfixes
+
+OPTIONS_DEFINE= DOCS PIPEWIRE
+OPTIONS_DEFAULT= PIPEWIRE
+PIPEWIRE_DESC= Screen capture via PipeWire
+PIPEWIRE_USE= KDE=kpipewire
+PIPEWIRE_CMAKE_BOOL_OFF= DISABLE_PIPEWIRE
+PIPEWIRE_EXTRA_PATCHES_OFF= ${FILESDIR}/extra-patch-pipewire-off
+
+.include <bsd.port.mk>
diff --git a/graphics/spectacle-devel/distinfo b/graphics/spectacle-devel/distinfo
new file mode 100644
index 000000000000..c07b96940122
--- /dev/null
+++ b/graphics/spectacle-devel/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1705948395
+SHA256 (KDE/release-service/24.01.90/spectacle-24.01.90.tar.xz) = 73f410eb8f0985404ca367d1b109cc3a54b3ae1ef212167771d052a2c410f5dd
+SIZE (KDE/release-service/24.01.90/spectacle-24.01.90.tar.xz) = 1403668
diff --git a/graphics/spectacle-devel/files/extra-patch-pipewire-off b/graphics/spectacle-devel/files/extra-patch-pipewire-off
new file mode 100644
index 000000000000..2b5bad100878
--- /dev/null
+++ b/graphics/spectacle-devel/files/extra-patch-pipewire-off
@@ -0,0 +1,108 @@
+--- CMakeLists.txt.orig 2024-01-09 02:09:50 UTC
++++ CMakeLists.txt
+@@ -77,10 +77,14 @@ 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)
++if(NOT DISABLE_PIPEWIRE)
++ find_package(KPipeWire REQUIRED)
++ set(PIPEWIRE_FOUND 1)
++endif()
+ set_package_properties(KPipeWire PROPERTIES DESCRIPTION
+ "Used to record pipewire streams into a file"
+- TYPE REQUIRED
++ TYPE OPTIONAL
+ )
+
+ # optional components
+--- src/CMakeLists.txt.orig 2024-01-09 02:09:50 UTC
++++ src/CMakeLists.txt
+@@ -11,6 +11,10 @@ ecm_qt_declare_logging_category(SPECTACLE_SRCS HEADER
+ ecm_qt_declare_logging_category(SPECTACLE_SRCS HEADER spectacle_core_debug.h IDENTIFIER SPECTACLE_CORE_LOG CATEGORY_NAME org.kde.spectacle.core DESCRIPTION "spectacle (core)" EXPORT SPECTACLE)
+ ecm_qt_declare_logging_category(SPECTACLE_SRCS HEADER spectacle_gui_debug.h IDENTIFIER SPECTACLE_GUI_LOG CATEGORY_NAME org.kde.spectacle.gui DESCRIPTION "spectacle (gui)" EXPORT SPECTACLE)
+
++if(PIPEWIRE_FOUND)
++ list(APPEND SPECTACLE_SRCS Platforms/VideoPlatformWayland.cpp)
++endif()
++
+ add_executable(spectacle
+ ${SPECTACLE_SRCS}
+ Main.cpp
+@@ -49,7 +53,6 @@ add_executable(spectacle
+ Platforms/PlatformNull.cpp
+ Platforms/ImagePlatformKWin.cpp
+ Platforms/VideoPlatform.cpp
+- Platforms/VideoPlatformWayland.cpp
+ Platforms/screencasting.cpp
+ )
+
+@@ -80,6 +83,10 @@ ki18n_wrap_ui(spectacle
+ Gui/SettingsDialog/VideoSaveOptions.ui
+ )
+
++if(PIPEWIRE_FOUND)
++ target_link_libraries(spectacle K::KPipeWireRecord)
++endif()
++
+ target_link_libraries(spectacle PRIVATE
+ Qt::Concurrent
+ Qt::DBus
+@@ -102,7 +109,6 @@ target_link_libraries(spectacle PRIVATE
+ KF6::XmlGui
+ KF6::GuiAddons
+ KF6::KirigamiPlatform
+- K::KPipeWireRecord
+ Wayland::Client
+ LayerShellQt::Interface
+ )
+--- src/Config.h.in.orig 2024-01-09 02:09:50 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 2024-01-09 02:09:50 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"
+@@ -73,9 +75,12 @@ VideoPlatformPtr getForcedVideoPlatform()
+ return nullptr;
+ }
+
++#ifdef PIPEWIRE_FOUND
+ if (platformName == VideoPlatformWayland::staticMetaObject.className()) {
+ return std::make_unique<VideoPlatformWayland>();
+- } else if (platformName == VideoPlatformNull::staticMetaObject.className()) {
++ } else
++#endif
++ if (platformName == VideoPlatformNull::staticMetaObject.className()) {
+ return std::make_unique<VideoPlatformNull>();
+ } else if (!platformName.isEmpty()) {
+ qWarning() << "SPECTACLE_VIDEO_PLATFORM:" << platformName << "is invalid";
+@@ -89,8 +94,10 @@ VideoPlatformPtr loadVideoPlatform()
+ if (auto platform = getForcedVideoPlatform()) {
+ return platform;
+ }
++#ifdef PIPEWIRE_FOUND
+ if (KWindowSystem::isPlatformWayland()) {
+ return std::make_unique<VideoPlatformWayland>();
+ }
++#endif
+ return std::make_unique<VideoPlatformNull>();
+ }
diff --git a/graphics/spectacle-devel/pkg-descr b/graphics/spectacle-devel/pkg-descr
new file mode 100644
index 000000000000..b9438708d8db
--- /dev/null
+++ b/graphics/spectacle-devel/pkg-descr
@@ -0,0 +1 @@
+The new screenshot capture utility, replaces KSnapshot
diff --git a/graphics/spectacle-devel/pkg-plist b/graphics/spectacle-devel/pkg-plist
new file mode 100644
index 000000000000..7304829ea94f
--- /dev/null
+++ b/graphics/spectacle-devel/pkg-plist
@@ -0,0 +1,78 @@
+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/systemd/user/app-org.kde.spectacle.service
+man/ca/man1/spectacle.1.gz
+man/de/man1/spectacle.1.gz
+man/es/man1/spectacle.1.gz
+man/it/man1/spectacle.1.gz
+man/man1/spectacle.1.gz
+man/nl/man1/spectacle.1.gz
+man/sv/man1/spectacle.1.gz
+man/tr/man1/spectacle.1.gz
+man/uk/man1/spectacle.1.gz
+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/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/metainfo/org.kde.spectacle.appdata.xml
+share/qlogging-categories6/spectacle.categories