Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/certbot/certbot.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'letsencrypt-auto-source/pieces/bootstrappers/rpm_python3_legacy.sh')
-rw-r--r--letsencrypt-auto-source/pieces/bootstrappers/rpm_python3_legacy.sh78
1 files changed, 78 insertions, 0 deletions
diff --git a/letsencrypt-auto-source/pieces/bootstrappers/rpm_python3_legacy.sh b/letsencrypt-auto-source/pieces/bootstrappers/rpm_python3_legacy.sh
new file mode 100644
index 000000000..febfc7a83
--- /dev/null
+++ b/letsencrypt-auto-source/pieces/bootstrappers/rpm_python3_legacy.sh
@@ -0,0 +1,78 @@
+# If new packages are installed by BootstrapRpmPython3 below, this version
+# number must be increased.
+BOOTSTRAP_RPM_PYTHON3_LEGACY_VERSION=1
+
+# Checks if rh-python36 can be installed.
+Python36SclIsAvailable() {
+ InitializeRPMCommonBase >/dev/null 2>&1;
+
+ if "${TOOL}" list rh-python36 >/dev/null 2>&1; then
+ return 0
+ fi
+ if "${TOOL}" list centos-release-scl >/dev/null 2>&1; then
+ return 0
+ fi
+ return 1
+}
+
+# Try to enable rh-python36 from SCL if it is necessary and possible.
+EnablePython36SCL() {
+ if "$EXISTS" python3.6 > /dev/null 2> /dev/null; then
+ return 0
+ fi
+ if [ ! -f /opt/rh/rh-python36/enable ]; then
+ return 0
+ fi
+ set +e
+ if ! . /opt/rh/rh-python36/enable; then
+ error 'Unable to enable rh-python36!'
+ exit 1
+ fi
+ set -e
+}
+
+# This bootstrap concerns old RedHat-based distributions that do not ship by default
+# with Python 2.7, but only Python 2.6. We bootstrap them by enabling SCL and installing
+# Python 3.6. Some of these distributions are: CentOS/RHEL/OL/SL 6.
+BootstrapRpmPython3Legacy() {
+ # Tested with:
+ # - CentOS 6
+
+ InitializeRPMCommonBase
+
+ if ! "${TOOL}" list rh-python36 >/dev/null 2>&1; then
+ echo "To use Certbot on this operating system, packages from the SCL repository need to be installed."
+ if ! "${TOOL}" list centos-release-scl >/dev/null 2>&1; then
+ error "Enable the SCL repository and try running Certbot again."
+ exit 1
+ fi
+ if [ "${ASSUME_YES}" = 1 ]; then
+ /bin/echo -n "Enabling the SCL repository in 3 seconds... (Press Ctrl-C to cancel)"
+ sleep 1s
+ /bin/echo -ne "\e[0K\rEnabling the SCL repository in 2 seconds... (Press Ctrl-C to cancel)"
+ sleep 1s
+ /bin/echo -e "\e[0K\rEnabling the SCL repository in 1 second... (Press Ctrl-C to cancel)"
+ sleep 1s
+ fi
+ if ! "${TOOL}" install "${YES_FLAG}" "${QUIET_FLAG}" centos-release-scl; then
+ error "Could not enable SCL. Aborting bootstrap!"
+ exit 1
+ fi
+ fi
+
+ # CentOS 6 must use rh-python36 from SCL
+ if "${TOOL}" list rh-python36 >/dev/null 2>&1; then
+ python_pkgs="rh-python36-python
+ rh-python36-python-virtualenv
+ rh-python36-python-devel
+ "
+ else
+ error "No supported Python package available to install. Aborting bootstrap!"
+ exit 1
+ fi
+
+ BootstrapRpmCommonBase "${python_pkgs}"
+
+ # Enable SCL rh-python36 after bootstrapping.
+ EnablePython36SCL
+}