tpm2-tss-engine icon indicating copy to clipboard operation
tpm2-tss-engine copied to clipboard

tarball: building without pandoc fails after `make clean; configure`

Open barsnick opened this issue 5 months ago • 2 comments

When using the source tarball, and building without pandoc, builds fail after make clean with a subsequent re-configure.

This is what happens when building multiple times in a Yocto workspace, e.g. using this recipe in the meta-security layer: https://git.yoctoproject.org/meta-security/tree/meta-tpm/recipes-tpm2/tpm2-tss-engine/tpm2-tss-engine_1.1.0.bb?h=kirkstone&id=353078bc06c8b471736daab6ed193e30d533d1f1

When re-using the workspace, Yocto will issue a make clean before running autoreconf, ./configure and compiling.

Since the tarball includes the pre-processed man pages under man/man{1,3}/, and make clean erases the man page files (but not the directory), the subsequent ./configure picks up HAVE_MAN_PAGES: https://github.com/tpm2-software/tpm2-tss-engine/blob/766505bf5c943c614fd246d27d1e5cd66543250b/configure.ac#L139 and tries to build them, even when pandoc is not available. This results in a build failure:

  GEN      man/man1/tpm2tss-genkey.1
/bin/sh: line 1: -s: command not found

from this Makefile line: https://github.com/tpm2-software/tpm2-tss-engine/blob/766505bf5c943c614fd246d27d1e5cd66543250b/Makefile.am#L205-L206

The question is whether the pre-processed man pages just should not be deleted if they cannot be built, or whether the HAVE_MAN_PAGES condition should be determined differently.

barsnick avatar Sep 19 '24 12:09 barsnick