##
##  pwauth.spec -- OpenPKG RPM Package Specification
##  Copyright (c) 2000-2025 OpenPKG Project <http://openpkg.org/>
##
##  Permission to use, copy, modify, and distribute this software for
##  any purpose with or without fee is hereby granted, provided that
##  the above copyright notice and this permission notice appear in all
##  copies.
##
##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
##  SUCH DAMAGE.
##

#   package information
Name:         pwauth
Summary:      Password Authentication Utility
URL:          http://code.google.com/p/pwauth/
Vendor:       Jan Wolter
Packager:     OpenPKG Project
Distribution: OpenPKG Community
Class:        EVAL
Group:        System
License:      BSD
Version:      2.3.11
Release:      20131213

#   list of sources
Source0:      http://pwauth.googlecode.com/files/pwauth-%{version}.tar.gz
Patch0:       pwauth.patch

#   build information
BuildPreReq:  OpenPKG, openpkg >= 20160101
PreReq:       OpenPKG, openpkg >= 20160101
BuildPreReq:  PAM
PreReq:       PAM

%description
    Pwauth is a conceptually a simple program. You run it, giving it a
    login and a password, and it returns a status code telling whether
    or not that login/password is valid. It is designed to be combined
    with mod_auth_external (or mod_authnz_external) and Apache to give
    reasonably secure HTTP authentication from a Unix password file,
    though it can be used in other ways too. It uses the system's PAM
    service.

%track
    prog pwauth = {
        version   = %{version}
        url       = http://code.google.com/p/pwauth/downloads/list
        regex     = pwauth-(__VER__)\.tar\.gz
    }

%prep
    %setup -q
    %patch -p0

%build
    #   build program
    %{l_shtool} subst \
        -e 's;72;%{l_muid},%{l_ruid},%{l_nuid};' \
        -e 's;/var/run/pwauth\.lock;%{l_prefix}/var/pwauth/pwauth.lock;' \
        config.h
    DEF=""; LIB=""
    case "%{l_platform -p}" in
        *-freebsd* ) DEF="-DPAM";         LIB="-lpam"      ;;
        *-linux*   ) DEF="-DPAM";         LIB="-lpam -ldl" ;;
        *-macosx*  ) DEF="-DPAM_OS_X";    LIB="-lpam"      ;;
        *-solaris* ) DEF="-DPAM_SOLARIS"; LIB="-lpam"      ;;
    esac
    %{l_make} %{l_mflags} \
        CC="%{l_cc}" \
        CFLAGS="%{l_cflags -O} -I. -I`%{l_rc} --query pam_incdir` $DEF" \
        LDFLAGS="-L`%{l_rc} --query pam_libdir`" \
        LIB="$LIB"

%install
    #   install program
    %{l_shtool} mkdir -f -p -m 755 \
        $RPM_BUILD_ROOT%{l_prefix}/bin \
        $RPM_BUILD_ROOT%{l_prefix}/var/pwauth
    %{l_shtool} install -c -s -m 755 \
        pwauth $RPM_BUILD_ROOT%{l_prefix}/bin/

    #   determine installation files
    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
        %{l_files_std} \
        '%attr(4755,%{l_susr},%{l_mgrp}) %{l_prefix}/bin/pwauth' \
        '%attr(-,%{l_susr},%{l_mgrp}) %{l_prefix}/var/pwauth'

%files -f files

%clean

%post
    #   add PAM configuration entry
    if [ $1 -eq 1 ]; then
        $RPM_INSTALL_PREFIX/sbin/pamtool --add --smart --name=pwauth
    fi

%preun
    #   remove PAM configuration entry
    if [ $1 -eq 0 ]; then
        $RPM_INSTALL_PREFIX/sbin/pamtool --remove --smart --name=pwauth
    fi

