src/Pure/Tools/phabricator.scala
changeset 72521 354bfab78cbf
parent 72520 581d9d74e1e4
child 72522 6e27af808c17
--- a/src/Pure/Tools/phabricator.scala	Fri Oct 30 21:10:18 2020 +0100
+++ b/src/Pure/Tools/phabricator.scala	Fri Oct 30 22:56:15 2020 +0100
@@ -21,7 +21,7 @@
 
   /* required packages */
 
-  val packages: List[String] =
+  val packages_ubuntu_18_04: List[String] =
     Build_Docker.packages :::
     List(
       // https://secure.phabricator.com/source/phabricator/browse/master/scripts/install/install_ubuntu.sh 15e6e2adea61
@@ -32,6 +32,18 @@
       // mercurial build packages
       "make", "gcc", "python", "python-dev", "python-docutils", "python-pygments", "python-openssl")
 
+  val packages_ubuntu_20_04: List[String] =
+    packages_ubuntu_18_04.map((name: String) =>
+      if (name.startsWith("python")) name.replace("python", "python3") else name)
+
+  def packages: List[String] =
+  {
+    val release = Linux.Release()
+    if (release.is_ubuntu_18_04) packages_ubuntu_18_04
+    else if (release.is_ubuntu_20_04) packages_ubuntu_20_04
+    else error("Bad Linux version: expected Ubuntu 18.04 or 20.04 LTS")
+  }
+
 
   /* global system resources */
 
@@ -557,9 +569,6 @@
 
       val progress = new Console_Progress
 
-      val release = Linux.Release()
-      if (!release.is_ubuntu_18_04) error("Bad Linux version: Ubuntu 18.04 LTS required")
-
       phabricator_setup(options, name = name, root = root, repo = repo,
         package_update = package_update, mercurial_source = mercurial_source, progress = progress)
     })