Subject: Missing dependency on Fedora 39 / PostgreSQL 16 / PostGIS 3.4

From: Laurenz Albe <[email-masked]>
Date: Tue, 26 Mar 2024 17:19:03 +0100

This is what I get:

  > sudo dnf update postgis34_16
  enabling fedora-debuginfo repository
  enabling fedora-cisco-openh264-debuginfo repository
  enabling updates-debuginfo repository
  enabling pgdg15-debuginfo repository
  enabling pgdg14-debuginfo repository
  enabling pgdg13-debuginfo repository
  enabling pgdg12-debuginfo repository
  Last metadata expiration check: 0:03:17 ago on Tue 26 Mar 2024 05:09:11 PM CET.
  Dependencies resolved.

   Problem: cannot install the best update candidate for package postgis34_16-3.4.2-1PGDG.f39.x86_64
    - nothing provides gdal38-libs >= 3.8.4 needed by postgis34_16-3.4.2-2PGDG.f39.x86_64 from pgdg16
    - nothing provides libgdal.so.34()(64bit) needed by postgis34_16-3.4.2-2PGDG.f39.x86_64 from pgdg16
  =============================================================================================================================================================================
   Package                                    Architecture                         Version                                          Repository                            Size
  =============================================================================================================================================================================
  Skipping packages with broken dependencies:
   postgis34_16                               x86_64                               3.4.2-2PGDG.f39                                  pgdg16                               4.0 M

  Transaction Summary
  =============================================================================================================================================================================
  Skip  1 Package

  Nothing to do.
  Complete!>

The repository RPM is pgdg-fedora-repo-42.0-31PGDG.noarch

Yours,
Laurenz Albe

---

From: Laurenz Albe <[email-masked]>
Date: Thu, 28 Mar 2024 08:59:04 +0100

>     - nothing provides libgdal.so.34()(64bit) needed by postgis34_16-3.4.2-2PGDG.f39.x86_64 from pgdg16

gdal38-libs is now available, and the installation works.

Thanks for fixing!

Yours,
Laurenz Albe

---

From: Devrim Gündüz <[email-masked]>
Date: Thu, 28 Mar 2024 09:35:53 +0000

Hi,

> gdal38-libs is now available, and the installation works.

I did not fix anything :-( No idea what happened, as I also tried with a
fresh vm yesterday and it worked as well...

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

---

From: Laurenz Albe <[email-masked]>
Date: Sat, 30 Mar 2024 15:46:18 +0100

> fresh vm yesterday and it worked as well...

Mysterious, but no problem.

However, I found a more serious problem:
The PostGIS dependencies for the latest package seem to be messed up.  

Let's check what PROJ and GDAL versions are required by PostGIS:

  > rpm -q --requires postgis34_16 | grep -e '\(proj\|gdal\)'
  gdal38-libs >= 3.8.4
  libgdal.so.34()(64bit)
  libproj.so.25()(64bit)
  proj93 >= 9.3.1

Ok, cool.  Now let's look at the requirements for gdal38-libs:

  > rpm -q --requires gdal38-libs | grep '\(libspatialite\|devel\)'
  libgeotiff17-devel
  libspatialite.so.8()(64bit)
  libspatialite50-devel

There is a strange thing: it requires development packages.  Huh?
But let's follow the other dependency:

  > rpm -q --whatprovides 'libspatialite.so.8()(64bit)'
  libspatialite50-5.1.0-2PGDG.f39.x86_64

That's not particularly surprising.  But that package requires PROJ too:

  > rpm -q --requires libspatialite50 | grep proj
  libproj.so.25()(64bit)
  proj92 >= 9.2.1

So PostGIS ends up requiring both proj92 and proj93.
Since both packages seem to provide the same major library version,
I guess that libspatialite50 should be changed to require proj93.

Yours,
Laurenz Albe