mirror of
https://github.com/certbot/certbot.git
synced 2026-08-01 19:14:54 +02:00
Remove references to certbot-auto and letsencrypt-auto that we don't need for the final release (#8738)
Fixes #8661. As mentioned in https://github.com/certbot/certbot/issues/8661#issuecomment-806168214, there are quite a few remaining references, but until we modify the release script, we still need those. The changes here and the list there were created by grepping for the following terms: ``` certbot-auto cb-auto cbauto certbotauto letsencrypt-auto le-auto leauto letsencryptauto LEAUTO LE_AUTO LETSENCRYPT_AUTO LETSENCRYPTAUTO CB_AUTO CERTBOT_AUTO CBAUTO CERTBOTAUTO ``` * Remove references to certbot-auto from certbot code * Remove references to LEAUTO * Remove references to CERTBOT_AUTO * Remove references to letsencrypt-auto * Remove references to certbot-auto from docs and tools * remove cli constants header files * Remove Python virtual environment section
This commit is contained in:
@@ -14,9 +14,6 @@ from certbot._internal.cli.cli_constants import COMMAND_OVERVIEW
|
|||||||
from certbot._internal.cli.cli_constants import DEPRECATED_OPTIONS
|
from certbot._internal.cli.cli_constants import DEPRECATED_OPTIONS
|
||||||
from certbot._internal.cli.cli_constants import EXIT_ACTIONS
|
from certbot._internal.cli.cli_constants import EXIT_ACTIONS
|
||||||
from certbot._internal.cli.cli_constants import HELP_AND_VERSION_USAGE
|
from certbot._internal.cli.cli_constants import HELP_AND_VERSION_USAGE
|
||||||
from certbot._internal.cli.cli_constants import LEAUTO
|
|
||||||
from certbot._internal.cli.cli_constants import new_path_prefix
|
|
||||||
from certbot._internal.cli.cli_constants import old_path_fragment
|
|
||||||
from certbot._internal.cli.cli_constants import SHORT_USAGE
|
from certbot._internal.cli.cli_constants import SHORT_USAGE
|
||||||
from certbot._internal.cli.cli_constants import VAR_MODIFIERS
|
from certbot._internal.cli.cli_constants import VAR_MODIFIERS
|
||||||
from certbot._internal.cli.cli_constants import ZERO_ARG_ACTIONS
|
from certbot._internal.cli.cli_constants import ZERO_ARG_ACTIONS
|
||||||
|
|||||||
@@ -1,29 +1,5 @@
|
|||||||
"""Certbot command line constants"""
|
"""Certbot command line constants"""
|
||||||
import sys
|
cli_command = "certbot"
|
||||||
|
|
||||||
from certbot.compat import os
|
|
||||||
|
|
||||||
# For help strings, figure out how the user ran us.
|
|
||||||
# When invoked from letsencrypt-auto, sys.argv[0] is something like:
|
|
||||||
# "/home/user/.local/share/certbot/bin/certbot"
|
|
||||||
# Note that this won't work if the user set VENV_PATH or XDG_DATA_HOME before
|
|
||||||
# running letsencrypt-auto (and sudo stops us from seeing if they did), so it
|
|
||||||
# should only be used for purposes where inability to detect letsencrypt-auto
|
|
||||||
# fails safely
|
|
||||||
|
|
||||||
LEAUTO = "letsencrypt-auto"
|
|
||||||
if "CERTBOT_AUTO" in os.environ:
|
|
||||||
# if we're here, this is probably going to be certbot-auto, unless the
|
|
||||||
# user saved the script under a different name
|
|
||||||
LEAUTO = os.path.basename(os.environ["CERTBOT_AUTO"])
|
|
||||||
|
|
||||||
old_path_fragment = os.path.join(".local", "share", "letsencrypt")
|
|
||||||
new_path_prefix = os.path.abspath(os.path.join(os.sep, "opt",
|
|
||||||
"eff.org", "certbot", "venv"))
|
|
||||||
if old_path_fragment in sys.argv[0] or sys.argv[0].startswith(new_path_prefix):
|
|
||||||
cli_command = LEAUTO
|
|
||||||
else:
|
|
||||||
cli_command = "certbot"
|
|
||||||
|
|
||||||
|
|
||||||
# Argparse's help formatting has a lot of unhelpful peculiarities, so we want
|
# Argparse's help formatting has a lot of unhelpful peculiarities, so we want
|
||||||
|
|||||||
@@ -134,18 +134,9 @@ def choose_plugin(prepared, question):
|
|||||||
opts = [plugin_ep.description_with_name +
|
opts = [plugin_ep.description_with_name +
|
||||||
(" [Misconfigured]" if plugin_ep.misconfigured else "")
|
(" [Misconfigured]" if plugin_ep.misconfigured else "")
|
||||||
for plugin_ep in prepared]
|
for plugin_ep in prepared]
|
||||||
names = set(plugin_ep.name for plugin_ep in prepared)
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
disp = z_util(interfaces.IDisplay)
|
disp = z_util(interfaces.IDisplay)
|
||||||
if "CERTBOT_AUTO" in os.environ and names == {"apache", "nginx"}:
|
|
||||||
# The possibility of being offered exactly apache and nginx here
|
|
||||||
# is new interactivity brought by https://github.com/certbot/certbot/issues/4079,
|
|
||||||
# so set apache as a default for those kinds of non-interactive use
|
|
||||||
# (the user will get a warning to set --non-interactive or --force-interactive)
|
|
||||||
apache_idx = [n for n, p in enumerate(prepared) if p.name == "apache"][0]
|
|
||||||
code, index = disp.menu(question, opts, default=apache_idx)
|
|
||||||
else:
|
|
||||||
code, index = disp.menu(question, opts, force_interactive=True)
|
code, index = disp.menu(question, opts, force_interactive=True)
|
||||||
|
|
||||||
if code == display_util.OK:
|
if code == display_util.OK:
|
||||||
|
|||||||
@@ -222,8 +222,6 @@ certbot-apache and certbot-nginx
|
|||||||
client code to configure specific web servers
|
client code to configure specific web servers
|
||||||
certbot-dns-*
|
certbot-dns-*
|
||||||
client code to configure DNS providers
|
client code to configure DNS providers
|
||||||
certbot-auto and letsencrypt-auto
|
|
||||||
shell scripts to install Certbot and its dependencies on UNIX systems
|
|
||||||
windows installer
|
windows installer
|
||||||
Installs Certbot on Windows and is built using the files in windows-installer/
|
Installs Certbot on Windows and is built using the files in windows-installer/
|
||||||
|
|
||||||
@@ -548,53 +546,6 @@ Instructions for how to manually build and run the Certbot snap and the external
|
|||||||
snapped DNS plugins that the Certbot project supplies are located in the README
|
snapped DNS plugins that the Certbot project supplies are located in the README
|
||||||
file at https://github.com/certbot/certbot/tree/master/tools/snap.
|
file at https://github.com/certbot/certbot/tree/master/tools/snap.
|
||||||
|
|
||||||
Updating certbot-auto and letsencrypt-auto
|
|
||||||
==========================================
|
|
||||||
|
|
||||||
.. note:: We are currently only accepting changes to certbot-auto that fix
|
|
||||||
regressions on platforms where certbot-auto is the recommended installation
|
|
||||||
method at https://certbot.eff.org/instructions. If you are unsure if a change
|
|
||||||
you want to make qualifies, don't hesitate to `ask for help`_!
|
|
||||||
|
|
||||||
Updating the scripts
|
|
||||||
--------------------
|
|
||||||
Developers should *not* modify the ``certbot-auto`` and ``letsencrypt-auto`` files
|
|
||||||
in the root directory of the repository. Rather, modify the
|
|
||||||
``letsencrypt-auto.template`` and associated platform-specific shell scripts in
|
|
||||||
the ``letsencrypt-auto-source`` and
|
|
||||||
``letsencrypt-auto-source/pieces/bootstrappers`` directory, respectively.
|
|
||||||
|
|
||||||
Building letsencrypt-auto-source/letsencrypt-auto
|
|
||||||
-------------------------------------------------
|
|
||||||
Once changes to any of the aforementioned files have been made, the
|
|
||||||
``letsencrypt-auto-source/letsencrypt-auto`` script should be updated. In lieu of
|
|
||||||
manually updating this script, run the build script, which lives at
|
|
||||||
``letsencrypt-auto-source/build.py``:
|
|
||||||
|
|
||||||
.. code-block:: shell
|
|
||||||
|
|
||||||
python letsencrypt-auto-source/build.py
|
|
||||||
|
|
||||||
Running ``build.py`` will update the ``letsencrypt-auto-source/letsencrypt-auto``
|
|
||||||
script. Note that the ``certbot-auto`` and ``letsencrypt-auto`` scripts in the root
|
|
||||||
directory of the repository will remain **unchanged** after this script is run.
|
|
||||||
Your changes will be propagated to these files during the next release of
|
|
||||||
Certbot.
|
|
||||||
|
|
||||||
Opening a PR
|
|
||||||
------------
|
|
||||||
When opening a PR, ensure that the following files are committed:
|
|
||||||
|
|
||||||
1. ``letsencrypt-auto-source/letsencrypt-auto.template`` and
|
|
||||||
``letsencrypt-auto-source/pieces/bootstrappers/*``
|
|
||||||
2. ``letsencrypt-auto-source/letsencrypt-auto`` (generated by ``build.py``)
|
|
||||||
|
|
||||||
It might also be a good idea to double check that **no** changes were
|
|
||||||
inadvertently made to the ``certbot-auto`` or ``letsencrypt-auto`` scripts in the
|
|
||||||
root of the repository. These scripts will be updated by the core developers
|
|
||||||
during the next release.
|
|
||||||
|
|
||||||
|
|
||||||
Updating the documentation
|
Updating the documentation
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
|
|||||||
@@ -251,25 +251,6 @@ Certbot on UNIX operating systems, however, this script is no longer supported.
|
|||||||
If you want to uninstall ``certbot-auto``, you can follow our instructions
|
If you want to uninstall ``certbot-auto``, you can follow our instructions
|
||||||
:doc:`here <uninstall>`.
|
:doc:`here <uninstall>`.
|
||||||
|
|
||||||
Problems with Python virtual environment
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
When using ``certbot-auto`` on a low memory system such as VPS with less than
|
|
||||||
512MB of RAM, the required dependencies of Certbot may fail to build. This can
|
|
||||||
be identified if the pip outputs contains something like ``internal compiler
|
|
||||||
error: Killed (program cc1)``. You can workaround this restriction by creating
|
|
||||||
a temporary swapfile::
|
|
||||||
|
|
||||||
user@webserver:~$ sudo fallocate -l 1G /tmp/swapfile
|
|
||||||
user@webserver:~$ sudo chmod 600 /tmp/swapfile
|
|
||||||
user@webserver:~$ sudo mkswap /tmp/swapfile
|
|
||||||
user@webserver:~$ sudo swapon /tmp/swapfile
|
|
||||||
|
|
||||||
Disable and remove the swapfile once the virtual environment is constructed::
|
|
||||||
|
|
||||||
user@webserver:~$ sudo swapoff /tmp/swapfile
|
|
||||||
user@webserver:~$ sudo rm /tmp/swapfile
|
|
||||||
|
|
||||||
Pip
|
Pip
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ obtaining, renewing, or revoking certificates. The most important
|
|||||||
and commonly-used commands will be discussed throughout this
|
and commonly-used commands will be discussed throughout this
|
||||||
document; an exhaustive list also appears near the end of the document.
|
document; an exhaustive list also appears near the end of the document.
|
||||||
|
|
||||||
The ``certbot`` script on your web server might be named ``letsencrypt`` if your system uses an older package, or ``certbot-auto`` if you used an alternate installation method. Throughout the docs, whenever you see ``certbot``, swap in the correct name as needed.
|
The ``certbot`` script on your web server might be named ``letsencrypt`` if your system uses an older package, or ``certbot-auto`` if you used a now-deprecated installation method. Throughout the docs, whenever you see ``certbot``, swap in the correct name as needed.
|
||||||
|
|
||||||
.. _plugins:
|
.. _plugins:
|
||||||
|
|
||||||
@@ -420,7 +420,7 @@ option to control the curve used in ECDSA certificates.
|
|||||||
.. warning:: If you obtain certificates using ECDSA keys, you should be careful
|
.. warning:: If you obtain certificates using ECDSA keys, you should be careful
|
||||||
not to downgrade your Certbot installation since ECDSA keys are not
|
not to downgrade your Certbot installation since ECDSA keys are not
|
||||||
supported by older versions of Certbot. Downgrades like this are possible if
|
supported by older versions of Certbot. Downgrades like this are possible if
|
||||||
you switch from something like the snaps or certbot-auto to packages
|
you switch from something like the snaps or pip to packages
|
||||||
provided by your operating system which often lag behind.
|
provided by your operating system which often lag behind.
|
||||||
|
|
||||||
Changing existing certificates from RSA to ECDSA
|
Changing existing certificates from RSA to ECDSA
|
||||||
|
|||||||
@@ -166,7 +166,6 @@ class ParseTest(unittest.TestCase):
|
|||||||
self.assertTrue("--checkpoints" not in out)
|
self.assertTrue("--checkpoints" not in out)
|
||||||
|
|
||||||
out = self._help_output(['-h'])
|
out = self._help_output(['-h'])
|
||||||
self.assertTrue("letsencrypt-auto" not in out) # test cli.cli_command
|
|
||||||
if "nginx" in PLUGINS:
|
if "nginx" in PLUGINS:
|
||||||
self.assertTrue("Use the Nginx plugin" in out)
|
self.assertTrue("Use the Nginx plugin" in out)
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -155,26 +155,6 @@ class ChoosePluginTest(unittest.TestCase):
|
|||||||
mock_util().menu.return_value = (display_util.CANCEL, 0)
|
mock_util().menu.return_value = (display_util.CANCEL, 0)
|
||||||
self.assertTrue(self._call() is None)
|
self.assertTrue(self._call() is None)
|
||||||
|
|
||||||
@test_util.patch_get_utility("certbot._internal.plugins.selection.z_util")
|
|
||||||
def test_new_interaction_avoidance(self, mock_util):
|
|
||||||
mock_nginx = mock.Mock(
|
|
||||||
description_with_name="n", misconfigured=False)
|
|
||||||
mock_nginx.init().more_info.return_value = "nginx plugin"
|
|
||||||
mock_nginx.name = "nginx"
|
|
||||||
self.plugins[1] = mock_nginx
|
|
||||||
mock_util().menu.return_value = (display_util.CANCEL, 0)
|
|
||||||
|
|
||||||
unset_cb_auto = os.environ.get("CERTBOT_AUTO") is None
|
|
||||||
if unset_cb_auto:
|
|
||||||
os.environ["CERTBOT_AUTO"] = "foo"
|
|
||||||
try:
|
|
||||||
self._call()
|
|
||||||
finally:
|
|
||||||
if unset_cb_auto:
|
|
||||||
del os.environ["CERTBOT_AUTO"]
|
|
||||||
|
|
||||||
self.assertTrue("default" in mock_util().menu.call_args[1])
|
|
||||||
|
|
||||||
|
|
||||||
class GetUnpreparedInstallerTest(test_util.ConfigTestCase):
|
class GetUnpreparedInstallerTest(test_util.ConfigTestCase):
|
||||||
"""Tests for certbot._internal.plugins.selection.get_unprepared_installer."""
|
"""Tests for certbot._internal.plugins.selection.get_unprepared_installer."""
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
#!/bin/sh -xe
|
|
||||||
#
|
|
||||||
# This script is useful for testing that the packages we've built for a release
|
|
||||||
# work on a variety of systems. For an example of the kinds of problems that
|
|
||||||
# can occur, see https://github.com/certbot/certbot/issues/3455.
|
|
||||||
|
|
||||||
REPO_ROOT="letsencrypt"
|
|
||||||
LE_AUTO="$REPO_ROOT/letsencrypt-auto-source/letsencrypt-auto"
|
|
||||||
LE_AUTO="$LE_AUTO --debug --no-self-upgrade --non-interactive"
|
|
||||||
MODULES="acme certbot certbot-apache certbot-nginx"
|
|
||||||
PIP_INSTALL="tools/pip_install.py"
|
|
||||||
VENV_NAME=venv
|
|
||||||
BOOTSTRAP_SCRIPT="$REPO_ROOT/tests/letstest/scripts/bootstrap_os_packages.sh"
|
|
||||||
VENV_SCRIPT="tools/venv.py"
|
|
||||||
|
|
||||||
sudo $BOOTSTRAP_SCRIPT
|
|
||||||
|
|
||||||
cd $REPO_ROOT
|
|
||||||
$VENV_SCRIPT
|
|
||||||
. $VENV_NAME/bin/activate
|
|
||||||
"$PIP_INSTALL" pytest
|
|
||||||
|
|
||||||
# To run tests that aren't packaged in modules, run pytest
|
|
||||||
# from the repo root. The directory structure should still
|
|
||||||
# cause the installed packages to be tested while using
|
|
||||||
# the tests available in the subdirectories.
|
|
||||||
|
|
||||||
for module in $MODULES ; do
|
|
||||||
echo testing $module
|
|
||||||
pytest -v $module
|
|
||||||
done
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
# Specifies Python package versions for development and building Docker images.
|
# Specifies Python package versions for development and building Docker images.
|
||||||
# It includes in particular packages not specified in letsencrypt-auto's requirements file.
|
# It includes in particular packages not specified in tools/certbot_constraints.txt.
|
||||||
# Some dev package versions specified here may be overridden by higher level constraints
|
# Some dev package versions specified here may be overridden by higher level constraints
|
||||||
# files during tests (eg. tools/certbot_constraints.txt).
|
# files during tests (eg. tools/certbot_constraints.txt).
|
||||||
alabaster==0.7.10
|
alabaster==0.7.10
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# to 1, a combination of tools/oldest_constraints.txt,
|
# to 1, a combination of tools/oldest_constraints.txt,
|
||||||
# tools/dev_constraints.txt, and local-oldest-requirements.txt contained in the
|
# tools/dev_constraints.txt, and local-oldest-requirements.txt contained in the
|
||||||
# top level of the package's directory is used, otherwise, a combination of
|
# top level of the package's directory is used, otherwise, a combination of
|
||||||
# certbot-auto's requirements file and tools/dev_constraints.txt is used. The
|
# tools/certbot_constraints.txt and tools/dev_constraints.txt is used. The
|
||||||
# other file always takes precedence over tools/dev_constraints.txt. If
|
# other file always takes precedence over tools/dev_constraints.txt. If
|
||||||
# CERTBOT_OLDEST is set, this script must be run with `-e <package-name>` and
|
# CERTBOT_OLDEST is set, this script must be run with `-e <package-name>` and
|
||||||
# no other arguments.
|
# no other arguments.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# pip installs packages in editable mode using certbot-auto's requirements file
|
# pip installs packages in editable mode using tools/certbot_constraints.txt
|
||||||
# as constraints
|
# as constraints
|
||||||
#
|
#
|
||||||
# cryptography is currently using this script in their CI at
|
# cryptography is currently using this script in their CI at
|
||||||
|
|||||||
Reference in New Issue
Block a user