pam.spec 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. ##
  2. ## pam.spec -- OpenPKG RPM Package Specification
  3. ## Copyright (c) 2000-2006 OpenPKG Foundation e.V. <http://openpkg.net/>
  4. ## Copyright (c) 2000-2006 Ralf S. Engelschall <http://engelschall.com/>
  5. ##
  6. ## Permission to use, copy, modify, and distribute this software for
  7. ## any purpose with or without fee is hereby granted, provided that
  8. ## the above copyright notice and this permission notice appear in all
  9. ## copies.
  10. ##
  11. ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  12. ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  13. ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  14. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
  15. ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  16. ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  17. ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  18. ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  19. ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  20. ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  21. ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  22. ## SUCH DAMAGE.
  23. ##
  24. # package information
  25. Name: pam
  26. Summary: Information Resource for PAM
  27. URL: -
  28. Vendor: The OpenPKG Project
  29. Packager: OpenPKG
  30. Distribution: OpenPKG
  31. Class: BASE
  32. Group: Meta
  33. License: PD
  34. Version: 0
  35. Release: 20060214
  36. # list of sources
  37. Source0: pamtool
  38. Source1: rc.pam
  39. # build information
  40. Prefix: %{l_prefix}
  41. BuildRoot: %{l_buildroot}
  42. BuildPreReq: OpenPKG, openpkg >= 20040130
  43. PreReq: OpenPKG, openpkg >= 20040130
  44. AutoReq: no
  45. AutoReqProv: no
  46. Provides: PAM
  47. %description
  48. This is the information resource package for PAM.
  49. %prep
  50. %build
  51. %install
  52. rm -rf $RPM_BUILD_ROOT
  53. pam_cfgloc=""
  54. pam_modpfx=""
  55. pam_incdir=""
  56. pam_libdir=""
  57. # search for configuration location
  58. for cfgloc in \
  59. /etc/pam.d \
  60. /etc/pam.conf \
  61. ; do
  62. if [ -f $cfgloc -o -d $cfgloc ]; then
  63. pam_cfgloc="$cfgloc"
  64. break
  65. fi
  66. done
  67. # search for module prefix
  68. if [ -d $pam_cfgloc ]; then
  69. mod=`cat $pam_cfgloc/* 2>/dev/null | grep '^#*[ ]*other' | head -1 | awk '{ print $3; }'`
  70. elif [ -f $pam_cfgloc ]; then
  71. mod=`cat $pam_cfgloc 2>/dev/null | grep '^#*[ ]*other' | head -1 | awk '{ print $4; }'`
  72. else
  73. mod=""
  74. fi
  75. case $mod in
  76. pam_* ) pam_modpfx="" ;;
  77. /*/pam_* ) pam_modpfx=`echo $mod | sed 's;^\(/.*/\)pam_[^/]*$;\1;'` ;;
  78. esac
  79. if [ ".$pam_modpfx" = . -a -d /usr/lib/security ]; then
  80. # extra hack for AIX
  81. pam_modpfx="/usr/lib/security"
  82. fi
  83. # search for include directory
  84. for incdir in \
  85. /usr/include \
  86. /usr/local/include \
  87. /opt/include \
  88. ; do
  89. if [ -f "$incdir/security/pam_appl.h" ]; then
  90. pam_incdir="$incdir"
  91. break
  92. fi
  93. done
  94. # search for library directory
  95. for libdir in \
  96. /lib \
  97. /usr/lib \
  98. /usr/local/lib \
  99. /opt/lib \
  100. ; do
  101. for ext in a so sl so.0; do
  102. if [ -f "$libdir/libpam.$ext" ]; then
  103. pam_libdir="$libdir"
  104. break
  105. fi
  106. done
  107. if [ ".$pam_libdir" != . ]; then
  108. break
  109. fi
  110. done
  111. # make sure everything was found
  112. if [ ".$pam_cfgloc" = . ] ||\
  113. [ ".$pam_incdir" = . ] ||\
  114. [ ".$pam_libdir" = . ]; then
  115. echo "************************************************************"
  116. echo "** ERROR: SOME PAM INFORMATION COULD NOT BE DETERMINED!!"
  117. echo "** ERROR: SOME PAM INFORMATION COULD NOT BE DETERMINED!!"
  118. echo "**"
  119. echo "** We found out:"
  120. echo "** PAM Config Location: \"${pam_cfgloc}\""
  121. echo "** PAM Module Prefix: \"${pam_modpfx}\""
  122. echo "** PAM Include Directory: \"${pam_incdir}\""
  123. echo "** PAM Library Directory: \"${pam_libdir}\""
  124. echo "**"
  125. echo "** Unfortunately, some information is missing here."
  126. echo "**"
  127. echo "** Be sure to have all system PAM components installed"
  128. echo "** in standard locations before building this package!"
  129. echo "**"
  130. echo "** ERROR: SOME PAM INFORMATION COULD NOT BE DETERMINED!!"
  131. echo "** ERROR: SOME PAM INFORMATION COULD NOT BE DETERMINED!!"
  132. echo "************************************************************"
  133. exit 1
  134. fi
  135. # install PAM tool
  136. %{l_shtool} mkdir -f -p -m 755 \
  137. $RPM_BUILD_ROOT%{l_prefix}/sbin
  138. %{l_shtool} install -c -m 755 %{l_value -s -a} \
  139. -e 's;@l_platform@;%{l_platform -t};g' \
  140. %{SOURCE pamtool} $RPM_BUILD_ROOT%{l_prefix}/sbin/
  141. # install rc file
  142. %{l_shtool} mkdir -f -p -m 755 \
  143. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
  144. %{l_shtool} install -c -m 755 %{l_value -s -a} \
  145. -e "s;@pam_cfgloc@;${pam_cfgloc};g" \
  146. -e "s;@pam_modpfx@;${pam_modpfx};g" \
  147. -e "s;@pam_incdir@;${pam_incdir};g" \
  148. -e "s;@pam_libdir@;${pam_libdir};g" \
  149. %{SOURCE rc.pam} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
  150. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
  151. %files -f files
  152. %clean
  153. rm -rf $RPM_BUILD_ROOT