Add helper script to fix macOS libEvent packaging
This commit is contained in:
parent
c346526e1b
commit
969c2f9788
35
fix_macOS_libevent_rpath.sh
Executable file
35
fix_macOS_libevent_rpath.sh
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# libEvent uses absolute paths inside the dylibs on macOS. It's been politely
|
||||||
|
# suggested they switch to a more standard relative rpath scheme, but so far
|
||||||
|
# the maintainers are not keen, and instead recommend a post-build
|
||||||
|
# fix-up step using installnametool, so that's what this script does.
|
||||||
|
#
|
||||||
|
# see: https://github.com/libevent/libevent/issues/920
|
||||||
|
|
||||||
|
echo "Editing libEvent rpaths in: $1"
|
||||||
|
|
||||||
|
pushd $1
|
||||||
|
names="event|event_core|event_extra"
|
||||||
|
|
||||||
|
find -E . -type f -depth 1 \
|
||||||
|
-regex "\\./lib($names)"'-([0-9]+\.[0-9]+\.[0-9]+)\.dylib$' | \
|
||||||
|
while read filename; do
|
||||||
|
filename="${filename#./}" # get rid of the './'
|
||||||
|
|
||||||
|
# extract the version part using sed, yuck
|
||||||
|
version=$(printf "%s" "$filename" | sed -Ee 's@.*-([0-9]+\.[0-9]+\.[0-9]+)\.dylib$@\1@')
|
||||||
|
|
||||||
|
echo "Found: '$filename'. Version is: $version"
|
||||||
|
|
||||||
|
install_name_tool -id "@rpath/${filename}" ${filename}
|
||||||
|
|
||||||
|
# change primary and 'core' library references
|
||||||
|
# if a reference is not found, it's not touched, so we can apply these each time
|
||||||
|
install_name_tool -change "$PWD/libevent_core-$version.dylib" "@rpath/libevent_core-$version.dylib" ${filename}
|
||||||
|
install_name_tool -change "$PWD/libevent-$version.dylib" "@rpath/libevent-$version.dylib" ${filename}
|
||||||
|
done
|
||||||
|
|
||||||
|
popd
|
||||||
|
|
||||||
|
echo "Done fixing install names for libEvent"
|
Loading…
Reference in New Issue
Block a user