ispell.spec 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. ##
  2. ## ispell.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 versions
  26. %define V_ispell 3.2.06
  27. %define V_igerman98 20030222
  28. # package information
  29. Name: ispell
  30. Summary: Interactive Spell Checker
  31. URL: http://fmg-www.cs.ucla.edu/geoff/ispell.html
  32. Vendor: R.E. Gorin, Pace Willisson, Geoff Kuenning
  33. Packager: The OpenPKG Project
  34. Distribution: OpenPKG
  35. Class: BASE
  36. Group: Text
  37. License: BSD
  38. Version: %{V_ispell}
  39. Release: 20040520
  40. # list of sources
  41. Source0: http://fmg-www.cs.ucla.edu/geoff/tars/ispell-%{V_ispell}.tar.gz
  42. Source1: ftp://ftp.informatik.uni-kiel.de/pub/kiel/dicts/hk-deutsch.tar.gz
  43. Source2: http://lisa.goe.net/~bjacke/igerman98/dict/igerman98-%{V_igerman98}.tar.bz2
  44. Source3: ftp://ftp.openpkg.org/DST/ispell/words.gz
  45. Patch0: ispell.patch
  46. # build information
  47. Prefix: %{l_prefix}
  48. BuildRoot: %{l_buildroot}
  49. BuildPreReq: OpenPKG, openpkg >= 20040130, make, bison, perl
  50. PreReq: OpenPKG, openpkg >= 20040130
  51. AutoReq: no
  52. AutoReqProv: no
  53. %description
  54. Ispell is a fast screen-oriented spelling checker that shows you
  55. your errors in the context of the original file, and suggests
  56. possible corrections when it can figure them out. Compared to UNIX
  57. spell, it is faster and much easier to use. Ispell can also handle
  58. languages other than English.
  59. %track
  60. prog ispell = {
  61. version = %{version}
  62. url = http://fmg-www.cs.ucla.edu/geoff/tars/
  63. regex = ispell-(__VER__)\.tar\.gz
  64. }
  65. prog ispell:igerman98 = {
  66. version = %{V_igerman98}
  67. url = http://lisa.goe.net/~bjacke/igerman98/dict/
  68. regex = igerman98-(__VER__)\.tar\.bz2
  69. }
  70. %prep
  71. %setup -q
  72. %patch -p0
  73. # unpack Unix dictionary
  74. %{l_gzip} -d -c %{SOURCE words.gz} >$RPM_BUILD_DIR/words
  75. # unpack German dictionaries
  76. mkdir hk-deutsch
  77. ( cd hk-deutsch
  78. %{l_gzip} -d -c %{SOURCE hk-deutsch.tar.gz} | %{l_tar} xf -
  79. ) || exit $?
  80. %{l_bzip2} -d -c %{SOURCE igerman98-%{V_igerman98}.tar.bz2} | %{l_tar} xf -
  81. %build
  82. # configure package
  83. # kludge: determine whether vendor termcap, termlib or curses library exists
  84. # reason: some brain-dead platforms (like SuSE, etc) have no termcap library installed.
  85. termlib=""
  86. echo "int main(int argc, char *argv[]) { return 0; }" >dummy.c
  87. for lib in termcap termlib curses ncurses; do
  88. rc=0; %{l_cc} -o dummy dummy.c -l$lib >/dev/null 2>&1 || rc=1
  89. if [ $rc -eq 0 ]; then termlib="-l$lib"; break; fi
  90. done
  91. [ ".$termlib" = . ] && exit 1
  92. ( echo "#define MINIMENU"
  93. echo "#define MASKBITS 64"
  94. echo "#define CC \"%{l_cc}\""
  95. echo "#define CFLAGS \"%{l_cflags -O}\""
  96. echo "#define BINDIR \"%{l_prefix}/bin\""
  97. echo "#define LIBDIR \"%{l_prefix}/share/ispell\""
  98. echo "#define MAN1DIR \"%{l_prefix}/man/man1\""
  99. echo "#define MAN4DIR \"%{l_prefix}/man/man4\""
  100. echo "#define WORDS \"$RPM_BUILD_DIR/words\""
  101. echo "#define YACC \"%{l_prefix}/bin/bison -y\""
  102. echo "#define TERMLIB \"$termlib\""
  103. case "%{l_platform -t}" in
  104. *-linux* | *-sunos* ) echo "#define USG" ;;
  105. esac
  106. # echo "#define LANGUAGES \"{american,MASTERDICTS=american.med+,HASHFILES=americanmed+.hash,EXTRADICT=$RPM_BUILD_DIR/words}\""
  107. ) >local.h
  108. # build package
  109. %{l_make} %{l_mflags}
  110. # build additional German dictionaries
  111. ( cd hk-deutsch
  112. cat worte.txt verben.txt \
  113. adjektive.txt klein.txt geographie.txt vornamen.txt \
  114. abkuerz.txt imperat.txt latein.txt informatik.txt \
  115. infoabk.txt elektronik.txt orgabk.txt marken.txt \
  116. alphabeta.txt roemisch.txt zusammen.txt | \
  117. sort -u >all.words
  118. ../buildhash all.words deutsch.aff deutsch.hash
  119. ) || exit $?
  120. ( cd igerman98-%{V_igerman98}
  121. %{l_shtool} subst \
  122. -e 's;/usr/bin/perl;%{l_prefix}/bin/perl;g' \
  123. bin/*.pl
  124. %{l_shtool} subst \
  125. -e 's;munchlist;../munchlist;g' \
  126. Makefile
  127. %{l_make} %{l_mflags} \
  128. UNSQ=cat BUILDHASH=`pwd`/../buildhash \
  129. german.hash 2>/dev/null
  130. ) || exit $?
  131. %install
  132. # install package
  133. rm -rf $RPM_BUILD_ROOT
  134. %{l_shtool} mkdir -f -p -m 755 \
  135. $RPM_BUILD_ROOT%{l_prefix}/bin \
  136. $RPM_BUILD_ROOT%{l_prefix}/man \
  137. $RPM_BUILD_ROOT%{l_prefix}/share/ispell
  138. ( echo "#define MINIMENU"
  139. echo "#define MASKBITS 64"
  140. echo "#define CC \"%{l_cc}\""
  141. echo "#define CFLAGS \"%{l_cflags -O}\""
  142. echo "#define BINDIR \"$RPM_BUILD_ROOT%{l_prefix}/bin\""
  143. echo "#define LIBDIR \"$RPM_BUILD_ROOT%{l_prefix}/share/ispell\""
  144. echo "#define MAN1DIR \"$RPM_BUILD_ROOT%{l_prefix}/man/man1\""
  145. echo "#define MAN4DIR \"$RPM_BUILD_ROOT%{l_prefix}/man/man4\""
  146. echo "#define WORDS \"$RPM_BUILD_DIR/words\""
  147. # echo "#define LANGUAGES \"{american,MASTERDICTS=american.med+,HASHFILES=americanmed+.hash,EXTRADICT=$RPM_BUILD_DIR/words}\""
  148. ) >local.h
  149. %{l_make} %{l_mflags} \
  150. config.sh install-basic install-deformatters install-dictbuild install-languages
  151. # strip down installation
  152. strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
  153. rm -f $RPM_BUILD_ROOT%{l_prefix}/share/ispell/american*
  154. # install German dictionaries
  155. ( cd hk-deutsch
  156. %{l_shtool} install -c -m 644 \
  157. deutsch.aff $RPM_BUILD_ROOT%{l_prefix}/share/ispell/deutsch-old.aff
  158. %{l_shtool} install -c -m 644 \
  159. deutsch.hash $RPM_BUILD_ROOT%{l_prefix}/share/ispell/deutsch-old.hash
  160. ) || exit $?
  161. ( cd igerman98-%{V_igerman98}
  162. %{l_shtool} install -c -m 644 \
  163. german.aff $RPM_BUILD_ROOT%{l_prefix}/share/ispell/deutsch.aff
  164. %{l_shtool} install -c -m 644 \
  165. german.hash $RPM_BUILD_ROOT%{l_prefix}/share/ispell/deutsch.hash
  166. ) || exit $?
  167. # determine installation files
  168. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
  169. %files -f files
  170. %clean
  171. rm -rf $RPM_BUILD_ROOT