Bug 1788100

Summary: libcomps fails to build with Python 3.9
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: libcompsAssignee: Marek Blaha <mblaha>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: cstratak, dmach, jluza, jmracek, mblaha, mhroncok, pkratoch, rpm-software-management
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: cmake-3.16.1-2.fc32 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-01-17 18:12:52 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1785415    

Description Miro Hrončok 2020-01-06 12:21:49 UTC
libcomps fails to build with Python 3.9.0a2.

/builddir/build/BUILD/libcomps-libcomps-0.1.14/libcomps/src/python
Building for python3
-- Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS) (Required is at least version "3.0")
-- Found PythonInterp: /usr/bin/python3 (found suitable version "3.9", minimum required is "3.0") 
/builddir/build/BUILD/libcomps-libcomps-0.1.14/libcomps/src/python/src
Building for python3
CMake Warning (dev) at src/python/pycopy.cmake:20 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:25 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:25 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:25 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:25 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:35 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/python/pycopy.cmake:41 (add_custom_command):
  Policy CMP0040 is not set: The target in the TARGET signature of
  add_custom_command() must exist and must be defined in the current
  directory.  Run "cmake --help-policy CMP0040" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  No TARGET 'py3-copy' has been created in this directory.
Call Stack (most recent call first):
  src/python/src/CMakeLists.txt:73 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found Sphinx: /usr/bin/sphinx-build  
/builddir/build/BUILD/libcomps-libcomps-0.1.14/libcomps/src/python/docs
Building for python3
CMake Warning (dev) at tests/CMakeLists.txt:90 (target_link_libraries):
  Policy CMP0039 is not set: Utility targets may not have link dependencies.
  Run "cmake --help-policy CMP0039" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  Utility target "test_parse_run" should not be used as the target of a
  target_link_libraries call.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at tests/CMakeLists.txt:91 (target_link_libraries):
  Policy CMP0039 is not set: Utility targets may not have link dependencies.
  Run "cmake --help-policy CMP0039" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  Utility target "test_comps_run" should not be used as the target of a
  target_link_libraries call.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found Doxygen: /usr/bin/doxygen (found version "1.8.16") found components: doxygen dot 
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
PYTHON_LIBRARY (ADVANCED)
    linked by target "pycomps" in directory /builddir/build/BUILD/libcomps-libcomps-0.1.14/libcomps/src/python/src

-- Configuring incomplete, errors occurred!
See also "/builddir/build/BUILD/libcomps-libcomps-0.1.14/build-py3/CMakeFiles/CMakeOutput.log".



I must admit that I don't understand that error at all.


For the build logs, see:
https://copr-be.cloud.fedoraproject.org/results/@python/python3.9/fedora-rawhide-x86_64/01139166-libcomps/

For all our attempts to build libcomps with Python 3.9, see:
https://copr.fedorainfracloud.org/coprs/g/python/python3.9/package/libcomps/

Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.9:
https://copr.fedorainfracloud.org/coprs/g/python/python3.9/

Let us know here if you have any questions.

Python 3.9 will be included in Fedora 33, but the initial bootstrapping has already started.
A build failure this early in the bootstrap sequence blocks us very much.

Comment 1 Marek Blaha 2020-01-07 08:11:55 UTC
The Cmake files in this project are really messy and definitely deserve some work. Anyway, this PR at least fixes Python 3.9 builds: https://github.com/rpm-software-management/libcomps/pull/64

Comment 2 Miro Hrončok 2020-01-17 18:12:52 UTC
Current libcomps build fine with updated cmake: https://src.fedoraproject.org/rpms/cmake/c/8d55c35ecb54c581f2823c563d5d562aec02c2b9?branch=master