Skip to contentSkip to conversation

Build fails when Xsltproc not present

DISCUSSION Bryan Henderson 2 participants 7 messages Dec 20, 2016 – Feb 26, 2017

lore
Share & tools
lore
#0 lore raw

I found in building kmod 23 that because my system does not have Xsltproc installed, the build fails when it tries to use a null string as the Xsltproc program name to create the man pages.

I believe in that case, it should just skip building the man pages.

Or make 'configure' fail and suggest --disable-manpages.

Or make the make fail gracefully, telling you you don't have the tools necessary to create man pages and suggesting --disable-manpages.

Signature · 1 line
Bryan Henderson                                   San Jose, California
#1 lore raw
Quoted 2 lines · Bryan Henderson

I believe in that case, it should just skip building the man pages.

We don't do auto-enabling/disabling.

Quoted 4 lines

Or make 'configure' fail and suggest --disable-manpages.

Or make the make fail gracefully, telling you you don't have the tools necessary to create man pages and suggesting --disable-manpages.

Failing on configure phase would be the desired solution. I'll take a look on this for next release, but if you have a patch ready it would be appreciated.

thanks
Lucas De Marchi

#2 lore raw
Quoted 7 lines · Lucas De Marchi
Quoted 2 lines · Bryan Henderson

I believe in that case, it should just skip building the man pages.

We don't do auto-enabling/disabling.

Quoted 8 lines
Quoted 4 lines

Or make 'configure' fail and suggest --disable-manpages.

Or make the make fail gracefully, telling you you don't have the tools necessary to create man pages and suggesting --disable-manpages.

Failing on configure phase would be the desired solution. I'll take a look on this for next release, but if you have a patch ready it would be appreciated.

Actually I did it on make because man pages are with the distributed tarball

Lucas De Marchi

#3 lore raw
Quoted 1 line

Actually I did it on make because man pages are with the distributed tarball

I'm not sure I understand this. Are you saying a person doesn't need Xsltproc to do a default build because the man pages are already built? Then I wonder why I encountered this problem. I had no reason to want to rebuild something that was distributed.

Signature · 1 line
Bryan Henderson                                   San Jose, California
#4 lore raw
Quoted 6 lines · Bryan Henderson
Quoted 1 line

Actually I did it on make because man pages are with the distributed tarball

I'm not sure I understand this. Are you saying a person doesn't need Xsltproc to do a default build because the man pages are already built? Then I wonder why I encountered this problem. I had no reason to want to rebuild something that was distributed.

They are already built on the distributed tarball, those coming from
https://www.kernel.org/pub/linux/utils/kernel/kmod/
If you are building from the git repository then yes, you need xsltproc. I pushed this patch:

https://git.kernel.org/cgit/utils/kernel/kmod/kmod.git/commit/?id=72167ba113c00eea6eb73cd91ce173e5c734564b

So now when building from git it will say xsltproc is missing

Lucas De Marchi

#5 lore raw
Quoted 4 lines

They are already built on the distributed tarball, those coming from
https://www.kernel.org/pub/linux/utils/kernel/kmod/
If you are building from the git repository then yes, you need xsltproc. I pushed this patch:

Well, I built from the tarball, which I still have and see contains e.g. man/kmod.8, and yet the build failed on me. I will try to reproduce it and see what happened, but looking at my local patch to the package, I see that I 1) used --disable-manpages and 2) modified libkmod/docs/Makefile.in to prevent that directory from building. There are no man pages in libkmod/docs/ .

Your change is still right, of course. The make files should be able to tolerate these null values.

Signature · 1 line
Bryan Henderson                                   San Jose, California
#6 lore raw
Quoted 3 lines

Well, I built from the tarball, which I still have and see contains e.g. man/kmod.8, and yet the build failed on me. I will try to reproduce it and see what happened

OK, I figured it out.

'make clean' deletes the distributed man page files. Neither 'make clean' nor 'make distclean' should delete distributed files, but 'make maintainer-clean' should.

And while we're looking at clean, 'make clean' does _not_ delete the built files 'rmmod', etc. from the tools/ directory, and it should.

Signature · 1 line
Bryan Henderson                                   San Jose, California