This is on the latest commit of kdesrc-build (87cdf784) and a fully updated copy of Neon developer version. When the build process gets to custom-qt6-libs, it pulls a version of gpgme from upstream. When it tries to build gpgme, the build fails with this error: /home/nathan/kde/src/gpgme/lang/cpp/src/editinteractor.cpp:299:32: error: 'GPG_ERR_NO_RESET_CODE' was not declared in this scope; did you mean 'GPG_ERR_NO_USER_ID'? 299 | return Error::fromCode(GPG_ERR_NO_RESET_CODE); | ^~~~~~~~~~~~~~~~~~~~~ | GPG_ERR_NO_USER_ID It looks like gpgme depends on another package, libgpg-error-dev, and that gpgme recently got an update that relies on new error codes that were added to that package. It may also require new versions of the other GnuPG stuff, I didn't check.
This still happens on Neon user edition. For me it fails in > Building gpgme from custom-qt6-libs (19/43) > Fetching remote changes to gpgme > Merging gpgme changes from branch master > No changes to gpgme source code, but proceeding to build anyway. > Compiling... failed (after 20 seconds) I checked https://invent.kde.org/sysadmin/repo-metadata/-/blob/master/module-definitions/custom-qt6-libs.ksb?ref_type=heads and it does define an "option" libgpg-error. But when I look into the src directory I only see the gpgme directory, not the libgpg-error so it is never checked out? Maybe because the libgpgme11-dev package which probably pulls in libgpg-error-dev as well is installed via https://invent.kde.org/sysadmin/repo-metadata/-/blob/master/distro-dependencies/debian.ini?ref_type=heads?
Ok, I found the issue: There is no dependency at all defined between gpgme and libgpg-error. So the latter is never build (except for Qt I guess) and as long as the system headers match the gpgme package nobody notices. I worked around it via this command: echo 'third-party/gpgme: third-party/libgpg-error' >> ~/.local/state/sysadmin-repo-metadata/dependencies/dependency-data-kf6-qt6 Not sure how this should be fixed properly, maybe in https://invent.kde.org/nicolasfella/dependency-generator? The quickest fix would probably if third-party/libgpg-error was added as a dependency to https://invent.kde.org/frameworks/kwallet/-/blob/master/.kde-ci.yml since kwallet is the only app which depends on gpgme according to the dependencies file.
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kwallet/-/merge_requests/82
I still can't pass the build with the fix, is there anything I should do after switch to your tree? acelan@acelan-precision5470:~/kde/src/kwallet git:(add_libgpg-error_dependency*) $ git show commit 111c7693c641b4ce7912c462abfd0c5b40d4bcba (HEAD -> add_libgpg-error_dependency, origin/add_libgpg-error_dependency) Author: Nathan Misner <nathan@infochunk.com> Date: Sat May 4 18:25:33 2024 -0500 CI: Add libgpg-error as a dependency Depending on gpgme but not libgpg-error makes kdesrc-build fail if the libgpg-error headers shipped by your distro are older than the version required by upstream gpgme. BUG: 485564 diff --git a/.kde-ci.yml b/.kde-ci.yml index 16690708..5f7e0030 100644 --- a/.kde-ci.yml +++ b/.kde-ci.yml @@ -13,6 +13,7 @@ Dependencies: 'frameworks/kwidgetsaddons' : '@same' 'libraries/qca': '@latest' 'third-party/gpgme' : '@same' + 'third-party/libgpg-error' : '@same' Options: test-before-installing: True Got the identical error Building gpgme from custom-qt6-libs (15/21) Fetching remote changes to gpgme Merging gpgme changes from branch master No changes to gpgme source code, but proceeding to build anyway. Compiling... failed (after 4 seconds) gpgme didn't build, stopping here.
Just a heads-up: I have raised the required version of libgpg-error in gpgme to 1.47 (which added the new error code). No idea how to get kdesrc-build/kde-builder to build libgpg-error. Maybe it relies on the version provided by your distribution.
This is my workaround: echo 'third-party/gpgme: third-party/libgpg-error' >> ~/.local/state/sysadmin-repo-metadata/dependencies/dependency-data-kf6-qt6 I think this shouldn't be required anymore but that tool from Nicolas Fella has to be run to update the dependencies from the CI data. Maybe that was done already; if it still doesn't work (I didn't check, my workaround works for me) I guess there is a bug in that tool. Since it is written in rust I didn't want to dive into that topic.
Hmmm... the posted commit added the dependency to kwallet. But I think it is required earlier in the build chain so if Nicolas' tool was run maybe it is still broken because it isn't pulled in early enough. Or due to the dependency ordering third-party/libgpg-error is built after third-party/gpgme since the former is no dep on the latter but on kwallet. IMO the cleanest solution would be to define the dep like I did in my workaround but that would probably require some change in Nicolas' tool.
> Since it is written in rust I didn't want to dive into that topic. I have rewritten it in Python, it is resided in the sysadmin/repo-metadata repo. > I worked around it via this command: > echo 'third-party/gpgme: third-party/libgpg-error' >> ~/.local/state/sysadmin-repo-metadata/dependencies/dependency-data-kf6-qt6 Correct, this will be the current workaround. For the proper resolving, I think I should have separate dependencies/module-definitions files for kde-builder, and implementing it there.
> I have raised the required version of libgpg-error in gpgme to 1.47 That was the root problem. Debian has only 1.46. > echo 'third-party/gpgme: third-party/libgpg-error' >> ~/.local/state/sysadmin-repo-metadata/dependencies/dependency-data-kf6-qt6 That worked for me on a fresh setup where the problem is still present as of today.
and to get kwallet to build I also had to: > echo 'frameworks/kwallet: third-party/gpgmepp' >> ~/.local/state/sysadmin-repo-metadata/dependencies/dependency-data-kf6-qt6
A possibly relevant merge request was started @ https://invent.kde.org/sysadmin/repo-metadata/-/merge_requests/609
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kwallet/-/merge_requests/126
Git commit ec8d8cd088e257963473ee591c420fd0a1c2a314 by Sebastian Sauer. Committed on 08/08/2025 at 10:45. Pushed by ngraham into branch 'master'. Fix compile kwallet using kde-builder The .kde-ci.yml defines a dependency to third-party/gpgme what will result in gpgme being compiled when compiling kwallet rather then using the distros gpgme. The problem with that is that the newest gpgme requires a newer libgpg-error then my distributor ships. That means an additional dependency of kwallet to third-party/libgpg-error would be needed to use the newer libgpg-error. That in turn would also need a dependency to third-party/gpgmepp. By removing the existing entry to third-party/gpgme all that is not needed and the distributors gpgme+libgpg-error+gpgmepp will be used. M +0 -1 .kde-ci.yml https://invent.kde.org/frameworks/kwallet/-/commit/ec8d8cd088e257963473ee591c420fd0a1c2a314