Sphinx is an open source full text search server, designed from the
ground up with performance, relevance (aka search quality), and
integration simplicity in mind. It's written in C++ and works on Linux
(RedHat, Ubuntu, etc), Windows, MacOS, Solaris, FreeBSD, and a few
other systems.
Sphinx lets you either batch index and search data stored in an SQL
database, NoSQL storage, or just files quickly easily and or index and
search data on the fly, working with Sphinx pretty much as with a
database server.
A variety of text processing features enable fine-tuning Sphinx for
your particular application requirements, and a number of relevance
functions ensures you can tweak search quality as well.
Searching via SphinxAPI is as simple as 3 lines of code, and querying
via SphinxQL is even simpler, with search queries expressed in good
old SQL.
Sphinx clusters scale up to billions of documents and tens of millions
search queries per day, powering top websites such as Craigslist,
DailyMotion, NetLog, etc.
And last but not least, it's open-sourced under GPLv2, and the
community edition is free to use.
===> The following configuration options are available for sphinxsearch-2.2.11_6:
DOCS=on: Build and/or install documentation
EXAMPLES=on: Build and/or install examples
ICONV=on: Encoding conversion support via iconv
ID64=on: Use 64-bit document and word IDs
LIBSTEMMER=off: Compile with libstemmer support
MYSQL=on: MySQL database support
OPTIMIZED_CFLAGS=off: Use extra compiler optimizations
PGSQL=off: PostgreSQL database support
RE2=off: Enable re2 regular expression library
SYSLOG=on: Enable logging via syslog
UNIXODBC=off: ODBC backend via unixODBC
===> Use 'make config' to modify these settings
textproc/sphinxsearch: return to the pool
Upstream switched to a commercial license years ago, and so we cannot
include more recent versions in the ports. Despite indications on the
website that they would switch back to GPL, this hasn't happened in
more than 5 years, so I guess it is never going to happen. From an
opensource point of view, this software is essentially abandonware.
However, given there is an actively developed upstream project, and
that project does provide FreeBSD binaries, it doesn't feel right to
deprecate the software entirely.
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
Fix CONFLICTS entries of multiple ports
There have been lots of missing CONFLICTS_INSTALL entries, either
because conflicting ports were added without updating existing ports,
due to name changes of generated packages, due to mis-understanding
the format and semantics of the conflicts entries, or just due to
typoes in package names.
This patch is the result of a comparison of all files contained in
the official packages with each other. This comparison was based on
packages built with default options and may therefore have missed
further conflicts with optionally installed files.
Where possible, version numbers in conflicts entries have been
generalized, some times taking advantage of the fact that a port
(Only the first 15 lines of the commit message are shown above )
*/*: Remove redundant '-[0-9]*' from CONFLICTS
The conflict checks compare the patterns first against the package
names without version (as reported by "pkg query "%n"), then - if
there was no match - agsinst the full package names including the
version (as reported by "pkg query "%n-%v").
Many CONFLICTS definitions used patterns like "bash-[0-9]*" to filter
for the bash package in any version. But that pattern is functionally
identical with just "bash".
Approved by: portmgr (blanket)
Multiple ports: improve regex compliance
These changes largely fall into just two categories:
1. Need textproc/gsed for GNU extensions
2. Extraneous escapes that can go away
For #1, there's a further subdivision into those that require autoconf magic
and those that can get away with BINARY_ALIAS=sed=${LOCALBASE}/bin/gsed.
-CURRENT will soon gain GNU extensions, but these will take longer to get to
all supported releases; we must switch them to gsed to ensure we're actually
properly building them as intended.
For #2, I've fixed these as I can and we should upstream these fixes.
(Only the first 15 lines of the commit message are shown above )
Bump PORTREVISION for ports depending on the canonical version of GCC
as defined in Mk/bsd.default-versions.mk which has moved from GCC 8.3
to GCC 9.1 under most circumstances now after revision 507371.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, everything INDEX-11 shows with a dependency on lang/gcc9 now.
PR: 238330
textproc/sphinxsearch: fix build on GCC architectures
New GCC is required:
The compiler feature "cxx_decltype" is not known to CXX compiler
Approved by: mentors (implicit approval)
Patches to make the code compatible with clang-6.0 / C++17 -- this will
fix the build on FreeBSD 12.0
- delete the 'register' keyword everywhere
- Add whitespace between adjacent quoted strings
- Update the offsetof() macro to cast the result to int
Reported by: pkg-fallout
Pending a better fix, mark broken when the RE2 option is enabled.
Recent versions of devel/re2 install headers that result in error
messages like so:
/usr/local/include/re2/re2.h:915:5: error: no matching function for call to
'call_once'
std::call_once(once_, &LazyRE2::Init, this);
^~~~~~~~~~~~~~
No change to the default package, so no PORTREVISION bump.
PR: 219239
Submitted by: mail+freebsd@gerritbeine.de, w.schwarzenfeld@utanet.at
- install the 'wordbreaker' program
- install the example minimum configuration file
- use OPTION dependent targets for DOCS, EXAMPLES
- always install man pages, irrespective of the DOCS option
Move MySQL support from bsd.databases.mk to Uses/mysql.mk.
Also, USE_MYSQL can't happen after bsd.port.pre.mk because it is a USES.
PR: 208971
Submitted by: mat
Exp-run by: antoine
With hat: portmgr
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D5951
The snowball project has done its usual trick of re-rolling a distfile
in place. No substantive differences to the previous version were
seen.
PR: 195151
Submitted by: danger
* The Snowball project has rerolled libstemmer_c.tgz as they
occasionally do. This time they've actually changed the code, so
patching is now required in order to compile.[1]
* Add option to link against re2 regular expression library.[2]
* PGSQL_USE -> PGSQL_USES
Submitted by: Daniel Ylitalo <daniel@blodan.se>[1]
Submitted by: Alex Storn <devzone.my@gmail.com>[2]
Upstream has re-rolled the libstemmer_c.tgz distfile as they do at
intervals and for no apparent reason. Side-by-side comparison with
the previous version shows absolutely no changes.
Submitted by: Daniel Ylitalo <daniel@blodan.se>
- Fix installation when DOCS or EXAMPLES are unset by always
installing docs and examples unconditionally to staging. The
packaging step will not include them in the package generated from
stagingif DOCS or EXAMPLES is unset.
- List EXAMPLES explicitly in pkg-plist
PR: 185194
Submitted by: Miroslav Lachman <000.fbsd@quip.cz>
* use option helpers (blatantly copying from the
textproc/sphinxseach-devel port) [1]
* New style LIB_DEPENDS for libodbc
* Install DOCS and EXAMPLES to the stage directory unconditionally
Submitted by: danger [1]
- Update to 2.0.9
- Refresh distinfo for libstemmer_c.tgz
The libstemmer_c.tgz distfile tarball gets recreated at intervals. I
have diff'd the contents of a freshly downloaded tarball against the
older tarball matching the previous distinfo, and I can confirm that
there are no changes to the files contained therein.
Reported by: portscout
Upstream re-rolled the distfle without incrementing the version
number.
Side by side comparison shows the only changes are to correct internal
references to the version number in documentation and autoconf scripts
from '2.0.9-dev' to '2.0.8-release' No changes to the C++ code.
PR: 178375
Submitted by: Sam <samorders@gmail.com>
Rely on bsdtar to autodetermine the format of the distfiles when possible
For a while now bsdtar is able to autotermine compression and archive format.
Let's then use tar directly instead of piping to tar.
Now USE_BZIP2 and USE_XZ only set EXTRACT_SUFX to the right format
Update to 2.0.8
ChangeLog:
Bug fixes
---------
* fixed #1515, log strings over 2KB were clipped when
query_log_format=plain
* fixed #1514, RT index disk chunk lose attribute update on daemon
restart
* fixed #1512, crash while formatting log messages
* fixed #1511, crash on indexing PostgreSQL data source with MVA
attributes
* fixed #1509, blend_chars vs incomplete multi-form and overshort
(Only the first 15 lines of the commit message are shown above )
Update to 2.0.6 release (1)
- trim Makefile headers
- remove files/patch-configure as it has been incorporated upstream
- Import a FreeBSD specific fix for shared mutex suppport from the
project SVN repo (2):
https://code.google.com/p/sphinxsearch/source/detail?r=3519
Feature safe: yes
Submitted by: (1) Portscout
(2) Denis <devzone.my@gmail.com>
Update distinfo for libstemmer_c.tgz -- upstream repackaged it
changing the size and hash of the tarball, but the contents are
identical to what there was previously. Personally verified.
Feature safe: yes
Submitted by: Denis <devzone.my (at) gmail.com>
* 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.
* Fix build with clang
PR: 164635
Submitted by: Matthew Seaman <m.seaman@infracaninophile.co.uk> (maintainer)
In the rc.d scripts, change assignments to rcvar to use the
literal name_enable wherever possible, and ${name}_enable
when it's not, to prepare for the demise of set_rcvar().
In cases where I had to hand-edit unusual instances also
modify formatting slightly to be more uniform (and in
some cases, correct). This includes adding some $FreeBSD$
tags, and most importantly moving rcvar= to right after
name= so it's clear that one is derived from the other.
- Add LDFLAGS to CONFIGURE_ENV and MAKE_ENV (as it was done with LDFLAGS)
- Fix all ports that add {CPP,LD}FLAGS to *_ENV to modify flags instead
PR: 157936
Submitted by: myself
Exp-runs by: pav
Approved by: pav
- Add an ID64 knob to toggle support for 64 bit identifiers in sphinxsearch.
- Force library dependency on expat. The configure script will automatically add
expat support if it detects it on the system, and there's no way of overriding
that. Means that previously, when installed from a binary package built on the
cluster, there was no expat support compiled in, but when compiled from source
there frequently would be. Therefore, for consistencies' sake, always depend
on expat.
PR: 127730
Submitted by: maintainer
Update CONFIGURE_ARGS for how we pass CONFIGURE_TARGET to configure script.
Specifically, newer autoconf (> 2.13) has different semantic of the
configure target. In short, one should use --build=CONFIGURE_TARGET
instead of CONFIGURE_TARGET directly. Otherwise, you will get a warning
and the old semantic may be removed in later autoconf releases.
To workaround this issue, many ports hack the CONFIGURE_TARGET variable
so that it contains the ``--build='' prefix.
To solve this issue, under the fact that some ports still have
configure script generated by the old autoconf, we use runtime detection
in the do-configure target so that the proper argument can be used.
Changes to Mk/*:
- Add runtime detection magic in bsd.port.mk
(Only the first 15 lines of the commit message are shown above )
- Correct an error that prevented the pre-start function running.
PR: 123051
Submitted by: Matthew Seaman <m.seaman@infracaninophile.co.uk> (maintainer)
Sphinx is a full-text search engine, distributed under GPL version
2. Commercial license is also available for embedded use.
Generally, it's a standalone search engine, meant to provide fast,
size-efficient and relevant fulltext search functions to other
applications. Sphinx was specially designed to integrate well with SQL
databases and scripting languages. Currently built-in data sources
support fetching data either via direct connection to MySQL, or from
an XML pipe.
As for the name, Sphinx is an acronym which is officially decoded as
SQL Phrase Index.
WWW: http://www.sphinxsearch.com/
PR: ports/105649
Submitted by: Matthew Seaman <m.seaman at infracaninophile.co.uk>