Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-108387

qtattributionsscanner expands to wrong path when using modular Qt installed

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 6.3.1
    • Build tools: Other
    • None
    • Linux/X11

    Description

      Hello,

      I can't build the documentation of any Qt module, because the file name of qattributionsscanner is expanded to the libexec dir of qtbase instead of that of qttools:

      starting phase `build-doc'
      /gnu/store/j65q3aw414010gdfvmsynwpzfb2jyyd3-cmake-minimal-3.21.4/bin/cmake -S/tmp/guix-build-qtsvg-6.3.1.drv-0/qtsvg-everywhere-src-6.3.1 -B/tmp/guix-build-qtsvg-6.3.1.drv-0/build --check-build-system CMakeFiles/Makefile.cmake 0
      /gnu/store/55cbpsi18mahg131nmiya6km5b4mscfa-make-4.3/bin/make  -f CMakeFiles/Makefile2 docs
      make[1]: Entering directory '/tmp/guix-build-qtsvg-6.3.1.drv-0/build'
      /gnu/store/j65q3aw414010gdfvmsynwpzfb2jyyd3-cmake-minimal-3.21.4/bin/cmake -S/tmp/guix-build-qtsvg-6.3.1.drv-0/qtsvg-everywhere-src-6.3.1 -B/tmp/guix-build-qtsvg-6.3.1.drv-0/build --check-build-system CMakeFiles/Makefile.cmake 0
      /gnu/store/j65q3aw414010gdfvmsynwpzfb2jyyd3-cmake-minimal-3.21.4/bin/cmake -E cmake_progress_start /tmp/guix-build-qtsvg-6.3.1.drv-0/build/CMakeFiles 0
      /gnu/store/55cbpsi18mahg131nmiya6km5b4mscfa-make-4.3/bin/make  -f CMakeFiles/Makefile2 CMakeFiles/docs.dir/all
      make[2]: Entering directory '/tmp/guix-build-qtsvg-6.3.1.drv-0/build'
      /gnu/store/55cbpsi18mahg131nmiya6km5b4mscfa-make-4.3/bin/make  -f src/svg/CMakeFiles/qattributionsscanner_Svg.dir/build.make src/svg/CMakeFiles/qattributionsscanner_Svg.dir/depend
      make[3]: Entering directory '/tmp/guix-build-qtsvg-6.3.1.drv-0/build'
      cd /tmp/guix-build-qtsvg-6.3.1.drv-0/build && /gnu/store/j65q3aw414010gdfvmsynwpzfb2jyyd3-cmake-minimal-3.21.4/bin/cmake -E cmake_depends "Unix Makefiles" /tmp/guix-build-qtsvg-6.3.1.drv-0/qtsvg-everywhere-src-6.3.1 /tmp/guix-build-qtsvg-6.3.1.drv-0/qtsvg-everywhere-src-6.3.1/src/svg /tmp/guix-build-qtsvg-6.3.1.drv-0/build /tmp/guix-build-qtsvg-6.3.1.drv-0/build/src/svg /tmp/guix-build-qtsvg-6.3.1.drv-0/build/src/svg/CMakeFiles/qattributionsscanner_Svg.dir/DependInfo.cmake --color=
      make[3]: Leaving directory '/tmp/guix-build-qtsvg-6.3.1.drv-0/build'
      /gnu/store/55cbpsi18mahg131nmiya6km5b4mscfa-make-4.3/bin/make  -f src/svg/CMakeFiles/qattributionsscanner_Svg.dir/build.make src/svg/CMakeFiles/qattributionsscanner_Svg.dir/build
      make[3]: Entering directory '/tmp/guix-build-qtsvg-6.3.1.drv-0/build'
      cd /tmp/guix-build-qtsvg-6.3.1.drv-0/build/src/svg && /gnu/store/8h5viwhsa23inp1jdcs78x6bacxgcgzs-qtbase-6.3.1/lib/qt6/libexec/qtattributionsscanner /tmp/guix-build-qtsvg-6.3.1.drv-0/qtsvg-everywhere-src-6.3.1 --filter QDocModule=qtsvg -o /tmp/guix-build-qtsvg-6.3.1.drv-0/build/src/svg/codeattributions.qdoc
      /gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/sh: line 1: /gnu/store/8h5viwhsa23inp1jdcs78x6bacxgcgzs-qtbase-6.3.1/lib/qt6/libexec/qtattributionsscanner: No such file or directory
      make[3]: *** [src/svg/CMakeFiles/qattributionsscanner_Svg.dir/build.make:73: src/svg/CMakeFiles/qattributionsscanner_Svg] Error 127
      make[3]: Leaving directory '/tmp/guix-build-qtsvg-6.3.1.drv-0/build'
      make[2]: *** [CMakeFiles/Makefile2:2030: src/svg/CMakeFiles/qattributionsscanner_Svg.dir/all] Error 2
      make[2]: Leaving directory '/tmp/guix-build-qtsvg-6.3.1.drv-0/build'
      make[1]: *** [CMakeFiles/Makefile2:1063: CMakeFiles/docs.dir/rule] Error 2
      make[1]: Leaving directory '/tmp/guix-build-qtsvg-6.3.1.drv-0/build'
      make: *** [Makefile:494: docs] Error 2
      error: in phase 'build-doc': uncaught exception:
      %exception #<&invoke-error program: "cmake" arguments: ("--build" "." "--target=docs") exit-status: 2 term-signal: #f stop-signal: #f> 
      phase `build-doc' failed after 0.0 seconds
      

      This seems to be defined in qtbase's cmake/QtDocsHelpers.cmake:

      set(qtattributionsscanner_bin "${doc_tools_libexec}/qtattributionsscanner${CMAKE_EXECUTABLE_SUFFIX}")
      

      In other words, it assumes every component are installed to the same prefix, which falls apart on non-FHS systems such as Guix or Nix.

      It seems to me that QtDocsHelpers.cmake would be better located along the qttools package, which provides these tools, perhaps?

      Thanks!

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qtbuildsystem Qt Build System Team
            apteryx Maxim Cournoyer
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes