pam.spec 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. ##
  2. ## pam.spec -- OpenPKG RPM Specification
  3. ## Copyright (c) 2000-2002 Cable & Wireless Deutschland GmbH
  4. ## Copyright (c) 2000-2002 The OpenPKG Project <http://www.openpkg.org/>
  5. ## Copyright (c) 2000-2002 Ralf S. Engelschall <rse@engelschall.com>
  6. ##
  7. ## Permission to use, copy, modify, and distribute this software for
  8. ## any purpose with or without fee is hereby granted, provided that
  9. ## the above copyright notice and this permission notice appear in all
  10. ## copies.
  11. ##
  12. ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  13. ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  14. ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  15. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
  16. ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  17. ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  18. ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  19. ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  20. ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  21. ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  22. ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  23. ## SUCH DAMAGE.
  24. ##
  25. # package information
  26. Name: pam
  27. Summary: Information Resource for PAM
  28. URL: -
  29. Vendor: The OpenPKG Project
  30. Packager: The OpenPKG Project
  31. Distribution: OpenPKG [EXP]
  32. Group: Meta
  33. License: PD
  34. Version: 20020311
  35. Release: 20020311
  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 >= 20020206
  43. PreReq: OpenPKG, openpkg >= 20020206
  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. # search for include directory
  80. for incdir in \
  81. /usr/include \
  82. /usr/local/include \
  83. /opt/include \
  84. ; do
  85. if [ -f "$incdir/security/pam_appl.h" ]; then
  86. pam_incdir="$incdir"
  87. break
  88. fi
  89. done
  90. # search for library directory
  91. for libdir in \
  92. /lib \
  93. /usr/lib \
  94. /usr/local/lib \
  95. /opt/lib \
  96. ; do
  97. for ext in a so sl; do
  98. if [ -f "$libdir/libpam.$ext" ]; then
  99. pam_libdir="$libdir"
  100. break
  101. fi
  102. done
  103. if [ ".$pam_libdir" != . ]; then
  104. break
  105. fi
  106. done
  107. # make sure everything was found
  108. if [ ".$pam_cfgloc" = . ] ||\
  109. [ ".$pam_incdir" = . ] ||\
  110. [ ".$pam_libdir" = . ]; then
  111. echo "************************************************************"
  112. echo "** ERROR: SOME PAM INFORMATION COULD NOT BE DETERMINED!!"
  113. echo "** ERROR: SOME PAM INFORMATION COULD NOT BE DETERMINED!!"
  114. echo "**"
  115. echo "** We found out:"
  116. echo "** PAM Config Location: \"${pam_cfgloc}\""
  117. echo "** PAM Module Prefix: \"${pam_modpfx}\""
  118. echo "** PAM Include Directory: \"${pam_incdir}\""
  119. echo "** PAM Library Directory: \"${pam_libdir}\""
  120. echo "**"
  121. echo "** Unfortunately, some information is missing here."
  122. echo "**"
  123. echo "** ERROR: SOME PAM INFORMATION COULD NOT BE DETERMINED!!"
  124. echo "** ERROR: SOME PAM INFORMATION COULD NOT BE DETERMINED!!"
  125. echo "************************************************************"
  126. exit 1
  127. fi
  128. # install PAM tool
  129. %{l_shtool} mkdir -f -p -m 755 \
  130. $RPM_BUILD_ROOT%{l_prefix}/sbin
  131. %{l_shtool} install -c -m 755 \
  132. -e 's;@l_prefix@;%{l_prefix};g' \
  133. -e 's;@l_target@;%{l_target};g' \
  134. %{SOURCE pamtool} $RPM_BUILD_ROOT%{l_prefix}/sbin/
  135. # install rc file
  136. %{l_shtool} mkdir -f -p -m 755 \
  137. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
  138. %{l_shtool} install -c -m 755 \
  139. -e 's;@l_prefix@;%{l_prefix};g' \
  140. -e "s;@pam_cfgloc@;${pam_cfgloc};g" \
  141. -e "s;@pam_modpfx@;${pam_modpfx};g" \
  142. -e "s;@pam_incdir@;${pam_incdir};g" \
  143. -e "s;@pam_libdir@;${pam_libdir};g" \
  144. %{SOURCE rc.pam} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
  145. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
  146. %files -f files
  147. %clean
  148. rm -rf $RPM_BUILD_ROOT