Opened 8 years ago

Closed 8 years ago

#53102 closed defect (fixed)

jasper dylib current version regressed

Reported by: jeremyhu (Jeremy Huddleston Sequoia) Owned by: jmroot (Joshua Root)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: dbevans (David B. Evans), dershow, basmac
Port: jasper

Description

After updating jasper to 2.0.6, we see the following rev-upgrade errors:

--->  Scanning binaries for linking errors               
Incompatible library version: /opt/local/bin/jpeg2ktopam requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0
Incompatible library version: /opt/local/bin/jpeg2ktopam requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0
Incompatible library version: /opt/local/bin/pamtojpeg2k requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0
Incompatible library version: /opt/local/bin/pamtojpeg2k requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0
Incompatible library version: /opt/local/lib/gimp/2.0/plug-ins/file-jp2-load requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0
Incompatible library version: /opt/local/lib/gimp/2.0/plug-ins/file-jp2-load requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0
Incompatible library version: /opt/local/bin/dcraw requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0
Incompatible library version: /opt/local/bin/dcraw requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0
Incompatible library version: /opt/local/bin/ufraw requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0
Incompatible library version: /opt/local/bin/ufraw requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0
Incompatible library version: /opt/local/bin/ufraw-batch requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0
Incompatible library version: /opt/local/bin/ufraw-batch requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0
Incompatible library version: /opt/local/lib/gimp/2.0/plug-ins/ufraw-gimp requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0
Incompatible library version: /opt/local/lib/gimp/2.0/plug-ins/ufraw-gimp requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0
Incompatible library version: /opt/local/lib/gegl-0.2/jp2-load.so requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0
Incompatible library version: /opt/local/lib/gegl-0.2/jp2-load.so requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0
Incompatible library version: /opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jasper.so requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0
Incompatible library version: /opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jasper.so requires version 5.0.0 or later, but /opt/local/lib/libjasper.4.dylib provides version 4.0.0

jasper-1.900.29 had current and compat versions of 5.0.0. jasper-2.0.6 has current and compat versions of 4.0.0.

If jasper-2.0.6 is backwards compatible, it should have a compat version of 5.0.0 and a current version newer than 5.0.0. If jasper-2.0.6 is not backwards compatible, it should have a different dylib id and all dependents should be revbumped.

Change History (10)

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

More fallout from switching to cmake, which doesn't appear to let you set compatibility_version independently of the soname/major version. So libjasper.4.dylib built by cmake will always have current and compat versions of 4.x.y.

https://cmake.org/cmake/help/v3.7/prop_tgt/SOVERSION.html

I think we might just need to rev bump the dependents. :/

comment:2 Changed 8 years ago by dbevans (David B. Evans)

Cc: dbevans added

Or revert jasper to the version version until these issues are ironed out. Quite a few ports are currently broken. The few that I currently have installed are:

GraphicsMagick
OpenSceneGraph
OpenSceneGraph-devel
dcraw
gdk-pixbuf2
gegl
gegl-0.3
gegl-devel
gimp2
gimp2-devel
gimp3-devel
gstreamer010-gst-plugins-bad
kdelibs4
kopete
libraw
netpbm
opencv
ufraw

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

In 9d7ddf34/macports-ports:

jasper dependents: rev bump

Upstream's switch to cmake led to an apparently inadvertent change in
library versioning.

See: #53102

comment:4 Changed 8 years ago by dershow

Cc: dershow added

comment:5 in reply to:  1 ; Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to jmroot:

More fallout from switching to cmake, which doesn't appear to let you set compatibility_version independently of the soname/major version. So libjasper.4.dylib built by cmake will always have current and compat versions of 4.x.y.

Remind me why does anybody use this idiotic broken build system?

comment:6 in reply to:  5 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Replying to ryandesign:

Remind me why does anybody use this idiotic broken build system?

Because it has a more permissive license than the other idiotic broken build system that everyone else uses.

comment:7 Changed 8 years ago by basmac

Cc: basmac added

comment:8 Changed 8 years ago by basmac

I see the problem with ncl build with the new lib jasper and then copying back the pre-current lib jasper

Current libjasper

sh-3.2$ ncl /Users/bmcinnes/test/bar.ncl dyld: Library not loaded: /opt/local/lib/libjasper.4.dylib

Referenced from: /usr/local/ncl/bin/ncl Reason: Incompatible library version: ncl requires version 5.0.0 or later, but libjasper.4.dylib provides version 4.0.0

/usr/local/bin/ncl: line 6: 39341 Abort trap: 6 $NCARG_ROOT/bin/ncl "$@" sh-3.2$ locate libjasper.4.dylib /Volumes/Cluster/opt/local/lib/libjasper.4.dylib /opt/local/lib/libjasper.4.dylib sh-3.2$ ls -l /opt/local/lib/libjasper.4.dylib lrwxr-xr-x 1 root admin 21 Dec 19 17:48 /opt/local/lib/libjasper.4.dylib -> libjasper.4.0.0.dylib

Copying back previous libjasper

sh-3.2$ ncl /Users/bmcinnes/test/bar.ncl

Copyright (C) 1995-2015 - All Rights Reserved University Corporation for Atmospheric Research NCAR Command Language Version 6.3.0 The use of this software is governed by a License Agreement. See http://www.ncl.ucar.edu/ for more details.

Variable: nc_file_type Type: string Total Size: 8 bytes

1 values

Number of Dimensions: 1 Dimensions and sizes: [1] Coordinates: (0) netcdf3

Variable: nc_file_type Type: string Total Size: 8 bytes

1 values

Number of Dimensions: 1 Dimensions and sizes: [1] Coordinates: (0) netcdf4

Variable: nc_file_type Type: string Total Size: 8 bytes

1 values

Number of Dimensions: 1 Dimensions and sizes: [1] Coordinates: (0) netcdf3 sh-3.2$

Version 0, edited 8 years ago by basmac (next)

comment:9 Changed 8 years ago by jmroot (Joshua Root)

In e5594bd1/macports-ports:

jasper dependents: rev bump

Upstream's switch to cmake led to an apparently inadvertent change in
library versioning.

See: #53102

comment:10 Changed 8 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.