Made hspell be shared library, thanks for KDE herd for the help, as part of bug#152818
authorAlon Bar-Lev <alonbl@gentoo.org>
Fri, 27 Oct 2006 01:46:05 +0000 (01:46 +0000)
committerAlon Bar-Lev <alonbl@gentoo.org>
Fri, 27 Oct 2006 01:46:05 +0000 (01:46 +0000)
Package-Manager: portage-2.1.1

app-text/hspell/ChangeLog
app-text/hspell/Manifest
app-text/hspell/files/digest-hspell-1.0-r1 [new file with mode: 0644]
app-text/hspell/files/hspell-1.0-shared.patch [new file with mode: 0644]
app-text/hspell/hspell-1.0-r1.ebuild [new file with mode: 0644]

index edbab00c2a200f498b8dec2cce5d4113322d1991..549508c710e7ff36adec19f3bc9fee6774fb30ad 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for app-text/hspell
 # Copyright 2000-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-text/hspell/ChangeLog,v 1.18 2006/10/06 13:49:45 alonbl Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-text/hspell/ChangeLog,v 1.19 2006/10/27 01:46:05 alonbl Exp $
+
+*hspell-1.0-r1 (27 Oct 2006)
+
+  27 Oct 2006; Alon Bar-Lev <alonbl@gentoo.org>
+  +files/hspell-1.0-shared.patch, +hspell-1.0-r1.ebuild:
+  Made hspell be shared library, thanks for KDE herd for the help, as part of
+  bug#152818
 
   05 Oct 2006; Alon Bar-Lev <alonbl@gentoo.org> metadata.xml:
   Adding my-self as primary maintainer to metadata.xml (see bug#77751).
index 4c3e20bcd4a3a0f6325f3637b0e61cb479989632..3d4a409098e425ee89a5f45153a93eca0f5485c3 100644 (file)
@@ -1,3 +1,7 @@
+AUX hspell-1.0-shared.patch 19790 RMD160 f430d7f09bdd6d6957cf54d06f5e1071ca4fc31c SHA1 054baa2eb2a8f8d31931293c7ab136b6cd74efa7 SHA256 6263cab50f514dca4e1a65065a5cd7365469cc54475d8a7768bbda5c63052613
+MD5 986fba9b7bf025fdbaf7bcb1a862e468 files/hspell-1.0-shared.patch 19790
+RMD160 f430d7f09bdd6d6957cf54d06f5e1071ca4fc31c files/hspell-1.0-shared.patch 19790
+SHA256 6263cab50f514dca4e1a65065a5cd7365469cc54475d8a7768bbda5c63052613 files/hspell-1.0-shared.patch 19790
 DIST hspell-0.4.tar.gz 99850 RMD160 a706835b2d2904a3be4847905d68860978dffa9c SHA1 46d73d2bf80e662270a3a6bdad6e27b185a7e5b1 SHA256 23aa57711d4b03fbfec7b74aec6429995d4dc2bc1c406ac3ce17688467c1ccfa
 DIST hspell-0.5.tar.gz 116306 RMD160 1270f9332d0f721369baef1cc7896d4a310d0a37 SHA1 e2474b6c78f8a3e161cf963a2f28ecb161a18664 SHA256 178e0d0eb4a90ceeb3a0a54dcd75c1a6d37c309e26622d0cd05dd132d10e15d6
 DIST hspell-0.6.tar.gz 151705 RMD160 fc80872e005bd12334383cf97d92ba2ded5d6e2c SHA1 d30b48406b6fec55862e54b6a4a7d42fedae5777 SHA256 495f011d317918683ba63d3ec3f6f2bf8224a7288f5db453f38bb81e07eccff0
@@ -19,14 +23,18 @@ EBUILD hspell-0.7.ebuild 726 RMD160 6812439b3151ccc8ed86d708c26de573edfb3569 SHA
 MD5 116e60b2f1178489238efe3e63a22801 hspell-0.7.ebuild 726
 RMD160 6812439b3151ccc8ed86d708c26de573edfb3569 hspell-0.7.ebuild 726
 SHA256 6592960727ef6d42efa1de7d6ffb335c3da114ba58c3fbd57bfabf6ba1553a0f hspell-0.7.ebuild 726
+EBUILD hspell-1.0-r1.ebuild 845 RMD160 a28e3f53ab445026b09ba0388f06f26e99f61b34 SHA1 53391c3de26614fe3751e27acb3eb47d005b80ba SHA256 c30eacd5078ef3ba44eaf41256ff35913d4206186bff8210a30f4bf25ba8e1c0
+MD5 844561ef030fba86076a23095c0c75e3 hspell-1.0-r1.ebuild 845
+RMD160 a28e3f53ab445026b09ba0388f06f26e99f61b34 hspell-1.0-r1.ebuild 845
+SHA256 c30eacd5078ef3ba44eaf41256ff35913d4206186bff8210a30f4bf25ba8e1c0 hspell-1.0-r1.ebuild 845
 EBUILD hspell-1.0.ebuild 837 RMD160 fe880b10c78f08d845a1e95b386106facd2f4806 SHA1 ccfb10c42e1d9281c8130efe879abfd5408f4475 SHA256 3b80b9ffccbe82850b72cc152c3406fd7fe46f62ce1da3fd29af2d62634a1485
 MD5 736aad81a54f0990a69aa6e544671e37 hspell-1.0.ebuild 837
 RMD160 fe880b10c78f08d845a1e95b386106facd2f4806 hspell-1.0.ebuild 837
 SHA256 3b80b9ffccbe82850b72cc152c3406fd7fe46f62ce1da3fd29af2d62634a1485 hspell-1.0.ebuild 837
-MISC ChangeLog 2062 RMD160 30c6241e2e993d4dc9207d884c010fcf59a5eb39 SHA1 3ca3fac212852a4351fa0698fc66bd533ff9ce9a SHA256 5e214e8795dd714c193262fe614029f7c8c0e3ba5ce1703284433af233dd06a3
-MD5 a149ac64061e7ed4e8baa6a0e52f57a5 ChangeLog 2062
-RMD160 30c6241e2e993d4dc9207d884c010fcf59a5eb39 ChangeLog 2062
-SHA256 5e214e8795dd714c193262fe614029f7c8c0e3ba5ce1703284433af233dd06a3 ChangeLog 2062
+MISC ChangeLog 2289 RMD160 d827f720216b0dfa6dec214f478424f9ced61c12 SHA1 2fe9cb49ac09cdc8f63312ce759ee37d28052656 SHA256 46009b701a1d731daaa9b1161220e2fa2217510bc1c7e18fb3ed483ae102fb31
+MD5 b43a33450619ac7e6a8ee984833d0514 ChangeLog 2289
+RMD160 d827f720216b0dfa6dec214f478424f9ced61c12 ChangeLog 2289
+SHA256 46009b701a1d731daaa9b1161220e2fa2217510bc1c7e18fb3ed483ae102fb31 ChangeLog 2289
 MISC metadata.xml 453 RMD160 e42b374ff5471ca99460e11a5843377a1d0c6d2e SHA1 625e098e69b764c1141d41fe080b9f78d7e01812 SHA256 1688214ac356bee512119757e424d262c0cb8d2bcfd06b129a110cb82788e870
 MD5 ee37654a6fd895a8008e4c8afd3d4fb7 metadata.xml 453
 RMD160 e42b374ff5471ca99460e11a5843377a1d0c6d2e metadata.xml 453
@@ -46,3 +54,6 @@ SHA256 150ee9df2ed34374a2cd073a469356bde048545df7f1cc57f675a77b54cdd1ed files/di
 MD5 f944a04a90a778befcc81cf8bcf72a01 files/digest-hspell-1.0 232
 RMD160 8e63678d5f16b9dbf0dfc38ceb0241cb0bb428cf files/digest-hspell-1.0 232
 SHA256 81c9963b984a0a91006a88f921b1fd21d2f94f8d8f3fbc2f243fd62a51a05417 files/digest-hspell-1.0 232
+MD5 f944a04a90a778befcc81cf8bcf72a01 files/digest-hspell-1.0-r1 232
+RMD160 8e63678d5f16b9dbf0dfc38ceb0241cb0bb428cf files/digest-hspell-1.0-r1 232
+SHA256 81c9963b984a0a91006a88f921b1fd21d2f94f8d8f3fbc2f243fd62a51a05417 files/digest-hspell-1.0-r1 232
diff --git a/app-text/hspell/files/digest-hspell-1.0-r1 b/app-text/hspell/files/digest-hspell-1.0-r1
new file mode 100644 (file)
index 0000000..7aa7e0e
--- /dev/null
@@ -0,0 +1,3 @@
+MD5 3e12fa383c2cfd430918d115f33f9841 hspell-1.0.tar.gz 292215
+RMD160 f4a4ce05650e3b658cc9cc5cfba8a9280b598718 hspell-1.0.tar.gz 292215
+SHA256 19919d8aea49f37277f82b090ddf81fbedf3cc693f3eaf034dddf8a3bddc2e50 hspell-1.0.tar.gz 292215
diff --git a/app-text/hspell/files/hspell-1.0-shared.patch b/app-text/hspell/files/hspell-1.0-shared.patch
new file mode 100644 (file)
index 0000000..a390e28
--- /dev/null
@@ -0,0 +1,478 @@
+diff -urNp hspell-1.0.org/binarize-desc.pl hspell-1.0/binarize-desc.pl
+--- hspell-1.0.org/binarize-desc.pl    2005-01-11 17:45:00.000000000 +0200
++++ hspell-1.0/binarize-desc.pl        2006-10-27 00:13:06.000000000 +0200
+@@ -202,9 +202,9 @@ while(<>){
+       $c++;
+       print STDERR "#" if !($c%1000);
+ }
+-print STDERR "\ncreate dmask.c...\n";
++print STDERR "\ncreate dmask.c.h...\n";
+-open(DESC_C,">dmask.c") or die "cannot create dmask.c\n";
++open(DESC_C,">dmask.c.h") or die "cannot create dmask.c.h\n";
+ print DESC_C "/* This file is automatically generated by binarize-desc.pl.\n".
+            "   DO NOT EDIT THIS FILE DIRECTLY!\n*/\n";
+ print DESC_C "int dmasks[] = {\n";
+diff -urNp hspell-1.0.org/configure.in hspell-1.0/configure.in
+--- hspell-1.0.org/configure.in        2004-12-06 23:01:49.000000000 +0200
++++ hspell-1.0/configure.in    2006-10-27 01:53:44.000000000 +0200
+@@ -1,16 +1,33 @@
+ dnl Process this file with autoconf to produce Hspell's configure script.
++AC_INIT(hspell, 1.0, 
++      [http://www.ivrix.org.il/bugzilla/enter_bug.cgi?product=Hspell])
++
+ dnl "wolig.dat" is any file in the source directory, used to check we're in
+ dnl the right directory.
+-AC_INIT(wolig.dat)
++AC_CONFIG_SRCDIR(wolig.dat)
++
++AM_INIT_AUTOMAKE
+-dnl this alows us to use $(MAKE) in the makefile, even if our make program
+-dnl doesn't support this variable. This requires putting @SET_MAKE@ in the
+-dnl Makefile.in
+-AC_PROG_MAKE_SET
++AC_PROG_LIBTOOL
+-AC_PROG_CC
+-dnl AC_PROG_INSTALL
++dnl Libtool versioning (CURRENT:REVISION:AGE)
++dnl 1. Start with version information of 0:0:0 for each libtool library.
++dnl 2. Update the version information only immediately before a public
++dnl    release of your software. More frequent updates are unnecessary, and
++dnl    only guarantee that the current interface number gets larger faster.
++dnl 3. If the library source code has changed at all since the last
++dnl    update, then increment revision (c:r:a becomes c:r+1:a).
++dnl 4. If any interfaces have been added, removed, or changed since the
++dnl    last update, increment current, and set revision to 0.
++dnl 5. If any interfaces have been added since the last public release,
++dnl    then increment age.
++dnl 6. If any interfaces have been removed since the last public release,
++dnl    then set age to 0. 
++dnl
++dnl http://www.gnu.org/software/libtool/manual.html#Updating-version-info
++LT_VERSION_INFO="-version-info 1:0:0"
++AC_SUBST(LT_VERSION_INFO)
+ dnl Hspell uses the "inline" keyword, always as "static inline". Some old C
+ dnl compilers (such as the one on Solaris 8!) still don't have inline, so we
+@@ -22,12 +39,15 @@ AC_C_CONST
+ dnl TODO: remove -g from CFLAGS and add -s to LDFLAGS
+ AC_PATH_PROG([PERL], [perl])
++AC_PATH_PROG([GZIP], [gzip])
++AC_PATH_PROG([AWK], [awk])
+ dnl Check for libraries.
+ AC_CHECK_LIB([z],[gzread],
+- [AC_CHECK_HEADER([zlib.h],[AC_DEFINE(HAVE_ZLIB) LIBS="-lz $LIBS"],
++ [AC_CHECK_HEADER([zlib.h],[AC_DEFINE(HAVE_ZLIB) LIBS="$LIBS -lz" ZLIB_LIBS="-lz"],
+     [AC_MSG_RESULT([No Zlib header, defaulting to using pipes])])],
+  [AC_MSG_RESULT([No Zlib library, defaulting to using pipes])])
++AC_SUBST(ZLIB_LIBS)
+ dnl Allow the builder to enable or disable certain features of Hspell,
+ dnl and/or build or not build certain things.
+@@ -37,11 +57,6 @@ dnl "make clean" is done!
+ AC_MSG_NOTICE([Checking features selected by user (see configure --help)...])
+-dnl Our TARGETS variable chooses what to compile. Some things are
+-dnl optionally compiled depending on --enable-* paramters to configure.
+-TARGETS="hebrew.wgz.sizes hspell"
+-AC_SUBST(TARGETS)
+-
+ dnl "fatverb" optional feature: (--enable-fatverb)
+ dnl Determines whether or not to build about 150,000 additional rare verb
+ dnl forms (known as objective kinuyim).
+@@ -63,25 +78,6 @@ else
+ fi
+ AC_SUBST(SEDCMD)
+-dnl "aspell" optional feature: (--enable-aspell)
+-dnl Builds data files - he_affix.dat and he.wl - needed by Aspell to do
+-dnl spell-checking of Hebrew.
+-
+-dnl NOTE: This configuration parameter is deprecated. There is no point
+-dnl in using it, instead of doing normal "configure" followed by "make aspell".
+-
+-AC_ARG_ENABLE([aspell],
+-      AC_HELP_STRING([--enable-aspell],[Build data files - he_affix.dat
+-        and he.wl - suitable for use as Aspell 0.6 dictionary for Hebrew.]),
+-      [ac_opt_aspell=$enable_aspell], [ac_opt_aspell=no])
+-
+-if test x$ac_opt_aspell = xyes
+-then
+-      AC_MSG_NOTICE([Feature aspell enabled (building he_affix.dat, he.wl).])
+-      TARGETS="$TARGETS aspell"
+-else
+-      AC_MSG_NOTICE([Feature aspell disabled (not building aspell files).])
+-fi
+ dnl "linginfo" optional feature: (--enable-linginfo)
+ dnl Include a full morphological analyzer in "hspell -l". Note that this
+@@ -95,20 +91,14 @@ AC_ARG_ENABLE([linginfo],
+         4 times larger, but doesn't slow Hspell if "-l" isn't used.]),
+       [ac_opt_linginfo=$enable_linginfo], [ac_opt_linginfo=no])
+-EXTRAOBJECTS=
+ if test x$ac_opt_linginfo = xyes
+ then
+       AC_MSG_NOTICE([Feature linginfo enabled (morphological analyzer).])
+       AC_DEFINE(USE_LINGINFO)
+-      EXTRAOBJECTS="linginfo.o"
+-# note that linginfo_data should be done first, because it currently builds
+-# some of the normal things (like hebrew.wgz) in a different way (using
+-# pack-desc, not pmerge). This is ugly, and should be fixed.
+-      TARGETS="linginfo_data $TARGETS"
+ else
+       AC_MSG_NOTICE([Feature linginfo disabled (no morphological analyzer).])
+ fi
+-AC_SUBST(EXTRAOBJECTS)
++AM_CONDITIONAL(ENABLE_LINGINFO, test x$ac_opt_linginfo = xyes)
+ dnl "test" optional feature: (--enable-test)
+ dnl Compile a testing binary. Currently the only thing that this does is
+@@ -127,9 +117,10 @@ then
+       AC_MSG_NOTICE([Feature test enabled (USES DICTIONARY IN CURRENT DIRECTORY!!!).])
+       DICTBASE='./hebrew.wgz'
+ else
+-      DICTBASE='$(SHARE)/hebrew.wgz'
++      DICTBASE='$(pkgdatadir)/hebrew.wgz'
+ fi
+ AC_SUBST(DICTBASE)
+-AC_OUTPUT(Makefile)
++AC_CONFIG_FILES([Makefile hspell.pc])
++AC_OUTPUT
+diff -urNp hspell-1.0.org/hspell.pc.in hspell-1.0/hspell.pc.in
+--- hspell-1.0.org/hspell.pc.in        1970-01-01 02:00:00.000000000 +0200
++++ hspell-1.0/hspell.pc.in    2006-10-27 00:03:28.000000000 +0200
+@@ -0,0 +1,10 @@
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++libdir=@libdir@
++includedir=@includedir@
++
++Name: Hspell
++Description: Hebrew spell-checker library
++Version: @PACKAGE_VERSION@
++Cflags: -I${includedir}
++Libs: -L${libdir} -lhspell @ZLIB_LIBS@
+diff -urNp hspell-1.0.org/libhspell.c hspell-1.0/libhspell.c
+--- hspell-1.0.org/libhspell.c 2006-05-04 22:59:37.000000000 +0300
++++ hspell-1.0/libhspell.c     2006-10-27 00:21:06.000000000 +0200
+@@ -75,7 +75,7 @@ load_data(struct dict_radix **dictp)
+  * genprefixes.pl program.
+  */
+-#include "prefixes.c"
++#include "prefixes.c.h"
+ struct prefix_node {
+       /* if a prefix has a certain 'mask', and lookup on a word returns
+diff -urNp hspell-1.0.org/linginfo.c hspell-1.0/linginfo.c
+--- hspell-1.0.org/linginfo.c  2004-09-08 10:11:19.000000000 +0300
++++ hspell-1.0/linginfo.c      2006-10-27 01:05:49.000000000 +0200
+@@ -5,7 +5,7 @@
+ #include <string.h>
+ #include "linginfo.h"
+-#include "dmask.c"
++#include "dmask.c.h"
+ /* For an explanation of this bizarre set of definitions, see the comment
+diff -urNp hspell-1.0.org/ltmain.sh hspell-1.0/ltmain.sh
+diff -urNp hspell-1.0.org/Makefile.am hspell-1.0/Makefile.am
+--- hspell-1.0.org/Makefile.am 1970-01-01 02:00:00.000000000 +0200
++++ hspell-1.0/Makefile.am     2006-10-27 01:57:09.000000000 +0200
+@@ -0,0 +1,257 @@
++
++#
++# EXTRIMLY important
++# UTF will not work!!!
++#
++LC_ALL=C
++LC_CTYPE=C
++LC_COLLATE=C
++
++INCLUDES = -DDICTIONARY_BASE=\"$(DICTBASE)\" -I.
++
++if ENABLE_LINGINFO
++linginfo_sources = linginfo.c
++linginfo_deps = dmask.c.h
++linginfo_data = hebrew.wgz.stems hebrew.wgz.desc
++else
++linginfo_sources =
++linginfo_deps    =
++linginfo_data    =
++endif
++
++BUILT_SOURCES = prefixes.c.h $(linginfo_deps)
++
++lib_LTLIBRARIES = libhspell.la
++nodist_libhspell_la_SOURCES = prefixes.c.h $(linginfo_deps)
++libhspell_la_SOURCES = dict_radix.c gimatria.c corlist.c libhspell.c $(linginfo_sources)
++libhspell_la_LDFLAGS = $(LT_VERSION_INFO) -no-undefined
++
++dist_bin_SCRIPTS = multispell
++dist_man_MANS = hspell.1 hspell.3
++bin_PROGRAMS = hspell
++hspell_SOURCES = hspell.c tclHash.c
++hspell_LDADD = libhspell.la
++
++include_HEADERS = hspell.h linginfo.h
++
++pkgdata_DATA = hebrew.wgz hebrew.wgz.hints hebrew.wgz.prefixes hebrew.wgz.sizes $(linginfo_data)
++
++pkgconfigdir = $(libdir)/pkgconfig
++pkgconfig_DATA = hspell.pc
++
++noinst_PROGRAMS = find_sizes specfilter mk_he_affix wunzip
++find_sizes_SOURCES = find_sizes.c dict_radix.c
++find_sizes_CFLAGS = $(AM_CFLAGS)
++specfilter_SOURCES = specfilter.c
++specfilter_DEPENDENCIES = prefixes.c.h
++mk_he_affix_SOURCES = mk_he_affix.c
++mk_he_affix_DEPENDENCIES = prefixes.c.h
++wunzip_SOURCES = wunzip.c
++
++noinst_HEADERS = dict_radix.h gzbuffered.h hash.h tclHash.h
++
++install-exec-hook:
++      -$(LN_S) hspell$(EXEEXT) $(DESTDIR)$(bindir)/hspell-i
++
++CLEANFILES = out.nouns out.verbs out.nouns-shemp hspell.pl_full \
++      hspell.pl_wzip wunzip wordlist.wgz shemp.dat \
++      hebrew.wgz hebrew.wgz.sizes hebrew.wgz.prefixes \
++      dout.nouns.shemp.gz shemp.dat dout.nouns.wolig.gz dout.verbs.gz \
++      prefixes.c.h hebrew.wgz.desc hebrew.wgz.stems he_affix.dat \
++      he.wl mk_he_affix hebrew.wgz.lingsizes.tmp dmask.c.h install.js \
++      spell-he.xpi he.dic he.aff README-he.txt \
++      README_he_IL.txt he_IL.dic he_IL.aff he_IL.zip \
++      hebeng/install.js hebeng/heb-eng.aff hebeng/heb-eng.dic \
++      hebeng/README-he.txt hebeng/README-en-US.txt \
++      hebeng/spell-heb-eng.xpi
++
++EXTRA_DIST = COPYING INSTALL LICENSE README TODO WHATSNEW \
++      stats wzip wolig.pl wolig.dat biza-nouns milot extrawords \
++      woo woo.dat biza-verbs likelyerrors spellinghints \
++      pmerge PrefixBits.pl genprefixes.pl binarize-desc.pl pack-desc.pl \
++      install.js.pre hspell.pc.in
++
++############################### special rules ###############################
++
++prefixes.c.h: genprefixes.pl
++      $(PERL) -I. -w $< > $@
++
++hebrew.wgz.hints: spellinghints
++      $(GZIP) -9 < $< > $@
++
++GZDICTS=dout.nouns.wolig.gz dout.verbs.gz dout.nouns.shemp.gz
++DICTS=milot extrawords biza-verbs biza-nouns
++
++# hebrew.wgz contains all the words without any prefix hints like B,L,+ we
++#   previously had. 
++# hebrew.wgz.prefixes is the prefix hints (one byte per word, compressed).
++# hebrew.wgz.sizes contains the memory sizes that reading hebrew.wgz will
++#   require (this makes it easier for hspell to preallocate the needed sizes).
++hebrew.wgz hebrew.wgz.prefixes: $(DICTS) $(GZDICTS)
++      ($(GZIP) -dc $(GZDICTS); cat $(DICTS)) | $(PERL) -I. -- pmerge -p hebrew.wgz.tmp | $(AWK) -f wzip | $(GZIP) -9 > hebrew.wgz
++      $(GZIP) -9 < hebrew.wgz.tmp >hebrew.wgz.prefixes
++      -rm -f hebrew.wgz.tmp
++hebrew.wgz.sizes: hebrew.wgz find_sizes$(EXEEXT)
++      $(GZIP) -dc hebrew.wgz | ./find_sizes >hebrew.wgz.sizes
++
++###################################### optional linginfo stuff ##############
++# hebrew.wgz contains all the words without any prefix hints like B,L,+ we
++#   previously had. 
++# hebrew.wgz.prefixes is the prefix hints (one byte per word, compressed).
++# hebrew.wgz.sizes contains the memory sizes that reading hebrew.wgz will
++#   require (this makes it easier for hspell to preallocate the needed sizes).
++# dmask.c contains an array of all possible values of the description bitmask.
++#   It is generated by pack-desc.pl. This array is not too long (no more than
++#   300 for the default dictionary).
++#
++# In the following long rule, the complete list of all words with linguistic
++# details is concatanated and sent to binarize-desc.pl, which converts the
++# detail information of each word into bitmap (called dmask), produces a
++# spesifier that tell which prefixes are accepted with the word, and writes its
++# stem. Then the words list is sorted, packed (a-la uniq), and the output files
++# are written.
++
++# TODO: make pack-desc.pl/binarize-desc.pl and pmerge into just one script
++# (with options on whether to generate stems, etc.), and then we won't have
++# this ugliness of two different rules generating hebrew.wgz in two ways
++# (this is not only ugly, it's unsafe. If we use linginfo (--enable-linginfo
++# and change, say, "extrawords", and run "make hebrew.wgz" we will get the
++# wrong program run. "make" will work properly because we stick an extra
++# target in front of the default targets.
++#
++
++hebrew.wgz.desc hebrew.wgz.stems hebrew.wgz.lingsizes.tmp dmask.c.h: $(DICTS) $(GZDICTS) find_sizes$(EXEEXT)
++      ($(GZIP) -dc $(GZDICTS); cat $(DICTS)) | \
++              $(PERL) "-I." binarize-desc.pl | \
++              sort -u | \
++              $(PERL) "-I." pack-desc.pl -p hebrew.wgz.prefixes.tmp \
++                      -d hebrew.wgz.desc.tmp -s hebrew.wgz.stems.tmp \
++                      -l hebrew.wgz.lingsizes.tmp | \
++              $(AWK) -f wzip | \
++              $(GZIP) -9 > hebrew.wgz
++      $(GZIP) -dc hebrew.wgz | ./find_sizes >hebrew.wgz.sizes
++      cat hebrew.wgz.lingsizes.tmp >> hebrew.wgz.sizes
++      -rm -f hebrew.wgz.prefixes
++      -rm -f hebrew.wgz.lingsizes.tmp
++      $(GZIP) -9 < hebrew.wgz.prefixes.tmp >hebrew.wgz.prefixes
++      -rm -f hebrew.wgz.prefixes.tmp
++      -rm -f hebrew.wgz.desc
++      $(GZIP) -9 < hebrew.wgz.desc.tmp >hebrew.wgz.desc
++      -rm -f hebrew.wgz.desc.tmp
++      -rm -f hebrew.wgz.stems
++      $(GZIP) -9 < hebrew.wgz.stems.tmp >hebrew.wgz.stems
++      -rm -f hebrew.wgz.stems.tmp
++############################################################################
++
++
++# dout.* are the outputs from the various word-list generators with the
++# -d option (i.e., with an explanation on how each word was derived)
++#
++# The dout files are quite large, as much as 10MB. To lower the amount
++# of temporary space needed during compilation (is this necessary nowadays?)
++# we compress them.
++dout.nouns.%:  %.dat
++      $(PERL) -I. -w wolig.pl -d $< > $@
++dout.nouns.%.gz:  %.dat
++      $(PERL) -I. -w wolig.pl -d $< | $(GZIP) -4 > $@
++dout.nouns.shemp.gz:  shemp.dat
++      $(PERL) -I. -w wolig.pl -d shemp.dat | $(GZIP) -4 > $@
++
++# We need two rules here, and not just two targets for one rule, to make
++# parallel make work correctly. See bug 78 in the bugzilla for more info.
++dout.verbs.gz:
++      $(PERL) -I. -w woo -d woo.dat | sed "$(SEDCMD)" | $(GZIP) -4 > $@
++shemp.dat: dout.verbs.gz
++
++############################################################################
++# The following targets build packages of Hspell's word list in formats
++# required for other spell-checkers like Aspell and Myspell. They are not
++# necessary for building Hspell.
++############################################################################
++
++# The "aspell" target generates the "he_affix.dat" and "he.wl" files needed
++# for using aspell 0.6 with Hspell's Hebrew word list.
++aspell: he_affix.dat he.wl
++mk_he_affix.o: prefixes.c.h
++he_affix.dat he.wl: mk_he_affix$(EXEEXT) wunzip$(EXEEXT) hebrew.wgz hebrew.wgz.prefixes specfilter$(EXEEXT)
++      ./mk_he_affix > he.wl
++
++# The "myspell" target generates the "he.dic" and "he.aff" files needed
++# for using Hspell's Hebrew word list in myspell. Myspell is the spell-
++# checking library used in both Mozilla and OpenOffice, and its format is
++# very similar to the uncompressed aspell dictionary format.
++myspell: he.dic he.aff
++he.dic he.aff: he_affix.dat he.wl
++      cat he.wl | wc -l > he.dic
++      cat he.wl >> he.dic
++      echo SET ISO8859-8 > he.aff
++      echo TRY éåäàòçë÷\'\"ùñæãâáøðîèöúôíóêõïì >> he.aff
++      cat he_affix.dat >> he.aff
++
++# The "mozilla" target generates a ".xpi" file, which is basically a zip
++# file containing the dictionaries in Myspell format (similar to the
++# uncompressed aspell dictionary format).
++mozilla: spell-he.xpi
++spell-he.xpi: he.dic he.aff install.js README
++      rm -f README-he.txt spell-he.xpi
++      cp README README-he.txt
++      zip spell-he.xpi install.js README-he.txt he.aff he.dic
++install.js:
++      sed "s/%VERSION%/$(VERSION)/g; s/%DISPLAY_NAME%/Hebrew (IL) dictionary/g; s/%APP_NAME%/spell-he/g" < install.js.pre > install.js
++
++# The "heb-eng-xpi" target generates, like the "mozilla" target, an xpi
++# file. But instead of taking only the Hebrew word list, it merges our
++# Hebrew word list with another English word list. This is useful in software
++# (like Mozilla) which doesn't support multiple dictionaries at the same time,
++# but a typical user still wants to check mixed-language documents.
++hebeng:
++      mkdir hebeng
++en-US.dic en-US.aff README-en-US.txt:
++      echo \*\*\* Please link to the english dictionary files $@
++      false
++hebeng/install.js: hebeng install.js.pre
++      sed "s/%VERSION%/$(VERSION)/g; s/%DISPLAY_NAME%/Hebrew-English combined dictionary/g; s/%APP_NAME%/spell-heb-eng/g; s/he\.dic/heb-eng.dic/; s/he\.aff/heb-eng.aff/; /var myspell_folder/s/$$/addFile(APP_NAME, \"README-en-US.txt\", myspell_folder, \"\")\;/" < install.js.pre > hebeng/install.js
++hebeng/heb-eng.aff: he.aff en-US.aff
++      echo SET ISO8859-8 >hebeng/heb-eng.aff
++      echo TRY esianrtolcdugmphbyfvkwzESIANRTOLCDUGMPHBYFVKWZéåäàòçë÷\'\"ùñæãâáøðîèöúôíóêõïì >> hebeng/heb-eng.aff
++      tail +3 en-US.aff >> hebeng/heb-eng.aff
++      tail +3 he.aff >> hebeng/heb-eng.aff
++hebeng/heb-eng.dic: he.dic en-US.dic
++      cat he.dic en-US.dic | wc -l > hebeng/heb-eng.dic
++      tail +2 en-US.dic >> hebeng/heb-eng.dic
++      tail +2 he.dic >> hebeng/heb-eng.dic
++heb-eng-xpi: hebeng hebeng/heb-eng.dic hebeng/heb-eng.aff hebeng/install.js README README-en-US.txt
++      (cd hebeng;\
++      rm -f README-he.txt spell-heb-eng.xpi ;\
++      cp README README-he.txt;\
++      cp ../README-en-US.txt . ;\
++      zip spell-heb-eng.xpi install.js README-he.txt README-en-US.txt heb-eng.aff heb-eng.dic)
++
++#
++# The openoffice target generates a .zip file, which contains the files
++# that need to be installed in OpenOffice's dictionary directory (e.g.,
++# /usr/lib/ooo-1.1/share/dict/ooo/). Additionally, you'll need to add the
++# line "DICT he IL he_IL" to the dictionary.lst file in that directory
++# (for performance, you may want to remove from that list dictionaries in
++# irrelevant languages). The zip itself can be used by DicOOo, OpenOffice's
++# automatic dictionary-fetching macro. But you don't need to compile Hspell
++# yourself if you plan to do that.
++openoffice: he_IL.zip
++he_IL.zip: he_IL.dic he_IL.aff README_he_IL.txt
++      rm -f he_IL.zip
++      zip he_IL.zip he_IL.dic he_IL.aff README_he_IL.txt
++# note: zip dereferences symbolic links, so those are enough.
++he_IL.dic: he.dic
++      $(LN_S) he.dic he_IL.dic
++he_IL.aff: he.aff
++      $(LN_S) he.aff he_IL.aff
++README_he_IL.txt:
++      echo "This Hebrew dictionary in Myspell format was generated automatically from" >README_he_IL.txt
++      echo "data prepared by the Hspell project:" >>README_he_IL.txt
++      echo >>README_he_IL.txt
++      echo "http://ivrix.org.il/projects/spell-checker" >>README_he_IL.txt
++      echo "Hspell version $(VERSION) was used." >>README_he_IL.txt
++      echo >>README_he_IL.txt
++      echo "This dictionary is Copyright (C) 2000-2006, Nadav Har'El and Dan Kenigsberg." >>README_he_IL.txt
++      echo "It is licensed under the GNU General Public License (GPL)." >>README_he_IL.txt
++
+diff -urNp hspell-1.0.org/mk_he_affix.c hspell-1.0/mk_he_affix.c
+--- hspell-1.0.org/mk_he_affix.c       2006-05-08 22:33:28.000000000 +0300
++++ hspell-1.0/mk_he_affix.c   2006-10-27 01:16:48.000000000 +0200
+@@ -9,11 +9,11 @@
+ #include <string.h>
+ #include <stdlib.h>
+-#include "prefixes.c"
++#include "prefixes.c.h"
+ #include "hspell.h"
+ /* #define PREFIXFILE_COMMAND "gzip -dc hebrew.wgz.prefixes" */
+-#define PREFIXFILE_COMMAND "gzip -dc hebrew.wgz.prefixes | specfilter"
++#define PREFIXFILE_COMMAND "gzip -dc hebrew.wgz.prefixes | ./specfilter"
+ /* Convert a number in the range 0..52 (currently) to a readable character
+    that can be used as the rule (prefix set) name. To facilitate merging our
+diff -urNp hspell-1.0.org/specfilter.c hspell-1.0/specfilter.c
+--- hspell-1.0.org/specfilter.c        2006-05-04 22:58:11.000000000 +0300
++++ hspell-1.0/specfilter.c    2006-10-27 01:16:02.000000000 +0200
+@@ -50,7 +50,7 @@
+  * matters is just the bag of different masks in the masks[] array))
+  */
+-#include "prefixes.c"
++#include "prefixes.c.h"
+ #include <stdlib.h>
diff --git a/app-text/hspell/hspell-1.0-r1.ebuild b/app-text/hspell/hspell-1.0-r1.ebuild
new file mode 100644 (file)
index 0000000..b0756e3
--- /dev/null
@@ -0,0 +1,36 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-text/hspell/hspell-1.0-r1.ebuild,v 1.1 2006/10/27 01:46:05 alonbl Exp $
+
+inherit eutils autotools
+
+DESCRIPTION="A Hebrew spell checker"
+HOMEPAGE="http://www.ivrix.org.il/projects/spell-checker/"
+SRC_URI="http://ivrix.org.il/projects/spell-checker/${P}.tar.gz"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~ppc ~x86"
+IUSE=""
+
+DEPEND=">=dev-lang/perl-5.6.1"
+RDEPEND="${DEPEND}"
+
+src_unpack() {
+       unpack ${A}
+       cd "${S}"
+       epatch "${FILESDIR}/${P}-shared.patch"
+       eautoreconf
+}
+
+src_compile() {
+       econf \
+               --enable-linginfo \
+               --enable-fatverb \
+               || die "econf failed"
+       emake || die "emake failed"
+}
+
+src_install() {
+       emake DESTDIR="${D}" install || die "emake install failed"
+       dodoc README TODO WHATSNEW
+}