This needs fixes in both qtbase and qttools. In addition, I will upload a no-change rebuild of qtdeclarative to demonstrate that the fix works.
Updating the description accordingly. ** Description changed: [Impact] The packaged Qt documentation, which can be viewed in browser (qt*-doc-html packages) or in Qt Assistant (qt*-doc packages) is missing all documentation generated from C++ files. Only the static text is present. Qt is split by many modules (qtbase, qtdeclarative, qtwebengine, etc.). - I am now fixing it for qtbase, the largest module, but I may fix it for - other modules if someone requests it. + + To properly fix this bug, we need changes in qtbase and qttools modules. + In addition, I will be uploading a no-change rebuild of qtdeclarative + module to demonstrate that the fixes work. + + If requested, I can also upload no-change rebuilds of some other modules + to get their -doc packages properly regenerated. [Test Case] + For qtbase5-doc-html: 1. Install qtbase5-doc-html package. 2. Make sure /usr/share/qt5/doc/qtcore/qobject.html is present. + For qtdeclarative5-doc-html: + 1. Install qtdeclarative5-doc-html package. + 2. Make sure /usr/share/qt5/doc/qtquick/qquickwidget.html is present. + [Regression Potential] - The proposed fix only adds a new build-dependency. There is absolutely no regression potential. + The proposed change in qtbase is affecting only builds of Qt modules documentation. So the worst thing it can do is breaking the build of -doc packages in other Qt modules. However, as confirmed by qtdeclarative example, it makes things only better, not worse. + + The proposed change in qttools can affect more packages. It can result + in qdoc passing more -isystem flags to clang code analyzer. I am not + aware of negative consequences of this, but if they happen, these + consequences will be limited to potential build failures or wrong + documentation contents. [Other Info] Description of the fix: qdoc is a tool that parses C++ source files and generates documentation from them. Recently, qdoc began using clang instead of its own C++ - parser. Clang needs the C++ standard library to work. qdoc build system - uses a build-time macro (CLANG_RESOURCE_DIR) that hard-codes the path to - standard library in the executable: - https://code.qt.io/cgit/qt/qttools.git/tree/src/qdoc/qdoc.pro?h=5.11#n19. + parser. Clang needs the C++ standard library to work. Starting with + llvm-toolchain 1:7~+rc1-1~exp2, the GCC C++ standard library is no + longer on clang’s default search paths, so we need to pass it explicitly + as -I flag. The proposed qtbase patch (qdoc_default_incdirs.diff) does + that. - From qttools-opensource-src 5.11.1-5 build log in Cosmic amd64, one can - see that qdoc was compiled with - -D'CLANG_RESOURCE_DIR="/usr/lib/llvm-6.0/lib/clang/6.0.1/include"'. So - this directory needs to be present when qdoc is used. This directory is - provided by libclang-common-6.0-dev package. So adding it to build- - dependencies makes the documentation build correctly. - - This is the minimal fix for Cosmic. For Ubuntu 19.04, I will try to use - a better solution like moving the clang standard library detection from - build time to run time, or making qttools5-dev-tools depend on the - needed -dev packages. + That patch fixes documentation build for qtbase, but for other modules + there is another problem. The Qt headers are installed into + /usr/include/<triplet>/qt5 directory, but it is also not on Clang + default search path. qmake passes these directories as -isystem flags, + but qdoc ignores -isystem by default, unless it is built with + QDOC_PASS_ISYSTEM defined. So the proposed change in qttools is building + with this define. [Original Description] The Qt offline documentation for cosmic is incomplete. In fact there's virtually no content what so ever. It would be easier I think to list what actually got picked up that what was missed. ** Also affects: qttools-opensource-src (Ubuntu) Importance: Undecided Status: New ** Also affects: qtdeclarative-opensource-src (Ubuntu) Importance: Undecided Status: New ** Also affects: qtbase-opensource-src (Ubuntu Cosmic) Importance: Undecided Status: New ** Also affects: qtdeclarative-opensource-src (Ubuntu Cosmic) Importance: Undecided Status: New ** Also affects: qttools-opensource-src (Ubuntu Cosmic) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1799111 Title: lots of Classes missing from docs (e.g. QFileInfo) Status in qtbase-opensource-src package in Ubuntu: New Status in qtdeclarative-opensource-src package in Ubuntu: New Status in qttools-opensource-src package in Ubuntu: New Status in qtbase-opensource-src source package in Cosmic: New Status in qtdeclarative-opensource-src source package in Cosmic: New Status in qttools-opensource-src source package in Cosmic: New Status in qtbase-opensource-src package in Debian: Fix Released Bug description: [Impact] The packaged Qt documentation, which can be viewed in browser (qt*-doc-html packages) or in Qt Assistant (qt*-doc packages) is missing all documentation generated from C++ files. Only the static text is present. Qt is split by many modules (qtbase, qtdeclarative, qtwebengine, etc.). To properly fix this bug, we need changes in qtbase and qttools modules. In addition, I will be uploading a no-change rebuild of qtdeclarative module to demonstrate that the fixes work. If requested, I can also upload no-change rebuilds of some other modules to get their -doc packages properly regenerated. [Test Case] For qtbase5-doc-html: 1. Install qtbase5-doc-html package. 2. Make sure /usr/share/qt5/doc/qtcore/qobject.html is present. For qtdeclarative5-doc-html: 1. Install qtdeclarative5-doc-html package. 2. Make sure /usr/share/qt5/doc/qtquick/qquickwidget.html is present. [Regression Potential] The proposed change in qtbase is affecting only builds of Qt modules documentation. So the worst thing it can do is breaking the build of -doc packages in other Qt modules. However, as confirmed by qtdeclarative example, it makes things only better, not worse. The proposed change in qttools can affect more packages. It can result in qdoc passing more -isystem flags to clang code analyzer. I am not aware of negative consequences of this, but if they happen, these consequences will be limited to potential build failures or wrong documentation contents. [Other Info] Description of the fix: qdoc is a tool that parses C++ source files and generates documentation from them. Recently, qdoc began using clang instead of its own C++ parser. Clang needs the C++ standard library to work. Starting with llvm-toolchain 1:7~+rc1-1~exp2, the GCC C++ standard library is no longer on clang’s default search paths, so we need to pass it explicitly as -I flag. The proposed qtbase patch (qdoc_default_incdirs.diff) does that. That patch fixes documentation build for qtbase, but for other modules there is another problem. The Qt headers are installed into /usr/include/<triplet>/qt5 directory, but it is also not on Clang default search path. qmake passes these directories as -isystem flags, but qdoc ignores -isystem by default, unless it is built with QDOC_PASS_ISYSTEM defined. So the proposed change in qttools is building with this define. [Original Description] The Qt offline documentation for cosmic is incomplete. In fact there's virtually no content what so ever. It would be easier I think to list what actually got picked up that what was missed. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/qtbase-opensource-src/+bug/1799111/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp