diff options
| -rw-r--r-- | Makefile | 4 | ||||
| -rw-r--r-- | docs/admin/installation-nginx.rst | 2 | ||||
| -rw-r--r-- | requirements-dev.txt | 8 | ||||
| -rw-r--r-- | requirements.txt | 6 | ||||
| -rw-r--r-- | searx/__init__.py | 9 | ||||
| -rw-r--r-- | searx/poolrequests.py | 30 | ||||
| -rwxr-xr-x | searx/webapp.py | 7 | ||||
| -rw-r--r-- | utils/makefile.sphinx | 30 |
8 files changed, 40 insertions, 56 deletions
@@ -80,11 +80,11 @@ run: buildenv pyenvinstall sphinx-doc-prebuilds:: buildenv pyenvinstall prebuild-includes PHONY += docs -docs: sphinx-doc-prebuilds sphinx-doc +docs: sphinx-doc-prebuilds $(call cmd,sphinx,html,docs,docs) PHONY += docs-live -docs-live: sphinx-doc-prebuilds sphinx-live +docs-live: sphinx-doc-prebuilds $(call cmd,sphinx_autobuild,html,docs,docs) PHONY += prebuild-includes diff --git a/docs/admin/installation-nginx.rst b/docs/admin/installation-nginx.rst index 5e32d9684..65fd73573 100644 --- a/docs/admin/installation-nginx.rst +++ b/docs/admin/installation-nginx.rst @@ -189,7 +189,7 @@ Started wiki`_ is always a good resource *to keep in the pocket*. } location /searx/static { - /usr/local/searx/searx-src/searx/static; + alias /usr/local/searx/searx-src/searx/static; } diff --git a/requirements-dev.txt b/requirements-dev.txt index 136d7457d..c94d4af3f 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -12,9 +12,13 @@ selenium==3.141.0 twine==3.2.0; python_version >= "3.6" twine==1.15.0; python_version < "3.6" Pallets-Sphinx-Themes==1.2.3 -Sphinx==3.0.1 +Sphinx==3.2.1; python_version >= '3.6' +Sphinx==3.0.1; python_version < '3.6' sphinx-issues==1.2.0 sphinx-jinja==1.1.1 -sphinx-tabs==1.1.13 +sphinx-tabs==1.3.0; python_version >= '3.6' +sphinx-tabs==1.1.13; python_version < '3.6' sphinxcontrib-programoutput==0.16 +sphinx-autobuild==2020.9.1; python_version >= '3.6' +sphinx-autobuild==0.7.1; python_version < '3.6' linuxdoc @ git+http://github.com/return42/linuxdoc.git@70673dcf69e705e08d81f53794895dc15c4920b3#egg=linuxdoc diff --git a/requirements.txt b/requirements.txt index 5d508d7ee..a3350d2d2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,12 +1,12 @@ -certifi==2020.4.5.1 +certifi==2020.6.20 babel==2.7.0 flask-babel==1.0.0 flask==1.1.2 -idna==2.9 +idna==2.10 jinja2==2.11.1 lxml==4.5.0 pygments==2.1.3 pyopenssl==19.1.0 python-dateutil==2.8.0 pyyaml==5.3.1 -requests[socks]==2.23.0 +requests[socks]==2.24.0 diff --git a/searx/__init__.py b/searx/__init__.py index 80a7ffc76..b90cf5358 100644 --- a/searx/__init__.py +++ b/searx/__init__.py @@ -15,12 +15,10 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >. (C) 2013- by Adam Tauber, <asciimoo@gmail.com> ''' -import certifi import logging from os import environ from os.path import realpath, dirname, join, abspath, isfile from io import open -from ssl import OPENSSL_VERSION_INFO, OPENSSL_VERSION from yaml import safe_load @@ -81,13 +79,6 @@ else: logger = logging.getLogger('searx') logger.debug('read configuration from %s', settings_path) -# Workaround for openssl versions <1.0.2 -# https://github.com/certifi/python-certifi/issues/26 -if OPENSSL_VERSION_INFO[0:3] < (1, 0, 2): - if hasattr(certifi, 'old_where'): - environ['REQUESTS_CA_BUNDLE'] = certifi.old_where() - logger.warning('You are using an old openssl version({0}), please upgrade above 1.0.2!'.format(OPENSSL_VERSION)) - logger.info('Initialisation done') if 'SEARX_SECRET' in environ: diff --git a/searx/poolrequests.py b/searx/poolrequests.py index 51b6219c3..e03797ce2 100644 --- a/searx/poolrequests.py +++ b/searx/poolrequests.py @@ -1,9 +1,33 @@ -import requests - +import sys +from time import time from itertools import cycle from threading import RLock, local + +import requests + from searx import settings -from time import time +from searx import logger + + +logger = logger.getChild('poolrequests') + + +try: + import ssl + if ssl.OPENSSL_VERSION_INFO[0:3] < (1, 0, 2): + # https://github.com/certifi/python-certifi#1024-bit-root-certificates + logger.critical('You are using an old openssl version({0}), please upgrade above 1.0.2!' + .format(ssl.OPENSSL_VERSION)) + sys.exit(1) +except ImportError: + ssl = None +if not getattr(ssl, "HAS_SNI", False): + try: + import OpenSSL # pylint: disable=unused-import + except ImportError: + logger.critical("ssl doesn't support SNI and the pyopenssl module is not installed.\n" + "Some HTTPS connections will fail") + sys.exit(1) class HTTPAdapterWithConnParams(requests.adapters.HTTPAdapter): diff --git a/searx/webapp.py b/searx/webapp.py index f3bbbc2b8..5723734c1 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -79,13 +79,6 @@ from searx.plugins.oa_doi_rewrite import get_doi_resolver from searx.preferences import Preferences, ValidationException, LANGUAGE_CODES from searx.answerers import answerers -# check if the pyopenssl package is installed. -# It is needed for SSL connection without trouble, see #298 -try: - import OpenSSL.SSL # NOQA -except ImportError: - logger.critical("The pyopenssl package has to be installed.\n" - "Some HTTPS connections will fail") # serve pages with HTTP/1.1 from werkzeug.serving import WSGIRequestHandler diff --git a/utils/makefile.sphinx b/utils/makefile.sphinx index 1b0f42ccb..a9931ec78 100644 --- a/utils/makefile.sphinx +++ b/utils/makefile.sphinx @@ -21,23 +21,6 @@ else SPHINX_VERBOSE = endif -## SPHINXVERS variable -## =================== -## -## .. _requirement-specifiers: https://pip.pypa.io/en/stable/reference/pip_install/#requirement-specifiers -## -## Sphinx version to use, when building documentation. Set this when calling -## build target. The default value is empty (install latest), to select a -## specific version use a requirement-specifiers_. E.g. to build your target -## 'doc' with a select sphinx-doc_ version 1.7.9:: -## -## make SPHINXVERS='==1.7.9' docs -## -## To build with latest 1.7:: -## -## make SPHINXVERS='>=1.7,<1.8' docs -## -SPHINXVERS ?= docs-help: @echo 'makefile.sphinx:' @@ -56,17 +39,6 @@ docs-help: # requirements # ------------------------------------------------------------------------------ -sphinx-doc-prebuilds:: $(PY_ENV) - -sphinx-doc: sphinx-doc-prebuilds - @echo "PYENV installing Sphinx$(SPHINXVERS)" - $(Q)$(PY_ENV_BIN)/pip install $(PIP_VERBOSE) 'Sphinx$(SPHINXVERS)' - -sphinx-live: sphinx-doc-prebuilds - @echo "PYENV installing Sphinx$(SPHINXVERS)" - $(Q)$(PY_ENV_BIN)/pip install $(PIP_VERBOSE) 'Sphinx$(SPHINXVERS)' sphinx-autobuild - - PHONY += msg-texlive texlive ifeq ($(shell which xelatex >/dev/null 2>&1; echo $$?), 1) @@ -107,7 +79,7 @@ quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(DOCS_DIST)/$5) -b $2 -c $3 -d $(DOCS_BUILD)/.doctrees $4 $(DOCS_DIST)/$5 quiet_cmd_sphinx_autobuild = SPHINX $@ --> file://$(abspath $(DOCS_DIST)/$5) - cmd_sphinx_autobuild = PATH="$(PY_ENV_BIN):$(PATH)" $(PY_ENV_BIN)/sphinx-autobuild $(SPHINX_VERBOSE) --poll -B --host 0.0.0.0 --port 8080 $(SPHINXOPTS)\ + cmd_sphinx_autobuild = PATH="$(PY_ENV_BIN):$(PATH)" $(PY_ENV_BIN)/sphinx-autobuild $(SPHINX_VERBOSE) --open-browser --host 0.0.0.0 --port 8080 $(SPHINXOPTS)\ -b $2 -c $3 -d $(DOCS_BUILD)/.doctrees $4 $(DOCS_DIST)/$5 quiet_cmd_sphinx_clean = CLEAN $@ |