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

conditional man pages #83

Closed
jubalh opened this issue Sep 5, 2017 · 4 comments
Closed

conditional man pages #83

jubalh opened this issue Sep 5, 2017 · 4 comments

Comments

@jubalh
Copy link
Member

jubalh commented Sep 5, 2017

The upstream tarball ships with pre-made man pages.
However the content of the man pages is dependent on compile options.
For example: https://github.com/shadow-maint/shadow/blob/master/man/login.defs.d/CHFN_AUTH.xml#L31

So in case shadow is compiled with --with-libpam, man login.defs will not include the entry about CHFN_AUTH.

Some distributions however just use the pre-made man pages, meaning the man pages don't fit their installation exactly.

To use the right one it is necessary to compile with --enable-man and also have the following:

  • xsltproc
  • docbook 4
  • docbook stylesheets
  • xml2po

If one of the first three is not present at build time, it will silently switch --enable-man off.

So this bug report is about discussing whether shipping pre-made man pages is a good idea because they depend on conditions. And if yes, whether we should note somewhere that they are conditional so distributions are aware of it an choose to build them themselves.
Shipping them but adding a note has the benefits of not adding more build requirements as a must.

@hallyn
Copy link
Member

hallyn commented Sep 6, 2017 via email

@jubalh
Copy link
Member Author

jubalh commented Sep 8, 2017

Yes, I think something like this is a good idea.
I will create a PR later.

jubalh added a commit to jubalh/shadow that referenced this issue Sep 8, 2017
@vapier
Copy link
Contributor

vapier commented Sep 8, 2017

i agree strongly that we want precompiled man-pages in releases (the tools needed to build aren't exactly common or light to install). however, i'd suggest we take a different long term approach here ...

what if the man pages always contained all the possible content regardless of compiled settings ? instead, we annotate the relevant sections as "pam specific" or "available when built with pam support" or something like that ? as it stands right now, in order to read man pages that cover a system, you have to be on that exact system reading its man pages. there's no way to consult docs on another system or via the web. if i'm debugging a system that is down or misbehaving, having to have another connection/session active on it just to run man is kind of a downer.

some (i expect reasonable or common scenarios):

  • on a laptop ssh-ed into other systems -- open another local terminal to run man (latency will be much better than running on remote side), or open a web page with docs and read it there
  • sitting at a rescue console trying to debug things -- i'll still use my laptop to reference things because getting another local console might not be feasible or that easy to navigate
  • connected to an embedded device or a container server -- docs might not even be available on it

i understand that, by consulting documentation that isn't on the exact device i'm hacking on, there's a chance for version skew. but when you do releases, it's also possible to snapshot the release documentation, so that would be addressable.

jubalh added a commit to jubalh/shadow that referenced this issue Sep 8, 2017
@hallyn
Copy link
Member

hallyn commented Sep 8, 2017 via email

@hallyn hallyn closed this as completed in #84 Oct 6, 2017
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

No branches or pull requests

3 participants