mirror of
				https://github.com/searxng/searxng.git
				synced 2025-11-03 19:17:07 -05:00 
			
		
		
		
	Merge pull request #2421 from return42/mod-pyenvinstall
[perf] optimize creation of the virtualenv & pyenvinstal targets
This commit is contained in:
		
						commit
						48b4af1e08
					
				
							
								
								
									
										14
									
								
								utils/lib.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								utils/lib.sh
									
									
									
									
									
								
							@ -41,7 +41,7 @@ DOT_CONFIG="${DOT_CONFIG:-${REPO_ROOT}/.config.sh}"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
source_dot_config() {
 | 
					source_dot_config() {
 | 
				
			||||||
    if [[ ! -e "${DOT_CONFIG}" ]]; then
 | 
					    if [[ ! -e "${DOT_CONFIG}" ]]; then
 | 
				
			||||||
        err_msg "configuration does not extsts at: ${DOT_CONFIG}"
 | 
					        err_msg "configuration does not exists at: ${DOT_CONFIG}"
 | 
				
			||||||
        return 42
 | 
					        return 42
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    # shellcheck disable=SC1090
 | 
					    # shellcheck disable=SC1090
 | 
				
			||||||
@ -159,7 +159,7 @@ clean_stdin() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
wait_key(){
 | 
					wait_key(){
 | 
				
			||||||
    # usage: waitKEY [<timeout in sec>]
 | 
					    # usage: wait_key [<timeout in sec>]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    clean_stdin
 | 
					    clean_stdin
 | 
				
			||||||
    local _t=$1
 | 
					    local _t=$1
 | 
				
			||||||
@ -639,7 +639,7 @@ nginx_distro_setup() {
 | 
				
			|||||||
    NGINX_DEFAULT_SERVER=/etc/nginx/nginx.conf
 | 
					    NGINX_DEFAULT_SERVER=/etc/nginx/nginx.conf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Including *location* directives from a dedicated config-folder into the
 | 
					    # Including *location* directives from a dedicated config-folder into the
 | 
				
			||||||
    # server directive is, what what fedora and centos (already) does.
 | 
					    # server directive is, what fedora and centos (already) does.
 | 
				
			||||||
    NGINX_APPS_ENABLED="/etc/nginx/default.d"
 | 
					    NGINX_APPS_ENABLED="/etc/nginx/default.d"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # We add a apps-available folder and linking configurations into the
 | 
					    # We add a apps-available folder and linking configurations into the
 | 
				
			||||||
@ -692,7 +692,7 @@ nginx_reload() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
nginx_install_app() {
 | 
					nginx_install_app() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # usage:  nginx_install_app [<template option> ...] <myapp>
 | 
					    # usage:  nginx_install_app [<template option> ...] <myapp.conf>
 | 
				
			||||||
    #
 | 
					    #
 | 
				
			||||||
    # <template option>:   see install_template
 | 
					    # <template option>:   see install_template
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1381,7 +1381,7 @@ in_container() {
 | 
				
			|||||||
LXC_ENV_FOLDER=
 | 
					LXC_ENV_FOLDER=
 | 
				
			||||||
if in_container; then
 | 
					if in_container; then
 | 
				
			||||||
    # shellcheck disable=SC2034
 | 
					    # shellcheck disable=SC2034
 | 
				
			||||||
    LXC_ENV_FOLDER="lxc/$(hostname)/"
 | 
					    LXC_ENV_FOLDER="lxc-env/$(hostname)/"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
lxc_init_container_env() {
 | 
					lxc_init_container_env() {
 | 
				
			||||||
@ -1413,8 +1413,8 @@ LXC_BASE_PACKAGES_centos="bash git python3"
 | 
				
			|||||||
case $DIST_ID in
 | 
					case $DIST_ID in
 | 
				
			||||||
    ubuntu|debian) LXC_BASE_PACKAGES="${LXC_BASE_PACKAGES_debian}" ;;
 | 
					    ubuntu|debian) LXC_BASE_PACKAGES="${LXC_BASE_PACKAGES_debian}" ;;
 | 
				
			||||||
    arch)          LXC_BASE_PACKAGES="${LXC_BASE_PACKAGES_arch}" ;;
 | 
					    arch)          LXC_BASE_PACKAGES="${LXC_BASE_PACKAGES_arch}" ;;
 | 
				
			||||||
    fedora) LXC_BASE_PACKAGES="${LXC_BASE_PACKAGES_fedora}" ;;
 | 
					    fedora)        LXC_BASE_PACKAGES="${LXC_BASE_PACKAGES_fedora}" ;;
 | 
				
			||||||
    centos) LXC_BASE_PACKAGES="${LXC_BASE_PACKAGES_centos}" ;;
 | 
					    centos)        LXC_BASE_PACKAGES="${LXC_BASE_PACKAGES_centos}" ;;
 | 
				
			||||||
    *) err_msg "$DIST_ID-$DIST_VERS: pkg_install LXC_BASE_PACKAGES not yet implemented" ;;
 | 
					    *) err_msg "$DIST_ID-$DIST_VERS: pkg_install LXC_BASE_PACKAGES not yet implemented" ;;
 | 
				
			||||||
esac
 | 
					esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@ PHONY += lxc-activate lxc-purge
 | 
				
			|||||||
lxc-activate:
 | 
					lxc-activate:
 | 
				
			||||||
	@$(MAKE) -s -f "$$(dirname $(abspath $(lastword $(MAKEFILE_LIST))))/makefile.lxc" lxc-activate
 | 
						@$(MAKE) -s -f "$$(dirname $(abspath $(lastword $(MAKEFILE_LIST))))/makefile.lxc" lxc-activate
 | 
				
			||||||
lxc-purge:
 | 
					lxc-purge:
 | 
				
			||||||
	$(Q)rm -rf ./lxc
 | 
						$(Q)rm -rf ./lxc-env
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
	include /.lxcenv.mk
 | 
						include /.lxcenv.mk
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
				
			|||||||
@ -9,10 +9,10 @@
 | 
				
			|||||||
#   sudo make ./utils/makefile.lxc lxc-activate
 | 
					#   sudo make ./utils/makefile.lxc lxc-activate
 | 
				
			||||||
#   sudo make ./utils/makefile.lxc lxc-deactivate
 | 
					#   sudo make ./utils/makefile.lxc lxc-deactivate
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LXC_ENV_FOLDER=lxc/$(shell hostname)/
 | 
					LXC_ENV_FOLDER=lxc-env/$(shell hostname)/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
lxc-help::
 | 
					lxc-help::
 | 
				
			||||||
	@echo  'LXC: running in container LXC_ENV_FOLDER=$(LXC_ENV_FOLDER)'
 | 
						@echo  '  LXC: running in container LXC_ENV_FOLDER=$(LXC_ENV_FOLDER)'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# If not activated, serve target 'lxc-activate' ..
 | 
					# If not activated, serve target 'lxc-activate' ..
 | 
				
			||||||
ifeq (,$(wildcard /.lxcenv.mk))
 | 
					ifeq (,$(wildcard /.lxcenv.mk))
 | 
				
			||||||
@ -24,6 +24,9 @@ else
 | 
				
			|||||||
PHONY += lxc-deactivate
 | 
					PHONY += lxc-deactivate
 | 
				
			||||||
lxc-deactivate:
 | 
					lxc-deactivate:
 | 
				
			||||||
	rm /.lxcenv.mk
 | 
						rm /.lxcenv.mk
 | 
				
			||||||
 | 
					$(LXC_ENV_FOLDER):
 | 
				
			||||||
 | 
						$(Q)mkdir -p $(LXC_ENV_FOLDER)
 | 
				
			||||||
 | 
						$(Q)echo placeholder > $(LXC_ENV_FOLDER).placeholder
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: $(PHONY)
 | 
					.PHONY: $(PHONY)
 | 
				
			||||||
 | 
				
			|||||||
@ -75,7 +75,9 @@ msg-python-exe:
 | 
				
			|||||||
  https://www.python.org or install it from your package\n\
 | 
					  https://www.python.org or install it from your package\n\
 | 
				
			||||||
  manager. On debian based OS these requirements are\n\
 | 
					  manager. On debian based OS these requirements are\n\
 | 
				
			||||||
  installed by::\n\n\
 | 
					  installed by::\n\n\
 | 
				
			||||||
    sudo -H apt-get install $(PYTHON)\n" | $(FMT)
 | 
					    sudo -H add-apt-repository ppa:deadsnakes/ppa\n\
 | 
				
			||||||
 | 
					    sudo -H apt update\n\
 | 
				
			||||||
 | 
					    sudo -H apt-get install $(PYTHON) $(PYTHON)-venv\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(shell which $(PYTHON) >/dev/null 2>&1; echo $$?), 1)
 | 
					ifeq ($(shell which $(PYTHON) >/dev/null 2>&1; echo $$?), 1)
 | 
				
			||||||
python-exe: msg-python-exe
 | 
					python-exe: msg-python-exe
 | 
				
			||||||
@ -95,7 +97,13 @@ quiet_cmd_pyinstall = INSTALL   $2
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# $2 path to folder with setup.py, this uses pip from pyenv (not OS!)
 | 
					# $2 path to folder with setup.py, this uses pip from pyenv (not OS!)
 | 
				
			||||||
quiet_cmd_pyenvinstall = PYENV     install $2
 | 
					quiet_cmd_pyenvinstall = PYENV     install $2
 | 
				
			||||||
      cmd_pyenvinstall = $(PY_ENV_BIN)/python -m pip $(PIP_VERBOSE) install -e $2$(PY_SETUP_EXTRAS)
 | 
					      cmd_pyenvinstall = \
 | 
				
			||||||
 | 
						if ! cat $(PY_ENV)/requirements.sha256 2>/dev/null | sha256sum --check --status 2>/dev/null; then \
 | 
				
			||||||
 | 
							$(PY_ENV_BIN)/python -m pip $(PIP_VERBOSE) install -e $2$(PY_SETUP_EXTRAS) ;\
 | 
				
			||||||
 | 
							sha256sum requirements*.txt > $(PY_ENV)/requirements.sha256 ;\
 | 
				
			||||||
 | 
						else \
 | 
				
			||||||
 | 
							echo "PYENV     $2 already installed"; \
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Uninstall the package.  Since pip does not uninstall the no longer needed
 | 
					# Uninstall the package.  Since pip does not uninstall the no longer needed
 | 
				
			||||||
# depencies (something like autoremove) the depencies remain.
 | 
					# depencies (something like autoremove) the depencies remain.
 | 
				
			||||||
@ -113,6 +121,8 @@ quiet_cmd_virtualenv  = PYENV     usage: $ source ./$@/bin/activate
 | 
				
			|||||||
      cmd_virtualenv  = \
 | 
					      cmd_virtualenv  = \
 | 
				
			||||||
	if [ ! -d "./$(PY_ENV)" ];then                                  \
 | 
						if [ ! -d "./$(PY_ENV)" ];then                                  \
 | 
				
			||||||
		$(PYTHON) -m venv $(VTENV_OPTS) $2;                     \
 | 
							$(PYTHON) -m venv $(VTENV_OPTS) $2;                     \
 | 
				
			||||||
 | 
							$(PY_ENV_BIN)/python -m pip install $(PIP_VERBOSE) -U pip wheel setuptools; \
 | 
				
			||||||
 | 
							$(PY_ENV_BIN)/python -m pip install $(PIP_VERBOSE) -r requirements.txt;     \
 | 
				
			||||||
	else                                                            \
 | 
						else                                                            \
 | 
				
			||||||
		echo "PYENV     using virtualenv from $2";              \
 | 
							echo "PYENV     using virtualenv from $2";              \
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
@ -193,8 +203,6 @@ pyclean:
 | 
				
			|||||||
pyenv: $(PY_ENV)
 | 
					pyenv: $(PY_ENV)
 | 
				
			||||||
$(PY_ENV): python-exe
 | 
					$(PY_ENV): python-exe
 | 
				
			||||||
	$(call cmd,virtualenv,$(PY_ENV))
 | 
						$(call cmd,virtualenv,$(PY_ENV))
 | 
				
			||||||
	$(Q)$(PY_ENV_BIN)/python -m pip install $(PIP_VERBOSE) -U pip wheel pip setuptools
 | 
					 | 
				
			||||||
	$(Q)$(PY_ENV_BIN)/python -m pip install $(PIP_VERBOSE) -r requirements.txt
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
PHONY += pylint-exe
 | 
					PHONY += pylint-exe
 | 
				
			||||||
pylint-exe: $(PY_ENV)
 | 
					pylint-exe: $(PY_ENV)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user