Ticket #29: inn-CURRENT-20010405-fhs.patch

File inn-CURRENT-20010405-fhs.patch, 30.4 KB (added by eagle, 14 years ago)

Patch against CURRENT from 20010405

  • inn-CURRENT-20010405/INSTALL

    diff -U 2 -r -N ORIG/inn-CURRENT-20010405/INSTALL inn-CURRENT-20010405/INSTALL
    old new  
    102102Unpacking the Distribution
    103103
    104     Released versions of INN are available from ftp.isc.org in /isc/inn. 
    105     New major releases will be announed on inn-announce@isc.org (see README)
    106     when they're made.
     104    Released versions of INN are available from ftp.isc.org in /isc/inn.
     105    New major releases will be announced on inn-announce@isc.org (see
     106    README) when they're made.
    107107
    108108    If you want more a more cutting edge version, you can obtain current
     
    159159    options are:
    160160
     161    --enable-fhs-dirs
     162        This option affects the default settings of several other options,
     163        so if you plan to use this option, it should come first.
     164
     165        The default way to install INN is to install all of INN's programs
     166        and support files beneath the same directory prefix.  For example:
     167
     168            /usr/local/news/bin
     169            /usr/local/news/etc
     170            /usr/local/news/lib
     171            /usr/local/news/spool
     172            ...
     173
     174        This is the recommended installation method, because it isolates the
     175        INN system from all other software installed on the machine.  All of
     176        INN's files are located in a single directory tree, and are easy to
     177        locate.
     178
     179        Alternatively, INN can be installed in an integrated manner with the
     180        operating system, in such as way as to conform to the Linux
     181        Filesystem Hierarchy Standard (which most Linux distributors
     182        follow).  Instead of locating all of INN's files and directories in
     183        a single directory prefix, they are instead distributed to the
     184        FHS-standard locations throughout filesystem.  For example:
     185
     186            /usr/bin
     187            /etc/inn
     188            /usr/lib/inn
     189            /var/spool/news
     190            ...
     191
     192        It is recommended that you do *not* use the --enable-fhs-dirs option
     193        unless you know what you're doing.  The default installation method
     194        of using a common directory prefix is generally easier to work with
     195        for novice INN administrators.  Additionally, unless INN is
     196        installed using some sort of package management system, it can be
     197        difficult to cleanly upgrade INN, or extract it from your system
     198        entirely.
     199
     200        One additional caveat: the default values listed by
     201        "./configure --help" always show the non-FHS-defaults, even if
     202        "./configure --enable-fhs-dirs --help" is run.  If you want to know
     203        how the defaults change when the --enable-fhs-dirs option is given,
     204        your best bet is to examine the configure script directly.  (Look at
     205        the code directly after occurrences of the "inn_enable_fhs_dirs"
     206        string.)
     207
    161208    --prefix=PATH
    162         Sets the installation prefix for INN.  The default is
    163         /usr/local/news.  All of INN's programs and support files will be
    164         installed under this directory.  This should match the home
    165         directory of your news user (it will make installation and
    166         maintenance easier).  It is not recommended to set this to /usr; if
    167         you decide to do that anyway, make sure to point INN's temporary
    168         directory at a directory that isn't world-writeable (see
    169         --with-tmp-dir below).
     209        If the --with-fhs-dirs option was not used, this sets the
     210        installation prefix for INN.  The default is /usr/local/news.  All
     211        of INN's programs and support files will be installed under this
     212        directory.  This should match the home directory of your news user
     213        (it will make installation and maintenance easier).  It is not
     214        recommended to set this to /usr; if you decide to do that anyway,
     215        make sure to point INN's temporary directory at a directory that
     216        isn't world-writable (see --with-tmp-path below).
     217
     218        DO NOT use the --prefix option if you have used the --with-fhs-dirs
     219        option; the --with-fhs-dirs option automatically sets the
     220        installation prefix.
    170221
    171222    --with-db-dir=PATH
    172         Sets the prefix for INN database files.  The default is PREFIX/db,
    173         where PREFIX is /usr/local/news unless overridden with the option
    174         above.  This history and active files will be stored in this
    175         directory, and writes to those files are an appreciable percentage
    176         of INN's disk activity.  The history file can also be quite large
    177         (requiring up to 2GB or more during nightly expire), so this is a
    178         common portion of INN to move to a different file system.
     223        Sets the prefix for INN database files.  The default is PREFIX/db
     224        unless the --with-fhs-dirs option was given, in which case the
     225        default is /var/lib/inn/db.  This history and active files will be
     226        stored in this directory, and writes to those files are an
     227        appreciable percentage of INN's disk activity.  The history file can
     228        also be quite large (requiring up to 2GB or more during nightly
     229        expire), so this is a common portion of INN to move to a different
     230        file system.
    179231
    180232    --with-spool-dir=PATH
    181233        Sets the prefix for the news spool (when using any storage method
    182234        other than CNFS) and the overview spool.  The default is
    183         PREFIX/spool.  This is another common portion of INN to move to a
    184         different file system (often /news).
     235        PREFIX/spool unless the --with-fhs-dirs option was given, in which
     236        case the default is /var/spool/news.  This is another common portion
     237        of INN to move to a different file system (often /news).
    185238
    186239    --with-tmp-dir=PATH
    187         Sets the directory in which INN will create temporary files.  This
    188         should under no circumstances be the same as the system temporary
    189         directory or otherwise be set to a world-writeable directory, since
    190         INN doesn't take care to avoid symlink attacks and other security
    191         problems possible with a world-writeable directory.  This directory
    192         should be reserved for the exclusive use of INN and only writeable
    193         by the news user.
     240        Sets the directory in which INN will create temporary files.  The
     241        default is PREFIX/tmp unless the --with-fhs-dirs option was given,
     242        in which case the default is /var/lib/inn/tmp.  This should under no
     243        circumstances be the same as the system temporary directory or
     244        otherwise be set to a world-writable directory, since INN doesn't
     245        take care to avoid symlink attacks and other security problems
     246        possible with a world-writable directory.  This directory should be
     247        reserved for the exclusive use of INN and only writable by the news
     248        user.
    194249
    195250        It's also possible to set the paths for most other sections of the
    196251        INN installation independently; see "./configure --help" and look
    197         for the --with-*-dir=PATH options.
     252        for the --with-*-dir=PATH options.  (Remember that the default
     253        values listed by "./configure --help" are only accurate if the
     254        --with-fhs-dirs option was not specified.)
    198255
    199256    --enable-tagged-hash
     
    236293    --with-tcl
    237294        Enables support for Tcl, allowing you to install filter scripts
    238         written in Tcl.  Most available filterse seem to be written in Perl
     295        written in Tcl.  Most available filters seem to be written in Perl
    239296        these days, so you can safely leave out Tcl support.  If you choose
    240297        to enable this, you will need to have a suitable Tcl distribution
     
    331388
    332389    provided that you have the necessary version of Perl installed.
    333     (Compiling with an embedded Perl interpretor will allow you to use one
     390    (Compiling with an embedded Perl interpreter will allow you to use one
    334391    of the available excellent spam filters if you so choose.)
    335392
     
    348405        make install
    349406
    350     You will need to run this command as root so that INN can create the
    351     directories it needs and install a couple of setuid wrapper scripts
    352     needed to raise resource limits and allow innd to bind to port 119.
    353     This will install INN under the install directory (/usr/local/news,
    354     unless you specified something else to the configure script.)
     407    If you are building INN on a different system than the one on which it
     408    will eventually run, and you therefore want INN to install its files in
     409    a virtual root directory and not into the actual filesystem of the build
     410    machine, you can pass the virtual root directory to the install step via
     411    the DESTDIR variable.  Type:
     412
     413        make DESTDIR=/tmp/inn-root install
     414
     415    In the above example, all of INN's directories and files would be
     416    installed under the /tmp/inn-root directory instead of the normal /
     417    (root) directory.  Just replace "/tmp/inn-root" with whatever directory
     418    you wish.
     419
     420    Under most circumstances, you will need to run the "make install"
     421    command as root, so that INN can create the directories it needs and
     422    install a couple of setuid wrapper scripts needed to raise resource
     423    limits and allow innd to bind to port 119.
     424
     425    However, in some situations it is desirable to be able to build INN,
     426    install it into a virtual root directory, and package the resulting
     427    files in a single step, without manual intervention, by a non-root user.
     428    (For example, package files for Red Hat Linux's Package Manager system
     429    are built in this manner.)  It is possible to build and install INN in
     430    this way, but you must set a DESTDIR value for the install step, and
     431    additionally, you must tell the installation process that it should omit
     432    executing "chown" and "chgrp" commands (which will fail if the
     433    installation step is being executed by a non-root user).  To do this,
     434    type:
     435
     436        env CHOWNPROG=set CHGRPPROG=set make DESTDIR=/tmp/inn-root install
     437
     438    WARNING: if you install INN in this manner, none of the resulting
     439    directories and files in the virtual root directory will be owned by the
     440    correct users and groups.  It is YOUR responsibility to ensure the
     441    resulting directories and files are packaged with the users, groups, and
     442    modes with which INN wanted them to be installed!
    355443
    356444    If you use SSL support for nnrp, you must make a certificate and private
     
    361449    as root in order to do this.
    362450
     451    You can also type "make DESTDIR=/tmp/inn-root cert", as either root
     452    (preferred) or a non-root user.  All of the warnings and caveats
     453    mentioned above apply.
     454
    363455    You are now ready for the really fun part: configuring your copy of INN!
    364456
     
    389481
    390482        Disadvantages:  Takes a very fast file system and I/O system to keep
    391         up with current Usenet traffic volues due to file system overhead.
     483        up with current Usenet traffic volume due to file system overhead.
    392484        Groups with heavy traffic tend to create a bottleneck because of
    393485        inefficiencies in storing large numbers of article files in a single
     
    406498        Disadvantages:  The ability to easily find all articles in a given
    407499        newsgroup and manually fiddle with the article spool is lost, and
    408         INN still suffers from speed degredation due to file system overhead
     500        INN still suffers from speed degradation due to file system overhead
    409501        (creating and deleting individual files is a slow operation).
    410502
     
    495587    installation process and are the most complete reference to how INN
    496588    works.  You're strongly encouraged to refer to the man pages frequently
    497     while configuring INN, and for quick reference afterwards.  Any detailed
     589    while configuring INN, and for quick reference afterward.  Any detailed
    498590    questions about individual configuration files or the behavior of
    499591    specific programs should be answered in them.  You may want to add
     
    573665        automatically by INN, but in some cases it is necessary to set it
    574666        manually.  For example, if you are running NIS on a SunOS system
    575         *and* your hostnames are not fully-qualified (ie, your systems are
     667        *and* your hostnames are not fully-qualified (i.e., your systems are
    576668        named "host" instead of "host.example.com") then you will need to
    577669        use this option to set your domain name manually.  If in doubt,
     
    10591151    matter.  For articles with an Expires: header, the other two values come
    10601152    into play; the date given in the Expires: header of an article will be
    1061     honored subject to the contraints set by <keep> and <purge>.  All
     1153    honored subject to the constraints set by <keep> and <purge>.  All
    10621154    articles in this storage class will be kept for at least <keep> days,
    10631155    regardless of their Expires: header, and all articles in this storage
  • inn-CURRENT-20010405/Makefile

    diff -U 2 -r -N ORIG/inn-CURRENT-20010405/Makefile inn-CURRENT-20010405/Makefile
    old new  
    7474        @for D in $(ALLDIRS) ; do \
    7575            echo '' ; \
    76             cd $$D && $(MAKE) install || exit 1 ; cd .. ; \
     76            cd $$D && $(MAKE) D="$(DESTDIR)" install || exit 1 ; cd .. ; \
    7777        done
    7878        @echo ''
     
    8787        @chmod +x support/install-sh
    8888        for D in $(INSTDIRS) ; do \
    89             support/install-sh $(OWNER) -m 0755 -d $$D ; \
     89            support/install-sh $(OWNER) -m 0755 -d $(DESTDIR)$$D ; \
    9090        done
    91         support/install-sh $(OWNER) -m 0750 -d $(PATHRUN)
     91        support/install-sh $(OWNER) -m 0750 -d $(DESTDIR)$(PATHRUN)
    9292
    9393update:
     
    100100##  Install a certificate for TLS/SSL support.
    101101cert:
     102        umask 027 ; \
    102103        $(SSLBIN)/openssl req -new -x509 -nodes \
    103104            -out $(PATHLIB)/cert.pem -days 366 \
    104105            -keyout $(PATHLIB)/cert.pem
    105         chown $(NEWSUSER) $(PATHLIB)/cert.pem
    106         chgrp $(NEWSGROUP) $(PATHLIB)/cert.pem
     106        @ME=`$(WHOAMI)` ; \
     107        if [ x"$$ME" = xroot ] ; then \
     108            echo chown $(NEWSUSER) $(PATHLIB)/cert.pem ; \
     109            chown $(NEWSUSER) $(PATHLIB)/cert.pem ; \
     110            echo $(NEWSGROUP) $(PATHLIB)/cert.pem ; \
     111            chgrp $(NEWSGROUP) $(PATHLIB)/cert.pem ; \
     112        else \
     113            echo chown $(NEWSUSER) $(PATHLIB)/cert.pem ; \
     114            echo $(NEWSGROUP) $(PATHLIB)/cert.pem ; \
     115        fi
    107116        chmod 640 $(PATHLIB)/cert.pem
    108117
  • inn-CURRENT-20010405/Makefile.global.in

    diff -U 2 -r -N ORIG/inn-CURRENT-20010405/Makefile.global.in inn-CURRENT-20010405/Makefile.global.in
    old new  
    1818VERSION_EXTRA   = 20010405 prerelease
    1919
    20 ##  If you want to install INN relative to a root directory other than /,
    21 ##  set DESTDIR to the path to the root directory of the file system.  This
    22 ##  won't affect any of the paths compiled into INN; it's used primarily
    23 ##  when building a software distribution, where software has to be
    24 ##  installed into some file system that will later be mounted as / on the
    25 ##  final system.
    26 
    27 DESTDIR         =
    28 D               = $(DESTDIR)
    29 
    3020##  How to install man pages.  Pick one of SOURCE, BSD4.4, NROFF-PACK, or
    3121##  NROFF-PACK-SCO.  Used by doc/man/putman.sh; read that script for more
     
    169159PATHSPOOL       = @SPOOLDIR@
    170160PATHTMP         = @tmpdir@
    171 PATHAUTH        = $(PATHBIN)/auth
     161PATHAUTH        = @AUTHDIR@
    172162PATHAUTHRESOLV  = $(PATHAUTH)/resolv
    173163PATHAUTHPASSWD  = $(PATHAUTH)/passwd
  • inn-CURRENT-20010405/configure.in

    diff -U 2 -r -N ORIG/inn-CURRENT-20010405/configure.in inn-CURRENT-20010405/configure.in
    old new  
    4545test x"$prefix" = xNONE && prefix="$ac_default_prefix"
    4646
     47dnl Make sure $exec_prefix is set so that we can use it internally.
     48test x"$exec_prefix" = xNONE && exec_prefix='${prefix}'
     49
    4750dnl Earlier versions of INN used --with-largefiles, which was the wrong flag
    4851dnl from the perspective of what --with and --enable are supposed to mean.
     
    9093AC_SUBST(UPLIBTOOLLD)
    9194
     95dnl If --enable-fhs-dirs is given, set inn_enable_fhs_dirs so that
     96dnl other options know to change their defaults.
     97inn_enable_fhs_dirs=no
     98AC_ARG_ENABLE(fhs-dirs,
     99    [  --enable-fhs-dirs       Use FHS default dirs [default=no]],
     100    if test "$enableval" = yes ; then
     101        AC_PREFIX_DEFAULT(/usr)
     102        inn_enable_fhs_dirs=yes
     103        prefix='/usr'
     104        localstatedir='/var'
     105        sysconfdir='/etc'
     106    fi)
     107
    92108dnl INN has quite a few more configurable paths than autoconf supports by
    93109dnl default.  For right now, those additional paths are configured with
    94 dnl --with-*-dir options.  This is the generic macro for those arguments;
    95 dnl it takes the name of the directory, the path relative to $prefix if
    96 dnl none given to configure, the variable to set, and the help string.
    97 AC_DEFUN([INN_ARG_DIR],
    98 [AC_ARG_WITH([$1-dir], [$4], [$3=$with_$1_dir], [$3=$prefix/$2])
    99 AC_SUBST($3)])
    100 
     110dnl --with-*-dir options.
     111dnl
    101112dnl And here are all the paths.
    102113dnl
    103114dnl FIXME: We should honor bindir, libdir, includedir, and mandir at the
    104115dnl least, and we should use libdir over --with-lib-dir.
    105 INN_ARG_DIR(control, bin/control, CONTROLDIR,
    106     [  --with-control-dir=PATH Path for control programs [PREFIX/bin/control]])
    107 INN_ARG_DIR(db, db, DBDIR,
    108     [  --with-db-dir=PATH      Path for news database files [PREFIX/db]])
    109 INN_ARG_DIR(doc, doc, DOCDIR,
    110     [  --with-doc-dir=PATH     Path for news documentation [PREFIX/doc]])
    111 INN_ARG_DIR(etc, etc, ETCDIR,
    112     [  --with-etc-dir=PATH     Path for news config files [PREFIX/etc]])
    113 INN_ARG_DIR(filter, bin/filter, FILTERDIR,
    114     [  --with-filter-dir=PATH  Path for embedded filters [PREFIX/bin/filter]])
    115 INN_ARG_DIR(lib, lib, LIBDIR,
    116     [  --with-lib-dir=PATH     Path for news library files [PREFIX/lib]])
    117 INN_ARG_DIR(log, log, LOGDIR,
    118     [  --with-log-dir=PATH     Path for news logs [PREFIX/log]])
    119 INN_ARG_DIR(run, run, RUNDIR,
    120     [  --with-run-dir=PATH     Path for news PID/runtime files [PREFIX/run]])
    121 INN_ARG_DIR(spool, spool, SPOOLDIR,
    122     [  --with-spool-dir=PATH   Path for news storage [PREFIX/spool]])
    123 INN_ARG_DIR(tmp, tmp, tmpdir,
    124     [  --with-tmp-dir=PATH     Path for temporary files [PREFIX/tmp]])
     116dnl
     117
     118AC_ARG_WITH(auth-dir,
     119    [  --with-auth-dir=PATH    Path for authorization programs [PREFIX/bin/auth]],
     120    AUTHDIR=$with_auth_dir,
     121    if test "x$inn_enable_fhs_dirs" = xyes ; then
     122        eval AUTHDIR="${libdir}/inn/auth"
     123        eval AUTHDIR="${AUTHDIR}"
     124    else
     125        AUTHDIR=$prefix/bin/auth
     126    fi)
     127AC_SUBST(AUTHDIR)
     128
     129AC_ARG_WITH(control-dir,
     130    [  --with-control-dir=PATH Path for control programs [PREFIX/bin/control]],
     131    CONTROLDIR=$with_control_dir,
     132    if test "x$inn_enable_fhs_dirs" = xyes ; then
     133        eval CONTROLDIR="${libdir}/inn/control"
     134        eval CONTROLDIR="${CONTROLDIR}"
     135    else
     136        CONTROLDIR=$prefix/bin/control
     137    fi)
     138AC_SUBST(CONTROLDIR)
     139
     140AC_ARG_WITH(db-dir,
     141    [  --with-db-dir=PATH      Path for news database files [PREFIX/db]],
     142    DBDIR=$with_db_dir,
     143    if test "x$inn_enable_fhs_dirs" = xyes ; then
     144        eval DBDIR="${localstatedir}/lib/inn/db"
     145        eval DBDIR="${DBDIR}"
     146    else
     147        DBDIR=$prefix/db
     148    fi)
     149AC_SUBST(DBDIR)
     150
     151AC_ARG_WITH(doc-dir,
     152    [  --with-doc-dir=PATH     Path for news documentation [PREFIX/doc]],
     153    DOCDIR=$with_doc_dir,
     154    if test "x$inn_enable_fhs_dirs" = xyes ; then
     155        eval DOCDIR="${datadir}/doc/inn"
     156        eval DOCDIR="${DOCDIR}"
     157    else
     158        DOCDIR=$prefix/doc
     159    fi)
     160AC_SUBST(DOCDIR)
     161
     162AC_ARG_WITH(etc-dir,
     163    [  --with-etc-dir=PATH     Path for news config files [PREFIX/etc]],
     164    ETCDIR=$with_etc_dir,
     165    if test "x$inn_enable_fhs_dirs" = xyes ; then
     166        eval ETCDIR="${sysconfdir}/inn"
     167        eval ETCDIR="${ETCDIR}"
     168    else
     169        ETCDIR=$prefix/etc
     170    fi)
     171AC_SUBST(ETCDIR)
     172
     173AC_ARG_WITH(filter-dir,
     174    [  --with-filter-dir=PATH  Path for embedded filters [PREFIX/bin/filter]],
     175    FILTERDIR=$with_filter_dir,
     176    if test "x$inn_enable_fhs_dirs" = xyes ; then
     177        eval FILTERDIR="${sysconfdir}/inn/filter"
     178        eval FILTERDIR="${FILTERDIR}"
     179    else
     180        FILTERDIR=$prefix/bin/filter
     181    fi)
     182AC_SUBST(FILTERDIR)
     183
     184AC_ARG_WITH(lib-dir,
     185    [  --with-lib-dir=PATH     Path for news library files [PREFIX/lib]],
     186    LIBDIR=$with_lib_dir,
     187    if test "x$inn_enable_fhs_dirs" = xyes ; then
     188        eval LIBDIR="${libdir}"
     189        eval LIBDIR="${LIBDIR}"
     190    else
     191        LIBDIR=$prefix/lib
     192    fi)
     193AC_SUBST(LIBDIR)
     194
     195AC_ARG_WITH(log-dir,
     196    [  --with-log-dir=PATH     Path for news logs [PREFIX/log]],
     197    LOGDIR=$with_log_dir,
     198    if test "x$inn_enable_fhs_dirs" = xyes ; then
     199        eval LOGDIR="${localstatedir}/log/news"
     200        eval LOGDIR="${LOGDIR}"
     201    else
     202        LOGDIR=$prefix/log
     203    fi)
     204AC_SUBST(LOGDIR)
     205
     206AC_ARG_WITH(run-dir,
     207    [  --with-run-dir=PATH     Path for news PID/runtime files [PREFIX/run]],
     208    RUNDIR=$with_run_dir,
     209    if test "x$inn_enable_fhs_dirs" = xyes ; then
     210        eval RUNDIR="${localstatedir}/run/news"
     211        eval RUNDIR="${RUNDIR}"
     212    else
     213        RUNDIR=$prefix/run
     214    fi)
     215AC_SUBST(RUNDIR)
     216
     217AC_ARG_WITH(spool-dir,
     218    [  --with-spool-dir=PATH   Path for news storage [PREFIX/spool]],
     219    SPOOLDIR=$with_spool_dir,
     220    if test "x$inn_enable_fhs_dirs" = xyes ; then
     221        eval SPOOLDIR="${localstatedir}/spool/news"
     222        eval SPOOLDIR="${SPOOLDIR}"
     223    else
     224        SPOOLDIR=$prefix/spool
     225    fi)
     226AC_SUBST(SPOOLDIR)
     227
     228AC_ARG_WITH(tmp-dir,
     229    [  --with-tmp-dir=PATH     Path for temporary files [PREFIX/tmp]],
     230    tmpdir=$with_tmp_dir,
     231    if test "x$inn_enable_fhs_dirs" = xyes ; then
     232        eval tmpdir="${localstatedir}/lib/inn/tmp"
     233        eval tmpdir="${tmpdir}"
     234    else
     235        tmpdir=$prefix/tmp
     236    fi)
     237AC_SUBST(tmpdir)
    125238
    126239dnl This is actually give to AC_SUBST later on when we check whether the
  • inn-CURRENT-20010405/doc/man/inn.conf.5

    diff -U 2 -r -N ORIG/inn-CURRENT-20010405/doc/man/inn.conf.5 inn-CURRENT-20010405/doc/man/inn.conf.5
    old new  
    10171017The path to where the news articles are stored (for storage methods other
    10181018than \s-1CNFS\s0).  The default value is \fIpathspool\fR/spool.
     1019.Ip "\fIpathauth\fR" 4
     1020.IX Item "pathauth"
     1021The path to the authentication programs used by \fInnrpd\fR\|(8).  The
     1022default value is \fIpathbin\fR/auth.
    10191023.Ip "\fIpathbin\fR" 4
    10201024.IX Item "pathbin"
  • inn-CURRENT-20010405/doc/man/readers.conf.5

    diff -U 2 -r -N ORIG/inn-CURRENT-20010405/doc/man/readers.conf.5 inn-CURRENT-20010405/doc/man/readers.conf.5
    old new  
    343343.IX Item "res:"
    344344A command line for a user resolver.  The program executed must be located
    345 in \fIpathbin\fR/auth/resolv.  A resolver is an authentication program which
     345in \fIpathauth\fR/resolv.  A resolver is an authentication program which
    346346attempts to figure out the identity of the connecting user using nothing
    347347but the connection information (in other words, a username and password
     
    355355.IX Item "auth:"
    356356A command line for a user authenticator.  The program executed must be
    357 located in \fIpathbin\fR/auth/passwd.  An authenticator is a program used to
     357located in \fIpathauth\fR/passwd.  An authenticator is a program used to
    358358handle a user-supplied username and password, via a mechanism such as
    359359\&\s-1AUTHINFO\s0 \s-1USER/PASS\s0.  Like with res:, one auth group can have multiple
  • inn-CURRENT-20010405/doc/pod/inn.conf.pod

    diff -U 2 -r -N ORIG/inn-CURRENT-20010405/doc/pod/inn.conf.pod inn-CURRENT-20010405/doc/pod/inn.conf.pod
    old new  
    10381038The path to the news binaries.  The default value is I<pathnews>/bin.
    10391039
     1040=item I<pathauth>
     1041
     1042The path to the authentication programs used by the new
     1043readers.conf(5) authentication.  The default value is I<pathbin>/auth.
     1044
    10401045=item I<pathcontrol>
    10411046
  • inn-CURRENT-20010405/include/innconf.h

    diff -U 2 -r -N ORIG/inn-CURRENT-20010405/include/innconf.h inn-CURRENT-20010405/include/innconf.h
    old new  
    345345#define _CONF_STATHIST                          "stathist"
    346346#define CONF_VAR_STATHIST                       108
    347     { _CONF_STATHIST,                           "",     1, 0 }
     347    { _CONF_STATHIST,                           "",     1, 0 },
     348#define _CONF_PATHAUTH                          "pathauth"
     349#define CONF_VAR_PATHAUTH                       109
     350    { _CONF_PATHAUTH,                           "",     1, 1 }
    348351};
    349 #define MAX_CONF_VAR 109
     352#define MAX_CONF_VAR 110
  • inn-CURRENT-20010405/include/libinn.h

    diff -U 2 -r -N ORIG/inn-CURRENT-20010405/include/libinn.h inn-CURRENT-20010405/include/libinn.h
    old new  
    313313    char *patharchive;          /* Archived news. */
    314314    char *patharticles;         /* Articles. */
     315    char *pathauth;             /* Authorization programs. */
    315316    char *pathbin;              /* News binaries. */
    316317    char *pathcontrol;          /* Control message processing routines */
  • inn-CURRENT-20010405/include/paths.h.in

    diff -U 2 -r -N ORIG/inn-CURRENT-20010405/include/paths.h.in inn-CURRENT-20010405/include/paths.h.in
    old new  
    2020#define _PATH_NNRPD             "nnrpd"
    2121#define _PATH_NNTPD             "nnrpd"
    22 #define _PATH_AUTHDIR           "auth"
    23 #define _PATH_AUTHDIR_GENERIC   "generic"
    24 #define _PATH_AUTHDIR_NOPASS    "resolv"
    25 #define _PATH_AUTHDIR_PASSWD    "passwd"
    2622#define _PATH_CTLINND           "ctlinnd"
    2723#define _PATH_RNEWSPROGS        "rnews.libexec"
     
    8985#define _PATH_TMP               "@tmpdir@"
    9086#define _PATH_RNEWS_DUP_LOG     "/dev/null"
     87
     88/* Always relative to pathauth. */
     89#define _PATH_AUTHDIR_GENERIC   "generic"
     90#define _PATH_AUTHDIR_NOPASS    "resolv"
     91#define _PATH_AUTHDIR_PASSWD    "passwd"
    9192
    9293/* Always relative to pathcontrol. */
  • inn-CURRENT-20010405/lib/getconfig.c

    diff -U 2 -r -N ORIG/inn-CURRENT-20010405/lib/getconfig.c inn-CURRENT-20010405/lib/getconfig.c
    old new  
    228228    innconf->pathnews = NULL;
    229229    innconf->pathbin = NULL;
     230    innconf->pathauth = NULL;
    230231    innconf->pathfilter = NULL;
    231232    innconf->pathcontrol = NULL;
     
    298299    if (innconf->pathnews != NULL) DISPOSE(innconf->pathnews);
    299300    if (innconf->pathbin != NULL) DISPOSE(innconf->pathbin);
     301    if (innconf->pathauth != NULL) DISPOSE(innconf->pathauth);
    300302    if (innconf->pathfilter != NULL) DISPOSE(innconf->pathfilter);
    301303    if (innconf->pathcontrol != NULL) DISPOSE(innconf->pathcontrol);
     
    354356        innconf->pathbin = COPY(cpcatpath(innconf->pathnews, "bin"));
    355357    }
     358    if (innconf->pathauth == NULL) {
     359        innconf->pathauth = COPY(cpcatpath(innconf->pathbin, "auth"));
     360    }
    356361    if (innconf->pathfilter == NULL) {
    357362        innconf->pathfilter = COPY(cpcatpath(innconf->pathbin, "filter"));
     
    764769                if (!bit) innconf->pathbin = COPY(p);
    765770                SET_CONFIG(CONF_VAR_PATHBIN);
     771            } else
     772            if (EQ(ConfigBuff,_CONF_PATHAUTH)) {
     773                TEST_CONFIG(CONF_VAR_PATHAUTH, bit);
     774                if (!bit) innconf->pathauth = COPY(p);
     775                SET_CONFIG(CONF_VAR_PATHAUTH);
    766776            } else
    767777            if (EQ(ConfigBuff,_CONF_PATHFILTER)) {
  • inn-CURRENT-20010405/nnrpd/commands.c

    diff -U 2 -r -N ORIG/inn-CURRENT-20010405/nnrpd/commands.c inn-CURRENT-20010405/nnrpd/commands.c
    old new  
    112112        }
    113113
    114     if (strchr(_PATH_AUTHDIR,'/') == NULL)
    115         (void)sprintf(path, "%s/%s/%s/%s", innconf->pathbin, _PATH_AUTHDIR,
    116           _PATH_AUTHDIR_GENERIC, av[0]);
    117     else
    118         (void)sprintf(path, "%s/%s/%s", _PATH_AUTHDIR, _PATH_AUTHDIR_GENERIC,
    119           av[0]);
     114    (void)sprintf(path, "%s/%s/%s", innconf->pathauth, _PATH_AUTHDIR_GENERIC,
     115      av[0]);
    120116
    121117#if !defined(S_IXUSR) && defined(_S_IXUSR)
  • inn-CURRENT-20010405/nnrpd/perm.c

    diff -U 2 -r -N ORIG/inn-CURRENT-20010405/nnrpd/perm.c inn-CURRENT-20010405/nnrpd/perm.c
    old new  
    18931893        return(0);
    18941894
    1895     resdir = NEW(char, strlen(cpcatpath(innconf->pathbin, _PATH_AUTHDIR)) +
    1896       1 + strlen(_PATH_AUTHDIR_NOPASS) + 1 + 1);
    1897     sprintf(resdir, "%s/%s/", cpcatpath(innconf->pathbin, _PATH_AUTHDIR),
    1898       _PATH_AUTHDIR_NOPASS);
     1895    resdir = NEW(char, strlen(innconf->pathauth) + 1 +
     1896     strlen(_PATH_AUTHDIR_NOPASS) + 1 + 1);
     1897    sprintf(resdir, "%s/%s/", innconf->pathauth, _PATH_AUTHDIR_NOPASS);
    18991898
    19001899    ubuf[0] = '\0';
     
    19581957        return(0);
    19591958
    1960     resdir = NEW(char, strlen(cpcatpath(innconf->pathbin, _PATH_AUTHDIR)) +
    1961       1 + strlen(_PATH_AUTHDIR_PASSWD) + 1 + 1);
    1962     sprintf(resdir, "%s/%s/", cpcatpath(innconf->pathbin, _PATH_AUTHDIR),
    1963       _PATH_AUTHDIR_PASSWD);
     1959    resdir = NEW(char, strlen(innconf->pathauth) + 1 +
     1960     strlen(_PATH_AUTHDIR_PASSWD) + 1 + 1);
     1961    sprintf(resdir, "%s/%s/", innconf->pathauth, _PATH_AUTHDIR_PASSWD);
    19641962
    19651963    ubuf[0] = '\0';
  • inn-CURRENT-20010405/samples/inn.conf.in

    diff -U 2 -r -N ORIG/inn-CURRENT-20010405/samples/inn.conf.in inn-CURRENT-20010405/samples/inn.conf.in
    old new  
    163163patharticles:           @SPOOLDIR@/articles
    164164pathbin:                @prefix@/bin
     165pathauth:               @AUTHDIR@
    165166pathcontrol:            @CONTROLDIR@
    166167pathdb:                 @DBDIR@
  • inn-CURRENT-20010405/scripts/inncheck.in

    diff -U 2 -r -N ORIG/inn-CURRENT-20010405/scripts/inncheck.in inn-CURRENT-20010405/scripts/inncheck.in
    old new  
    399399    'patharticles',             0,
    400400    'pathbin',                  0,
     401    'pathauth',                 0,
    401402    'pathcontrol',              0,
    402403    'pathdb',                   0,
  • inn-CURRENT-20010405/site/Makefile

    diff -U 2 -r -N ORIG/inn-CURRENT-20010405/site/Makefile inn-CURRENT-20010405/site/Makefile
    old new  
    146146$D$(PATH_ACTIVE_TIMES):
    147147        touch $@
    148         chown $(NEWSUSER) $@
    149         chgrp $(NEWSGROUP) $@
     148        @ME=`$(WHOAMI)` ; \
     149        if [ x"$$ME" = xroot ] ; then \
     150            echo chown $(NEWSUSER) $@ ; \
     151            chown $(NEWSUSER) $@ ; \
     152            echo chgrp $(NEWSGROUP) $@ ; \
     153            chgrp $(NEWSGROUP) $@ ; \
     154        else \
     155            echo chown $(NEWSUSER) $@ ; \
     156            echo chgrp $(NEWSGROUP) $@ ; \
     157        fi
    150158        chmod 644 $@
    151159