Skip to content

Instantly share code, notes, and snippets.

@takaxp
Created May 16, 2020 03:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save takaxp/c647f558172e3ba4ed061f160b0ab09a to your computer and use it in GitHub Desktop.
Save takaxp/c647f558172e3ba4ed061f160b0ab09a to your computer and use it in GitHub Desktop.
Integrate GnuTLS into Emacs.app
#!/bin/sh
echo "Integrate GnuTLS and it's dependencies into Emacs.app"
cd ~/devel/emacs-head/emacs/nextstep/Emacs.app/Contents/MacOS
if [ -d "lib" ]; then
rm -rf lib
fi
mkdir lib
cp /usr/local/opt/gnutls/lib/libgnutls.30.dylib lib
cp /usr/local/opt/p11-kit/lib/libp11-kit.0.dylib lib
cp /usr/local/opt/libidn2/lib/libidn2.0.dylib lib
cp /usr/local/opt/libunistring/lib/libunistring.2.dylib lib
cp /usr/local/opt/libtasn1/lib/libtasn1.6.dylib lib
cp /usr/local/opt/nettle/lib/libnettle.6.dylib lib
cp /usr/local/opt/nettle/lib/libhogweed.4.dylib lib
cp /usr/local/opt/gmp/lib/libgmp.10.dylib lib
cp /usr/local/opt/gettext/lib/libintl.8.dylib lib
cp /usr/local/opt/libffi/lib/libffi.7.dylib lib
chmod 644 ./lib/*.dylib
install_name_tool -id "homebrew:gnutls/lib/libgnutls.30.dylib" lib/libgnutls.30.dylib
install_name_tool -id "homebrew:p11-kit/lib/libp11-kit.0.dylib" lib/libp11-kit.0.dylib
install_name_tool -id "homebrew:libidn2/lib/libidn2.0.dylib" lib/libidn2.0.dylib
install_name_tool -id "homebrew:libunistring/lib/libunistring.2.dylib" lib/libunistring.2.dylib
install_name_tool -id "homebrew:libtasn1/lib/libtasn1.6.dylib" lib/libtasn1.6.dylib
install_name_tool -id "homebrew:nettle/lib/libnettle.6.dylib" lib/libnettle.6.dylib
install_name_tool -id "homebrew:nettle/lib/libhogweed.4.dylib" lib/libhogweed.4.dylib
install_name_tool -id "homebrew:gmp/lib/libgmp.10.dylib" lib/libgmp.10.dylib
install_name_tool -id "homebrew:gettext/lib/libintl.8.dylib" lib/libintl.8.dylib
install_name_tool -id "homebrew:libffi/lib/libffi.7.dylib" lib/libffi.7.dylib
install_name_tool -change /usr/local/opt/gnutls/lib/libgnutls.30.dylib @executable_path/lib/libgnutls.30.dylib Emacs
install_name_tool -change /usr/local/opt/p11-kit/lib/libp11-kit.0.dylib @executable_path/lib/libp11-kit.0.dylib lib/libgnutls.30.dylib
install_name_tool -change /usr/local/opt/libidn2/lib/libidn2.0.dylib @executable_path/lib/libidn2.0.dylib lib/libgnutls.30.dylib
install_name_tool -change /usr/local/opt/libunistring/lib/libunistring.2.dylib @executable_path/lib/libunistring.2.dylib lib/libgnutls.30.dylib
install_name_tool -change /usr/local/opt/libtasn1/lib/libtasn1.6.dylib @executable_path/lib/libtasn1.6.dylib lib/libgnutls.30.dylib
install_name_tool -change /usr/local/opt/nettle/lib/libnettle.6.dylib @executable_path/lib/libnettle.6.dylib lib/libgnutls.30.dylib
install_name_tool -change /usr/local/opt/nettle/lib/libhogweed.4.dylib @executable_path/lib/libhogweed.4.dylib lib/libgnutls.30.dylib
install_name_tool -change /usr/local/opt/gmp/lib/libgmp.10.dylib @executable_path/lib/libgmp.10.dylib lib/libgnutls.30.dylib
install_name_tool -change /usr/local/opt/gettext/lib/libintl.8.dylib @executable_path/lib/libintl.8.dylib lib/libgnutls.30.dylib
install_name_tool -change /usr/local/opt/libffi/lib/libffi.7.dylib @executable_path/lib/libffi.7.dylib lib/libp11-kit.0.dylib
install_name_tool -change /usr/local/opt/gettext/lib/libintl.8.dylib @executable_path/lib/libintl.8.dylib lib/libidn2.0.dylib
install_name_tool -change /usr/local/opt/libunistring/lib/libunistring.2.dylib @executable_path/lib/libunistring.2.dylib lib/libidn2.0.dylib
install_name_tool -change /usr/local/opt/gmp/lib/libgmp.10.dylib @executable_path/lib/libgmp.10.dylib lib/libhogweed.4.dylib
install_name_tool -change /usr/local/Cellar/nettle/3.4.1/lib/libnettle.6.dylib @executable_path/lib/libnettle.6.dylib lib/libhogweed.4.dylib
chmod 444 ./lib/*.dylib
# Verifying
otool -L Emacs | grep /usr/local
otool -L lib/libgnutls.30.dylib | grep /usr/local
otool -L lib/libp11-kit.0.dylib | grep /usr/local
otool -L lib/libidn2.0.dylib | grep /usr/local
otool -L lib/libunistring.2.dylib | grep /usr/local
otool -L lib/libtasn1.6.dylib | grep /usr/local
otool -L lib/libnettle.6.dylib | grep /usr/local
otool -L lib/libhogweed.4.dylib | grep /usr/local
otool -L lib/libgmp.10.dylib | grep /usr/local
otool -L lib/libintl.8.dylib | grep /usr/local
otool -L lib/libffi.7.dylib | grep /usr/local
echo "GnuTLS is integrated to Emacs.app"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment