kerberos.spec 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. ##
  2. ## kerberos.spec -- OpenPKG RPM Specification
  3. ## Copyright (c) 2000-2004 The OpenPKG Project <http://www.openpkg.org/>
  4. ## Copyright (c) 2000-2004 Ralf S. Engelschall <rse@engelschall.com>
  5. ## Copyright (c) 2000-2004 Cable & Wireless <http://www.cw.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 version
  26. %define V_major 1.3
  27. %define V_minor 4
  28. # package information
  29. Name: kerberos
  30. Summary: Kerberos Network Authentication System
  31. URL: http://web.mit.edu/kerberos/www/
  32. Vendor: MIT
  33. Packager: The OpenPKG Project
  34. Distribution: OpenPKG
  35. Class: BASE
  36. Group: Cryptography
  37. License: MIT subject to US EAR
  38. Version: %{V_major}.%{V_minor}
  39. Release: 20040702
  40. # package options
  41. %option with_fsl yes
  42. # list of sources
  43. Source0: http://web.mit.edu/kerberos/dist/krb5/%{V_major}/krb5-%{version}.tar
  44. Source1: rc.kerberos
  45. Source2: fsl.kerberos
  46. Source3: krb5.conf
  47. Source4: kdc.conf
  48. Source5: krb5quick.ps
  49. Patch0: kerberos.patch
  50. # build information
  51. Prefix: %{l_prefix}
  52. BuildRoot: %{l_buildroot}
  53. BuildPreReq: OpenPKG, openpkg >= 20040130, flex, bison, make, sed
  54. PreReq: OpenPKG, openpkg >= 20040130
  55. %if "%{with_fsl}" == "yes"
  56. BuildPreReq: fsl >= 1.2.0
  57. PreReq: fsl >= 1.2.0
  58. %endif
  59. AutoReq: no
  60. AutoReqProv: no
  61. %description
  62. Kerberos is a network authentication protocol. It is designed to
  63. provide strong authentication for client/server applications by
  64. using secret-key cryptography. This is the free implementation of
  65. this protocol, as available from the Massachusetts Institute of
  66. Technology (MIT). Kerberos is available in many commercial products
  67. as well.
  68. %track
  69. prog kerberos = {
  70. version = %{version}
  71. url = http://web.mit.edu/kerberos/dist/
  72. regex = krb5-(__VER__)\.tar
  73. }
  74. %prep
  75. %setup -q -T -c -n krb5-%{version}
  76. %{l_tar} xf %{SOURCE krb5-%{version}.tar}
  77. %{l_gzip} -d -c krb5-%{version}.tar.gz | (cd .. && %{l_tar} xf -) || exit $?
  78. %patch -p0
  79. %{l_shtool} subst \
  80. -e 's;/etc/krb5.conf:@SYSCONFDIR/krb5.conf;@SYSCONFDIR/kerberos/krb5.conf;g' \
  81. -e 's;FILE:/etc/krb5.keytab;FILE:@SYSCONFDIR/kerberos/krb5.keytab;g' \
  82. -e 's;@LOCALSTATEDIR/krb5kdc;@LOCALSTATEDIR/kerberos;g' \
  83. -e 's;DEFAULT_KDC_PROFILE\t"@LOCALSTATEDIR;DEFAULT_KDC_PROFILE "@SYSCONFDIR;g' \
  84. src/include/krb5/stock/osconf.h
  85. %build
  86. cd src
  87. CC="%{l_cc}" \
  88. CFLAGS="%{l_cflags -O}" \
  89. LDFLAGS="%{l_fsl_ldflags}" \
  90. LIBS="%{l_fsl_libs}" \
  91. ./configure \
  92. --prefix=%{l_prefix} \
  93. --without-krb4 \
  94. --disable-shared
  95. %{l_make} %{l_mflags}
  96. %install
  97. rm -rf $RPM_BUILD_ROOT
  98. %{l_shtool} mkdir -f -p -m 755 \
  99. $RPM_BUILD_ROOT%{l_prefix}/var/kerberos
  100. ( cd src
  101. %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
  102. ) || exit 1
  103. # polish installation
  104. %{l_shtool} mkdir -p -m 755 \
  105. $RPM_BUILD_ROOT%{l_prefix}/include/kerberos \
  106. $RPM_BUILD_ROOT%{l_prefix}/lib/kerberos \
  107. $RPM_BUILD_ROOT%{l_prefix}/libexec/kerberos \
  108. $RPM_BUILD_ROOT%{l_prefix}/var/kerberos/log \
  109. $RPM_BUILD_ROOT%{l_prefix}/share/kerberos/doc \
  110. $RPM_BUILD_ROOT%{l_prefix}/etc/kerberos \
  111. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
  112. $RPM_BUILD_ROOT%{l_prefix}/etc/fsl
  113. # include catalog compiler for libcomm
  114. ( cd src/util/et
  115. %{l_shtool} install -c -m 755 \
  116. compile_et $RPM_BUILD_ROOT%{l_prefix}/libexec/kerberos/
  117. %{l_shtool} install -c -m 644 \
  118. compile_et.1 $RPM_BUILD_ROOT%{l_prefix}/man/man1/
  119. ) || exit 1
  120. for i in telnet ftp rcp rlogin rsh uuclient ; do
  121. mv \
  122. $RPM_BUILD_ROOT%{l_prefix}/bin/$i \
  123. $RPM_BUILD_ROOT%{l_prefix}/bin/k$i
  124. if test -f $RPM_BUILD_ROOT%{l_prefix}/man/man8/$i.1 ; then
  125. mv \
  126. $RPM_BUILD_ROOT%{l_prefix}/man/man1/$i.1 \
  127. $RPM_BUILD_ROOT%{l_prefix}/man/man1/k$i.1
  128. fi
  129. done
  130. for i in ftpd telnetd uuserver ; do
  131. mv \
  132. $RPM_BUILD_ROOT%{l_prefix}/sbin/$i \
  133. $RPM_BUILD_ROOT%{l_prefix}/libexec/kerberos/k$i
  134. if test -f $RPM_BUILD_ROOT%{l_prefix}/man/man8/$i.8 ; then
  135. mv \
  136. $RPM_BUILD_ROOT%{l_prefix}/man/man8/$i.8 \
  137. $RPM_BUILD_ROOT%{l_prefix}/man/man8/k$i.8
  138. fi
  139. done
  140. mv \
  141. $RPM_BUILD_ROOT%{l_prefix}/sbin/* \
  142. $RPM_BUILD_ROOT%{l_prefix}/libexec/kerberos/
  143. rmdir $RPM_BUILD_ROOT%{l_prefix}/sbin
  144. mv \
  145. $RPM_BUILD_ROOT%{l_prefix}/include/*.h \
  146. $RPM_BUILD_ROOT%{l_prefix}/include/gssapi \
  147. $RPM_BUILD_ROOT%{l_prefix}/include/kerberosIV \
  148. $RPM_BUILD_ROOT%{l_prefix}/include/kerberos/
  149. mv \
  150. $RPM_BUILD_ROOT%{l_prefix}/lib/*.a \
  151. $RPM_BUILD_ROOT%{l_prefix}/lib/kerberos/
  152. rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/gnats
  153. strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
  154. # install run-command script, config files, and fsl configuration
  155. %{l_shtool} install -c -m 755 %{l_value -s -a} \
  156. %{SOURCE rc.kerberos} \
  157. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
  158. %{l_shtool} install -c -m 644 %{l_value -s -a} \
  159. %{SOURCE krb5.conf} \
  160. %{SOURCE kdc.conf} \
  161. $RPM_BUILD_ROOT%{l_prefix}/etc/kerberos/
  162. %{l_shtool} install -c -m 644 %{l_value -s -a} \
  163. %{SOURCE fsl.kerberos} \
  164. $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
  165. # install documentation
  166. %{l_shtool} install -c -m 644 %{l_value -s -a} \
  167. doc/*.ps \
  168. %{SOURCE krb5quick.ps} \
  169. $RPM_BUILD_ROOT%{l_prefix}/share/kerberos/doc/
  170. # determine installation files
  171. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
  172. %{l_files_std} \
  173. '%not %dir %{l_prefix}/etc/fsl' \
  174. '%config %{l_prefix}/etc/fsl/fsl.kerberos'
  175. %files -f files
  176. %clean
  177. rm -rf $RPM_BUILD_ROOT
  178. %pre
  179. # before upgrade, save status and stop service
  180. [ $1 -eq 2 ] || exit 0
  181. eval `%{l_rc} kerberos status 2>/dev/null | tee %{l_tmpfile}`
  182. %{l_rc} kerberos stop 2>/dev/null
  183. exit 0
  184. %post
  185. if [ $1 -eq 2 ]; then
  186. # after upgrade, restore status
  187. eval `cat %{l_tmpfile}`; rm -f %{l_tmpfile}
  188. [ ".$kerberos_active" = .yes ] && %{l_rc} kerberos start
  189. fi
  190. exit 0
  191. %preun
  192. # before erase, stop service and remove log files
  193. [ $1 -eq 0 ] || exit 0
  194. %{l_rc} kerberos stop 2>/dev/null
  195. rm -f $RPM_INSTALL_PREFIX/var/kerberos/*.log* >/dev/null 2>&1 || true
  196. exit 0