Subject: error creating postgis25 extension on postgis 11

From: Richard Huesken <[email-masked]>
Date: Sun, 4 Nov 2018 16:56:04 +0100

Hi,

On my Oracle Linux 7 box I had troubles vreating a postgis extension:

create extension postgis

The error is:
SQL Error [XX000]: ERROR: could not load library "/usr/pgsql-11/lib/
postgis-2.5.so": /usr/pgsql-11/lib/postgis-2.5.so: undefined symbol:
geod_polygon_init
  ERROR: could not load library "/usr/pgsql-11/lib/postgis-2.5.so":
/usr/pgsql-11/lib/postgis-2.5.so: undefined symbol: geod_polygon_init

This might be a packaging error in the postgis25_11 package for Oracle
Linux 7.
I tried to create a ticket for this issue, however I'm not sure if this
worked out correctly.

I'm sending this mail just to be sure...

[root@ol-pg11 lib64]# uname -a
Linux ol-pg11.rihu-ho 4.1.12-124.20.7.el7uek.x86_64 #2 SMP Wed Oct 24
14:15:06 PDT 2018 x86_64 x86_64 x86_64 GNU/Linux

[root@ol-pg11 ~]# yum list installed | grep proj
proj.x86_64                            4.8.0-4.el7                 @epel
proj49.x86_64                          4.9.3-3.rhel7.1             @pgdg11

Indeed there are 2 dependencies in my postgis25_11 package:

[root@ol-pg11 ~]# yum deplist postgis25_11
Loaded plugins: langpacks, ulninfo
package: postgis25_11.x86_64 2.5.0-1.rhel7.1
...
  dependency: libproj.so.0()(64bit)
   provider: proj.x86_64 4.8.0-4.el7
  dependency: libproj.so.12()(64bit)
   provider: proj49.x86_64 4.9.3-3.rhel7.1
...

postgis-2.5.so seems to be using the one in the /lib64 directory:

[root@ol-pg11 lib]# ldd postgis-2.5.so
...
        libproj.so.0 => /lib64/libproj.so.0 (0x00007f6792485000)
...

The proj4.8 version is located in /lib64

[root@ol-pg11 lib]# cd /lib64/
[root@ol-pg11 lib64]# ls -l libproj.so*
lrwxrwxrwx. 1 root root     16 Oct 29 13:36 libproj.so.0 -> libproj.so.0.7.0
-rwxr-xr-x. 1 root root 338168 Jan 24  2014 libproj.so.0.7.0

Whereas the proj4.9 version is located in /usr/proj49/lib

[root@ol-pg11 lib64]# find / -name libproj.so.12
/usr/proj49/lib/libproj.so.12

The postgis25_11 package should only reference the the proj4.9 version.
Once I fix this manually by changing the symlink I am able to create the
postgis extension.

The permanent option is to fix the package, hope you agree on this,

Kind regards,
Richard.

---

From: Paul Ramsey <[email-masked]>
Date: Wed, 7 Nov 2018 10:41:05 -0800

The problem is definitely due to the presence of two proj libraries at once, and postgis picking up on the “wrong” one first. You can force-remove the 4.8 one and run ldconfig and probably things work fine then. 
Not sure how it’s happening, the spec file for postgis25 seems to make sense WRT what it’s declaring for dependencies:

https://git.postgresql.org/gitweb/?p=pgrpms.git;a=blob;f=rpm/redhat/master/postgis25/master/postgis25.spec;h=a5bea2381fe78ef8b922ebd135ddf7bd683bffc0;hb=refs/heads/master <https://git.postgresql.org/gitweb/?p=pgrpms.git;a=blob;f=rpm/redhat/master/postgis25/master/postgis25.spec;h=a5bea2381fe78ef8b922ebd135ddf7bd683bffc0;hb=refs/heads/master>

I’m not sure why the “proj49” package doesn’t supercede and remove the “proj” package.

P

> On Nov 4, 2018, at 7:56 AM, Richard Huesken <[email-masked]> wrote:
> 
> Hi,
> 
> SQL Error [XX000]: ERROR: could not load library "/usr/pgsql-11/lib/postgis-2.5.so <http://postgis-2.5.so/>": /usr/pgsql-11/lib/postgis-2.5.so <http://postgis-2.5.so/>: undefined symbol: geod_polygon_init
>   ERROR: could not load library "/usr/pgsql-11/lib/postgis-2.5.so <http://postgis-2.5.so/>": /usr/pgsql-11/lib/postgis-2.5.so <http://postgis-2.5.so/>: undefined symbol: geod_polygon_init
> 
> This might be a packaging error in the postgis25_11 package for Oracle Linux 7.
> I tried to create a ticket for this issue, however I'm not sure if this worked out correctly.
> 
> Linux ol-pg11.rihu-ho 4.1.12-124.20.7.el7uek.x86_64 #2 SMP Wed Oct 24 14:15:06 PDT 2018 x86_64 x86_64 x86_64 GNU/Linux
> 
> 
> postgis-2.5.so <http://postgis-2.5.so/> seems to be using the one in the /lib64 directory:
> 
> [root@ol-pg11 lib]# ldd postgis-2.5.so <http://postgis-2.5.so/>
> ...
> Once I fix this manually by changing the symlink I am able to create the postgis extension.
>