Bug#959064: ignition-transport FTBFS in testing.

Jochen Sprickerhof jspricke at debian.org
Wed Apr 29 17:47:42 BST 2020


Control: reassign -1 cmake 3.16.3-2
Control: subject -i cmake breaks on -isystem<space>
Control: affects -1 ignition-transport

* peter green <plugwash at p10link.net> [2020-04-28 23:15]:
>Package: ignition-transport
>Version: 8.0.0+dfsg-3
>Severity: serious
>
>It seems that ignition-transport fails to build in testing with the following error.
>
>>CMake Error in src/CMakeLists.txt:
>>   Imported target "ZeroMQ::ZeroMQ" includes non-existent path
>>
>>     "-isystem"
>>
>>   in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:
>>
>>   * The path was deleted, renamed, or moved to another location.
>>
>>   * An install or uninstall procedure did not complete successfully.
>>
>>   * The installation package was faulty and references files it does not
>>   provide.
>>
>>
>>
>>CMake Error in src/CMakeLists.txt:
>>   Imported target "ZeroMQ::ZeroMQ" includes non-existent path
>>
>>     "-isystem"
>>
>>   in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:
>>
>>   * The path was deleted, renamed, or moved to another location.
>>
>>   * An install or uninstall procedure did not complete successfully.
>>
>>   * The installation package was faulty and references files it does not
>>   provide.
>>
>>
>
>I first ran into this on a raspbian bullseye autobuilder, but it's also happening on reproducible builds, so it doesn't seem to be raspbian specific.
>
>This doesn't seem to be showing up in the reproducible builds logs for unstable, that could either mean that it's a testing-specific issue or it could be because the reproducible builds logs for unstable are older than those for testing.
>

I was able to reproduce this using:

$ sudo apt install libzmq3-dev cmake pkg-config

$ cat > foot.c << HERE
int main() { }
HERE

$ cat CMakeLists.txt << HERE
cmake_minimum_required(VERSION 3.16)
project(foo)

include(FindPkgConfig)
pkg_check_modules(ZeroMQ IMPORTED_TARGET libzmq)

add_executable(foo foo.c)
target_link_libraries(foo PkgConfig::ZeroMQ)
HERE

$ cmake .
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2")
-- Checking for module 'libzmq'
--   Found libzmq, version 4.3.2
-- Configuring done
CMake Error in CMakeLists.txt:
   Imported target "PkgConfig::ZeroMQ" includes non-existent path

     "-isystem"

   in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:

   * The path was deleted, renamed, or moved to another location.

   * An install or uninstall procedure did not complete successfully.

   * The installation package was faulty and references files it does not
   provide.



CMake Error in CMakeLists.txt:
   Imported target "PkgConfig::ZeroMQ" includes non-existent path

     "-isystem"

   in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:

   * The path was deleted, renamed, or moved to another location.

   * An install or uninstall procedure did not complete successfully.

   * The installation package was faulty and references files it does not
   provide.



-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.

What I found up to now:

- pkg-config=0.29.2-1:

   $ pkg-config --cflags-only-I libzmq
   -isystem /usr/include/mit-krb5 -I/usr/include/pgm-5.2

- Whereas pkg-config=0.29-6 (or pkgconfig):

   $ pkg-config --cflags-only-I libzmq
   -I/usr/include/pgm-5.2

So the recent update of pkg-config has a new behaviour, introduced in

https://bugs.freedesktop.org/show_bug.cgi?id=97337

Changing -isystem /usr/include/mit-krb5 to -isystem/usr/include/mit-krb5 
works in the .pc file(s) works around this but man gcc indicates that a 
space after -isystem seems fine as well.

I think cmake should handle -isystem<space>¹ and as this is reproducible 
without ignition-transport, I'm reassigning this to cmake.

Cheers Jochen

¹: I guess the same problem arises for -I<space> but I haven't checked 
that.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/debian-science-maintainers/attachments/20200429/577f4a4f/attachment.sig>


More information about the debian-science-maintainers mailing list