From Fedora Project Wiki
(https://pagure.io/fesco/issue/2448)
(Update for F34)
Line 31: Line 31:
<!-- [[Category:SystemWideChange]] -->
<!-- [[Category:SystemWideChange]] -->


* Targeted release: [[Releases/33 | Fedora 33 ]]  
* Targeted release: [[Releases/34 | Fedora 34 ]]  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
Line 47: Line 47:


<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
Update of PostgreSQL (`postgresql` and `libpq` components) in Fedora from version 12 to version 13 in the non-modular (main) builds.
Update of PostgreSQL (`postgresql` components) in Fedora from version 12 to version 13 in the non-modular (main) builds.


This also involves updating and rebuilding the PostgreSQL plugins that depend on postgresql server.
This also involves updating and rebuilding the PostgreSQL plugins that depend on postgresql server.
Line 66: Line 66:
**Build PostgreSQL 13 to Rawhide
**Build PostgreSQL 13 to Rawhide
**Check software that requires or depends on `postgresql-server` or `libpq` packages for incompatibilities
**Check software that requires or depends on `postgresql-server` or `libpq` packages for incompatibilities
**Rebuild those packages against PostgreSQL/Libpq 13 (see Dependencies)
**Rebuild those packages against PostgreSQL 13 (see Dependencies)
**Gather user input on the changes between PostgreSQL 12 and PostgreSQL 13
**Gather user input on the changes between PostgreSQL 12 and PostgreSQL 13


Line 83: Line 83:


== Upgrade/compatibility impact ==
== Upgrade/compatibility impact ==
The PostgreSQL client library (libpq component) is compatible, so there shouldn't be any issues, but rebuild of the depended components is better to be sure. There is a [https://copr.fedorainfracloud.org/coprs/panovotn/postgresql-13beta2/ COPR build] available for testing.
The PostgreSQL client library (libpq component) is compatible, so there shouldn't be any issues, but rebuild of the depended components is better to be sure.
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.
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.


Line 96: Line 96:
The users will have to upgrade their databases the same way as between major PostgreSQL versions, aka `postgresql-setup --upgrade`.
The users will have to upgrade their databases the same way as between major PostgreSQL versions, aka `postgresql-setup --upgrade`.


If users want to stick with PostgreSQL 12 for a little longer, there should be PostgreSQL 12 module.
If users want to stick with PostgreSQL 12 for a little longer, there will be PostgreSQL 12 module
If users want to test it before it reaches Fedora 33, there is a [https://copr.fedorainfracloud.org/coprs/panovotn/postgresql-13beta2/ COPR build] available.


== Dependencies ==
== 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.
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
** 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. Though, those will need to be rebuild as well.


* libpq
* libpq

Revision as of 12:12, 20 October 2020

PostgreSQL 13

Summary

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

Owner

Current status

  • Targeted release: Fedora 34
  • Last updated: 2020-10-20
  • FESCo issue: #2448
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

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

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

Feedback

Benefit to Fedora

Latest stable software is used by Fedora users.

Scope

  • Proposal owners:
    • Prepare PostgreSQL 13 as a module for Rawhide and at least one stable Fedora release (done)
    • Prepare PostgreSQL 12 as a module for Rawhide, so there would be a failover in case of problems
    • Build PostgreSQL 13 to Rawhide
    • Check software that requires or depends on postgresql-server or libpq packages for incompatibilities
    • Rebuild those packages against PostgreSQL 13 (see Dependencies)
    • Gather user input on the changes between PostgreSQL 12 and PostgreSQL 13
  • 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, but rebuild of the depended components is better to be sure. 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 13.

User Experience

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

If users want to stick with PostgreSQL 12 for a little longer, there will be PostgreSQL 12 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
    • 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. Though, those will need to be rebuild as well.

  • libpq
    • EMBOSS
    • PyGreSQL
    • apr
    • asterisk
    • bacula
    • biboumi
    • bind
    • clisp
    • collectd
    • coturn
    • cyrus
    • dovecot
    • dpsearch
    • dspam
    • echoping
    • exim
    • flow
    • freeradius
    • freight
    • gambas3
    • gammu
    • gawk
    • gdal
    • gearmand
    • glite
    • gnatcoll
    • gnokii
    • gpsdrive
    • grass
    • hydra
    • jabberd
    • kdb
    • kea
    • libdbi
    • libecpg
    • libgda
    • libnss
    • libpqxx
    • libpreludedb
    • libreoffice
    • libzdb
    • lua
    • mapnik
    • mapserver
    • matreshka
    • medusa
    • mirrorlist
    • mydns
    • nagios
    • nodejs
    • ocaml
    • opensips
    • osm2pgsql
    • pdns
    • perdition
    • perl
    • pg_top
    • pgadmin3
    • pgcenter
    • pgmodeler
    • php
    • player
    • postfix
    • postgis
    • proftpd
    • pspp
    • pure
    • python
    • qgis
    • qt
    • qt3
    • qt5
    • redland
    • repmgr
    • root
    • rsyslog
    • rubygem
    • saga
    • soci
    • sphinx
    • sysbench
    • tcl
    • unicornscan
    • vtk
    • wt
    • zabbix
  • postgresql-server
    • glom
    • openqa
    • perl
    • pg_top
    • pgaudit
    • pgtoolkit
    • repmgr

Contingency Plan

Revert changes and provide PostgreSQL 13 as a module stream.

Documentation

Upgrade startegy: https://www.postgresql.org/docs/13/upgrading.html

Release Notes

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

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