From: Russ Allbery Date: Thu, 22 Dec 2005 07:29:52 +0000 (+0000) Subject: man-page-installation-20051221 X-Git-Tag: openafs-devel-1_5_0~138 X-Git-Url: http://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=5fde2994348d1c7f6239f98aac355011125b06ad man-page-installation-20051221 On installation, substitute the configured paths into the man pages, replacing the Transarc paths. Also fix a problem with the way that pinstall was being used to install man pages. (Silly me, I was assuming it had the same behavior as install.) This is just a quick first pass. Longer term, it's probably better to replace all paths in the man pages with unambiguous tokens and then replace those tokens instead of assuming that the man pages use Transarc paths and replacing those paths specifically. The current method has a few minor problems, such as not being able to distinguish between the various paths that make up /usr/afs/bin. Still, the results of this method are good enough to start with. --- diff --git a/Makefile.in b/Makefile.in index e6d1b81..13f80e6 100644 --- a/Makefile.in +++ b/Makefile.in @@ -812,7 +812,9 @@ distclean: clean src/wsadmin.src/Makefile \ src/xstat/Makefile \ src/helper-splint.sh - if test -d doc/man-pages ; then rm -f doc/man-pages/Makefile ; fi + if test -d doc/man-pages ; then \ + rm -f doc/man-pages/Makefile doc/man-pages/install-man ; \ + fi pristine: distclean /bin/rm -f src/config/afsconfig.h.in configure configure-libafs aclocal.m4 diff --git a/configure.in b/configure.in index a6ca110..e96a93b 100644 --- a/configure.in +++ b/configure.in @@ -6,7 +6,7 @@ AC_PROG_CC OPENAFS_CONFIGURE_COMMON if test -d 'doc/man-pages' ; then - MAN_MAKEFILE=doc/man-pages/Makefile + MAN_MAKEFILE="doc/man-pages/Makefile doc/man-pages/install-man" else MAN_MAKEFILE= fi diff --git a/doc/man-pages/.cvsignore b/doc/man-pages/.cvsignore index 70c1421..549f645 100644 --- a/doc/man-pages/.cvsignore +++ b/doc/man-pages/.cvsignore @@ -1,4 +1,5 @@ Makefile +install-man man1 man5 man8 diff --git a/doc/man-pages/Makefile.in b/doc/man-pages/Makefile.in index a4d6b78..d2ce5bb 100644 --- a/doc/man-pages/Makefile.in +++ b/doc/man-pages/Makefile.in @@ -9,26 +9,28 @@ maintclean: rm -rf man1 man5 man8 dest: + chmod +x install-man mkdir -p $(DEST)/man/man1 $(DEST)/man/man5 $(DEST)/man/man8 set -e; cd man1 && for M in *.1 ; do \ - $(INSTALL) -c -m 0644 $$M $(DEST)/man/man1/$$M ; \ + ../install-man $$M $(DEST)/man/man1/$$M ; \ done set -e; cd man5 && for M in *.5 ; do \ - $(INSTALL) -c -m 0644 $$M $(DEST)/man/man5/$$M ; \ + ../install-man $$M $(DEST)/man/man5/$$M ; \ done set -e; cd man8 && for M in *.8 ; do \ - $(INSTALL) -c -m 0644 $$M $(DEST)/man/man8/$$M ; \ + ../install-man $$M $(DEST)/man/man8/$$M ; \ done install: $(MAN1) $(MAN8) + chmod +x install-man mkdir -p $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 \ $(DESTDIR)$(mandir)/man8 set -e; cd man1 && for M in *.1 ; do \ - $(INSTALL) -c -m 0644 $$M $(DESTDIR)$(mandir)/man1/$$M ; \ + ../install-man $$M $(DESTDIR)$(mandir)/man1/$$M ; \ done set -e; cd man5 && for M in *.5 ; do \ - $(INSTALL) -c -m 0644 $$M $(DESTDIR)$(mandir)/man5/$$M ; \ + ../install-man $$M $(DESTDIR)$(mandir)/man5/$$M ; \ done set -e; cd man8 && for M in *.8 ; do \ - $(INSTALL) -c -m 0644 $$M $(DESTDIR)$(mandir)/man8/$$M ; \ + ../install-man $$M $(DESTDIR)$(mandir)/man8/$$M ; \ done diff --git a/doc/man-pages/install-man.in b/doc/man-pages/install-man.in new file mode 100644 index 0000000..cd4ab34 --- /dev/null +++ b/doc/man-pages/install-man.in @@ -0,0 +1,50 @@ +#!/bin/sh +# +# Install a man page, but fixing up paths as we go. All of the man pages +# are written to use the Transarc paths, and this script fixes those paths to +# be correct for the chosen configure options as the man pages are installed. +# Takes the source man page file and the destination path as arguments. + +set -e + +manpage="$1" +dest="$2" + +install=@TOP_OBJDIR@/src/pinstall/pinstall + +# We have to include all of the variables here since several of them refer to +# each other and this is the only way we get them all expanded. +prefix=@prefix@ +exec_prefix=@exec_prefix@ +bindir=@bindir@ +includedir=@includedir@ +libdir=@libdir@ +libexecdir=@libexecdir@ +localstatedir=@localstatedir@ +mandir=@mandir@ +sbindir=@sbindir@ +sysconfdir=@sysconfdir@ +afsbackupdir=@afsbackupdir@ +afsbosconfigdir=@afsbosconfigdir@ +afsconfdir=@afsconfdir@ +afsdbdir=@afsdbdir@ +afslocaldir=@afslocaldir@ +afslogsdir=@afslogsdir@ +afssrvbindir=@afssrvbindir@ +afskerneldir=@afskerneldir@ +afssrvlibexecdir=@afssrvlibexecdir@ +afssrvsbindir=@afssrvsbindir@ +viceetcdir=@viceetcdir@ + +# Substitute the paths into a local temporary file and then install it with +# $install. +sed -e "s%/usr/afs/local/BosConfig%${afsbosconfigdir}/BosConfig%g" \ + -e "s%/usr/afs/etc%${afsconfdir}%g" \ + -e "s%/usr/afs/backup%${afsbackupdir}%g" \ + -e "s%/usr/afs/bin%${afssrvlibexecdir}%g" \ + -e "s%/usr/afs/db%${afsdbdir}%g" \ + -e "s%/usr/afs/local%${afslocaldir}%g" \ + -e "s%/usr/afs/logs%${afslogsdir}%g" \ + -e "s%/usr/vice/etc%${viceetcdir}%g" "$manpage" > "$manpage".tmp +$install -c -f -m 0644 "$manpage".tmp "$dest" +rm "$manpage".tmp