commit
f2b3f5ee2b
26
listen_local.patch
Normal file
26
listen_local.patch
Normal file
@ -0,0 +1,26 @@
|
||||
--- sphinx-2.2.11-release-orig/sphinx.conf.in 2019-09-05 08:57:23.608395395 -0400
|
||||
+++ sphinx-2.2.11-release/sphinx.conf.in 2019-09-05 08:56:43.568117907 -0400
|
||||
@@ -810,8 +810,8 @@
|
||||
# listen = 192.168.0.1:9312
|
||||
# listen = 9312
|
||||
# listen = /var/run/searchd.sock
|
||||
- listen = 9312
|
||||
- listen = 9306:mysql41
|
||||
+ listen = 127.0.0.1:9312
|
||||
+ listen = 127.0.0.1:9306:mysql41
|
||||
|
||||
# log file, searchd run info is logged here
|
||||
# optional, default is 'searchd.log'
|
||||
--- sphinx-2.2.11-release-orig/sphinx-min.conf.in 2019-09-05 08:59:14.851388059 -0400
|
||||
+++ sphinx-2.2.11-release/sphinx-min.conf.in 2019-09-05 08:59:44.248857589 -0400
|
||||
@@ -49,8 +49,8 @@
|
||||
|
||||
searchd
|
||||
{
|
||||
- listen = 9312
|
||||
- listen = 9306:mysql41
|
||||
+ listen = 127.0.0.1:9312
|
||||
+ listen = 127.0.0.1:9306:mysql41
|
||||
log = @CONFDIR@/log/searchd.log
|
||||
query_log = @CONFDIR@/log/query.log
|
||||
read_timeout = 5
|
||||
12
searchd.service
Normal file
12
searchd.service
Normal file
@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=Sphinx - SQL Full Text Search Engine
|
||||
After=local-fs.target network.target
|
||||
|
||||
[Service]
|
||||
User=sphinx
|
||||
Type=forking
|
||||
PIDFile=/run/sphinx/searchd.pid
|
||||
ExecStart=/usr/bin/searchd --config /etc/sphinx/sphinx.conf
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
22
sphinx-2.0.3-fix_static.patch
Normal file
22
sphinx-2.0.3-fix_static.patch
Normal file
@ -0,0 +1,22 @@
|
||||
--- sphinx-2.0.3-release/api/libsphinxclient/sphinxclient.c~ 2011-11-13 06:40:26.000000000 -0600
|
||||
+++ sphinx-2.0.3-release/api/libsphinxclient/sphinxclient.c 2012-02-14 13:45:50.444826859 -0600
|
||||
@@ -290,7 +290,7 @@
|
||||
}
|
||||
|
||||
|
||||
-void sock_close ( int sock );
|
||||
+static sock_close ( int sock );
|
||||
|
||||
|
||||
#define safe_free(_ptr) \
|
||||
--- sphinx-2.0.3-release/api/libsphinxclient/sphinxclient.c~ 2012-02-14 13:50:33.000000000 -0600
|
||||
+++ sphinx-2.0.3-release/api/libsphinxclient/sphinxclient.c 2012-02-14 13:54:50.527389085 -0600
|
||||
@@ -1253,7 +1253,7 @@
|
||||
}
|
||||
|
||||
|
||||
-void sock_close ( int sock )
|
||||
+static sock_close ( int sock )
|
||||
{
|
||||
if ( sock<0 )
|
||||
return;
|
||||
BIN
sphinx-2.2.11-release.tar.gz
Normal file
BIN
sphinx-2.2.11-release.tar.gz
Normal file
Binary file not shown.
227
sphinx.spec
Normal file
227
sphinx.spec
Normal file
@ -0,0 +1,227 @@
|
||||
%global sphinx_user sphinx
|
||||
%global sphinx_group sphinx
|
||||
%global sphinx_home %{_localstatedir}/lib/sphinx
|
||||
|
||||
Name: sphinx
|
||||
Version: 2.2.11
|
||||
Release: 1
|
||||
Summary: Free open-source SQL full-text search engine
|
||||
License: GPLv2+
|
||||
URL: http://sphinxsearch.com
|
||||
Source0: http://sphinxsearch.com/files/%{name}-%{version}-release.tar.gz
|
||||
Source1: searchd.service
|
||||
|
||||
Patch0001: %{name}-2.0.3-fix_static.patch
|
||||
Patch0002: listen_local.patch
|
||||
|
||||
BuildRequires: gcc gcc-c++ expat-devel mariadb-connector-c-devel openssl-devel libpq-devel systemd
|
||||
Requires(post): systemd
|
||||
Requires(preun): systemd
|
||||
Requires(postun): systemd
|
||||
Requires(pre): shadow-utils
|
||||
|
||||
%description
|
||||
Sphinx is a full-text search engine, distributed under GPL version 2.
|
||||
Commercial licensing (e.g. for embedded use) is also available upon request.
|
||||
Generally, it's a standalone search engine, meant to provide fast,
|
||||
size-efficient and relevant full-text search functions to other
|
||||
applications. Sphinx was specially designed to integrate well with SQL
|
||||
databases and scripting languages.
|
||||
Currently built-in data source drivers support fetching data either via
|
||||
direct connection to MySQL, or PostgreSQL, or from a pipe in a custom XML
|
||||
format. Adding new drivers (e.g. native support other DBMSes) is
|
||||
designed to be as easy as possible.
|
||||
Search API native ported to PHP, Python, Perl, Ruby, Java, and also
|
||||
available as a plug-gable MySQL storage engine. API is very lightweight so
|
||||
porting it to new language is known to take a few hours.
|
||||
As for the name, Sphinx is an acronym which is officially decoded as SQL
|
||||
Phrase Index. Yes, I know about CMU's Sphinx project.
|
||||
|
||||
%package -n libsphinxclient
|
||||
Summary: Pure C search-d client API library
|
||||
|
||||
%description -n libsphinxclient
|
||||
Pure C search-d client API library
|
||||
Sphinx search engine, http://sphinxsearch.com/
|
||||
|
||||
%package -n libsphinxclient-devel
|
||||
Summary: Development libraries and header files for libsphinxclient
|
||||
Requires: libsphinxclient = %{version}-%{release}
|
||||
|
||||
%description -n libsphinxclient-devel
|
||||
Pure C search-d client API library
|
||||
Sphinx search engine, http://sphinxsearch.com/
|
||||
|
||||
%package java
|
||||
Summary: Java API for Sphinx
|
||||
BuildRequires: java-devel
|
||||
Requires: java-headless jpackage-utils
|
||||
|
||||
%description java
|
||||
This package provides the Java API for Sphinx,
|
||||
the free, open-source full-text search engine,
|
||||
designed with indexing database content in mind.
|
||||
|
||||
%package php
|
||||
Summary: PHP API for Sphinx
|
||||
Requires: php-common >= 5.1.6
|
||||
|
||||
%description php
|
||||
This package provides the PHP API for Sphinx,
|
||||
the free, open-source full-text search engine,
|
||||
designed with indexing database content in mind.
|
||||
|
||||
%package_help
|
||||
|
||||
%prep
|
||||
%autosetup -n %{name}-%{version}-release -p1
|
||||
|
||||
# Fix wrong-file-end-of-line-encoding
|
||||
for f in \
|
||||
api/java/mk.cmd \
|
||||
api/ruby/test.rb \
|
||||
api/ruby/spec/%{name}/%{name}_test.sql \
|
||||
api/ruby/spec/%{name}/%{name}_test.sql \
|
||||
; do
|
||||
sed -i 's/\r$//' ${f};
|
||||
done
|
||||
|
||||
# Fix file not UTF8
|
||||
iconv -f iso8859-1 -t utf-8 doc/%{name}.txt > doc/%{name}.txt.conv && mv -f doc/%{name}.txt.conv doc/%{name}.txt
|
||||
|
||||
%build
|
||||
%configure --sysconfdir=%{_sysconfdir}/%{name} --with-mysql --with-pgsql --enable-id64
|
||||
make %{?_smp_mflags}
|
||||
pushd api/libsphinxclient
|
||||
%configure
|
||||
make #%{?_smp_mflags}
|
||||
popd
|
||||
make -C api/java
|
||||
|
||||
%install
|
||||
%make_install
|
||||
install -p -D -m 0644 %{SOURCE1} $RPM_BUILD_ROOT%{_unitdir}/searchd.service
|
||||
# Create /var/log/sphinx
|
||||
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/%{name}
|
||||
# Create /var/run/sphinx
|
||||
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/%{name}
|
||||
# Create /var/lib/sphinx
|
||||
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}
|
||||
# Create sphinx.conf
|
||||
cp $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/%{name}-min.conf.dist \
|
||||
$RPM_BUILD_ROOT%{_sysconfdir}/%{name}/%{name}.conf
|
||||
# Modify sphinx.conf
|
||||
sed -i 's|/var/log/searchd.log|%{_localstatedir}/log/%{name}/searchd.log|g' \
|
||||
$RPM_BUILD_ROOT%{_sysconfdir}/%{name}/%{name}.conf
|
||||
sed -i 's|/var/log/query.log|%{_localstatedir}/log/%{name}/query.log|g' \
|
||||
$RPM_BUILD_ROOT%{_sysconfdir}/%{name}/%{name}.conf
|
||||
sed -i 's|/var/log/searchd.pid|%{_localstatedir}/run/%{name}/searchd.pid|g' \
|
||||
$RPM_BUILD_ROOT%{_sysconfdir}/%{name}/%{name}.conf
|
||||
sed -i 's|/var/data|%{_localstatedir}/lib/sphinx|g' \
|
||||
$RPM_BUILD_ROOT%{_sysconfdir}/%{name}/%{name}.conf
|
||||
# Create /etc/logrotate.d/sphinx
|
||||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
|
||||
cat > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name} << EOF
|
||||
%{_localstatedir}/log/%{name}/*.log {
|
||||
weekly
|
||||
rotate 10
|
||||
copytruncate
|
||||
delaycompress
|
||||
compress
|
||||
notifempty
|
||||
missingok
|
||||
}
|
||||
EOF
|
||||
# Create tmpfile run configuration
|
||||
mkdir -p $RPM_BUILD_ROOT%{_tmpfilesdir}
|
||||
cat > $RPM_BUILD_ROOT%{_tmpfilesdir}/%{name}.conf << EOF
|
||||
d /run/%{name} 755 %{name} root -
|
||||
EOF
|
||||
# Install libsphinxclient
|
||||
pushd api/libsphinxclient/
|
||||
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="%{__install} -p -c"
|
||||
popd
|
||||
# install the java api
|
||||
mkdir -p $RPM_BUILD_ROOT%{_javadir}
|
||||
install -m 0644 api/java/%{name}api.jar \
|
||||
$RPM_BUILD_ROOT%{_javadir}/%{name}.jar
|
||||
ln -s %{_javadir}/%{name}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}api.jar
|
||||
# install the php api
|
||||
# "Non-PEAR PHP extensions should put their Class files in /usr/share/php."
|
||||
# - http://fedoraproject.org/wiki/Packaging:PHP
|
||||
install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/php
|
||||
install -m 0644 api/%{name}api.php $RPM_BUILD_ROOT%{_datadir}/php
|
||||
# clean-up .la archives
|
||||
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
|
||||
# clean-up .a archives
|
||||
find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';'
|
||||
|
||||
%pre
|
||||
getent group %{sphinx_group} >/dev/null || groupadd -r %{sphinx_group}
|
||||
getent passwd %{sphinx_user} >/dev/null || \
|
||||
useradd -r -g %{sphinx_group} -d %{sphinx_home} -s /bin/bash \
|
||||
-c "Sphinx Search" %{sphinx_user}
|
||||
exit 0
|
||||
|
||||
%post
|
||||
%systemd_post searchd.service
|
||||
|
||||
%preun
|
||||
%systemd_preun searchd.service
|
||||
%ldconfig_scriptlets -n libsphinxclient
|
||||
|
||||
%postun
|
||||
%systemd_postun_with_restart searchd.service
|
||||
%posttrans
|
||||
chown -R %{sphinx_user}:root %{_localstatedir}/log/%{name}/
|
||||
chown -R %{sphinx_user}:root %{_localstatedir}/run/%{name}/
|
||||
chown -R %{sphinx_user}:root %{_localstatedir}/lib/%{name}/
|
||||
%triggerun -- sphinx < 2.0.3-1
|
||||
# Save the current service runlevel info
|
||||
# User must manually run systemd-sysv-convert --apply httpd
|
||||
# to migrate them to systemd targets
|
||||
/usr/bin/systemd-sysv-convert --save searchd >/dev/null 2>&1 ||:
|
||||
# Run these because the SysV package being removed won't do them
|
||||
/sbin/chkconfig --del searchd >/dev/null 2>&1 || :
|
||||
/bin/systemctl try-restart searchd.service >/dev/null 2>&1 || :
|
||||
|
||||
%files
|
||||
%defattr(-, root, root)
|
||||
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
|
||||
%config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf
|
||||
%exclude %{_sysconfdir}/%{name}/*.conf.dist
|
||||
%exclude %{_sysconfdir}/%{name}/example.sql
|
||||
%{_bindir}/*
|
||||
%{_unitdir}/searchd.service
|
||||
%{_tmpfilesdir}/%{name}.conf
|
||||
%dir %{_sysconfdir}/sphinx
|
||||
%dir %attr(0755, %{sphinx_user}, root) %{_localstatedir}/log/%{name}
|
||||
%dir %attr(0755, %{sphinx_user}, root) %{_localstatedir}/run/%{name}
|
||||
%dir %attr(0755, %{sphinx_user}, root) %{_localstatedir}/lib/%{name}
|
||||
|
||||
%files -n libsphinxclient
|
||||
%defattr(-, root, root)
|
||||
%{_libdir}/libsphinxclient-0*.so
|
||||
|
||||
%files -n libsphinxclient-devel
|
||||
%defattr(-, root, root)
|
||||
%{_libdir}/libsphinxclient.so
|
||||
%{_includedir}/*
|
||||
|
||||
%files java
|
||||
%defattr(-, root, root)
|
||||
%{_javadir}/*
|
||||
|
||||
%files php
|
||||
%defattr(-, root, root)
|
||||
%{_datadir}/php/*
|
||||
|
||||
%files help
|
||||
%defattr(-, root, root)
|
||||
%doc COPYING doc/sphinx.txt sphinx-min.conf.dist sphinx.conf.dist example.sql api/java api/ruby api/*.php api/*.py
|
||||
%doc api/libsphinxclient/README api/java/README
|
||||
%{_mandir}/man1/*
|
||||
|
||||
%changelog
|
||||
* Fri Mar 06 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.2.11-1
|
||||
- Package init
|
||||
Loading…
x
Reference in New Issue
Block a user