summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--docs/admin/installation-nginx.rst2
-rw-r--r--requirements-dev.txt8
-rw-r--r--requirements.txt6
-rw-r--r--searx/__init__.py9
-rw-r--r--searx/poolrequests.py30
-rwxr-xr-xsearx/webapp.py7
-rw-r--r--utils/makefile.sphinx30
8 files changed, 40 insertions, 56 deletions
diff --git a/Makefile b/Makefile
index 9c6ebed81..520e05ad9 100644
--- a/Makefile
+++ b/Makefile
@@ -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 $@