Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tarball: building without pandoc fails after make clean; configure #284

Open
barsnick opened this issue Sep 19, 2024 · 2 comments · May be fixed by #285
Open

tarball: building without pandoc fails after make clean; configure #284

barsnick opened this issue Sep 19, 2024 · 2 comments · May be fixed by #285

Comments

@barsnick
Copy link

barsnick commented Sep 19, 2024

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:

AM_CONDITIONAL([HAVE_MAN_PAGES],[test -d "${srcdir}/man/man1" -o -n "$PANDOC"])

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:

tpm2-tss-engine/Makefile.am

Lines 205 to 206 in 766505b

man/man1/%.1: man/%.1.md
$(AM_V_GEN)mkdir -p man/man1 && cat $< | $(PANDOC) -s -t man >$@

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 added a commit to barsnick/tpm2-tss-engine that referenced this issue Sep 19, 2024
When building from a tarball, pre-created man pages are preset. Yet `make
clean` clobbers them, leaving their target directory intact. Therefore, the
next configure call will try to build man pages even if pandoc isn't
available.

Fix this by cleaning the man pages only if they can be recreated by the
presence of pandoc.

Fixes tpm2-software#284

Signed-off-by: Moritz Barsnick <[email protected]>
barsnick added a commit to barsnick/tpm2-tss-engine that referenced this issue Sep 19, 2024
When building from a tarball, pre-created man pages are preset. Yet `make
clean` clobbers them, leaving their target directory intact. Therefore, the
next configure call will try to build man pages even if pandoc isn't
available.

Fix this by cleaning the man pages only if they can be recreated by the
presence of pandoc.

Fixes tpm2-software#284

Signed-off-by: Moritz Barsnick <[email protected]>
@barsnick barsnick linked a pull request Sep 19, 2024 that will close this issue
@barsnick barsnick reopened this Sep 19, 2024
@kalvdans
Copy link

kalvdans commented Oct 6, 2024

I suggest creating a make distclean target that removes everything not present in the git repo, and leaving make clean to not touch things in the tarball.

@barsnick
Copy link
Author

I suggest creating a make distclean target that removes everything not present in the git repo, and leaving make clean to not touch things in the tarball.

Please feel free to do so, and take my change only as a suggestion. I needed to implement a minimal change that looked logically okay and fixed our Yocto (re-)builds.

barsnick added a commit to barsnick/tpm2-tss-engine that referenced this issue Oct 11, 2024
When building from a tarball, pre-created man pages are preset. Yet `make
clean` clobbers them, leaving their target directory intact. Therefore, the
next configure call will try to build man pages even if pandoc isn't
available.

Fix this by cleaning the man pages only if they can be recreated by the
presence of pandoc.

Fixes tpm2-software#284

Signed-off-by: Moritz Barsnick <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants