ReleaseNotes

Differences between revisions 56 and 57
Revision 56 as of 2020-04-03 13:27:18
Size: 26478
Editor: teward
Comment:
Revision 57 as of 2020-04-03 13:38:57
Size: 27125
Editor: ahasenack
Comment:
Deletions are marked like this. Additions are marked like this.
Line 321: Line 321:
Here are some scenarios you might encounter:

 * Since nginx-core dropped the dependency on libnginx-mod-http-geoip, an "apt autoremove" might suggest that libnginx-mod-http-geoip can be removed. If this happens, and there are still geoip configuration directives, nginx will fail to restart. Note that this would also happen had we replaced libnginx-mod-http-geoip with libnginx-mod-http-geoip2, as the configuration directives are different

 * If someone has just main enabled, with nginx-code and libnginx-mod-http-geoip installed, and release upgrades to focal, libnginx-mod-http-geoip won't be updated because it's in focal/universe.

Introduction

These release notes for Ubuntu 20.04 LTS (Focal Fossa) provide an overview of the release and document the known issues with Ubuntu 20.04 LTS and its flavors.

Ubuntu 20.04 LTS will be released on April 23.

Ubuntu 20.04 is still in beta and is not recommended for use on production systems or on your primary computers yet.

Support lifespan

The 'main' archive of Ubuntu 20.04 LTS will be supported for 5 years until April 2025. Ubuntu 20.04 LTS will be supported for 5 years for Ubuntu Desktop, Ubuntu Server, and Ubuntu Core. All other flavors will be supported for 3 years.

Official flavor release notes

Find the links to release notes for official flavors here.


Get Ubuntu 20.04 LTS

Download Ubuntu 20.04 LTS

Images can be downloaded from a location near you.

You can download ISOs and flashable images from:

http://releases.ubuntu.com/20.04/ (Ubuntu Desktop and Server for AMD64)
http://cdimage.ubuntu.com/ubuntu/releases/20.04/beta/ (Less Frequently Downloaded Ubuntu Images)
http://cloud-images.ubuntu.com/daily/server/focal/current/ (Ubuntu Cloud Images)
http://cdimage.ubuntu.com/kubuntu/releases/20.04/beta/ (Kubuntu)
http://cdimage.ubuntu.com/lubuntu/releases/20.04/beta/ (Lubuntu)
http://cdimage.ubuntu.com/ubuntu-budgie/releases/20.04/beta/ (Ubuntu Budgie)
http://cdimage.ubuntu.com/ubuntukylin/releases/20.04/beta/ (Ubuntu Kylin)
http://cdimage.ubuntu.com/ubuntu-mate/releases/20.04/beta/ (Ubuntu MATE)
http://cdimage.ubuntu.com/ubuntustudio/releases/20.04/beta/ (Ubuntu Studio)
http://cdimage.ubuntu.com/xubuntu/releases/20.04/beta/ (Xubuntu)

Upgrading from Ubuntu 18.04 LTS or 19.10

  • You can upgrade to Ubuntu 20.04 LTS from either Ubuntu 18.04 LTS or Ubuntu 19.10.
  • Ensure that you have all updates installed for your current version of Ubuntu before you upgrade.

To upgrade on a desktop system:

  • Open the "Software & Updates" Setting in System Settings.

  • Select the 3rd Tab called "Updates".
  • Set the "Notify me of a new Ubuntu version" drop down menu to "For long-term support versions" if you are using 18.04 LTS; set it to "For any new version" if you are using 19.10.
  • Press Alt+F2 and type update-manager -c -d into the command box.

  • Update Manager should open up and tell you that Ubuntu 20.04 LTS is now available.
  • If not you can run  /usr/lib/ubuntu-release-upgrader/check-new-release-gtk

  • Click Upgrade and follow the on-screen instructions.

To upgrade on a server system:

  • Install update-manager-core if it is not already installed.

  • Make sure the Prompt line in /etc/update-manager/release-upgrades is set to 'normal' if you want non-LTS upgrades, or 'lts' if you only want LTS upgrades.

  • Launch the upgrade tool with the command sudo do-release-upgrade -d

  • Follow the on-screen instructions.

Note that the server upgrade will use GNU screen and automatically re-attach in case of dropped connection problems.

There are no offline upgrade options for Ubuntu Desktop and Ubuntu Server. Please ensure you have network connectivity to one of the official mirrors or to a locally accessible mirror and follow the instructions above.

Upgrades on i386

Users of the i386 architecture will not be presented with an upgrade to Ubuntu 20.04 LTS. Support for i386 as a host architecture was dropped in 19.10.

New Features in 20.04

Updated Packages

As with every Ubuntu release, Ubuntu 20.04 comes with a selection of the latest and greatest software developed by the free software community.

Linux Kernel

To help improve boot speed the default kernel compression algorithm was changed to lz4 (in Ubuntu 19.10) on most architectures, and the default initramfs compression algorithm was changed to lz4 on all architectures.

Toolchain Upgrades 🛠️

Ubuntu 20.04 LTS comes with refreshed state-of-the-art toolchain including new upstream releases of glibc 2.31, ☕ OpenJDK 11, rustc 1.41, GCC 9.3, 🐍 Python 3.8.2, 💎 ruby 2.7.0, php 7.4, 🐪 perl 5.30, golang 1.13.

Ubuntu Desktop

Storage/File Systems

ZFS 0.8.3

Continuing with what started in the Eoan release, Ubuntu Focal ships zfs 0.8.3. Compared to what was available in the previous LTS release, zfs 0.8 brings many new features. Highlights include:

  • Native Encryption (with hardware acceleration enabled in Focal)
  • Device removal
  • Pool TRIM
  • Sequential scrub and resilver (performance)

Upstream 0.8.0 release notes: https://github.com/openzfs/zfs/releases/tag/zfs-0.8.0

Also checkout 0.8.1, 0.8.2 and 0.8.3 for more details.

Other base system changes since 18.04 LTS

Snap Store

The Snap Store (snap-store) replaces ubuntu-software as the default tool for finding and installing packages and snaps.

Ubuntu Server

QEMU

QEMU was updated to 4.2 release. There is so much that it is hard to select individual improvements to highlight, here just a few:

  • free page hinting through virtio-balloon to avoid migrating unused pages which can speed up migrations
  • PPC: NVIDIA V100 GPU/NVLink2 passthrough for spapr using VFIO PCI
  • S390x: support for passthrough of vfio-ap (s390 crypto devices)
  • S390x: The bios now supports IPL (boot) from ECKD DASD assigned to the guest via vfio-ccw.
  • Multi-threaded TCG improves emulation without HW support
  • Many speed improvements for LUKS backend
  • pmem/nvdimm support
  • ...

Therefore please see the full change logs 4.2 and 4.1 for major changes since Ubuntu 19.10.

For Upgraders from Ubuntu 18.04 please also check out 4.0, 3.1, 3.0 and 2.12.

Migrations from former versions are supported just as usual. When upgrading it is always recommended to upgrade the machine types allowing guests to fully benefit from all the improvements and fixes of the most recent version.

upgrading from 19.10

For trimmed down container like isolation use-cases the new qemu has the microvm machine type which can be combined with the qboot ROM (available as bios-microvm.bin) to provide a reduced feature set at a much faster startup time. To further emphasize that you can use the package qemu-system-x86-microvm which provides an alternative QEMU binary stripped of all features not needed these use cases as sugegsted by the qboot ROM.

Ubuntu always made it easy to consume nesting on x86 even thou it was never considered fully stable and supported by upstream. Fortunately over the past years nesting got adopted and worked on by many more people. It now works much more reliably and is therefore now considered fully supported. The VMX related features can now be controlled individually instead of just vmx on/off. Due to that the VMX-subfeatures of certain CPU types might have slightly changed (matching those of the selected CPU type now instead of almost randomly depending on the underlying hardware). This makes it much more stable, but also implied that the qemu64 type (which is the default if you don't specify anything) can't enable VMX anymore which it formerly could. In general it is - and always was - recommended to use a well defined cpu type when defining a guest, this is also what almost all hgher level management tools from virt-manager to openstack will do. But if you want the most generic and compatible cpu but also enable VMX please use the type kvm64 instead of qemu64 now.

People that like to work or experiment with nvdimms and persistent memory QEMU now has pmem and nvdimm support enabled in Ubuntu Focal Fossa.

upgrading from 18.04

QEMU now has virglrenderer enabled which allows to create a virtual 3D GPU inside QEMU virtual machines. That is inferior to GPU passthrough, but can be handy if the platform used lacks the capability for classic PCI passthrough as well as more modern mediated devices.

The graphical QEMU back-end is now based on GTK instead of SDL. That provides much better Desktop integration and is often faster. But for your awareness - e.g. on headless servers - due to that qemu-system-x86 will by default pull in a lot of the graphical stack. In case you don't want that the dependencies have been set up in a way so that qemu-system-gui can be removed (or not even installed via --without-recommends) in those cases.

libvirt

libvirt was updated to version 6.0. See the upstream change log for details since version 5.6 that was in Ubuntu 19.04 or further back since verison 4.0 that was in Ubuntu 18.04.

upgrading from 19.10

Among many improvements worth to mention might be the features:

  • to access NVMe disks directly now allowing a speed oriented setup that still supports migration.
  • Mediated GPU devices are now supported as boot display.
  • Support kvm-hint-dedicated performance hint allowing the guest to enable optimizations when running on dedicated vCPUs
  • ...see the detailed changelog linked above for much more

upgrading from 18.04

Worth to mention is that libvirt can now enable QEMUs ability to use parallel connections for migration which can help to speed up migrations if one doesn't saturate your network yet.

Administrators might like the ease of a new local include apparmor to the libvirt-qemu profile that allows local overrides for special devices or paths matching your setup without conffile delta that has to be managed on later upgrades.

Added the ability to have GL enabled graphics as well as mediated devices to be configured while still being guarded by custom apparmor profiles generated per guest. This is required for the use of gpu based mediated devices as well as VirGL mentioned above in the qemu section.

dpdk

Ubuntu 20.04 includes the latest stable release 19.11.1 of the latest LTS series 19.11.x. The very latest (non-stable) version being 20.02 was not chosen for downstream projects of DPDK (like Open vSwitch) not being compatible yet.

See the 19.11 and 19.11.1 release notes for details.

upgrading from 18.04

DPDK dependencies were reorganized into more or less common/tested components. Due to that most DPDK installations will now have a smaller installation footprint and less potentially active code to care about.

Open vSwitch

Open vSwitch has been updated to 2.13.

Please read the 2.13 release notes for more detail.

Upgraders from 18.04 might also want to take a look at release notes of:

Chrony

Not only has chrony been updated version 3.5 which provides plenty of improvements in accuracy and controllability. Furthermore it also adds additional isolation for non-x86 by enabling syscall filters on those architectures as well.

To further allow feeding Hardware time into Chrony the package GPSD is now also fully supported.

But still for simple time-sync needs the base system already comes with systemd-timesyncd. Chrony is only needed to act as a time server or if you want the advertised more accurate and efficient syncing.

PHP 7.4

PHP 7.4 is a new feature update, bringing typed properties, arrow functions, weak references, and unpacking inside arrays among other things. For more information on the new features and improvements, see the https://www.php.net/releases/7_4_0.php.

For more details about deprecated functionality, and suggested replacements, see the PHP 7.4 Deprecated Features page. Migration guides to 7.4 from 7.3 or earlier versions of PHP are also available in the PHP Manual. Users coming from Ubuntu 18.04 will be moving from 7.2 to 7.4, so should also refer to the Migration guides to 7.3 from 7.2.

Ruby 2.7

The default Ruby interpreter was updated to version 2.7. It comes with some nice features and improvements like: Pattern Matching, REPL improvement, Compaction GC, Separation of positional and keyword arguments and much more. To have a broad overview about the cool features and improvements check the Ruby 2.7 Release Announcement.

Users coming from previous Ubuntu releases (from 18.04 on) will be moving from Ruby 2.5 to 2.7, in this case the Ruby 2.6 Release Announcement might be useful as well. An important thing to keep in mind is that some libraries are not bundled anymore in Ruby. If you need them please install them separately:

  • CMath
  • Scanf
  • Shell
  • Synchronizer (ruby-sync)
  • ThreadsWait (ruby-thwait)

  • E2MM (ruby-e2mmap)

For more information check out this blog post.

Ruby on Rails 5.2.3

Ruby on Rails was updated to version 5.2.3. From users coming from Ubuntu 18.04 is a major change, moving from version 4.2.10 to 5.2.3. Some highlights are: addition of Action Cable framework, option to create slimmed down API only appli cations, Active Record attributes API and so on. Check the Ruby on Rails 5 and 5.2 Release Notes for an overview.

If you need to upgrade your Ruby on Rails application please take a look at the upstream upgrading guide.

Bind 9.16

Bind has been updated to the new stable release series from upstream: 9.16.x.

Important packaging changes are:

  • no -dev package at the moment, as upstream discourages linking with its libraries. See a bit of a discussion about that here: https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/3089#note_111299

  • bind-libs 9.11.x package: used for software projects that do not yet work with the new 9.16 version, like isc-dhcp.
  • bind-dyndb-ldap has not yet been ported to bind9 9.16.x
  • geoip legacy support was removed and replaced with geoip2 (libmaxminddb)

Upstream blog post about major changes in bind9 9.16.0: https://www.isc.org/blogs/bind9.16.0_released/

More detailed release notes: https://downloads.isc.org/isc/bind9/9.16.0/RELEASE-NOTES-bind-9.16.0.html

Presentation about the development of bind9 culminating in this new release: https://youtu.be/5math9Oy97s?t=46

OpenSSH U2F Support

OpenSSH 8.2 added support for U2F/FIDO hardware devices to allow easy hardware-based two factor authentication. It is as simple as:

# plug device in and:
$ ssh-keygen -t ecdsa-sk
Generating public/private ecdsa-sk key pair.
You may need to touch your authenticator to authorize key generation. <-- touch device
Enter file in which to save the key (/home/ubuntu/.ssh/id_ecdsa_sk): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ubuntu/.ssh/id_ecdsa_sk
Your public key has been saved in /home/ubuntu/.ssh/id_ecdsa_sk.pub
The key fingerprint is:
SHA256:V9PQ1MqaU8FODXdHqDiH9Mxb8XK3o5aVYDQLVl9IFRo ubuntu@focal

Now just transfer the public part to the server to ~/.ssh/authorized_keys and you are ready to go:

$ ssh -i .ssh/id_ecdsa_sk ubuntu@focal.server
Confirm user presence for key ECDSA-SK SHA256:V9PQ1MqaU8FODXdHqDiH9Mxb8XK3o5aVYDQLVl9IFRo <-- touch device
Welcome to Ubuntu Focal Fossa (development branch) (GNU/Linux 5.4.0-21-generic x86_64)
(...)
ubuntu@focal.server:~$
  • Warning /!\ If you don't see the prompt asking for the user presence confirmation, then you are affected by bug #1869897

See the upstream release notes for more details: https://www.openssh.com/txt/release-8.2

HAProxy 2.0

First introduced in Ubuntu Eoan 19.10, HAProxy in Focal is tracking the upstream LTS 2.0 branch. This series has many new features when compared to the previous 1.8 stable branch, and all are detailed in this blog post: https://www.haproxy.com/blog/haproxy-2-0-and-beyond/

Apache, TLSv1.3, client cert auth

Apache has been built with TLSv1.3 support, and depending on the server configuration, this might require clients performing certificate authentication to support Post Handshake Authentication (PHA). Not all TLSv1.3 capable clients can perform PHA, and will fail. Telltale signs of this being the error include these messages in the Apache server logs:

AH: verify client post handshake
AH10158: cannot perform post-handshake authentication
SSL Library Error: error:14268117:SSL routines:SSL_verify_client_post_handshake:extension not received

In this case, if there is no updated client version, you should preferably disable TLSv1.3 on the affected client.

Chromium bug: https://bugs.chromium.org/p/chromium/issues/detail?id=911653

Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1511989 (fixed, can be enabled by toggling security.tls.enable_post_handshake_auth)

python httplib should enable post-handshake authentication for TLS 1.3: https://bugs.python.org/issue37440

Samba 4.11

Focal ships with Samba 4.11.x which introduces a number of changes. Of note we have:

  • SMB1 disabled by default: can still be enabled via a /etc/samba/smb.conf config change;

  • python2 no longer supported

Detailed upstream release notes for 4.11.0 can be seen here: https://www.samba.org/samba/history/samba-4.11.0.html

PostgreSQL 12

Focal is shipping postgresql-12, which has many improvements:

  • improved query performance, particularly over larger data sets
  • SQL/JSON path expression support
  • generated columns
  • pluggable table storage interface

Upstream announcement: https://www.postgresql.org/about/news/1976/

Upstream release notes: https://www.postgresql.org/docs/12/release-12.html

nginx

Starting in Focal Fossa, nginx-core no longer ships with the legacy geoip module enabled by default. If you are using the legacy geoip module in nginx, you may run into upgrade issues if you do not deactivate the geoip module in your configuration. This was done as part of the deprecation of GeoIP legacy support.

Here are some scenarios you might encounter:

  • Since nginx-core dropped the dependency on libnginx-mod-http-geoip, an "apt autoremove" might suggest that libnginx-mod-http-geoip can be removed. If this happens, and there are still geoip configuration directives, nginx will fail to restart. Note that this would also happen had we replaced libnginx-mod-http-geoip with libnginx-mod-http-geoip2, as the configuration directives are different
  • If someone has just main enabled, with nginx-code and libnginx-mod-http-geoip installed, and release upgrades to focal, libnginx-mod-http-geoip won't be updated because it's in focal/universe.

isc-kea 1.6 stable track

Even though it's a Universe package, isc-kea is a promising new dhcp server from the same upstream that created Bind and isc-dhcp. For Focal, we updated it to the 1.6.x stable series.

Upstream 1.6.0 release notes: https://downloads.isc.org/isc/kea/1.6.0/Kea160ReleaseNotes.txt

Upstream 1.6.2 release notes (version currently in Focal): https://downloads.isc.org/isc/kea/1.6.2/Kea162ReleaseNotes.txt

s390x

IBM Z and LinuxONE / s390x-specific enhancements (since 19.10) include (partly not limited to s390x):

  • Todo

Performance tests showed (1868113) that it is beneficial to use 'Striding RQ' with RoCE Express 2 and 2.1 PCIe cards (ConnectX-4) on IBM z14 and LinuxONE Rockhopper II / Emperor II and newer - but this is not the default. Hence if one has RoCE 2 or 2.1 hardware plugged in to such a system, the enablement of 'Striding RQ' should be considered, like:
ethtool --set-priv-flags <ifname> rx_striding_rq on
For the reason of persistence one may also create a service or udev-rule that sets this at boot time.

Raspberry Pi

Since the release of Ubuntu 19.10 Raspberry Pi 32-bit and 64-bit preinstalled images (renamed to raspi) support the Raspberry Pi 4 platform out-of-the-box. With this, our images now support almost all modern flavors of the Raspberry Pi family of devices (Pi 2B, Pi 3B, Pi 3A+, Pi 3B+, CM3, CM3+, Pi 4B).

Known issues

As is to be expected, with any release, there are some significant known bugs that users may run into with this release of Ubuntu 20.04. The ones we know about at this point (and some of the workarounds), are documented here so you don't need to spend time reporting these bugs again:

Installer and live session

  • Ubuntu now defaults to checking the integrity of the medium in use when booting into live sessions. This can be skipped by hitting Ctrl-C, but due to a bug the message that tells you to hit this key is not shown in some flavours. (bug 1870018)

  • When selecting to install 3rd party drivers there can be a long pause before the next step is available. (bug 1824905)

Desktop

  • Automatic login does not work with the NVIDIA proprietary driver (bug 1845801).

  • After upgrading audio device selection in Settings is sometimes ignored (bug 1866194).

  • ZFS installation fails to boot if there are existing pools named bpool or rpool on a second drive (bug 1867007)

Raspberry Pi

  • At present, there is an issue with DHCP over IPv4 with wifi on Pi models 3B, 3A+, and 3B+ (though not on the 4B). A workaround is to run sudo netplan apply after boot, but obviously physical or serial access is required to do this if wifi is your only other connectivity (bug 1870410)


Official flavours

The release notes for the official flavors can be found at the following links:


More information

Reporting bugs

Your comments, bug reports, patches and suggestions will help fix bugs and improve the quality of future releases. Please report bugs using the tools provided.

If you want to help out with bugs, the Bug Squad is always looking for help.

Participate in Ubuntu

If you would like to help shape Ubuntu, take a look at the list of ways you can participate at

More about Ubuntu

You can find out more about Ubuntu on the Ubuntu website and Ubuntu wiki.

To sign up for future Ubuntu development announcements, please subscribe to Ubuntu's development announcement list at:

FocalFossa/ReleaseNotes (last edited 2023-03-21 10:40:56 by sil2100)