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

Build requirements are undocumented, missing dependency handling sucks #38

Closed
falconindy opened this issue Oct 2, 2016 · 7 comments · Fixed by #761
Closed

Build requirements are undocumented, missing dependency handling sucks #38

falconindy opened this issue Oct 2, 2016 · 7 comments · Fixed by #761

Comments

@falconindy
Copy link
Contributor

I've recently tried to build version 4.4 of this package and run into (surmountable) problems. If I configure without --enable-man, the build fails with:

you need to run configure with --enable-man to generate man pages

If I then --enable-man, I still get the same error message above. Only after installing packages providing XSL templates, xsltproc and xml2po, are manpages successfully built. It would be wonderul if the build requirements could be clearly documented in a README file and the configure script actually bail if options like --enable-man are passed but cannot be supported (e.g. one of the binary/data deps are missing) rather than silently setting enable_man=no and moving on (and eventually failing with the above error message).

Disasm pushed a commit to archlinux-riscv/packages-cross that referenced this issue Mar 11, 2018
- switch to github-based upstream (FS#50504)
- add makedeps for building manpages (shadow-maint/shadow#38)

git-svn-id: file:///srv/repos/svn-packages/svn@277558 eb2447ed-0c53-47e4-bac8-5bc4a241df78
@hallyn
Copy link
Member

hallyn commented Mar 25, 2018

When I run ./autogen.sh with xsltproc not installed, I get

configure: error: xsltproc is missing.

You are saying you got the message

you  need to run configure with --enable-man to generate man pages

again. Can you show that sequence?

@falconindy
Copy link
Contributor Author

Well, that's the case with v4.4 when I filed this bug, still the case with 4.5, but ef6890c appears to have fixed this.

The other half of my report (documenting the requirements) is still valid.

@fariouche
Copy link
Contributor

I encountered this issue too.. looking at the configure.ac script showed that I misunderstood the option meaning.
enable-man means in fact "regen the man pages".
The problem here is specific to the git sources, as the archive version should already embed the compiled man pages.
The git version seems to be missing some of the man pages, so the installation will fail if disable-man is used.
One possible solution: if disable-man=yes and no man/file found, do not install the man (conditionnal on man folder subdir)

@jubalh
Copy link
Member

jubalh commented Jul 25, 2023

I would guess that taking a look at the configure file or CI scripts should be enough to figure out dependencies:
https://github.com/shadow-maint/shadow/blob/master/.github/workflows/runner.yml#L38

Or should they be listed under https://github.com/shadow-maint/shadow/blob/master/doc/contributions/build_install.md ?

@hallyn
Copy link
Member

hallyn commented Jul 25, 2023

Yeah lately for other projects I've taken to pointing to the github actions. Putting them elsewhere would be more friendly at first, but is guaranteed to become stale over time.

@jubalh
Copy link
Member

jubalh commented Jul 25, 2023

but is guaranteed to become stale over time

This is what I think as well.

@jubalh
Copy link
Member

jubalh commented Jul 25, 2023

We could point to the file instead.
But I even believe what we have already:

We recommend using the dependency installation commands provided by the distributions to install them. Some examples below.
apt-get build-dep shadow

is enough. Though it will miss new dependencies that are only used in master. And in the CI scripts they will be present.

Should I create a PR to doc/contributions/build_install.md adding: We recommend using the dependency installation commands provided by the distributions to install them [..]or check the dependencies in the CI script at .github/workflows/runner.yml` ?

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.

4 participants