git: 6dd08776b7cf - main - x11/kdisplay: add new port

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Thu, 04 Nov 2021 23:18:51 UTC
The branch main has been updated by jbeich:

URL: https://cgit.FreeBSD.org/ports/commit/?id=6dd08776b7cfe8b48668bd638567b26929601599

commit 6dd08776b7cfe8b48668bd638567b26929601599
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2021-10-14 15:47:28 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2021-11-04 23:16:52 +0000

    x11/kdisplay: add new port
    
    KDisplay is a small display management app. It provides a simple and
    straightforward UI for managing an arbitrary number of displays.
    
    Features:
    * Displays can be repositioned with drag-and-drop.
    * An optimal resolution and refresh rate are automatically selected.
      Manual override is possible.
    * Displays can be seemlessly "replicated".
    * The settings of a display is by default remembered globally
      but can be overridden for specific combinations of displays.
    * Provides additional integration for the KDE Plasma Workspace through
      a plasmoid and an OSD activated by hardware key for quick
      configuration changes.
    
    https://gitlab.com/kwinft/kdisplay
---
 x11/Makefile                            |  1 +
 x11/kdisplay/Makefile                   | 29 ++++++++++++++++++++++
 x11/kdisplay/distinfo                   |  3 +++
 x11/kdisplay/files/patch-CMakeLists.txt | 39 +++++++++++++++++++++++++++++
 x11/kdisplay/pkg-descr                  | 15 +++++++++++
 x11/kdisplay/pkg-plist                  | 44 +++++++++++++++++++++++++++++++++
 6 files changed, 131 insertions(+)

diff --git a/x11/Makefile b/x11/Makefile
index dfeb6e84da91..87a2d1c53e85 100644
--- a/x11/Makefile
+++ b/x11/Makefile
@@ -123,6 +123,7 @@
     SUBDIR += kb2mb2
     SUBDIR += kde-baseapps
     SUBDIR += kde5
+    SUBDIR += kdisplay
     SUBDIR += keybinder
     SUBDIR += keybinder-gtk3
     SUBDIR += keyboardcast
diff --git a/x11/kdisplay/Makefile b/x11/kdisplay/Makefile
new file mode 100644
index 000000000000..7768ee19ef31
--- /dev/null
+++ b/x11/kdisplay/Makefile
@@ -0,0 +1,29 @@
+PORTNAME=	kdisplay
+DISTVERSIONPREFIX=	${PORTNAME}@
+DISTVERSION=	5.23.0
+CATEGORIES=	x11
+
+MAINTAINER=	jbeich@FreeBSD.org
+COMMENT=	App and daemon for display managing
+
+LICENSE=	GPLv2+ LGPL21+
+LICENSE_COMB=	multi
+LICENSE_FILE_GPLv2+ =	${WRKSRC}/COPYING
+LICENSE_FILE_LGPL21+ =	${WRKSRC}/COPYING.LGPL
+
+LIB_DEPENDS=	libDisman.so:x11/disman
+TEST_DEPENDS=	${qt-testlib_PORT:T}>0:${qt-testlib_PORT}
+
+USES=		cmake:testing kde:5 qt:5
+USE_GITLAB=	yes
+USE_KDE=	ecm_build config coreaddons dbusaddons globalaccel i18n \
+		kcmutils kdeclarative plasma-framework xmlgui
+USE_LDCONFIG=	yes
+USE_QT=		qmake_build buildtools_build core dbus declarative gui \
+		sensors widgets
+GL_ACCOUNT=	kwinft
+GL_COMMIT=	b64cf06bf9945b550a965126c750440a6617e4ef
+PLIST_SUB=	VERSION=${PORTVERSION}
+LDFLAGS+=	-Wl,--as-needed # Qt5*, KF5*
+
+.include <bsd.port.mk>
diff --git a/x11/kdisplay/distinfo b/x11/kdisplay/distinfo
new file mode 100644
index 000000000000..ee005bbfdbe3
--- /dev/null
+++ b/x11/kdisplay/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1634226448
+SHA256 (kwinft-kdisplay-b64cf06bf9945b550a965126c750440a6617e4ef_GL0.tar.gz) = b0bf424cbed05766ce3295ec8e2939fbde0b6887caeec22c66b1083393e80fa6
+SIZE (kwinft-kdisplay-b64cf06bf9945b550a965126c750440a6617e4ef_GL0.tar.gz) = 184686
diff --git a/x11/kdisplay/files/patch-CMakeLists.txt b/x11/kdisplay/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..0c782fa6927e
--- /dev/null
+++ b/x11/kdisplay/files/patch-CMakeLists.txt
@@ -0,0 +1,39 @@
+CMake Error at /usr/local/lib/cmake/Qt5/Qt5Config.cmake:28 (find_package):
+  find_package for module Qt5Test called with REQUIRED, but
+  CMAKE_DISABLE_FIND_PACKAGE_Qt5Test is enabled.  A REQUIRED package cannot
+  be disabled.
+Call Stack (most recent call first):
+  CMakeLists.txt:26 (find_package)
+
+--- CMakeLists.txt.orig	2021-10-14 15:47:28 UTC
++++ CMakeLists.txt
+@@ -23,19 +23,27 @@ include(FeatureSummary)
+ set(CMAKE_CXX_STANDARD 17)
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
+ 
+-find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Test Sensors)
++find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Sensors)
+ find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
+     DBusAddons
+     Declarative
+     I18n
+ )
+ 
++find_package(Qt5Test ${QT_MIN_VERSION})
++set_package_properties(Qt5Test PROPERTIES
++    PURPOSE "Required for tests"
++    TYPE OPTIONAL
++)
++
+ set(MIN_DISMAN_VERSION "0.519.80")
+ find_package(Disman ${MIN_DISMAN_VERSION} REQUIRED)
+ 
+ add_subdirectory(kcm)
+ add_subdirectory(plasma-integration)
+-add_subdirectory(tests)
++if (BUILD_TESTING)
++    add_subdirectory(tests)
++endif()
+ 
+ install(FILES kdisplay.categories  DESTINATION  ${KDE_INSTALL_LOGGINGCATEGORIESDIR})
+ 
diff --git a/x11/kdisplay/pkg-descr b/x11/kdisplay/pkg-descr
new file mode 100644
index 000000000000..ab47dd53d749
--- /dev/null
+++ b/x11/kdisplay/pkg-descr
@@ -0,0 +1,15 @@
+KDisplay is a small display management app. It provides a simple and
+straightforward UI for managing an arbitrary number of displays.
+
+Features:
+* Displays can be repositioned with drag-and-drop.
+* An optimal resolution and refresh rate are automatically selected.
+  Manual override is possible.
+* Displays can be seemlessly "replicated".
+* The settings of a display is by default remembered globally
+  but can be overridden for specific combinations of displays.
+* Provides additional integration for the KDE Plasma Workspace through
+  a plasmoid and an OSD activated by hardware key for quick
+  configuration changes.
+
+WWW: https://gitlab.com/kwinft/kdisplay
diff --git a/x11/kdisplay/pkg-plist b/x11/kdisplay/pkg-plist
new file mode 100644
index 000000000000..5814795aad4b
--- /dev/null
+++ b/x11/kdisplay/pkg-plist
@@ -0,0 +1,44 @@
+bin/kdisplay
+%%QT_PLUGINDIR%%/kcms/kcm_kdisplay.so
+%%QT_PLUGINDIR%%/kf5/kded/kdisplayd.so
+%%QT_PLUGINDIR%%/plasma/applets/plasma_applet_kdisplay.so
+share/applications/org.kwinft.kdisplay.desktop
+share/kded_kdisplay/qml/Osd.qml
+share/kded_kdisplay/qml/OsdItem.qml
+share/kded_kdisplay/qml/OsdSelector.qml
+share/kded_kdisplay/qml/OutputIdentifier.qml
+share/kpackage/kcms/kcm_kdisplay/contents/ui/Orientation.qml
+share/kpackage/kcms/kcm_kdisplay/contents/ui/Output.qml
+share/kpackage/kcms/kcm_kdisplay/contents/ui/OutputIdentifier.qml
+share/kpackage/kcms/kcm_kdisplay/contents/ui/OutputPanel.qml
+share/kpackage/kcms/kcm_kdisplay/contents/ui/Panel.qml
+share/kpackage/kcms/kcm_kdisplay/contents/ui/RotationButton.qml
+share/kpackage/kcms/kcm_kdisplay/contents/ui/Screen.qml
+share/kpackage/kcms/kcm_kdisplay/contents/ui/main.qml
+share/kpackage/kcms/kcm_kdisplay/metadata.desktop
+share/kpackage/kcms/kcm_kdisplay/metadata.json
+share/kservices5/kcm_kdisplay.desktop
+share/locale/de/LC_MESSAGES/kcm_kdisplay.mo
+share/locale/de/LC_MESSAGES/kdisplay-plasma.mo
+share/locale/el/LC_MESSAGES/kcm_kdisplay.mo
+share/locale/el/LC_MESSAGES/kdisplay-plasma.mo
+share/locale/fr/LC_MESSAGES/kcm_kdisplay.mo
+share/locale/fr/LC_MESSAGES/kdisplay-plasma.mo
+share/locale/hr/LC_MESSAGES/kcm_kdisplay.mo
+share/locale/hr/LC_MESSAGES/kdisplay-plasma.mo
+share/locale/it/LC_MESSAGES/kcm_kdisplay.mo
+share/locale/it/LC_MESSAGES/kdisplay-plasma.mo
+share/locale/nb_NO/LC_MESSAGES/kcm_kdisplay.mo
+share/locale/nb_NO/LC_MESSAGES/kdisplay-plasma.mo
+share/locale/pt_BR/LC_MESSAGES/kcm_kdisplay.mo
+share/locale/pt_BR/LC_MESSAGES/kdisplay-plasma.mo
+share/locale/rm/LC_MESSAGES/kcm_kdisplay.mo
+share/locale/ru/LC_MESSAGES/kcm_kdisplay.mo
+share/locale/ru/LC_MESSAGES/kdisplay-plasma.mo
+share/metainfo/org.kwinft.kdisplay.appdata.xml
+share/plasma/plasmoids/org.kwinft.kdisplay/contents/ui/PresentationModeItem.qml
+share/plasma/plasmoids/org.kwinft.kdisplay/contents/ui/ScreenLayoutSelection.qml
+share/plasma/plasmoids/org.kwinft.kdisplay/contents/ui/main.qml
+share/plasma/plasmoids/org.kwinft.kdisplay/metadata.desktop
+share/plasma/plasmoids/org.kwinft.kdisplay/metadata.json
+share/qlogging-categories5/kdisplay.categories