Source: cmake Version: 3.7.1-1 Severity: important Justification: silently breaks cpack usage and dependency calculation on minimal installations
Tags: patch Hi Cmake developers and packagers! I got a bug report on Ubuntu launchpad tracker, but this seems to be a specific packaging issue, so I would like to discuss/fix it in Debian :) https://bugs.launchpad.net/ubuntu/+source/cmake/+bug/1647868 Basically, the "make package" from cpack fails to calculate dependencies if "file" is not installed, quoting the (possible involved code) on CPackDeb.cmake # get file info so that we can determine if file is executable or not unset(CPACK_DEB_INSTALL_FILES) foreach(FILE_ IN LISTS FILE_PATHS_) execute_process(COMMAND file "./${FILE_}" WORKING_DIRECTORY "${WDIR}" OUTPUT_VARIABLE INSTALL_FILE_) list(APPEND CPACK_DEB_INSTALL_FILES "${INSTALL_FILE_}") endforeach() below the original bug report: Target to milestone Also affects project (?) Also affects distribution/package Nominate for series Edit Bug Description I use CPack to build a debian package I use CPACK_DEBIAN_PACKAGE_SHLIBDEPS to let dpkg-shlibdeps figure out shared library dependencies this only works when the package "file" is installed and fails silently otherwise "file" is not a package dependency of the cmake package this bug report is about the packaging dependency, not that cpack silently fails, which should be fixed upstream How to reproduce Source File: main.cxx #include <iostream> int main(int,char**) { std::cout << "Hello\n"; return 0; } CMakeList.txt: cmake_minimum_required(VERSION 2.6) PROJECT(Hello) ADD_EXECUTABLE(hello main.cxx) INSTALL(TARGETS hello DESTINATION hello) SET(CPACK_GENERATOR "DEB") SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Hello Kitty") #required SET(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) INCLUDE(CPack) commands to trigger apt install cmake cmake . make package dpkg -I Hello-0.1.1-Linux.deb | grep Depends expected output: Depends: libc6 (>= 2.2.5), libstdc++6 (>= 4.1.1) actual output of grep if /usr/bin/file is not installed is empty (missing Depends line) affects Ubuntu version: Ubuntu 16.04 (probably all others too) affects cmake version: 3.5.1-1ubuntu1 Work-around: apt install file (almost everyone has that installed, but minimal docker containers for package building do not) suggested solution: make the cmake package depend on the file package thanks for caring Gianfranco