Subject: postgresql12-devel and postgresql12-llvmjit incompatible on CentOS8

From: Spyridon-Dimitrios Agathos <[email-masked]>
Date: Mon, 14 Jun 2021 05:37:56 -0700 (MST)

Hi there,

trying to install postgresql12-llvmjit.x86_64(12.7-2PGDG.rhel8) on a CentOS8
system that already has postgresql12-devel.x86_64(12.7-2PGDG.rhel8) I get
the following message:

[root@0f85f16d54be /]# yum install postgresql12-llvmjit                                                                                                                                                                                                                                   
Last metadata expiration check: 1:13:56 ago on Mon 14 Jun 2021 10:35:59 AM
UTC.
Error: 
 Problem: problem with installed package llvm-devel-10.0.1-3PGDG.el8.x86_64
  - package llvm-devel-10.0.1-3PGDG.el8.x86_64 requires llvm-libs(x86-64) =
10.0.1-3PGDG.el8, but none of the providers can be installed
  - package llvm-devel-10.0.1-3PGDG.el8.x86_64 requires
libLLVM-10.so()(64bit), but none of the providers can be installed
  - package llvm-devel-10.0.1-3PGDG.el8.x86_64 requires
libLLVM-10.so(LLVM_10)(64bit), but none of the providers can be installed
  - cannot install both llvm-libs-11.0.0-2.el8.x86_64 and
llvm-libs-10.0.1-3PGDG.el8.x86_64
  - package llvm-devel-11.0.0-2.el8.x86_64 requires llvm-test(x86-64) =
11.0.0-2.el8, but none of the providers can be installed
  - package postgresql12-llvmjit-12.7-2PGDG.rhel8.x86_64 requires
libLLVM-11.so()(64bit), but none of the providers can be installed
  - package postgresql12-llvmjit-12.7-2PGDG.rhel8.x86_64 requires
libLLVM-11.so(LLVM_11)(64bit), but none of the providers can be installed
  - package llvm-test-11.0.0-2.el8.x86_64 requires python3-lit, but none of
the providers can be installed
  - cannot install the best candidate for the job
  - package llvm-libs-11.0.0-2.module_el8.4.0+587+5187cac0.x86_64 is
filtered out by modular filtering
  - package python3-lit-0.11.0-1.module_el8.4.0+587+5187cac0.noarch is
filtered out by modular filtering
(try to add '--allowerasing' to command line to replace conflicting packages
or '--skip-broken' to skip uninstallable packages or '--nobest' to use not
only best candidate packages)

It looks like:
postgresql12-llvmjit.x86_64(12.7-2PGDG.rhel8) requires llvm-libs
11.0.0-2.el8, while
postgresql12-devel.x86_64(12.7-2PGDG.rhel8) requires llvm-libs
10.0.1-3PGDG.el8

I verified the same incompatibility also for:
postgresql13-llvmjit.x86_64(13.3-2PGDG.rhel8) requires llvm-libs
11.0.0-2.el8, while
postgresql13-devel.x86_64(13.3-2PGDG.rhel8) requires llvm-libs
10.0.1-3PGDG.el8

Regards,
Spiros

--
Sent from: https://www.postgresql-archive.org/PostgreSQL-pkg-yum-f6042034.html

---

From: Devrim Gündüz <[email-masked]>
Date: Wed, 16 Jun 2021 10:04:41 +0100

Hi,

> only best candidate packages)

Please enable sysupdates repo, or update to CentOS 8.4:

https://yum.postgresql.org/news/centos8-llvm-repo-is-available/

Regards,
-- 
Devrim Gündüz
Open Source Solution Architect, Red Hat Certified Engineer
Twitter: @DevrimGunduz , @DevrimGunduzTR

---

From: Spyridon-Dimitrios Agathos <[email-masked]>
Date: Wed, 16 Jun 2021 03:39:24 -0700 (MST)

I am using CentOS 8.4 and sysupdates repo is enabled.
The problem is still there, the latest versions of
postgresql12-llvmjit.x86_64(12.7-2PGDG.rhel8) and
postgresql12-devel.x86_64(12.7-2PGDG.rhel8) are not compatible.
Check the following yum package outputs:

# yum install postgresql12-llvmjit
Last metadata expiration check: 9 days, 0:45:32 ago on Mon 07 Jun 2021
09:44:14 AM UTC.
Dependencies resolved.
======================================================================================
 Package                 Architecture  Version           Repository             
Size
======================================================================================
Installing:
 postgresql12-llvmjit    x86_64        12.7-2PGDG.rhel8  pgdg12                 
9.6 M
Installing dependencies:
 llvm                    x86_64        11.0.0-2.el8     
pgdg-centos8-sysupdates  12 M
 llvm-libs               x86_64        11.0.0-2.el8     
pgdg-centos8-sysupdates  21 M
 postgresql12            x86_64        12.7-2PGDG.rhel8  pgdg12                 
1.7 M
 postgresql12-libs       x86_64        12.7-2PGDG.rhel8  pgdg12                 
399 k
 postgresql12-server     x86_64        12.7-2PGDG.rhel8  pgdg12                 
5.2 M

Transaction Summary
======================================================================================
Install  6 Packages

# yum install postgresql12-devel
Last metadata expiration check: 9 days, 0:50:36 ago on Mon 07 Jun 2021
09:44:14 AM UTC.
Dependencies resolved.
==================================================================================================================================
 Package                          Architecture         Version                       
Repository                             Size
==================================================================================================================================
Installing:
 postgresql12-devel               x86_64               12.7-2PGDG.rhel8              
pgdg12                                2.2 M
Installing dependencies:
 clang                            x86_64               10.0.1-1.el8                  
pgdg-centos8-sysupdates                74 k
 clang-devel                      x86_64               10.0.1-1.el8                  
pgdg-centos8-sysupdates               2.0 M
 clang-libs                       x86_64               10.0.1-1.el8                  
pgdg-centos8-sysupdates                25 M
 clang-tools-extra                x86_64               10.0.1-1.el8                  
pgdg-centos8-sysupdates                13 M
 gcc-c++                          x86_64               8.4.1-1.el8                   
appstream                              12 M
 libstdc++-devel                  x86_64               8.4.1-1.el8                   
appstream                             2.0 M
 llvm                             x86_64               10.0.1-3PGDG.el8              
pgdg-centos8-sysupdates               4.5 M
 llvm-devel                       x86_64               10.0.1-3PGDG.el8              
pgdg-centos8-sysupdates               3.1 M
 llvm-libs                        x86_64               10.0.1-3PGDG.el8              
pgdg-centos8-sysupdates                20 M
 postgresql12                     x86_64               12.7-2PGDG.rhel8              
pgdg12                                1.7 M
 postgresql12-libs                x86_64               12.7-2PGDG.rhel8              
pgdg12                                399 k

Transaction Summary
==================================================================================================================================
Install  12 Packages

So, if someone builds a PSQL extension (which utilizes JIT) using the
postgresql12-devel.x86_64(12.7-2PGDG.rhel8), then
this incompatibility will cause errors with the dependency libraries of
postgresql12-llvmjit.x86_64(12.7-2PGDG.rhel8) that maybe installed on the
server.

Regards,
Spiros

---

From: Devrim Gündüz <[email-masked]>
Date: Thu, 17 Jun 2021 00:38:04 +0100

Hi,

> filtered out by modular filtering

Did you run this command?

 dnf -qy module disable postgresql llvm-toolset rust-toolset

Regards,

---

From: Spyridon-Dimitrios Agathos <[email-masked]>
Date: Wed, 16 Jun 2021 22:13:38 -0700 (MST)

Hi,

yes I run both:
# dnf -qy module disable postgresql llvm-toolset rust-toolset
# dnf config-manager --set-enabled pgdg-centos8-sysupdates 

then
# yum update

and still the output of
# yum install postgresql12-devel  --> llvm-libs  x86_64 10.0.1-3PGDG.el8
pgdg-centos8-sysupdates 
# yum install postgresql12-llvmjit --> llvm-libs  x86_64 11.0.0-2.el8 
pgdg-centos8-sysupdates

Regards,
Spiros

---

From: Spyridon-Dimitrios Agathos <[email-masked]>
Date: Wed, 16 Jun 2021 22:36:56 -0700 (MST)

Hi there,

the steps to reproduce it:
# docker run -it centos:latest /bin/bash

then in the container:
# yum update
# dnf install -y
https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# dnf -qy module disable postgresql llvm-toolset rust-toolset
# dnf install 'dnf-command(config-manager)'
# dnf config-manager --set-enabled pgdg-centos8-sysupdates
# yum install postgresql12-devel
# yum install postgresql12-llvmjit

Regards,
Spiros