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$
Last edited 8 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

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.