You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This does not affect binaries built on the CI, only binaries built locally
When running ./build.sh in a local repository, we get a local binary where ./pihole-FTL verify works as expected. However, when running /.build.sh install, any call to pihole-FTL verify will actually fail.
Furthermore, we observe this in /var/log/pihole/FTL.log:
2024-10-27 10:10:45.636 CET [3305335M] CRIT: Corrupt binary detected - this may lead to unexpected behaviour!
Preliminary investigation results are that CMake modifies the binary post-build (i.e., post checksum-generation) which subsequently leads to a hash mismatch and - entirely correctly - emitting the critical error above. This is a new issue after recently upgrading my Pi-hole from Ubuntu 22.04 LTS to 24.04 LTS so it is probably caused by a more recent CMake version being used.
When directly comparing the local and the installed file, we get a few differences:
This may be related to the this new output I don't recall having seen before:
[...]
Installing pihole-FTL
-- Install configuration: "RelWithDebInfo"
-- Installing: /usr/bin/pihole-FTL
-- Set non-toolchain portion of runtime path of "/usr/bin/pihole-FTL" to "" <------------
There is probably a CMake setting to prevent this binary modification but I'm not aware of it. Another solution would be moving the install step into ./build.sh instead of doing it with CMake.
$ cmake --version
cmake version 3.28.3
The text was updated successfully, but these errors were encountered:
Yes, this was already close and I tried that earlier but to no avail. The solution was similar in the end, so we have not been far off but, instead of fiddling around with the RPATH, I found a way to disabled this altogether. We don't need it for FTL.
Note
This does not affect binaries built on the CI, only binaries built locally
When running
./build.sh
in a local repository, we get a local binary where./pihole-FTL verify
works as expected. However, when running/.build.sh install
, any call topihole-FTL verify
will actually fail.Furthermore, we observe this in
/var/log/pihole/FTL.log
:Preliminary investigation results are that CMake modifies the binary post-build (i.e., post checksum-generation) which subsequently leads to a hash mismatch and - entirely correctly - emitting the critical error above. This is a new issue after recently upgrading my Pi-hole from Ubuntu 22.04 LTS to 24.04 LTS so it is probably caused by a more recent CMake version being used.
When directly comparing the local and the installed file, we get a few differences:
This may be related to the this new output I don't recall having seen before:
There is probably a CMake setting to prevent this binary modification but I'm not aware of it. Another solution would be moving the install step into
./build.sh
instead of doing it with CMake.The text was updated successfully, but these errors were encountered: