Bug 1021246

Summary: Postgresql94 POSTGIS 2.3.1 error: undefined symbol: GEOSVoronoiDiagram
Product: [openSUSE] openSUSE Distribution Reporter: Mat Feuer <spocht>
Component: BasesystemAssignee: Bruno Friedmann <bruno>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: astieger, mpluskal, spocht
Version: Leap 42.2   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Mat Feuer 2017-01-21 07:57:20 UTC
Hello,

I get an error when creating the postgis extension:

ERROR:  could not load library "/usr/lib/postgresql94/lib64/postgis-2.3.so": /usr/lib/postgresql94/lib64/postgis-2.3.so: undefined symbol: GEOSVoronoiDiagram

An ldd on postgis-2.3.so gives:

linux-vdso.so.1 (0x00007ffc8612f000) 
libgeos_c.so.1 => /usr/lib64/libgeos_c.so.1 (0x00007f8aa0bb8000) 
libproj.so.12 => /usr/lib64/libproj.so.12 (0x00007f8aa094d000) 
libjson-c.so.2 => /usr/lib64/libjson-c.so.2 (0x00007f8aa0741000)
libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007f8aa03d6000)
libm.so.6 => /lib64/libm.so.6 (0x00007f8aa00d9000)
libSFCGAL.so.1 => /usr/lib64/libSFCGAL.so.1 (0x00007f8a9f2db000)
libc.so.6 => /lib64/libc.so.6 (0x00007f8a9ef38000)
libgeos-3.4.2.so => /usr/lib64/libgeos-3.4.2.so (0x00007f8a9eb95000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f8a9e80c000) 
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f8a9e5f5000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8a9e3d8000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f8a9e1d3000)
libz.so.1 => /lib64/libz.so.1 (0x00007f8a9dfbd000)
liblzma.so.5 => /usr/lib64/liblzma.so.5 (0x00007f8a9dd94000)
libCGAL.so.10 => /usr/lib64/libCGAL.so.10 (0x00007f8a9db6a000)
libCGAL_Core.so.10 => /usr/lib64/libCGAL_Core.so.10 (0x00007f8a9d931000)
libmpfr.so.4 => /usr/lib64/libmpfr.so.4 (0x00007f8a9d6d6000)
libgmp.so.10 => /usr/lib64/libgmp.so.10 (0x00007f8a9d44e000)
libboost_thread.so.1.54.0 => /usr/lib64/libboost_thread.so.1.54.0 (0x00007f8a9d236000)
libboost_system.so.1.54.0 => /usr/lib64/libboost_system.so.1.54.0 (0x00007f8a9d032000)
libboost_serialization.so.1.54.0 => /usr/lib64/libboost_serialization.so.1.54.0 (0x00007f8a9cdc4000)
/lib64/ld-linux-x86-64.so.2 (0x000055fb2fc8b000)
librt.so.1 => /lib64/librt.so.1 (0x00007f8a9cbbc000)


I realize that libgeos-3.4.2 is picked but in the docu it says that postgis needs libgeos 3.5+. So I installed libgeos-3.5.1 but this is still not used by postgis. And maybe this is not the root of the problem.

Would be great if someone could point me into the correct direction.

Thx.
Comment 1 Andreas Stieger 2017-01-21 16:11:11 UTC
Reinhard, is that something you could look at?
Comment 2 Reinhard Max 2017-01-23 10:13:36 UTC
(In reply to Andreas Stieger from comment #1)
> Reinhard, is that something you could look at?

No, I never did anything with PostGIS and it is not even being maintained in the same project as PostgreSQL.

Reassigning to Bruno Friedmann who contributed the last four upgrades. Bruno, if you can't handle it, please pass it on to the maintainers of Application:Geo.
Comment 3 Bruno Friedmann 2017-01-23 10:25:17 UTC
Hello Mat, could you send the output of 
zypper -v lr -d 

We need to check from where you get geos and postgis installed.
Both of them should come from the same repository, mostly App:Geo.

Thanks for reporting the error.
Comment 4 Mat Feuer 2017-01-23 10:50:35 UTC
Yes, of course. The zypper output at the end.

The "geos" package comes from download.opensuse.org/distribution/leap/42.2/repo/oss/ and it probably came when I installed mysql-workbench.

The "postgresql94-postgis" package comes from download.opensuse.org/repositories/Application:/Geo/openSUSE_Leap_42.2/.

So they do NOT come from the same repo as I see it.

Thx for looking at it.



zypper -v lr -d
Verbosity: 1
Repository priorities in effect:                                                        (See 'zypper lr -P' for details)
      50 (raised priority)  :  4 repositories
      99 (default priority) : 10 repositories

#  | Alias                               | Name                                    | Enabled | GPG Check | Refresh | Priority | Type   | URI                                                                                     | Service
---+-------------------------------------+-----------------------------------------+---------+-----------+---------+----------+--------+-----------------------------------------------------------------------------------------+--------
 1 | Application:Geo                     | Application:Geo                         | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/Application:/Geo/openSUSE_Leap_42.2/          |        
 2 | GNOME_apps                          | GNOME_apps                              | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/GNOME:/Apps/openSUSE_Leap_42.2                |        
 3 | Home:Behrisch                       | Home:Behrisch                           | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/home:/behrisch/openSUSE_Leap_42.2/            |        
 4 | X11:Utilities                       | X11:Utilities                           | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/X11:/Utilities/openSUSE_Leap_42.2/            |        
 5 | devel_perl                          | devel_perl                              | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_Leap_42.2     |        
 6 | download.opensuse.org-non-oss       | Main Repository (NON-OSS)               | Yes     | (r ) Yes  | Yes     |   50     | yast2  | http://download.opensuse.org/distribution/leap/42.2/repo/non-oss/                       |        
 7 | download.opensuse.org-non-oss_1     | Update Repository (Non-Oss)             | Yes     | (r ) Yes  | Yes     |   50     | rpm-md | http://download.opensuse.org/update/leap/42.2/non-oss/                                  |        
 8 | download.opensuse.org-oss           | Main Repository (OSS)                   | Yes     | (r ) Yes  | Yes     |   50     | yast2  | http://download.opensuse.org/distribution/leap/42.2/repo/oss/                           |        
 9 | download.opensuse.org-oss_1         | Main Update Repository                  | Yes     | (r ) Yes  | Yes     |   50     | rpm-md | http://download.opensuse.org/update/leap/42.2/oss                                       |        
10 | http-download.opensuse.org-2475ad17 | Publishing                              | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/Publishing/openSUSE_Leap_42.2/                |        
11 | http-download.opensuse.org-3160d77e | Documentation:Tools                     | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/Documentation:/Tools/openSUSE_Leap_42.2/      |        
12 | http-download.opensuse.org-863fc933 | devel:languages:python3                 | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/devel:/languages:/python3/openSUSE_Leap_42.2/ |        
13 | packman                             | packman                                 | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://ftp.gwdg.de/pub/linux/packman/suse/openSUSE_Leap_42.2/                           |        
14 | picoscope                           | picoscope                               | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://labs.picotech.com/rpm                                                            |        
15 | repo-debug                          | openSUSE-Leap-42.2-Debug                | No      | ----      | ----    |   99     | NONE   | http://download.opensuse.org/debug/distribution/leap/42.2/repo/oss/                     |        
16 | repo-debug-non-oss                  | openSUSE-Leap-42.2-Debug-Non-Oss        | No      | ----      | ----    |   99     | NONE   | http://download.opensuse.org/debug/distribution/leap/42.2/repo/non-oss/                 |              
17 | repo-debug-update                   | openSUSE-Leap-42.2-Update-Debug         | No      | ----      | ----    |   99     | NONE   | http://download.opensuse.org/debug/update/leap/42.2/oss/                                |              
18 | repo-debug-update-non-oss           | openSUSE-Leap-42.2-Update-Debug-Non-Oss | No      | ----      | ----    |   99     | NONE   | http://download.opensuse.org/debug/update/leap/42.2/non-oss/                            |              
19 | repo-source                         | openSUSE-Leap-42.2-Source               | No      | ----      | ----    |   99     | NONE   | http://download.opensuse.org/source/distribution/leap/42.2/repo/oss/                    |              
20 | repo-source-non-oss                 | openSUSE-Leap-42.2-Source-Non-Oss       | No      | ----      | ----    |   99     | NONE   | http://download.opensuse.org/source/distribution/leap/42.2/repo/non-oss/
Comment 5 Bruno Friedmann 2017-01-23 13:10:32 UTC
Hi Mat, 

From what I'm seeing at build time, postgis use geos present in Application:Geo (which is quite normal) and so geos 3.5.1 is used.

At least here from 13.1 to Tumbleweed, when postgis, gdal, geos and so are all coming from Application:Geo everything work as expected.

Can I test the fact to upgrade to Application:Geo normally a zypper -v dup --from App:geo should do the trick 
Use the -D (dry run) and please paste the output of conflicts or change.

What I'm afraid, is that we found some incompatibilities with other software.
From what I've seen from a pure oss+non-oss+application:geo 42.2 installation I didn't find software which depend on libgeos_c1 more than those from App:Geo

zypper -v rm libgeos_c1 give me
  gdal                        2.1.2-41.18
  libgdal20                   2.1.2-41.18
  libgeos_c1                  3.5.1-18.2
  liblwgeom-2_3-0             2.3.1-10.11
  libspatialite7              4.3.0a-8.18
  postgresql94-pgRouting      2.3.1-4.1
  postgresql94-postgis        2.3.1-10.11
  postgresql94-postgis-utils  2.3.1-10.11

all of them come from Application:Geo
Comment 6 Mat Feuer 2017-01-23 16:33:49 UTC
Hi Bruno,

here are the requested outputs:

> sudo zypper -v dup -D --from Application:Geo

[ ... all the Retrieving lines omitted ... ]

Loading repository data...
Reading installed packages...
Computing distribution upgrade...
Force resolution: No

The following 2 NEW packages are going to be installed:
  libgeos_c1             3.5.1-18.2
  libopenblas_pthreads0  0.2.19-1.2


The following package is going to be REMOVED:
  geos  3.4.2-6.5


The following 18 packages are going to be upgraded:
  json-glib-lang        1.2.2-1.2 -> 1.2.2-63.3                    
  libfreexl1            1.0.2-1.1 -> 1.0.2-17.2                    
  libgdal20             2.1.0-1.28 -> 2.1.2-41.19                  
  libgeotiff2           1.4.1-3.3 -> 1.4.2-11.4                    
  libgps22              3.15-1.13 -> 3.16-84.32                    
  libgypsy0             0.9-11.3 -> 0.9-36.7                       
  libhdf4               4.2.11-3.5 -> 4.2.11-38.15                 
  libjson-glib-1_0-0    1.2.2-1.2 -> 1.2.2-63.3                    
  liblwgeom-2_3-0       2.3.1-10.12 -> 2.3.1-10.13                 
  libopenjp2-7          2.1.0-11.1 -> 2.1.2-33.2                   
  libSFCGAL1            1.3.0-1.114 -> 1.3.0-1.115                 
  libspatialite7        4.2.0-3.14 -> 4.3.0a-8.18                  
  libzbar0              0.10_2013_02_28-5.1 -> 0.10_2013_02_28-11.3
  postgresql94-postgis  2.3.1-10.12 -> 2.3.1-10.13                 
  proj                  4.9.2-2.17 -> 4.9.3-27.3                   
  python3-numpy         1.9.3-2.21 -> 1.12.0-56.1                  
  python-enum34         1.0-3.1 -> 1.1.3-8.2                       
  python-numpy          1.8.0-4.17 -> 1.12.0-153.1                 


The following 10 packages are going to be downgraded:
  libwx_baseu_net-suse1   3.0.2-7.18 -> 3.0.2-1.82
  libwx_baseu-suse1       3.0.2-7.18 -> 3.0.2-1.82
  libwx_baseu_xml-suse1   3.0.2-7.18 -> 3.0.2-1.82
  libwx_gtk2u_adv-suse1   3.0.2-7.18 -> 3.0.2-1.82
  libwx_gtk2u_aui-suse1   3.0.2-7.18 -> 3.0.2-1.82
  libwx_gtk2u_core-suse1  3.0.2-7.18 -> 3.0.2-1.82
  libwx_gtk2u_gl-suse1    3.0.2-7.18 -> 3.0.2-1.82
  libwx_gtk2u_html-suse1  3.0.2-7.18 -> 3.0.2-1.82
  libwx_gtk2u_qa-suse1    3.0.2-7.18 -> 3.0.2-1.82
  libwx_gtk2u_xrc-suse1   3.0.2-7.18 -> 3.0.2-1.82


The following 25 packages are going to change vendor:
  json-glib-lang        
    1.2.2-1.2 -> 1.2.2-63.3                      openSUSE -> obs://build.opensuse.org/Application:Geo
  libfreexl1            
    1.0.2-1.1 -> 1.0.2-17.2                      openSUSE -> obs://build.opensuse.org/Application:Geo
  libgdal20             
    2.1.0-1.28 -> 2.1.2-41.19                    openSUSE -> obs://build.opensuse.org/Application:Geo
  libgeotiff2           
    1.4.1-3.3 -> 1.4.2-11.4                      openSUSE -> obs://build.opensuse.org/Application:Geo
  libgps22              
    3.15-1.13 -> 3.16-84.32                      openSUSE -> obs://build.opensuse.org/Application:Geo
  libgypsy0             
    0.9-11.3 -> 0.9-36.7                         openSUSE -> obs://build.opensuse.org/Application:Geo
  libhdf4               
    4.2.11-3.5 -> 4.2.11-38.15                   openSUSE -> obs://build.opensuse.org/Application:Geo
  libjson-glib-1_0-0    
    1.2.2-1.2 -> 1.2.2-63.3                      openSUSE -> obs://build.opensuse.org/Application:Geo
  libopenjp2-7          
    2.1.0-11.1 -> 2.1.2-33.2                     openSUSE -> obs://build.opensuse.org/Application:Geo
  libspatialite7        
    4.2.0-3.14 -> 4.3.0a-8.18                    openSUSE -> obs://build.opensuse.org/Application:Geo
  libwx_baseu_net-suse1 
    3.0.2-7.18 -> 3.0.2-1.82                     openSUSE -> obs://build.opensuse.org/Application:Geo
  libwx_baseu-suse1     
    3.0.2-7.18 -> 3.0.2-1.82                     openSUSE -> obs://build.opensuse.org/Application:Geo
  libwx_baseu_xml-suse1 
    3.0.2-7.18 -> 3.0.2-1.82                     openSUSE -> obs://build.opensuse.org/Application:Geo
  libwx_gtk2u_adv-suse1 
    3.0.2-7.18 -> 3.0.2-1.82                     openSUSE -> obs://build.opensuse.org/Application:Geo
  libwx_gtk2u_aui-suse1 
    3.0.2-7.18 -> 3.0.2-1.82                     openSUSE -> obs://build.opensuse.org/Application:Geo
  libwx_gtk2u_core-suse1
    3.0.2-7.18 -> 3.0.2-1.82                     openSUSE -> obs://build.opensuse.org/Application:Geo
  libwx_gtk2u_gl-suse1  
    3.0.2-7.18 -> 3.0.2-1.82                     openSUSE -> obs://build.opensuse.org/Application:Geo
  libwx_gtk2u_html-suse1
    3.0.2-7.18 -> 3.0.2-1.82                     openSUSE -> obs://build.opensuse.org/Application:Geo
  libwx_gtk2u_qa-suse1  
    3.0.2-7.18 -> 3.0.2-1.82                     openSUSE -> obs://build.opensuse.org/Application:Geo
  libwx_gtk2u_xrc-suse1 
    3.0.2-7.18 -> 3.0.2-1.82                     openSUSE -> obs://build.opensuse.org/Application:Geo
  libzbar0              
    0.10_2013_02_28-5.1 -> 0.10_2013_02_28-11.3  openSUSE -> obs://build.opensuse.org/Application:Geo
  proj                  
    4.9.2-2.17 -> 4.9.3-27.3                     openSUSE -> obs://build.opensuse.org/Application:Geo
  python3-numpy         
    1.9.3-2.21 -> 1.12.0-56.1                    openSUSE -> obs://build.opensuse.org/Application:Geo
  python-enum34         
    1.0-3.1 -> 1.1.3-8.2                         openSUSE -> obs://build.opensuse.org/Application:Geo
  python-numpy          
    1.8.0-4.17 -> 1.12.0-153.1                   openSUSE -> obs://build.opensuse.org/Application:Geo


18 packages to upgrade, 10 to downgrade, 2 new, 1 to remove, 25  to change vendor.

------------------
> sudo zypper -v rm libgeos_c1

Verbosity: 1                             
Non-option program arguments: 'libgeos_c1'          
Initializing Target                           
Loading repository data...                       
Reading installed packages...                       
Force resolution: Yes                       
'libgeos_c1' not found in package names. Trying capabilities. 
No provider of 'libgeos_c1' found.              
Resolving package dependencies...
Force resolution: Yes

Nothing to do.

----------------
Comment 7 Bruno Friedmann 2017-01-23 17:00:16 UTC
Thanks Mat for the report.
Okay this is typical mess of our way to handle repositories.

I was aware of a eventually trouble of geos not picked correctly from App:Geo is already installed from another repo.

So in your case, if you want to achieve having a working postgresql-postgis I would do the following.

With Yast2 sw_single you can activate the tab repositories (if you don't yet have it) then go to application:geo

For each of those below, use the tab version to pick the one from app:geo 

  libgdal20             2.1.0-1.28 -> 2.1.2-41.19                  
  libgeotiff2           1.4.1-3.3 -> 1.4.2-11.4                    
  liblwgeom-2_3-0       2.3.1-10.12 -> 2.3.1-10.13                 
  libSFCGAL1            1.3.0-1.114 -> 1.3.0-1.115                 
  libspatialite7        4.2.0-3.14 -> 4.3.0a-8.18                  
  postgresql94-postgis  2.3.1-10.12 -> 2.3.1-10.13                 
  proj                  4.9.2-2.17 -> 4.9.3-27.3                   
  libgeos_c1            3.5.1-18.2
  libopenblas_pthreads0 0.2.19-1.2

This should ask to remove geos 3.4.2
And don't touch the wx things.

After that you have to restart postgresql so all need package will be take into account, and working with postgis should work out of the box.

Sorry for our mess.
Comment 8 Mat Feuer 2017-01-23 19:46:57 UTC
Hi Bruno,

thanks, worked exactly as described.

Hopefully postgis keeps functioning even when package updates/upgrades are coming in the future. 

Thx again.
Comment 9 Bruno Friedmann 2017-01-23 20:01:00 UTC
Hi Mat glad it work now.
As you specify from which vendor each piece come, normal zypper update will not change that, and you should keep a working postgis 

(Which I use also, so if I'm doing something wrong I'm the first punished).

I still have to think globally with Martin how we can improve the situation, for released version.

It's quite hard to have a devel repository which should also serve as stable extra repository ;-)