Thread: libpython3.6 requirement problem

libpython3.6 requirement problem

From
Jesper St John
Date:
Hi there,

for postgresql 14, there seems to be a dependency on libpython3.6 built 
into the -contrib package.

More specifically, these libs:
=== hstore_plpython3.so
         libpython3.6m.so.1.0 => /usr/lib64/libpython3.6m.so.1.0 
(0x00007ff431a3a000)
=== jsonb_plpython3.so
         libpython3.6m.so.1.0 => /usr/lib64/libpython3.6m.so.1.0 
(0x00007fa912989000)
=== ltree_plpython3.so
         libpython3.6m.so.1.0 => /usr/lib64/libpython3.6m.so.1.0 
(0x00007fad02ca1000)

The Makefile was changed from 13 -> 14 moving these lines as I 
understand. Not 100% sure that's what's causing my issue.
%if %plpython3
%{pgbaseinstdir}/lib/hstore_plpython3.so
%{pgbaseinstdir}/lib/jsonb_plpython3.so
%{pgbaseinstdir}/lib/ltree_plpython3.so
%endif

I can install the postgresql 13 contrib package just fine.
So I could remove them and/or rebuild contrib using a newer version of 
python, but I'd rather use packages from yum.postgresql.org.

Python 3.6 was deprecated on 2021-12-23 according to 
https://devguide.python.org/devcycle/#end-of-life-branches and perhaps 
it's time to build with newer python version(s)?

//Jesper



Re: libpython3.6 requirement problem

From
Devrim Gündüz
Date:
Hi,

On Thu, 2022-02-10 at 12:00 +0100, Jesper St John wrote:
> or postgresql 14, there seems to be a dependency on libpython3.6
> built  into the -contrib package.

That is ok, please see below:

>
> More specifically, these libs:
> === hstore_plpython3.so
>          libpython3.6m.so.1.0 => /usr/lib64/libpython3.6m.so.1.0
> (0x00007ff431a3a000)
> === jsonb_plpython3.so
>          libpython3.6m.so.1.0 => /usr/lib64/libpython3.6m.so.1.0
> (0x00007fa912989000)
> === ltree_plpython3.so
>          libpython3.6m.so.1.0 => /usr/lib64/libpython3.6m.so.1.0
> (0x00007fad02ca1000)

<snip>

>
> I can install the postgresql 13 contrib package just fine.

On the build box, this is what I'm getting:

PostgreSQL 13:
# ldd /usr/pgsql-13/lib/hstore_plpython3.so | grep python
    libpython3.6m.so.1.0 => /usr/lib64/libpython3.6m.so.1.0
(0x00007fde4b762000)

PostgreSQL 14:
# ldd /usr/pgsql-14/lib/hstore_plpython3.so | grep python
    libpython3.6m.so.1.0 => /usr/lib64/libpython3.6m.so.1.0
(0x00007f30b4df2000)

So looks like they are the same. The reason is:

========

$ python3
Python 3.6.8 (default, Sep  9 2021, 07:49:02)
[GCC 8.5.0 20210514 (Red Hat 8.5.0-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

=============

Installed python39 (and -devel), and then tried to remove python36*
packages -- but it removes many other packages which depend on Python
3.6


> Python 3.6 was deprecated on 2021-12-23 according to
> https://devguide.python.org/devcycle/#end-of-life-branches and
> perhaps
> it's time to build with newer python version(s)?


OTOH, I can easily patch spec file to use Python 3.9 for RHEL 8, but
I'm not sure it's a good idea to do that in a minor release.

Maybe we should stick to the current deps, and change things for
PostgreSQL 15.

How does it sound?

Regards,




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

Attachment