Hello community, here is the log from the commit of package extra-cmake-modules for openSUSE:Factory checked in at 2018-01-22 15:57:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/extra-cmake-modules (Old) and /work/SRC/openSUSE:Factory/.extra-cmake-modules.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "extra-cmake-modules" Mon Jan 22 15:57:47 2018 rev:49 rq:566651 version:5.42.0 Changes: -------- --- /work/SRC/openSUSE:Factory/extra-cmake-modules/extra-cmake-modules.changes 2018-01-09 14:47:29.903822118 +0100 +++ /work/SRC/openSUSE:Factory/.extra-cmake-modules.new/extra-cmake-modules.changes 2018-01-22 15:59:04.424520405 +0100 @@ -1,0 +2,11 @@ +Tue Jan 16 22:50:13 CET 2018 - lbeltr...@kde.org + +- Update to 5.42.0 + * New feature release + * For more details please see: + * https://www.kde.org/announcements/kde-frameworks-5.42.0.php +- Changes since 5.41.0: + * Use readelf to find project dependencies + * Introduce INSTALL_PREFIX_SCRIPT to easily set up prefixes + +------------------------------------------------------------------- Old: ---- extra-cmake-modules-5.41.0.tar.xz New: ---- extra-cmake-modules-5.42.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ extra-cmake-modules.spec ++++++ --- /var/tmp/diff_new_pack.5OP1zq/_old 2018-01-22 15:59:05.092489143 +0100 +++ /var/tmp/diff_new_pack.5OP1zq/_new 2018-01-22 15:59:05.096488956 +0100 @@ -16,7 +16,7 @@ # -%define _tar_path 5.41 +%define _tar_path 5.42 # Full KF5 version (e.g. 5.33.0) %{!?_kf5_version: %global _kf5_version %{version}} # Last major and minor KF5 version (e.g. 5.33) @@ -27,7 +27,7 @@ %bcond_with doc %endif Name: extra-cmake-modules -Version: 5.41.0 +Version: 5.42.0 Release: 0 Summary: CMake modules License: BSD-3-Clause ++++++ extra-cmake-modules-5.41.0.tar.xz -> extra-cmake-modules-5.42.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-cmake-modules-5.41.0/CMakeLists.txt new/extra-cmake-modules-5.42.0/CMakeLists.txt --- old/extra-cmake-modules-5.41.0/CMakeLists.txt 2017-11-30 08:42:14.000000000 +0100 +++ new/extra-cmake-modules-5.42.0/CMakeLists.txt 2017-12-20 22:35:02.000000000 +0100 @@ -32,7 +32,7 @@ # Preliminary setup # -set(VERSION "5.41.0") # handled by release scripts +set(VERSION "5.42.0") # handled by release scripts if (POLICY CMP0048) cmake_policy(SET CMP0048 NEW) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-cmake-modules-5.41.0/kde-modules/KDEInstallDirs.cmake new/extra-cmake-modules-5.42.0/kde-modules/KDEInstallDirs.cmake --- old/extra-cmake-modules-5.41.0/kde-modules/KDEInstallDirs.cmake 2017-11-30 08:42:14.000000000 +0100 +++ new/extra-cmake-modules-5.42.0/kde-modules/KDEInstallDirs.cmake 2017-12-20 22:35:02.000000000 +0100 @@ -190,6 +190,11 @@ # # NB: The variables starting ``KDE_INSTALL_`` are available since 1.6.0, # unless otherwise noted with the variable. +# +# The ``KDE_INSTALL_PREFIX_SCRIPT`` option will install a ${CMAKE_INSTALL_PREFIX}/prefix.sh +# file that allows to easily incorporate the necessary environment variables +# for the prefix into a process. +# #============================================================================= # Copyright 2014-2015 Alex Merry <alex.me...@kde.org> @@ -689,3 +694,14 @@ if(NOT "${PROJECT_NAME}" STREQUAL "Project") set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "${PROJECT_NAME}") endif() + + +################################################################### +# Prefix set up + +configure_file(${CMAKE_CURRENT_LIST_DIR}/prefix.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/prefix.sh @ONLY) + +option(KDE_INSTALL_PREFIX_SCRIPT "Installs ${CMAKE_INSTALL_PREFIX}/prefix.sh that sets up the necessary environment variables" OFF) +if(KDE_INSTALL_PREFIX_SCRIPT) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/prefix.sh DESTINATION ${CMAKE_INSTALL_PREFIX} PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ) +endif() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-cmake-modules-5.41.0/kde-modules/prefix.sh.cmake new/extra-cmake-modules-5.42.0/kde-modules/prefix.sh.cmake --- old/extra-cmake-modules-5.41.0/kde-modules/prefix.sh.cmake 1970-01-01 01:00:00.000000000 +0100 +++ new/extra-cmake-modules-5.42.0/kde-modules/prefix.sh.cmake 2017-12-20 22:35:02.000000000 +0100 @@ -0,0 +1,8 @@ +export PATH=@KDE_INSTALL_FULL_BINDIR@:$PATH +export LD_LIBRARY_PATH=@KDE_INSTALL_FULL_LIBDIR@:$LD_LIBRARY_PATH + +export XDG_DATA_DIRS=@KDE_INSTALL_FULL_DATADIR@:${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/} +export XDG_CONFIG_DIRS=@KDE_INSTALL_FULL_CONFDIR@:${XDG_CONFIG_DIRS:-/etc/xdg} + +export QT_PLUGIN_PATH=@KDE_INSTALL_FULL_QTPLUGINDIR@:$QT_PLUGIN_PATH +export QML2_IMPORT_PATH=@KDE_INSTALL_FULL_QMLDIR@:$QML2_IMPORT_PATH diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-cmake-modules-5.41.0/tests/CMakeLists.txt new/extra-cmake-modules-5.42.0/tests/CMakeLists.txt --- old/extra-cmake-modules-5.41.0/tests/CMakeLists.txt 2017-11-30 08:42:14.000000000 +0100 +++ new/extra-cmake-modules-5.42.0/tests/CMakeLists.txt 2017-12-20 22:35:02.000000000 +0100 @@ -56,7 +56,6 @@ add_subdirectory(ECMGenerateHeadersTest) add_subdirectory(ECMSetupVersionTest) add_subdirectory(ECMGeneratePkgConfigFile) -add_subdirectory(ECMToolchainAndroidTest) # a macro for tests that have a simple format where the name matches the # directory and project diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-cmake-modules-5.41.0/tests/ECMToolchainAndroidTest/CMakeLists.txt new/extra-cmake-modules-5.42.0/tests/ECMToolchainAndroidTest/CMakeLists.txt --- old/extra-cmake-modules-5.41.0/tests/ECMToolchainAndroidTest/CMakeLists.txt 2017-11-30 08:42:14.000000000 +0100 +++ new/extra-cmake-modules-5.42.0/tests/ECMToolchainAndroidTest/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,23 +0,0 @@ -project(AndroidToolchainTest) -cmake_minimum_required(VERSION 2.8.12) - -set(CMAKE_MODULE_PATH - ${CMAKE_CURRENT_SOURCE_DIR}/../../modules - ${CMAKE_CURRENT_SOURCE_DIR}/../../toolchain -) - -set(TARGET_DIR "${CMAKE_CURRENT_SOURCE_DIR}/testlinkfile") -set(TARGET_NAME "testtarget") -set(OUTPUT_FILE "${CMAKE_CURRENT_BINARY_DIR}/androidtest_output.txt") -set(INPUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/testlinkfile/outputfake.json") - -# test correct include resolution -include(specifydependencies) - -file(READ "${OUTPUT_FILE}" TEST_RESULT) -string(FIND ${TEST_RESULT} "libKF5Attica.so" CMP_RESULT) -if (${CMP_RESULT} EQUAL -1) - message(SEND_ERROR "Could not find relative library libKF5Attica.so") -endif() - -add_executable(dummy main.c) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-cmake-modules-5.41.0/tests/ECMToolchainAndroidTest/main.c new/extra-cmake-modules-5.42.0/tests/ECMToolchainAndroidTest/main.c --- old/extra-cmake-modules-5.41.0/tests/ECMToolchainAndroidTest/main.c 2017-11-30 08:42:14.000000000 +0100 +++ new/extra-cmake-modules-5.42.0/tests/ECMToolchainAndroidTest/main.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,4 +0,0 @@ -int main() -{ - return 0; -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-cmake-modules-5.41.0/tests/ECMToolchainAndroidTest/testlinkfile/CMakeFiles/testtarget.dir/link.txt new/extra-cmake-modules-5.42.0/tests/ECMToolchainAndroidTest/testlinkfile/CMakeFiles/testtarget.dir/link.txt --- old/extra-cmake-modules-5.41.0/tests/ECMToolchainAndroidTest/testlinkfile/CMakeFiles/testtarget.dir/link.txt 2017-11-30 08:42:14.000000000 +0100 +++ new/extra-cmake-modules-5.42.0/tests/ECMToolchainAndroidTest/testlinkfile/CMakeFiles/testtarget.dir/link.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -/usr/bin/c++ -pipe -DQT_STRICT_ITERATORS -DQURL_NO_CAST_FROM_STRING -DQT_NO_HTTP -DQT_NO_FTP -Wformat -Werror=format-security -Werror=return-type -Wno-variadic-macros -Wlogical-op -std=c++0x -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -pedantic -g -Wl,--enable-new-dtags CMakeFiles/persontest.dir/persontest.cpp.o CMakeFiles/persontest.dir/persontest_automoc.cpp.o -o testtarget -rdynamic /opt/qt5/qtbase/lib/libQt5Test.so.5.6.1 ../src/libKF5Attica.so.5.23.0 /opt/qt5/qtbase/lib/libQt5Network.so.5.6.1 /opt/qt5/qtbase/lib/libQt5Core.so.5.6.1 -Wl,-rpath,/opt/qt5/qtbase/lib:/opt/kde/build/frameworks/attica/src diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-cmake-modules-5.41.0/tests/ECMToolchainAndroidTest/testlinkfile/outputfake.json new/extra-cmake-modules-5.42.0/tests/ECMToolchainAndroidTest/testlinkfile/outputfake.json --- old/extra-cmake-modules-5.41.0/tests/ECMToolchainAndroidTest/testlinkfile/outputfake.json 2017-11-30 08:42:14.000000000 +0100 +++ new/extra-cmake-modules-5.42.0/tests/ECMToolchainAndroidTest/testlinkfile/outputfake.json 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -##EXTRALIBS## diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-cmake-modules-5.41.0/toolchain/Android.cmake new/extra-cmake-modules-5.42.0/toolchain/Android.cmake --- old/extra-cmake-modules-5.41.0/toolchain/Android.cmake 2017-11-30 08:42:14.000000000 +0100 +++ new/extra-cmake-modules-5.42.0/toolchain/Android.cmake 2017-12-20 22:35:02.000000000 +0100 @@ -246,7 +246,7 @@ COMMAND cmake -E remove_directory "${EXPORT_DIR}" COMMAND cmake -E copy_directory "${ANDROID_APK_DIR}" "${EXPORT_DIR}" COMMAND cmake -E copy "$<TARGET_FILE:${QTANDROID_EXPORTED_TARGET}>" "${EXECUTABLE_DESTINATION_PATH}" - COMMAND cmake -DINPUT_FILE="${QTANDROID_EXPORTED_TARGET}-deployment.json.in" -DOUTPUT_FILE="${QTANDROID_EXPORTED_TARGET}-deployment.json" "-DTARGET_DIR=$<TARGET_FILE_DIR:${QTANDROID_EXPORTED_TARGET}>" "-DTARGET_NAME=${QTANDROID_EXPORTED_TARGET}" "-DEXPORT_DIR=${CMAKE_INSTALL_PREFIX}" -P ${_CMAKE_ANDROID_DIR}/specifydependencies.cmake + COMMAND LANG=C cmake -DINPUT_FILE="${QTANDROID_EXPORTED_TARGET}-deployment.json.in" -DOUTPUT_FILE="${QTANDROID_EXPORTED_TARGET}-deployment.json" "-DTARGET=$<TARGET_FILE:${QTANDROID_EXPORTED_TARGET}>" "-DOUTPUT_DIR=$<TARGET_FILE_DIR:${QTANDROID_EXPORTED_TARGET}>" "-DEXPORT_DIR=${CMAKE_INSTALL_PREFIX}" "-DECM_ADDITIONAL_FIND_ROOT_PATH=\"${ECM_ADDITIONAL_FIND_ROOT_PATH}\"" -P ${_CMAKE_ANDROID_DIR}/specifydependencies.cmake COMMAND $<TARGET_FILE_DIR:Qt5::qmake>/androiddeployqt --gradle --input "${QTANDROID_EXPORTED_TARGET}-deployment.json" --output "${EXPORT_DIR}" --deployment bundled ${arguments} ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-cmake-modules-5.41.0/toolchain/specifydependencies.cmake new/extra-cmake-modules-5.42.0/toolchain/specifydependencies.cmake --- old/extra-cmake-modules-5.41.0/toolchain/specifydependencies.cmake 2017-11-30 08:42:14.000000000 +0100 +++ new/extra-cmake-modules-5.42.0/toolchain/specifydependencies.cmake 2017-12-20 22:35:02.000000000 +0100 @@ -1,27 +1,29 @@ -file(READ "${TARGET_DIR}/CMakeFiles/${TARGET_NAME}.dir/link.txt" out) +execute_process(COMMAND readelf --wide --dynamic ${TARGET} ERROR_VARIABLE readelf_errors OUTPUT_VARIABLE out RESULT_VARIABLE result) -string(FIND "${out}" "-o ${TARGET_NAME}" POS) #we trim the initial arguments, we want the ones in the end. we find the target -string(SUBSTRING "${out}" ${POS} -1 out) #we -string(REGEX MATCHALL "(/|\\.\\./|\\./)[^ ]+\\.so" outout "${out}") -string(STRIP "${outout}" outout) -string(REPLACE " /" ";/" outout "${outout}") +if (NOT result EQUAL 0) + message(FATAL_ERROR "readelf failed on ${TARGET} exit(${result}): ${readelf_errors}") +endif() +string(REPLACE "\n" ";" lines "${out}") set(extralibs) -foreach(lib IN LISTS outout) #now we filter Qt5 libraries, because Qt wants to take care about these itself - if(NOT ${lib} MATCHES ".*/libQt5.*") - # resolve relative paths - if(${lib} MATCHES "^(\\.\\./|\\./)") - set(lib "${TARGET_DIR}/${lib}") - endif() - if(extralibs) - set(extralibs "${extralibs},${lib}") +foreach(line ${lines}) + string(REGEX MATCH ".*\\(NEEDED\\) +Shared library: +\\[(.+)\\]$" matched ${line}) + set(currentLib ${CMAKE_MATCH_1}) + + if(NOT ${currentLib} MATCHES "libQt5.*" AND matched) + find_file(ourlib-${currentLib} ${currentLib} HINTS ${OUTPUT_DIR} ${EXPORT_DIR} ${ECM_ADDITIONAL_FIND_ROOT_PATH} NO_DEFAULT_PATH PATH_SUFFIXES lib) + + if(ourlib-${currentLib}) + list(APPEND extralibs "${ourlib-${currentLib}}") else() - set(extralibs "${lib}") + message(STATUS "could not find ${currentLib} in ${OUTPUT_DIR} ${EXPORT_DIR}/lib/ ${ECM_ADDITIONAL_FIND_ROOT_PATH}") endif() endif() endforeach() + if(extralibs) - set(extralibs "\"android-extra-libs\": \"${extralibs}\",") + string(REPLACE ";" "," libs "${extralibs}") + set(extralibs "\"android-extra-libs\": \"${libs}\",") endif() set(extraplugins)