diff --git a/.gitignore b/.gitignore index b03bc71..506e185 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,5 @@ config.status configure core libtool +m4 stamp-h1 diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..527e24f --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "imprimatur"] + path = imprimatur + url = git://git.gnu.org.ua/imprimatur.git diff --git a/Makefile.am b/Makefile.am index 6d7d50f..d9b1d01 100644 --- a/Makefile.am +++ b/Makefile.am @@ -14,6 +14,8 @@ # with this program. If not, see . AUTOMAKE_OPTIONS = gnits 1.8 +ACLOCAL_AMFLAGS = -I m4 -I imprimatur + if PAM_COND_FSHADOW FSHADOW_DIR=pam_fshadow endif @@ -27,6 +29,7 @@ if PAM_COND_LDAPHOME LDAPHOME_DIR=pam_ldaphome endif SUBDIRS = \ + imprimatur\ doc\ lib\ $(FSHADOW_DIR)\ diff --git a/autogen.sh b/autogen.sh index ba83a2b..3c19109 100644 --- a/autogen.sh +++ b/autogen.sh @@ -1,3 +1,3 @@ #! /bin/sh - +test -d m4 || mkdir m4 autoreconf -f -i -s diff --git a/configure.ac b/configure.ac index 737f191..170a4e0 100644 --- a/configure.ac +++ b/configure.ac @@ -19,6 +19,7 @@ AC_PREREQ(2.63) AC_INIT(pam-modules, 1.7, bug-pam-modules@gnu.org.ua) AC_CONFIG_SRCDIR(pam_fshadow/pam_fshadow.c) AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([1.11 no-exeext tar-ustar dist-xz silent-rules]) AM_CONFIG_HEADER(config.h) @@ -188,6 +189,11 @@ AC_ARG_WITH(pamdir, [PAMDIR=$withval]) AC_SUBST(PAMDIR) +## ************** +## Imprimatur +## ************** +IMPRIMATUR_INIT + ## ************** ## Summary ## ************** diff --git a/doc/Makefile.am b/doc/Makefile.am index b0e84e1..aeba788 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -15,10 +15,9 @@ # with this program. If not, see . info_TEXINFOS=pam-modules.texi -pam_modules_TEXINFOS=fdl.texi macros.texi rendition.texi +pam_modules_TEXINFOS=fdl.texi macros.texi EXTRA_DIST = \ - check-docs.sh\ gendocs_template\ mastermenu.el\ untabify.el @@ -26,55 +25,14 @@ EXTRA_DIST = \ clean-local: rm -rf manual +AM_MAKEINFOFLAGS=@IMPRIMATUR_MAKEINFOFLAGS@ +imprimatur_INPUT=$(info_TEXINFOS) $(pam_modules_TEXINFOS) +CHECK_DOCS=$(top_srcdir)/@IMPRIMATUR_MODULE_DIR@/check-docs.sh +include ../imprimatur/imprimatur.mk + # Checking -check-format: - @if test -n "`cat $(info_TEXINFOS) $(pam_modules_TEXINFOS) | tr -d -c '\t'`"; then \ - echo "Sources contain tabs; run make untabify"; \ - false; \ - fi - -check-refs: - @for file in $(info_TEXINFOS) $(mailfromd_TEXINFOS); \ - do \ - sed -e = $$file | \ - sed -n 'N;/@FIXME-.*ref/{s/\(^[0-9][0-9]*\).*@FIXME-.*ref{\([^}]*\)}.*/'$$file':\1: \2/gp}'; \ - done > $@-t; \ - if [ -s $@-t ]; then \ - echo "Unresolved cross-references:"; \ - cat $@-t;\ - rm $@-t; \ - else \ - rm -f $@-t; \ - fi - -check-fixmes: - @for file in $(info_TEXINFOS); \ - do \ - sed -e = $$file | \ - sed -n 'N;/@FIXME{/{s/\(^[0-9][0-9]*\).*@FIXME{\([^}]*\).*/'$$file':\1: \2/gp}'; \ - done > $@-t; \ - if [ -s $@-t ]; then \ - echo "Unresolved FIXMEs:"; \ - cat $@-t; \ - rm $@-t; \ - false; \ - else \ - rm -f $@-t; \ - fi - -check-unrevised: - @grep -Hn @UNREVISED $(info_TEXINFOS) > $@-t; \ - if [ -s $@-t ]; then \ - echo "Unrevised nodes:"; \ - cat $@-t; \ - rm $@-t; \ - false;\ - else \ - rm $@-t; \ - fi - check-log-options: - @check-docs.sh "pam_log options" \ + @$(CHECK_DOCS) "pam_log options" \ '/struct pam_opt .*\[\] = /,/^}/s/[ \t]*{ *PAM_OPTSTR(\([^,)]*\)).*/\1/p' \ '/@set MODULE pam_log/,/@set MODULE/{s/@value{MODULE}/pam_log/g;there;:here;s/@opindex *\([^@,]*\),.*@command{pam_log}.*/\1/;t lab;b;: lab;{s/^-//;s/^no//;p;}}' \ $(top_srcdir)/pam_log/*.c -- \ @@ -85,7 +43,7 @@ check-log-options: check-all-options: @for mod in fshadow regex sql; \ do \ - check-docs.sh "pam_$$mod options" \ + $(CHECK_DOCS) "pam_$$mod options" \ '/struct pam_opt .*\[\] = /,/^}/s/[ \t]*{ *PAM_OPTSTR(\([^,)]*\)).*/\1/;t lab;b;: lab {/audit/d;/debug/d;/waitdebug/d;p}' \ '/@set MODULE pam_'$$mod'/,/@set MODULE/{s/@value{MODULE}/pam_'$$mod'/g;there;:here;s/@opindex *\([^@,]*\),.*@command{pam_'$$mod'}.*/\1/;t lab;b;: lab;{s/^-//;s/^no//;p;}}' \ $(top_srcdir)/pam_$$mod/*.c -- \ @@ -94,7 +52,7 @@ check-all-options: done check-sql-config: - @check-docs.sh 'SQL configuration keywords' \ + @$(CHECK_DOCS) 'SQL configuration keywords' \ 's/.*check_boolean_config *("\([^"]*\)".*/\1/p;s/.*find_config *("\([^"]*\)".*/\1/p' \ 's/@kwindex *\([^@,]*\).*/\1/p' \ $(top_srcdir)/pam_sql/*.c -- \ @@ -103,19 +61,15 @@ check-sql-config: check-options: check-all-options check-log-options -all-check-docs: check-format check-refs check-fixmes check-unrevised check-options check-sql-config +all-check-docs: imprimatur-basic-checks check-options check-sql-config check-docs: $(MAKE) -k all-check-docs # -master-menu: - emacs -batch -l mastermenu.el -f make-master-menu $(info_TEXINFOS) - -untabify: - emacs -batch -l untabify.el $(info_TEXINFOS) $(pam_modules_TEXINFOS) - -final: untabify master-menu +master-menu: imprimatur-master-menu +untabify: imprimatur-untabify +final: imprimatur-final # @@ -123,8 +77,6 @@ final: untabify master-menu # Just call `make RENDITION=PROOF [target]' if you want PROOF rendition. RENDITION = DISTRIB -MAKEINFOFLAGS=-D$(RENDITION) - GENDOCS=gendocs.sh TEXI2DVI=texi2dvi -t '@set $(RENDITION)' -E @@ -134,11 +86,10 @@ TEXI2DVI=texi2dvi -t '@set $(RENDITION)' -E .PHONY: manual manual: TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$(TEXINPUTS) \ - MAKEINFO="$(MAKEINFO) $(MAKEINFOFLAGS)" \ + MAKEINFO="$(MAKEINFO) $(MAKEINFOFLAGS) $(AM_MAKEINFOFLAGS)" \ TEXI2DVI="$(TEXI2DVI) -t @finalout" \ $(GENDOCS) --texi2html $(PACKAGE) '$(PACKAGE_NAME) manual' - manual.tar.bz2: manual tar cfj manual.tar.bz2 manual diff --git a/doc/check-docs.sh b/doc/check-docs.sh deleted file mode 100755 index cc96575..0000000 --- a/doc/check-docs.sh +++ /dev/null @@ -1,74 +0,0 @@ -#! /bin/sh -# This file is part of mailfrom filter. -# Copyright (C) 2006-2007, 2010-2011 Sergey Poznyakoff -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -usage() { - cat < $TEMPDIR/src -$* | \ - sed -n '/^@macro/,/^@end macro/d;'"$docsexp" \ - | sort | uniq > $TEMPDIR/doc - -join -v1 $TEMPDIR/src $TEMPDIR/doc > $TEMPDIR/src-doc -join -v2 $TEMPDIR/src $TEMPDIR/doc > $TEMPDIR/doc-src -(if [ -s $TEMPDIR/src-doc ]; then - echo "Not documented $item:" - cat $TEMPDIR/src-doc - fi - if [ -s $TEMPDIR/doc-src ]; then - echo "Non-existing $item:" - cat $TEMPDIR/doc-src - fi) > $TEMPDIR/report - -if [ -s $TEMPDIR/report ]; then - cat $TEMPDIR/report - rm -rf $TEMPDIR - exit 1 -else - rm -rf $TEMPDIR - exit 0 -fi diff --git a/doc/mastermenu.el b/doc/mastermenu.el deleted file mode 100644 index 3ab3341..0000000 --- a/doc/mastermenu.el +++ /dev/null @@ -1,90 +0,0 @@ -;;; mastermenu.el --- Redefinition of texinfo-master-menu-list - -;; Copyright (C) 2006, 2007 Free Software Foundation, Inc. - -;; Author: Sergey Poznyakoff -;; Maintainer: bug-tar@gnu.org -;; Keywords: maint, tex, docs - -;; This file is part of GNU tar documentation suite - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see . - -;;; Commentary: - -;; This file redefines texinfo-master-menu-list so that it takes into -;; account included files. - -;; Known bugs: @menu without previous sectioning command will inherit -;; documentation string from the previous menu. However, since such a -;; menu is illegal in a texinfo file, we can live with it. - -(require 'texinfo) -(require 'texnfo-upd) - -(defun texinfo-master-menu-list-recursive (title) - "Auxiliary function used by `texinfo-master-menu-list'." - (save-excursion - (let (master-menu-list) - (while (re-search-forward "\\(^@menu\\|^@include\\)" nil t) - (cond - ((string= (match-string 0) "@include") - (skip-chars-forward " \t") - (let ((included-name (let ((start (point))) - (end-of-line) - (skip-chars-backward " \t") - (buffer-substring start (point))))) - (end-of-line) - (let ((prev-title (texinfo-copy-menu-title))) - (save-excursion - (set-buffer (find-file-noselect included-name)) - (setq master-menu-list - (append (texinfo-master-menu-list-recursive prev-title) - master-menu-list)))))) - (t - (setq master-menu-list - (cons (list - (texinfo-copy-menu) - (let ((menu-title (texinfo-copy-menu-title))) - (if (string= menu-title "") - title - menu-title))) - master-menu-list))))) - master-menu-list))) - -(defun texinfo-master-menu-list () - "Return a list of menu entries and header lines for the master menu, -recursing into included files. - -Start with the menu for chapters and indices and then find each -following menu and the title of the node preceding that menu. - -The master menu list has this form: - - \(\(\(... \"entry-1-2\" \"entry-1\"\) \"title-1\"\) - \(\(... \"entry-2-2\" \"entry-2-1\"\) \"title-2\"\) - ...\) - -However, there does not need to be a title field." - - (reverse (texinfo-master-menu-list-recursive ""))) - -(defun make-master-menu () - "Create master menu in the first Emacs argument." - (find-file (car command-line-args-left)) - (texinfo-master-menu nil) - (save-buffer)) - - -;;; mastermenu.el ends here diff --git a/doc/pam-modules.texi b/doc/pam-modules.texi index 66c51ae..d0ee8db 100644 --- a/doc/pam-modules.texi +++ b/doc/pam-modules.texi @@ -173,7 +173,7 @@ WAITING FOR DEBUG and waits for @var{interval} seconds (default 3600) before actually starting to do anything. The developer is supposed to attach to the process with a debugger, set the @code{interval} variable to 0 and to -continue execution of the module in the debugging mode. +continue execution of the module in the debugging mode. @end table @cindex PAM item expansion @@ -194,37 +194,37 @@ or numeric). @table @samp @item service -@code{PAM_SERVICE}. The service name (which identifies +@code{PAM_SERVICE}. The service name (which identifies the @acronym{PAM} stack that will be used). @item user -@code{PAM_USER}. The username of the entity under whose identity +@code{PAM_USER}. The username of the entity under whose identity service will be given. @item tty -@code{PAM_TTY}. The terminal name: prefixed by +@code{PAM_TTY}. The terminal name: prefixed by @samp{/dev/} if it is a device file; for graphical, X-based, applications the value for this item is usually the @env{$DISPLAY} environment variable. @item rhost -@code{PAM_RHOST}. The requesting hostname (the hostname of the machine -from which the @code{PAM_RUSER} entity is requesting service). That is +@code{PAM_RHOST}. The requesting hostname (the hostname of the machine +from which the @code{PAM_RUSER} entity is requesting service). That is @samp{@code{PAM_RUSER}@@@code{PAM_RHOST}} identifies the requesting -user. In some applications, @code{PAM_RHOST} may be @samp{NULL}. +user. In some applications, @code{PAM_RHOST} may be @samp{NULL}. @item ruser -@code{PAM_RUSER}. The requesting entity: user's sername for a locally -requesting user or a remote requesting user. In some cases, +@code{PAM_RUSER}. The requesting entity: user's sername for a locally +requesting user or a remote requesting user. In some cases, @code{PAM_RUSER} may be @samp{NULL}. @item prompt -@code{PAM_USER_PROMPT}. The string used when prompting for a user's -name. The default value for this string is @samp{Please enter +@code{PAM_USER_PROMPT}. The string used when prompting for a user's +name. The default value for this string is @samp{Please enter username: }. @item password -@code{PAM_AUTHTOK}. The authentication token (often a password). +@code{PAM_AUTHTOK}. The authentication token (often a password). @end table Item expansion is used by @command{pam_log}, @command{pam_mysql} @@ -314,7 +314,7 @@ Print program version and copyright information and exit. @prindex pam_fshadow The @command{pam_fshadow} module provides authentication against an alternative @file{shadow} file, or @file{passwd} / @file{shadow} pair -(or pairs). There are two main operation modes: @dfn{plain} mode, in which +(or pairs). There are two main operation modes: @dfn{plain} mode, in which @command{pam_fshadow} uses only one @file{passwd}/@file{shadow} pair, and @dfn{virtual domain} mode, which allows to select the pair to use based on the authentication token (the user name). First, let's @@ -490,12 +490,12 @@ This section summarizes all @command{pam_fshadow} command line options: @opsummary{nopasswd} @item nopasswd - Use only @file{shadow} for authentication. @xref{pam_fshadow common + Use only @file{shadow} for authentication. @xref{pam_fshadow common options, nopasswd}. @opsummary{noshadow} @item nopasswd - Use only @file{passwd} for authentication. @xref{pam_fshadow common + Use only @file{passwd} for authentication. @xref{pam_fshadow common options, noshadow}. @opsummary{regex} @@ -641,7 +641,7 @@ the interaction is defined to be: ignore matches before the @end table Any delimiter can be used in lieue of @samp{/}, the only requirement being -that it be used consistently throughout the expression. For example, +that it be used consistently throughout the expression. For example, the following two expressions are equivalent: @smallexample diff --git a/doc/rendition.texi b/doc/rendition.texi deleted file mode 100644 index 016583d..0000000 --- a/doc/rendition.texi +++ /dev/null @@ -1,85 +0,0 @@ -@c Let's use the concept of 'renditions' by Fra@,{c}ois Pinard -@c I extended it by adding a FIXME_FOOTNOTE variable, which controls -@c whether FIXME information should be placed in footnotes or -@c inlined. - -@c ====================================================================== -@c This document has three levels of rendition: PUBLISH, DISTRIB or PROOF, -@c as decided by @set symbols. The PUBLISH rendition does not show -@c notes or marks asking for revision. Most users will prefer having more -@c information, even if this information is not fully revised for adequacy, -@c so DISTRIB is the default for distributions. The PROOF rendition -@c show all marks to the point of ugliness, but is nevertheless useful to -@c those working on the manual itself. -@c ====================================================================== - -@c Set this symbol if you wish FIXMEs to appear in footnotes, instead -@c of being inserted into the text. -@c @set PROOF_FOOTNOTED - -@ifclear PUBLISH -@ifclear DISTRIB -@ifclear PROOF -@set DISTRIB -@end ifclear -@end ifclear -@end ifclear - -@ifset PUBLISH -@set RENDITION The book, version -@end ifset - -@ifset DISTRIB -@set RENDITION FTP release, version -@end ifset - -@ifset PROOF -@set RENDITION Proof reading version -@end ifset - -@c Output marks for nodes needing revision, but not in PUBLISH rendition. - -@macro UNREVISED -@ifclear PUBLISH -@quotation -@emph{(This message will disappear, once this node revised.)} -@end quotation -@end ifclear -@end macro - -@c Output various FIXME information only in PROOF rendition. - -@macro FIXME{string} -@ifset PROOF -@ifset PROOF_FOOTNOTED -@footnote{@strong{FIXME:} \string\} -@end ifset -@ifclear PROOF_FOOTNOTED -@cartouche -@strong{} \string\ @strong{} -@end cartouche -@end ifclear -@end ifset - -@end macro - -@macro FIXME-ref{string} -@ifset PROOF -@strong{} \string\ @strong{} -@end ifset - -@end macro - -@macro FIXME-pxref{string} -@ifset PROOF -@strong{} \string\ @strong{} -@end ifset - -@end macro - -@macro FIXME-xref{string} -@ifset PROOF -@strong{} \string\ @strong{} -@end ifset - -@end macro diff --git a/doc/untabify.el b/doc/untabify.el deleted file mode 100644 index 77dd5c0..0000000 --- a/doc/untabify.el +++ /dev/null @@ -1,13 +0,0 @@ -;;;; Untabify the sources. -;;;; Usage: emacs -batch -l untabify.el [file ...] - -(defun global-untabify (buflist) - (mapcar - (lambda (bufname) - (set-buffer (find-file bufname)) - (untabify (point-min) (point-max)) - (save-buffer) - (kill-buffer (current-buffer))) - buflist)) - -(global-untabify command-line-args-left) diff --git a/imprimatur b/imprimatur new file mode 160000 index 0000000..f32ef19 --- /dev/null +++ b/imprimatur @@ -0,0 +1 @@ +Subproject commit f32ef1983968e755cd580b06e369476d7e7f88b6