summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Smith <brian@dbsoft.org>2020-03-10 08:56:20 -0500
committerBrian Smith <brian@dbsoft.org>2020-03-13 12:17:26 -0500
commit9738485042750885fab2b4b6eb999c11f96bed31 (patch)
treec536949e83695facb68a33ee469aabc1e0f186b3
parent45176742e23dde3e08d120af70bce814ee2a215b (diff)
downloadpalemoon-9738485042750885fab2b4b6eb999c11f96bed31.tar.gz
Issue MoonchildProductions/UXP#1469 - Copy dylibs to the application bundle instead of symlinks.
-rw-r--r--palemoon/app/Makefile.in3
-rw-r--r--palemoon/app/macbuild/Contents/MacOS-files-copy.in11
-rw-r--r--palemoon/app/macbuild/Contents/MacOS-files.in1
3 files changed, 14 insertions, 1 deletions
diff --git a/palemoon/app/Makefile.in b/palemoon/app/Makefile.in
index d008010ec..34efe931e 100644
--- a/palemoon/app/Makefile.in
+++ b/palemoon/app/Makefile.in
@@ -88,6 +88,9 @@ tools repackage:: $(PROGRAM)
sed -e 's/%MAC_APP_NAME%/$(MAC_APP_NAME)/' $(srcdir)/macbuild/Contents/Resources/English.lproj/InfoPlist.strings.in | iconv -f UTF-8 -t UTF-16 > '$(dist_dest)/Contents/Resources/$(AB).lproj/InfoPlist.strings'
rsync -a --exclude-from='$(srcdir)/macbuild/Contents/MacOS-files.in' $(DIST)/bin/ '$(dist_dest)/Contents/Resources'
rsync -a --include-from='$(srcdir)/macbuild/Contents/MacOS-files.in' --exclude '*' $(DIST)/bin/ '$(dist_dest)/Contents/MacOS'
+ # MacOS-files-copy.in is a list of files that should be copies rather
+ # than symlinks and placed in .app/Contents/MacOS.
+ rsync -aL --include-from='$(srcdir)/macbuild/Contents/MacOS-files-copy.in' --exclude '*' $(DIST)/bin/ '$(dist_dest)/Contents/MacOS'
$(RM) '$(dist_dest)/Contents/MacOS/$(PROGRAM)'
rsync -aL $(PROGRAM) '$(dist_dest)/Contents/MacOS'
cp -RL $(DIST)/branding/firefox.icns '$(dist_dest)/Contents/Resources/firefox.icns'
diff --git a/palemoon/app/macbuild/Contents/MacOS-files-copy.in b/palemoon/app/macbuild/Contents/MacOS-files-copy.in
new file mode 100644
index 000000000..628fea3fa
--- /dev/null
+++ b/palemoon/app/macbuild/Contents/MacOS-files-copy.in
@@ -0,0 +1,11 @@
+# Specifies files that should be copied (via deep copy, resolving symlinks)
+# from dist/bin to the .app/Contents/MacOS directory. Linking is preferred to
+# reduce disk I/O during builds, so just include dylibs which need to be in the
+# same directory as returned by dladdr(3).
+#
+# Some of these dylibs load other dylibs which are assumed to be siblings in
+# the same directory obtained from dladdr(3). With macOS 10.15, dladdr returns
+# absolute resolved paths which breaks this assumption if symlinks are used
+# because the symlink targets are in different directories. Hence the need for
+# them to be copied to the same directory.
+/*.dylib
diff --git a/palemoon/app/macbuild/Contents/MacOS-files.in b/palemoon/app/macbuild/Contents/MacOS-files.in
index 561366def..6f5289502 100644
--- a/palemoon/app/macbuild/Contents/MacOS-files.in
+++ b/palemoon/app/macbuild/Contents/MacOS-files.in
@@ -1,5 +1,4 @@
/*.app/***
-/*.dylib
/certutil
/firefox-bin
/gtest/***