[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pkgsrc-users
Subject:    Fix for devel/talloc shared library install_name on Darwin
From:       "J. Lewis Muir" <jlmuir () imca-cat ! org>
Date:       2014-08-29 20:50:47
Message-ID: 5400E7A7.7040008 () imca-cat ! org
[Download RAW message or body]

Hello.

The package devel/talloc from -current on Mac OS X Mavericks (10.9.4)
(Darwin 13.3.0), installs shared libraries with an incorrect
install_name as well as incorrect dependency paths that reference
build-time paths rather than final install paths.  Attached is a patch
to fix this for the talloc library.  (I did not try to fix the others.)
Would a developer be willing to commit this patch?

I reported the problem upstream at

  https://bugzilla.samba.org/show_bug.cgi?id=10791

Here's an example of the incorrect install_name:

===
$ otool -L /pkg-current/lib/libtalloc.dylib
/pkg-current/lib/libtalloc.dylib:
    /pkgsrc-current/devel/talloc/work/talloc-2.1.1/bin/default/\
libtalloc.inst.dylib (compatibility version 0.0.0, current version \
0.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current \
version 1197.1.1)
===

And here's the correct install_name with the patch:

===
$ otool -L /pkg-current/lib/libtalloc.dylib
/pkg-current/lib/libtalloc.dylib:
    /pkg-current/lib/libtalloc.2.1.1.dylib (compatibility version \
0.0.0, current version 0.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current \
version 1197.1.1)
===

Thanks!

Lewis

["devel_talloc.diff" (text/plain)]

Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/devel/talloc/Makefile,v
retrieving revision 1.6
diff -b -u -r1.6 Makefile
--- Makefile	27 Jun 2014 23:02:04 -0000	1.6
+++ Makefile	29 Aug 2014 20:34:14 -0000
@@ -101,6 +101,20 @@
 REPLACE_PYTHON+=	lib/replace/wscript
 REPLACE_PYTHON+=	wscript
 
+.include "../../mk/bsd.prefs.mk"
+
+# Fix incorrect install_name of talloc library on Darwin.  Don't bother
+# fixing similar problem in pytalloc-util nor the Python talloc.so
+# since those reference other build-time paths in addition to having an
+# incorrect install_name; they will remain broken.
+# Upstream bug report: https://bugzilla.samba.org/show_bug.cgi?id=10791
+post-install:
+.if ${OPSYS} == "Darwin"
+	install_name_tool -id \
+	    ${PREFIX}/lib/libtalloc.${PKGVERSION_NOREV}.dylib \
+	    ${DESTDIR}${PREFIX}/lib/libtalloc.${PKGVERSION_NOREV}.dylib
+.endif
+
 .include "../../lang/python/application.mk"
 .include "../../lang/python/extension.mk"
 .include "../../mk/bsd.pkg.mk"


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic