firefox: Don't rely on file extension to identify dynamic libraries (#488112)
This commit is contained in:
@@ -423,10 +423,21 @@ let
|
||||
# Maybe related to how omni.ja file is mmapped into memory. See:
|
||||
# https://github.com/mozilla/gecko-dev/blob/b1662b447f306e6554647914090d4b73ac8e1664/modules/libjar/nsZipArchive.cpp#L204
|
||||
#
|
||||
# The *.dylib files are copied, otherwise some basic functionality, e.g. Crypto API, is broken.
|
||||
for file in $(find . -name "omni.ja" -o -name "*.dylib"); do
|
||||
# Mach-O shared libraries must be copied, not symlinked, otherwise some
|
||||
# functionality like the Crypto API and audio decoding is broken.
|
||||
find . -type l -print0 |
|
||||
while IFS= read -r -d "" file; do
|
||||
case "$(basename "$file")" in
|
||||
omni.ja)
|
||||
;;
|
||||
*)
|
||||
# Copy if the symlink resolves to a Mach-O dylib
|
||||
otool -l "$file" 2>/dev/null | grep -q 'LC_ID_DYLIB' || continue
|
||||
;;
|
||||
esac
|
||||
|
||||
rm "$file"
|
||||
cp "${browser}/${appPath}/$file" "$file"
|
||||
cp "${browser}/${appPath}/''${file#./}" "$file"
|
||||
done
|
||||
|
||||
# Copy any embedded .app directories; plugin-container fails to start otherwise.
|
||||
|
||||
Reference in New Issue
Block a user