lsh.spec 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. ##
  2. ## lsh.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 information
  26. Name: lsh
  27. Summary: GNU Secure Shell (SSH) Implementation
  28. URL: http://www.lysator.liu.se/~nisse/lsh/
  29. Vendor: Niels Möller
  30. Packager: The OpenPKG Project
  31. Distribution: OpenPKG
  32. Class: EVAL
  33. Group: Network
  34. License: GPL
  35. Version: 2.0
  36. Release: 20041209
  37. # list of sources
  38. Source0: ftp://ftp.lysator.liu.se/pub/security/lsh/lsh-%{version}.tar.gz
  39. Source1: rc.lsh
  40. Source2: fsl.lsh
  41. Source3: lsh.cfg
  42. # build information
  43. Prefix: %{l_prefix}
  44. BuildRoot: %{l_buildroot}
  45. BuildPreReq: OpenPKG, openpkg >= 20040130, make, gcc, m4
  46. PreReq: OpenPKG, openpkg >= 20040130
  47. BuildPreReq: gmp, liboop, zlib, readline
  48. PreReq: gmp, liboop, zlib, readline
  49. AutoReq: no
  50. AutoReqProv: no
  51. %description
  52. LSH is GNU's free implementation of the SSH version 2 protocol,
  53. currently being standardised by the IETF SECSH working group.
  54. %track
  55. prog lsh = {
  56. version = %{version}
  57. url = ftp://ftp.lysator.liu.se/pub/security/lsh/
  58. regex = lsh-(__VER__)\.tar\.gz
  59. }
  60. %prep
  61. %setup -q
  62. %build
  63. # configure program
  64. %{l_shtool} subst \
  65. -e 's;/var/run;%{l_prefix}/var/lsh;g' \
  66. -e 's;/var/spool/lsh;%{l_prefix}/var/lsh;g' \
  67. -e 's;/var/spool/lsh;%{l_prefix}/var/lsh;g' \
  68. src/daemon.c src/environ.h src/lsh-make-seed.c src/unix_random.c
  69. CC="%{l_cc}" \
  70. CFLAGS="%{l_cflags -O}" \
  71. CPPFLAGS="%{l_cppflags}" \
  72. LDFLAGS="%{l_ldflags}" \
  73. ./configure \
  74. --prefix=%{l_prefix} \
  75. --sysconfdir=%{l_prefix}/etc/lsh \
  76. --enable-tcp-forward \
  77. --enable-x11-forward \
  78. --enable-agent-forward \
  79. --enable-utmp \
  80. --enable-srp \
  81. --disable-gss \
  82. --disable-kerberos \
  83. --disable-pam \
  84. --disable-ipv6 \
  85. --disable-dependency-tracking
  86. # build program
  87. %{l_make} %{l_mflags -O}
  88. %install
  89. rm -rf $RPM_BUILD_ROOT
  90. # install program
  91. %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
  92. # strip down installation
  93. strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
  94. rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/nettle*
  95. rm -rf $RPM_BUILD_ROOT%{l_prefix}/include
  96. rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib
  97. rm -f $RPM_BUILD_ROOT%{l_prefix}/info/dir
  98. rm -f $RPM_BUILD_ROOT%{l_prefix}/info/nettle.info
  99. # resolve conflicts with other packages
  100. mv $RPM_BUILD_ROOT%{l_prefix}/sbin/sftp-server \
  101. $RPM_BUILD_ROOT%{l_prefix}/sbin/lsh-sftp-server
  102. mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/sftp-server.8 \
  103. $RPM_BUILD_ROOT%{l_prefix}/man/man8/lsh-sftp-server.8
  104. # install server configuration
  105. %{l_shtool} mkdir -f -p -m 755 \
  106. $RPM_BUILD_ROOT%{l_prefix}/etc/lsh
  107. %{l_shtool} install -c -m 644 %{l_value -s -a} \
  108. %{SOURCE lsh.cfg} $RPM_BUILD_ROOT%{l_prefix}/etc/lsh/
  109. # install run-command script
  110. %{l_shtool} mkdir -f -p -m 755 \
  111. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
  112. %{l_shtool} install -c -m 755 %{l_value -s -a} \
  113. %{SOURCE rc.lsh} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
  114. # install OSSP fsl configuration
  115. %{l_shtool} mkdir -f -p -m 755 \
  116. $RPM_BUILD_ROOT%{l_prefix}/etc/fsl
  117. %{l_shtool} install -c -m 644 %{l_value -s -a} \
  118. %{SOURCE fsl.lsh} $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
  119. # create data directory
  120. %{l_shtool} mkdir -f -p -m 755 \
  121. $RPM_BUILD_ROOT%{l_prefix}/var/lsh
  122. # determine installation files
  123. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
  124. %{l_files_std} \
  125. '%config %{l_prefix}/etc/lsh/*'
  126. %files -f files
  127. %clean
  128. rm -rf $RPM_BUILD_ROOT
  129. %post
  130. # generate server key
  131. if [ ! -f "$RPM_INSTALL_PREFIX/etc/lsh/lsh.key" -o \
  132. ! -s "$RPM_INSTALL_PREFIX/etc/lsh/lsh.key" ]; then
  133. echo "Generating LSH RSA host key:"
  134. $RPM_INSTALL_PREFIX/bin/lsh-make-seed --server --sloppy --quiet || true
  135. $RPM_INSTALL_PREFIX/bin/lsh-keygen --server | \
  136. $RPM_INSTALL_PREFIX/bin/lsh-writekey --server \
  137. -o $RPM_INSTALL_PREFIX/etc/lsh/lsh.key
  138. fi
  139. # after upgrade, restart service
  140. [ $1 -eq 2 ] || exit 0
  141. eval `%{l_rc} lsh status 2>/dev/null`
  142. [ ".$lsh_active" = .yes ] && %{l_rc} lsh restart
  143. exit 0
  144. %preun
  145. # before erase, stop service and remove log files
  146. [ $1 -eq 0 ] || exit 0
  147. %{l_rc} lsh stop 2>/dev/null
  148. rm -f $RPM_INSTALL_PREFIX/var/lsh/*
  149. exit 0