URL: <http://savannah.gnu.org/bugs/?42778>
Summary: Frameworks with different SONAME cannot coexist Project: GNUstep Submitted by: yavor Submitted on: Tue 15 Jul 2014 08:28:37 PM EEST Category: Makefiles Severity: 3 - Normal Item Group: Bug Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any _______________________________________________________ Details: There is a fundamental issue in the way GNUstep Make creates the symlinks for the frameworks, at least with the fhs-system layout. Suppose that you have Foo.app linked with the Bar framework, which has interface version 0: $ ldd /usr/bin/Foo | grep Bar libBar.so.0 => /usr/lib/libBar.so.0 (0xb76ab000) $ ls -l /usr/lib/libBar.so.0 /usr/lib/libBar.so.0 -> GNUstep/Frameworks/Bar.framework/Versions/Current/libBar.so.0 So far so good, and then you install a new version of Bar which is not binary compatible and has interface version 1. This will replace the "Current" symlink to point to Versions/1 and subsequently will wipe the /usr/lib/libBar.so.0 symlink. Then Foo.app will fail to load because the dynamic linker cannot find the library (it is there, in Versions/0, but the symlink is gone): $ ldd /usr/bin/Foo | grep Bar libBar.so.0 => not found Normally, Foo.app should still be working by continuing to link with libBar.so.0 until it is rebuilt, at which point it should link with libBar.so.1. I am not sure if this is a problem for this layout only. _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?42778> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-gnustep mailing list Bug-gnustep@gnu.org https://lists.gnu.org/mailman/listinfo/bug-gnustep