summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc A. Paradise <marc.paradise@gmail.com>2020-04-09 09:13:21 -0400
committerMarc A. Paradise <marc.paradise@gmail.com>2020-04-09 09:26:15 -0400
commitb6ad860af04ec8f04becd7ae3d04088e304e3d84 (patch)
treef3048204fc4ee283f8981aaab43bc19a2c5c3591
parent92022175c0682723606abd563edf87b1e0200106 (diff)
downloadchef-CHEF-9639.tar.gz
Add software def for bcrypt_pbkdf-rubyCHEF-9639
Fixes an issue where the named gem does not build a compatible native extension for Windows when it's installed indirectly via `bundle isntall` of the `chef gem`. fixes: https://github.com/chef/chef/issues/9639 Signed-off-by: Marc A. Paradise <marc.paradise@gmail.com>
-rw-r--r--omnibus/config/projects/chef.rb4
-rw-r--r--omnibus/config/software/bcrypt_pbkdf-ruby.rb39
2 files changed, 43 insertions, 0 deletions
diff --git a/omnibus/config/projects/chef.rb b/omnibus/config/projects/chef.rb
index 150dccb60e..19c2744e54 100644
--- a/omnibus/config/projects/chef.rb
+++ b/omnibus/config/projects/chef.rb
@@ -47,6 +47,10 @@ instance_eval(IO.read(overrides_path), overrides_path)
dependency "preparation"
+dependency "bcrypt_pbkdf-ruby" # In order for the correct windows extension to build, this gem must be
+ # built directly, before we build the chef gem.
+ # see https://github.com/chef/chef/issues/9639 for details.
+
dependency "chef"
#
diff --git a/omnibus/config/software/bcrypt_pbkdf-ruby.rb b/omnibus/config/software/bcrypt_pbkdf-ruby.rb
new file mode 100644
index 0000000000..c6e7486042
--- /dev/null
+++ b/omnibus/config/software/bcrypt_pbkdf-ruby.rb
@@ -0,0 +1,39 @@
+#
+# Copyright:: 2020 Chef Software, Inc.
+# License:: Apache License, Version 2.0
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+name "bcrypt_pbkdf-ruby"
+default_version "master"
+relative_path "bcrypt_pbkdf"
+
+source git: "https://github.com/mfazekas/bcrypt_pbkdf-ruby.git"
+
+license "MIT"
+license_file "COPYING"
+
+dependency "ruby"
+
+build do
+ env = with_embedded_path
+
+ bundle "install", env: env
+ bundle "exec rake gem", env: env
+
+ delete "pkg/*java*"
+
+ gem "install pkg/bcrypt_pbkdf-*.gem" \
+ " --no-document", env: env
+end