[FFe] cmake 3.6.2

Bug #1616372 reported by Gianfranco Costamagna
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
cmake (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Changes in 3.6.1 since 3.6.0:

Alex Turbov (1):
 CPack/RPM: Add missed CPACK_RPM_FILE_NAME fallback variable

Brad King (6):
 Restore find_(library|file|path) search of PATH itself
 VS: Fix VS 2015 .vcxproj debug setting for v90 toolset (#15986)
 Ninja: Do not force response files when no sysconf(3) limit is used
 CPack: Add compatibility for incorrect CPACK_INSTALL_CMAKE_PROJECTS value
 Autogen: Revert changes to generate moc/rcc in subdirectories
 CMake 3.6.1

Chuck Atkins (3):
 FindHDF5: Fix h5cc arg parsing to work with homebrew on Mac
 FindHDF5: Properly fail when required components are not found.
 FindHDF5: Cleanup inconsistent use of HDF5_ROOT

Justin Clift (1):
 NSIS: Quote uninstaller path when executing it in a shell

Some of the more significant features of CMake 3.6 are:

    The “Visual Studio 14 2015” generator learned to support the
    Clang/C2 toolsets, e.g. with the “-T v140_clang_3_7” option. This
    feature is experimental.
    The “list()” command gained a “FILTER” sub-command to filter list
    elements by regular expression.
    A “CMAKE_TRY_COMPILE_TARGET_TYPE” variable was added to optionally
    tell the “try_compile()” command to build a static library instead
    of an executable. This is useful for cross-compiling toolchains
    that cannot link binaries without custom flags or scripts.
    A “<LANG>_CLANG_TIDY” target property and supporting
    “CMAKE_<LANG>_CLANG_TIDY” variable were introduced to tell the
    Makefile Generators and the “Ninja” generator to run “clang-tidy”
    along with the compiler for “C” and “CXX” languages.
    The “ExternalProject” module leared the “GIT_SHALLOW 1” option to
    perform a shallow clone of a Git repository.
    The “ExternalProject” module learned to initialize Git submodules
    recursively and also to initialize new submodules on updates. Use
    the “GIT_SUBMODULES” option to restrict which submodules are
    initalized and updated.
    The “InstallRequiredSystemLibraries” module learned a new
    “CMAKE_INSTALL_UCRT_LIBRARIES” option to enable app-local deployment
    of the Windows Universal CRT libraries with Visual Studio 2015.
    The “Compile Features” functionality is now aware of features
    supported by Intel C++ compilers versions 12.1 through 16.0 on UNIX
    platforms.

Deprecated and Removed Features
===============================

    The “CMakeForceCompiler” module and its macros are now deprecated.
    See module documentation for an explanation.
    The “Visual Studio 7 .NET 2003” generator is now deprecated and
    will be removed in a future version of CMake.
    The “Visual Studio 7” generator (for VS .NET 2002) has been
    removed. It had been deprecated since CMake 3.3.
    The “Visual Studio 6” generator has been removed. It had been
    deprecated since CMake 3.3.

CMake 3.6 Release Notes
***********************

Changes made since CMake 3.5 include the following.

New Features
============

Generators
----------

* The "Ninja" generator learned to produce phony targets of the form
  "sub/dir/all" to drive the build of a subdirectory. This is
  equivalent to "cd sub/dir; make all" with Makefile Generators.

* The "Ninja" generator now includes system header files in build
  dependencies to ensure correct re-builds when system packages are
  updated.

* The "Visual Studio 14 2015" generator learned to support the
  Clang/C2 toolsets, e.g. with the "-T v140_clang_3_7" option. This
  feature is experimental.

Commands
--------

* The "add_custom_command()" and "add_custom_target()" commands
  learned how to use the "CROSSCOMPILING_EMULATOR" executable target
  property.

* The "install()" command learned a new "EXCLUDE_FROM_ALL" option to
  leave installation rules out of the default installation.

* The "list()" command gained a "FILTER" sub-command to filter list
  elements by regular expression.

* The "string(TIMESTAMP)" and "file(TIMESTAMP)" commands gained
  support for the "%s" placeholder. This is the number of seconds
  since the UNIX Epoch.

Variables
---------

* A "CMAKE_DEPENDS_IN_PROJECT_ONLY" variable was introduced to tell
  Makefile Generators to limit dependency scanning only to files in
  the project source and build trees.

* A new "CMAKE_HOST_SOLARIS" variable was introduced to indicate
  when CMake is running on an Oracle Solaris host.

* A "CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES" variable was added
  for use by toolchain files to specify system include directories to
  be appended to all compiler command lines.

* The "CMAKE_<LANG>_STANDARD_LIBRARIES" variable is now documented.
  It is intended for use by toolchain files to specify system
  libraries to be added to all linker command lines.

* A "CMAKE_NINJA_OUTPUT_PATH_PREFIX" variable was introduced to tell
  the "Ninja" generator to configure the generated "build.ninja" file
  for use as a "subninja".

* A "CMAKE_TRY_COMPILE_PLATFORM_VARIABLES" variable was added for
  use by toolchain files to specify platform-specific variables that
  must be propagated by the "try_compile()" command into test
  projects.

* A "CMAKE_TRY_COMPILE_TARGET_TYPE" variable was added to optionally
  tell the "try_compile()" command to build a static library instead
  of an executable. This is useful for cross-compiling toolchains
  that cannot link binaries without custom flags or scripts.

Properties
----------

* A "DEPLOYMENT_REMOTE_DIRECTORY" target property was introduced to
  tell the "Visual Studio 9 2008" and "Visual Studio 8 2005"
  generators to generate the "remote directory" for WinCE project
  deployment and debugger settings.

* A "<LANG>_CLANG_TIDY" target property and supporting
  "CMAKE_<LANG>_CLANG_TIDY" variable were introduced to tell the
  Makefile Generators and the "Ninja" generator to run "clang-tidy"
  along with the compiler for "C" and "CXX" languages.

* A "TIMEOUT_AFTER_MATCH" test property was introduced to optionally
  tell CTest to enforce a secondary timeout after matching certain
  output from a test.

* A "VS_CONFIGURATION_TYPE" target property was introduced to
  specify a custom project file type for Visual Studio Generators
  supporting VS 2010 and above.

* A "VS_STARTUP_PROJECT" directory property was introduced to
  specify for Visual Studio Generators the default startup project for
  generated solutions (".sln" files).

Modules
-------

* The "CMakePushCheckState" module now pushes/pops/resets the
  variable "CMAKE_EXTRA_INCLUDE_FILE" used in "CheckTypeSize".

* The "ExternalProject" module leared the "GIT_SHALLOW 1" option to
  perform a shallow clone of a Git repository.

* The "ExternalProject" module learned to initialize Git submodules
  recursively and also to initialize new submodules on updates. Use
  the "GIT_SUBMODULES" option to restrict which submodules are
  initalized and updated.

* The "ExternalProject" module leared the "DOWNLOAD_NO_EXTRACT 1"
  argument to skip extracting the file that is downloaded (e.g., for
  self-extracting shell installers or ".msi" files).

* The "ExternalProject" module now uses "TLS_VERIFY" when fetching
  from git repositories.

* The "FindBLAS" and "FindLAPACK" modules learned to support
  OpenBLAS.

* The "FindCUDA" module learned to find the "cublas_device" library.

* The "FindGTest" module "gtest_add_tests" function now causes CMake
  to automatically re-run when test sources change so that they can be
  re-scanned.

* The "FindLTTngUST" module was introduced to find the LTTng-UST
  library.

* The "FindPkgConfig" module learned to optionally create imported
  targets for the libraries it has found.

* The "FindProtobuf" module learned to provide a "Protobuf_VERSION"
  variable and check the version number requested in a
  "find_package()" call.

* The "InstallRequiredSystemLibraries" module learned a new
  "CMAKE_INSTALL_UCRT_LIBRARIES" option to enable app-local deployment
  of the Windows Universal CRT libraries with Visual Studio 2015.

Platforms
---------

* The Clang compiler is now supported on CYGWIN.

* Support was added for the Bruce C Compiler with compiler id
  "Bruce".

CTest
-----

* The "ctest_update()" command now looks at the
  "CTEST_GIT_INIT_SUBMODULES" variable to determine whether submodules
  should be updated or not before updating.

* The "ctest_update()" command will now synchronize submodules on an
  update. Updates which add submodules or change a submodule's URL
  will now be pulled properly.

CPack
-----

* The "CPackDeb" module learned how to handle "$ORIGIN" in
  "CMAKE_INSTALL_RPATH" when "CPACK_DEBIAN_PACKAGE_SHLIBDEPS" is used
  for dependency auto detection.

* The "CPackDeb" module learned how to generate "DEBIAN/shlibs"
  contorl file when package contains shared libraries.

* The "CPackDeb" module learned how to generate "DEBIAN/postinst"
  and "DEBIAN/postrm" files if the package installs libraries in
  ldconfig- controlled locations (e.g. "/lib/", "/usr/lib/").

* The "CPackDeb" module learned how to generate dependencies between
  Debian packages if multi-component setup is used and
  "CPACK_COMPONENT_<compName>_DEPENDS" variables are set. For backward
  compatibility this feature is disabled by default. See
  "CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS".

* The "CPackDeb" module learned how to set custom package file names
  including how to generate properly-named Debian packages:

     <PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb

  For backward compatibility this feature is disabled by default. See
  "CPACK_DEBIAN_FILE_NAME" and "CPACK_DEBIAN_<COMPONENT>_FILE_NAME".

* The "CPackDeb" module learned how to set the package release
  number ("DebianRevisionNumber" in package file name when used in
  combination with "DEB-DEFAULT" value set by
  "CPACK_DEBIAN_FILE_NAME"). See "CPACK_DEBIAN_PACKAGE_RELEASE".

* The "CPackDeb" module learned how to set the package architecture
  per-component. See "CPACK_DEBIAN_<COMPONENT>_PACKAGE_ARCHITECTURE".

* The "CPackDMG" module learned a new option to tell the CPack
  "DragNDrop" generaor to skip the "/Applications" symlink. See the
  "CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK" variable.

* The "CPackIFW" module gained a new "cpack_ifw_update_repository()"
  command to update a QtIFW-specific repository from a remote
  repository.

* The "CPackRPM" module learned how to set RPM "dist" tag as part of
  RPM "Release:" tag when enabled (mandatory on some Linux
  distributions for e.g. on Fedora). See
  "CPACK_RPM_PACKAGE_RELEASE_DIST".

* The "CPackRPM" module learned how to set default values for owning
  user/group and file/directory permissions of package content. See
  "CPACK_RPM_DEFAULT_USER", "CPACK_RPM_DEFAULT_GROUP",
  "CPACK_RPM_DEFAULT_FILE_PERMISSIONS",
  "CPACK_RPM_DEFAULT_DIR_PERMISSIONS" and their per component
  counterparts.

* The "CPackRPM" module learned how to set user defined package file
  names, how to specify that rpmbuild should decide on file name
  format as well as handling of multiple rpm packages generated by a
  single user defined spec file. See "CPACK_RPM_PACKAGE_NAME" and
  "CPACK_RPM_<component>_PACKAGE_NAME".

* The "CPackRPM" module learned how to correctly handle symlinks
  that are pointing outside generated packages.

Other
-----

* The "Compile Features" functionality is now aware of features
  supported by Intel C++ compilers versions 12.1 through 16.0 on UNIX
  platforms.

Deprecated and Removed Features
===============================

* The "CMakeForceCompiler" module and its macros are now deprecated.
  See module documentation for an explanation.

* The "find_library()", "find_path()", and "find_file()" commands no
  longer search in installation prefixes derived from the "PATH"
  environment variable on non-Windows platforms. This behavior was
  added in CMake 3.3 to support Windows hosts but has proven
  problematic on UNIX hosts. Users that keep some "<prefix>/bin"
  directories in the "PATH" just for their tools do not necessarily
  want any supporting "<prefix>/lib" directories searched. One may
  set the "CMAKE_PREFIX_PATH" environment variable with a ;-list of
  prefixes that are to be searched.

* The "Visual Studio 7 .NET 2003" generator is now deprecated and
  will be removed in a future version of CMake.

* The "Visual Studio 7" generator (for VS .NET 2002) has been
  removed. It had been deprecated since CMake 3.3.

* The "Visual Studio 6" generator has been removed. It had been
  deprecated since CMake 3.3.

Other Changes
=============

* The precompiled OS X binary provided on "cmake.org" now requires
  OS X 10.7 or newer.

* On Linux and FreeBSD platforms, when building CMake itself from
  source and not using a system-provided libcurl, OpenSSL is now used
  by default if it is found on the system. This enables SSL/TLS
  support for commands supporting network communication via "https",
  such as "file(DOWNLOAD)", "file(UPLOAD)", and "ctest_submit()".

* The "cmake(1)" "--build" command-line tool now rejects multiple
  "-- target" options with an error instead of silently ignoring all
  but the last one.

* "AUTOMOC" now diagnoses name collisions when multiple source files
  in different directories use "#include <moc_foo.cpp>" with the same
  name (because the generated "moc_foo.cpp" files would collide).

* The "FindBISON" module "BISON_TARGET" macro now supports special
  characters by passing the "VERBATIM" option to internal
  "add_custom_command()" calls. This may break clients that added
  escaping manually to work around the bug.

* The "FindFLEX" module "FLEX_TARGET" macro now supports special
  characters by passing the "VERBATIM" option to internal
  "add_custom_command()" calls. This may break clients that added
  escaping manually to work around the bug.

* The "FindProtobuf" module input and output variables were all
  renamed from "PROTOBUF_" to "Protobuf_" for consistency with other
  find modules. Input variables of the old case will be honored if
  provided, and output variables of the old case are always provided.

* The "CPackRPM" module now supports upper cased component names in
  per component CPackRPM specific variables. E.g. component named
  "foo" now expects component specific variable to be
  "CPACK_RPM_FOO_PACKAGE_NAME" while before it expected
  "CPACK_RPM_foo_PACKAGE_NAME". Upper cased component name part in
  variables is compatible with convention used for other CPack
  variables. For back compatibility old format of variables is still
  valid and preferred if both versions of variable are set, but the
  preferred future use is upper cased component names in variables.
  New variables that will be added to CPackRPM in later versions will
  only support upper cased component variable format.

----------------------------------------------------------------------------
Changes made since CMake 3.6.0-rc4:

Brad King (4):
      InstallRequiredSystemLibraries: Document UCRT option use case
      Help: Document CMAKE_TRY_COMPILE_PLATFORM_VARIABLES example
      clang-format.bash: Fix filter-branch example documentation
      CMake 3.6.0

Konstantin Podsvirov (1):
      CPackIFW: Fix attributes for Promoting Updates repository replacement

O Libre (1):
      FindJNI: Fix support for Ubuntu 15.10

I think it is worth an inclusion in Yakkety

A successful build is available here
https://launchpad.net/~costamagnagianfranco/+archive/ubuntu/locutusofborg-ppa/+sourcepub/6826674/+listing-archive-extra

Revision history for this message
Gianfranco Costamagna (costamagnagianfranco) wrote :

see debian bug #834570 for a possible regression

Revision history for this message
Gianfranco Costamagna (costamagnagianfranco) wrote :
Revision history for this message
Stefano Rivera (stefanor) wrote :

I've had a skim, I'm not feeling that this is sufficiently motivated, to be worth the risk.

It looks like a fairly major version bump (3.5.2 to 3.6.1), but the only test has been building cmake itself, not the hundreds of packages that build-depend on it.

Was the Debian transition to 3.6.1 tracked anywhere?

This doesn't appear to be blocking anything, so we could just merge at the beginning of next cycle.

Revision history for this message
Gianfranco Costamagna (costamagnagianfranco) wrote :

Hi Stefano, seems that Debian has no transition, probably because it is not needed at all.
They do archive rebuilds, and I didn't see regressions so far opened (the package went in testing).

I presume it seems safe to upload, but it is only my opinion (the only change I have to look is the hdf detection mode, but I prefer it to break and fix the reverse dependencies, instead of keeping the old code around)

Revision history for this message
Gianfranco Costamagna (costamagnagianfranco) wrote :

seems that the hdf5 issues are fixed now.

Revision history for this message
Gianfranco Costamagna (costamagnagianfranco) wrote :

the hdf5 fixes have been merged in yakkety, e.g. libminc, insighttookit4 and something more I don't recall.
Basically hdf5 has been a long stading problem, because the cmake detection was buggy, and developers crafted their own bad solution to fix the issue.
Now, cmake is fixed, so the fix needs to be propagated to packages, to use the new detection module.
I think it is worth the effort

Revision history for this message
Gianfranco Costamagna (costamagnagianfranco) wrote :

Seems that the hdf5 regression (there was a partial one) has been fixed in 3.6.2
https://blog.kitware.com/cmake-3-6-2-available-for-download/

If I get the exception I'm willing to package it even ahead from Debian.

summary: - [FFe] cmake 3.6.1
+ [FFe] cmake 3.6.2
Revision history for this message
Gianfranco Costamagna (costamagnagianfranco) wrote :

I imported 3.6.2 in my ppa
(closing the wrong bug)

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package cmake - 3.6.2-2ubuntu1

---------------
cmake (3.6.2-2ubuntu1) zesty; urgency=medium

  * Merge from Debian unstable (LP: #1616372). Remaining changes:
    - debian/cmake-data.install
      debian/MultiArchCross.cmake
      debian/patches/ubuntu_cmake-crosscompile.patch:
      help cmake to find libraries in multiarch path
      xnox says this is not yet ready to go upstream but he will work on it
    - Dropped changes:
      - debian/patches/ubuntu_boost-multiarch.patch
        find boost in multiarch path
        we will find regressions quickly with the upcoming boost transition.

cmake (3.6.2-2) unstable; urgency=medium

  * Add mips-rld-map-rel.patch to solve segfaults caused by new
    DT_MIPS_RLD_MAP_REL tag and RPATH removers (Closes: #820334).
    Thanks James Cowgill for the patch.
  * Refresh patches.

cmake (3.6.2-1) unstable; urgency=medium

  * New upstream release.
  * Fix broken binaries when using clang with -fsanitize. (Closes: #835426)
    - Add CMakeParseImplicitLinkInfo_Exclude_libclang_rt.patch,
      cherry-picked from upstream.

cmake (3.6.1-1) unstable; urgency=medium

  * New upstream release.
  * Drop FindImageMagick_find_program.patch, the underlying issue has been
    fixed upstream.

cmake (3.6.0-1) experimental; urgency=medium

  * New upstream release.
  * Drop patches that have been applied upstream:
    - FindLibArchive_Support_libarchive_3.2.patch
    - file_Sort_GLOB_results_to_make_it_deterministic.patch
  * Fix detection of ImageMagick.
    - Add FindImageMagick_find_program.patch
  * Add new autopkgtest which checks if various Find modules are wokring,

 -- Gianfranco Costamagna <email address hidden> Tue, 18 Oct 2016 15:48:43 +0200

Changed in cmake (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.