aboutsummaryrefslogtreecommitdiffstats
path: root/python/servo/platform
diff options
context:
space:
mode:
Diffstat (limited to 'python/servo/platform')
-rw-r--r--python/servo/platform/base.py4
-rw-r--r--python/servo/platform/linux.py18
2 files changed, 12 insertions, 10 deletions
diff --git a/python/servo/platform/base.py b/python/servo/platform/base.py
index e6d3e955cda..cb0c1be527b 100644
--- a/python/servo/platform/base.py
+++ b/python/servo/platform/base.py
@@ -55,9 +55,9 @@ class Base:
return False
def bootstrap(self, force: bool):
- installed_something = self._platform_bootstrap(force)
- installed_something |= self.install_taplo(force)
+ installed_something = self.install_taplo(force)
installed_something |= self.install_crown(force)
+ installed_something |= self._platform_bootstrap(force)
if not installed_something:
print("Dependencies were already installed!")
diff --git a/python/servo/platform/linux.py b/python/servo/platform/linux.py
index b895a0aa08c..879e8f45926 100644
--- a/python/servo/platform/linux.py
+++ b/python/servo/platform/linux.py
@@ -153,15 +153,17 @@ class Linux(Base):
def install_non_gstreamer_dependencies(self, force: bool) -> bool:
install = False
pkgs = []
- if self.distro in ['Ubuntu', 'Raspbian GNU/Linux']:
- command = ['apt-get', 'install']
+ if self.distro in ['Ubuntu', 'Debian GNU/Linux', 'Raspbian GNU/Linux']:
+ command = ['apt-get', 'install', "-m"]
pkgs = APT_PKGS
- if subprocess.call(['dpkg', '-s'] + pkgs, shell=True,
- stdout=subprocess.PIPE, stderr=subprocess.PIPE) != 0:
- install = True
- elif self.distro == 'Debian GNU/Linux':
- command = ['apt-get', 'install']
- pkgs = [pkg for pkg in APT_PKGS if pkg != 'libgstreamer-plugins-good1.0-dev']
+
+ # Try to filter out unknown packages from the list. This is important for Debian
+ # as it does not ship all of the packages we want.
+ installable = subprocess.check_output(['apt-cache', '--generate', 'pkgnames'])
+ if installable:
+ installable = installable.decode("ascii").splitlines()
+ pkgs = list(filter(lambda pkg: pkg in installable, pkgs))
+
if subprocess.call(['dpkg', '-s'] + pkgs, shell=True,
stdout=subprocess.PIPE, stderr=subprocess.PIPE) != 0:
install = True