ispell.spec 6.9 KB

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