#1083175 freerdp3 FTCBFS: fails locating native tools

#1083175#5
Date:
2024-10-02 18:43:26 UTC
From:
To:
freerdp3 fails to cross build from source as a Debian package. The
upstream build system has some support for cross building built into it.
There are two tools that are to be run during build. They're
sdl-common-res2bin and generate_argument_docbook. The build system takes
care of importing these during cross building, but nothing supplies them
in the Debian build. Generating these tools using CMake is a non-trivial
affair as many of the dependencies cannot be disabled, so we'd massively
increase Build-Depends for little value. I therefore propose manually
building these two components. Doing so is a little fragile admittedly.
A minor complication is that the upstream build system references
generate_argument_docbook via its native path and that has to be
patched. I'm attaching the resulting patch for your convenience. Please
let me know if this is acceptable.

Helmut

#1083175#10
Date:
2025-03-14 08:20:51 UTC
From:
To:
I'm commenting on a single aspect of the proposed patch
here, not about the bug itself.  Please also note this
hunk isn't needed anymore, since I removed the affected
lines entirely.

On Wed, 2 Oct 2024 20:43:26 +0200 Helmut Grohne <helmut@subdivi.de> wrote:
..

@@ -133,11 +168,13 @@
  	    -e "s$(xSEDx) $${o}=[^=]+=\.$(xSEDx)$(xSEDx)g;" \
  	obj-$(DEB_HOST_GNU_TYPE)/winpr/include/winpr/buildflags.h

+ifeq ($(filter nocheck,$(DEB_BUILD_OPTIONS)),)
  execute_after_dh_auto_build:
  	dh_auto_build --builddirectory=debian/testtmp

  execute_after_dh_auto_test:
  	dh_auto_test --builddirectory=debian/testtmp
+endif

This seems to be wrong way to do it, because debhelper doesn't
implement full make(1) machinery.  If we're to do this, it should
be done like:

  execute_after_dh_auto_build:
+ifeq ($(filter nocheck,$(DEB_BUILD_OPTIONS)),)
  	dh_auto_build --builddirectory=debian/testtmp
+endif

  execute_after_dh_auto_test:
+ifeq ($(filter nocheck,$(DEB_BUILD_OPTIONS)),)
  	dh_auto_test --builddirectory=debian/testtmp
+endif


In other words: keep the targets, but make them empty
based on condition.  Instead of conditionally hide the
targets, which confuses debhelper.

Thanks,

/mjt

#1083175#15
Date:
2025-04-12 12:52:24 UTC
From:
To:
sdl-common-res2bin and generate_argument_docbook were dropped upstream
with 3.9.0. manpages and resources are now generated with cmake.

Related upstream commits for reference:

c3a5387187501d4b55b4d410b88622157cedbf11 - generate_argument_docbook
fe590801a1b89f951eefae5184a610ce27349423 - sdl-common-res2bin