discontinue old Ubuntu 18.04 LTS, e.g. it cannot build documentation "prog-prove";
authorwenzelm
Mon, 05 Apr 2021 22:46:41 +0200
changeset 73534 e7fb17bca374
parent 73533 543d5539306d
child 73535 0f33c7031ec9
discontinue old Ubuntu 18.04 LTS, e.g. it cannot build documentation "prog-prove";
Admin/cronjob/README
src/Doc/System/Misc.thy
src/Doc/System/Phabricator.thy
src/Pure/System/linux.scala
src/Pure/Tools/phabricator.scala
--- a/Admin/cronjob/README	Mon Apr 05 22:45:01 2021 +0200
+++ b/Admin/cronjob/README	Mon Apr 05 22:46:41 2021 +0200
@@ -21,7 +21,7 @@
 Build Log Database Server
 =========================
 
-- Ubuntu 18.04 LTS Linux Server standard installation
+- Ubuntu 20.04 LTS Linux Server standard installation
   https://help.ubuntu.com/lts/serverguide
 
 - apt install unattended-upgrades
--- a/src/Doc/System/Misc.thy	Mon Apr 05 22:45:01 2021 +0200
+++ b/src/Doc/System/Misc.thy	Mon Apr 05 22:46:41 2021 +0200
@@ -77,7 +77,7 @@
   of \<^verbatim>\<open>apt-get install\<close> within the underlying Linux distribution.
 
   Option \<^verbatim>\<open>-P\<close> refers to high-level package collections: \<^verbatim>\<open>X11\<close> or \<^verbatim>\<open>latex\<close> as
-  provided by \<^verbatim>\<open>isabelle build_docker\<close> (assuming Ubuntu 18.04 LTS). This
+  provided by \<^verbatim>\<open>isabelle build_docker\<close> (assuming Ubuntu 20.04 LTS). This
   imposes extra weight on the resulting Docker images. Note that \<^verbatim>\<open>X11\<close> will
   only provide remote X11 support according to the modest GUI quality
   standards of the late 1990-ies.
--- a/src/Doc/System/Phabricator.thy	Mon Apr 05 22:45:01 2021 +0200
+++ b/src/Doc/System/Phabricator.thy	Mon Apr 05 22:46:41 2021 +0200
@@ -63,7 +63,7 @@
 section \<open>Quick start\<close>
 
 text \<open>
-  The starting point is a fresh installation of \<^bold>\<open>Ubuntu 18.04 or 20.04
+  The starting point is a fresh installation of \<^bold>\<open>Ubuntu 20.04
   LTS\<close>\<^footnote>\<open>\<^url>\<open>https://ubuntu.com/download\<close>\<close>: this version is mandatory due to
   subtle dependencies on system packages and configuration that is assumed by
   the Isabelle setup tool.
@@ -233,7 +233,7 @@
     @{verbatim [display] \<open>  systemctl reload apache2\<close>}
 
     \<^item> Install \<^verbatim>\<open>certbot\<close> from \<^url>\<open>https://certbot.eff.org\<close> following the
-    description for Apache and Ubuntu 18.04 or 20.04 on
+    description for Apache and Ubuntu 20.04 on
     \<^url>\<open>https://certbot.eff.org/lets-encrypt/ubuntubionic-apache\<close>. Run
     \<^verbatim>\<open>certbot\<close> interactively and let it operate on the domain
     \<^verbatim>\<open>vcs.example.org\<close>.
@@ -390,7 +390,7 @@
 
 text \<open>
   The @{tool_def phabricator_setup} tool installs a fresh Phabricator instance
-  on Ubuntu 18.04 or 20.04 LTS:
+  on Ubuntu 20.04 LTS:
   @{verbatim [display] \<open>Usage: isabelle phabricator_setup [OPTIONS]
 
   Options are:
@@ -428,9 +428,9 @@
   Option \<^verbatim>\<open>-M:\<close> installs a standard Mercurial release from source --- the one
   that is used by the Phabricator hosting service
   \<^url>\<open>https://admin.phacility.com\<close>. This avoids various problems with the
-  package provided by Ubuntu 18.04 or 20.04. Alternatively, an explicit file
-  path or URL the source archive (\<^verbatim>\<open>.tar.gz\<close>) may be given here. This option
-  is recommended for production use, but it requires to \<^emph>\<open>uninstall\<close> existing
+  package provided by Ubuntu 20.04. Alternatively, an explicit file path or
+  URL the source archive (\<^verbatim>\<open>.tar.gz\<close>) may be given here. This option is
+  recommended for production use, but it requires to \<^emph>\<open>uninstall\<close> existing
   Mercurial packages provided by the operating system.
 
   Option \<^verbatim>\<open>-n\<close> provides an alternative installation name. The default name
--- a/src/Pure/System/linux.scala	Mon Apr 05 22:45:01 2021 +0200
+++ b/src/Pure/System/linux.scala	Mon Apr 05 22:46:41 2021 +0200
@@ -45,7 +45,6 @@
     override def toString: String = description
 
     def is_ubuntu: Boolean = id == "Ubuntu"
-    def is_ubuntu_18_04: Boolean = is_ubuntu && release == "18.04"
     def is_ubuntu_20_04: Boolean = is_ubuntu && release == "20.04"
   }
 
--- a/src/Pure/Tools/phabricator.scala	Mon Apr 05 22:45:01 2021 +0200
+++ b/src/Pure/Tools/phabricator.scala	Mon Apr 05 22:46:41 2021 +0200
@@ -21,31 +21,22 @@
 
   /* required packages */
 
-  val packages_ubuntu_18_04: List[String] =
+  val packages_ubuntu_20_04: List[String] =
     Build_Docker.packages :::
     List(
       // https://secure.phabricator.com/source/phabricator/browse/master/scripts/install/install_ubuntu.sh 15e6e2adea61
       "git", "mysql-server", "apache2", "libapache2-mod-php", "php", "php-mysql",
       "php-gd", "php-curl", "php-apcu", "php-cli", "php-json", "php-mbstring",
       // more packages
-      "php-xml", "php-zip", "python-pygments", "ssh", "subversion", "python-pygments",
+      "php-xml", "php-zip", "python3-pygments", "ssh", "subversion", "python-pygments",
       // mercurial build packages
-      "make", "gcc", "python", "python-dev", "python-docutils", "python-openssl")
-
-  val packages_ubuntu_20_04: List[String] =
-    packages_ubuntu_18_04.map(
-      {
-        case "python-pygments" => "python3-pygments"
-        case "python-dev" => "python2-dev"
-        case name => name
-      })
+      "make", "gcc", "python", "python2-dev", "python-docutils", "python-openssl")
 
   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")
+    if (release.is_ubuntu_20_04) packages_ubuntu_20_04
+    else error("Bad Linux version: expected Ubuntu 20.04 LTS")
   }