Opened 12 years ago

Closed 7 years ago

#36109 closed defect (worksforme)

libxml2 2.8.0 breaks postgis2 2.0.1

Reported by: cmutel (Chris Mutel) Owned by: Veence (Vincent)
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: Cc: 0xced (Cédric Luthi), cooljeanius (Eric Gallager)
Port: libxml2 postgis2

Description

Installing libxml2 2.8.0 leads to this behaviour:

cocoa=# select postgis_full_version();
ERROR:  could not load library "/opt/local/lib/postgresql91/postgis-2.0.so": dlopen(/opt/local/lib/postgresql91/postgis-2.0.so, 10): Library not loaded: /opt/local/lib/libxml2.2.dylib
  Referenced from: /opt/local/lib/postgresql91/postgis-2.0.so
  Reason: Incompatible library version: postgis-2.0.so requires version 11.0.0 or later, but libxml2.2.dylib provides version 10.0.0

Reverting to 2.7.8 (and forcing a rebuild of postgis2) solves the problem.

I am not wise enough to understand what is breaking here (it could be on either end).

BTW, the most recent version of libxml2 is already 2.9.0.

Change History (13)

comment:1 Changed 12 years ago by jmroot (Joshua Root)

Cc: vince@… cedric.luthi@… added; jmr@… removed
Keywords: libxml2 postgis2 removed
Port: postgis2 added

2.8.0 provides version 11.0.0 here:

% otool -L /opt/local/lib/libxml2.2.dylib
/opt/local/lib/libxml2.2.dylib:
	/opt/local/lib/libxml2.2.dylib (compatibility version 11.0.0, current version 11.0.0)

comment:2 Changed 12 years ago by cmutel (Chris Mutel)

OK, so I get the same results:

emerson:~ cmutel$ otool -L /opt/local/lib/libxml2.2.dylib
/opt/local/lib/libxml2.2.dylib:
        /opt/local/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.8.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11)
        /opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
        /opt/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.0.0)
emerson:~ cmutel$ sudo port -n -f deactivate libxml2 @2.7.8_0+universal 
--->  Deactivating libxml2 @2.7.8_0+universal
Warning: Deactivate forced.  Proceeding despite dependencies.
--->  Cleaning libxml2
emerson:~ cmutel$ sudo port activate libxml2 @2.8.0_0+universal
--->  Computing dependencies for libxml2
--->  Activating libxml2 @2.8.0_0+universal
--->  Cleaning libxml2
emerson:~ cmutel$ otool -L /opt/local/lib/libxml2.2.dylib
/opt/local/lib/libxml2.2.dylib:
        /opt/local/lib/libxml2.2.dylib (compatibility version 11.0.0, current version 11.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11)
        /opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.7)
        /opt/local/lib/liblzma.5.dylib (compatibility version 6.0.0, current version 6.4.0)
        /opt/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.1.0)

I guess the problem is then with postgis2 (though it does seem strange...). But I do get this problem consistently, so I guess there is something real here, and not just a problem with my configuration.

comment:3 Changed 12 years ago by jmroot (Joshua Root)

Do the architectures match?

port -v installed libxml2 postgis2
lipo -info /opt/local/lib/libxml2.2.dylib /opt/local/lib/postgresql91/postgis-2.0.so

Are any DYLD_* variables set in the environment?

comment:4 Changed 12 years ago by cmutel (Chris Mutel)

If no one else is experiencing this bug, it should probably be closed. I guess there is some other confounding configuration parameter on my side.

comment:5 Changed 12 years ago by anddam (Andrea D'Amore)

Resolution: fixed
Status: newclosed

In a similar situation with updated packages (libxml2 2.9 with declared compatibility 12.0.0, dyld complains about postgis-2.0.so requiring 11.0.0) rebuilding postgis2 port fixed the issue.

I'm not sure what's keeping a reference to the older libxml2 version, there's no DYLD_LIBRARY_PATH set and all the other versions of libxml2.2.dylib I can find on the system are declaring compatibility 10.0.0 so dyld wasn't trying to link any of them since the error message explicitly mentions 11.0.0.

Weird and I wouldn't even know how to reproduce it on purpose. I'd close as wontfix or worksforme.

comment:6 Changed 12 years ago by anddam (Andrea D'Amore)

Resolution: fixed
Status: closedreopened

comment:7 Changed 12 years ago by cooljeanius (Eric Gallager)

I'd close as wontfix or worksforme.

...so then why'd you reopen it?

Version 0, edited 12 years ago by cooljeanius (Eric Gallager) (next)

comment:8 Changed 12 years ago by chuanjiabao1981@…

I use libxml2 2.9.0 and I have the same problem. I got the error below: "Reason: Incompatible library version: postgis-2.0.so requires version 12.0.0 or later, but libxml2.2.dylib provides version 11.0.0".

comment:9 Changed 10 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:10 Changed 10 years ago by tim.holahan@…

I spent several hours wrestling with this today (postgis 2.1 and libxml 2.9.2). I'm not sure why, but forcing the uninstall of both libxml2 and libxslt finally resolved it. I got the idea from this page on nokogiri issues with libxml2:

https://github.com/sparklemotion/nokogiri/wiki/What-to-do-if-libxml2-is-being-a-jerk

The follow two commands did the job:

sudo port -f uninstall libxml2 libxslt
sudo port install libxml2 libxslt

I hope that helps.

Last edited 8 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:11 Changed 7 years ago by mf2k (Frank Schima)

Is this still an issue with postgis2 2.4.2 and libxml2 2.9.7?

comment:12 Changed 7 years ago by mf2k (Frank Schima)

Cc: Veence removed
Owner: changed from macports-tickets@… to Veence
Status: reopenedassigned

comment:13 Changed 7 years ago by Veence (Vincent)

Resolution: worksforme
Status: assignedclosed

I suppose no. Closing this.

Note: See TracTickets for help on using tickets.