Compare commits

..

7 Commits

Author SHA1 Message Date
2a9707ec89 chore(release): 0.6.14 2021-08-05 01:20:13 +01:00
1fc7faac1f fix(build): silly typo 2021-08-05 01:19:39 +01:00
786d253df6 chore(plan): do not modify archive behavior based on plan disk image
This allows archive creation (or not) to still be controlled via the
--[no-]archive flag.
2021-08-05 00:21:17 +01:00
228ae0939c chore(release): 0.6.13 2021-08-04 23:59:58 +01:00
ac943c430c fix(native_comp): add option to enable/disable relinking *.eln files
Relinking the /usr/local/lib/gcc/10/libgcc_s.1.dylib shared library
within bundled *.eln files is still causing issues with code signing, so
I'm adding an option to toggle *.eln file re-linking on/off, with it on
by default.
2021-08-04 23:58:27 +01:00
bc3923c9ca chore(release): 0.6.12 2021-08-03 00:19:21 +01:00
e6b1e5a554 fix(sign): resolve signing issue caused by re-linking shared lib in *.eln files
When shared libs are stored in `Contents/Frameworks`, the re-link path
for `/usr/local/lib/gcc/11/libgcc_s.1.dylib` within bundled *.eln files
becomes `@executable_path/../Frameworks/libgcc_s.1.dylib`, which seems to
not leave enough space in the *.eln binary header to add a code
signature with codesign.

This used to work when shared libraries were bundled into
`Contents/MacOS/lib`, leading to a shorter relink path of
`@executable_path/lib/libgcc_s.1.dylib`, which does leave enough space
to add a code signature to *.eln files.
2021-08-03 00:13:10 +01:00
2 changed files with 43 additions and 9 deletions

View File

@@ -2,6 +2,27 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
### [0.6.14](https://github.com/jimeh/build-emacs-for-macos/compare/v0.6.13...v0.6.14) (2021-08-05)
### Bug Fixes
* **build:** silly typo ([1fc7faa](https://github.com/jimeh/build-emacs-for-macos/commit/1fc7faac1f040466fa4474a873d2290273780ee2))
### [0.6.13](https://github.com/jimeh/build-emacs-for-macos/compare/v0.6.12...v0.6.13) (2021-08-04)
### Bug Fixes
* **native_comp:** add option to enable/disable relinking *.eln files ([ac943c4](https://github.com/jimeh/build-emacs-for-macos/commit/ac943c430c58e0761ac44e8d25d4d55a461d01a2))
### [0.6.12](https://github.com/jimeh/build-emacs-for-macos/compare/v0.6.11...v0.6.12) (2021-08-02)
### Bug Fixes
* **sign:** resolve signing issue caused by re-linking shared lib in *.eln files ([e6b1e5a](https://github.com/jimeh/build-emacs-for-macos/commit/e6b1e5a554fd0f776bd01c17cfb1ebbbdf7a7831))
### [0.6.11](https://github.com/jimeh/build-emacs-for-macos/compare/v0.6.10...v0.6.11) (2021-07-17)

View File

@@ -107,7 +107,7 @@ class Build
handle_native_lisp(app)
add_cli_helper(app)
LibEmbedder.new(app, brew_dir, extra_libs).embed
LibEmbedder.new(app, brew_dir, extra_libs, options[:relink_eln]).embed
GccLibEmbedder.new(app, gcc_info).embed if options[:native_comp]
archive_build(build_dir) if options[:archive]
@@ -133,10 +133,6 @@ class Build
@archive_filename = plan.dig('output', 'archive')
end
if plan.dig('output', 'disk_image') || !plan.dig('output', 'archive')
options[:archive] = false
end
@build_name = plan.dig('build', 'name') if plan.dig('build', 'name')
end
@@ -157,11 +153,22 @@ class Build
end
def extra_libs
@extra_libs ||= [
return @extra_libs if @extra_libs
libs = [
File.join(brew_dir, 'opt/expat/lib/libexpat.1.dylib'),
File.join(brew_dir, 'opt/libiconv/lib/libiconv.2.dylib'),
File.join(brew_dir, 'opt/zlib/lib/libz.1.dylib')
]
if options[:native_comp]
libgcc_s = File.join(
brew_dir, 'lib', 'gcc', gcc_info.major_version, 'libgcc_s.1.dylib'
)
libs << libgcc_s if File.exist?(libgcc_s)
end
@extra_libs = libs
end
def download_tarball(sha)
@@ -747,7 +754,7 @@ class AbstractEmbedder
end
def lib_dir
File.join(app, 'Contents', 'Frameworks')
File.join(invocation_dir, 'lib')
end
end
@@ -755,7 +762,7 @@ class LibEmbedder < AbstractEmbedder
attr_reader :lib_source
attr_reader :extra_libs
def initialize(app, lib_source, extra_libs = [])
def initialize(app, lib_source, extra_libs = [], embed_eln_files = true)
super(app)
@lib_source = lib_source
@@ -777,7 +784,7 @@ class LibEmbedder < AbstractEmbedder
rel_path = Pathname.new(lib_dir).relative_path_from(
Pathname.new(File.dirname(binary))
).to_s
eln_files.each { |f| copy_libs(f, rel_path) }
eln_files.each { |f| copy_libs(f, rel_path) } if embed_eln_files
end
end
end
@@ -1086,6 +1093,12 @@ if __FILE__ == $PROGRAM_NAME
cli_options[:native_full_aot] = v
end
opts.on('--[no-]relink-eln-files',
'Enable/disable re-linking shared libraries in bundled *.eln ' \
'files (default: enabled)') do |v|
cli_options[:relink_eln] = v
end
opts.on('--[no-]rsvg',
'Enable/disable SVG image support via librsvg ' \
'(default: enabled)') do |v|