Bug#835708: plplot: FTBFS: cairo-related files are no more built
Small appendum: Upstream fixed it similarly: commit cac0198537a260fcb413f7d97301979c2dfaa31c Author: Raphael Kubo da CostaDate: Sat Jul 16 10:45:25 2016 +0200 pkg-config: Adjust _pkg_check_modules_internal() for CMake 3.6. CMake commit df97b97 ("FindPkgConfig: optionally create imported target for the found libraries") has changed the function's signature again, so add another check and update the call accordingly when using CMake >= 3.6.0. Tested by: Alan W. Irwin on Linux (Debian Jessie) using scripts/comprehensive_test.sh (i.e., a full noninteractive and interactive test for CMake-3.6.0 which is the version of CMake that I used for this test). There were no obvious build or run-time errors, and the PostScript difference results had no regressions (i.e., were perfect other than the long-time ocaml issues).
Bug#835708: plplot: FTBFS: cairo-related files are no more built
Control: tags -1 patch Control: tags -1 pending I investigated the bug a bit more. The problem is here, that plplot uses (in cmake/modules/pkg-config.cmake) a CMake function that is undocumented and internal to CMake: _pkg_check_modules_internal (WTF?) This function changed once in 3.1, causing the need of a version specific switch (debian/patches/cmake-3.1.diff). Now the function API changed again, specifically in https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=df97b9793#patch2 by adding an additional argument at the third-last position. We therefore require to extend the switch mentioned above: if(CMAKE_VERSION VERSION_LESS "3.1") _pkg_check_modules_internal(0 0 ${_prefix} "${_package}") elseif(CMAKE_VERSION VERSION_LESS "3.6.2") _pkg_check_modules_internal(0 0 0 0 ${_prefix} "${_package}") else(CMAKE_VERSION VERSION_LESS "3.6.2") _pkg_check_modules_internal(0 0 0 0 0 ${_prefix} "${_package}") endif(CMAKE_VERSION VERSION_LESS "3.6.2") The attached patch replaces the "cmake-3.1.diff" patch that comes with the current Debian package. I would try an NMU within the next days (never did that before, so expect some glitches here ;-) ). Cheers Ole Based on upstream commit 772223c638ecf5dc740c9f3dd7a6883c6d2c83d2 with a slight tweak to make the patch apply on our version of the source. commit 772223c638ecf5dc740c9f3dd7a6883c6d2c83d2 Author: Alan W. IrwinDate: Sun Dec 7 09:06:08 2014 -0800 Adjust for internal CMake-3.1 pkg-config change. There is a report from Greg Jung that the internal CMake command _pkg_check_modules_internal(0 0 ${_prefix} "${_package}") must be changed to _pkg_check_modules_internal(0 0 0 0 ${_prefix} "${_package}") for CMake-3.1 in order to build the cairo device properly. Accordingly, I have made that adjustment. Tested by Alan W. Irwin on Linux using CMake-3.0.2 by building the cairo device. N.B. currently untested for CMake-3.1. ToDo: Extensive tests on CMake-3.1 (once that version is closer to release) still need to be done since the change in the pkg-config support by CMake may need other adjustments as well. --- a/cmake/modules/pkg-config.cmake +++ b/cmake/modules/pkg-config.cmake @@ -1,6 +1,6 @@ # cmake/modules/pkg-config.cmake # -# Copyright (C) 2006 Alan W. Irwin +# Copyright (C) 2006-2015 Alan W. Irwin # # This file is part of PLplot. # @@ -94,7 +94,14 @@ set(_xprefix ${_prefix}) endif(FORCE_EXTERNAL_STATIC) - _pkg_check_modules_internal(0 0 ${_prefix} "${_package}") + if(CMAKE_VERSION VERSION_LESS "3.1") +_pkg_check_modules_internal(0 0 ${_prefix} "${_package}") + elseif(CMAKE_VERSION VERSION_LESS "3.6.2") +_pkg_check_modules_internal(0 0 0 0 ${_prefix} "${_package}") + else(CMAKE_VERSION VERSION_LESS "3.6.2") +_pkg_check_modules_internal(0 0 0 0 0 ${_prefix} "${_package}") + endif(CMAKE_VERSION VERSION_LESS "3.6.2") + if(${_prefix}_FOUND) cmake_link_flags(${_link_FLAGS} "${${_xprefix}_LDFLAGS}") # If libraries cannot be not found, then that is equivalent to whole
Processed: Re: Bug#835708: plplot: FTBFS: cairo-related files are no more built
Processing control commands: > tags -1 patch Bug #835708 [src:plplot] plplot: FTBFS: cairo-related files are no more built Added tag(s) patch. > tags -1 pending Bug #835708 [src:plplot] plplot: FTBFS: cairo-related files are no more built Added tag(s) pending. -- 835708: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=835708 Debian Bug Tracking System Contact ow...@bugs.debian.org with problems
Bug#835708: plplot: FTBFS: cairo-related files are no more built
Hi Ole, Ole Streicher wrote: > I compared the current build log with one of the original build logs. Thanks a lot! > So, for some reason, the pango libraries are not found anymore. It seems worse: They're not (properly) looked for anymore (diff marks added and ordered manually): - -- Checking for module 'pango' + -- Checking for modules '' + Must specify package names on the command line [... repeated 14 times) - -- Found pango, version 1.40.1 + -- WARNING: pkg-config does not find pango. - -- Checking for module 'pangoft2' + -- Checking for modules '' + Must specify package names on the command line [... repeated 14 times] - -- Found pangoft2, version 1.40.1 + -- WARNING: pkg-config does not find pangoft2. So I suspect that already the part which is trying to find some libraries fails itself by correctly specifying them. Which again brings us back to the cmake update from 3.6.1-1 to 3.6.2-1 on 27-August-2016... > pango1.0 1.40.2-1 was uploaded on 2016-08-30 (so, after the bug > report). However, this may give a hint where to look next... Will have another look at later then. Regards, Axel -- ,''`. | Axel Beckert, http://people.debian.org/~abe/ : :' : | Debian Developer, ftp.ch.debian.org Admin `. `' | 4096R: 2517 B724 C5F6 CA99 5329 6E61 2FF9 CD59 6126 16B5 `-| 1024D: F067 EA27 26B9 C3FC 1486 202E C09E 1D89 9593 0EDE
Bug#835708: plplot: FTBFS: cairo-related files are no more built
I compared the current build log with one of the original build logs. The critical difference seems to be: original build (take from arm64 log) -- Checking for module 'pango' -- Found pango, version 1.40.1 -- Checking for module 'pangoft2' -- Found pangoft2, version 1.40.1 -- Found LTDL: /usr/lib/aarch64-linux-gnu/libltdl.so -- LTDL_INCLUDE_DIR = /usr/include -- LTDL_LIBRARY_DIR = /usr/lib/aarch64-linux-gnu -- LTDL_LIBRARIES = /usr/lib/aarch64-linux-gnu/libltdl.so -- Checking for module 'pangocairo' -- Found pangocairo, version 1.40.1 -- Not a Windows platform so setting wincairo driver to OFF. new build (private amd64 log) = -- Checking for modules '' Must specify package names on the command line [... repeated 14 times) -- WARNING: pkg-config does not find pango. -- Checking for modules '' Must specify package names on the command line [... repeated 14 times] -- WARNING: pkg-config does not find pangoft2. -- Found LTDL: /usr/lib/x86_64-linux-gnu/libltdl.so -- LTDL_INCLUDE_DIR = /usr/include -- LTDL_LIBRARY_DIR = /usr/lib/x86_64-linux-gnu -- LTDL_LIBRARIES = /usr/lib/x86_64-linux-gnu/libltdl.so -- Checking for modules '' Must specify package names on the command line [... repeated 14 times] includedir = libdir = linkflags = cflags = -- WARNING: pango and/or cairo not found with pkg-config. Disabling cairo drivers. To enable these drivers you must install development versions of pango and cairo and/or set the environment variable PKG_CONFIG_PATH appropriately. -- Not a Windows platform so setting wincairo driver to OFF. So, for some reason, the pango libraries are not found anymore. pango1.0 1.40.2-1 was uploaded on 2016-08-30 (so, after the bug report). However, this may give a hint where to look next... Cheers Ole