quilt-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Quilt-dev] docdir


From: Martin Quinson
Subject: Re: [Quilt-dev] docdir
Date: Wed, 7 Dec 2011 16:03:53 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

This rational sounds perfectly ok to me (as debian packager). I only
skimed through the patch but I trust you on this side.

Bye, Mt.

On Wed, Dec 07, 2011 at 12:09:24PM +0100, Jean Delvare wrote:
> Hi all,
> 
> I would like to fix an issue with docdir when building/installing quilt, 
> and am seeking for opinions and comments.
> 
> Initially my problem is that quilt doesn't install its documentation 
> where I (Suse packager) would like it to, and it won't let me change it 
> through configure options, so I have to patch Makefile.in when building 
> the package. This has a maintenance cost I'd like to get rid of. The 
> cause of the problem is that
> 
>       $(docdir)/$(PACKAGE)-$(VERSION)
> 
> is being hard-coded 6 times in Makefile.in, so you have to change it 
> that many times if you want a different location. And I do want to 
> change it because the standard path for documentation files on Suse (and 
> Debian, FWIW) is /usr/share/doc/$(PACKAGE) and not 
> /usr/share/doc/$(PACKAGE)-$(VERSION) [1].
> 
> While trying to solve this first problem, I noticed two additional 
> problems, which are related so I believe that all three problems should 
> be solved at once.
> 
> Problem #2 is that ./configure --help says:
> 
>   --docdir=DIR            documentation root [DATAROOTDIR/doc/quilt]
> 
> but the default value of $(docdir) is actually set to $(datadir)/doc 
> later in the configure script. This is both misleading and a lack of 
> flexibility (back to problem #1).
> 
> Problem #3 is that ./configure also looks at $RPM_DOC_DIR and uses that 
> as the default value for $(docdir) if defined. It seems wrong to me that 
> an upstream source package should care about package management specific 
> things. Even though I know rpm is part of the LSB, it would seem more 
> logical to me that the quilt.spec file of an rpm-based distribution 
> would call ./configure --docdir=${RPM_DOC_DIR}/quilt if needed (which is 
> currently not possible due to the Makefile.in implementation, see 
> problem #1), and the configure script itself wouldn't contain references 
> to rpm. As a matter of fact, I couldn't find any other configure script 
> which looks at $RPM_DOC_DIR, and I'm not quite sure why quilt would be 
> different in this respect.
> 
> Andreas, according to git blame, you did add this part of configure.ac:
> 
> dnl Determine where package documentation is supposed to go
> if test -n "$RPM_DOC_DIR" ; then
>     docdir="$RPM_DOC_DIR"
> else
>     docdir='$(datadir)/doc'
> fi
> 
> The commit message did not really enlighten me. Can you please explain 
> what problem you were trying to solve? I'd like to get rid of the above, 
> as doing so (plus other adjustments) solves all 3 problems.
> 
> [1] As far as I can see, the naming scheme used by Suse and Debian is 
> also what autoconf-generated configure scripts use by default, which 
> makes it a de-facto standard IMHO.
> 
> The patch I have in mind goes along these lines:
> 
> ---
>  Makefile.in  |   13 +++++++------
>  configure.ac |    7 +------
>  2 files changed, 8 insertions(+), 12 deletions(-)
> 
> --- a/Makefile.in
> +++ b/Makefile.in
> @@ -1,6 +1,7 @@
>  PACKAGE :=   @PACKAGE_NAME@
>  VERSION :=   @PACKAGE_VERSION@
>  RELEASE :=   @PACKAGE_RELEASE@
> +PACKAGE_TARNAME := @PACKAGE_TARNAME@
>  PACKAGE_BUGREPORT := @PACKAGE_BUGREPORT@
>  
>  prefix :=    @prefix@
> @@ -213,7 +214,7 @@ doc/quilt.1: doc/quilt.1.in $(QUILT:%=qu
>           ;;                                                          \
>         address@hidden@*)                                             \
>           echo "$$line" |                                             \
> -         $(SED) -e 's:@DOCSUBDIR''@:$(docdir)/$(PACKAGE)-$(VERSION):g' \
> +         $(SED) -e 's:@DOCSUBDIR''@:$(docdir):g' \
>           ;;                                                          \
>         *)                                                            \
>           echo "$$line"                                               \
> @@ -272,7 +273,7 @@ $(patsubst %.in,%,$(wildcard bin/*.in qu
>               -e 's:@RELEASE''@:$(RELEASE):g'                         \
>               -e 's:@ETCDIR''@:$(etcdir):g'                           \
>               -e 's:@LOCALEDIR''@:$(localedir):g'                     \
> -             -e 's:@DOCSUBDIR''@:$(docdir)/$(PACKAGE)-$(VERSION):g'  \
> +             -e 's:@DOCSUBDIR''@:$(docdir):g'                        \
>               $< > $@
>       @$(if $(filter-out $<,$(NON_EXEC_IN)),chmod +x $@)
>  
> @@ -331,11 +332,11 @@ endif
>       $(INSTALL) -d $(BUILD_ROOT)$(libdir)/$(PACKAGE)
>       $(INSTALL) -m 755 $(LIB:%=lib/%) $(BUILD_ROOT)$(libdir)/$(PACKAGE)/
>  
> -     $(INSTALL) -d $(BUILD_ROOT)$(docdir)/$(PACKAGE)-$(VERSION)/
> +     $(INSTALL) -d $(BUILD_ROOT)$(docdir)/
>       $(INSTALL) -m 644 doc/README                                    \
> -                $(BUILD_ROOT)$(docdir)/$(PACKAGE)-$(VERSION)/
> +                $(BUILD_ROOT)$(docdir)/
>       $(INSTALL) -m 644 doc/quilt.pdf doc/README.MAIL                 \
> -                $(BUILD_ROOT)$(docdir)/$(PACKAGE)-$(VERSION)/
> +                $(BUILD_ROOT)$(docdir)/
>  
>       $(INSTALL) -d $(BUILD_ROOT)$(mandir)/man1
>       $(INSTALL) -m 644 $(MAN1) $(BUILD_ROOT)$(mandir)/man1/
> @@ -373,7 +374,7 @@ uninstall ::
>                  $(notdir $(MAN1)))                                   \
>              $(BUILD_ROOT)$(etcdir)/bash_completion.d/quilt           \
>              $(BUILD_ROOT)$(etcdir)/quilt.quiltrc                     \
> -            $(BUILD_ROOT)$(docdir)/$(PACKAGE)-$(VERSION)/            \
> +            $(BUILD_ROOT)$(docdir)/                                  \
>              $(BUILD_ROOT)$(emacsdir)/quilt.el
>  
>  check: $(TESTS:test/%.test=test/.%.ok)
> --- a/configure.ac
> +++ b/configure.ac
> @@ -6,6 +6,7 @@ AC_REVISION ($Revision: 1.84 $)
>  
>  PACKAGE_RELEASE=1
>  AC_SUBST(PACKAGE_RELEASE)
> +AC_SUBST(PACKAGE_TARNAME)
>  
>  dnl Setup for backup-files compilation
>  AC_HEADER_STDC
> @@ -370,12 +371,6 @@ if test $USE_NLS = no ; then
>  fi
>  AC_SUBST(USE_NLS)
>  
> -dnl Determine where package documentation is supposed to go
> -if test -n "$RPM_DOC_DIR" ; then
> -    docdir="$RPM_DOC_DIR"
> -else
> -    docdir='$(datadir)/doc'
> -fi
>  AC_SUBST(docdir)
>  
>  dnl Check for rpmbuild (v4) vs. rpm (v3)
> 
> Comments welcome.
> 
> -- 
> Jean Delvare
> Suse L3
> 
> _______________________________________________
> Quilt-dev mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/quilt-dev

-- 
User n.: A programmer who will believe anything you tell him.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]