pam/pam.spec

changeset 480
332ec562ab2e
child 481
7b6013bffe8c
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/pam/pam.spec	Sun Aug 05 22:52:01 2012 +0200
     1.3 @@ -0,0 +1,165 @@
     1.4 +##
     1.5 +##  pam.spec -- OpenPKG RPM Package Specification
     1.6 +##  Copyright (c) 2000-2011 OpenPKG Foundation e.V. <http://openpkg.net/>
     1.7 +##
     1.8 +##  Permission to use, copy, modify, and distribute this software for
     1.9 +##  any purpose with or without fee is hereby granted, provided that
    1.10 +##  the above copyright notice and this permission notice appear in all
    1.11 +##  copies.
    1.12 +##
    1.13 +##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
    1.14 +##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    1.15 +##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    1.16 +##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
    1.17 +##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    1.18 +##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    1.19 +##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
    1.20 +##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    1.21 +##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    1.22 +##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
    1.23 +##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    1.24 +##  SUCH DAMAGE.
    1.25 +##
    1.26 +
    1.27 +#   package information
    1.28 +Name:         pam
    1.29 +Summary:      Information Resource for PAM
    1.30 +URL:          -
    1.31 +Vendor:       The OpenPKG Project
    1.32 +Packager:     OpenPKG Foundation e.V.
    1.33 +Distribution: OpenPKG Community
    1.34 +Class:        BASE
    1.35 +Group:        Meta
    1.36 +License:      PD
    1.37 +Version:      0
    1.38 +Release:      20110219
    1.39 +
    1.40 +#   list of sources
    1.41 +Source0:      pamtool
    1.42 +Source1:      rc.pam
    1.43 +
    1.44 +#   build information
    1.45 +BuildPreReq:  OpenPKG, openpkg >= 20100101
    1.46 +PreReq:       OpenPKG, openpkg >= 20100101
    1.47 +Provides:     PAM
    1.48 +
    1.49 +%description
    1.50 +    This is the information resource package for PAM.
    1.51 +
    1.52 +%track
    1.53 +
    1.54 +%prep
    1.55 +
    1.56 +%build
    1.57 +
    1.58 +%install
    1.59 +
    1.60 +    pam_cfgloc=""
    1.61 +    pam_modpfx=""
    1.62 +    pam_incdir=""
    1.63 +    pam_libdir=""
    1.64 +
    1.65 +    #   search for configuration location
    1.66 +    for cfgloc in \
    1.67 +        /etc/pam.d \
    1.68 +        /etc/pam.conf \
    1.69 +    ; do
    1.70 +        if [ -f $cfgloc -o -d $cfgloc ]; then
    1.71 +            pam_cfgloc="$cfgloc"
    1.72 +            break
    1.73 +        fi
    1.74 +    done
    1.75 +
    1.76 +    #   search for module prefix
    1.77 +    if [ -d $pam_cfgloc ]; then
    1.78 +        mod=`cat $pam_cfgloc/* 2>/dev/null | grep -i '^#*[ 	]*other' | head -1 | awk '{ print $3; }'`
    1.79 +    elif [ -f $pam_cfgloc ]; then
    1.80 +        mod=`cat $pam_cfgloc 2>/dev/null | grep -i '^#*[ 	]*other' | head -1 | awk '{ print $4; }'`
    1.81 +    else
    1.82 +        mod=""
    1.83 +    fi
    1.84 +    case $mod in
    1.85 +        pam_*    ) pam_modpfx="" ;;
    1.86 +        /*/pam_* ) pam_modpfx=`echo $mod | sed 's;^\(/.*/\)pam_[^/]*$;\1;'` ;;
    1.87 +    esac
    1.88 +
    1.89 +    #   search for include directory
    1.90 +    for incdir in \
    1.91 +        /usr/include \
    1.92 +        /usr/local/include \
    1.93 +        /opt/include \
    1.94 +    ; do
    1.95 +        if [ -f "$incdir/security/pam_appl.h" ]; then
    1.96 +            pam_incdir="$incdir"
    1.97 +            break
    1.98 +        fi
    1.99 +    done
   1.100 +
   1.101 +    #   search for library directory
   1.102 +    for libdir in \
   1.103 +        /lib \
   1.104 +        /usr/lib \
   1.105 +        /usr/local/lib \
   1.106 +        /opt/lib \
   1.107 +    ; do
   1.108 +        for ext in a so sl so.0; do
   1.109 +            if [ -f "$libdir/libpam.$ext" ]; then
   1.110 +                pam_libdir="$libdir"
   1.111 +                break
   1.112 +            fi
   1.113 +        done
   1.114 +        if [ ".$pam_libdir" != . ]; then
   1.115 +            break
   1.116 +        fi
   1.117 +    done
   1.118 +
   1.119 +    #   make sure everything was found
   1.120 +    if [ ".$pam_cfgloc" = . ] ||\
   1.121 +       [ ".$pam_incdir" = . ] ||\
   1.122 +       [ ".$pam_libdir" = . ]; then
   1.123 +       set +x
   1.124 +       ( echo "************************************************************"
   1.125 +         echo "**  ERROR: SOME PAM INFORMATION COULD NOT BE DETERMINED!!"
   1.126 +         echo "**  ERROR: SOME PAM INFORMATION COULD NOT BE DETERMINED!!"
   1.127 +         echo "**"
   1.128 +         echo "**  We found out:"
   1.129 +         echo "**    PAM Config  Location:  \"${pam_cfgloc}\""
   1.130 +         echo "**    PAM Module  Prefix:    \"${pam_modpfx}\""
   1.131 +         echo "**    PAM Include Directory: \"${pam_incdir}\""
   1.132 +         echo "**    PAM Library Directory: \"${pam_libdir}\""
   1.133 +         echo "**"
   1.134 +         echo "**  Unfortunately, some information is missing here."
   1.135 +         echo "**"
   1.136 +         echo "**  Be sure to have all system PAM components installed"
   1.137 +         echo "**  in standard locations before building this package!"
   1.138 +         echo "**"
   1.139 +         echo "**  ERROR: SOME PAM INFORMATION COULD NOT BE DETERMINED!!"
   1.140 +         echo "**  ERROR: SOME PAM INFORMATION COULD NOT BE DETERMINED!!"
   1.141 +       echo "************************************************************"
   1.142 +       ) | %{l_rpmtool} msg -b -t error
   1.143 +       exit 1
   1.144 +    fi
   1.145 +
   1.146 +    #   install PAM tool
   1.147 +    %{l_shtool} mkdir -f -p -m 755 \
   1.148 +        $RPM_BUILD_ROOT%{l_prefix}/sbin
   1.149 +    %{l_shtool} install -c -m 755 %{l_value -s -a} \
   1.150 +        -e 's;@l_platform@;%{l_platform -t};g' \
   1.151 +        %{SOURCE pamtool} $RPM_BUILD_ROOT%{l_prefix}/sbin/
   1.152 +
   1.153 +    #   install rc file
   1.154 +    %{l_shtool} mkdir -f -p -m 755 \
   1.155 +        $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
   1.156 +    %{l_shtool} install -c -m 755 %{l_value -s -a} \
   1.157 +        -e "s;@pam_cfgloc@;${pam_cfgloc};g" \
   1.158 +        -e "s;@pam_modpfx@;${pam_modpfx};g" \
   1.159 +        -e "s;@pam_incdir@;${pam_incdir};g" \
   1.160 +        -e "s;@pam_libdir@;${pam_libdir};g" \
   1.161 +        %{SOURCE rc.pam} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
   1.162 +
   1.163 +    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
   1.164 +
   1.165 +%files -f files
   1.166 +
   1.167 +%clean
   1.168 +

mercurial