sclorg / postgresql-container

PostgreSQL container images based on Red Hat Software Collections and intended for OpenShift and general usage. Users can choose between Red Hat Enterprise Linux, Fedora, and CentOS based images.
http://softwarecollections.org
Apache License 2.0
164 stars 216 forks source link

Support building and testing PostgreSQL-16 #548

Closed phracek closed 9 months ago

phracek commented 10 months ago

This pull request enables building and testing PostgreSQL-16.

The first commit modifies sources to enable building and testing. The second commit adds dist-gen generated source for postgresql-16

phracek commented 10 months ago

This PR is blocked by #547

hhorak commented 10 months ago

In order to have PostgreSQL 16 in Fedora, we need to use Fedora 39 as the base, it seems that Fedora 38 is used currently and there is no PostgreSQL 16 there. Plus, we need to use postgresql16-server as the packages to be installed on Fedora 39.

phracek commented 10 months ago

Fedora failure is known:


Error:
 Problem: package pgaudit-1.7.0-5.fc39.x86_64 from fedora requires postgresql-server(:MODULE_COMPAT_15), but none of the providers can be installed
  - package postgresql-server-15.4-1.fc39.i686 from fedora requires postgresql(x86-32) = 15.4-1.fc39, but none of the providers can be installed
  - package postgresql-server-15.4-1.fc39.x86_64 from fedora requires postgresql(x86-64) = 15.4-1.fc39, but none of the providers can be installed
  - package postgresql16-16.1-1.fc39.x86_64 from updates conflicts with postgresql provided by postgresql-15.4-1.fc39.i686 from fedora
  - package postgresql16-16.1-1.fc39.x86_64 from updates conflicts with postgresql provided by postgresql-15.4-1.fc39.x86_64 from fedora
  - package postgresql16-contrib-16.1-1.fc39.x86_64 from updates requires postgresql16(x86-64) = 16.1-1.fc39, but none of the providers can be installed
  - conflicting requests
  - 
  - ```
phracek commented 10 months ago

In order to have PostgreSQL 16 in Fedora, we need to use Fedora 39 as the base, it seems that Fedora 38 is used currently and there is no PostgreSQL 16 there. Plus, we need to use postgresql16-server as the packages to be installed on Fedora 39.

@hhorak This commit should fix it https://github.com/sclorg/postgresql-container/pull/548/commits/d855c5622ee5379d4d95f3d1477a1aa54b3d50de. And generated source is here: https://github.com/sclorg/postgresql-container/pull/548/commits/1fb430addca722f17a99c3074f66ca0718eac14c

[test]

phracek commented 10 months ago

The corresponding bugzilla is: https://bugzilla.redhat.com/show_bug.cgi?id=2255013

fila43 commented 10 months ago

Once this update is pushed, Fedora test should pass

Fedora failure is known:

Error:
 Problem: package pgaudit-1.7.0-5.fc39.x86_64 from fedora requires postgresql-server(:MODULE_COMPAT_15), but none of the providers can be installed
  - package postgresql-server-15.4-1.fc39.i686 from fedora requires postgresql(x86-32) = 15.4-1.fc39, but none of the providers can be installed
  - package postgresql-server-15.4-1.fc39.x86_64 from fedora requires postgresql(x86-64) = 15.4-1.fc39, but none of the providers can be installed
  - package postgresql16-16.1-1.fc39.x86_64 from updates conflicts with postgresql provided by postgresql-15.4-1.fc39.i686 from fedora
  - package postgresql16-16.1-1.fc39.x86_64 from updates conflicts with postgresql provided by postgresql-15.4-1.fc39.x86_64 from fedora
  - package postgresql16-contrib-16.1-1.fc39.x86_64 from updates requires postgresql16(x86-64) = 16.1-1.fc39, but none of the providers can be installed
  - conflicting requests
  - 
  - ```
phracek commented 9 months ago

[test]

zmiklank commented 9 months ago

[test]

phracek commented 9 months ago

[test]

phracek commented 9 months ago

Another Fedora update for postgresql16-pgaudit https://bodhi.fedoraproject.org/updates/FEDORA-2024-e86c64a60b

phracek commented 9 months ago

Fedora fix is already stable. Thanks @fila43 . Let's try to re-run tests.

[test]

zmiklank commented 9 months ago

Patch like this is needed (use postgresql16-pgaudit, instead of pgaudit for postgresql 16 in fedora):

diff --git a/src/Dockerfile.fedora b/src/Dockerfile.fedora
index 806621e..ad8e03e 100644
--- a/src/Dockerfile.fedora
+++ b/src/Dockerfile.fedora
@@ -54,9 +54,12 @@ RUN INSTALL_PKGS="rsync tar gettext bind-utils postgresql16-server postgresql16-
 RUN INSTALL_PKGS="rsync tar gettext bind-utils postgresql-server postgresql-contrib nss_wrapper " && \
 {% endif %}
     INSTALL_PKGS+="findutils xz" && \
-{% if spec.version not in ["9.6", "10", "11"] %}
+{% if spec.version not in ["9.6", "10", "11", "16"] %}
     INSTALL_PKGS+=" pgaudit" && \
 {% endif %}
+{% if spec.version == "16" %}
+    INSTALL_PKGS+=" postgresql16-pgaudit" && \
+{% endif %}
 {% if spec.version not in ["16"] %}
     dnf -y module enable postgresql:{{ spec.version }} && \
 {% endif %}
phracek commented 9 months ago

[test]