Source: appstream
Version: 0.11.4-1
Severity: critical

The latest appstream release migrates the build system to meson, but builds a cmake file for compatibility, so far so good. Sadly, the logic to detect if the build was for 32 bits or for 64 bits seems to be incorrect, which makes software that build depends on libappstreamqt-dev to ftbfs [1].

I looked at the code but couldn't find the root of the issue. The end of the generated file (/usr/lib/i386-linux-gnu/cmake/AppStreamQt/AppStreamQtConfigVersion.cmake) says:

# check that the installed version has the same 32/64bit-ness as the one which 
is currently searching:
if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8")
  math(EXPR installedBits "8 * 8")
  set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
  set(PACKAGE_VERSION_UNSUITABLE TRUE)
endif()

This last part `NOT CMAKE_SIZEOF_VOID_P STREQUAL "8"', seems to indicate that it would never work on a 32 bit system. Is the "8" here meant to be replaced at build time?

Happy hacking,

[1]
https://buildd.debian.org/status/fetch.php?pkg=frameworkintegration&arch=i386&ver=5.37.0-2&stamp=1504461982&raw=0

-- System Information:
Debian Release: 9.1
 APT prefers stable-debug
 APT policy: (600, 'stable-debug'), (600, 'proposed-updates'), (600, 'stable'), 
(60, 'testing-debug'), (60, 'testing'), (50, 'unstable-debug'), (50, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.9.0-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

--
"C makes it easy to shoot yourself in the foot; C++ makes it harder,
but when you do it blows your whole leg off."
-- Bjarne Stroustrup
Saludos /\/\ /\ >< `/

Attachment: signature.asc
Description: PGP signature

Reply via email to