Page MenuHome GnuPG

Kleopatra: Error when cross-compiling on debian buster
Closed, ResolvedPublic

Description

On our debian buster build system which we still use there was a compile error that Kleo::Settings does not have a member settings.isValidityPeriodInDaysImmutable

I think the problem might be that the kconfig_compiler is in a too old version. If this is easy to change in an older syntax please do so.

I want to update our build system to debian stable (bullseye) anyway where I did not have this problem.

Event Timeline

aheinecke triaged this task as Normal priority.Dec 2 2021, 5:41 PM
aheinecke created this task.

The is*Immutable members were added with version 5.68. And the current packages use KF5 5.77. So this should work. Unless ...

Hmm, kconfig_compiler is installed in <prefix>/lib64/libexec/kf5/ as kconfig_compiler_kf5. Adding $(idir)/lib64/libexec/kf5 to PATH in SETVARS in gpg4win.mk.in could fix this.

Hmm, cmake should find the right executable of kconfig_compiler. Are you sure that there is no development package of kconfig installed on the build system?

Or are you trying to compile Kleopatra against KF5 that comes with Debian buster?

ikloecker added a subscriber: ikloecker.

Reassigning to Andre to check why the build system doesn't pick up kconfig_compiler from kconfig-5.77 which is used/built for gpg4win and the appimage.

Ingo: Exactly we have the problem that we don't compile build tools before building for the target. So we take the build tooling like kconfig_compiler from the system we compile on. This means that we compile with the tooling from debian buster. Except for Qt which handles stuff like that directly and builds for example moc and the other tools correcly for the build system first.

But yeah I tend to update to bullseye anyway. For example for CMake we already need backports for Buster.

Ingo: Exactly we have the problem that we don't compile build tools before building for the target. So we take the build tooling like kconfig_compiler from the system we compile on. This means that we compile with the tooling from debian buster. Except for Qt which handles stuff like that directly and builds for example moc and the other tools correcly for the build system first.

I don't understand. Do you compile kconfig yourself? Or do you use kconfig from debian buster?

If you compile kconfig yourself (e.g. as part of a gpg4win build), then cmake should use kconfig_compiler compiled as part of kconfig. OTOH, I have seen build problems if the devel packages of some libraries were installed. I suggest to remove the devel packages of everything you build yourself from the build machine to avoid any conflicts between system-provided libraries and self-compiled libraries.

We use the tooling from debian buster. We do not compile any host tooling as part of the build, except for QtBase tools.

Ahh, this is about cross-compiling. I keep forgetting this.

ikloecker renamed this task from Kleopatra: Compile error on debian buster to Kleopatra: Error when cross-compiling on debian buster.Apr 27 2022, 10:06 AM
ikloecker moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.

Anyway, since you have replaced the only usage of is*Immutable in kleopatra, I'll close this task.