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 +