codestrap 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +2 -2
  4. data/codestrap.gemspec +11 -2
  5. data/lib/codestrap.rb +96 -0
  6. data/lib/codestrap/cli.rb +11 -1
  7. data/lib/codestrap/config.rb +18 -8
  8. data/lib/codestrap/version.rb +1 -1
  9. metadata +47 -222
  10. data/.gitignore +0 -20
  11. data/.travis.yml +0 -4
  12. data/Gemfile +0 -6
  13. data/LICENSE.txt +0 -13
  14. data/Rakefile +0 -51
  15. data/config/projects/codestrap.rb +0 -22
  16. data/config/software/codestrap.rb +0 -20
  17. data/config/software/ruby.rb +0 -247
  18. data/config/software/zlib.rb +0 -86
  19. data/features/client.feature +0 -99
  20. data/features/fixtures/client/home/codestrap/bin/.empty +0 -0
  21. data/features/fixtures/client/home/codestrap/content/bash.erb +0 -3
  22. data/features/fixtures/client/home/codestrap/content/gem/dir/file +0 -0
  23. data/features/fixtures/client/home/codestrap/content/gem/dir/template +0 -3
  24. data/features/fixtures/client/home/codestrap/content/gem/file +0 -1
  25. data/features/fixtures/client/home/codestrap/content/gem/template +0 -3
  26. data/features/fixtures/client/home/codestrap/content/local_remote.erb +0 -1
  27. data/features/fixtures/client/home/codestrap/content/local_remote/dir/file +0 -0
  28. data/features/fixtures/client/home/codestrap/content/local_remote/dir/template +0 -3
  29. data/features/fixtures/client/home/codestrap/content/local_remote/file +0 -1
  30. data/features/fixtures/client/home/codestrap/content/local_remote/template +0 -3
  31. data/features/fixtures/client/home/codestrap/objects/local.json +0 -3
  32. data/features/fixtures/client/output/.empty +0 -0
  33. data/features/fixtures/client/var/lib/codestrap/bin/.empty +0 -0
  34. data/features/fixtures/client/var/lib/codestrap/content/bashremote.erb +0 -3
  35. data/features/fixtures/client/var/lib/codestrap/content/gemremote/dir/file +0 -0
  36. data/features/fixtures/client/var/lib/codestrap/content/gemremote/dir/template +0 -3
  37. data/features/fixtures/client/var/lib/codestrap/content/gemremote/file +0 -0
  38. data/features/fixtures/client/var/lib/codestrap/content/gemremote/template +0 -3
  39. data/features/fixtures/client/var/lib/codestrap/content/remote_local.erb +0 -1
  40. data/features/fixtures/client/var/lib/codestrap/content/remote_local/dir/file +0 -0
  41. data/features/fixtures/client/var/lib/codestrap/content/remote_local/dir/template +0 -3
  42. data/features/fixtures/client/var/lib/codestrap/content/remote_local/file +0 -1
  43. data/features/fixtures/client/var/lib/codestrap/content/remote_local/template +0 -3
  44. data/features/fixtures/client/var/lib/codestrap/content/remote_remote.erb +0 -1
  45. data/features/fixtures/client/var/lib/codestrap/content/remote_remote/dir/file +0 -0
  46. data/features/fixtures/client/var/lib/codestrap/content/remote_remote/dir/template +0 -3
  47. data/features/fixtures/client/var/lib/codestrap/content/remote_remote/file +0 -0
  48. data/features/fixtures/client/var/lib/codestrap/content/remote_remote/template +0 -3
  49. data/features/fixtures/client/var/lib/codestrap/objects/remote.json +0 -3
  50. data/features/fixtures/logging/home/logging/codestrap/bin/stubdirectory/.empty +0 -0
  51. data/features/fixtures/logging/home/logging/codestrap/bin/stubnotlink +0 -0
  52. data/features/fixtures/logging/home/logging/codestrap/content/.empty +0 -0
  53. data/features/fixtures/logging/home/logging/codestrap/objects/.empty +0 -0
  54. data/features/fixtures/server/mixed/var/lib/stub/content/address.erb +0 -3
  55. data/features/fixtures/server/mixed/var/lib/stub/content/cell.erb +0 -3
  56. data/features/fixtures/server/mixed/var/lib/stub/content/email.erb +0 -3
  57. data/features/fixtures/server/mixed/var/lib/stub/content/mobile.erb +0 -3
  58. data/features/fixtures/server/mixed/var/lib/stub/content/name.erb +0 -3
  59. data/features/fixtures/server/mixed/var/lib/stub/content/phone.erb +0 -3
  60. data/features/fixtures/server/mixed/var/lib/stub/content/puppetmodule/Modulefile +0 -12
  61. data/features/fixtures/server/mixed/var/lib/stub/content/puppetmodule/README +0 -17
  62. data/features/fixtures/server/mixed/var/lib/stub/content/puppetmodule/manifests/init.pp +0 -42
  63. data/features/fixtures/server/mixed/var/lib/stub/content/puppetmodule/spec/spec_helper.rb +0 -18
  64. data/features/fixtures/server/mixed/var/lib/stub/content/puppetmodule/tests/init.pp +0 -13
  65. data/features/fixtures/server/mixed/var/lib/stub/objects/contact.json +0 -8
  66. data/features/fixtures/server/mixed/var/lib/stub/objects/shadow/contact.json +0 -8
  67. data/features/fixtures/strap/projects/etc/.empty +0 -0
  68. data/features/fixtures/strap/projects/home/user/dir/bin/.empty +0 -0
  69. data/features/fixtures/strap/projects/home/user/dir/content/puppetmodule/Modulefile +0 -12
  70. data/features/fixtures/strap/projects/home/user/dir/content/puppetmodule/README +0 -17
  71. data/features/fixtures/strap/projects/home/user/dir/content/puppetmodule/manifests/:stub:project.name:/subclass.pp +0 -3
  72. data/features/fixtures/strap/projects/home/user/dir/content/puppetmodule/manifests/init.pp +0 -42
  73. data/features/fixtures/strap/projects/home/user/dir/content/puppetmodule/spec/spec_helper.rb +0 -18
  74. data/features/fixtures/strap/projects/home/user/dir/content/puppetmodule/tests/init.pp +0 -13
  75. data/features/fixtures/strap/projects/home/user/dir/objects/contact.json +0 -8
  76. data/features/fixtures/strap/projects/home/user/dir/objects/shadow/contact.json +0 -8
  77. data/features/fixtures/strap/projects/output/.empty +0 -0
  78. data/features/fixtures/stub/contact/etc/.empty +0 -0
  79. data/features/fixtures/stub/contact/home/user/dir/bin/.empty +0 -0
  80. data/features/fixtures/stub/contact/home/user/dir/content/address.erb +0 -3
  81. data/features/fixtures/stub/contact/home/user/dir/content/cell.erb +0 -3
  82. data/features/fixtures/stub/contact/home/user/dir/content/email.erb +0 -3
  83. data/features/fixtures/stub/contact/home/user/dir/content/mobile.erb +0 -3
  84. data/features/fixtures/stub/contact/home/user/dir/content/name.erb +0 -3
  85. data/features/fixtures/stub/contact/home/user/dir/content/phone.erb +0 -3
  86. data/features/fixtures/stub/contact/home/user/dir/objects/contact.json +0 -8
  87. data/features/fixtures/stub/contact/home/user/dir/objects/shadow/contact.json +0 -8
  88. data/features/fixtures/stub/contact/output/.empty +0 -0
  89. data/features/fixtures/stub/date/etc/.empty +0 -0
  90. data/features/fixtures/stub/date/home/user/stub/bin/.empty +0 -0
  91. data/features/fixtures/stub/date/home/user/stub/content/day.erb +0 -3
  92. data/features/fixtures/stub/date/home/user/stub/content/hour.erb +0 -3
  93. data/features/fixtures/stub/date/home/user/stub/content/minute.erb +0 -3
  94. data/features/fixtures/stub/date/home/user/stub/content/month.erb +0 -3
  95. data/features/fixtures/stub/date/home/user/stub/content/second.erb +0 -3
  96. data/features/fixtures/stub/date/home/user/stub/content/year.erb +0 -3
  97. data/features/fixtures/stub/date/home/user/stub/objects/.empty +0 -0
  98. data/features/fixtures/stub/date/output/.empty +0 -0
  99. data/features/fixtures/stub/script/etc/.empty +0 -0
  100. data/features/fixtures/stub/script/home/user/stub/bin/.empty +0 -0
  101. data/features/fixtures/stub/script/home/user/stub/content/credentials.erb +0 -6
  102. data/features/fixtures/stub/script/home/user/stub/objects/credentials.rb +0 -11
  103. data/features/fixtures/stub/script/output/.empty +0 -0
  104. data/features/logging.feature +0 -39
  105. data/features/object_scripts.feature +0 -13
  106. data/features/server.feature +0 -36
  107. data/features/step_definitions/client_steps.rb +0 -99
  108. data/features/step_definitions/logging_steps.rb +0 -65
  109. data/features/step_definitions/object_scripts_steps.rb +0 -26
  110. data/features/step_definitions/server_steps.rb +0 -112
  111. data/features/step_definitions/strap_steps.rb +0 -69
  112. data/features/step_definitions/stub_option_simple_steps.rb +0 -31
  113. data/features/step_definitions/stub_steps.rb +0 -94
  114. data/features/strap.feature +0 -34
  115. data/features/stub.feature +0 -157
  116. data/features/stub_option_simple.feature +0 -14
  117. data/features/stub_packages.feature +0 -15
  118. data/features/support/env.rb +0 -197
  119. data/omnibus.rb +0 -53
  120. data/package-scripts/codestrap/postinst +0 -25
  121. data/package-scripts/codestrap/postrm +0 -17
  122. data/package-scripts/codestrap/preinst +0 -7
  123. data/package-scripts/codestrap/prerm +0 -15
  124. data/resources/codestrap/pkg/background.png +0 -0
  125. data/resources/codestrap/pkg/distribution.xml.erb +0 -22
  126. data/resources/codestrap/pkg/license.html.erb +0 -202
  127. data/resources/codestrap/pkg/welcome.html.erb +0 -7
data/.gitignore DELETED
@@ -1,20 +0,0 @@
1
- /.bundle/
2
- /.idea/
3
- /.yardoc
4
- /Gemfile.lock
5
- /_yardoc/
6
- /coverage/
7
- /doc/
8
- /pkg/
9
- /spec/reports/
10
- /tmp/
11
- Vagrantfile
12
- .ruby-gemset
13
- .ruby-version
14
- /.vagrant/
15
- atlassian-ide-plugin.xml
16
- *.bundle
17
- *.so
18
- *.o
19
- *.a
20
- mkmf.log
@@ -1,4 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.2.5
4
- script: rake features
data/Gemfile DELETED
@@ -1,6 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in codestrap.gemspec
4
- gemspec
5
-
6
- gem 'omnibus-software', git: 'https://github.com/chef/omnibus-software.git'
@@ -1,13 +0,0 @@
1
- Copyright (c) 2014 Dexter Plameras
2
-
3
- Licensed under the Apache License, Version 2.0 (the "License");
4
- you may not use this file except in compliance with the License.
5
- You may obtain a copy of the License at
6
-
7
- http://www.apache.org/licenses/LICENSE-2.0
8
-
9
- Unless required by applicable law or agreed to in writing, software
10
- distributed under the License is distributed on an "AS IS" BASIS,
11
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- See the License for the specific language governing permissions and
13
- limitations under the License.
data/Rakefile DELETED
@@ -1,51 +0,0 @@
1
- ROOT = File.dirname(File.expand_path(__FILE__))
2
- FEATURES_PATH = File.join(ROOT, 'features')
3
- LIB_PATH = File.join(ROOT, 'lib')
4
- TMP_PATH = File.join(ROOT, 'tmp')
5
- TMP_FILES = Rake::FileList.new(File.join(ROOT, 'tmp','*'))
6
- PACKAGES = Rake::FileList.new(File.join(ROOT, 'pkg', '*'))
7
- DOCS = Rake::FileList.new(File.join(ROOT, 'doc', '*'))
8
- $LOAD_PATH.unshift(LIB_PATH)
9
- require 'codestrap'
10
- require 'codestrap/version'
11
- require 'bundler/gem_tasks'
12
- require 'cucumber'
13
- require 'cucumber/rake/task'
14
- require 'rake'
15
- require 'yard'
16
-
17
- Cucumber::Rake::Task.new(:features) do |t|
18
- t.cucumber_opts = "#{FEATURES_PATH} -r #{FEATURES_PATH}/step_definitions -r #{FEATURES_PATH}/support --format pretty"
19
- end
20
-
21
- YARD::Rake::YardocTask.new do |t|
22
- t.files = %w[ lib/**/*.rb ]
23
- end
24
-
25
- desc 'Clean files'
26
- task :clean do
27
- clean = []
28
- clean += TMP_FILES
29
- clean += PACKAGES
30
- clean += DOCS
31
- clean.each do |file|
32
- rm_rf file
33
- end
34
- end
35
-
36
- desc 'Uninstall'
37
- task :uninstall do
38
- sh 'gem uninstall codestrap -x'
39
- end
40
-
41
- desc 'Reinstall'
42
- task :reinstall do
43
- Rake::Task['uninstall'].invoke
44
- Rake::Task['install'].invoke
45
- end
46
-
47
- desc 'Package using omnibus'
48
- task :package do
49
- Rake::Task['build'].invoke
50
- sh 'omnibus build codestrap'
51
- end
@@ -1,22 +0,0 @@
1
- #
2
- # Copyright 2016 Dexter Plameras
3
- #
4
- # All Rights Reserved.
5
- #
6
- require File.absolute_path(File.join(File.dirname(__FILE__),'..','..','lib','codestrap','version'))
7
-
8
- name 'codestrap'
9
- maintainer 'Dexter Plameras'
10
- homepage 'https://github.com/dexterp/codestrap'
11
-
12
- # Defaults to C:/codestrap on Windows
13
- # and /opt/codestrap on all other platforms
14
- install_dir "#{default_root}/#{name}"
15
-
16
- build_version Codestrap::VERSION
17
- build_iteration 1
18
-
19
- dependency 'codestrap'
20
-
21
- exclude "**/.git"
22
- exclude "**/bundler/git"
@@ -1,20 +0,0 @@
1
- require File.absolute_path(File.join(File.dirname(__FILE__),'..','..','lib','codestrap','version'))
2
-
3
- name 'codestrap'
4
- default_version Codestrap::VERSION
5
-
6
- dependency 'ruby'
7
- dependency 'rubygems'
8
-
9
- build do
10
- pkg = File.absolute_path(File.join(File.dirname(__FILE__),'..','..','pkg',"codestrap-#{version}.gem"))
11
- gem "install #{pkg} -n #{install_dir}/bin --no-rdoc --no-ri -v #{version}"
12
- command "rm -rf /opt/#{name}/embedded/docs"
13
- command "rm -rf /opt/#{name}/embedded/share/man"
14
- command "rm -rf /opt/#{name}/embedded/share/doc"
15
- command "rm -rf /opt/#{name}/embedded/ssl/man"
16
- command "rm -rf /opt/#{name}/embedded/info"
17
- command "rm -rf /opt/#{name}/bin/upstrap"
18
- command "rm -rf /opt/#{name}/bin/rackup"
19
- command "rm -rf /opt/#{name}/bin/tilt"
20
- end
@@ -1,247 +0,0 @@
1
- #
2
- # Copyright 2012-2016 Chef Software, Inc.
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- name "ruby"
18
-
19
- license "BSD-2-Clause"
20
- license_file "BSDL"
21
- license_file "COPYING"
22
- license_file "LEGAL"
23
-
24
- # - chef-client cannot use 2.2.x yet due to a bug in IRB that affects chef-shell on linux:
25
- # https://bugs.ruby-lang.org/issues/11869
26
- # - the current status of 2.3.x is that it downloads but fails to compile.
27
- # - verify that all ffi libs are available for your version on all platforms.
28
- default_version "2.2.5"
29
-
30
- fips_enabled = (project.overrides[:fips] && project.overrides[:fips][:enabled]) || false
31
-
32
- dependency "patch" if solaris_10?
33
- dependency "ncurses" unless windows? || version.satisfies?(">= 2.1")
34
- dependency "zlib"
35
- dependency "openssl"
36
- dependency "libffi"
37
- dependency "libyaml"
38
- # Needed for chef_gem installs of (e.g.) nokogiri on upgrades -
39
- # they expect to see our libiconv instead of a system version.
40
- # Ignore on windows - TDM GCC comes with libiconv in the runtime
41
- # and that's the only one we will ever use.
42
- dependency "libiconv"
43
-
44
- version("2.3.0") { source md5: "e81740ac7b14a9f837e9573601db3162" }
45
-
46
- version("2.2.5") { source md5: "bd8e349d4fb2c75d90817649674f94be" }
47
- version("2.2.4") { source md5: "9a5e15f9d5255ba37ace18771b0a8dd2" }
48
- version("2.2.3") { source md5: "150a5efc5f5d8a8011f30aa2594a7654" }
49
- version("2.2.2") { source md5: "326e99ddc75381c7b50c85f7089f3260" }
50
- version("2.2.1") { source md5: "b49fc67a834e4f77249eb73eecffb1c9" }
51
- version("2.2.0") { source md5: "cd03b28fd0b555970f5c4fd481700852" }
52
-
53
- version("2.1.8") { source md5: "091b62f0a9796a3c55de2a228a0e6ef3" }
54
- version("2.1.7") { source md5: "2e143b8e19b056df46479ae4412550c9" }
55
- version("2.1.6") { source md5: "6e5564364be085c45576787b48eeb75f" }
56
- version("2.1.5") { source md5: "df4c1b23f624a50513c7a78cb51a13dc" }
57
- version("2.1.4") { source md5: "89b2f4a197621346f6724a3c35535b19" }
58
- version("2.1.3") { source md5: "74a37b9ad90e4ea63c0eed32b9d5b18f" }
59
- version("2.1.2") { source md5: "a5b5c83565f8bd954ee522bd287d2ca1" }
60
- version("2.1.1") { source md5: "e57fdbb8ed56e70c43f39c79da1654b2" }
61
-
62
- version("2.0.0-p645") { source md5: "49919bba0c855eaf8e247108c7933a62" }
63
- version("2.0.0-p594") { source md5: "a9caa406da5d72f190e28344e747ee74" }
64
- version("2.0.0-p576") { source md5: "2e1f4355981b754d92f7e2cc456f843d" }
65
-
66
- version("1.9.3-p550") { source md5: "e05135be8f109b2845229c4f47f980fd" }
67
- version("1.9.3-p547") { source md5: "7531f9b1b35b16f3eb3d7bea786babfd" }
68
- version("1.9.3-p484") { source md5: "8ac0dee72fe12d75c8b2d0ef5d0c2968" }
69
-
70
- source url: "https://cache.ruby-lang.org/pub/ruby/#{version.match(/^(\d+\.\d+)/)[0]}/ruby-#{version}.tar.gz"
71
-
72
- relative_path "ruby-#{version}"
73
-
74
- env = with_standard_compiler_flags(with_embedded_path)
75
-
76
- if mac_os_x?
77
- # -Qunused-arguments suppresses "argument unused during compilation"
78
- # warnings. These can be produced if you compile a program that doesn't
79
- # link to anything in a path given with -Lextra-libs. Normally these
80
- # would be harmless, except that autoconf treats any output to stderr as
81
- # a failure when it makes a test program to check your CFLAGS (regardless
82
- # of the actual exit code from the compiler).
83
- env["CFLAGS"] << " -I#{install_dir}/embedded/include/ncurses -arch x86_64 -m64 -O3 -g -pipe -Qunused-arguments"
84
- env["LDFLAGS"] << " -arch x86_64"
85
- elsif freebsd?
86
- # Stops "libtinfo.so.5.9: could not read symbols: Bad value" error when
87
- # compiling ext/readline. See the following for more info:
88
- #
89
- # https://lists.freebsd.org/pipermail/freebsd-current/2013-October/045425.html
90
- # http://mailing.freebsd.ports-bugs.narkive.com/kCgK8sNQ/ports-183106-patch-sysutils-libcdio-does-not-build-on-10-0-and-head
91
- #
92
- env["LDFLAGS"] << " -ltinfow"
93
- elsif aix?
94
- # this magic per IBM
95
- env["LDSHARED"] = "xlc -G"
96
- env["CFLAGS"] = "-I#{install_dir}/embedded/include/ncurses -I#{install_dir}/embedded/include"
97
- # this magic per IBM
98
- env["XCFLAGS"] = "-DRUBY_EXPORT"
99
- # need CPPFLAGS set so ruby doesn't try to be too clever
100
- env["CPPFLAGS"] = "-I#{install_dir}/embedded/include/ncurses -I#{install_dir}/embedded/include"
101
- env["SOLIBS"] = "-lm -lc"
102
- # need to use GNU m4, default m4 doesn't work
103
- env["M4"] = "/opt/freeware/bin/m4"
104
- elsif solaris_10?
105
- if sparc?
106
- # Known issue with rubby where too much GCC optimization blows up miniruby on sparc
107
- env["CFLAGS"] << " -std=c99 -O0 -g -pipe -mcpu=v9"
108
- env["LDFLAGS"] << " -mcpu=v9"
109
- else
110
- env["CFLAGS"] << " -std=c99 -O3 -g -pipe"
111
- end
112
- elsif windows?
113
- env["CPPFLAGS"] << " -DFD_SETSIZE=2048"
114
- else # including linux
115
- if version.satisfies?(">= 2.3.0") &&
116
- rhel? && platform_version.satisfies?("< 6.0")
117
- env["CFLAGS"] << " -O2 -g -pipe"
118
- else
119
- env["CFLAGS"] << " -O3 -g -pipe"
120
- end
121
- end
122
-
123
- build do
124
- # AIX needs /opt/freeware/bin only for patch
125
- patch_env = env.dup
126
- patch_env["PATH"] = "/opt/freeware/bin:#{env['PATH']}" if aix?
127
-
128
- if solaris_10? && version.satisfies?(">= 2.1")
129
- patch source: "ruby-no-stack-protector.patch", plevel: 1, env: patch_env
130
- elsif solaris_10? && version =~ /^1.9/
131
- patch source: "ruby-sparc-1.9.3-c99.patch", plevel: 1, env: patch_env
132
- end
133
-
134
- # wrlinux7/ios_xr build boxes from Cisco include libssp and there is no way to
135
- # disable ruby from linking against it, but Cisco switches will not have the
136
- # library. Disabling it as we do for Solaris.
137
- if ios_xr? && version.satisfies?(">= 2.1")
138
- patch source: "ruby-no-stack-protector.patch", plevel: 1, env: patch_env
139
- end
140
-
141
- # disable libpath in mkmf across all platforms, it trolls omnibus and
142
- # breaks the postgresql cookbook. i'm not sure why ruby authors decided
143
- # this was a good idea, but it breaks our use case hard. AIX cannot even
144
- # compile without removing it, and it breaks some native gem installs on
145
- # other platforms. generally you need to have a condition where the
146
- # embedded and non-embedded libs get into a fight (libiconv, openssl, etc)
147
- # and ruby trying to set LD_LIBRARY_PATH itself gets it wrong.
148
- #
149
- # Also, fix paths emitted in the makefile on windows on both msys and msys2.
150
- if version.satisfies?(">= 2.1")
151
- patch source: "ruby-mkmf.patch", plevel: 1, env: patch_env
152
- # should intentionally break and fail to apply on 2.2, patch will need to
153
- # be fixed.
154
- end
155
-
156
- # Fix reserve stack segmentation fault when building on RHEL5 or below
157
- # Currently only affects 2.1.7 and 2.2.3. This patch taken from the fix
158
- # in Ruby trunk and expected to be included in future point releases.
159
- # https://redmine.ruby-lang.org/issues/11602
160
- if rhel? &&
161
- platform_version.satisfies?("< 6") &&
162
- (version == "2.1.7" || version == "2.2.3")
163
-
164
- patch source: "ruby-fix-reserve-stack-segfault.patch", plevel: 1, env: patch_env
165
- end
166
-
167
- configure_command = ["--with-out-ext=dbm,readline",
168
- "--enable-shared",
169
- "--disable-install-doc",
170
- "--without-gmp",
171
- "--without-gdbm",
172
- "--without-tk",
173
- "--disable-dtrace"]
174
- configure_command << "--with-ext=psych" if version.satisfies?("< 2.3")
175
- configure_command << "--with-bundled-md5" if fips_enabled
176
-
177
- if aix?
178
- # need to patch ruby's configure file so it knows how to find shared libraries
179
- patch source: "ruby-aix-configure.patch", plevel: 1, env: patch_env
180
- # have ruby use zlib on AIX correctly
181
- patch source: "ruby_aix_openssl.patch", plevel: 1, env: patch_env
182
- # AIX has issues with ssl retries, need to patch to have it retry
183
- patch source: "ruby_aix_2_1_3_ssl_EAGAIN.patch", plevel: 1, env: patch_env
184
- # the next two patches are because xlc doesn't deal with long vs int types well
185
- patch source: "ruby-aix-atomic.patch", plevel: 1, env: patch_env
186
- patch source: "ruby-aix-vm-core.patch", plevel: 1, env: patch_env
187
-
188
- # per IBM, just help ruby along on what it's running on
189
- configure_command << "--host=powerpc-ibm-aix6.1.0.0 --target=powerpc-ibm-aix6.1.0.0 --build=powerpc-ibm-aix6.1.0.0 --enable-pthread"
190
-
191
- elsif freebsd?
192
- # Disable optional support C level backtrace support. This requires the
193
- # optional devel/libexecinfo port to be installed.
194
- configure_command << "ac_cv_header_execinfo_h=no"
195
- configure_command << "--with-opt-dir=#{install_dir}/embedded"
196
- elsif smartos?
197
- # Opscode patch - someara@opscode.com
198
- # GCC 4.7.0 chokes on mismatched function types between OpenSSL 1.0.1c and Ruby 1.9.3-p286
199
- patch source: "ruby-openssl-1.0.1c.patch", plevel: 1, env: patch_env
200
-
201
- # Patches taken from RVM.
202
- # http://bugs.ruby-lang.org/issues/5384
203
- # https://www.illumos.org/issues/1587
204
- # https://github.com/wayneeseguin/rvm/issues/719
205
- patch source: "rvm-cflags.patch", plevel: 1, env: patch_env
206
-
207
- # From RVM forum
208
- # https://github.com/wayneeseguin/rvm/commit/86766534fcc26f4582f23842a4d3789707ce6b96
209
- configure_command << "ac_cv_func_dl_iterate_phdr=no"
210
- configure_command << "--with-opt-dir=#{install_dir}/embedded"
211
- elsif windows?
212
- configure_command << " debugflags=-g"
213
- else
214
- configure_command << "--with-opt-dir=#{install_dir}/embedded"
215
- end
216
-
217
- # FFS: works around a bug that infects AIX when it picks up our pkg-config
218
- # AFAIK, ruby does not need or use this pkg-config it just causes the build to fail.
219
- # The alternative would be to patch configure to remove all the pkg-config garbage entirely
220
- env["PKG_CONFIG"] = "/bin/true" if aix?
221
-
222
- configure(*configure_command, env: env)
223
- make "-j #{workers}", env: env
224
- make "-j #{workers} install", env: env
225
-
226
- if windows?
227
- # Needed now that we switched to msys2 and have not figured out how to tell
228
- # it how to statically link yet
229
- dlls = ["libwinpthread-1"]
230
- if windows_arch_i386?
231
- dlls << "libgcc_s_dw2-1"
232
- else
233
- dlls << "libgcc_s_seh-1"
234
- end
235
- dlls.each do |dll|
236
- arch_suffix = windows_arch_i386? ? "32" : "64"
237
- windows_path = "C:/msys2/mingw#{arch_suffix}/bin/#{dll}.dll"
238
- if File.exist?(windows_path)
239
- copy windows_path, "#{install_dir}/embedded/bin/#{dll}.dll"
240
- else
241
- raise "Cannot find required DLL needed for dynamic linking: #{windows_path}"
242
- end
243
- end
244
- else
245
- end
246
-
247
- end
@@ -1,86 +0,0 @@
1
- #
2
- # Copyright 2012-2015 Chef Software, Inc.
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- name "zlib"
18
- default_version "1.2.8"
19
-
20
- version "1.2.8" do
21
- source md5: "44d667c142d7cda120332623eab69f40"
22
- end
23
- version "1.2.6" do
24
- source md5: "618e944d7c7cd6521551e30b32322f4a"
25
- end
26
-
27
- source url: "http://zlib.net/zlib-#{version}.tar.gz"
28
-
29
- license "Zlib"
30
- license_file "README"
31
-
32
- relative_path "zlib-#{version}"
33
-
34
- build do
35
- if windows?
36
- env = with_standard_compiler_flags(with_embedded_path)
37
-
38
- patch source: "zlib-windows-relocate.patch", env: env
39
-
40
- # We can't use the top-level Makefile. Instead, the developers have made
41
- # an organic, artisanal, hand-crafted Makefile.gcc for us which takes a few
42
- # variables.
43
- env["BINARY_PATH"] = "/bin"
44
- env["LIBRARY_PATH"] = "/lib"
45
- env["INCLUDE_PATH"] = "/include"
46
- env["DESTDIR"] = "#{install_dir}/embedded"
47
-
48
- make_args = [
49
- "-fwin32/Makefile.gcc",
50
- "SHARED_MODE=1",
51
- "CFLAGS=\"#{env['CFLAGS']} -Wall\"",
52
- "ASFLAGS=\"#{env['CFLAGS']} -Wall\"",
53
- "LDFLAGS=\"#{env['LDFLAGS']}\"",
54
- # The win32 makefile for zlib does not handle parallel make correctly.
55
- # In particular, see its rule for IMPLIB and SHAREDLIB. The ld step in
56
- # SHAREDLIB will generate both the dll and the dll.a files. The step to
57
- # strip the dll occurs next but since the dll.a file is already present,
58
- # make will attempt to link example_d.exe and minigzip_d.exe in parallel
59
- # with the strip step - causing gcc to freak out when a source file is
60
- # rewritten part way through the linking stage.
61
- #"-j #{workers}",
62
- ]
63
-
64
- make(*make_args, env: env)
65
- make("install", *make_args, env: env)
66
- else
67
- # We omit the omnibus path here because it breaks mac_os_x builds by picking
68
- # up the embedded libtool instead of the system libtool which the zlib
69
- # configure script cannot handle.
70
- # TODO: Do other OSes need this? Is this strictly a mac thing?
71
- env = with_standard_compiler_flags
72
- if solaris_10?
73
- # For some reason zlib needs this flag on solaris (cargocult warning?)
74
- env["CFLAGS"] << " -DNO_VIZ"
75
- elsif freebsd?
76
- # FreeBSD 10+ gets cranky if zlib is not compiled in a
77
- # position-independent way.
78
- env["CFLAGS"] << " -fPIC"
79
- end
80
-
81
- configure env: env
82
-
83
- make "-j #{workers}", env: env
84
- make "-j #{workers} install", env: env
85
- end
86
- end