I had a problem installing frameworks with GNUSTEP_SYSTEM_LIBRARIES set to /usr/lib64 and the frameworks in /usr/lib/GNUstep/Frameworks. 'make install' generates an incorrect symlink in /usr/lib64. The link should point back to the shared library object in the framework, but does not.

The cause seems to be in the script /usr/share/GNUstep/Makefiles/relative_path.sh

The command:

relative_path.sh /usr/lib64 /usr/lib/GNUstep/Frameworks/PreferencePanes.framework/Versions/Current short

gives result:

../GNUstep/Frameworks/PreferencePanes.framework/Versions/Current

which is wrong.

The attached patch, to make one of the comparisons in the script a bit more precise, causes it produce the correct relative path:

../lib/GNUstep/Frameworks/PreferencePanes.framework/Versions/Current

With this patch applied, the symlinks are now generated correctly and I don't see any bad side-effects.

--
    Richard Stonehouse
diff -Naur gnustep-make-2.6.2.orig/relative_path.sh gnustep-make-2.6.2/relative_path.sh
--- gnustep-make-2.6.2.orig/relative_path.sh	2008-01-09 17:44:12.000000000 +0000
+++ gnustep-make-2.6.2/relative_path.sh	2012-11-19 00:41:02.673726883 +0000
@@ -168,7 +168,7 @@
   if [ -n "$component" ]; then
     partial_b="$partial_b/$component"
     case "$a" in
-      "$partial_b"*) partial_match="$partial_b";;
+      "$partial_b"|"$partial_b"/*) partial_match="$partial_b";;
       *) break;;
     esac
   fi
_______________________________________________
Discuss-gnustep mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep

Reply via email to