puppet 4.8.2-x86-mingw32 → 4.9.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (348) hide show
  1. checksums.yaml +15 -0
  2. data/CONTRIBUTING.md +25 -1
  3. data/Gemfile +6 -0
  4. data/Rakefile +1 -0
  5. data/ext/project_data.yaml +5 -1
  6. data/ext/windows/service/daemon.rb +2 -1
  7. data/install.rb +43 -6
  8. data/lib/hiera/puppet_function.rb +15 -17
  9. data/lib/hiera/scope.rb +12 -14
  10. data/lib/puppet.rb +52 -0
  11. data/lib/puppet/application/face_base.rb +4 -0
  12. data/lib/puppet/application/lookup.rb +4 -2
  13. data/lib/puppet/application/resource.rb +1 -1
  14. data/lib/puppet/data_providers.rb +6 -3
  15. data/lib/puppet/data_providers/data_adapter.rb +6 -0
  16. data/lib/puppet/data_providers/data_function_support.rb +7 -0
  17. data/lib/puppet/data_providers/function_env_data_provider.rb +7 -0
  18. data/lib/puppet/data_providers/function_module_data_provider.rb +6 -0
  19. data/lib/puppet/data_providers/hiera_config.rb +31 -10
  20. data/lib/puppet/data_providers/hiera_env_data_provider.rb +6 -0
  21. data/lib/puppet/data_providers/hiera_interpolate.rb +2 -1
  22. data/lib/puppet/data_providers/hiera_module_data_provider.rb +6 -0
  23. data/lib/puppet/data_providers/hiera_support.rb +6 -0
  24. data/lib/puppet/data_providers/json_data_provider_factory.rb +12 -0
  25. data/lib/puppet/data_providers/yaml_data_provider_factory.rb +12 -0
  26. data/lib/puppet/defaults.rb +25 -4
  27. data/lib/puppet/face/ca.rb +2 -0
  28. data/lib/puppet/face/certificate_request.rb +2 -0
  29. data/lib/puppet/face/certificate_revocation_list.rb +2 -0
  30. data/lib/puppet/face/file.rb +3 -0
  31. data/lib/puppet/face/help.rb +19 -17
  32. data/lib/puppet/face/help/face.erb +3 -0
  33. data/lib/puppet/face/key.rb +1 -0
  34. data/lib/puppet/face/man.rb +4 -2
  35. data/lib/puppet/face/module/generate.rb +1 -1
  36. data/lib/puppet/face/status.rb +2 -0
  37. data/lib/puppet/feature/base.rb +9 -2
  38. data/lib/puppet/feature/hocon.rb +3 -0
  39. data/lib/puppet/file_system.rb +15 -3
  40. data/lib/puppet/file_system/windows.rb +8 -0
  41. data/lib/puppet/forge.rb +6 -6
  42. data/lib/puppet/forge/repository.rb +1 -2
  43. data/lib/puppet/functions/binary_file.rb +4 -10
  44. data/lib/puppet/functions/hiera_array.rb +1 -1
  45. data/lib/puppet/functions/hiera_include.rb +1 -1
  46. data/lib/puppet/functions/hocon_data.rb +24 -0
  47. data/lib/puppet/functions/json_data.rb +18 -0
  48. data/lib/puppet/functions/yaml_data.rb +21 -0
  49. data/lib/puppet/generate/type.rb +1 -1
  50. data/lib/puppet/graph/simple_graph.rb +4 -2
  51. data/lib/puppet/indirector/file_bucket_file/file.rb +10 -2
  52. data/lib/puppet/indirector/request.rb +5 -1
  53. data/lib/puppet/interface.rb +14 -2
  54. data/lib/puppet/interface/face_collection.rb +1 -1
  55. data/lib/puppet/module.rb +14 -2
  56. data/lib/puppet/module_tool.rb +4 -4
  57. data/lib/puppet/module_tool/applications/builder.rb +3 -2
  58. data/lib/puppet/module_tool/applications/installer.rb +14 -14
  59. data/lib/puppet/module_tool/applications/upgrader.rb +13 -13
  60. data/lib/puppet/module_tool/installed_modules.rb +7 -7
  61. data/lib/puppet/module_tool/local_tarball.rb +3 -3
  62. data/lib/puppet/module_tool/metadata.rb +1 -1
  63. data/lib/puppet/network/http/connection.rb +2 -0
  64. data/lib/puppet/network/http/webrick.rb +2 -1
  65. data/lib/puppet/parser/functions/hiera.rb +14 -0
  66. data/lib/puppet/parser/functions/hiera_array.rb +14 -0
  67. data/lib/puppet/parser/functions/hiera_hash.rb +14 -0
  68. data/lib/puppet/parser/functions/hiera_include.rb +14 -0
  69. data/lib/puppet/parser/scope.rb +14 -20
  70. data/lib/puppet/plugins/data_providers.rb +2 -0
  71. data/lib/puppet/plugins/data_providers/data_provider.rb +108 -17
  72. data/lib/puppet/plugins/data_providers/registry.rb +2 -36
  73. data/lib/puppet/pops.rb +6 -9
  74. data/lib/puppet/pops/adaptable.rb +0 -3
  75. data/lib/puppet/pops/binder/producers.rb +3 -3
  76. data/lib/puppet/pops/evaluator/access_operator.rb +4 -4
  77. data/lib/puppet/pops/evaluator/closure.rb +1 -1
  78. data/lib/puppet/pops/evaluator/compare_operator.rb +4 -4
  79. data/lib/puppet/pops/evaluator/evaluator_impl.rb +1 -1
  80. data/lib/puppet/pops/issues.rb +4 -0
  81. data/lib/puppet/pops/label_provider.rb +14 -0
  82. data/lib/puppet/pops/loader/loader_paths.rb +3 -1
  83. data/lib/puppet/pops/loader/module_loaders.rb +21 -7
  84. data/lib/puppet/pops/loader/typed_name.rb +0 -2
  85. data/lib/puppet/pops/loaders.rb +31 -12
  86. data/lib/puppet/pops/lookup.rb +4 -3
  87. data/lib/puppet/pops/lookup/configured_data_provider.rb +87 -0
  88. data/lib/puppet/pops/lookup/context.rb +121 -71
  89. data/lib/puppet/pops/lookup/data_adapter.rb +27 -0
  90. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +55 -0
  91. data/lib/puppet/pops/lookup/data_hash_function_provider.rb +111 -0
  92. data/lib/puppet/pops/lookup/data_provider.rb +102 -0
  93. data/lib/puppet/pops/lookup/environment_data_provider.rb +27 -0
  94. data/lib/puppet/pops/lookup/explainer.rb +122 -82
  95. data/lib/puppet/pops/lookup/function_provider.rb +82 -0
  96. data/lib/puppet/pops/lookup/global_data_provider.rb +49 -0
  97. data/lib/puppet/pops/lookup/hiera_config.rb +601 -0
  98. data/lib/puppet/pops/lookup/interpolation.rb +56 -35
  99. data/lib/puppet/pops/lookup/invocation.rb +179 -101
  100. data/lib/puppet/pops/lookup/location_resolver.rb +72 -0
  101. data/lib/puppet/pops/lookup/lookup_adapter.rb +451 -0
  102. data/lib/puppet/pops/lookup/lookup_key.rb +99 -0
  103. data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +119 -0
  104. data/lib/puppet/pops/lookup/module_data_provider.rb +58 -0
  105. data/lib/puppet/pops/lookup/sub_lookup.rb +8 -4
  106. data/lib/puppet/pops/merge_strategy.rb +120 -39
  107. data/lib/puppet/pops/parser/egrammar.ra +2 -0
  108. data/lib/puppet/pops/parser/eparser.rb +816 -808
  109. data/lib/puppet/pops/parser/locator.rb +3 -3
  110. data/lib/puppet/pops/parser/slurp_support.rb +4 -3
  111. data/lib/puppet/pops/pcore.rb +21 -12
  112. data/lib/puppet/pops/serialization/abstract_reader.rb +17 -7
  113. data/lib/puppet/pops/serialization/abstract_writer.rb +27 -12
  114. data/lib/puppet/pops/serialization/deserializer.rb +17 -4
  115. data/lib/puppet/pops/serialization/extension.rb +37 -8
  116. data/lib/puppet/pops/serialization/object.rb +14 -6
  117. data/lib/puppet/pops/serialization/rgen.rb +2 -1
  118. data/lib/puppet/pops/serialization/serializer.rb +30 -7
  119. data/lib/puppet/pops/types/implementation_registry.rb +1 -1
  120. data/lib/puppet/pops/types/p_object_type.rb +55 -12
  121. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +27 -27
  122. data/lib/puppet/pops/types/p_sem_ver_type.rb +12 -12
  123. data/lib/puppet/pops/types/p_timespan_type.rb +6 -6
  124. data/lib/puppet/pops/types/p_timestamp_type.rb +2 -2
  125. data/lib/puppet/pops/types/p_type_set_type.rb +7 -16
  126. data/lib/puppet/pops/types/recursion_guard.rb +64 -20
  127. data/lib/puppet/pops/types/ruby_generator.rb +10 -0
  128. data/lib/puppet/pops/types/type_calculator.rb +23 -13
  129. data/lib/puppet/pops/types/type_factory.rb +20 -9
  130. data/lib/puppet/pops/types/type_formatter.rb +37 -17
  131. data/lib/puppet/pops/types/type_mismatch_describer.rb +7 -6
  132. data/lib/puppet/pops/types/type_parser.rb +6 -0
  133. data/lib/puppet/pops/types/types.rb +225 -132
  134. data/lib/puppet/pops/validation.rb +1 -1
  135. data/lib/puppet/pops/validation/checker4_0.rb +12 -2
  136. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
  137. data/lib/puppet/pops/visitor.rb +4 -3
  138. data/lib/puppet/provider/mcx/mcxcontent.rb +2 -1
  139. data/lib/puppet/provider/nameservice.rb +15 -0
  140. data/lib/puppet/provider/package/appdmg.rb +1 -1
  141. data/lib/puppet/provider/package/dnf.rb +1 -1
  142. data/lib/puppet/provider/package/pkg.rb +1 -1
  143. data/lib/puppet/provider/package/pkgdmg.rb +1 -1
  144. data/lib/puppet/provider/package/pkgng.rb +1 -1
  145. data/lib/puppet/provider/package/rpm.rb +2 -2
  146. data/lib/puppet/provider/service/smf.rb +3 -3
  147. data/lib/puppet/provider/service/systemd.rb +5 -1
  148. data/lib/puppet/provider/user/directoryservice.rb +1 -0
  149. data/lib/puppet/provider/user/user_role_add.rb +15 -0
  150. data/lib/puppet/provider/yumrepo/inifile.rb +2 -2
  151. data/lib/puppet/provider/zone/solaris.rb +4 -1
  152. data/lib/puppet/reference/indirection.rb +1 -1
  153. data/lib/puppet/resource.rb +2 -3
  154. data/lib/puppet/resource/catalog.rb +12 -4
  155. data/lib/puppet/resource/type.rb +3 -3
  156. data/lib/puppet/settings.rb +1 -1
  157. data/lib/puppet/settings/config_file.rb +2 -1
  158. data/lib/puppet/settings/directory_setting.rb +6 -0
  159. data/lib/puppet/settings/environment_conf.rb +6 -2
  160. data/lib/puppet/settings/file_or_directory_setting.rb +6 -0
  161. data/lib/puppet/settings/file_setting.rb +10 -0
  162. data/lib/puppet/ssl/certificate_authority.rb +13 -2
  163. data/lib/puppet/ssl/host.rb +23 -1
  164. data/lib/puppet/transaction/additional_resource_generator.rb +7 -0
  165. data/lib/puppet/type/user.rb +16 -3
  166. data/lib/puppet/util.rb +1 -0
  167. data/lib/puppet/util/execution.rb +3 -3
  168. data/lib/puppet/util/filetype.rb +11 -5
  169. data/lib/puppet/util/logging.rb +2 -1
  170. data/lib/puppet/util/network_device/config.rb +1 -1
  171. data/lib/puppet/util/plist.rb +6 -0
  172. data/lib/puppet/util/profiler/aggregate.rb +1 -1
  173. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +2 -2
  174. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +2 -1
  175. data/lib/puppet/util/windows/adsi.rb +15 -12
  176. data/lib/puppet/vendor/load_semantic_puppet.rb +1 -0
  177. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +2 -1
  178. data/lib/puppet/vendor/require_vendored.rb +0 -1
  179. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +17 -0
  180. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency.rb +7 -7
  181. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph.rb +2 -2
  182. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph_node.rb +2 -2
  183. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/module_release.rb +58 -0
  184. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/source.rb +2 -2
  185. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/unsatisfiable_graph.rb +2 -2
  186. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +3 -0
  187. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/locales/config.yaml +21 -0
  188. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version.rb +48 -21
  189. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version_range.rb +15 -17
  190. data/lib/puppet/version.rb +1 -1
  191. data/lib/semver.rb +19 -12
  192. data/locales/config.yaml +29 -0
  193. data/locales/puppet.pot +79 -0
  194. data/man/man5/puppet.conf.5 +1 -1
  195. data/spec/fixtures/unit/application/environments/puppet_func_provider/functions/{data.pp → environment/data.pp} +0 -0
  196. data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +2 -0
  197. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/data/common.yaml +1 -1
  198. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/hiera.yaml +5 -0
  199. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet/bindings/backend/default.rb +9 -0
  200. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet_x/backend/special_data_provider_factory.rb +23 -0
  201. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/manifests/init.pp +5 -0
  202. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/metadata.json +9 -0
  203. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +1 -0
  204. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/manifests/init.pp +1 -1
  205. data/spec/fixtures/unit/functions/lookup/data/common.yaml +19 -0
  206. data/spec/fixtures/unit/functions/lookup_fixture/data/common.yaml +19 -0
  207. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/environment.conf +0 -0
  208. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/lib/puppet/functions/environment/data.rb +0 -0
  209. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -0
  210. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -0
  211. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/manifests/init.pp +0 -0
  212. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/bindings/bad_data/default.rb +0 -0
  213. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +0 -0
  214. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/manifests/init.pp +0 -0
  215. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/bindings/bca/default.rb +0 -0
  216. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/functions/bca/data.rb +0 -0
  217. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/manifests/init.pp +0 -0
  218. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/data/empty.json +0 -0
  219. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/hiera.yaml +0 -0
  220. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/manifests/init.pp +0 -0
  221. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/metadata.json +0 -0
  222. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/data/empty_key.json +0 -0
  223. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/hiera.yaml +0 -0
  224. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/manifests/init.pp +0 -0
  225. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/metadata.json +0 -0
  226. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/data/empty_key.yaml +0 -0
  227. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/hiera.yaml +0 -0
  228. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/manifests/init.pp +0 -0
  229. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/metadata.json +0 -0
  230. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/data/empty.yaml +0 -0
  231. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/hiera.yaml +0 -0
  232. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/manifests/init.pp +0 -0
  233. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/metadata.json +0 -0
  234. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/data/first.json +0 -0
  235. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/hiera.yaml +0 -0
  236. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/manifests/init.pp +0 -0
  237. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/metadata.json +0 -0
  238. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +0 -0
  239. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/manifests/init.pp +0 -0
  240. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/metadata.json +0 -0
  241. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +0 -0
  242. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +0 -0
  243. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/manifests/init.pp +0 -0
  244. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/metadata.json +0 -0
  245. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/no_provider/manifests/init.pp +0 -0
  246. data/spec/integration/application/apply_spec.rb +88 -2
  247. data/spec/integration/application/lookup_spec.rb +155 -0
  248. data/spec/integration/data_binding_spec.rb +5 -5
  249. data/spec/integration/defaults_spec.rb +13 -0
  250. data/spec/integration/environments/default_manifest_spec.rb +16 -16
  251. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  252. data/spec/integration/test/test_helper_spec.rb +6 -2
  253. data/spec/integration/transaction_spec.rb +74 -0
  254. data/spec/integration/util/execution_spec.rb +8 -0
  255. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
  256. data/spec/lib/puppet_spec/module_tool/stub_source.rb +1 -1
  257. data/spec/lib/puppet_spec/unindent.rb +2 -2
  258. data/spec/unit/application/face_base_spec.rb +16 -0
  259. data/spec/unit/application/lookup_spec.rb +262 -227
  260. data/spec/unit/data_providers/{sample_data_provider_spec.rb → custom_data_provider_spec.rb} +14 -16
  261. data/spec/unit/data_providers/function_data_provider_spec.rb +2 -2
  262. data/spec/unit/data_providers/hiera_data_provider_spec.rb +60 -97
  263. data/spec/unit/defaults_spec.rb +1 -1
  264. data/spec/unit/face/ca_spec.rb +10 -0
  265. data/spec/unit/face/certificate_request_spec.rb +10 -0
  266. data/spec/unit/face/certificate_revocation_list_spec.rb +10 -0
  267. data/spec/unit/face/file_spec.rb +4 -0
  268. data/spec/unit/face/help_spec.rb +17 -0
  269. data/spec/unit/face/key_spec.rb +10 -0
  270. data/spec/unit/face/status_spec.rb +10 -0
  271. data/spec/unit/file_system_spec.rb +143 -6
  272. data/spec/unit/functions/binary_file_spec.rb +1 -1
  273. data/spec/unit/functions/hiera_spec.rb +257 -47
  274. data/spec/unit/functions/lookup_fixture_spec.rb +693 -0
  275. data/spec/unit/functions/lookup_spec.rb +1319 -608
  276. data/spec/unit/functions/new_spec.rb +3 -3
  277. data/spec/unit/graph/rb_tree_map_spec.rb +1 -1
  278. data/spec/unit/graph/simple_graph_spec.rb +1 -1
  279. data/spec/unit/hiera/scope_spec.rb +4 -4
  280. data/spec/unit/indirector/request_spec.rb +9 -0
  281. data/spec/unit/interface_spec.rb +27 -0
  282. data/spec/unit/man_spec.rb +1 -1
  283. data/spec/unit/module_spec.rb +1 -1
  284. data/spec/unit/module_tool/applications/builder_spec.rb +16 -1
  285. data/spec/unit/module_tool/applications/installer_spec.rb +1 -1
  286. data/spec/unit/module_tool/applications/upgrader_spec.rb +1 -1
  287. data/spec/unit/module_tool/installed_modules_spec.rb +6 -6
  288. data/spec/unit/module_tool_spec.rb +3 -3
  289. data/spec/unit/network/http/connection_spec.rb +10 -0
  290. data/spec/unit/network/http/webrick_spec.rb +1 -1
  291. data/spec/unit/pops/evaluator/access_ops_spec.rb +2 -2
  292. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +9 -9
  293. data/spec/unit/pops/loaders/environment_loader_spec.rb +172 -0
  294. data/spec/unit/pops/lookup/context_spec.rb +45 -16
  295. data/spec/unit/pops/lookup/interpolation_spec.rb +28 -20
  296. data/spec/unit/pops/lookup/lookup_spec.rb +197 -0
  297. data/spec/unit/pops/merge_strategy_spec.rb +18 -0
  298. data/spec/unit/pops/parser/lexer2_spec.rb +16 -1
  299. data/spec/unit/pops/parser/parse_site_spec.rb +4 -0
  300. data/spec/unit/pops/serialization/packer_spec.rb +4 -23
  301. data/spec/unit/pops/serialization/serialization_spec.rb +32 -8
  302. data/spec/unit/pops/types/p_object_type_spec.rb +68 -3
  303. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +4 -4
  304. data/spec/unit/pops/types/p_type_set_type_spec.rb +31 -2
  305. data/spec/unit/pops/types/type_acceptor_spec.rb +18 -17
  306. data/spec/unit/pops/types/type_calculator_spec.rb +39 -40
  307. data/spec/unit/pops/types/type_factory_spec.rb +3 -3
  308. data/spec/unit/pops/types/type_formatter_spec.rb +7 -3
  309. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +13 -2
  310. data/spec/unit/pops/types/types_spec.rb +25 -2
  311. data/spec/unit/pops/validator/validator_spec.rb +60 -4
  312. data/spec/unit/provider/nameservice_spec.rb +42 -0
  313. data/spec/unit/provider/package/aptrpm_spec.rb +1 -1
  314. data/spec/unit/provider/package/pkg_spec.rb +22 -0
  315. data/spec/unit/provider/package/pkgng_spec.rb +12 -0
  316. data/spec/unit/provider/package/rpm_spec.rb +8 -8
  317. data/spec/unit/provider/service/smf_spec.rb +13 -11
  318. data/spec/unit/provider/service/systemd_spec.rb +8 -1
  319. data/spec/unit/provider/user/useradd_spec.rb +1 -0
  320. data/spec/unit/puppet_spec.rb +14 -0
  321. data/spec/unit/resource/catalog_spec.rb +15 -9
  322. data/spec/unit/resource_spec.rb +20 -17
  323. data/spec/unit/semver_spec.rb +14 -0
  324. data/spec/unit/ssl/certificate_authority_spec.rb +12 -1
  325. data/spec/unit/transaction/additional_resource_generator_spec.rb +11 -0
  326. data/spec/unit/type/user_spec.rb +32 -6
  327. data/spec/unit/util/filetype_spec.rb +3 -3
  328. data/spec/unit/util/yaml_spec.rb +1 -1
  329. data/spec/unit/util_spec.rb +10 -2
  330. data/tasks/i18n.rake +20 -0
  331. metadata +2661 -2607
  332. data/lib/puppet/data_providers/lookup_adapter.rb +0 -254
  333. data/lib/puppet/vendor/load_semantic.rb +0 -1
  334. data/lib/puppet/vendor/semantic/Gemfile +0 -20
  335. data/lib/puppet/vendor/semantic/PUPPET_README.md +0 -6
  336. data/lib/puppet/vendor/semantic/Rakefile +0 -69
  337. data/lib/puppet/vendor/semantic/lib/semantic.rb +0 -7
  338. data/lib/puppet/vendor/semantic/lib/semantic/dependency/module_release.rb +0 -60
  339. data/lib/puppet/vendor/semantic/spec/spec_helper.rb +0 -24
  340. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_node_spec.rb +0 -141
  341. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_spec.rb +0 -162
  342. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/module_release_spec.rb +0 -143
  343. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/source_spec.rb +0 -5
  344. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/unsatisfiable_graph_spec.rb +0 -44
  345. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency_spec.rb +0 -383
  346. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_range_spec.rb +0 -307
  347. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_spec.rb +0 -608
  348. data/spec/fixtures/unit/data_providers/environments/sample/manifests/site.pp +0 -6
@@ -22,6 +22,12 @@ class Puppet::Settings::FileOrDirectorySetting < Puppet::Settings::FileSetting
22
22
  end
23
23
 
24
24
  # @api private
25
+ #
26
+ # @param option [String] Extra file operation mode information to use
27
+ # (defaults to read-only mode 'r')
28
+ # This is the standard mechanism Ruby uses in the IO class, and therefore
29
+ # encoding may be explicitly like fmode : encoding or fmode : "BOM|UTF-*"
30
+ # for example, a:ASCII or w+:UTF-8
25
31
  def open_file(filename, option = 'r', &block)
26
32
  if type == :file
27
33
  super
@@ -185,6 +185,11 @@ class Puppet::Settings::FileSetting < Puppet::Settings::StringSetting
185
185
  end
186
186
 
187
187
  # @api private
188
+ # @param option [String] Extra file operation mode information to use
189
+ # (defaults to read-only mode 'r')
190
+ # This is the standard mechanism Ruby uses in the IO class, and therefore
191
+ # encoding may be explicitly like fmode : encoding or fmode : "BOM|UTF-*"
192
+ # for example, a:ASCII or w+:UTF-8
188
193
  def exclusive_open(option = 'r', &block)
189
194
  controlled_access do |mode|
190
195
  Puppet::FileSystem.exclusive_open(file(), mode, option, &block)
@@ -192,6 +197,11 @@ class Puppet::Settings::FileSetting < Puppet::Settings::StringSetting
192
197
  end
193
198
 
194
199
  # @api private
200
+ # @param option [String] Extra file operation mode information to use
201
+ # (defaults to read-only mode 'r')
202
+ # This is the standard mechanism Ruby uses in the IO class, and therefore
203
+ # encoding may be explicitly like fmode : encoding or fmode : "BOM|UTF-*"
204
+ # for example, a:ASCII or w+:UTF-8
195
205
  def open(option = 'r', &block)
196
206
  controlled_access do |mode|
197
207
  Puppet::FileSystem.open(file, mode, option, &block)
@@ -189,7 +189,7 @@ class Puppet::SSL::CertificateAuthority
189
189
  #
190
190
  # @return [Array<String>]
191
191
  def list(name='*')
192
- list_certificates(name).collect { |c| c.name }
192
+ Puppet::SSL::Certificate.indirection.search(name).collect { |c| c.name }
193
193
  end
194
194
 
195
195
  # Return all the certificate objects as found by the indirector
@@ -205,7 +205,10 @@ class Puppet::SSL::CertificateAuthority
205
205
  # @param name [Array<string>] filter to cerificate names
206
206
  #
207
207
  # @return [Array<Puppet::SSL::Certificate>]
208
+ #
209
+ # @deprecated Use Puppet::SSL::CertificateAuthority#list or Puppet Server Certificate status API
208
210
  def list_certificates(name='*')
211
+ Puppet.deprecation_warning("Puppet::SSL::CertificateAuthority#list_certificates is deprecated. Please use Puppet::SSL::CertificateAuthority#list or the certificate status API to query certificate information. See https://docs.puppet.com/puppet/latest/http_api/http_certificate_status.html")
209
212
  Puppet::SSL::Certificate.indirection.search(name)
210
213
  end
211
214
 
@@ -417,6 +420,11 @@ class Puppet::SSL::CertificateAuthority
417
420
  # of the X509 Store
418
421
  #
419
422
  # @return [OpenSSL::X509::Store]
423
+ #
424
+ # @deprecated Strictly speaking, #x509_store is marked API private, so we
425
+ # don't need to publicly deprecate it. But it marked as deprecated here to
426
+ # avoid the exceedingly small chance that someone comes in and uses it from
427
+ # within this class before it is removed.
420
428
  def x509_store(options = {})
421
429
  if (options[:cache])
422
430
  return @x509store unless @x509store.nil?
@@ -464,7 +472,10 @@ class Puppet::SSL::CertificateAuthority
464
472
  # @param cert [Puppet::SSL::Certificate] the certificate to check validity of
465
473
  #
466
474
  # @return [Boolean] true if signed, false if unsigned or revoked
475
+ #
476
+ # @deprecated use Puppet::SSL::CertificateAuthority#verify or Puppet Server certificate status API
467
477
  def certificate_is_alive?(cert)
478
+ Puppet.deprecation_warning("Puppet::SSL::CertificateAuthority#certificate_is_alive? is deprecated. Please use Puppet::SSL::CertificateAuthority#verify or the certificate status API to query certificate information. See https://docs.puppet.com/puppet/latest/http_api/http_certificate_status.html")
468
479
  x509_store(:cache => true).verify(cert.content)
469
480
  end
470
481
 
@@ -483,7 +494,7 @@ class Puppet::SSL::CertificateAuthority
483
494
  unless cert = Puppet::SSL::Certificate.indirection.find(name)
484
495
  raise ArgumentError, "Could not find a certificate for #{name}"
485
496
  end
486
- store = x509_store
497
+ store = create_x509_store
487
498
 
488
499
  raise CertificateVerificationError.new(store.error), store.error_string unless store.verify(cert.content)
489
500
  end
@@ -227,7 +227,29 @@ ERROR_STRING
227
227
  # Generate all necessary parts of our ssl host.
228
228
  def generate
229
229
  generate_key unless key
230
- generate_certificate_request unless certificate_request
230
+ # ask indirector to find any existing requests and download them
231
+ existing_request = certificate_request
232
+
233
+ # if CSR downloaded from master, but the local keypair was just generated and
234
+ # does not match the public key in the CSR, fail hard
235
+ if !existing_request.nil? &&
236
+ (key.content.public_key.to_s != existing_request.content.public_key.to_s)
237
+
238
+ raise Puppet::Error, <<ERROR_STRING
239
+ The CSR retrieved from the master does not match the agent's public key.
240
+ CSR fingerprint: #{existing_request.fingerprint}
241
+ CSR public key: #{existing_request.content.public_key.to_text}
242
+ Agent public key: #{key.content.public_key.to_text}
243
+ To fix this, remove the CSR from both the master and the agent and then start a puppet run, which will automatically regenerate a CSR.
244
+ On the master:
245
+ puppet cert clean #{Puppet[:certname]}
246
+ On the agent:
247
+ 1a. On most platforms: find #{Puppet[:ssldir]} -name #{Puppet[:certname]}.pem -delete
248
+ 1b. On Windows: del "#{Puppet[:certdir].gsub('/', '\\')}\\#{Puppet[:certname]}.pem" /f
249
+ 2. puppet agent -t
250
+ ERROR_STRING
251
+ end
252
+ generate_certificate_request unless existing_request
231
253
 
232
254
  # If we can get a CA instance, then we're a valid CA, and we
233
255
  # should use it to sign our request; else, just try to read
@@ -79,6 +79,13 @@ class Puppet::Transaction::AdditionalResourceGenerator
79
79
 
80
80
  def contain_generated_resources_in(resource, made)
81
81
  sentinel = Puppet::Type.type(:whit).new(:name => "completed_#{resource.title}", :catalog => resource.catalog)
82
+ # Tag the completed whit with all of the tags of the generating resource
83
+ # except the type name to allow event propogation to succeed beyond the whit
84
+ # "boundary" when filtering resources with tags. We include auto-generated
85
+ # tags such as the type name to support implicit filtering as well as
86
+ # explicit. Note that resource#tags returns a duplicate of the resource's
87
+ # tags.
88
+ sentinel.tag(*resource.tags)
82
89
  priority = @prioritizer.generate_priority_contained_in(resource, sentinel)
83
90
  @relationship_graph.add_vertex(sentinel, priority)
84
91
 
@@ -171,10 +171,23 @@ module Puppet
171
171
 
172
172
  newproperty(:comment) do
173
173
  desc "A description of the user. Generally the user's full name."
174
- if RUBY_VERSION < "2.1.0"
175
- munge do |v|
176
- v.respond_to?(:force_encoding) ? v.force_encoding(Encoding::ASCII_8BIT) : v
174
+ def insync?(is)
175
+ # nameservice provider requires special attention to encoding
176
+ # Overrides Puppet::Property#insync?
177
+ if !@should.empty? && provider.respond_to?(:comments_insync?)
178
+ return provider.comments_insync?(is, @should)
179
+ end
180
+ super(is)
181
+ end
182
+
183
+ # In the case that our comments have incompatible encodings, set external
184
+ # encoding to support concatenation for display.
185
+ # overrides Puppet::Property#change_to_s
186
+ def change_to_s(currentvalue, newvalue)
187
+ if newvalue.respond_to?(:force_encoding) && !Encoding.compatible?(currentvalue, newvalue)
188
+ return super(currentvalue, newvalue.dup.force_encoding(currentvalue.encoding))
177
189
  end
190
+ super(currentvalue, newvalue)
178
191
  end
179
192
  end
180
193
 
@@ -450,6 +450,7 @@ module Util
450
450
 
451
451
  begin
452
452
  file = Puppet::FileSystem.pathname(file)
453
+ # encoding for Uniquefile is not important here because the caller writes to it as it sees fit
453
454
  tempfile = Puppet::FileSystem::Uniquefile.new(Puppet::FileSystem.basename_string(file), Puppet::FileSystem.dir_string(file))
454
455
 
455
456
  # Set properties of the temporary file before we write the content, because
@@ -184,9 +184,9 @@ module Puppet::Util::Execution
184
184
  null_file = Puppet.features.microsoft_windows? ? 'NUL' : '/dev/null'
185
185
 
186
186
  begin
187
- stdin = File.open(options[:stdinfile] || null_file, 'r')
188
- stdout = options[:squelch] ? File.open(null_file, 'w') : Puppet::FileSystem::Uniquefile.new('puppet')
189
- stderr = options[:combine] ? stdout : File.open(null_file, 'w')
187
+ stdin = Puppet::FileSystem.open(options[:stdinfile] || null_file, nil, 'r')
188
+ stdout = options[:squelch] ? Puppet::FileSystem.open(null_file, nil, 'w') : Puppet::FileSystem::Uniquefile.new('puppet')
189
+ stderr = options[:combine] ? stdout : Puppet::FileSystem.open(null_file, nil, 'w')
190
190
 
191
191
  exec_args = [command, options, stdin, stdout, stderr]
192
192
 
@@ -105,7 +105,9 @@ class Puppet::Util::FileType
105
105
  # Read the file.
106
106
  def read
107
107
  if Puppet::FileSystem.exist?(@path)
108
- File.read(@path)
108
+ # this code path is used by many callers so the original default is
109
+ # being explicitly preserved
110
+ Puppet::FileSystem.read(@path, :encoding => Encoding.default_external)
109
111
  else
110
112
  return nil
111
113
  end
@@ -118,7 +120,8 @@ class Puppet::Util::FileType
118
120
 
119
121
  # Overwrite the file.
120
122
  def write(text)
121
- tf = Tempfile.new("puppet")
123
+ # this file is managed by the OS and should be using system encoding
124
+ tf = Tempfile.new("puppet", :encoding => Encoding.default_external)
122
125
  tf.print text; tf.flush
123
126
  File.chmod(@default_mode, tf.path) if @default_mode
124
127
  FileUtils.cp(tf.path, @path)
@@ -197,7 +200,8 @@ class Puppet::Util::FileType
197
200
  # Overwrite a specific @path's cron tab; must be passed the @path name
198
201
  # and the text with which to create the cron tab.
199
202
  def write(text)
200
- IO.popen("#{cmdbase()} -", "w") { |p|
203
+ # this file is managed by the OS and should be using system encoding
204
+ IO.popen("#{cmdbase()} -", "w", :encoding => Encoding.default_external) { |p|
201
205
  p.print text
202
206
  }
203
207
  end
@@ -242,7 +246,8 @@ class Puppet::Util::FileType
242
246
  # Overwrite a specific @path's cron tab; must be passed the @path name
243
247
  # and the text with which to create the cron tab.
244
248
  def write(text)
245
- output_file = Tempfile.new("puppet_suntab")
249
+ # this file is managed by the OS and should be using system encoding
250
+ output_file = Tempfile.new("puppet_suntab", :encoding => Encoding.default_external)
246
251
  begin
247
252
  output_file.print text
248
253
  output_file.close
@@ -284,7 +289,8 @@ class Puppet::Util::FileType
284
289
  # Overwrite a specific @path's cron tab; must be passed the @path name
285
290
  # and the text with which to create the cron tab.
286
291
  def write(text)
287
- output_file = Tempfile.new("puppet_aixtab")
292
+ # this file is managed by the OS and should be using system encoding
293
+ output_file = Tempfile.new("puppet_aixtab", :encoding => Encoding.default_external)
288
294
 
289
295
  begin
290
296
  output_file.print text
@@ -224,7 +224,8 @@ module Logging
224
224
  # find the same offender, and we'd end up logging it again.
225
225
  $logged_deprecation_warnings ||= {}
226
226
 
227
- File.open(deprecations_file, "a") do |f|
227
+ # Deprecation messages are UTF-8 as they are produced by Ruby
228
+ Puppet::FileSystem.open(deprecations_file, nil, "a:UTF-8") do |f|
228
229
  if ($deprecation_warnings) then
229
230
  $deprecation_warnings.each do |offender, message|
230
231
  if (! $logged_deprecation_warnings.has_key?(offender)) then
@@ -59,7 +59,7 @@ class Puppet::Util::NetworkDevice::Config
59
59
  device.options = { :debug => false }
60
60
  Puppet.debug "found device: #{device.name} at #{device.line}"
61
61
  devices[name] = device
62
- when /^\s*(type|url|debug)(\s+(.+))*$/
62
+ when /^\s*(type|url|debug)(\s+(.+)\s*)*$/
63
63
  parse_directive(device, $1, $3, count)
64
64
  else
65
65
  raise Puppet::Error, "Invalid line #{count}: #{line}"
@@ -78,6 +78,12 @@ module Puppet::Util::Plist
78
78
  # stubbing purposes
79
79
  #
80
80
  # @api private
81
+ #
82
+ # @param args [String] Extra file operation mode information to use
83
+ # (defaults to read-only mode 'r')
84
+ # This is the standard mechanism Ruby uses in the IO class, and therefore
85
+ # encoding may be explicitly like fmode : encoding or fmode : "BOM|UTF-*"
86
+ # for example, a:ASCII or w+:UTF-8
81
87
  def open_file_with_args(file, args)
82
88
  File.open(file, args).read
83
89
  end
@@ -42,7 +42,7 @@ class Puppet::Util::Profiler::Aggregate < Puppet::Util::Profiler::WallClock
42
42
  end
43
43
 
44
44
  def print_metrics(metrics_hash, prefix)
45
- metrics_hash.sort_by {|k,v| v.time }.reverse.each do |k,v|
45
+ metrics_hash.sort_by {|k,v| v.time }.reverse_each do |k,v|
46
46
  @logger.call("#{prefix}#{k}: #{v.time} s (#{v.count} calls)")
47
47
  print_metrics(metrics_hash[k], "#{prefix}#{k} -> ")
48
48
  end
@@ -225,7 +225,7 @@ module Generators
225
225
  'style_url' => style_url('', @options.css),
226
226
  }
227
227
 
228
- File.open(filename, "w") do |f|
228
+ Puppet::FileSystem.open(filename, nil, "w:UTF-8") do |f|
229
229
  template.write_html_on(f, values)
230
230
  end
231
231
  end
@@ -301,7 +301,7 @@ module Generators
301
301
  values["plugins"] = res4 if res4.size>0
302
302
  values["nodes"] = res5 if res5.size>0
303
303
 
304
- File.open(filename, "w") do |f|
304
+ Puppet::FileSystem.open(filename, nil, "w:UTF-8") do |f|
305
305
  template.write_html_on(f, values)
306
306
  end
307
307
  end
@@ -104,7 +104,8 @@ module RDoc::PuppetParserCore
104
104
  comment = ""
105
105
  %w{README README.rdoc}.each do |rfile|
106
106
  readme = File.join(File.dirname(File.dirname(@input_file_name)), rfile)
107
- comment = File.open(readme,"r") { |f| f.read } if FileTest.readable?(readme)
107
+ # module README should be UTF-8, not default system encoding
108
+ comment = File.open(readme,"r:UTF-8") { |f| f.read } if FileTest.readable?(readme)
108
109
  end
109
110
  look_for_directives_in(container, comment) unless comment.empty?
110
111
 
@@ -195,10 +195,9 @@ module Puppet::Util::Windows::ADSI
195
195
  end
196
196
 
197
197
  def [](attribute)
198
- value = native_user.Get(attribute)
199
- # Rubys WIN32OLE errantly converts UTF-16 values to Encoding.default_external
200
- return value.encode(Encoding::UTF_8) if value.is_a?(String)
201
- value
198
+ # Setting WIN32OLE.codepage in the microsoft_windows feature ensures
199
+ # values are returned as UTF-8
200
+ native_user.Get(attribute)
202
201
  end
203
202
 
204
203
  def []=(attribute, value)
@@ -248,8 +247,9 @@ module Puppet::Util::Windows::ADSI
248
247
  # https://msdn.microsoft.com/en-us/library/aa746342.aspx
249
248
  # WIN32OLE objects aren't enumerable, so no map
250
249
  groups = []
251
- # Rubys WIN32OLE errantly converts UTF-16 values to Encoding.default_external
252
- native_user.Groups.each {|g| groups << g.Name.encode(Encoding::UTF_8)} rescue nil
250
+ # Setting WIN32OLE.codepage in the microsoft_windows feature ensures
251
+ # values are returned as UTF-8
252
+ native_user.Groups.each {|g| groups << g.Name} rescue nil
253
253
  groups
254
254
  end
255
255
 
@@ -372,8 +372,9 @@ module Puppet::Util::Windows::ADSI
372
372
 
373
373
  users = []
374
374
  wql.each do |u|
375
- # Rubys WIN32OLE errantly converts UTF-16 values to Encoding.default_external
376
- users << new(u.name.encode(Encoding::UTF_8))
375
+ # Setting WIN32OLE.codepage in the microsoft_windows feature ensures
376
+ # values are returned as UTF-8
377
+ users << new(u.name)
377
378
  end
378
379
 
379
380
  users.each(&block)
@@ -465,8 +466,9 @@ module Puppet::Util::Windows::ADSI
465
466
  def members
466
467
  # WIN32OLE objects aren't enumerable, so no map
467
468
  members = []
468
- # Rubys WIN32OLE errantly converts UTF-16 values to Encoding.default_external
469
- native_group.Members.each {|m| members << m.Name.encode(Encoding::UTF_8)}
469
+ # Setting WIN32OLE.codepage in the microsoft_windows feature ensures
470
+ # values are returned as UTF-8
471
+ native_group.Members.each {|m| members << m.Name}
470
472
  members
471
473
  end
472
474
 
@@ -535,8 +537,9 @@ module Puppet::Util::Windows::ADSI
535
537
 
536
538
  groups = []
537
539
  wql.each do |g|
538
- # Rubys WIN32OLE errantly converts UTF-16 values to Encoding.default_external
539
- groups << new(g.name.encode(Encoding::UTF_8))
540
+ # Setting WIN32OLE.codepage in the microsoft_windows feature ensures
541
+ # values are returned as UTF-8
542
+ groups << new(g.name)
540
543
  end
541
544
 
542
545
  groups.each(&block)
@@ -0,0 +1 @@
1
+ $: << File.join([File.dirname(__FILE__), "semantic_puppet/lib"])
@@ -75,7 +75,8 @@ class PathSpec
75
75
 
76
76
  # Generate specs from a filename, such as a .gitignore
77
77
  def self.from_filename(filename, type=:git)
78
- self.from_lines(File.open(filename, 'r'))
78
+ # .gitignore is a UTF-8 file
79
+ self.from_lines(File.open(filename, 'r', :encoding => Encoding::UTF_8), type)
79
80
  end
80
81
 
81
82
  def self.from_lines(lines, type=:git)
@@ -1,7 +1,6 @@
1
1
  # This adds upfront requirements on vendored code found under lib/vendor/x
2
2
  # Add one requirement per vendored package (or a comment if it is loaded on demand).
3
3
 
4
- # The vendored library 'semantic' is loaded on demand.
5
4
  # The vendored library 'rgen' is loaded on demand.
6
5
  # The vendored library 'pathspec' is loaded on demand.
7
6
  # The vendored library 'deep_merge' is loaded on demand.
@@ -0,0 +1,17 @@
1
+ begin
2
+ require 'gettext-setup'
3
+ rescue LoadError
4
+ def _(msg)
5
+ msg
6
+ end
7
+ end
8
+
9
+ module SemanticPuppet
10
+ if defined?(GettextSetup)
11
+ GettextSetup.initialize(File.absolute_path('semantic_puppet/locales', File.dirname(__FILE__)))
12
+ end
13
+
14
+ autoload :Version, 'semantic_puppet/version'
15
+ autoload :VersionRange, 'semantic_puppet/version_range'
16
+ autoload :Dependency, 'semantic_puppet/dependency'
17
+ end
@@ -1,15 +1,15 @@
1
- require 'semantic'
1
+ require 'semantic_puppet'
2
2
 
3
- module Semantic
3
+ module SemanticPuppet
4
4
  module Dependency
5
5
  extend self
6
6
 
7
- autoload :Graph, 'semantic/dependency/graph'
8
- autoload :GraphNode, 'semantic/dependency/graph_node'
9
- autoload :ModuleRelease, 'semantic/dependency/module_release'
10
- autoload :Source, 'semantic/dependency/source'
7
+ autoload :Graph, 'semantic_puppet/dependency/graph'
8
+ autoload :GraphNode, 'semantic_puppet/dependency/graph_node'
9
+ autoload :ModuleRelease, 'semantic_puppet/dependency/module_release'
10
+ autoload :Source, 'semantic_puppet/dependency/source'
11
11
 
12
- autoload :UnsatisfiableGraph, 'semantic/dependency/unsatisfiable_graph'
12
+ autoload :UnsatisfiableGraph, 'semantic_puppet/dependency/unsatisfiable_graph'
13
13
 
14
14
  # @!group Sources
15
15
 
@@ -1,6 +1,6 @@
1
- require 'semantic/dependency'
1
+ require 'semantic_puppet/dependency'
2
2
 
3
- module Semantic
3
+ module SemanticPuppet
4
4
  module Dependency
5
5
  class Graph
6
6
  include GraphNode
@@ -1,7 +1,7 @@
1
- require 'semantic/dependency'
1
+ require 'semantic_puppet/dependency'
2
2
  require 'set'
3
3
 
4
- module Semantic
4
+ module SemanticPuppet
5
5
  module Dependency
6
6
  module GraphNode
7
7
  include Comparable