(Update for F34) |
(Add notes about compatibility breakage and plan to use a site-tag.) |
||
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` components) in Fedora from version 12 to version 13 in the non-modular (main) builds. | Update of PostgreSQL (`postgresql` and `libpq` 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 64: | Line 64: | ||
**Prepare PostgreSQL 13 as a module for Rawhide and at least one stable Fedora release (done) | **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 | **Prepare PostgreSQL 12 as a module for Rawhide, so there would be a failover in case of problems | ||
**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 13 (see Dependencies) | **Build PostgreSQL 13 (postgresql and libpq) to Rawhide in a site-tag (https://fedoraproject.org/wiki/Package_update_HOWTO#Creating_a_side-tag) | ||
**Rebuild those packages against PostgreSQL 13 in the site-tag (see Dependencies) | |||
**Let the site-tag merged | |||
**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 84: | ||
== Upgrade/compatibility impact == | == Upgrade/compatibility impact == | ||
The PostgreSQL client library (libpq component) is compatible, | The PostgreSQL client library (libpq component) is compatible, but there is an issue with symbol versioning (originally reported https://bugzilla.redhat.com/show_bug.cgi?id=1893324 was reverted, but there is a plan to fix this properly together with this PostgreSQL update tracked in https://bugzilla.redhat.com/show_bug.cgi?id=1908268). So, there shouldn't be any issues with API compatibility, but rebuild of the depended components is necessary. | ||
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 94: | Line 96: | ||
== User Experience == | == User Experience == | ||
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` after installing PostgreSQL 13 server packages. | ||
If users want to stick with PostgreSQL 12 for a little longer, there will be PostgreSQL 12 module | If users want to stick with PostgreSQL 12 for a little longer, there will be PostgreSQL 12 module | ||
Line 227: | Line 229: | ||
== Contingency Plan == | == Contingency Plan == | ||
Revert changes and provide PostgreSQL 13 as a module stream. | Revert changes in the non-modular packages and provide PostgreSQL 13 as a module stream only. | ||
== Documentation == | == Documentation == |
Revision as of 09:32, 16 December 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
- Name: Patrik Novotny
- Email: panovotn@redhat.com
Current status
- Targeted release: Fedora 34
- Last updated: 2020-12-16
- 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
and libpq
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
- Check software that requires or depends on
postgresql-server
orlibpq
packages for incompatibilities - Build PostgreSQL 13 (postgresql and libpq) to Rawhide in a site-tag (https://fedoraproject.org/wiki/Package_update_HOWTO#Creating_a_side-tag)
- Rebuild those packages against PostgreSQL 13 in the site-tag (see Dependencies)
- Let the site-tag merged
- Gather user input on the changes between PostgreSQL 12 and PostgreSQL 13
- Other developers: N/A (not a System Wide Change)
- Release engineering: #Releng issue number (a check of an impact with Release Engineering is needed)
- 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, but there is an issue with symbol versioning (originally reported https://bugzilla.redhat.com/show_bug.cgi?id=1893324 was reverted, but there is a plan to fix this properly together with this PostgreSQL update tracked in https://bugzilla.redhat.com/show_bug.cgi?id=1908268). So, there shouldn't be any issues with API compatibility, but rebuild of the depended components is necessary.
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
after installing PostgreSQL 13 server packages.
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 in the non-modular packages and provide PostgreSQL 13 as a module stream only.
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