https://bugs.kde.org/show_bug.cgi?id=463421
Bug ID: 463421 Summary: KCharsets::codecForName() deprecation breaks Kf6/Qt6 build of kconfigwidgets, which uses it unconditionally Classification: Frameworks and Libraries Product: frameworks-kcodecs Version: 5.101.0 Platform: Other OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: general Assignee: kdelibs-b...@kde.org Reporter: ferd...@gmail.com Target Milestone: --- SUMMARY I'm really not sure whether I should be reporting this against kcodecs or kconfigwidgets, but... The recent change in kcodecs to mark KCharsets::codecForName() deprecated since 5.101 breaks the kf6-frameworks-build-include build of kconfigwidgets in kdesrc-build (which is configured,in part:) module-set frameworks cmake-options -DBUILD_TESTING=TRUE -DBUILD_WITH_QT6=ON -DEXCLUDE_DEPRECATED_BEFORE_AND_AT=5.101.0 end module-set kcodecwidgets unconditionally uses codecForName() at several points within kcodecaction.cpp, so removing the method causes build failures. STEPS TO REPRODUCE 1. install kdesrc-build and configure to build kf6-frameworks for Qt6 2. kdesrc-build kconfigwidgets OBSERVED RESULT Building kconfigwidgets from frameworks (13/17) Fetching remote changes to kconfigwidgets Merging kconfigwidgets changes from branch master Source update complete for kconfigwidgets: no files affected Rebuilding because the build directory doesn't exist Preparing build system for kconfigwidgets. Running cmake targeting Unix Makefiles... Compiling... failed (after 7 seconds) See above for details. EXPECTED RESULT Successful compilation with no errors. SOFTWARE/OS VERSIONS Windows: macOS: Linux/KDE Plasma: (available in About System) KDE Plasma Version: KDE Frameworks Version: Building Kf6 from current sources with kdesrc-build Qt Version: 6.4.1 ADDITIONAL INFORMATION <sourcedir>/log/<date>/kconfigwidgets/error.log with the default options: [ 22%] Building CXX object src/CMakeFiles/KF5ConfigWidgets.dir/kcolorscheme.cpp.o .../kconfigwidgets/src/kcodecaction.cpp: In member function ‘int KCodecAction::mibForName(const QString&, bool*) const’: .../kconfigwidgets/src/kcodecaction.cpp:108:39: error: ‘class KCharsets’ has no member named ‘codecForName’; did you mean ‘encodingForName’? 108 | QTextCodec *codec = charsets->codecForName(codecName, success); | ^~~~~~~~~~~~ | encodingForName .../kconfigwidgets/src/kcodecaction.cpp:111:31: error: ‘class KCharsets’ has no member named ‘codecForName’; did you mean ‘encodingForName’? 111 | codec = charsets->codecForName(charsets->encodingForName(codecName), success); | ^~~~~~~~~~~~ | encodingForName .../kconfigwidgets/src/kcodecaction.cpp: In member function ‘bool KCodecAction::setCurrentCodec(QTextCodec*)’: .../kconfigwidgets/src/kcodecaction.cpp:214:53: error: ‘class KCharsets’ has no member named ‘codecForName’; did you mean ‘encodingForName’? 214 | if (codec == KCharsets::charsets()->codecForName(actions().at(i)->menu()->actions().at(j)->text())) { | ^~~~~~~~~~~~ | encodingForName .../kconfigwidgets/src/kcodecaction.cpp: In member function ‘bool KCodecAction::setCurrentCodec(const QString&)’: .../kconfigwidgets/src/kcodecaction.cpp:232:51: error: ‘class KCharsets’ has no member named ‘codecForName’; did you mean ‘encodingForName’? 232 | return setCurrentCodec(KCharsets::charsets()->codecForName(codecName)); | ^~~~~~~~~~~~ | encodingForName gmake[2]: *** [src/CMakeFiles/KF5ConfigWidgets.dir/build.make:97: src/CMakeFiles/KF5ConfigWidgets.dir/kcodecaction.cpp.o] Error 1 gmake[2]: *** Waiting for unfinished jobs.... gmake[1]: *** [CMakeFiles/Makefile2:741: src/CMakeFiles/KF5ConfigWidgets.dir/all] Error 2 gmake: *** [Makefile:146: all] Error 2 Downgrading to -DEXCLUDE_DEPRECATED_BEFORE_AND_AT=5.100.0 allows kconfigwidgets to compile successfully, e.g. at the end of $HOME/.config/kdesrc-buildrc: # Downgrade deprecation exclusions options frameworks cmake-options -DEXCLUDE_DEPRECATED_BEFORE_AND_AT=5.100.0 end options -- You are receiving this mail because: You are watching all bug changes.