SUMMARY When trying to build kdenlive git master on openSUSE Tumbleweed, with GCC 9, compilation fails with this error: [ 120s] cd "/home/abuild/rpmbuild/BUILD/kdenlive-19.11.70git.20191024T115227~628d47842/build/thumbnailer" && /usr/bin/c++ -DKCOREADDONS_LIB -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_URL_CAST_FROM_STRING -DQT_WIDGETS_LIB -DTRANSLATION_DOMAIN=\"kdenlive\" -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Dmltpreview_EXPORTS -I"/home/abuild/rpmbuild/BUILD/kdenlive-19.11.70git.20191024T115227~628d47842/build/thumbnailer" -I"/home/abuild/rpmbuild/BUILD/kdenlive-19.11.70git.20191024T115227~628d47842/thumbnailer" -I"/home/abuild/rpmbuild/BUILD/kdenlive-19.11.70git.20191024T115227~628d47842/build/thumbnailer/mltpreview_autogen/include" -I/usr/include/mlt -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtCore -isystem /usr/lib/qt5/mkspecs/linux-g++ -isystem /usr/include/qt5/QtGui -isystem /usr/include/KF5/KIOCore -isystem /usr/include/KF5 -isystem /usr/include/KF5/KCoreAddons -isystem /usr/include/KF5/KService -isystem /usr/include/KF5/KConfigCore -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtConcurrent -isystem /usr/include/qt5/QtDBus -isystem /usr/include/KF5/KIOWidgets -isystem /usr/include/KF5/KJobWidgets -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/KF5/KCompletion -isystem /usr/include/KF5/KWidgetsAddons -fomit-frame-pointer -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -fPIC -Wno-suggest-override -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/mltpreview.dir/mltpreview.cpp.o -c "/home/abuild/rpmbuild/BUILD/kdenlive-19.11.70git.20191024T115227~628d47842/thumbnailer/mltpreview.cpp" [ 120s] /home/abuild/rpmbuild/BUILD/kdenlive-19.11.70git.20191024T115227~628d47842/src/lib/external/media_ctrl/mediactrl.c: In function 'find_first_device': [ 120s] /home/abuild/rpmbuild/BUILD/kdenlive-19.11.70git.20191024T115227~628d47842/src/lib/external/media_ctrl/mediactrl.c:355:5: error: 'for' loop initial declarations are only allowed in C99 or C11 mode [ 120s] 355 | for (int i = 0; i < 32; i++) { [ 120s] | ^~~ [ 120s] /home/abuild/rpmbuild/BUILD/kdenlive-19.11.70git.20191024T115227~628d47842/src/lib/external/media_ctrl/mediactrl.c:355:5: note: use option '-std=c99', '-std=gnu99', '-std=c11' or '-std=gnu11' to compile your code [ 120s] make[2]: *** [src/lib/external/media_ctrl/CMakeFiles/media_ctrl.dir/build.make:76: src/lib/external/media_ctrl/CMakeFiles/media_ctrl.dir/mediactrl.c.o] Error 1 [ 120s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/kdenlive-19.11.70git.20191024T115227~628d47842/build' [ 120s] make[1]: *** [CMakeFiles/Makefile2:752: src/lib/external/media_ctrl/CMakeFiles/media_ctrl.dir/all] Error 2 I can't track which recent commit might have broken it, though. STEPS TO REPRODUCE 1. Build the latest kdenlive git master SOFTWARE/OS VERSIONS gcc --version gcc (SUSE Linux) 9.2.1 20190903 [gcc-9-branch revision 275330] Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. All the KF5 stack is built from its latest git master state.
David, Hannah, I guess this is another issue caused by the recent ECM changes
Same build failures on. KDE CI: https://build.kde.org/job/Applications/job/kdenlive/job/kf5-qt5%20SUSEQt5.12/164/console Neon CI: https://build.neon.kde.org/job/bionic_unstable_forks_kdenlive_bin_amd64/231/console Also fails on Kubuntu CI.
(In reply to Christophe Giboudeaux from comment #1) > David, Hannah, I guess this is another issue caused by the recent ECM changes Shouldn't that be fixed now by https://github.com/KDE/extra-cmake-modules/commit/fd6e98ba6de89a7f08364bb2ec096a5310c1cde8 ?
(In reply to Hannah von Reth from comment #3) > Shouldn't that be fixed now by > https://github.com/KDE/extra-cmake-modules/commit/ > fd6e98ba6de89a7f08364bb2ec096a5310c1cde8 ? The builds I linked/referred to in #2 are all using ECM built including that commit.
(In reply to Hannah von Reth from comment #3) > (In reply to Christophe Giboudeaux from comment #1) > > David, Hannah, I guess this is another issue caused by the recent ECM changes > > Shouldn't that be fixed now by > https://github.com/KDE/extra-cmake-modules/commit/ > fd6e98ba6de89a7f08364bb2ec096a5310c1cde8 ? Not in this case. previously, ECM was setting '-std=iso9899:1990', now it sets C90 which defines '-std=c90'
and that overwrites `set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --std=c99")` in kdenlive/src/lib/external/media_ctrl/CMakeLists.txt
It can be fixed with: diff --git a/src/lib/external/media_ctrl/CMakeLists.txt b/src/lib/external/media_ctrl/CMakeLists.txt index 24870ad3b..ec8e2fb71 100644 --- a/src/lib/external/media_ctrl/CMakeLists.txt +++ b/src/lib/external/media_ctrl/CMakeLists.txt @@ -1,10 +1,10 @@ if(HAVE_LINUX_INPUT_H) # Create a static library media_ctrl - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --std=c99") include_directories( ${CMAKE_BINARY_DIR} ) add_library(media_ctrl STATIC mediactrl.c ) + set_target_properties(media_ctrl PROPERTIES C_STANDARD 99) endif() but that means the ECM backward compatibility is broken
https://invent.kde.org/kde/kdenlive/commit/1a26aa5032afbb47442b23bf5230661b92a00a23 was pushed, but without a review.
According to https://invent.kde.org/kde/kdenlive/-/jobs/20790/ it also fails to build the 19.08 branch. Could someone backport if this is the correct fix?
Git commit 63f232560ec2fd98b266f2177b37c51c4ceb1428 by Vincent Pinon, on behalf of Yuri Chornoivan. Committed on 05/11/2019 at 06:59. Pushed by vpinon into branch 'Applications/19.08'. Try to make it compile with gcc 9 Signed-off-by: Vincent Pinon <vpinon@kde.org> M +2 -1 src/lib/external/media_ctrl/mediactrl.c https://invent.kde.org/kde/kdenlive/commit/63f232560ec2fd98b266f2177b37c51c4ceb1428