From Fedora Project Wiki

Revision as of 10:25, 8 November 2021 by Fjanus (talk | contribs)

PostgreSQL 14

Summary

Update of PostgreSQL (postgresql and libpq components) in Fedora from version 13 to version 14 in the non-modular (main) builds.


Owner

Current status

  • Targeted release: Fedora Linux 36
  • Last updated: 2021-11-08
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>


Detailed Description

Update of PostgreSQL (postgresql and libpq components) in Fedora from version 13 to version 14 in the non-modular (main) builds.

This also involves updating and rebuilding the PostgreSQL plugins that depend on postgresql server.

Plan

  • Prepare Libpq 14, PostgreSQL 14 in Copr
  • Rebuild important dependencies in Copr
  • Debug and fix compatibility issues found in dependencies (a reasonable amount of non-critical in FTBFS state might be tolerable)
  • Prepare Pull requests in Rawhide
  • Merge and build PR into Rawhide

Feedback

Benefit to Fedora

The latest stable software is used by Fedora users.

Scope

  • Proposal owners:
    • Prepare PostgreSQL 14 as a module for Rawhide and at least one stable Fedora release (including the design change and symbol versioning fix)
    • Prepare PostgreSQL 13 as a module for Rawhide
    • Check software that requires or depends on postgresql-server or libpq packages for incompatibilities
    • Build PostgreSQL 14 (postgresql and libpq) to Rawhide
    • Rebuild depended on packages against PostgreSQL 14
    • Gather user input on the changes between PostgreSQL 13 and PostgreSQL 14
  • Other developers: N/A (not a System Wide Change)
  • Policies and guidelines: N/A (not a System Wide Change)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

The PostgreSQL client library (libpq component) is compatible. So, there shouldn't be any issues with compatibility, but rebuild of the depended components is recommanded.

Server plugins might require a newer version update, because they sometimes have explicit server requirements. PostgreSQL maintainer will help fixing/rebuilding any issues in the plugins.

How To Test

Usual testing as when upgrading between major PostgreSQL versions, running postgresql-setup --upgrade is necessary between major versions.

Test that all other software runs well with PostgreSQL 14.

User Experience

The users will have to upgrade their databases the same way as between major PostgreSQL versions, aka postgresql-setup --upgrade after installing PostgreSQL 14 server packages.

If users want to stick with PostgreSQL 13 for a little longer, there will be PostgreSQL 13 module

Dependencies

There are some packages (mostly server plugins), that build on top of PostgreSQL. Since the separation of PostgreSQL client library (libpq component), only packages that build server plugins should use postgresql package in BuildRequires, others should use libpq. In both the cases, rebuild should be done to make sure all potential binary incompatibilities are handled.

  • Critical dependecies - components with higher importance, will be prioritised during the rebase
    • apr-util
    • bacula
    • bind
    • cyrus-imapd
    • cyrus-sasl
    • dovecot
    • freeradius
    • gdal
    • libecpg
    • nagios-plugins
    • opendbx
    • perl-DBD-Pg
    • php
    • pgaudit
    • postfix
    • qt
    • qt3
    • qt5-qtbase
    • redland
    • rsyslog
    • rubygem-pg
    • postgres-decoderbufs

The rest of the dependencies is not considered critical, but will be recommended to be rebuilt as well.

  • libpq
    • EMBOSS
    • Io-language
    • PDAL
    • PyGreSQL
    • asterisk
    • biboumi
    • clisp
    • collectd
    • dpsearch
    • exim
    • flow-tools
    • freight-tools
    • gambas3
    • gammu
    • gawk-pgsql
    • gearmand
    • gnatcoll-db
    • gnokii
    • grass
    • hydra
    • jabberd
    • kdb
    • kea
    • libdbi-drivers
    • libgda
    • libnss-pgsql
    • libpqxx
    • libpreludedb
    • libzdb
    • lua-dbi
    • lua-sql
    • mapnik
    • mapserver
    • medusa
    • minetestmapper
    • ocaml-postgresql
    • opensips
    • openvas-manager
    • osm2pgsql
    • pdns
    • perl-pgsql_perl5
    • pg_top
    • pgadmin3
    • pgcenter
    • pgmodeler
    • php-pecl-pq
    • player
    • postgis
    • postgresql
    • postgresql-pgpool-II
    • proftpd
    • pspp
    • pure-ftpd
    • rdkit
    • rhdb-utils
    • root
    • saga
    • soci
    • spatialite-gui
    • sphinx
    • sysbench
    • tcl-pgtcl
    • unicornscan
    • virtualpg
    • vtk
    • zabbix
  • postgresql-server
    • gambas3
    • kdb
    • kea
    • libpqxx
    • openvas-manager
    • orafce
    • pg-semver
    • pgRouting
    • pgadmin3
    • pgsphere
    • postgis
    • postgresql-ip4r
    • postgresql-pgpool-II
    • qt3
    • rdkit
    • rhdb-utils
    • timescaledb

Contingency Plan

Revert changes in the non-modular packages and provide PostgreSQL 14 as a module stream only.


Documentation

Upgrade strategy: https://www.postgresql.org/docs/14/upgrading.html

Release Notes

Release notes for PostgreSQL 14 release: https://www.postgresql.org/docs/14/index.html

Overall overview of the changes and improvements: https://www.postgresql.org/docs/14/release-14.html