Bug 261333 - graphics/qgis: pulls in misc/qt5-doc, but is devel/qt5-qdoc needed instead?
Summary: graphics/qgis: pulls in misc/qt5-doc, but is devel/qt5-qdoc needed instead?
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-ports-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-01-19 12:19 UTC by Martin Birgmeier
Modified: 2022-02-20 18:24 UTC (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Birgmeier 2022-01-19 12:19:27 UTC
This is probably not a bug, but why does graphics/qgis depend on misc/qt5-doc? If I understand correctly the latter is the qt5 documentation itself, and why should that be needed for qgis?

Maybe devel/qt5-qdoc is really meant here?

-- Martin
Comment 1 Rainer Hurling freebsd_committer 2022-01-21 06:42:53 UTC
Thanks, Martin, for the report. Good question!

I seem to remember that qt-doc once had a role for dependents (plugins?). Unfortunately I can't find my records anymore. If memory does not deceive me and doc should be used, however, using qdoc is probably more correct.

I have since built and installed QGIS (1) without doc and (2) with qdoc without doc. I don't notice anything missing at runtime. So I will probably do without it completely in the future.

Currently I am still trying to get information from QGIS developers if doc/qdoc should be used for reasons I don't know.


One more thought about the dependencies in QGIS:
The dependency list in the QGIS port is unfortunately very high. Many of the dependencies are necessary for good functionality of plugins that are usually included. Otherwise such plugins don't work without giving the user concrete hints about the causes. I am considering whether and in what form such dependencies can be included only optionally.
Comment 2 Martin Birgmeier 2022-01-21 14:46:08 UTC
Hello Rainer,

Thank you for your quick reply.

In my opinion the other dependencies are not so much of an issue because usually one will really want to work with many plugins anyway. Only qt5-doc is a nuisance because it is huge (occupies much disk space).

-- Martin
Comment 3 Adriaan de Groot freebsd_committer 2022-01-23 22:48:34 UTC
To fill this out:

- misc/qt5-doc is the HTML documentation of Qt itself. It's not even *recent* documentation, since it was pinned to 5.12 when the docs tarball was dropped by upstream.
- misc/qt5-qdoc is the documentation-generation tool.

Looking at `USE_QT` though:
- there is a dep on webkit, *and* webengine. Yay, two complete browser engines (one of which is seriously depreated). Something to prod upstream about.
- designer should be a _build dep, it is *extremely* rare that an application needs to have a UI-design-tool installed (like linguist is a _build dep: you don't need the UI-translation-helper-application for translators)
- doc should most likely be qdoc_build. You don't need the docs-generation tools at runtime.
- testlib should be testlib_build, unless running the tests at runtime is an important thing.
- uitools should be uitools_build, same reason.
Comment 4 Rainer Hurling freebsd_committer 2022-01-25 20:53:29 UTC
Hi Adriaan,
Thank you very much for the assessment and detailed consideration of individual dependencies. My answer took some time because on the one hand many geo-based dependencies have been updated in the meantime and on the other hand many of the suggestions had to be tested against different configurations of QGIS and its extensions.

After much trial and error, the need for changes to the graphics/qgis port currently looks something like this:

It looks like restricting designer, testlib, uitools and qdoc to _build does not introduce any new problems at runtime and therefore makes sense :D

The change from doc to qdoc seems correct, thanks again to Martin for that.

I have testwise then also taken out the dependency for webkit, for webengine and for both and run different tests with dependencies (= QGIS plugins). Here some surprises showed up.


It turned out that without webkit (WITH_QTWEBKIT=off) extensions like 'Data Plotly' don't even start. A user of this extension is not even notified in case of a crash that functionalities provided by webkit are missing. webengine cannot provide the missing functionalities for extensions like 'Data Plotly'.


Building QGIS without webengine already imposes significant limitations on QGIS itself. During the installation 6030 entries in pkg-plist (!) are missing, concerning various documentations, but also many icons (svg). It would have to be analyzed in more detail whether these files only play a role for QGIS Server. For this I lacked the time so far.

The dependency list of QGIS could also be limited by the port introducing new options for extensions that install dependencies only when a user needs them. However, this would have to be foreseeable and decided before installation. Afterwards, during the runtime of QGIS, a user hardly gets helpful hints about missing dependencies when she wants to install new extensions.


In the next commit for graphics/qgis I will therefore only change designer, qdoc, testlib and uitools to _build, but leave webkit and webengine unchanged. Unless someone else has some tips how to solve the described dilemma, of course ;)
Comment 5 commit-hook freebsd_committer 2022-02-20 10:01:52 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=10120efedc79c6caf872a32f65e241631af3919e

commit 10120efedc79c6caf872a32f65e241631af3919e
Author:     Rainer Hurling <rhurlin@FreeBSD.org>
AuthorDate: 2022-02-20 09:50:01 +0000
Commit:     Rainer Hurling <rhurlin@FreeBSD.org>
CommitDate: 2022-02-20 09:50:01 +0000

    graphics/qgis: Update to 3.24.0

    Changelog: https://changelog.qgis.org/en/qgis/version/3.24/

    This update takes into account suggestions by Martin Birgmeier and
    adrig@ in PR 261333 to reduce the number of dependents, especially
    for Qt5. Dependencies like webengine and webkit must remain,
    otherwise functionalities for QGIS and for important extensions are
    missing, see PR.

    PR:             261333
    Reported by:    portscout, Repology

 graphics/qgis/Makefile  |  9 +++----
 graphics/qgis/distinfo  |  6 ++---
 graphics/qgis/pkg-plist | 71 +++++++++++++++++++++++--------------------------
 3 files changed, 41 insertions(+), 45 deletions(-)
Comment 6 Rainer Hurling freebsd_committer 2022-02-20 10:05:20 UTC
Hi, I just committed 3.24.0, which also includes most of the suggestions made here. Many thanks again!

For the LTR version, there will be an update from 3.16.16 to 3.22.4 in the next time, which will also contain these changes.
Comment 7 Martin Birgmeier 2022-02-20 17:00:57 UTC
Hi Rainer,

Thank you for your efforts, the new version works beautifully!

-- Martin
Comment 8 Rainer Hurling freebsd_committer 2022-02-20 18:24:36 UTC
(In reply to Martin Birgmeier from comment #7)
Hi Martin,
Many thanks for the feedback :)