here's my understanding of the problem: firstly, this is likely only a problem on debian-derived systems. and also only with blowfish
debian has this patch [1] which on *actual* little endian systems (x86,arm64...) would run the conditional branches. the thing to note is that not only QBO is defined but also the ifs get changed. so, on LE systems that original patch was behaving the same as the QBO==QBE check (with both undefined) in kwallet proper. on BE systems however the conditional aren't run and so the output is different between us (kf5) and them (debian-derived system). so far so messy. what I think was the trouble Marco mentioned is that the original debian patch was badly merged with the change David made. specifically because of the changed conditionals, QBO must not be hardcoded with that patch as that'd make QBO!=QLE and fail the conditionals below thus change behavior. in short: I don't think David's commit broke anything. I've also made a potential fix for the actual bug in neon just now. also about [2] I'm sure that's not quite right because it breaks things the other way around (i.e. for it to work it'd also have to change the conditionals from QBO==QBE to QBO==QLE, same as the debian patch). and that would technically break wallets on big endian architectures (not that I'm sure we have many users on those). the way I see it kwallet can never be properly endian aware as it'd break legacy compatibility. equally debian can never not have the patch because it'd then no longer be properly endian aware and break its legacy compatibility.... well, of course either could decide that big endian isn't important enough and either become endian aware, or endian unaware ;) [1] https://packaging.neon.kde.org/kde/kwallet.git/commit/debian/patches/blowfish_endianess.diff?id=188ca124c69902e4fba01d2af6b419e1aac71177 [2] https://invent.kde.org/frameworks/kwallet/-/merge_requests/1