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

Reply via email to