2015-07-12 18:08:57

by Ulf Magnusson

[permalink] [raw]
Subject: KDBUS breaks 'make installmandocs'

Hello,

Tested with next-20150709.

Documentation/kdbus/Makefile lacks an 'installmandocs' target, causing
problems for

%docs: scripts_basic FORCE
$(Q)$(MAKE) $(build)=scripts build_docproc
$(Q)$(MAKE) $(build)=Documentation/DocBook $@
$(Q)$(MAKE) $(build)=Documentation/kdbus $@

from the top-level Makefile. It still works, but no KDBUS-related man
pages are installed, and the final error isn't reassuring.

Documentation/DocBook/Makefile installs man pages into section 9, while
KDBUS uses 7. I'm not familiar enough with KDBUS to know what the right
thing to do here is.

Cheers,
Ulf


2015-07-14 00:39:28

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: KDBUS breaks 'make installmandocs'

On Sun, Jul 12, 2015 at 08:08:46PM +0200, Ulf Magnusson wrote:
> Hello,
>
> Tested with next-20150709.
>
> Documentation/kdbus/Makefile lacks an 'installmandocs' target, causing
> problems for
>
> %docs: scripts_basic FORCE
> $(Q)$(MAKE) $(build)=scripts build_docproc
> $(Q)$(MAKE) $(build)=Documentation/DocBook $@
> $(Q)$(MAKE) $(build)=Documentation/kdbus $@
>
> from the top-level Makefile. It still works, but no KDBUS-related man
> pages are installed, and the final error isn't reassuring.

What's the final error?

> Documentation/DocBook/Makefile installs man pages into section 9, while
> KDBUS uses 7. I'm not familiar enough with KDBUS to know what the right
> thing to do here is.

I don't know either, perhaps someone on linux-api knows?

thanks,

greg k-h

2015-07-14 02:00:51

by Ulf Magnusson

[permalink] [raw]
Subject: Re: KDBUS breaks 'make installmandocs'

On Mon, Jul 13, 2015 at 05:39:25PM -0700, Greg KH wrote:
> On Sun, Jul 12, 2015 at 08:08:46PM +0200, Ulf Magnusson wrote:
> > Hello,
> >
> > Tested with next-20150709.
> >
> > Documentation/kdbus/Makefile lacks an 'installmandocs' target, causing
> > problems for
> >
> > %docs: scripts_basic FORCE
> > $(Q)$(MAKE) $(build)=scripts build_docproc
> > $(Q)$(MAKE) $(build)=Documentation/DocBook $@
> > $(Q)$(MAKE) $(build)=Documentation/kdbus $@
> >
> > from the top-level Makefile. It still works, but no KDBUS-related man
> > pages are installed, and the final error isn't reassuring.
>
> What's the final error?
>

$ sudo make installmandocs
GEN Documentation/DocBook//v4l2.xml
find Documentation/DocBook/man -name '*.9' | xargs gzip -f
mkdir -p /usr/local/man/man9/
install Documentation/DocBook/man/*.9.gz /usr/local/man/man9/
make[1]: *** No rule to make target 'installmandocs'. Stop.
Makefile:1359: recipe for target 'installmandocs' failed
make: *** [installmandocs] Error 2


The "*** No rule to make target 'installmandocs'. Stop." error is
generated for Documentation/kdbus/Makefile. The other man pages still
install fine.

(That "GEN Documentation/DocBook//v4l2.xml" line might be an
unrelated issue. It's from the 'mandocs' prerequisite and shows up even
when the pages are already built.)

> > Documentation/DocBook/Makefile installs man pages into section 9, while
> > KDBUS uses 7. I'm not familiar enough with KDBUS to know what the right
> > thing to do here is.
>
> I don't know either, perhaps someone on linux-api knows?
>
> thanks,
>
> greg k-h

Cheers,
Ulf

2015-07-14 18:42:05

by Jim Davis

[permalink] [raw]
Subject: Re: KDBUS breaks 'make installmandocs'

On Mon, Jul 13, 2015 at 7:00 PM, Ulf Magnusson <[email protected]> wrote:
> On Mon, Jul 13, 2015 at 05:39:25PM -0700, Greg KH wrote:
>> On Sun, Jul 12, 2015 at 08:08:46PM +0200, Ulf Magnusson wrote:
>> > Hello,
>> >
>> > Tested with next-20150709.
>> >
>> > Documentation/kdbus/Makefile lacks an 'installmandocs' target, causing
>> > problems for
>> >
>> > %docs: scripts_basic FORCE
>> > $(Q)$(MAKE) $(build)=scripts build_docproc
>> > $(Q)$(MAKE) $(build)=Documentation/DocBook $@
>> > $(Q)$(MAKE) $(build)=Documentation/kdbus $@
>> >
>> > from the top-level Makefile. It still works, but no KDBUS-related man
>> > pages are installed, and the final error isn't reassuring.
>>
>> What's the final error?
>>
>
> $ sudo make installmandocs
> GEN Documentation/DocBook//v4l2.xml
> find Documentation/DocBook/man -name '*.9' | xargs gzip -f
> mkdir -p /usr/local/man/man9/
> install Documentation/DocBook/man/*.9.gz /usr/local/man/man9/
> make[1]: *** No rule to make target 'installmandocs'. Stop.
> Makefile:1359: recipe for target 'installmandocs' failed
> make: *** [installmandocs] Error 2
>
>
> The "*** No rule to make target 'installmandocs'. Stop." error is
> generated for Documentation/kdbus/Makefile. The other man pages still
> install fine.

There's a similar problem with 'make cleandocs'. Adding noop rules
for installdocs and cleandocs to Documentation/kdbus/Makefile at least
gets rid of the error messages.

Jim

2015-07-15 14:19:32

by David Herrmann

[permalink] [raw]
Subject: Re: KDBUS breaks 'make installmandocs'

Hi

On Tue, Jul 14, 2015 at 8:24 PM, Jim Davis <[email protected]> wrote:
> On Mon, Jul 13, 2015 at 7:00 PM, Ulf Magnusson <[email protected]> wrote:
>> On Mon, Jul 13, 2015 at 05:39:25PM -0700, Greg KH wrote:
>>> On Sun, Jul 12, 2015 at 08:08:46PM +0200, Ulf Magnusson wrote:
>>> > Hello,
>>> >
>>> > Tested with next-20150709.
>>> >
>>> > Documentation/kdbus/Makefile lacks an 'installmandocs' target, causing
>>> > problems for
>>> >
>>> > %docs: scripts_basic FORCE
>>> > $(Q)$(MAKE) $(build)=scripts build_docproc
>>> > $(Q)$(MAKE) $(build)=Documentation/DocBook $@
>>> > $(Q)$(MAKE) $(build)=Documentation/kdbus $@
>>> >
>>> > from the top-level Makefile. It still works, but no KDBUS-related man
>>> > pages are installed, and the final error isn't reassuring.
>>>
>>> What's the final error?
>>>
>>
>> $ sudo make installmandocs
>> GEN Documentation/DocBook//v4l2.xml
>> find Documentation/DocBook/man -name '*.9' | xargs gzip -f
>> mkdir -p /usr/local/man/man9/
>> install Documentation/DocBook/man/*.9.gz /usr/local/man/man9/
>> make[1]: *** No rule to make target 'installmandocs'. Stop.
>> Makefile:1359: recipe for target 'installmandocs' failed
>> make: *** [installmandocs] Error 2
>>
>>
>> The "*** No rule to make target 'installmandocs'. Stop." error is
>> generated for Documentation/kdbus/Makefile. The other man pages still
>> install fine.
>
> There's a similar problem with 'make cleandocs'. Adding noop rules
> for installdocs and cleandocs to Documentation/kdbus/Makefile at least
> gets rid of the error messages.

So the Docbook targets support much more %docs targets than just
cleandocs and installdocs. I don't think it's reasonable to guarantee
that all those targets are supported for all documentation subdirs.
Hence, I'd propose the attached patch. This should at least make sure
the targets won't fail.

But I think we should look into cleandocs and installmandocs. I'll
have a look into that later. This patch should just fix all the other
targets right now.

Thanks
David


diff --git a/Documentation/kdbus/Makefile b/Documentation/kdbus/Makefile
index af87641..8caffe5 100644
--- a/Documentation/kdbus/Makefile
+++ b/Documentation/kdbus/Makefile
@@ -38,3 +38,7 @@ mandocs: $(MANFILES)
htmldocs: $(HTMLFILES)

clean-files := $(MANFILES) $(HTMLFILES)
+
+# we don't support other %docs targets right now
+%docs:
+ @true

2015-07-15 18:04:25

by Jim Davis

[permalink] [raw]
Subject: Re: KDBUS breaks 'make installmandocs'

On Wed, Jul 15, 2015 at 7:19 AM, David Herrmann <[email protected]> wrote:

> diff --git a/Documentation/kdbus/Makefile b/Documentation/kdbus/Makefile
> index af87641..8caffe5 100644
> --- a/Documentation/kdbus/Makefile
> +++ b/Documentation/kdbus/Makefile
> @@ -38,3 +38,7 @@ mandocs: $(MANFILES)
> htmldocs: $(HTMLFILES)
>
> clean-files := $(MANFILES) $(HTMLFILES)
> +
> +# we don't support other %docs targets right now
> +%docs:
> + @true

Looks good, no errors with next-20150715. Thanks!

Jim