The current libarrow.dylib uses @rpath/libarrow.0.dylib for install_name. It works well when we can set DYLD_LIBRARY_PATH environment variable or libarrow.dylib is installed into the standard path such as /usr/local/lib/.
There are some cases that we can't set DYLD_LIBRARY_PATH. For example, we can't set DYLD_LIBRARY_PATH when we use libarrow.0.dylib via a shell script. Because the recent macOS doesn't inherit DYLD_LIBRARY_PATH for security reason. It's caused as System Integration Protection (SIP). We need to use libarrow.0.dylib via a shell script when we build Arrow GLib's *.gir files. It means that we need to install Arrow C++ into the standard path for building Arrow GLib on macOS. If we install Arrow C++ into the non-standard path such as ~/local/, we can't build Arrow GLib.
If we use full path for libarrow.dylib's install_name, we don't need to set DYLD_LIBRARY_PATH. It means that we can build Arrow GLib with Arrow C++ installed into the non-standard path such as ~/local/.
Note: This issue was originally created as ARROW-1537. Please see the migration documentation for further details.
Original Issue Description:
The current libarrow.dylib uses @rpath/libarrow.0.dylib for install_name. It works well when we can set DYLD_LIBRARY_PATH environment variable or libarrow.dylib is installed into the standard path such as /usr/local/lib/.
There are some cases that we can't set DYLD_LIBRARY_PATH. For example, we can't set DYLD_LIBRARY_PATH when we use libarrow.0.dylib via a shell script. Because the recent macOS doesn't inherit DYLD_LIBRARY_PATH for security reason. It's caused as System Integration Protection (SIP). We need to use libarrow.0.dylib via a shell script when we build Arrow GLib's *.gir files. It means that we need to install Arrow C++ into the standard path for building Arrow GLib on macOS. If we install Arrow C++ into the non-standard path such as ~/local/, we can't build Arrow GLib.
If we use full path for libarrow.dylib's install_name, we don't need to set DYLD_LIBRARY_PATH. It means that we can build Arrow GLib with Arrow C++ installed into the non-standard path such as ~/local/.