Please find below a diff to add a new flavor "-dolphin-plugin" in
net/nextcloudclient.

Why all this, it is useful to have a filer bowser that works
with nextcloud directories. This makes it easy to work with large
server-sync in a GUI-way.

I have only integrated the KDE Dolphin plugin. If you use GTK/GNOME you
are welcome to provide a diff for the other side.

I have sent an early copy to Adriano Barbosa (maintainer). It still has
a few errors. These should be gone.

Feedback welcome,

Rafeal

diff --git a/net/nextcloudclient/Makefile b/net/nextcloudclient/Makefile
index 6b382dc6cac..484d6688ce4 100644
--- a/net/nextcloudclient/Makefile
+++ b/net/nextcloudclient/Makefile
@@ -1,14 +1,17 @@
 USE_WXNEEDED = Yes
 
-COMMENT =      desktop sync client for Nextcloud
-
-V =            3.15.2
-DISTNAME =     nextcloudclient-${V}
+COMMENT-main =         desktop sync client for Nextcloud
+COMMENT-dolphin=       dolphin nextcloud integration plugin
 
+V =            3.15.3
 GH_ACCOUNT =   nextcloud
 GH_PROJECT =   desktop
 GH_TAGNAME =   v${V}
 
+DISTNAME =             nextcloudclient-${V}
+PKGNAME-main =         nextcloudclient-${V}
+PKGNAME-dolphin =      nextcloudclient-dolphin-plugin-${V}
+
 CATEGORIES =   net
 
 HOMEPAGE =     https://nextcloud.com
@@ -22,16 +25,23 @@ MAINTAINER =        Adriano Barbosa <barbosa....@gmail.com>
 # GPLv2+
 PERMIT_PACKAGE =       Yes
 
-WANTLIB += ${COMPILER_LIBCXX} KF6Archive KF6GuiAddons Qt6Concurrent
-WANTLIB += Qt6Core Qt6Core5Compat Qt6DBus Qt6Gui Qt6Network Qt6OpenGL
-WANTLIB += Qt6Positioning Qt6PrintSupport Qt6Qml Qt6QmlModels Qt6Quick
-WANTLIB += Qt6QuickControls2 Qt6QuickWidgets Qt6Sql Qt6Svg Qt6WebChannel
-WANTLIB += Qt6WebEngineCore Qt6WebEngineWidgets Qt6WebSockets Qt6Widgets
-WANTLIB += Qt6Xml c cloudproviders crypto gio-2.0 GL glib-2.0 gobject-2.0
-WANTLIB += intl m qt6keychain sqlite3 ssl xkbcommon z
+WANTLIB-main += ${COMPILER_LIBCXX} GL KF6Archive KF6GuiAddons Qt6Concurrent
+WANTLIB-main += Qt6Core Qt6Core5Compat Qt6DBus Qt6Gui Qt6Network Qt6OpenGL
+WANTLIB-main += Qt6Positioning Qt6PrintSupport Qt6Qml Qt6QmlMeta Qt6QmlModels
+WANTLIB-main += Qt6QmlWorkerScript Qt6Quick Qt6QuickControls2 Qt6QuickWidgets
+WANTLIB-main += Qt6Sql Qt6Svg Qt6WebChannel Qt6WebEngineCore 
Qt6WebEngineWidgets
+WANTLIB-main += Qt6WebSockets Qt6Widgets Qt6Xml c cloudproviders crypto
+WANTLIB-main += gio-2.0 glib-2.0 gobject-2.0 intl m qt6keychain sqlite3
+WANTLIB-main += ssl xkbcommon z
 
-WANTLIB += lib/inotify/inotify
+WANTLIB-dolphin += ${COMPILER_LIBCXX} GL KF6Completion KF6ConfigCore 
KF6CoreAddons
+WANTLIB-dolphin += KF6JobWidgets KF6KIOCore KF6KIOGui KF6KIOWidgets KF6Service
+WANTLIB-dolphin += KF6Solid KF6WidgetsAddons Qt6Core Qt6DBus Qt6Gui Qt6Network
+WANTLIB-dolphin += Qt6Widgets m
 
+MULTI_PACKAGES =       -main -dolphin
+PSEUDO_FLAVORS =       no_dolphin
+FLAVOR ?=
 
 MODULES =              devel/cmake \
                        x11/qt6
@@ -47,11 +57,13 @@ BUILD_DEPENDS +=    devel/kf6/extra-cmake-modules
 # for tests, but detected during configure
 BUILD_DEPENDS +=       devel/cmocka
 
-RUN_DEPENDS =          devel/desktop-file-utils \
+RUN_DEPENDS-main =     devel/desktop-file-utils \
                        misc/shared-mime-info \
                        x11/gtk+4,-guic
 
-LIB_DEPENDS =          databases/sqlite3 \
+RUN_DEPENDS-dolphin += x11/gtk+4,-guic
+
+LIB_DEPENDS-main =     databases/sqlite3 \
                        devel/kf6/karchive \
                        devel/kf6/kguiaddons \
                        devel/libinotify \
@@ -64,9 +76,9 @@ LIB_DEPENDS =         databases/sqlite3 \
                        x11/qt6/qtwebengine \
                        x11/qt6/qtwebsockets
 
+LIB_DEPENDS-dolphin =  devel/kf6/kio
+
 CONFIGURE_ARGS =       -DBUILD_SHELL_INTEGRATION_NAUTILUS=OFF \
-                       -DBUILD_SHELL_INTEGRATION_DOLPHIN=OFF \
-                       -DBUILD_SHELL_INTEGRATION=OFF \
                        -DUNIT_TESTING=ON \
                        -DWITH_CRASHREPORTER=OFF
 
@@ -86,6 +98,16 @@ CONFIGURE_ARGS +=    
-DCMAKE_INSTALL_RPATH=${LOCALBASE}/lib/inotify
 CXXFLAGS +=            -I${LOCALBASE}/include/inotify 
-I${LOCALBASE}/include/qtkeychain
 MODCMAKE_LDFLAGS =     -L${LOCALBASE}/lib/inotify
 
+.include <bsd.port.arch.mk>
+
+.if ${BUILD_PACKAGES:M-dolphin}
+CONFIGURE_ARGS +=      -DBUILD_SHELL_INTEGRATION_DOLPHIN=ON \
+                       -DBUILD_SHELL_INTEGRATION=ON
+.else
+CONFIGURE_ARGS +=      -DBUILD_SHELL_INTEGRATION_DOLPHIN=OFF \
+                       -DBUILD_SHELL_INTEGRATION=OFF
+.endif
+
 pre-configure:
        rm ${WRKSRC}/cmake/modules/FindInotify.cmake
 
diff --git a/net/nextcloudclient/distinfo b/net/nextcloudclient/distinfo
index af9caab7c49..d54e8b08764 100644
--- a/net/nextcloudclient/distinfo
+++ b/net/nextcloudclient/distinfo
@@ -1,2 +1,2 @@
-SHA256 (nextcloudclient-3.15.2.tar.gz) = 
JetSSAScSWGifPmW2+v5ICxyDdNgSc0nmeLoD3vVF1Y=
-SIZE (nextcloudclient-3.15.2.tar.gz) = 15671238
+SHA256 (nextcloudclient-3.15.3.tar.gz) = 
WksSYEyEuJhvKu50YruWg/sB9K4o7p1oggaMucrEV3M=
+SIZE (nextcloudclient-3.15.3.tar.gz) = 15683038
diff --git a/net/nextcloudclient/patches/patch-shell_integration_CMakeLists_txt 
b/net/nextcloudclient/patches/patch-shell_integration_CMakeLists_txt
new file mode 100644
index 00000000000..34f7d991de1
--- /dev/null
+++ b/net/nextcloudclient/patches/patch-shell_integration_CMakeLists_txt
@@ -0,0 +1,12 @@
+Never use KF5
+Index: shell_integration/CMakeLists.txt
+--- shell_integration/CMakeLists.txt.orig
++++ shell_integration/CMakeLists.txt
+@@ -11,7 +11,6 @@ if( UNIX AND NOT APPLE )
+   endif()
+ 
+   if(BUILD_SHELL_INTEGRATION_DOLPHIN)
+-    find_package(KF5KIO "5.16" CONFIG QUIET)
+     find_package(KF6KIO "5.240" CONFIG QUIET)
+     if(KF5KIO_FOUND OR KF6KIO_FOUND)
+       add_subdirectory(dolphin)
diff --git a/net/nextcloudclient/pkg/DESCR-dolphin 
b/net/nextcloudclient/pkg/DESCR-dolphin
new file mode 100644
index 00000000000..48aaf755ef9
--- /dev/null
+++ b/net/nextcloudclient/pkg/DESCR-dolphin
@@ -0,0 +1 @@
+The dolphin file manager integration plugin.
diff --git a/net/nextcloudclient/pkg/DESCR-main 
b/net/nextcloudclient/pkg/DESCR-main
new file mode 100644
index 00000000000..d7238d70075
--- /dev/null
+++ b/net/nextcloudclient/pkg/DESCR-main
@@ -0,0 +1,5 @@
+Nextcloud offers the industry-leading, on-premises content collaboration
+platform. Our technology combines the convenience and ease of use of
+consumer-grade solutions like Dropbox and Google Drive with the security,
+privacy and control business needs. nextcloudclient is a tool to synchronize
+files from Nextcloud Server with your computer.
diff --git a/net/nextcloudclient/pkg/PLIST-dolphin 
b/net/nextcloudclient/pkg/PLIST-dolphin
new file mode 100644
index 00000000000..9c7fc244ff2
--- /dev/null
+++ b/net/nextcloudclient/pkg/PLIST-dolphin
@@ -0,0 +1,64 @@
+@so lib/libnextclouddolphinpluginhelper.so
+lib/qt6/plugins/kf6/
+lib/qt6/plugins/kf6/kfileitemaction/
+@so lib/qt6/plugins/kf6/kfileitemaction/nextclouddolphinactionplugin.so
+lib/qt6/plugins/kf6/overlayicon/
+@so lib/qt6/plugins/kf6/overlayicon/nextclouddolphinoverlayplugin.so
+share/dbus-1/services/com.nextcloudgmbh.Nextcloud.service
+share/icons/hicolor/128x128/apps/Nextcloud_error.png
+share/icons/hicolor/128x128/apps/Nextcloud_error_shared.png
+share/icons/hicolor/128x128/apps/Nextcloud_ok.png
+share/icons/hicolor/128x128/apps/Nextcloud_ok_shared.png
+share/icons/hicolor/128x128/apps/Nextcloud_sync.png
+share/icons/hicolor/128x128/apps/Nextcloud_sync_shared.png
+share/icons/hicolor/128x128/apps/Nextcloud_warn.png
+share/icons/hicolor/128x128/apps/Nextcloud_warn_shared.png
+share/icons/hicolor/16x16/apps/Nextcloud_error.png
+share/icons/hicolor/16x16/apps/Nextcloud_error_shared.png
+share/icons/hicolor/16x16/apps/Nextcloud_ok.png
+share/icons/hicolor/16x16/apps/Nextcloud_ok_shared.png
+share/icons/hicolor/16x16/apps/Nextcloud_sync.png
+share/icons/hicolor/16x16/apps/Nextcloud_sync_shared.png
+share/icons/hicolor/16x16/apps/Nextcloud_warn.png
+share/icons/hicolor/16x16/apps/Nextcloud_warn_shared.png
+share/icons/hicolor/256x256/apps/Nextcloud_error.png
+share/icons/hicolor/256x256/apps/Nextcloud_error_shared.png
+share/icons/hicolor/256x256/apps/Nextcloud_ok.png
+share/icons/hicolor/256x256/apps/Nextcloud_ok_shared.png
+share/icons/hicolor/256x256/apps/Nextcloud_sync.png
+share/icons/hicolor/256x256/apps/Nextcloud_sync_shared.png
+share/icons/hicolor/256x256/apps/Nextcloud_warn.png
+share/icons/hicolor/256x256/apps/Nextcloud_warn_shared.png
+share/icons/hicolor/32x32/apps/Nextcloud_error.png
+share/icons/hicolor/32x32/apps/Nextcloud_error_shared.png
+share/icons/hicolor/32x32/apps/Nextcloud_ok.png
+share/icons/hicolor/32x32/apps/Nextcloud_ok_shared.png
+share/icons/hicolor/32x32/apps/Nextcloud_sync.png
+share/icons/hicolor/32x32/apps/Nextcloud_sync_shared.png
+share/icons/hicolor/32x32/apps/Nextcloud_warn.png
+share/icons/hicolor/32x32/apps/Nextcloud_warn_shared.png
+share/icons/hicolor/48x48/apps/Nextcloud_error.png
+share/icons/hicolor/48x48/apps/Nextcloud_error_shared.png
+share/icons/hicolor/48x48/apps/Nextcloud_ok.png
+share/icons/hicolor/48x48/apps/Nextcloud_ok_shared.png
+share/icons/hicolor/48x48/apps/Nextcloud_sync.png
+share/icons/hicolor/48x48/apps/Nextcloud_sync_shared.png
+share/icons/hicolor/48x48/apps/Nextcloud_warn.png
+share/icons/hicolor/48x48/apps/Nextcloud_warn_shared.png
+share/icons/hicolor/64x64/apps/Nextcloud_error.png
+share/icons/hicolor/64x64/apps/Nextcloud_error_shared.png
+share/icons/hicolor/64x64/apps/Nextcloud_ok.png
+share/icons/hicolor/64x64/apps/Nextcloud_ok_shared.png
+share/icons/hicolor/64x64/apps/Nextcloud_sync.png
+share/icons/hicolor/64x64/apps/Nextcloud_sync_shared.png
+share/icons/hicolor/64x64/apps/Nextcloud_warn.png
+share/icons/hicolor/64x64/apps/Nextcloud_warn_shared.png
+share/icons/hicolor/72x72/apps/Nextcloud_error.png
+share/icons/hicolor/72x72/apps/Nextcloud_error_shared.png
+share/icons/hicolor/72x72/apps/Nextcloud_ok.png
+share/icons/hicolor/72x72/apps/Nextcloud_ok_shared.png
+share/icons/hicolor/72x72/apps/Nextcloud_sync.png
+share/icons/hicolor/72x72/apps/Nextcloud_sync_shared.png
+share/icons/hicolor/72x72/apps/Nextcloud_warn.png
+share/icons/hicolor/72x72/apps/Nextcloud_warn_shared.png
+@tag gtk-update-icon-cache %D/share/icons/hicolor
diff --git a/net/nextcloudclient/pkg/PLIST-main 
b/net/nextcloudclient/pkg/PLIST-main
new file mode 100644
index 00000000000..e580be8a5c6
--- /dev/null
+++ b/net/nextcloudclient/pkg/PLIST-main
@@ -0,0 +1,101 @@
+@bin bin/nextcloud
+@bin bin/nextcloudcmd
+include/nextcloudsync/
+include/nextcloudsync/creds/
+include/nextcloudsync/creds/abstractcredentials.h
+include/nextcloudsync/creds/httpcredentials.h
+include/nextcloudsync/mirall/
+include/nextcloudsync/mirall/account.h
+include/nextcloudsync/mirall/configfile.h
+include/nextcloudsync/mirall/networkjobs.h
+include/nextcloudsync/mirall/progressdispatcher.h
+include/nextcloudsync/mirall/syncengine.h
+include/nextcloudsync/mirall/syncfileitem.h
+include/nextcloudsync/mirall/syncresult.h
+@lib lib/libnextcloud_csync.so.${LIBnextcloud_csync_VERSION}
+@lib lib/libnextcloudsync.so.${LIBnextcloudsync_VERSION}
+@lib lib/libnextcloudsync_vfs_suffix.so.${LIBnextcloudsync_vfs_suffix_VERSION}
+share/applications/com.nextcloud.desktopclient.nextcloud.desktop
+share/examples/Nextcloud/
+@sample ${SYSCONFDIR}/Nextcloud/
+share/examples/Nextcloud/sync-exclude.lst
+@sample ${SYSCONFDIR}/Nextcloud/sync-exclude.lst
+share/icons/hicolor/1024x1024/
+share/icons/hicolor/1024x1024/apps/
+share/icons/hicolor/1024x1024/apps/Nextcloud.png
+share/icons/hicolor/128x128/apps/Nextcloud.png
+share/icons/hicolor/16x16/apps/Nextcloud.png
+share/icons/hicolor/24x24/apps/Nextcloud.png
+share/icons/hicolor/256x256/apps/Nextcloud.png
+share/icons/hicolor/32x32/apps/Nextcloud.png
+share/icons/hicolor/48x48/apps/Nextcloud.png
+share/icons/hicolor/512x512/apps/Nextcloud.png
+share/icons/hicolor/64x64/apps/Nextcloud.png
+share/mime/packages/nextcloud.xml
+share/nextcloud/
+share/nextcloud/i18n/
+share/nextcloud/i18n/client_TW.qm
+share/nextcloud/i18n/client_af.qm
+share/nextcloud/i18n/client_ar.qm
+share/nextcloud/i18n/client_bg.qm
+share/nextcloud/i18n/client_br.qm
+share/nextcloud/i18n/client_ca.qm
+share/nextcloud/i18n/client_cs.qm
+share/nextcloud/i18n/client_da.qm
+share/nextcloud/i18n/client_de.qm
+share/nextcloud/i18n/client_el.qm
+share/nextcloud/i18n/client_en.qm
+share/nextcloud/i18n/client_en_GB.qm
+share/nextcloud/i18n/client_eo.qm
+share/nextcloud/i18n/client_es.qm
+share/nextcloud/i18n/client_es_AR.qm
+share/nextcloud/i18n/client_es_CL.qm
+share/nextcloud/i18n/client_es_CO.qm
+share/nextcloud/i18n/client_es_CR.qm
+share/nextcloud/i18n/client_es_DO.qm
+share/nextcloud/i18n/client_es_EC.qm
+share/nextcloud/i18n/client_es_GT.qm
+share/nextcloud/i18n/client_es_HN.qm
+share/nextcloud/i18n/client_es_MX.qm
+share/nextcloud/i18n/client_es_SV.qm
+share/nextcloud/i18n/client_et.qm
+share/nextcloud/i18n/client_eu.qm
+share/nextcloud/i18n/client_fa.qm
+share/nextcloud/i18n/client_fi.qm
+share/nextcloud/i18n/client_fr.qm
+share/nextcloud/i18n/client_ga.qm
+share/nextcloud/i18n/client_gl.qm
+share/nextcloud/i18n/client_he.qm
+share/nextcloud/i18n/client_hr.qm
+share/nextcloud/i18n/client_hu.qm
+share/nextcloud/i18n/client_id.qm
+share/nextcloud/i18n/client_is.qm
+share/nextcloud/i18n/client_it.qm
+share/nextcloud/i18n/client_ja.qm
+share/nextcloud/i18n/client_ko.qm
+share/nextcloud/i18n/client_lt_LT.qm
+share/nextcloud/i18n/client_lv.qm
+share/nextcloud/i18n/client_mk.qm
+share/nextcloud/i18n/client_nb_NO.qm
+share/nextcloud/i18n/client_nl.qm
+share/nextcloud/i18n/client_oc.qm
+share/nextcloud/i18n/client_pl.qm
+share/nextcloud/i18n/client_pt.qm
+share/nextcloud/i18n/client_pt_BR.qm
+share/nextcloud/i18n/client_ro.qm
+share/nextcloud/i18n/client_ru.qm
+share/nextcloud/i18n/client_sc.qm
+share/nextcloud/i18n/client_sk.qm
+share/nextcloud/i18n/client_sl.qm
+share/nextcloud/i18n/client_sr.qm
+share/nextcloud/i18n/client_sv.qm
+share/nextcloud/i18n/client_th.qm
+share/nextcloud/i18n/client_tr.qm
+share/nextcloud/i18n/client_ug.qm
+share/nextcloud/i18n/client_uk.qm
+share/nextcloud/i18n/client_zh_CN.qm
+share/nextcloud/i18n/client_zh_HK.qm
+share/nextcloud/i18n/client_zh_TW.qm
+@tag update-desktop-database
+@tag gtk-update-icon-cache %D/share/icons/hicolor
+@tag update-mime-database

Reply via email to