Bug 281544 - deskutils/nextcloudclient: update to 3.14.1
Summary: deskutils/nextcloudclient: update to 3.14.1
Status: In Progress
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Michael Reifenberger
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-09-16 21:06 UTC by Guido Falsi
Modified: 2024-11-15 17:11 UTC (History)
3 users (show)

See Also:
bugzilla: maintainer-feedback? (mr)


Attachments
patch v1 (4.75 KB, patch)
2024-09-16 21:06 UTC, Guido Falsi
no flags Details | Diff
patch v2 (4.75 KB, patch)
2024-09-17 16:36 UTC, Guido Falsi
no flags Details | Diff
patch v3 (4.75 KB, patch)
2024-09-27 22:03 UTC, Guido Falsi
no flags Details | Diff
Fix guiaddons conflict (1.57 KB, patch)
2024-10-01 11:14 UTC, Guido Falsi
madpilot: maintainer-approval? (vvd)
madpilot: maintainer-approval? (mr)
Details | Diff
build log on live system with KDE5 installed (873.33 KB, text/plain)
2024-10-23 23:48 UTC, Vladimir Druzenko
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Guido Falsi freebsd_committer freebsd_triage 2024-09-16 21:06:31 UTC
Created attachment 253611 [details]
patch v1

Hi!

I'm attaching a patch to update to the latest 3.14 release.

This new version migrated to qt6, so the patch contains the required changes.

Also, DOCs failed to build for me due to missing image files. I worked around that by removing references to those images in the doc sources.

This version is working fine on my PC and laptop. I also tested it in poudriere for supported releases +HEAD and it works fine there.

Thanks in advance!
Comment 1 Vladimir Druzenko freebsd_committer freebsd_triage 2024-09-16 23:28:49 UTC
ecm => ecm:build
Don't need ecm at runtime - tested with 3.13.3.
Comment 2 Guido Falsi freebsd_committer freebsd_triage 2024-09-17 16:36:46 UTC
Created attachment 253630 [details]
patch v2

Updated patch making KDE ecm a build time only requirement.

Thanks to vvd@ for reporting it!
Comment 3 Michael Reifenberger freebsd_committer freebsd_triage 2024-09-19 09:40:09 UTC
Hi,
currently I'm investigating a build error during manual build:
...
------------
Running 'makeindex -s python.ist  -o "NextcloudClientManual.ind" "NextcloudClientManual.idx"'
------------
This is makeindex, version 2.17 [TeX Live 2024] (kpathsea + Thai support).
Scanning style file ./python.ist.......done (7 attributes redefined, 0 ignored).
Scanning input file NextcloudClientManual.idx....done (56 entries accepted, 0 rejected).
Sorting entries....done (420 comparisons).
Generating output file NextcloudClientManual.ind....done (103 lines written, 0 warnings).
Output written in NextcloudClientManual.ind.
Transcript written in NextcloudClientManual.ilg.
Latexmk: applying rule 'pdflatex'...
Rule 'pdflatex':  Reasons for rerun
Changed files or newly in use/created:
  NextcloudClientManual.ind

------------
Run number 1 of rule 'pdflatex'
------------
------------
Running 'pdflatex   -recorder  "NextcloudClientManual.tex"'
------------
...
LaTeX Warning: File `{images/building/visual-studio-installer}.png' not found o
n input line 2608.


LaTeX Warning: File `{images/building/visual-studio-installer}.png' not found o
n input line 2608.


! Package pdftex.def Error: File `images/building/visual-studio-installer.png' 
not found: using draft setting.

See the pdftex.def package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.2608 ...s/building/visual-studio-installer}.png}

...
Comment 4 Guido Falsi freebsd_committer freebsd_triage 2024-09-19 17:28:22 UTC
(In reply to Michael Reifenberger from comment #3)

I encountered this one too, the patch I added in files/patch-doc_building.rst addresses these by removing references to these missing files.
Comment 5 Guido Falsi freebsd_committer freebsd_triage 2024-09-27 22:03:59 UTC
Created attachment 253861 [details]
patch v3

Adding patch updating to newer version 3.14.1
Comment 6 commit-hook freebsd_committer freebsd_triage 2024-09-28 11:31:30 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0ae245619be4fb1d0e4ab58a8cd46b3183020f73

commit 0ae245619be4fb1d0e4ab58a8cd46b3183020f73
Author:     Michael Reifenberger <mr@FreeBSD.org>
AuthorDate: 2024-09-28 11:27:51 +0000
Commit:     Michael Reifenberger <mr@FreeBSD.org>
CommitDate: 2024-09-28 11:30:57 +0000

    deskutils/nextcloudclient: update to 3.14.1

    Update and switch to QT6

    PR:             281544
    Reported by:    Guido Falsi madpilot@

 deskutils/nextcloudclient/Makefile                 | 19 ++++++++--------
 deskutils/nextcloudclient/distinfo                 |  6 +++---
 .../files/patch-doc_building.rst (new)             | 25 ++++++++++++++++++++++
 deskutils/nextcloudclient/pkg-plist                |  8 +++++--
 4 files changed, 43 insertions(+), 15 deletions(-)
Comment 7 Michael Reifenberger freebsd_committer freebsd_triage 2024-09-28 11:33:09 UTC
Yes, that worked.
Its now committed after testing.

Thanks for Providing!
Comment 8 Vladimir Druzenko freebsd_committer freebsd_triage 2024-09-28 14:02:15 UTC
Is it mandatory to use qt6 now?

===>>> nextcloudclient-3.13.3 >> devel/kf6-kio >> devel/kf6-kbookmarks >> x11-themes/kf6-kcolorscheme >> x11-toolkits/kf6-kguiaddons (15/30)

===>  Installing for kf6-kguiaddons-6.3.0
===>  Checking if kf6-kguiaddons is already installed
===>   Registering installation for kf6-kguiaddons-6.3.0 as automatic
Installing kf6-kguiaddons-6.3.0...
pkg-static: kf6-kguiaddons-6.3.0 conflicts with kf5-kguiaddons-5.116.0 (installs files into the same place).  Problematic file: /usr/local/bin/kde-geo-uri-handler
*** Error code 1

Is it possible to install nextcloudclient-3.14.1 together with KDE5?
Comment 9 Guido Falsi freebsd_committer freebsd_triage 2024-09-28 18:04:35 UTC
(In reply to Vladimir Druzenko from comment #8)

Starting with version 3.14 qt6 is the only supported version [1], so yes, it is mandatory, unless we stop al 3.13.x


Looks like it is possible, though, to not strictly depend on gui addons [2], but there is no flag to force not using it, so it could easily become an hidden requirements for people building on live systems.

I could take abetter look, most probably the cmakefile will require patching.

BTW maybe you should file a separate bug report for this.


BTW I don't use KDE, so I was not aware of such conflict.


[1] https://github.com/nextcloud/desktop/blob/fab20289444e6d70ef1422752f22679d47c00849/CMakeLists.txt#L27

[2] https://github.com/nextcloud/desktop/blob/fab20289444e6d70ef1422752f22679d47c00849/src/gui/CMakeLists.txt#L562
Comment 10 Guido Falsi freebsd_committer freebsd_triage 2024-10-01 11:14:53 UTC
Created attachment 253933 [details]
Fix guiaddons conflict

Hi,

I created the attached patch.

Adds an option to enable guiaddons semparately, that implies KDE if enabled.

The only difference in upstream code caused by not having guiaddons is related to clipboard management [1]

@vvd can you test it and report back if this actually fixes your issue?


[1] https://github.com/nextcloud/desktop/blob/a9fe12325b559a0923939f18cda48bc65a129899/src/gui/socketapi/socketapi.cpp#L79
Comment 11 Vladimir Druzenko freebsd_committer freebsd_triage 2024-10-01 23:35:19 UTC
(In reply to Guido Falsi from comment #10)
nextcloudclient-3.13.3 >> devel/kf6-kio >> devel/kf6-kbookmarks >> x11-themes/kf6-kcolorscheme >> x11-toolkits/kf6-kguiaddons (4/4)

Moved kio from KDE_USE to GUIADDONS_USE (BTW, GUIADDONS msut be early than KDE):

# DEVELOPER=YES make check-plist stage-qa
...
====> Running Q/A tests (stage-qa)
Error: /usr/local/lib/libnextclouddolphinpluginhelper.so is linked to /usr/local/lib/qt5/libQt5Network.so.5 from net/qt5-network but it is not declared as a dependency
Warning: you need USES=qt:5 and USE_QT+=network
Error: /usr/local/lib/libnextclouddolphinpluginhelper.so is linked to /usr/local/lib/qt5/libQt5Core.so.5 from devel/qt5-core but it is not declared as a dependency
Warning: you need USES=qt:5 and USE_QT+=core
Error: /usr/local/lib/qt5/plugins/kf5/kfileitemaction/nextclouddolphinactionplugin.so is linked to /usr/local/lib/libKF5KIOWidgets.so.5 from devel/kf5-kio but it is not declared as a dependency
Warning: you need to use USE_KDE+=kio
Error: /usr/local/lib/qt5/plugins/kf5/kfileitemaction/nextclouddolphinactionplugin.so is linked to /usr/local/lib/libKF5KIOGui.so.5 from devel/kf5-kio but it is not declared as a dependency
Warning: you need to use USE_KDE+=kio
Error: /usr/local/lib/qt5/plugins/kf5/kfileitemaction/nextclouddolphinactionplugin.so is linked to /usr/local/lib/libKF5KIOCore.so.5 from devel/kf5-kio but it is not declared as a dependency
Warning: you need to use USE_KDE+=kio
Error: /usr/local/lib/qt5/plugins/kf5/kfileitemaction/nextclouddolphinactionplugin.so is linked to /usr/local/lib/qt5/libQt5Concurrent.so.5 from devel/qt5-concurrent but it is not declared as a dependency
Warning: you need USES=qt:5 and USE_QT+=concurrent
Error: /usr/local/lib/qt5/plugins/kf5/kfileitemaction/nextclouddolphinactionplugin.so is linked to /usr/local/lib/libKF5Service.so.5 from devel/kf5-kservice but it is not declared as a dependency
Warning: you need USE_KDE+=service
Error: /usr/local/lib/qt5/plugins/kf5/kfileitemaction/nextclouddolphinactionplugin.so is linked to /usr/local/lib/libKF5JobWidgets.so.5 from x11-toolkits/kf5-kjobwidgets but it is not declared as a dependency
Warning: you need USE_KDE+=jobwidgets
Error: /usr/local/lib/qt5/plugins/kf5/kfileitemaction/nextclouddolphinactionplugin.so is linked to /usr/local/lib/libKF5Solid.so.5 from devel/kf5-solid but it is not declared as a dependency
Warning: you need to use USE_KDE+=solid
Error: /usr/local/lib/qt5/plugins/kf5/kfileitemaction/nextclouddolphinactionplugin.so is linked to /usr/local/lib/libKF5Completion.so.5 from x11-toolkits/kf5-kcompletion but it is not declared as a dependency
Warning: you need USE_KDE+=completion
Error: /usr/local/lib/qt5/plugins/kf5/kfileitemaction/nextclouddolphinactionplugin.so is linked to /usr/local/lib/libKF5WindowSystem.so.5 from x11/kf5-kwindowsystem but it is not declared as a dependency
Warning: you need USE_KDE+=windowsystem
Error: /usr/local/lib/qt5/plugins/kf5/kfileitemaction/nextclouddolphinactionplugin.so is linked to /usr/local/lib/libKF5WidgetsAddons.so.5 from x11-toolkits/kf5-kwidgetsaddons but it is not declared as a dependency
Warning: you need USE_KDE+=widgetsaddons
Error: /usr/local/lib/qt5/plugins/kf5/kfileitemaction/nextclouddolphinactionplugin.so is linked to /usr/local/lib/libKF5ConfigCore.so.5 from devel/kf5-kconfig but it is not declared as a dependency
Warning: you need USE_KDE+=config
Error: /usr/local/lib/qt5/plugins/kf5/kfileitemaction/nextclouddolphinactionplugin.so is linked to /usr/local/lib/qt5/libQt5Widgets.so.5 from x11-toolkits/qt5-widgets but it is not declared as a dependency
Warning: you need USES=qt:5 and USE_QT+=widgets
Error: /usr/local/lib/qt5/plugins/kf5/kfileitemaction/nextclouddolphinactionplugin.so is linked to /usr/local/lib/qt5/libQt5Gui.so.5 from x11-toolkits/qt5-gui but it is not declared as a dependency
Warning: you need USES=qt:5 and USE_QT+=gui
Error: /usr/local/lib/qt5/plugins/kf5/kfileitemaction/nextclouddolphinactionplugin.so is linked to /usr/local/lib/libKF5CoreAddons.so.5 from devel/kf5-kcoreaddons but it is not declared as a dependency
Warning: you need USE_KDE+=coreaddons
Error: /usr/local/lib/qt5/plugins/kf5/kfileitemaction/nextclouddolphinactionplugin.so is linked to /usr/local/lib/qt5/libQt5DBus.so.5 from devel/qt5-dbus but it is not declared as a dependency
Warning: you need USES=qt:5 and USE_QT+=dbus
Warning: you might not need LIB_DEPENDS on libqt6keychain.so
Warning: you might not need LIB_DEPENDS on libKF6Completion.so
Warning: you might not need LIB_DEPENDS on libKF6ConfigCore.so
Warning: you might not need LIB_DEPENDS on libKF6CoreAddons.so
Warning: you might not need LIB_DEPENDS on libKF6JobWidgets.so
Warning: you might not need LIB_DEPENDS on libKF6Service.so
Warning: you might not need LIB_DEPENDS on libKF6Solid.so
Warning: you might not need LIB_DEPENDS on libKF6WidgetsAddons.so
Warning: you might not need LIB_DEPENDS on libKF6WindowSystem.so
====> Checking for pkg-plist issues (check-plist)
===> Parsing plist
===> Checking for items in STAGEDIR missing from pkg-plist
Error: Orphaned: lib/qt5/plugins/kf5/kfileitemaction/nextclouddolphinactionplugin.so
Error: Orphaned: lib/qt5/plugins/kf5/overlayicon/nextclouddolphinoverlayplugin.so
===> Checking for items in pkg-plist which are not in STAGEDIR
Error: Missing: %%QT_PLUGINDIR%%/kf6/kfileitemaction/nextclouddolphinactionplugin.so
Error: Missing: %%QT_PLUGINDIR%%/kf6/overlayicon/nextclouddolphinoverlayplugin.so
===> Error: Plist issues found.
*** Error code 1
Comment 12 Guido Falsi freebsd_committer freebsd_triage 2024-10-02 20:15:20 UTC
(In reply to Vladimir Druzenko from comment #11)

Looks like the Dolphin integration (and that only, not the main UI) has some support for KDE5, and so can somehow link with QT5. I'm not sure how that plays with being linked with QT6 in the main binary at the same time though.

Also, I don't know the extent of patching required to make that happen.

OTOH if KIO is required by the main binary and that depends on guiaddons I really supect it's impossible to get rid of that anyway.

I'll try to find time to take a better look in the next few days.
Comment 13 Guido Falsi freebsd_committer freebsd_triage 2024-10-23 21:42:32 UTC
(In reply to Vladimir Druzenko from comment #11)

Hi,

I have experimented a little with this in poudriere but I'm not sure what is going on with the partial log you posted.

My impression is that to link against KDE5, this port requires parts from qt5, qt6, kde5 to be simultaneously installed, but I don't think there is a proper way to describe such a dependency in ports Makefiles.

But, if the required parts are present on the system it will link correctly, and provide an hopefully working binary set. I suspect it can be baked up with a mix of USES and LIB_DEPENDS.

Could you share the full build log from which your snippet comes from? Other parts (for example the configure section) could provide some more hints.
Comment 14 Vladimir Druzenko freebsd_committer freebsd_triage 2024-10-23 23:03:40 UTC
(In reply to Guido Falsi from comment #13)
Hello!
Build in progress.
Comment 15 Vladimir Druzenko freebsd_committer freebsd_triage 2024-10-23 23:48:44 UTC
Created attachment 254471 [details]
build log on live system with KDE5 installed
Comment 16 commit-hook freebsd_committer freebsd_triage 2024-10-26 21:14:59 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=5a232f461b1598a8d0ed1554c0cfbbb7b283c801

commit 5a232f461b1598a8d0ed1554c0cfbbb7b283c801
Author:     Michael Reifenberger <mr@FreeBSD.org>
AuthorDate: 2024-10-26 21:08:14 +0000
Commit:     Michael Reifenberger <mr@FreeBSD.org>
CommitDate: 2024-10-26 21:14:12 +0000

    deskutils/nextcloudclient: Update and add option

    Update to 3.14.2 and add GUIADDONS option from PR

    PR:             281544

 deskutils/nextcloudclient/Makefile | 14 +++++++++++---
 deskutils/nextcloudclient/distinfo |  6 +++---
 2 files changed, 14 insertions(+), 6 deletions(-)
Comment 17 Michael Reifenberger freebsd_committer freebsd_triage 2024-10-26 21:22:45 UTC
Hi,
since it builds fine with/without the option cleanly in poudriere I commited the 
option together with the latest update.


BTW:
even if GUIADDONS implies KDE shouldn't the USE line be:

GUIADDONS_USE=		KDE+=guiaddons


I'm not sure.
Comment 18 Gleb Popov freebsd_committer freebsd_triage 2024-10-27 06:54:08 UTC
I don't quite understand what's the point in this option. The port already pulls a bunch of KDE Frameworks when KDE is enabled and putting one of the frameworks under a separate option seems pointless.
Comment 19 Guido Falsi freebsd_committer freebsd_triage 2024-10-27 09:51:49 UTC
(In reply to Gleb Popov from comment #18)

The port at present really supports only kde6, and pulls in only kde6 dependencies.

The software build system does pick up kde5 libraries if they happen to be present, which should not happen in the ports tree. It created hidden dependencies.

What I'd like to do is explicitly add kde5 dependencies under a specific option, to allow properly depending on them if required, but the option would be disabled by default. When disabled the software cmake files should NOT pick up kde5 dependencies even if present.

Unluckily the USES flags do not provide a way to depend on kde5 and kde6 at the same time, hence the difficulties.

I have limited time available to work on this so the solution will not be fast.

This is all caused by this software migrating its main interface to qt6 only and this causes the need to link to both qt6, kde6 and, only for the dolphin plugin, to qt5 and kde5 to get kde5 support. Looks like nextcloudclient itself pulls this out successfully, but the ports system is not really able to describe the build environment required to get this in a clean way, so I'm trying to get a not too dirty hack to make this work.
Comment 20 Vladimir Druzenko freebsd_committer freebsd_triage 2024-10-27 23:51:15 UTC
(In reply to Gleb Popov from comment #18)
Things are much worse - without this option in the disabled state, the port compiled on poudriere cannot be installed on a system with KDE5: "kf6-kguiaddons-6.3.0 conflicts with kf5-kguiaddons-5.116.0".
Comment 21 Guido Falsi freebsd_committer freebsd_triage 2024-11-15 17:11:29 UTC
(In reply to Vladimir Druzenko from comment #20)

Hi,

I have made a bunch of tests, but I'm unable to reproduce anything looking like the log you posted.

The problem is that during the configure stage cmake is always not even trying to find KDE5 components and simply skips building the dolphin integration. I'm also always getting a waning about missing KF6GuiAddons which for some reason you are not getting.

I'm clearly failing to understand what if triggering the KF5 version if the plugin being built.

Maybe if you posted your port configuration and a list of installed packages it could give some insight.

It is also difficult to describe this kind of configuration with the ports framework in poudriere, I could need some help from someone with a deep CMake understanding, I only have a basic understanding about how it works.