kerberos.spec 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. ##
  2. ## kerberos.spec -- OpenPKG RPM Package Specification
  3. ## Copyright (c) 2000-2005 OpenPKG Foundation e.V. <http://openpkg.net/>
  4. ## Copyright (c) 2000-2005 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. # FIXME: rse: missing run-command support for kprop/kpropd based master/slave replication
  25. # package version
  26. %define V_major 1.4
  27. %define V_minor 3
  28. # package information
  29. Name: kerberos
  30. Summary: Kerberos Network Authentication System
  31. URL: http://web.mit.edu/kerberos/
  32. Vendor: MIT
  33. Packager: OpenPKG
  34. Distribution: OpenPKG
  35. Class: BASE
  36. Group: Cryptography
  37. License: MIT subject to US EAR
  38. Version: %{V_major}.%{V_minor}
  39. Release: 20051225
  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}-signed.tar
  44. Source1: rc.kerberos
  45. Source2: fsl.kerberos
  46. Source3: krb5.conf
  47. Source4: kdc.conf
  48. Source5: kerberos-setup.sh
  49. Patch0: kerberos.patch
  50. # build information
  51. Prefix: %{l_prefix}
  52. BuildRoot: %{l_buildroot}
  53. BuildPreReq: OpenPKG, openpkg >= 20040130, flex, bison, make, sed, perl
  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__)-signed\.tar
  73. }
  74. %prep
  75. %setup -q -T -c -n krb5-%{version}
  76. %{l_tar} xf %{SOURCE krb5-%{version}-signed.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."@LOCALSTATEDIR;DEFAULT_KDC_PROFILE "@SYSCONFDIR;g' \
  84. src/include/krb5/stock/osconf.h
  85. %build
  86. # build toolkit
  87. cd src
  88. CC="%{l_cc}" \
  89. CFLAGS="%{l_cflags -O}" \
  90. LDFLAGS="%{l_fsl_ldflags}" \
  91. LIBS="%{l_fsl_libs}" \
  92. ./configure \
  93. --prefix=%{l_prefix} \
  94. --includedir=%{l_prefix}/include/kerberos \
  95. --libdir=%{l_prefix}/lib/kerberos \
  96. --enable-dns-for-realm \
  97. --without-tcl \
  98. --without-krb4 \
  99. --enable-static \
  100. --disable-shared
  101. %{l_make} %{l_mflags}
  102. %install
  103. # install toolkit
  104. rm -rf $RPM_BUILD_ROOT
  105. %{l_shtool} mkdir -f -p -m 755 \
  106. $RPM_BUILD_ROOT%{l_prefix}/var/kerberos
  107. ( cd src
  108. %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
  109. ) || exit $?
  110. # create additional directories
  111. %{l_shtool} mkdir -p -m 755 \
  112. $RPM_BUILD_ROOT%{l_prefix}/var/kerberos/log \
  113. $RPM_BUILD_ROOT%{l_prefix}/var/kerberos/run \
  114. $RPM_BUILD_ROOT%{l_prefix}/var/kerberos/db \
  115. $RPM_BUILD_ROOT%{l_prefix}/share/kerberos \
  116. $RPM_BUILD_ROOT%{l_prefix}/etc/kerberos \
  117. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
  118. $RPM_BUILD_ROOT%{l_prefix}/etc/fsl
  119. # strip down installation
  120. rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/gnats
  121. rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/examples
  122. strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
  123. strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* >/dev/null 2>&1 || true
  124. # install setup script
  125. %{l_shtool} install -c -m 755 %{l_value -s -a} \
  126. %{SOURCE kerberos-setup.sh} \
  127. $RPM_BUILD_ROOT%{l_prefix}/sbin/kerberos-setup
  128. # install run-command script
  129. %{l_shtool} install -c -m 755 %{l_value -s -a} \
  130. %{SOURCE rc.kerberos} \
  131. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
  132. # install default configuration files
  133. %{l_shtool} install -c -m 644 %{l_value -s -a} \
  134. %{SOURCE krb5.conf} %{SOURCE kdc.conf} \
  135. $RPM_BUILD_ROOT%{l_prefix}/etc/kerberos/
  136. # install OSSP fsl configuration
  137. %{l_shtool} install -c -m 644 %{l_value -s -a} \
  138. %{SOURCE fsl.kerberos} \
  139. $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
  140. # install documentation
  141. %{l_shtool} install -c -m 644 %{l_value -s -a} \
  142. doc/install-guide.ps doc/admin-guide.ps doc/user-guide.ps \
  143. $RPM_BUILD_ROOT%{l_prefix}/share/kerberos/
  144. # determine installation files
  145. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
  146. %{l_files_std} \
  147. '%not %dir %{l_prefix}/etc/fsl' \
  148. '%config %{l_prefix}/etc/fsl/fsl.kerberos' \
  149. '%config %{l_prefix}/etc/kerberos/*.conf' \
  150. '%doc %{l_prefix}/share/kerberos/*.ps' \
  151. '%attr(4755,%{l_susr},%{l_mgrp}) %{l_prefix}/bin/ksu'
  152. %files -f files
  153. %clean
  154. rm -rf $RPM_BUILD_ROOT
  155. %pre
  156. # before upgrade, save status and stop service
  157. [ $1 -eq 2 ] || exit 0
  158. eval `%{l_rc} kerberos status 2>/dev/null | tee %{l_tmpfile}`
  159. %{l_rc} kerberos stop 2>/dev/null
  160. exit 0
  161. %post
  162. # initial hints
  163. if [ $1 -eq 1 ]; then
  164. # display information about next steps
  165. ( echo "Before you can use Kerberos you have to choose the"
  166. echo "Kerberos realm (e.g. EXAMPLE.COM) and initialize the"
  167. echo "Kerberos database with the command:"
  168. echo " \$ $RPM_INSTALL_PREFIX/sbin/kerberos-setup <realm> <domain>"
  169. echo "where <domain> is the primary DNS zone of this setup and"
  170. echo "<realm> by convention the upper-case version of <domain>."
  171. ) | %{l_rpmtool} msg -b -t notice
  172. fi
  173. # after upgrade, restore status
  174. [ $1 -eq 2 ] || exit 0
  175. eval `cat %{l_tmpfile}`; rm -f %{l_tmpfile}
  176. [ ".$kerberos_active" = .yes ] && %{l_rc} kerberos start
  177. exit 0
  178. %preun
  179. # before erase, stop service and remove log files
  180. [ $1 -eq 0 ] || exit 0
  181. %{l_rc} kerberos stop 2>/dev/null
  182. rm -f $RPM_INSTALL_PREFIX/var/kerberos/log/*.log >/dev/null 2>&1 || true
  183. rm -f $RPM_INSTALL_PREFIX/var/kerberos/run/*.pid >/dev/null 2>&1 || true
  184. rm -f $RPM_INSTALL_PREFIX/var/kerberos/db/* >/dev/null 2>&1 || true
  185. exit 0