Re: postgresql13-devel vs libpq-devel

From: Devrim Gündüz <devrim(at)gunduz(dot)org>
To: Marcin Cieslak <saper(at)saper(dot)info>, pgsql-pkg-yum(at)lists(dot)postgresql(dot)org
Subject: Re: postgresql13-devel vs libpq-devel
Date: 2025-04-15 12:52:22
Message-ID: 9966f2577a74a4f8490867821e27b7cb8d33a857.camel@gunduz.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-pkg-yum

Hi Marcin,

On Mon, 2025-04-14 at 16:24 +0000, Marcin Cieslak wrote:
>

> The RHEL 9 machine I have has postgresql13, -libs, -server and -devel
> installed from the PGDG repository (all at the 13.20-1PGDG revision).
>
> Today I have tried to rebuild a package provided by Red Hat (rsyslog)
> and it has a build time dependency on libpq-devel [1].
>
> dnf --enablerepo pgdg-common --enablerepo pgdg13 install libpq-devel
>
> does nothing since "postgresql13-devel" already "obsoletes" libpq-deve
> but it does not full replace it (it does not "provide" libpq-devel).

That's because I never thought of replacing libpq-devel (not that I did
not want to, I missed that)

>
> This is kind of expected, I could install postgresql13-devel,
> postgresdql14-devel
> up to the 18 if I really like in parallel. I can't do this with libpq-
> devel.
>
> However, the RPM packages obviously want to have it Red Hat way, no
> the Postgres way.
>
> Today, as it happens, RHEL 9 has 13.20 in their base, and I have
> 13.20-1PGDG
> installed, but this is just a nice coincidene - I have simply done
>
> dnf erase --noautoremove postgresql13-devel
> dbf install libpq-devel
>
> Is there any elegant solution to this problem? For example, is there
> any clean way to say "please using my postgresql13-devel and instead
> of libpq-devel?"
> to rpmbuild? That would require telling PATH and pkgconf to go
> somewhere else...

There are two options in here:

1. Edit the spec file and replace libpq-devel BR with libpq5-devel.

2. (As you suggested): Export PATH like this (and line 45):

https://git.postgresql.org/gitweb/?p=pgrpms.git;a=blob;f=rpm/redhat/main/non-common/plxslt/main/plxslt.spec#l40

In your case replace %{pginstdir} with /usr/pgsql-13

I'd do the latter (see below)

> Or maybe postgresql13-devel and libpq-devel should get along with each
> other?
> I think postgresql13-libs and RHEL's libpq do, and both provide
> "libpq.so.5()".

So, history first: After introducing multiple version installation about
15 years ago (I know, I know...) my plan was to wait until 8.4 is EOLed
so that I could build a common libpq/libpq-devel package in our repo. It
never happened as I did not want to break any builds. But that is now
past.

In the last couple weeks I made a few attempts to build a libpq5-devel
which provides all pieces of a postgresql$latestMajorVersion-devel . It
is still WIP. Once that is done I can *also* obsolete libpq-devel.

-HTH

Regards,
--
Devrim Gündüz
Open Source Solution Architect, PostgreSQL Major Contributor
Twitter: @DevrimGunduz , @DevrimGunduzTR

In response to

Browse pgsql-pkg-yum by date

  From Date Subject
Next Message Laurenz Albe 2025-04-16 12:23:33 Problems installing PostgreSQL on Fedora 42
Previous Message Marcin Cieslak 2025-04-14 16:24:28 postgresql13-devel vs libpq-devel