rbsecp256k1 3.0.1 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,27 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'mini_portile2'
2
4
  require 'mkmf'
3
5
  require 'zip'
4
6
 
5
- # Indicates the platform on which the package is being installed
6
- INSTALLING_OS =
7
- if RUBY_PLATFORM =~ /darwin/
8
- :macos
9
- elsif RUBY_PLATFORM =~ /linux/
10
- :linux
11
- else
12
- :unknown
13
- end
14
-
15
- # Fixed path to Homebrew OpenSSL pkgconfig file
16
- HOMEBREW_OPENSSL_PKGCONFIG = '/usr/local/opt/openssl/lib/pkgconfig'.freeze
17
-
18
7
  # Recipe for downloading and building libsecp256k1 as part of installation
19
8
  class Secp256k1Recipe < MiniPortile
20
- # Hard-coded URL for libsecp256k1 zipfile (HEAD of master as of 26-11-2018)
21
- LIBSECP256K1_ZIP_URL = 'https://github.com/bitcoin-core/secp256k1/archive/e34ceb333b1c0e6f4115ecbb80c632ac1042fa49.zip'.freeze
9
+ # Hard-coded URL for libsecp256k1 zipfile (HEAD of master as of 24-11-2021)
10
+ LIBSECP256K1_ZIP_URL = 'https://github.com/bitcoin-core/secp256k1/archive/fecf436d5327717801da84beb3066f5a9b80ea8e.zip'
22
11
 
23
12
  # Expected SHA-256 of the zipfile above (computed using sha256sum)
24
- LIBSECP256K1_SHA256 = 'd87d3ca7ebc42edbabb0f38e79205040b24b09b3e6d1c9ac89585de9bf302143'.freeze
13
+ LIBSECP256K1_SHA256 = '188c6252ab9e829da02c962fe59a329f798c615577ac128ae1f0697126ebb2fc'
25
14
 
26
15
  WITH_RECOVERY = ENV.fetch('WITH_RECOVERY', '1') == '1'
27
16
  WITH_ECDH = ENV.fetch('WITH_ECDH', '1') == '1'
@@ -49,6 +38,7 @@ class Secp256k1Recipe < MiniPortile
49
38
  # Windows doesn't recognize the shebang.
50
39
  execute('autogen', %w[sh ./autogen.sh])
51
40
  else
41
+ execute('chmod', %w[chmod +x ./autogen.sh])
52
42
  execute('autogen', %w[./autogen.sh])
53
43
  end
54
44
 
@@ -82,46 +72,6 @@ class Secp256k1Recipe < MiniPortile
82
72
  end
83
73
  end
84
74
 
85
- # OpenSSL flags
86
- message("checking for OpenSSL\n")
87
- results = pkg_config('openssl')
88
-
89
- # Failed to find package OpenSSL
90
- unless results && results[1]
91
- # Check if the user happens to have OpenSSL installed via Homebrew on a path
92
- # we know about.
93
- # rubocop:disable Style/GlobalVars
94
- if INSTALLING_OS == :macos && File.exist?(HOMEBREW_OPENSSL_PKGCONFIG)
95
- begin
96
- require 'rubygems'
97
- gem 'pkg-config', (gem_ver = '~> 1.3')
98
- require 'pkg-config'
99
- rescue LoadError
100
- message(
101
- "pkg-config could not be used to find openssl\n" \
102
- "Please install either `pkg-config` or the pkg-config gem via\n" \
103
- "gem install pkg-config -v #{gem_ver.inspect}\n\n"
104
- )
105
- else
106
- message("Initial check failed. Trying homebrew openssl path...\n")
107
- message("Using pkg-config gem version #{PKGConfig::VERSION}\n")
108
- PKGConfig.add_path(HOMEBREW_OPENSSL_PKGCONFIG)
109
-
110
- cflags = PKGConfig.cflags('openssl')
111
- ldflags = PKGConfig.libs_only_L('openssl')
112
- libs = PKGConfig.libs_only_l('openssl')
113
-
114
- $CFLAGS += " " << cflags if cflags
115
- $libs += " " << libs if libs
116
- $LDFLAGS = [$LDFLAGS, ldflags].join(' ')
117
-
118
- results = [cflags, libs, ldflags]
119
- end
120
- end
121
- # rubocop:enable Style/GlobalVars
122
- end
123
- abort "missing openssl pkg-config information" unless results && results[1]
124
-
125
75
  if with_config('system-library')
126
76
  # Require that libsecp256k1 be installed using `make install` or similar.
127
77
  message("checking for libsecp256k1\n")
@@ -142,6 +92,11 @@ else
142
92
  "-Wall"
143
93
  ]
144
94
  )
95
+ append_ldflags(
96
+ [
97
+ "-Wl,--no-as-needed"
98
+ ]
99
+ )
145
100
  # rubocop:disable Style/GlobalVars
146
101
  $LIBPATH = ["#{recipe.path}/lib"] | $LIBPATH
147
102
  # rubocop:enable Style/GlobalVars