Date: Mon, 30 Jan 2012 13:36:03 GMT From: Matthew Seaman <m.seaman@infracaninophile.co.uk> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/164635: [maintainer] textproc/sphinxsearch -- clang support, etc Message-ID: <201201301336.q0UDa3pv023502@lucid-nonsense.infracaninophile.co.uk> Resent-Message-ID: <201201301340.q0UDeAD3050716@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 164635 >Category: ports >Synopsis: [maintainer] textproc/sphinxsearch -- clang support, etc >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Mon Jan 30 13:40:10 UTC 2012 >Closed-Date: >Last-Modified: >Originator: Matthew Seaman >Release: FreeBSD 8.2-STABLE amd64 >Organization: Infracaninophile >Environment: System: FreeBSD lucid-nonsense.infracaninophile.co.uk 8.2-STABLE FreeBSD 8.2-STABLE #0 r228845: Fri Dec 23 19:13:12 GMT 2011 root@lucid-nonsense.infracaninophile.co.uk:/usr/obj/usr/src/sys/LUCID-NONSENSE amd64 >Description: * New patch files to enable compilation using clang: files/patch-configure files/patch-src_sphinxexpr.cpp * Add libstemmer support, disabled by default. This adds stemming support for French, Spanish, Portuguese, Italian, Romanian, German, Dutch, Swedish, Norwegian, Danish, Finnish and Hungarian * Clean up various OPTIONS related make code: if WITH_FOO is defined, then WITHOUT_FOO isn't, and vice-versa. Even if make config has never been run. PORTREVISION not bumped, as there should be no significant changes to the default package. >How-To-Repeat: >Fix: --- sphinxsearch-port.diff begins here --- Index: Makefile =================================================================== RCS file: /home/ncvs/ports/textproc/sphinxsearch/Makefile,v retrieving revision 1.18 diff -u -u -r1.18 Makefile --- Makefile 31 Dec 2011 22:32:24 -0000 1.18 +++ Makefile 30 Jan 2012 12:47:05 -0000 @@ -13,6 +13,7 @@ CATEGORIES= textproc databases MASTER_SITES= http://sphinxsearch.com/files/ DISTNAME= sphinx-${PORTVERSION}-release +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER= m.seaman@infracaninophile.co.uk COMMENT= Sphinx Full-Text Search Engine @@ -30,10 +31,8 @@ OPTIMIZED_CFLAGS "Use compiler optimization (-O3)" off \ ID64 "use 64-bit document and word IDs" off \ UNIXODBC "unixODBC support" off \ - SYSLOG "enable logging via syslog" on - -## FFR -## LIBSTEMMER "compile with libstemmer support" off + SYSLOG "enable logging via syslog" on \ + LIBSTEMMER "compile with libstemmer support" off CONFLICTS= sphinxsearch-devel-[0-9]* @@ -42,21 +41,21 @@ # The port will successfully compile with both PGSQL and MYSQL support # simultaneously. Not sure how useful that is in practice though. -.if defined(WITH_MYSQL) && !defined(WITHOUT_MYSQL) +.if defined(WITH_MYSQL) CONFIGURE_ARGS+= --with-mysql USE_MYSQL= yes .else CONFIGURE_ARGS+= --without-mysql .endif -.if defined(WITH_PGSQL) && !defined(WITHOUT_PGSQL) +.if defined(WITH_PGSQL) CONFIGURE_ARGS+= --with-pgsql USE_PGSQL= yes .else CONFIGURE_ARGS+= --without-pgsql .endif -.if defined(WITH_ICONV) && !defined(WITHOUT_ICONV) +.if defined(WITH_ICONV) CONFIGURE_ARGS+= --with-iconv USE_ICONV= yes .else @@ -81,29 +80,38 @@ CONFIGURE_ARGS+= --without-unixodbc .endif -.if defined(WITH_SYSLOG) && !defined(WITHOUT_SYSLOG) +.if defined(WITH_SYSLOG) CONFIGURE_ARGS+= --with-syslog .else CONFIGURE_ARGS+= --without-syslog .endif -## FFR. The snowball project doesn't release numbered versions of -## it's pre-processors. Instead, at arbitrary intervals a snapshot of -## their source repository is turned into a tarball (always the same -## filename) and placed on their web site. It's like they want to -## make it as hard as possible for anyone to package and use their -## software. -## -## # Adds support for two additional word stemmming pre-processors -## # from the Snowball project (http://snowball.tartarus.org/) -- -## # these essentially do exactly the same thing as the built in -## # English and Russian stemmers but are slightly slower and may -## # produce subtly different output. Disabled by default. -## .if defined(WITH_LIBSTEMMER) && !defined(WITHOUT_LIBSTEMMER) -## CONFIGURE_ARGS+= --with-libstemmer -## .else -## CONFIGURE_ARGS+= --without-libstemmer -## .endif +# Note: The snowball project doesn't release numbered versions of it's +# pre-processors. Instead, at arbitrary but fairly long intervals a +# snapshot of their source repository is turned into a tarball (always +# the same filename) and placed on their web site. It's like they +# want to make it as hard as possible for anyone to package and use +# their software. +# +# Adds support for two additional word stemmming pre-processors from +# the Snowball project (http://snowball.tartarus.org/) -- these +# essentially do exactly the same thing as the built in English, +# Russian and Czech stemmers but also support French, Spanish, +# Portuguese, Italian, Romanian, German, Dutch, Swedish, Norwegian, +# Danish, Finnish, Hungarian. Disabled by default. + +.if defined(WITH_LIBSTEMMER) || make(makesum) || defined(FETCH_ALL) +MASTER_SITES+= http://snowball.tartarus.org/dist/:libstemmer +LIBSTEMMER_TGZ= libstemmer_c.tgz +DISTFILES+= ${LIBSTEMMER_TGZ}:libstemmer +EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} +.endif + +.if defined(WITH_LIBSTEMMER) +CONFIGURE_ARGS+= --with-libstemmer +.else +CONFIGURE_ARGS+= --without-libstemmer +.endif USERS?= _sphinx GROUPS?= _sphinx @@ -137,8 +145,14 @@ DOCS= doc/sphinx.css doc/sphinx.html doc/sphinx.txt doc/sphinx.xml .endif -# Fix up the sample configuration file to correspond to FreeBSD norms +post-extract: +.if defined(WITH_LIBSTEMMER) + @( cd ${WRKSRC} && \ + ${GZIP_CMD} ${EXTRACT_BEFORE_ARGS} ${DISTDIR}/${LIBSTEMMER_TGZ} \ + ${EXTRACT_AFTER_ARGS} ) +.endif +# Fix up the sample configuration file to correspond to FreeBSD norms post-patch: @${REINPLACE_CMD} \ -e "s!@CONFDIR@/log/searchd.pid!${SPHINX_RUN}/searchd.pid!" \ Index: distinfo =================================================================== RCS file: /home/ncvs/ports/textproc/sphinxsearch/distinfo,v retrieving revision 1.8 diff -u -u -r1.8 distinfo --- distinfo 31 Dec 2011 22:32:24 -0000 1.8 +++ distinfo 30 Jan 2012 12:47:05 -0000 @@ -1,2 +1,4 @@ SHA256 (sphinx-2.0.3-release.tar.gz) = 875af63473875b7c7e152e85ed34bd1a92d09db062a289b594bf049b3a8c82dd SIZE (sphinx-2.0.3-release.tar.gz) = 1923911 +SHA256 (libstemmer_c.tgz) = e9c3a2c13acf34945054e35ad53b7410c61f046d4044c0ade620fdac253bab46 +SIZE (libstemmer_c.tgz) = 129529 Index: files/patch-configure =================================================================== RCS file: files/patch-configure diff -N files/patch-configure --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-configure 30 Jan 2012 12:47:05 -0000 @@ -0,0 +1,14 @@ + +$FreeBSD$ + +--- configure.orig ++++ configure +@@ -4361,7 +4361,7 @@ + + #ifdef __GNUC__ + #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 3) +-void main() {} ++int main() {return 0;} + #else + syntax error + #endif Index: files/patch-src_sphinxexpr.cpp =================================================================== RCS file: files/patch-src_sphinxexpr.cpp diff -N files/patch-src_sphinxexpr.cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-src_sphinxexpr.cpp 30 Jan 2012 12:47:05 -0000 @@ -0,0 +1,32 @@ + +$FreeBSD$ + +--- src/sphinxexpr.cpp.orig ++++ src/sphinxexpr.cpp +@@ -1796,7 +1796,7 @@ + /// evaluate arg, return interval id + virtual int IntEval ( const CSphMatch & tMatch ) const + { +- T val = ExprEval ( this->m_pArg, tMatch ); // 'this' fixes gcc braindamage ++ T val = this->ExprEval ( this->m_pArg, tMatch ); // 'this' fixes gcc braindamage + ARRAY_FOREACH ( i, this->m_dValues ) // FIXME! OPTIMIZE! perform binary search here + if ( val<this->m_dValues[i] ) + return i; +@@ -1827,7 +1827,7 @@ + /// evaluate arg, return interval id + virtual int IntEval ( const CSphMatch & tMatch ) const + { +- T val = ExprEval ( this->m_pArg, tMatch ); // 'this' fixes gcc braindamage ++ T val = this->ExprEval ( this->m_pArg, tMatch ); // 'this' fixes gcc braindamage + ARRAY_FOREACH ( i, m_dTurnPoints ) + if ( val < Expr_ArgVsSet_c<T>::ExprEval ( m_dTurnPoints[i], tMatch ) ) + return i; +@@ -1873,7 +1873,7 @@ + /// evaluate arg, check if the value is within set + virtual int IntEval ( const CSphMatch & tMatch ) const + { +- T val = ExprEval ( this->m_pArg, tMatch ); // 'this' fixes gcc braindamage ++ T val = this->ExprEval ( this->m_pArg, tMatch ); // 'this' fixes gcc braindamage + return this->m_dValues.BinarySearch ( val )!=NULL; + } + --- sphinxsearch-port.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201201301336.q0UDa3pv023502>