git: cd6b2f7c1e60 - main - textproc/libtextcat: Remove expired port

From: Rene Ladan <rene_at_FreeBSD.org>
Date: Wed, 30 Sep 2026 22:23:10 UTC
The branch main has been updated by rene:

URL: https://cgit.FreeBSD.org/ports/commit/?id=cd6b2f7c1e60bcaa9dd73269b0ddda6947e80f8a

commit cd6b2f7c1e60bcaa9dd73269b0ddda6947e80f8a
Author:     Rene Ladan <rene@FreeBSD.org>
AuthorDate: 2026-09-30 22:23:05 +0000
Commit:     Rene Ladan <rene@FreeBSD.org>
CommitDate: 2026-09-30 22:23:05 +0000

    textproc/libtextcat: Remove expired port
    
    2026-07-31 textproc/libtextcat: It has been superseded by textproc/libexttextcat
---
 MOVED                                             |   1 +
 textproc/Makefile                                 |   1 -
 textproc/libtextcat/Makefile                      |  44 ------
 textproc/libtextcat/distinfo                      |   2 -
 textproc/libtextcat/files/patch-src_Makefile.in   |  65 ---------
 textproc/libtextcat/files/patch-src_constants.h   |  45 ------
 textproc/libtextcat/files/patch-src_fingerprint.c | 164 ----------------------
 textproc/libtextcat/files/patch-src_fingerprint.h |  16 ---
 textproc/libtextcat/files/patch-src_textcat.c     |  97 -------------
 textproc/libtextcat/files/patch-src_textcat.h     |  41 ------
 textproc/libtextcat/files/patch-src_utf8misc.c    | 135 ------------------
 textproc/libtextcat/files/patch-src_utf8misc.h    |  91 ------------
 textproc/libtextcat/pkg-descr                     |  15 --
 textproc/libtextcat/pkg-plist                     |  90 ------------
 14 files changed, 1 insertion(+), 806 deletions(-)

diff --git a/MOVED b/MOVED
index 03b00818cae3..f809c3432268 100644
--- a/MOVED
+++ b/MOVED
@@ -5711,3 +5711,4 @@ deskutils/kchmviewer|deskutils/uchmviewer|2026-09-30|Has expired: Development st
 devel/pyside2||2026-09-30|Has expired: Depends on deprecated Qt5 WebEngine
 devel/swig40|devel/swig|2026-09-30|Has expired: Outdated. Use devel/swig instead
 sysutils/rubygem-facter|sysutils/rubygem-openfact|2026-09-30|Has expired: Discontinued, use sysutils/rubygem-openfact
+textproc/libtextcat|textproc/libexttextcat|2026-09-30|Has expired: It has been superseded by textproc/libexttextcat
diff --git a/textproc/Makefile b/textproc/Makefile
index 5ca0d9aa08b8..db1b36318bae 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -425,7 +425,6 @@
     SUBDIR += libsphinxclient
     SUBDIR += libstaroffice
     SUBDIR += libstree
-    SUBDIR += libtextcat
     SUBDIR += libtranslate
     SUBDIR += libtre
     SUBDIR += libucl
diff --git a/textproc/libtextcat/Makefile b/textproc/libtextcat/Makefile
deleted file mode 100644
index ea6991095dd1..000000000000
--- a/textproc/libtextcat/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-PORTNAME=	libtextcat
-PORTVERSION=	2.2
-PORTREVISION=	6
-CATEGORIES=	textproc
-MASTER_SITES=	http://software.wise-guys.nl/download/
-
-MAINTAINER=	thierry@FreeBSD.org
-COMMENT=	Language guessing by N-Gram-Based Text Categorization
-WWW=		https://software.wise-guys.nl/libtextcat/
-
-LICENSE=	BSD3CLAUSE
-LICENSE_FILE=	${WRKSRC}/LICENSE
-
-DEPRECATED=	It has been superseded by textproc/libexttextcat
-EXPIRATION_DATE=2026-07-31
-
-GNU_CONFIGURE=	yes
-USES=		libtool
-USE_LDCONFIG=	yes
-
-OPTIONS_DEFINE=	DOCS
-
-PORTDOCS=	README TODO
-
-post-install:
-	${INSTALL_DATA} ${WRKSRC}/src/textcat.h ${STAGEDIR}${PREFIX}/include/
-	${MKDIR} ${STAGEDIR}${DATADIR}/LM
-	@${ECHO_MSG} "Installing language models provided in Gertjan van Noord's TextCat package"
-	(cd ${WRKSRC}/langclass/LM &&		\
-	${FIND} . -name "*.lm" -exec ${INSTALL_DATA} {} "${STAGEDIR}${DATADIR}/LM/{}" \;)
-	${INSTALL_DATA} ${WRKSRC}/langclass/conf.txt "${STAGEDIR}${DATADIR}"
-
-post-install-DOCS-on:
-	@${MKDIR} ${STAGEDIR}${DOCSDIR}
-	${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}
-
-do-test:
-	(cd ${WRKSRC}/langclass/ &&		\
-	for t in `${LS} ShortTexts/*.txt` ; do	\
-	${ECHO_MSG} "Analyzing $$t..." ;	\
-	../src/testtextcat conf.txt < $$t ;	\
-	done)
-
-.include <bsd.port.mk>
diff --git a/textproc/libtextcat/distinfo b/textproc/libtextcat/distinfo
deleted file mode 100644
index 17b058aa9606..000000000000
--- a/textproc/libtextcat/distinfo
+++ /dev/null
@@ -1,2 +0,0 @@
-SHA256 (libtextcat-2.2.tar.gz) = 5677badffc48a8d332e345ea4fe225e3577f53fc95deeec8306000b256829655
-SIZE (libtextcat-2.2.tar.gz) = 540999
diff --git a/textproc/libtextcat/files/patch-src_Makefile.in b/textproc/libtextcat/files/patch-src_Makefile.in
deleted file mode 100644
index 4df230c584a5..000000000000
--- a/textproc/libtextcat/files/patch-src_Makefile.in
+++ /dev/null
@@ -1,65 +0,0 @@
---- src/Makefile.in.orig	2003-05-22 13:39:52.000000000 +0200
-+++ src/Makefile.in	2011-01-31 20:51:27.000000000 +0100
-@@ -126,18 +126,18 @@
- 
- WARNS = -W -Wall -Wshadow -Wpointer-arith 
- IFLAGS = 
--FLAGS = -g -O3 -funroll-loops -D_THREAD_SAFE -D_GNU_SOURCE
-+FLAGS = -g -funroll-loops -D_THREAD_SAFE -D_GNU_SOURCE
- VERBOSE = -DVERBOSE
- AM_CFLAGS = $(IFLAGS) $(VERBOSE) $(WARNS) $(FLAGS)
- AM_LDFLAGS = -g
- 
- noinst_HEADERS = \
--	common.h constants.h fingerprint.h textcat.h wg_mempool.h
-+	common.h constants.h fingerprint.h textcat.h wg_mempool.h utf8misc.h
- 
- 
- lib_LTLIBRARIES = libtextcat.la
- libtextcat_la_SOURCES = \
--	common.c fingerprint.c textcat.c wg_mempool.c
-+	common.c fingerprint.c textcat.c wg_mempool.c utf8misc.c
- 
- 
- bin_PROGRAMS = createfp
-@@ -156,7 +156,7 @@
- libtextcat_la_LDFLAGS =
- libtextcat_la_LIBADD =
- am_libtextcat_la_OBJECTS = common.lo fingerprint.lo textcat.lo \
--	wg_mempool.lo
-+	wg_mempool.lo utf8misc.lo
- libtextcat_la_OBJECTS = $(am_libtextcat_la_OBJECTS)
- bin_PROGRAMS = createfp$(EXEEXT)
- noinst_PROGRAMS = testtextcat$(EXEEXT)
-@@ -187,7 +187,9 @@
- 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
- DIST_SOURCES = $(libtextcat_la_SOURCES) $(createfp_SOURCES) \
- 	$(testtextcat_SOURCES)
--HEADERS = $(noinst_HEADERS)
-+
-+# Needed for LibreOffice
-+HEADERS = $(noinst_HEADERS) $(CONFIG_HEADER)
- 
- DIST_COMMON = $(noinst_HEADERS) Makefile.am Makefile.in config.h.in
- SOURCES = $(libtextcat_la_SOURCES) $(createfp_SOURCES) $(testtextcat_SOURCES)
-@@ -264,6 +266,11 @@
- 	  else :; fi; \
- 	done
- 
-+install-HEADERS:
-+	@$(NORMAL_INSTALL)
-+	$(mkinstalldirs) $(DESTDIR)$(pkgincludedir)
-+	$(INSTALL_HEADER) $(HEADERS) $(DESTDIR)$(pkgincludedir)
-+
- uninstall-binPROGRAMS:
- 	@$(NORMAL_UNINSTALL)
- 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-@@ -490,7 +497,7 @@
- 
- install-data-am:
- 
--install-exec-am: install-binPROGRAMS install-libLTLIBRARIES
-+install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-HEADERS
- 
- install-info: install-info-am
- 
diff --git a/textproc/libtextcat/files/patch-src_constants.h b/textproc/libtextcat/files/patch-src_constants.h
deleted file mode 100644
index 4e4f5d2d02aa..000000000000
--- a/textproc/libtextcat/files/patch-src_constants.h
+++ /dev/null
@@ -1,45 +0,0 @@
---- src/constants.h.orig	Thu May 22 13:32:43 2003
-+++ src/constants.h	Thu Aug 23 22:47:07 2007
-@@ -39,6 +39,8 @@
-  */
- #include <limits.h>
- 
-+#define _UTF8_
-+
- #define DESCRIPTION "out of place"
- 
- /* Reported matches are those fingerprints with a score less than best
-@@ -59,14 +61,21 @@
- /* Maximum number of n-grams in a fingerprint */
- #define MAXNGRAMS  400
- 
--/* Maximum size of an n-gram? */
--#define MAXNGRAMSIZE 5
-+/* Maximum number of character of an n-gram? */
-+#define MAXNGRAMSYMBOL 5
-+
-+/* Maximum size of the string representing an n-gram (must be greater than number of symbol) */
-+#ifdef _UTF8_
-+#define MAXNGRAMSIZE 20
-+#else
-+#define MAXNGRAMSIZE MAXNGRAMSYMBOL
-+#endif
- 
- /* Which characters are not acceptable in n-grams? */
- #define INVALID(c) (isspace((int)c) || isdigit((int)c)) 
- 
- /* Minimum size (in characters) for accepting a document */
--#define MINDOCSIZE  25
-+#define MINDOCSIZE  6
- 
- /* Maximum penalty for missing an n-gram in fingerprint */
- #define MAXOUTOFPLACE 400
-@@ -75,5 +84,8 @@
- #define TABLEPOW  13
- 
- #define MAXSCORE  INT_MAX
-+
-+/* where the fingerprints files are stored */
-+#define DEFAULT_FINGERPRINTS_PATH ""
- 
- #endif
diff --git a/textproc/libtextcat/files/patch-src_fingerprint.c b/textproc/libtextcat/files/patch-src_fingerprint.c
deleted file mode 100644
index a01722c160b0..000000000000
--- a/textproc/libtextcat/files/patch-src_fingerprint.c
+++ /dev/null
@@ -1,164 +0,0 @@
---- src/fingerprint.c.orig	Thu May 22 13:32:43 2003
-+++ src/fingerprint.c	Thu Aug 23 22:47:07 2007
-@@ -63,6 +63,10 @@
-  * - put table/heap datastructure in a separate file.
-  */
- 
-+#ifndef _UTF8_
-+#define _UTF8_
-+#endif
-+
- #include "config.h"
- #include <stdio.h>
- #ifdef HAVE_STDLIB_H
-@@ -80,10 +84,12 @@
- #include "wg_mempool.h"
- #include "constants.h"
- 
-+#include "utf8misc.h"
- 
- #define TABLESIZE  (1<<TABLEPOW)
- #define TABLEMASK  ((TABLESIZE)-1)
- 
-+
- typedef struct {
- 
- 	sint2 rank;
-@@ -134,29 +140,14 @@
- }
- 
- 
--/* checks if n-gram lex is a prefix of key and of length len */
--inline int issame( char *lex, char *key, int len )
--{
--	int i;
--	for (i=0; i<len; i++) {
--		if ( key[i] != lex[i] ) {
--			return 0;
--		}
--	}
--	if ( lex[i] != 0 ) {
--		return 0;
--	}
--	return 1;
--}
--
- 
- /* increases frequency of ngram(p,len) */
--static inline int increasefreq( table_t *t, char *p, int len ) 
--{	
--	uint4 hash = simplehash( p, len ) & TABLEMASK;				
-+static int increasefreq( table_t *t, char *p, int len )
-+{
-+	uint4 hash = simplehash( p, len ) & TABLEMASK;
- 	entry_t *entry = t->table[ hash ];
--	
--	while ( entry ) {				
-+
-+	while ( entry ) {
- 		if ( issame( entry->str, p, len ) ) {
- 			/*** Found it! ***/
- 			entry->cnt++;
-@@ -168,7 +159,7 @@
- 	}
- 
- 	/*** Not found, so create ***/
--	entry = wgmempool_alloc( t->pool, sizeof(entry_t) );
-+        entry = (entry_t*)(wgmempool_alloc( t->pool, sizeof(entry_t) ));
- 	strcpy( entry->str, p );
- 	entry->cnt = 1;
- 
-@@ -181,12 +172,12 @@
- #if 0
- 
- /* looks up ngram(p,len) */
--static entry_t *findfreq( table_t *t, char *p, int len ) 
--{	
--	uint4 hash = simplehash( p, len ) & TABLEMASK;				
-+static entry_t *findfreq( table_t *t, char *p, int len )
-+{
-+	uint4 hash = simplehash( p, len ) & TABLEMASK;
- 	entry_t *entry = t->table[ hash ];
--	
--	while ( entry ) {				
-+
-+	while ( entry ) {
- 		if ( issame( entry->str, p, len ) ) {
- 			return entry;
- 		}
-@@ -219,7 +210,7 @@
- #define GREATER(x,y) ((x).cnt > (y).cnt)
- #define LESS(x,y)    ((x).cnt < (y).cnt)
- 
--inline static void siftup( table_t *t, unsigned int child )
-+static void siftup( table_t *t, unsigned int child )
- {
- 	entry_t *heap = t->heap;
- 	unsigned int parent = (child-1) >> 1;
-@@ -241,7 +232,7 @@
- }
- 
- 
--inline static void siftdown( table_t *t, unsigned int heapsize, uint4 parent )
-+static void siftdown( table_t *t, unsigned int heapsize, uint4 parent )
- {
- 	entry_t *heap = t->heap;
- 	unsigned int child = parent*2 + 1;
-@@ -458,21 +449,27 @@
- 	return dest;
- }
- 
--
-+/**
-+* this function extract all n-gram from past buffer and put them into the table "t"
-+* [modified] by Jocelyn Merand to accept utf-8 multi-character symbols to be used in OpenOffice
-+*/
- static void createngramtable( table_t *t, const char *buf )
- {
- 	char n[MAXNGRAMSIZE+1];
- 	const char *p = buf;
- 	int i;
-+        int pointer = 0;
- 
- 	/*** Get all n-grams where 1<=n<=MAXNGRAMSIZE. Allow underscores only at borders. ***/
--	for (;;p++) {
-+	while(1) {
- 
--		const char *q = p;
-+     const char *q = &p[pointer];   /*[modified] previously p++ above (for(;;p++)) now, it's pointer wich is increased so we have to get the new pointer on the buffer*/
- 		char *m = n;
- 
- 		/*** First char may be an underscore ***/
--		*m++ = *q++;
-+                int decay = charcopy(q, m); /*[modified] previously *q++ = *m++*/
-+                q = &(p[pointer+decay]);    /*[modified] the old copying method do not manage multi-character symbols*/
-+                m += decay; /*[modified]*/
- 		*m = '\0';
- 
- 		increasefreq( t, n, 1 );
-@@ -482,19 +479,22 @@
- 		}
- 
- 		/*** Let the compiler unroll this ***/
--		for ( i=2; i<=MAXNGRAMSIZE; i++) {
-+		for ( i=2; i<=MAXNGRAMSYMBOL; i++) {
- 
--			*m++ = *q;
-+                        decay = charcopy(q, m); /*[modified] like above*/
-+                        m += decay;
- 			*m = '\0';
- 
- 			increasefreq( t, n, i );
- 
- 			if ( *q == '_' ) break;
--			q++;
-+                        q += decay;
- 			if ( *q == '\0' ) {
- 				return;
- 			}
- 		}
-+
-+  pointer = nextcharstart(p,pointer);   /*[modified] p[pointer] must point on the next start of symbol, but whith utf next start is not surely next char*/
- 	}
- 	return;
- }
diff --git a/textproc/libtextcat/files/patch-src_fingerprint.h b/textproc/libtextcat/files/patch-src_fingerprint.h
deleted file mode 100644
index d5d270bf0af2..000000000000
--- a/textproc/libtextcat/files/patch-src_fingerprint.h
+++ /dev/null
@@ -1,16 +0,0 @@
---- ./src/fingerprint.h.orig	2003-05-19 14:16:31.000000000 +0200
-+++ ./src/fingerprint.h	2010-12-21 16:18:55.000000000 +0100
-@@ -41,7 +41,13 @@
- extern int fp_Read( void *handle, const char *fname, int maxngrams );
- extern sint4 fp_Compare( void *cat, void *unknown, int cutoff );
- extern void fp_Show( void *handle );
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern const char *fp_Name( void *handle );
-+#ifdef __cplusplus
-+}
-+#endif
- extern void fp_Print( void *handle, FILE *fp );
- 
- #endif
diff --git a/textproc/libtextcat/files/patch-src_textcat.c b/textproc/libtextcat/files/patch-src_textcat.c
deleted file mode 100644
index 24e95e832001..000000000000
--- a/textproc/libtextcat/files/patch-src_textcat.c
+++ /dev/null
@@ -1,97 +0,0 @@
---- src/textcat.c.orig	Thu May 22 13:32:43 2003
-+++ src/textcat.c	Thu Aug 23 22:47:07 2007
-@@ -74,6 +74,7 @@
- typedef struct {
- 
- 	void **fprint;
-+        char *fprint_disable;
- 	uint4 size;
- 	uint4 maxsize;
- 
-@@ -112,11 +113,21 @@
- 		fp_Done( h->fprint[i] );
- 	}
- 	wg_free( h->fprint );
-+        wg_free( h->fprint_disable );
- 	wg_free( h );
- 
- }
- 
--extern void *textcat_Init( const char *conffile )
-+/** Replaces older function */
-+extern void *textcat_Init( const char *conffile ){
-+    return special_textcat_Init( conffile, DEFAULT_FINGERPRINTS_PATH );
-+}
-+
-+/**
-+ * Originaly this function had only one parameter (conffile) it has been modified since OOo use
-+ * Basicaly prefix is the directory path where fingerprints are stored
-+ */
-+extern void *special_textcat_Init( const char *conffile, const char *prefix )
- {
- 	textcat_t *h;
- 	char line[1024];
-@@ -134,11 +145,13 @@
- 	h->size = 0;
- 	h->maxsize = 16;
- 	h->fprint = (void **)wg_malloc( sizeof(void*) * h->maxsize );
-+ h->fprint_disable = (char *)wg_malloc( sizeof(char*) * h->maxsize );   /*added to store the state of languages*/
- 
- 	while ( wg_getline( line, 1024, fp ) ) {
- 		char *p;
- 		char *segment[4];
--		int res;
-+                char finger_print_file_name[512];
-+                int res;
- 
- 		/*** Skip comments ***/
- #ifdef HAVE_STRCHR
-@@ -156,17 +169,23 @@
- 		/*** Ensure enough space ***/
- 		if ( h->size == h->maxsize ) {
- 			h->maxsize *= 2;
--			h->fprint = (void *)wg_realloc( h->fprint, sizeof(void*) * h->maxsize );
-+			h->fprint = (void **)wg_realloc( h->fprint, sizeof(void*) * h->maxsize );
-+                        h->fprint_disable = (char *)wg_realloc( h->fprint_disable, sizeof(char*) * h->maxsize );
- 		}
- 
- 		/*** Load data ***/
- 		if ((h->fprint[ h->size ] = fp_Init( segment[1] ))==NULL) {
- 			goto ERROR;
- 		}
--		if ( fp_Read( h->fprint[h->size], segment[0], 400 ) == 0 ) {
-+                finger_print_file_name[0] = '\0';
-+                strcat(finger_print_file_name, prefix);
-+                strcat(finger_print_file_name, segment[0]);
-+
-+                if ( fp_Read( h->fprint[h->size], finger_print_file_name, 400 ) == 0 ) {
- 			textcat_Done(h);
- 			goto ERROR;
--		}		
-+		}
-+                h->fprint_disable[h->size] = 0xF0;  /*0xF0 is the code for enabled languages, 0x0F is for disabled*/
- 		h->size++;
- 	}
- 
-@@ -203,11 +222,18 @@
- 		result = _TEXTCAT_RESULT_SHORT;
- 		goto READY;
- 	}
--	
-+
- 	/*** Calculate the score for each category. ***/
- 	for (i=0; i<h->size; i++) {
--		int score = fp_Compare( h->fprint[i], unknown, threshold );
--		candidates[i].score = score;
-+                int score;
-+                if(h->fprint_disable[i] & 0x0F){    /*if this language is disabled*/
-+                    score = MAXSCORE;
-+                }
-+                else{
-+                    score = fp_Compare( h->fprint[i], unknown, threshold );
-+                    /*printf("Score for %s : %i\n", fp_Name(h->fprint[i]), score);*/
-+                }
-+                candidates[i].score = score;
- 		candidates[i].name = fp_Name( h->fprint[i] );
- 		if ( score < minscore ) {
- 			minscore = score;
diff --git a/textproc/libtextcat/files/patch-src_textcat.h b/textproc/libtextcat/files/patch-src_textcat.h
deleted file mode 100644
index d7a6c4892ea4..000000000000
--- a/textproc/libtextcat/files/patch-src_textcat.h
+++ /dev/null
@@ -1,41 +0,0 @@
---- ./src/textcat.h.orig	2003-05-19 14:16:31.000000000 +0200
-+++ ./src/textcat.h	2010-12-21 16:18:55.000000000 +0100
-@@ -39,6 +39,9 @@
- 
- #define _TEXTCAT_RESULT_UNKOWN        "UNKNOWN"
- #define _TEXTCAT_RESULT_SHORT         "SHORT"
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- 
- 
- /**
-@@ -51,10 +54,19 @@
-  * Returns: handle on success, NULL on error. (At the moment, the
-  * only way errors can occur, is when the library cannot read the
-  * conffile, or one of the fingerprint files listed in it.)
-+ *
-+ * Replace older function (and has exacly the same behaviour)
-+ * see below
-  */
- extern void *textcat_Init( const char *conffile );
- 
- /**
-+ * Originaly this function had only one parameter (conffile) it has been modified since OOo must be able to load alternativ DB
-+ * Basicaly prefix is the directory path where fingerprints are stored
-+ */
-+extern void *special_textcat_Init( const char *conffile, const char *prefix );
-+
-+/**
-  * textcat_Done() - Free up resources for handle
-  */
- extern void textcat_Done( void *handle );
-@@ -77,4 +89,8 @@
-  * textcat_Version() - Returns a string describing the version of this classifier.
-  */
- extern char *textcat_Version();
-+
-+#ifdef __cplusplus
-+}
-+#endif
- #endif
diff --git a/textproc/libtextcat/files/patch-src_utf8misc.c b/textproc/libtextcat/files/patch-src_utf8misc.c
deleted file mode 100644
index ba17b38cafb1..000000000000
--- a/textproc/libtextcat/files/patch-src_utf8misc.c
+++ /dev/null
@@ -1,135 +0,0 @@
---- /dev/null	Thu Aug 23 22:58:13 2007
-+++ src/utf8misc.c	Thu Aug 23 22:47:07 2007
-@@ -0,0 +1,132 @@
-+/***************************************************************************
-+ *   Copyright (C) 2006 by Jocelyn Merand                                  *
-+ *   joc.mer@gmail.com                                                     *
-+ *                                                                         *
-+ * THE BSD LICENSE
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * - Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ *
-+ * - Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the
-+ * distribution.
-+ *
-+ * - Neither the name of the WiseGuys Internet B.V. nor the names of
-+ * its contributors may be used to endorse or promote products derived
-+ * from this software without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+ ***************************************************************************/
-+
-+#ifndef _UTF8_MISC_H_
-+#include "utf8misc.h"
-+#endif
-+
-+
-+int nextcharstart(const char *str, int position){
-+    int pointer = position;
-+
-+    if(str[pointer] & ESCAPE_MASK){ /*if the first bit of the current char is 1*/
-+
-+        /*then str[pointer] is an escape character*/
-+
-+    char escape_char = ((str[pointer] & WEIGHT_MASK) << 1); /*and we use it to count (by bit translation) following characters (only the weightest part)*/
-+
-+    while(escape_char & ESCAPE_MASK && str[pointer]){/*every step, we move the byte of 1 bit left, when first bit is 0, it's finished*/
-+        escape_char = escape_char <<1;
-+        ++pointer;
-+    }
-+    }
-+    if(str[pointer]){   /*finaly, if we are not on the \0 character, we jump to the next character*/
-+        ++pointer;
-+    }
-+    return pointer;
-+}
-+
-+
-+int charcopy(const char *str, char *dest){
-+
-+    int pointer = 0;
-+    if(str[pointer] & ESCAPE_MASK){ /*if the first bit of the current char is 1*/
-+
-+        /*then str[pointer] is an escape character*/
-+
-+        char escape_char = ((str[pointer] & WEIGHT_MASK) << 1); /*and we use it to count following characters (only the weightest part)*/
-+
-+        while(escape_char & ESCAPE_MASK && str[pointer]){   /*every step, we move the byte of 1 bit left, when first bit is 0, it's finished*/
-+            dest[pointer] = str[pointer];
-+            escape_char = escape_char <<1;
-+            ++pointer;
-+        }
-+    }
-+    if(str[pointer]){
-+        dest[pointer] = str[pointer];
-+        ++pointer;
-+    }
-+
-+    return pointer;
-+}
-+
-+
-+int issame( char *lex, char *key, int len )
-+{
-+    /*printf("[%s] prefix of [%s] with length %i", lex, key, len);*/
-+    int char_counter = 0;
-+    int pointer = 0;
-+    while(char_counter < len) {
-+
-+        if(key[pointer] & ESCAPE_MASK){ /*if the first bit of the current char is 1*/
-+
-+            /*then key[pointer] is an escap character*/
-+
-+            char escape_char = ((key[pointer] & WEIGHT_MASK) << 1);     /*and we use it to count (only the weightest part)*/
-+
-+            while(escape_char & ESCAPE_MASK && key[pointer] == lex[pointer] ){
-+                escape_char = escape_char <<1;
-+                ++pointer;
-+            }
-+        }
-+        ++char_counter; /*and we are on a new utf8 character*/
-+        if ( key[pointer] != lex[pointer] ) {
-+            return 0;
-+            /*printf(" NO\n", lex, key, len);*/
-+        }
-+        ++pointer;
-+    }
-+    if ( lex[pointer] != '\0' ) {
-+        return 0;
-+        /*printf(" NO\n");*/
-+    }
-+
-+    /*printf(" YES\n");*/
-+
-+    return 1;
-+}
-+
-+
-+extern int utfstrlen(const char* str){
-+    int char_counter = 0;
-+    int pointer = 0;
-+    while(str[pointer]) {
-+        pointer = nextcharstart(str, pointer);
-+
-+        ++char_counter; /*and we are on a new utf8 character*/
-+    }
-+    return char_counter;
-+}
-+
diff --git a/textproc/libtextcat/files/patch-src_utf8misc.h b/textproc/libtextcat/files/patch-src_utf8misc.h
deleted file mode 100644
index 666786899b33..000000000000
--- a/textproc/libtextcat/files/patch-src_utf8misc.h
+++ /dev/null
@@ -1,91 +0,0 @@
---- /dev/null	Thu Aug 23 22:58:13 2007
-+++ src/utf8misc.h	Thu Aug 23 22:47:08 2007
-@@ -0,0 +1,88 @@
-+/***************************************************************************
-+ *   Copyright (C) 2006 by Jocelyn Merand                                  *
-+ *   joc.mer@gmail.com                                                     *
-+ *                                                                         *
-+ * THE BSD LICENSE
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * - Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ *
-+ * - Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the
-+ * distribution.
-+ *
-+ * - Neither the name of the WiseGuys Internet B.V. nor the names of
-+ * its contributors may be used to endorse or promote products derived
-+ * from this software without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+ ***************************************************************************/
-+
-+#ifndef _UTF8_MISC_H_
-+#define _UTF8_MISC_H_
-+
-+/**
-+ * These variables are used in character processing functions
-+ * These have been added to manage utf-8 symbols, particularly escape chars
-+ */
-+#ifdef _UTF8_
-+#define ESCAPE_MASK 0x80
-+#define WEIGHT_MASK 0xF0
-+#else
-+#define ESCAPE_MASK 0xFF
-+#define WEIGHT_MASK 0x00
-+#endif
-+
-+
-+/*
-+ * Is used to jump to the next start of char
-+ * of course it's only usefull when encoding is utf-8
-+ * This function have been added by Jocelyn Merand to use libtextcat in OOo
-+ */
-+int nextcharstart(const char *str, int position);
-+
-+
-+/*Copy the char in str to dest
-+ * of course it's only usefull when encoding is utf8 and the symbol is encoded with more than 1 char
-+ * return the number of char jumped
-+ * This function have been added by Jocelyn Merand to use libtextcat in OOo
-+ */
-+int charcopy(const char *str, char *dest);
-+
-+
-+/* checks if n-gram lex is a prefix of key and of length len
-+* if _UTF8_ is defined, it uses escap characters and len is not realy the length of lex
-+* in this case, len is the number of utf-8 char strlen("€") == 3 but len == 1
-+*/
-+int issame( char *lex, char *key, int len );
-+
-+
-+/* Counts the number of characters
-+* if _UTF8_ is defined, it uses escap characters and the result is not realy the length of str
-+* in this case, the result is the number of utf-8 char strlen("€") == 3 but utfstrlen("€") == 1
-+*/
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+extern int utfstrlen(const char* str);
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif
-+
diff --git a/textproc/libtextcat/pkg-descr b/textproc/libtextcat/pkg-descr
deleted file mode 100644
index 13e67190d389..000000000000
--- a/textproc/libtextcat/pkg-descr
+++ /dev/null
@@ -1,15 +0,0 @@
-Libtextcat is a library with functions that implement the classification
-technique described in Cavnar & Trenkle, "N-Gram-Based Text Categorization" [1].
-It was primarily developed for language guessing, a task on which it is known to
-perform with near-perfect accuracy.
-
-The central idea of the Cavnar & Trenkle technique is to calculate a
-"fingerprint" of a document with an unknown category, and compare this with the
-fingerprints of a number of documents of which the categories are known. The
-categories of the closest matches are output as the classification. A
-fingerprint is a list of the most frequent n-grams occurring in a document,
-ordered by frequency. Fingerprints are compared with a simple out-of-place
-metric.
-
-[1] The document that started it all: William B. Cavnar & John M. Trenkle (1994)
-N-Gram-Based Text Categorization, <http://citeseer.ist.psu.edu/68861.html>.
diff --git a/textproc/libtextcat/pkg-plist b/textproc/libtextcat/pkg-plist
deleted file mode 100644
index cc5cae4d37d2..000000000000
--- a/textproc/libtextcat/pkg-plist
+++ /dev/null
@@ -1,90 +0,0 @@
-bin/createfp
-include/libtextcat/common.h
-include/libtextcat/config.h
-include/libtextcat/constants.h
-include/libtextcat/fingerprint.h
-include/libtextcat/textcat.h
-include/libtextcat/utf8misc.h
-include/libtextcat/wg_mempool.h
-include/textcat.h
-lib/libtextcat.a
-lib/libtextcat.so
-lib/libtextcat.so.0
-lib/libtextcat.so.0.0.0
-%%DATADIR%%/LM/afrikaans.lm
-%%DATADIR%%/LM/albanian.lm
-%%DATADIR%%/LM/amharic-utf.lm
-%%DATADIR%%/LM/arabic-iso8859_6.lm
-%%DATADIR%%/LM/arabic-windows1256.lm
-%%DATADIR%%/LM/armenian.lm
-%%DATADIR%%/LM/basque.lm
-%%DATADIR%%/LM/belarus-windows1251.lm
-%%DATADIR%%/LM/bosnian.lm
-%%DATADIR%%/LM/breton.lm
-%%DATADIR%%/LM/bulgarian-iso8859_5.lm
-%%DATADIR%%/LM/catalan.lm
-%%DATADIR%%/LM/chinese-big5.lm
-%%DATADIR%%/LM/chinese-gb2312.lm
-%%DATADIR%%/LM/croatian-ascii.lm
-%%DATADIR%%/LM/czech-iso8859_2.lm
-%%DATADIR%%/LM/danish.lm
-%%DATADIR%%/LM/drents.lm
-%%DATADIR%%/LM/dutch.lm
-%%DATADIR%%/LM/english.lm
-%%DATADIR%%/LM/esperanto.lm
-%%DATADIR%%/LM/estonian.lm
-%%DATADIR%%/LM/finnish.lm
-%%DATADIR%%/LM/french.lm
-%%DATADIR%%/LM/frisian.lm
-%%DATADIR%%/LM/georgian.lm
-%%DATADIR%%/LM/german.lm
-%%DATADIR%%/LM/greek-iso8859-7.lm
-%%DATADIR%%/LM/hebrew-iso8859_8.lm
-%%DATADIR%%/LM/hindi.lm
-%%DATADIR%%/LM/hungarian.lm
-%%DATADIR%%/LM/icelandic.lm
-%%DATADIR%%/LM/indonesian.lm
-%%DATADIR%%/LM/irish.lm
-%%DATADIR%%/LM/italian.lm
-%%DATADIR%%/LM/japanese-euc_jp.lm
-%%DATADIR%%/LM/japanese-shift_jis.lm
-%%DATADIR%%/LM/korean.lm
-%%DATADIR%%/LM/latin.lm
-%%DATADIR%%/LM/latvian.lm
-%%DATADIR%%/LM/lithuanian.lm
-%%DATADIR%%/LM/malay.lm
-%%DATADIR%%/LM/manx.lm
-%%DATADIR%%/LM/marathi.lm
-%%DATADIR%%/LM/middle_frisian.lm
-%%DATADIR%%/LM/mingo.lm
-%%DATADIR%%/LM/nepali.lm
-%%DATADIR%%/LM/norwegian.lm
-%%DATADIR%%/LM/persian.lm
-%%DATADIR%%/LM/polish.lm
-%%DATADIR%%/LM/portuguese.lm
-%%DATADIR%%/LM/quechua.lm
-%%DATADIR%%/LM/romanian.lm
-%%DATADIR%%/LM/rumantsch.lm
-%%DATADIR%%/LM/russian-iso8859_5.lm
-%%DATADIR%%/LM/russian-koi8_r.lm
-%%DATADIR%%/LM/russian-windows1251.lm
-%%DATADIR%%/LM/sanskrit.lm
-%%DATADIR%%/LM/scots.lm
-%%DATADIR%%/LM/scots_gaelic.lm
-%%DATADIR%%/LM/serbian-ascii.lm
-%%DATADIR%%/LM/slovak-ascii.lm
-%%DATADIR%%/LM/slovak-windows1250.lm
-%%DATADIR%%/LM/slovenian-ascii.lm
-%%DATADIR%%/LM/slovenian-iso8859_2.lm
-%%DATADIR%%/LM/spanish.lm
-%%DATADIR%%/LM/swahili.lm
-%%DATADIR%%/LM/swedish.lm
-%%DATADIR%%/LM/tagalog.lm
-%%DATADIR%%/LM/tamil.lm
-%%DATADIR%%/LM/thai.lm
-%%DATADIR%%/LM/turkish.lm
-%%DATADIR%%/LM/ukrainian-koi8_r.lm
-%%DATADIR%%/LM/vietnamese.lm
-%%DATADIR%%/LM/welsh.lm
-%%DATADIR%%/LM/yiddish-utf.lm
-%%DATADIR%%/conf.txt