[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 06/31] gnu: kwindowsystem: Update to 5.24.0.
From: |
Andreas Enge |
Subject: |
Re: [PATCH 06/31] gnu: kwindowsystem: Update to 5.24.0. |
Date: |
Mon, 1 Aug 2016 23:10:34 +0200 |
User-agent: |
Mutt/1.6.1 (2016-04-27) |
On Mon, Aug 01, 2016 at 08:13:17PM +0200, David Craven wrote:
> * gnu/packages/kde-frameworks.scm: Update to 5.24.0.
Here also, mention all changes:
> - (uri (string-append "http://download.kde.org/stable/frameworks/"
> + (uri (string-append "mirror://kde/stable/frameworks/"
This.
> (native-inputs
> - `(("pkg-config" ,pkg-config)
> + `(("extra-cmake-modules" ,extra-cmake-modules)
> + ("pkg-config" ,pkg-config)
> ("xorg-server" ,xorg-server))) ; for the tests
> (inputs
> - `(("extra-cmake-modules" ,extra-cmake-modules)
The move of extra-cmake-modules.
> - ("qt" ,qt)
> + ("qtbase" ,qtbase)
> + ("qtx11extras" ,qtx11extras)
And the switch from the monolithic to the modular Qt.
For qtx11extras that is not found, here is the error message:
CMake Error at
/gnu/store/6d3qjij1k7z2sjlsq9c0b8ql53xgn34v-qtbase-5.6.1-1/lib/cmake/Qt5/Qt5Config.cmake:26
(find_package):
Could not find a package configuration file provided by "Qt5X11Extras" with
any of the following names:
Qt5X11ExtrasConfig.cmake
qt5x11extras-config.cmake
Add the installation prefix of "Qt5X11Extras" to CMAKE_PREFIX_PATH or set
"Qt5X11Extras_DIR" to a directory containing one of the above files. If
"Qt5X11Extras" provides a separate development package or SDK, be sure it
has been installed.
Call Stack (most recent call first):
CMakeLists.txt:54 (find_package)
-- Configuring incomplete, errors occurred!
See also
"/tmp/guix-build-kwindowsystem-5.24.0.drv-0/build/CMakeFiles/CMakeOutput.log".
phase `configure' failed after 4.4 seconds
One can go into /tmp/guix-build-kwindowsystem-5.24.0.drv-0 and look at the
file environment-variables. It does contain
export
CMAKE_PREFIX_PATH="...:/gnu/store/3a5v3gh59hif13w7jqk8lhp5kvwbwk2i-qtx11extras-5.6.1-1/:..."
This is the installation prefix, and it is added to CMAKE_PREFIX_PATH as
required. Strange!
Inside, in the directory lib/cmake/Qt5X11Extras/, there are
Qt5X11ExtrasConfig.cmake and Qt5X11ExtrasConfigVersion.cmake.
It should be possible to define the environment variable Qt5X11Extras_DIR,
but it would be good to understand the problem...
According to the cmake documentation:
https://cmake.org/cmake/help/v3.0/command/find_package.html
the Qt5X11ExtrasConfig.cmake file is searched for in the following directories
(the "(U)" stands for "Unix"):
<prefix>/(lib/<arch>|lib|share)/cmake/<name>*/ (U)
<prefix>/(lib/<arch>|lib|share)/<name>*/ (U)
<prefix>/(lib/<arch>|lib|share)/<name>*/(cmake|CMake)/ (U)
In our case, the file is actually in
<prefix>/lib/cmake/<name>/, which should be fine.
The exact failing line 54 of CMakeLists.txt is:
find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED X11Extras)
This actually does not correspond to the regular expression for find_package
in the cmake documentation...
I think it actually looks for Qt5Config.cmake, which it finds in qtbase, see
the line in the above error message:
CMake Error at
/gnu/store/6d3qjij1k7z2sjlsq9c0b8ql53xgn34v-qtbase-5.6.1-1/lib/cmake/Qt5/Qt5Config.cmake:26
(find_package):
Could not find a package configuration file provided by "Qt5X11Extras" with
Lines 25 following of Qt5Config.cmake look like this:
foreach(module ${Qt5_FIND_COMPONENTS})
find_package(Qt5${module}
${_Qt5_FIND_PARTS_QUIET}
${_Qt5_FIND_PARTS_REQUIRED}
PATHS "${_qt5_install_prefix}" NO_DEFAULT_PATH
)
So it looks like "find_package" is called with the argument "Qt5X11Extras",
but also with the suspicious additional parameters
PATHS "${_qt5_install_prefix}" NO_DEFAULT_PATH
Since we install qt5x11extras to a different directory from qt5base,
the thing following the PATHS keyword is probably wrong.
See the cmake documentation:
"The set of installation prefixes is constructed using the following steps. If
NO_DEFAULT_PATH is specified all NO_* options are enabled.
Search paths specified in cmake-specific cache variables. These are
intended to be used on the command line with a -DVAR=value. This can be skipped
if NO_CMAKE_PATH is passed:
CMAKE_PREFIX_PATH
CMAKE_FRAMEWORK_PATH
CMAKE_APPBUNDLE_PATH"
So I would say the error message is totally misleading; the NO_DEFAULT_PATH
keyword explicitly disables the CMAKE_PREFIX_PATH.
Unfortunately the store is read-only (in former times, I sometimes modified
store items by hand; now I do not dare overwrite the special file system
flags any more...), otherwise I would have tried to modify the file by hand...
Sorry for the long message, which follows my own path in trying to debug
this mess. To quickly summarise it:
I think we need to modify the qtbase package to drop the
NO_DEFAULT_PATH from Qt5Config.cmake.
Ceterum censeo that cmake should not be used, but this is not our choice;
autotools based projects usually do not create these problems...
Andreas
- Re: [PATCH 02/31] download: Add KDE mirrors., (continued)
- [PATCH 04/31] lint: 'inputs-should-be-native' checks for extra-cmake-modules and qttools., David Craven, 2016/08/01
- [PATCH 05/31] gnu: extra-cmake-modules: Update to 5.24.0., David Craven, 2016/08/01
- [PATCH 06/31] gnu: kwindowsystem: Update to 5.24.0., David Craven, 2016/08/01
- Re: [PATCH 06/31] gnu: kwindowsystem: Update to 5.24.0.,
Andreas Enge <=
- Re: [PATCH 06/31] gnu: kwindowsystem: Update to 5.24.0., Andreas Enge, 2016/08/01
- Re: [PATCH 06/31] gnu: kwindowsystem: Update to 5.24.0., David Craven, 2016/08/01
- Re: [PATCH 06/31] gnu: kwindowsystem: Update to 5.24.0., David Craven, 2016/08/01
- Re: [PATCH 06/31] gnu: kwindowsystem: Update to 5.24.0., David Craven, 2016/08/01
- Re: [PATCH 06/31] gnu: kwindowsystem: Update to 5.24.0., David Craven, 2016/08/02
- Re: [PATCH 06/31] gnu: kwindowsystem: Update to 5.24.0., Ludovic Courtès, 2016/08/02
- Re: [PATCH 06/31] gnu: kwindowsystem: Update to 5.24.0., David Craven, 2016/08/03
- Re: [PATCH 06/31] gnu: kwindowsystem: Update to 5.24.0., David Craven, 2016/08/05
- Re: [PATCH 06/31] gnu: kwindowsystem: Update to 5.24.0., Andreas Enge, 2016/08/05
- Re: [PATCH 06/31] gnu: kwindowsystem: Update to 5.24.0., Andreas Enge, 2016/08/05