30th September 2021: PostgreSQL 14 Released!

LLVM issues with PostgreSQL YUM repository on CentOS 8

Posted on 2020-11-13 by yum.postgresql.org
PostgreSQL Project

In the latest 3 minor releases of Red Hat Enterprise Linux 8, Red Hat have broken LLVM compatibility with the previous minor releases (like introducing LLVM 8 with RHEL 8.1, LLVM 9 with RHEL 8.2, and LLVM 10 with RHEL 8.3).

This breaks compatibility with the previous releases, and also affects PostgreSQL updates for the users who installed the llvmjit subpackage. The negative effects are:

RHEL: Users cannot update to the new LLVM until the packages are rebuilt. This issue has been solved already, by updating the build servers to the new minor release immediately, and rebuilding affected packages.

CentOS, which lags behind RHEL, is also significantly affected by this breakage, blocking PostgreSQL minor updates. This is the problem that needs to be solved.

Today, we released a new repo called “pgdg-centos8-sysupdates” for CentOS 8 users. This repo brings in the LLVM and CLANG packages from latest RHEL (of course, rebuilt and signed with our own key), which satisfy the llvmjit dependency. Please note that this is optional, because it may break other packages (if any) which depend on older versions of LLVM and CLANG. This feature is available for PostgreSQL 11 and above.

Users first need to update to the latest repo file (dnf -y update pgdg-redhat-repo) to benefit from this feature, which is 42.0.15 at the time of writing.

Here are the steps to enable this repo:

dnf -qy module disable postgresql llvm-toolset rust-toolset dnf config-manager --set-enabled pgdg-centos8-sysupdates

(Disabling rust-toolset is not a must, however dnf will otherwise throw warnings as it has a dependency to the llvm-toolset module).

When this is done, you can either update or install the llvmjit package normally.

If you have any questions/comments, please either email to pgsql-pkg-yum@lists.postgresql.org, or create an issue at PostgreSQL community RPM issue tracker (requires a community account to access)