aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2023-01-18 23:30:13 -0500
committerJosh Matthews <josh@joshmatthews.net>2023-01-19 21:35:56 -0500
commitcb1be846519bf492e28626b15963548ee534dc7c (patch)
tree10e7d333a49344e5351dfe7d5190e62ed90e0afe
parentf70857906d228f5db6a808c8d9c28a7bad0684bb (diff)
downloadservo-cb1be846519bf492e28626b15963548ee534dc7c.tar.gz
servo-cb1be846519bf492e28626b15963548ee534dc7c.zip
Remove unused salt bootstrapping process.
-rw-r--r--python/requirements-salt.txt6
-rw-r--r--python/servo/bootstrap.py136
-rw-r--r--python/servo/bootstrap_commands.py9
3 files changed, 0 insertions, 151 deletions
diff --git a/python/requirements-salt.txt b/python/requirements-salt.txt
deleted file mode 100644
index 1486b590053..00000000000
--- a/python/requirements-salt.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-# Ensure all versions are pinned for repeatability,
-# since `--system-site-packages` is enabled
-
-# For boostrapping, make sure versions match those in saltfs
-salt == 2016.3.4
-GitPython == 0.3.2
diff --git a/python/servo/bootstrap.py b/python/servo/bootstrap.py
index 8d6b19fb477..8ceb4d11a55 100644
--- a/python/servo/bootstrap.py
+++ b/python/servo/bootstrap.py
@@ -6,14 +6,11 @@ from __future__ import absolute_import, print_function
from distutils.spawn import find_executable
from distutils.version import LooseVersion
-import json
import os
import distro
-import shutil
import subprocess
import six
import six.moves.urllib as urllib
-from six.moves import input
from subprocess import PIPE
from zipfile import BadZipfile
@@ -68,14 +65,6 @@ def install_linux_deps(context, pkgs_ubuntu, pkgs_fedora, pkgs_void, force):
return True
-def install_salt_dependencies(context, force):
- pkgs_apt = ['build-essential', 'libssl-dev', 'libffi-dev', 'python-dev']
- pkgs_dnf = ['gcc', 'libffi-devel', 'python-devel', 'openssl-devel']
- pkgs_xbps = ['gcc', 'libffi-devel', 'python-devel']
- if not install_linux_deps(context, pkgs_apt, pkgs_dnf, pkgs_xbps, force):
- print("Dependencies are already installed")
-
-
def gstreamer(context, force=False):
cur = os.curdir
gstdir = os.path.join(cur, "support", "linux", "gstreamer")
@@ -135,130 +124,6 @@ def linux(context, force=False):
return 0
-def salt(context, force=False):
- # Ensure Salt dependencies are installed
- install_salt_dependencies(context, force)
- # Ensure Salt is installed in the virtualenv
- # It's not installed globally because it's a large, non-required dependency,
- # and the installation fails on Windows
- print("Checking Salt installation...", end='')
- reqs_path = os.path.join(context.topdir, 'python', 'requirements-salt.txt')
- process = subprocess.Popen(
- ["pip", "install", "-q", "-I", "-r", reqs_path],
- stdout=PIPE,
- stderr=PIPE
- )
- process.wait()
- if process.returncode:
- out, err = process.communicate()
- print('failed to install Salt via pip:')
- print('Output: {}\nError: {}'.format(out, err))
- return 1
- print("done")
-
- salt_root = os.path.join(context.sharedir, 'salt')
- config_dir = os.path.join(salt_root, 'etc', 'salt')
- pillar_dir = os.path.join(config_dir, 'pillars')
-
- # In order to allow `mach bootstrap` to work from any CWD,
- # the `root_dir` must be an absolute path.
- # We place it under `context.sharedir` because
- # Salt caches data (e.g. gitfs files) in its `var` subdirectory.
- # Hence, dynamically generate the config with an appropriate `root_dir`
- # and serialize it as JSON (which is valid YAML).
- config = {
- 'hash_type': 'sha384',
- 'master': 'localhost',
- 'root_dir': salt_root,
- 'state_output': 'changes',
- 'state_tabular': True,
- }
- if 'SERVO_SALTFS_ROOT' in os.environ:
- config.update({
- 'fileserver_backend': ['roots'],
- 'file_roots': {
- 'base': [os.path.abspath(os.environ['SERVO_SALTFS_ROOT'])],
- },
- })
- else:
- config.update({
- 'fileserver_backend': ['git'],
- 'gitfs_env_whitelist': 'base',
- 'gitfs_provider': 'gitpython',
- 'gitfs_remotes': [
- 'https://github.com/servo/saltfs.git',
- ],
- })
-
- if not os.path.exists(config_dir):
- os.makedirs(config_dir, mode=0o700)
- with open(os.path.join(config_dir, 'minion'), 'w') as config_file:
- config_file.write(json.dumps(config) + '\n')
-
- # Similarly, the pillar data is created dynamically
- # and temporarily serialized to disk.
- # This dynamism is not yet used, but will be in the future
- # to enable Android bootstrapping by using
- # context.sharedir as a location for Android packages.
- pillar = {
- 'top.sls': {
- 'base': {
- '*': ['bootstrap'],
- },
- },
- 'bootstrap.sls': {
- 'fully_managed': False,
- },
- }
- if os.path.exists(pillar_dir):
- shutil.rmtree(pillar_dir)
- os.makedirs(pillar_dir, mode=0o700)
- for filename in pillar:
- with open(os.path.join(pillar_dir, filename), 'w') as pillar_file:
- pillar_file.write(json.dumps(pillar[filename]) + '\n')
-
- cmd = [
- # sudo escapes from the venv, need to use full path
- find_executable('salt-call'),
- '--local',
- '--config-dir={}'.format(config_dir),
- '--pillar-root={}'.format(pillar_dir),
- 'state.apply',
- 'servo-build-dependencies',
- ]
-
- if not force:
- print('Running bootstrap in dry-run mode to show changes')
- # Because `test=True` mode runs each state individually without
- # considering how required/previous states affect the system,
- # it will often report states with requisites as failing due
- # to the requisites not actually being run,
- # even though these are spurious and will succeed during
- # the actual highstate.
- # Hence `--retcode-passthrough` is not helpful in dry-run mode,
- # so only detect failures of the actual salt-call binary itself.
- retcode = run_as_root(cmd + ['test=True'])
- if retcode != 0:
- print('Something went wrong while bootstrapping')
- return retcode
-
- proceed = input(
- 'Proposed changes are above, proceed with bootstrap? [y/N]: '
- )
- if proceed.lower() not in ['y', 'yes']:
- return 0
-
- print('')
-
- print('Running Salt bootstrap')
- retcode = run_as_root(cmd + ['--retcode-passthrough'])
- if retcode == 0:
- print('Salt bootstrapping complete')
- else:
- print('Salt bootstrapping encountered errors')
- return retcode
-
-
def windows_msvc(context, force=False):
'''Bootstrapper for MSVC building on Windows.'''
@@ -326,7 +191,6 @@ def windows_msvc(context, force=False):
LINUX_SPECIFIC_BOOTSTRAPPERS = {
- "salt": salt,
"gstreamer": bootstrap_gstreamer,
}
diff --git a/python/servo/bootstrap_commands.py b/python/servo/bootstrap_commands.py
index e4862287cbe..904f5da109e 100644
--- a/python/servo/bootstrap_commands.py
+++ b/python/servo/bootstrap_commands.py
@@ -46,15 +46,6 @@ class MachCommands(CommandBase):
# it can install dependencies without needing mach's dependencies
return bootstrap.bootstrap(self.context, force=force)
- @Command('bootstrap-salt',
- description='Install and set up the salt environment.',
- category='bootstrap')
- @CommandArgument('--force', '-f',
- action='store_true',
- help='Boostrap without confirmation')
- def bootstrap_salt(self, force=False):
- return bootstrap.bootstrap(self.context, force=force, specific="salt")
-
@Command('bootstrap-gstreamer',
description='Set up a local copy of the gstreamer libraries (linux only).',
category='bootstrap')