ispell.spec 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  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: 20040203
  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 = 3.2.06
  62. url = http://fmg-www.cs.ucla.edu/geoff/tars/
  63. regex = ispell-(__VER__)\.tar\.gz
  64. }
  65. prog ispell:igerman98 = {
  66. version = 20030222
  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 "#undef NO8BIT"
  94. echo "#define MASKBITS 64"
  95. echo "#define CC \"%{l_cc}\""
  96. echo "#define CFLAGS \"%{l_cflags -O}\""
  97. echo "#define BINDIR \"%{l_prefix}/bin\""
  98. echo "#define LIBDIR \"%{l_prefix}/share/ispell\""
  99. echo "#define MAN1DIR \"%{l_prefix}/man/man1\""
  100. echo "#define MAN4DIR \"%{l_prefix}/man/man4\""
  101. echo "#define WORDS \"$RPM_BUILD_DIR/words\""
  102. echo "#define YACC \"%{l_prefix}/bin/bison -y\""
  103. echo "#define TERMLIB \"$termlib\""
  104. case "%{l_platform -t}" in
  105. *-linux* | *-sunos* ) echo "#define USG" ;;
  106. esac
  107. # echo "#define LANGUAGES \"{american,MASTERDICTS=american.med+,HASHFILES=americanmed+.hash,EXTRADICT=$RPM_BUILD_DIR/words}\""
  108. ) >local.h
  109. # build package
  110. %{l_make} %{l_mflags}
  111. # build additional German dictionaries
  112. ( cd hk-deutsch
  113. cat worte.txt verben.txt \
  114. adjektive.txt klein.txt geographie.txt vornamen.txt \
  115. abkuerz.txt imperat.txt latein.txt informatik.txt \
  116. infoabk.txt elektronik.txt orgabk.txt marken.txt \
  117. alphabeta.txt roemisch.txt zusammen.txt | \
  118. sort -u >all.words
  119. ../buildhash all.words deutsch.aff deutsch.hash
  120. ) || exit $?
  121. ( cd igerman98-%{V_igerman98}
  122. %{l_shtool} subst \
  123. -e 's;/usr/bin/perl;%{l_prefix}/bin/perl;g' \
  124. bin/*.pl
  125. %{l_shtool} subst \
  126. -e 's;munchlist;../munchlist;g' \
  127. Makefile
  128. %{l_make} %{l_mflags} \
  129. UNSQ=cat BUILDHASH=`pwd`/../buildhash \
  130. german.hash 2>/dev/null
  131. ) || exit $?
  132. %install
  133. # install package
  134. rm -rf $RPM_BUILD_ROOT
  135. %{l_shtool} mkdir -f -p -m 755 \
  136. $RPM_BUILD_ROOT%{l_prefix}/bin \
  137. $RPM_BUILD_ROOT%{l_prefix}/man \
  138. $RPM_BUILD_ROOT%{l_prefix}/share/ispell
  139. ( echo "#define MINIMENU"
  140. echo "#undef NO8BIT"
  141. echo "#define MASKBITS 64"
  142. echo "#define CC \"%{l_cc}\""
  143. echo "#define CFLAGS \"%{l_cflags -O}\""
  144. echo "#define BINDIR \"$RPM_BUILD_ROOT%{l_prefix}/bin\""
  145. echo "#define LIBDIR \"$RPM_BUILD_ROOT%{l_prefix}/share/ispell\""
  146. echo "#define MAN1DIR \"$RPM_BUILD_ROOT%{l_prefix}/man/man1\""
  147. echo "#define MAN4DIR \"$RPM_BUILD_ROOT%{l_prefix}/man/man4\""
  148. echo "#define WORDS \"$RPM_BUILD_DIR/words\""
  149. # echo "#define LANGUAGES \"{american,MASTERDICTS=american.med+,HASHFILES=americanmed+.hash,EXTRADICT=$RPM_BUILD_DIR/words}\""
  150. ) >local.h
  151. %{l_make} %{l_mflags} \
  152. config.sh install-basic install-deformatters install-dictbuild install-languages
  153. # strip down installation
  154. strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
  155. rm -f $RPM_BUILD_ROOT%{l_prefix}/share/ispell/american*
  156. # install German dictionaries
  157. ( cd hk-deutsch
  158. %{l_shtool} install -c -m 644 \
  159. deutsch.aff $RPM_BUILD_ROOT%{l_prefix}/share/ispell/deutsch-old.aff
  160. %{l_shtool} install -c -m 644 \
  161. deutsch.hash $RPM_BUILD_ROOT%{l_prefix}/share/ispell/deutsch-old.hash
  162. ) || exit $?
  163. ( cd igerman98-%{V_igerman98}
  164. %{l_shtool} install -c -m 644 \
  165. german.aff $RPM_BUILD_ROOT%{l_prefix}/share/ispell/deutsch.aff
  166. %{l_shtool} install -c -m 644 \
  167. german.hash $RPM_BUILD_ROOT%{l_prefix}/share/ispell/deutsch.hash
  168. ) || exit $?
  169. # determine installation files
  170. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
  171. %files -f files
  172. %clean
  173. rm -rf $RPM_BUILD_ROOT