Skip to content

Commit

Permalink
[GR-18163] Prefer OpenSSL 3.0, then OpenSSL 3.x, then OpenSSL 1.1
Browse files Browse the repository at this point in the history
PullRequest: truffleruby/4395
  • Loading branch information
eregon committed Nov 10, 2024
2 parents 37eef45 + 9ddc5e8 commit 8543705
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions lib/truffle/truffle/openssl-prefix.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,16 @@
# GNU General Public License version 2, or
# GNU Lesser General Public License version 2.1.

# Set OPENSSL_PREFIX in ENV to find the OpenSSL headers
# From https://openssl-library.org/policies/releasestrat/index.html
# 3.0 is LTS, 3.1+ is non-LTS and 1.1 is EOL

# See the existing formula at https://github.com/Homebrew/homebrew-core/tree/master/Formula/o
search_homebrew = -> homebrew {
if prefix = "#{homebrew}/opt/openssl@1.1" and Dir.exist?(prefix)
if prefix = "#{homebrew}/opt/openssl@3.0" and Dir.exist?(prefix)
prefix
elsif prefix = "#{homebrew}/opt/openssl@3" and Dir.exist?(prefix)
prefix
elsif prefix = "#{homebrew}/opt/openssl@1.1" and Dir.exist?(prefix)
prefix
elsif prefix = "#{homebrew}/opt/openssl" and Dir.exist?(prefix)
prefix
Expand All @@ -26,17 +32,20 @@
homebrew = `brew --prefix 2>/dev/null`.strip
homebrew = nil unless $?.success? and !homebrew.empty? and Dir.exist?(homebrew)

# See https://ports.macports.org/search/?q=openssl&name=on for the list of MacPorts openssl ports
if homebrew and prefix = search_homebrew.call(homebrew)
# found
elsif Dir.exist?('/opt/local/libexec/openssl11') # MacPorts, prefer OpenSSL 1.1 as known to be compatible
elsif Dir.exist?('/opt/local/libexec/openssl3')
prefix = '/opt/local/libexec/openssl3'
elsif Dir.exist?('/opt/local/libexec/openssl11')
prefix = '/opt/local/libexec/openssl11'
# MacPorts, try the generic version, too, but might not be compatible
elsif Dir.exist?('/opt/local/include/openssl')
elsif Dir.exist?('/opt/local/include/openssl') # symlinks, unknown version
prefix = '/opt/local'
end
end

if prefix
# Set OPENSSL_PREFIX in ENV to find the OpenSSL headers
ENV['OPENSSL_PREFIX'] = prefix
else
abort 'Could not find OpenSSL headers, install via Homebrew or MacPorts or set OPENSSL_PREFIX'
Expand Down

0 comments on commit 8543705

Please sign in to comment.