puppet 2.7.19 → 2.7.20.rc1

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 (324) hide show
  1. data/CONTRIBUTING.md +61 -238
  2. data/Gemfile +32 -0
  3. data/Gemfile.lock +44 -0
  4. data/LICENSE +1 -1
  5. data/README_DEVELOPER.md +300 -5
  6. data/Rakefile +41 -37
  7. data/ext/build_defaults.yaml +20 -0
  8. data/ext/debian/README.Debian +8 -0
  9. data/ext/debian/README.source +2 -0
  10. data/ext/debian/TODO.Debian +1 -0
  11. data/ext/debian/changelog.erb +1104 -0
  12. data/ext/debian/compat +1 -0
  13. data/ext/debian/control +142 -0
  14. data/ext/debian/copyright +361 -0
  15. data/ext/debian/docs +1 -0
  16. data/ext/debian/fileserver.conf +17 -0
  17. data/ext/debian/puppet-common.dirs +8 -0
  18. data/ext/debian/puppet-common.install +3 -0
  19. data/ext/debian/puppet-common.lintian-overrides +7 -0
  20. data/ext/debian/puppet-common.manpages +2 -0
  21. data/ext/debian/puppet-common.postinst +35 -0
  22. data/ext/debian/puppet-common.postrm +32 -0
  23. data/ext/debian/puppet-el.dirs +1 -0
  24. data/ext/debian/puppet-el.emacsen-install +25 -0
  25. data/ext/debian/puppet-el.emacsen-remove +11 -0
  26. data/ext/debian/puppet-el.emacsen-startup +9 -0
  27. data/ext/debian/puppet-el.install +1 -0
  28. data/ext/debian/puppet-testsuite.install +3 -0
  29. data/ext/debian/puppet-testsuite.lintian-overrides +4 -0
  30. data/ext/debian/puppet.NEWS +86 -0
  31. data/ext/debian/puppet.conf +14 -0
  32. data/ext/debian/puppet.default +7 -0
  33. data/ext/debian/puppet.dirs +1 -0
  34. data/ext/debian/puppet.init +118 -0
  35. data/ext/debian/puppet.install +4 -0
  36. data/ext/debian/puppet.lintian-overrides +3 -0
  37. data/ext/debian/puppet.logrotate +11 -0
  38. data/ext/debian/puppet.manpages +36 -0
  39. data/ext/debian/puppet.postinst +20 -0
  40. data/ext/debian/puppet.postrm +20 -0
  41. data/ext/debian/puppet.preinst +20 -0
  42. data/ext/debian/puppetmaster-common.install +5 -0
  43. data/ext/debian/puppetmaster-common.manpages +5 -0
  44. data/ext/debian/puppetmaster-common.puppetqd.default +27 -0
  45. data/ext/debian/puppetmaster-common.puppetqd.init +84 -0
  46. data/ext/debian/puppetmaster-passenger.dirs +4 -0
  47. data/ext/debian/puppetmaster-passenger.postinst +66 -0
  48. data/ext/debian/puppetmaster-passenger.postrm +33 -0
  49. data/ext/debian/puppetmaster.NEWS +13 -0
  50. data/ext/debian/puppetmaster.README.debian +16 -0
  51. data/ext/debian/puppetmaster.default +38 -0
  52. data/ext/debian/puppetmaster.dirs +1 -0
  53. data/ext/debian/puppetmaster.init +158 -0
  54. data/ext/debian/puppetmaster.install +1 -0
  55. data/ext/debian/puppetmaster.lintian-overrides +3 -0
  56. data/ext/debian/puppetmaster.manpages +1 -0
  57. data/ext/debian/puppetmaster.postinst +20 -0
  58. data/ext/debian/puppetmaster.postrm +5 -0
  59. data/ext/debian/puppetmaster.preinst +22 -0
  60. data/ext/debian/rules +127 -0
  61. data/ext/debian/source/format +1 -0
  62. data/ext/debian/source/options +1 -0
  63. data/ext/debian/vim-puppet.README.Debian +13 -0
  64. data/ext/debian/vim-puppet.dirs +3 -0
  65. data/ext/debian/vim-puppet.yaml +5 -0
  66. data/ext/debian/watch +2 -0
  67. data/ext/emacs/puppet-mode.el +1 -0
  68. data/{conf → ext}/osx/PackageInfo.plist +0 -0
  69. data/{conf → ext}/osx/createpackage.sh +0 -0
  70. data/ext/osx/file_mapping.yaml +38 -0
  71. data/ext/osx/preflight.erb +37 -0
  72. data/{tasks/rake/templates → ext/osx}/prototype.plist.erb +0 -0
  73. data/ext/packaging/README-Solaris.md +117 -0
  74. data/ext/packaging/README.md +255 -0
  75. data/ext/packaging/spec/spec_helper.rb +12 -0
  76. data/ext/packaging/spec/tasks/00_utils_spec.rb +66 -0
  77. data/ext/packaging/tasks/00_utils.rake +382 -0
  78. data/ext/packaging/tasks/10_setupvars.rake +71 -0
  79. data/ext/packaging/tasks/20_setupextravars.rake +25 -0
  80. data/ext/packaging/tasks/apple.rake +201 -0
  81. data/ext/packaging/tasks/clean.rake +5 -0
  82. data/ext/packaging/tasks/deb.rake +108 -0
  83. data/ext/packaging/tasks/doc.rake +20 -0
  84. data/ext/packaging/tasks/fetch.rake +18 -0
  85. data/ext/packaging/tasks/gem.rake +68 -0
  86. data/ext/packaging/tasks/ips.rake +80 -0
  87. data/ext/packaging/tasks/mock.rake +126 -0
  88. data/ext/packaging/tasks/pe_deb.rake +9 -0
  89. data/ext/packaging/tasks/pe_remote.rake +45 -0
  90. data/ext/packaging/tasks/pe_rpm.rake +21 -0
  91. data/ext/packaging/tasks/pe_ship.rake +30 -0
  92. data/ext/packaging/tasks/pe_sign.rake +27 -0
  93. data/ext/packaging/tasks/pe_sles.rake +96 -0
  94. data/ext/packaging/tasks/release.rake +73 -0
  95. data/ext/packaging/tasks/remote_build.rake +78 -0
  96. data/ext/packaging/tasks/rpm.rake +52 -0
  97. data/ext/packaging/tasks/ship.rake +78 -0
  98. data/ext/packaging/tasks/sign.rake +82 -0
  99. data/ext/packaging/tasks/tag.rake +8 -0
  100. data/ext/packaging/tasks/tar.rake +68 -0
  101. data/ext/packaging/tasks/template.rake +13 -0
  102. data/ext/packaging/tasks/update.rake +16 -0
  103. data/ext/packaging/tasks/version.rake +21 -0
  104. data/ext/project_data.yaml +24 -0
  105. data/{conf/redhat/puppet.spec → ext/redhat/puppet.spec.erb} +18 -10
  106. data/install.rb +8 -8
  107. data/lib/puppet.rb +2 -6
  108. data/lib/puppet/agent/locker.rb +2 -0
  109. data/lib/puppet/application.rb +1 -1
  110. data/lib/puppet/application/agent.rb +1 -1
  111. data/lib/puppet/application/apply.rb +1 -1
  112. data/lib/puppet/application/cert.rb +5 -6
  113. data/lib/puppet/application/describe.rb +1 -1
  114. data/lib/puppet/application/device.rb +1 -1
  115. data/lib/puppet/application/doc.rb +1 -1
  116. data/lib/puppet/application/filebucket.rb +1 -1
  117. data/lib/puppet/application/inspect.rb +1 -1
  118. data/lib/puppet/application/kick.rb +1 -1
  119. data/lib/puppet/application/master.rb +1 -1
  120. data/lib/puppet/application/resource.rb +1 -1
  121. data/lib/puppet/defaults.rb +21 -3
  122. data/lib/puppet/external/dot.rb +1 -1
  123. data/lib/puppet/face/help/global.erb +1 -1
  124. data/lib/puppet/face/module/install.rb +1 -1
  125. data/lib/puppet/face/module/list.rb +1 -1
  126. data/lib/puppet/face/module/uninstall.rb +1 -1
  127. data/lib/puppet/face/node/clean.rb +23 -18
  128. data/lib/puppet/face/parser.rb +11 -2
  129. data/lib/puppet/file_collection.rb +16 -27
  130. data/lib/puppet/file_collection/lookup.rb +6 -16
  131. data/lib/puppet/file_serving/base.rb +4 -4
  132. data/lib/puppet/indirector/catalog/static_compiler.rb +3 -4
  133. data/lib/puppet/indirector/certificate/disabled_ca.rb +22 -0
  134. data/lib/puppet/indirector/certificate_request/disabled_ca.rb +22 -0
  135. data/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +22 -0
  136. data/lib/puppet/indirector/face.rb +2 -2
  137. data/lib/puppet/indirector/key/disabled_ca.rb +22 -0
  138. data/lib/puppet/indirector/node/exec.rb +13 -1
  139. data/lib/puppet/indirector/request.rb +4 -0
  140. data/lib/puppet/metatype/manager.rb +17 -10
  141. data/lib/puppet/network/authstore.rb +1 -1
  142. data/lib/puppet/network/rights.rb +1 -2
  143. data/lib/puppet/node/environment.rb +1 -0
  144. data/lib/puppet/parameter/value.rb +9 -3
  145. data/lib/puppet/parser/ast.rb +1 -4
  146. data/lib/puppet/parser/files.rb +1 -1
  147. data/lib/puppet/parser/functions.rb +68 -22
  148. data/lib/puppet/parser/functions/create_resources.rb +2 -3
  149. data/lib/puppet/parser/functions/shellquote.rb +21 -25
  150. data/lib/puppet/parser/lexer.rb +40 -6
  151. data/lib/puppet/parser/relationship.rb +3 -1
  152. data/lib/puppet/parser/resource.rb +2 -3
  153. data/lib/puppet/parser/resource/param.rb +3 -5
  154. data/lib/puppet/parser/scope.rb +7 -4
  155. data/lib/puppet/property.rb +5 -3
  156. data/lib/puppet/provider.rb +5 -5
  157. data/lib/puppet/provider/aixobject.rb +1 -1
  158. data/lib/puppet/provider/augeas/augeas.rb +1 -1
  159. data/lib/puppet/provider/exec/windows.rb +1 -1
  160. data/lib/puppet/provider/file/windows.rb +10 -29
  161. data/lib/puppet/provider/group/groupadd.rb +2 -3
  162. data/lib/puppet/provider/group/ldap.rb +1 -1
  163. data/lib/puppet/provider/group/windows_adsi.rb +1 -1
  164. data/lib/puppet/provider/ldap.rb +5 -1
  165. data/lib/puppet/provider/nameservice.rb +3 -3
  166. data/lib/puppet/provider/nameservice/directoryservice.rb +2 -2
  167. data/lib/puppet/provider/package/gem.rb +6 -2
  168. data/lib/puppet/provider/package/portage.rb +4 -2
  169. data/lib/puppet/provider/parsedfile.rb +1 -1
  170. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +2 -2
  171. data/lib/puppet/provider/service/base.rb +2 -41
  172. data/lib/puppet/provider/service/daemontools.rb +1 -1
  173. data/lib/puppet/provider/service/launchd.rb +1 -1
  174. data/lib/puppet/provider/service/redhat.rb +6 -5
  175. data/lib/puppet/provider/service/runit.rb +1 -1
  176. data/lib/puppet/provider/service/service.rb +43 -0
  177. data/lib/puppet/provider/service/windows.rb +1 -8
  178. data/lib/puppet/provider/user/user_role_add.rb +2 -1
  179. data/lib/puppet/provider/user/useradd.rb +8 -3
  180. data/lib/puppet/provider/user/windows_adsi.rb +12 -1
  181. data/lib/puppet/provider/zone/solaris.rb +1 -1
  182. data/lib/puppet/rails/inventory_node.rb +26 -13
  183. data/lib/puppet/reports.rb +1 -1
  184. data/lib/puppet/resource.rb +20 -5
  185. data/lib/puppet/resource/status.rb +1 -1
  186. data/lib/puppet/ssl/certificate_authority.rb +2 -0
  187. data/lib/puppet/ssl/host.rb +31 -6
  188. data/lib/puppet/test/test_helper.rb +3 -1
  189. data/lib/puppet/transaction/event.rb +1 -1
  190. data/lib/puppet/transaction/report.rb +2 -2
  191. data/lib/puppet/type.rb +30 -25
  192. data/lib/puppet/type/augeas.rb +1 -1
  193. data/lib/puppet/type/cron.rb +2 -2
  194. data/lib/puppet/type/exec.rb +6 -6
  195. data/lib/puppet/type/file.rb +5 -15
  196. data/lib/puppet/type/file/content.rb +1 -1
  197. data/lib/puppet/type/file/ensure.rb +1 -1
  198. data/lib/puppet/type/file/mode.rb +1 -1
  199. data/lib/puppet/type/file/selcontext.rb +6 -2
  200. data/lib/puppet/type/file/source.rb +1 -1
  201. data/lib/puppet/type/mount.rb +1 -1
  202. data/lib/puppet/type/package.rb +1 -1
  203. data/lib/puppet/type/schedule.rb +1 -1
  204. data/lib/puppet/type/scheduled_task.rb +1 -1
  205. data/lib/puppet/type/tidy.rb +1 -1
  206. data/lib/puppet/type/whit.rb +16 -9
  207. data/lib/puppet/util.rb +27 -11
  208. data/lib/puppet/util/adsi.rb +25 -23
  209. data/lib/puppet/util/autoload.rb +1 -1
  210. data/lib/puppet/util/classgen.rb +1 -1
  211. data/lib/puppet/util/feature.rb +3 -1
  212. data/lib/puppet/util/fileparsing.rb +9 -9
  213. data/lib/puppet/util/filetype.rb +55 -40
  214. data/lib/puppet/util/instance_loader.rb +5 -5
  215. data/lib/puppet/util/instrumentation.rb +3 -5
  216. data/lib/puppet/util/log_paths.rb +1 -3
  217. data/lib/puppet/util/monkey_patches.rb +34 -8
  218. data/lib/puppet/util/platform.rb +7 -0
  219. data/lib/puppet/util/posix.rb +3 -3
  220. data/lib/puppet/util/provider_features.rb +2 -3
  221. data/lib/puppet/util/rdoc.rb +4 -3
  222. data/lib/puppet/util/reference.rb +1 -1
  223. data/lib/puppet/util/selinux.rb +31 -36
  224. data/lib/puppet/util/tagging.rb +28 -6
  225. data/lib/puppet/util/windows.rb +1 -0
  226. data/lib/puppet/util/windows/error.rb +1 -1
  227. data/lib/puppet/util/windows/process.rb +3 -3
  228. data/lib/puppet/util/windows/security.rb +9 -46
  229. data/lib/puppet/util/windows/sid.rb +96 -0
  230. data/lib/puppet/util/windows/user.rb +65 -2
  231. data/lib/puppet/util/zaml.rb +109 -59
  232. data/lib/puppet/version.rb +18 -0
  233. data/spec/fixtures/unit/util/filetype/aixtab_output +44 -0
  234. data/spec/fixtures/unit/util/filetype/suntab_output +9 -0
  235. data/spec/integration/defaults_spec.rb +26 -7
  236. data/spec/integration/parser/functions_spec.rb +0 -4
  237. data/spec/integration/util/file_locking_spec.rb +1 -1
  238. data/spec/integration/util/windows/security_spec.rb +3 -23
  239. data/spec/lib/puppet_spec/files.rb +3 -3
  240. data/spec/shared_contexts/platform.rb +8 -0
  241. data/spec/spec_helper.rb +6 -1
  242. data/spec/unit/application/queue_spec.rb +2 -1
  243. data/spec/unit/configurer_spec.rb +1 -1
  244. data/spec/unit/face/{instrumentation_data.rb → instrumentation_data_spec.rb} +0 -0
  245. data/spec/unit/face/{instrumentation_listener.rb → instrumentation_listener_spec.rb} +0 -0
  246. data/spec/unit/face/{instrumentation_probe.rb → instrumentation_probe_spec.rb} +0 -0
  247. data/spec/unit/indirector/catalog/static_compiler_spec.rb +194 -0
  248. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +33 -0
  249. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +33 -0
  250. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +33 -0
  251. data/spec/unit/indirector/key/disabled_ca_spec.rb +33 -0
  252. data/spec/unit/indirector/request_spec.rb +22 -0
  253. data/spec/unit/network/http/webrick_spec.rb +0 -7
  254. data/spec/unit/node/environment_spec.rb +8 -8
  255. data/spec/unit/parser/ast_spec.rb +0 -5
  256. data/spec/unit/parser/collector_spec.rb +1 -0
  257. data/spec/unit/parser/files_spec.rb +2 -2
  258. data/spec/unit/parser/functions/create_resources_spec.rb +3 -4
  259. data/spec/unit/parser/functions/require_spec.rb +0 -6
  260. data/spec/unit/parser/functions/shellquote_spec.rb +0 -5
  261. data/spec/unit/parser/functions/template_spec.rb +6 -1
  262. data/spec/unit/parser/functions_spec.rb +73 -23
  263. data/spec/unit/parser/lexer_spec.rb +133 -8
  264. data/spec/unit/parser/relationship_spec.rb +24 -0
  265. data/spec/unit/parser/resource_spec.rb +0 -4
  266. data/spec/unit/parser/scope_spec.rb +2 -2
  267. data/spec/unit/property_spec.rb +21 -1
  268. data/spec/unit/provider/exec/posix_spec.rb +7 -6
  269. data/spec/unit/provider/file/windows_spec.rb +29 -29
  270. data/spec/unit/provider/group/groupadd_spec.rb +36 -30
  271. data/spec/unit/provider/group/windows_adsi_spec.rb +2 -2
  272. data/spec/unit/provider/package/gem_spec.rb +12 -0
  273. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +14 -11
  274. data/spec/unit/provider/service/redhat_spec.rb +11 -1
  275. data/spec/unit/provider/service/windows_spec.rb +19 -0
  276. data/spec/unit/provider/user/ldap_spec.rb +22 -8
  277. data/spec/unit/provider/user/user_role_add_spec.rb +12 -0
  278. data/spec/unit/provider/user/useradd_spec.rb +146 -118
  279. data/spec/unit/provider/user/windows_adsi_spec.rb +24 -2
  280. data/spec/unit/puppet_spec.rb +10 -0
  281. data/spec/unit/resource/status_spec.rb +1 -1
  282. data/spec/unit/resource_spec.rb +73 -0
  283. data/spec/unit/ssl/certificate_authority_spec.rb +25 -1
  284. data/spec/unit/ssl/host_spec.rb +73 -27
  285. data/spec/unit/ssl/key_spec.rb +0 -4
  286. data/spec/unit/transaction/event_spec.rb +1 -1
  287. data/spec/unit/type/exec_spec.rb +1 -1
  288. data/spec/unit/type/file/content_spec.rb +6 -4
  289. data/spec/unit/type/file/{ctime.rb → ctime_spec.rb} +0 -0
  290. data/spec/unit/type/file/{mtime.rb → mtime_spec.rb} +0 -0
  291. data/spec/unit/type/file/{type.rb → type_spec.rb} +0 -0
  292. data/spec/unit/type/file_spec.rb +2 -12
  293. data/spec/unit/type/host_spec.rb +14 -5
  294. data/spec/unit/type/mount_spec.rb +8 -0
  295. data/spec/unit/type/scheduled_task_spec.rb +2 -2
  296. data/spec/unit/util/adsi_spec.rb +23 -8
  297. data/spec/unit/util/command_line_spec.rb +11 -2
  298. data/spec/unit/util/feature_spec.rb +12 -1
  299. data/spec/unit/util/filetype_spec.rb +161 -55
  300. data/spec/unit/util/log_spec.rb +1 -1
  301. data/spec/unit/util/monkey_patches_spec.rb +7 -0
  302. data/spec/unit/util/rdoc_spec.rb +8 -2
  303. data/spec/unit/util/selinux_spec.rb +24 -32
  304. data/spec/unit/util/windows/sid_spec.rb +100 -0
  305. data/spec/unit/util/zaml_spec.rb +165 -25
  306. data/spec/unit/util_spec.rb +3 -9
  307. data/spec/watchr.rb +2 -6
  308. data/tasks/rake/gem.rake +4 -2
  309. data/tasks/rake/sign.rake +1 -1
  310. data/test/language/parser.rb +1 -0
  311. data/test/language/scope.rb +0 -5
  312. data/test/language/snippets.rb +1 -2
  313. data/test/lib/puppettest.rb +16 -27
  314. data/test/lib/puppettest/parsertesting.rb +0 -1
  315. data/test/network/authstore.rb +2 -4
  316. data/test/puppet/defaults.rb +0 -4
  317. data/test/util/fileparsing.rb +2 -6
  318. metadata +1706 -1617
  319. data/conf/osx/preflight +0 -24
  320. data/spec/spec.opts +0 -4
  321. data/spec/unit/file_collection/lookup_spec.rb +0 -45
  322. data/spec/unit/file_collection_spec.rb +0 -52
  323. data/tasks/rake/apple.rake +0 -176
  324. data/test/puppet/errortest.rb +0 -19
@@ -0,0 +1 @@
1
+ debian/tmp/usr/sbin/puppetmasterd usr/sbin
@@ -0,0 +1,3 @@
1
+ # Man pages are automatically generated, not much to do here
2
+ puppetmaster binary: manpage-has-bad-whatis-entry
3
+ puppetmaster binary: manpage-has-errors-from-man
@@ -0,0 +1 @@
1
+ man/man8/puppetmasterd.8
@@ -0,0 +1,20 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ # Remove renamed configuration files which are now handled by other
6
+ # packages
7
+ if dpkg-maintscript-helper supports rm_conffile 2>/dev/null; then
8
+
9
+ dpkg-maintscript-helper rm_conffile \
10
+ /etc/logrotate.d/puppetmaster 2.7.16-1puppetlabs1 puppetmaster -- "$@"
11
+
12
+ # For systems with dpkg < 1.15.7-2
13
+ else
14
+
15
+ if [ -f /etc/logrotate.d/puppetmaster ]; then
16
+ rm /etc/logrotate.d/puppetmaster || true
17
+ fi
18
+ fi
19
+
20
+ #DEBHELPER#
@@ -0,0 +1,5 @@
1
+ #!/bin/sh -e
2
+
3
+ #DEBHELPER#
4
+
5
+ exit 0
@@ -0,0 +1,22 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ # Remove renamed configuration files which are now handled by other
6
+ # packages
7
+ if dpkg-maintscript-helper supports rm_conffile 2>/dev/null; then
8
+
9
+ dpkg-maintscript-helper rm_conffile \
10
+ /etc/logrotate.d/puppetmaster 2.7.16-1puppetlabs1 puppetmaster -- "$@"
11
+
12
+
13
+ # For systems with dpkg < 1.15.7-2
14
+ else
15
+
16
+ if [ -f /etc/logrotate.d/puppetmaster ]; then
17
+ rm /etc/logrotate.d/puppetmaster || true
18
+ fi
19
+ fi
20
+
21
+
22
+ #DEBHELPER#
@@ -0,0 +1,127 @@
1
+ #!/usr/bin/make -f
2
+ # -*- makefile -*-
3
+
4
+ # Uncomment this to turn on verbose mode.
5
+ #export DH_VERBOSE=1
6
+
7
+ INSTALL=install -Dp
8
+
9
+ prefix := $(CURDIR)/debian/tmp
10
+ bindir := $(prefix)/usr/bin
11
+ sbindir := $(prefix)/usr/sbin
12
+ libdir := $(prefix)/usr/lib
13
+ localstatedir := $(prefix)/var
14
+ rubylibdir := $(libdir)/ruby/1.8
15
+ sysconfdir := $(prefix)/etc
16
+ pkgconfdir := $(sysconfdir)/puppet
17
+
18
+ ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
19
+ CFLAGS += -O0
20
+ else
21
+ CFLAGS += -O2
22
+ endif
23
+
24
+ configure: configure-stamp
25
+ configure-stamp:
26
+ dh_testdir
27
+ touch configure-stamp
28
+
29
+
30
+ build-arch: build
31
+ build-indep: build
32
+
33
+ build: build-stamp
34
+ build-stamp: configure-stamp
35
+ dh_testdir
36
+ touch build-stamp
37
+
38
+ clean:
39
+ dh_testdir
40
+ dh_testroot
41
+ rm -f build-stamp configure-stamp
42
+ rm -f debian/puppet-common.logcheck.ignore.server
43
+ dh_clean
44
+
45
+ install: build
46
+ dh_testdir
47
+ dh_testroot
48
+ dh_clean -k
49
+ dh_installdirs
50
+
51
+ # Note sbindir does nothing right now. Leaving in for future
52
+ # puppet versions where it is respected.
53
+ $(CURDIR)/install.rb --destdir=debian/tmp --bindir=/usr/bin \
54
+ --sbindir=/usr/sbin --sitelibdir=/usr/lib/ruby/1.8
55
+
56
+ # strip executable bit from all the non-executable files.
57
+ find debian/tmp/usr/lib/ruby/1.8 -type f -perm /u+x,g+x,o+x -exec chmod a-x {} \;
58
+ # fix the permissions on all of the directories
59
+ find debian/tmp/usr/lib/ruby/1.8 -type d -exec chmod 755 {} \;
60
+
61
+ # Vim auto-syntax-highlighting stuff
62
+ $(INSTALL) -m0644 ext/vim/syntax/puppet.vim \
63
+ $(CURDIR)/debian/vim-puppet/usr/share/vim/addons/syntax/
64
+ $(INSTALL) -m0644 ext/vim/ftdetect/puppet.vim \
65
+ $(CURDIR)/debian/vim-puppet/usr/share/vim/addons/ftdetect/
66
+ $(INSTALL) -m0644 debian/vim-puppet.yaml \
67
+ $(CURDIR)/debian/vim-puppet/usr/share/vim/registry/
68
+
69
+ # Emacs mode
70
+ $(INSTALL) -m0644 ext/emacs/puppet-mode.el \
71
+ $(CURDIR)/debian/puppet-el/usr/share/emacs/site-lisp/puppet-mode.el
72
+
73
+ # Install the rack README as README.rack
74
+ $(INSTALL) -m0644 ext/rack/README \
75
+ $(CURDIR)/debian/puppetmaster-passenger/usr/share/doc/puppetmaster-passenger/README.rack
76
+ # Install the config.ru
77
+ $(INSTALL) -m0644 ext/rack/files/config.ru \
78
+ $(CURDIR)/debian/puppetmaster-passenger/usr/share/puppet/rack/puppetmasterd
79
+ # Install apache2 site configuration template
80
+ $(INSTALL) -m0644 ext/rack/files/apache2.conf \
81
+ $(CURDIR)/debian/puppetmaster-passenger/usr/share/puppetmaster-passenger/apache2.site.conf.tmpl
82
+
83
+ # Add ext directory
84
+ cp -pr ext $(CURDIR)/debian/puppet-common/usr/share/puppet
85
+ # Remove misc packaging artifacts
86
+ rm -rf $(CURDIR)/debian/puppet-common/usr/share/puppet/ext/redhat
87
+ rm -rf $(CURDIR)/debian/puppet-common/usr/share/puppet/ext/osx
88
+ rm -rf $(CURDIR)/debian/puppet-common/usr/share/puppet/ext/project_data.yaml
89
+ rm -rf $(CURDIR)/debian/puppet-common/usr/share/puppet/ext/build_defaults.yaml
90
+
91
+ dh_installexamples -p puppet-common examples/*
92
+
93
+ $(INSTALL) -d -m0775 $(pkgconfdir)/templates
94
+ $(INSTALL) -d -m0775 $(pkgconfdir)/modules
95
+
96
+ # Logcheck rules. Gee I wish you could specify a file to source
97
+ # in dh_installlogcheck.
98
+ ln ext/logcheck/puppet debian/puppet-common.logcheck.ignore.server
99
+
100
+ # Build architecture-dependent files here.
101
+ binary-arch: build install
102
+
103
+ # Build architecture-independent files here.
104
+ binary-indep: build install
105
+ dh_testdir
106
+ dh_testroot
107
+ dh_install -i
108
+ dh_installchangelogs -i CHANGELOG
109
+ dh_installdocs -i
110
+ dh_installemacsen
111
+ dh_installlogcheck
112
+ dh_installman
113
+ dh_installinit -ppuppetmaster
114
+ dh_installinit --name=puppetqd
115
+ dh_installinit -ppuppet --error-handler=true -- defaults 21
116
+ dh_installlogrotate -i
117
+ dh_lintian -i
118
+ dh_compress -i
119
+ dh_fixperms -i
120
+ dh_installdeb -i
121
+ dh_shlibdeps -i
122
+ dh_gencontrol -i
123
+ dh_md5sums -i
124
+ dh_builddeb -i
125
+
126
+ binary: binary-indep binary-arch
127
+ .PHONY: build clean binary-indep binary-arch binary install configure
@@ -0,0 +1 @@
1
+ 3.0 (quilt)
@@ -0,0 +1 @@
1
+ single-debian-patch
@@ -0,0 +1,13 @@
1
+ Dear user, this package provides the vim addon puppet, but it is not enabled
2
+ per default.
3
+
4
+ If you want to enable it for your user account just execute
5
+
6
+ vim-addons install puppet
7
+
8
+ Similarly, to enable it for all users of this system just execute (as root):
9
+
10
+ vim-addons -w install puppet
11
+
12
+ vim-addons is provided by the vim-addon-manager package, have a look at its
13
+ manpage for more information.
@@ -0,0 +1,3 @@
1
+ usr/share/vim/registry
2
+ usr/share/vim/addons/syntax
3
+ usr/share/vim/addons/ftdetect
@@ -0,0 +1,5 @@
1
+ addon: puppet
2
+ description: "Syntax highlighting for puppet"
3
+ files:
4
+ - ftdetect/puppet.vim
5
+ - syntax/puppet.vim
@@ -0,0 +1,2 @@
1
+ version=3
2
+ http://pkg-ruby-extras.alioth.debian.org/cgi-bin/gemwatch/puppet .*/puppet-(.*).tar.gz
@@ -333,6 +333,7 @@ The variable puppet-indent-level controls the amount of indentation.
333
333
  (setq mode-name "Puppet")
334
334
  (setq major-mode 'puppet-mode)
335
335
  (set-syntax-table puppet-mode-syntax-table)
336
+ (set (make-local-variable 'parse-sexp-ignore-comments) t)
336
337
  (set (make-local-variable 'local-abbrev-table) puppet-mode-abbrev-table)
337
338
  (set (make-local-variable 'comment-start) "# ")
338
339
  (set (make-local-variable 'comment-start-skip) "#+ *")
File without changes
File without changes
@@ -0,0 +1,38 @@
1
+ directories:
2
+ lib:
3
+ path: 'usr/lib/ruby/site_ruby/1.8'
4
+ owner: 'root'
5
+ group: 'wheel'
6
+ perms: '0644'
7
+ bin:
8
+ path: 'usr/bin'
9
+ owner: 'root'
10
+ group: 'wheel'
11
+ perms: '0755'
12
+ sbin:
13
+ path: 'usr/sbin'
14
+ owner: 'root'
15
+ group: 'wheel'
16
+ perms: '0755'
17
+ 'man/man8':
18
+ path: 'usr/share/man/man8'
19
+ owner: 'root'
20
+ group: 'wheel'
21
+ perms: '0755'
22
+ files:
23
+ 'conf/auth.conf':
24
+ path: 'private/etc/puppet'
25
+ owner: 'root'
26
+ group: 'wheel'
27
+ perms: '0644'
28
+ 'man/man5/puppet.conf.5':
29
+ path: 'usr/share/man/man5'
30
+ owner: 'root'
31
+ group: 'wheel'
32
+ perms: '0644'
33
+ '[A-Z]*':
34
+ path: 'usr/share/doc/puppet'
35
+ owner: 'root'
36
+ group: 'wheel'
37
+ perms: '0644'
38
+
@@ -0,0 +1,37 @@
1
+ #!/bin/bash
2
+ #
3
+ # Make sure that old puppet cruft is removed
4
+ # This also allows us to downgrade puppet as
5
+ # it's more likely that installing old versions
6
+ # over new will cause issues.
7
+ #
8
+ # ${3} is the destination volume so that this works correctly
9
+ # when being installed to volumes other than the current OS.
10
+
11
+ <% begin %>
12
+ <% require 'rubygems' %>
13
+ <% rescue LoadError %>
14
+ <% end %>
15
+ <% require 'rake' %>
16
+
17
+ <% Dir.chdir("lib") %>
18
+ <% FileList["**/*"].select {|i| File.file?(i)}.each do |file| %>
19
+ /bin/rm -Rf "${3}<%= @apple_libdir %>/<%=file%>"
20
+ <% end %>
21
+
22
+ <% Dir.chdir("../bin") %>
23
+ <% FileList["**/*"].select {|i| File.file?(i)}.each do |file| %>
24
+ /bin/rm -Rf "${3}<%= @apple_bindir %>/<%=file%>"
25
+ <% end %>
26
+ <% Dir.chdir("..") %>
27
+
28
+ # remove old doc files
29
+ /bin/rm -Rf "${3}<%= @apple_docdir %>/<%= @package_name %>"
30
+
31
+ # These files used to live in the sbindir but were
32
+ # removed in Pupppet >= 3.0. Remove them
33
+ /bin/rm -Rf "${3}<%= @apple_sbindir %>/puppetca"
34
+ /bin/rm -Rf "${3}<%= @apple_sbindir %>/puppetd"
35
+ /bin/rm -Rf "${3}<%= @apple_sbindir %>/puppetmasterd"
36
+ /bin/rm -Rf "${3}<%= @apple_sbindir %>/puppetqd"
37
+ /bin/rm -Rf "${3}<%= @apple_sbindir %>/puppetrun"
@@ -0,0 +1,117 @@
1
+ ## Create self signed certificate
2
+
3
+ - Generate the key pair
4
+
5
+ | keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 360 -keysize 2048
6
+
7
+
8
+ - Extract Certificate
9
+
10
+ | keytool -export -rfc -keystore keystore.jks -storepass password -alias selfsigned -file mycert.pem
11
+
12
+ - Extract Cert Key to PEM format
13
+
14
+ | keytool -importkeystore -srcstoretype JKS -srckeystore keystore.jks -deststoretype PKCS12 -destkeystore mykey.der
15
+ | openssl pkcs12 -in mykey.der -nodes -out mykey.pem
16
+
17
+ ## For installation.
18
+
19
+ - Check the publishers
20
+
21
+ | pkg publisher
22
+ solaris origin online http://pkg.oracle.com/solaris/release/
23
+
24
+ - Add puppetlabs.com as a publisher
25
+
26
+ | pkg set-publisher -p http://solaris-11-ips-repo.acctest.dc1.puppetlabs.net puppetlabs.com
27
+
28
+ - Check that we have it correct
29
+
30
+ | pkg publisher
31
+ solaris origin online http://pkg.oracle.com/solaris/release/
32
+ puppetlabs.com origin online http://solaris-11-ips-repo.acctest.dc1.puppetlabs.net/
33
+
34
+ - Verify that puppetlabs.com was set correctly,
35
+
36
+ | pkg publisher puppetlabs.com
37
+ Publisher: puppetlabs.com
38
+ Alias:
39
+ Origin URI: http://solaris-11-ips-repo.acctest.dc1.puppetlabs.net/
40
+ SSL Key: None
41
+ SSL Cert: None
42
+ Client UUID: 37084c4a-fdc6-11e1-832b-8800273bd610
43
+ Catalog Updated: September 13, 2012 08:31:25 PM
44
+ Enabled: Yes
45
+ Signature Policy: verify
46
+
47
+ - Try installing puppet
48
+
49
+ | pkg install puppet
50
+ Creating Plan |
51
+ pkg install: Chain was rooted in an untrusted self-signed certificate.
52
+ The package involved is:pkg://puppetlabs.com/system/management/puppet@3.0.0,5.11-6.192:20120913T212942Z
53
+
54
+ - We have two choices here, first, to ignore the signature policy for both publisher and image
55
+
56
+ | pkg set-publisher --set-property=signature-policy=ignore puppetlabs.com
57
+ | pkg publisher puppetlabs.com
58
+ Publisher: puppetlabs.com
59
+ Alias:
60
+ Origin URI: http://solaris-11-ips-repo.acctest.dc1.puppetlabs.net/
61
+ SSL Key: None
62
+ SSL Cert: None
63
+ Client UUID: 140bb5c8-fe62-11e1-af70-8800273bd610
64
+ Catalog Updated: September 14, 2012 05:11:45 PM
65
+ Enabled: Yes
66
+ Signature Policy: ignore
67
+ | pkg set-property signature-policy ignore
68
+ | pkg install puppet
69
+
70
+ - Or trust the self signed certificate from puppetlabs.com (this certificate needs to be published in our web site)
71
+
72
+ | pkg set-publisher --approve-ca-cert /root/mycert.pem puppetlabs.com
73
+
74
+ - Verify that approve cert went well.
75
+
76
+ | pkg publisher puppetlabs.com
77
+
78
+ Publisher: puppetlabs.com
79
+ Alias:
80
+ Origin URI: http://solaris-11-ips-repo.acctest.dc1.puppetlabs.net/
81
+ SSL Key: None
82
+ SSL Cert: None
83
+ Client UUID: 37084c4a-fdc6-11e1-832b-8800273bd610
84
+ Catalog Updated: September 13, 2012 08:31:25 PM
85
+ Approved CAs: 791b5791a81e9c2eb3fb9f84f4f86f8ea6fcd672
86
+ Enabled: Yes
87
+ Signature Policy: verify
88
+
89
+ | pkg install puppet
90
+
91
+ - Checking about information on the package (See the human readable version string)
92
+
93
+ | pkg info -r puppet
94
+ Name: system/management/puppet
95
+ Summary: Puppet, an automated configuration management tool
96
+ Description: Puppet, an automated configuration management tool
97
+ Category: System/Administration and Configuration
98
+ State: Not installed
99
+ Publisher: puppetlabs.com
100
+ Version: 3.0.0 (3.0.0-rc6)
101
+ Build Release: 5.11
102
+ Branch: 6.170
103
+ Packaging Date: September 14, 2012 06:11:05 PM
104
+ Size: 2.43 MB
105
+ FMRI: pkg://puppetlabs.com/system/management/puppet@3.0.0,5.11-6.170:20120914T181105Z
106
+
107
+ - Check license
108
+
109
+ | pkg info -r --license puppet
110
+ Puppet - Automating Configuration Management.
111
+
112
+ Copyright (C) 2005-2012 Puppet Labs Inc
113
+
114
+
115
+ - Reference
116
+
117
+ http://docs.oracle.com/cd/E19963-01/html/820-6572/managepkgs.html
@@ -0,0 +1,255 @@
1
+ #Packaging
2
+
3
+ This is a repository for packaging automation for Puppet Labs software.
4
+ The goal is to abstract and automate packaging processes beyond individual
5
+ software projects to a level where this repo can be cloned inside any project
6
+ and used to build Debian and Redhat packages, as well as gems, apple packages
7
+ and tarballs.
8
+
9
+ ##Using the Packaging Repo
10
+
11
+ Several Puppet Labs projects have been migrated to the packaging repo,
12
+ including puppet, facter, puppet-dashboard, and hiera. Generally speaking,
13
+ ruby 1.9.3 and rake 0.9.x seem to work best. To pull the packaging tasks into
14
+ your source repo, do a `rake package:bootstrap`. This will clone this repo
15
+ into the ext directory of the project and make many packaging tasks
16
+ available. The tasks are generally grouped into two categories, `package:`
17
+ namespaced tasks and `pl:` namespaced tasks.
18
+
19
+ `package:` namespaced tasks are general purpose tasks that are set up to use
20
+ the most minimal tool chain possible for creating packages. These tasks will
21
+ create rpms and debs, but any build dependencies will need to be satisifed by
22
+ the building host, and any dynamically generated dependencies may result in
23
+ packages that are only suitable for the OS/version of the build host. However,
24
+ for rolling one's own debs and rpms or for use in environments without many
25
+ OSes/versions, this may work just fine.
26
+
27
+ `pl:` namespaced tasks rely on a slighly more complex toolchain for packaging
28
+ inside clean chroot environments for the various operating systems and
29
+ versions that Puppet Labs supports. On the rpm side, this is done with
30
+ [mock](http://fedoraproject.org/wiki/Projects/Mock) and for debs, we use
31
+ pdebuild and [cowbuilder](http://wiki.debian.org/cowbuilder). For the most
32
+ part, these tasks are keyed to puppetlabs infrastructure, and are used by the
33
+ Release Engineering team to create release packages. However, they can
34
+ certainly be modified to suit other environments, and much effort went into
35
+ making tasks as modular and reusable as possible.
36
+
37
+ A puppet module,
38
+ [puppetlabs-debbuilder](https://github.com/puppetlabs/puppetlabs-debbuilder),
39
+ has been created to stand up a debian build host compatible with the debian
40
+ side this packaging repo. The rpm-side module,
41
+ [puppetlabs-rpmbuilder](https://github.com/puppetlabs/puppetlabs-rpmbuilder),
42
+ is currently a work in progress and.
43
+
44
+ To remove the packaging repo, remove the ext/packaging directory or run `rake
45
+ package:implode`.
46
+
47
+ ##Setting up projects for the Packaging Repo
48
+
49
+ The packaging repo requires many project-side artifacts inside the ext
50
+ directory at the top level. It expects the following directory structure in
51
+ the project
52
+
53
+ * ext/{debian,redhat,osx}
54
+
55
+ each of which contains templated erb files using the instance variables
56
+ specified in the setupvars task. These include a debian changelog, a redhat
57
+ spec file, and an osx preflight and plist.
58
+
59
+ The top level Rakefile in the project should have the following added:
60
+
61
+ ```ruby
62
+ Dir['ext/packaging/tasks/**/*.rake'].sort.each { |t| load t }
63
+
64
+ build_defs_file = 'ext/build_defaults.yaml'
65
+ if File.exist?(build_defs_file)
66
+ begin
67
+ require 'yaml'
68
+ @build_defaults ||= YAML.load_file(build_defs_file)
69
+ rescue Exception => e
70
+ STDERR.puts "Unable to load yaml from #{build_defs_file}:"
71
+ STDERR.puts e
72
+ end
73
+ @packaging_url = @build_defaults['packaging_url']
74
+ @packaging_repo = @build_defaults['packaging_repo']
75
+ raise "Could not find packaging url in #{build_defs_file}" if @packaging_url.nil?
76
+ raise "Could not find packaging repo in #{build_defs_file}" if @packaging_repo.nil?
77
+
78
+ namespace :package do
79
+ desc "Bootstrap packaging automation, e.g. clone into packaging repo"
80
+ task :bootstrap do
81
+ if File.exist?("ext/#{@packaging_repo}")
82
+ puts "It looks like you already have ext/#{@packaging_repo}. If you don't like it, blow it away with package:implode."
83
+ else
84
+ cd 'ext' do
85
+ %x{git clone #{@packaging_url}}
86
+ end
87
+ end
88
+ end
89
+ desc "Remove all cloned packaging automation"
90
+ task :implode do
91
+ rm_rf "ext/#{@packaging_repo}"
92
+ end
93
+ end
94
+ end
95
+ ```
96
+
97
+ Also in ext should be two files, build_defaults.yaml and project_data.yaml.
98
+
99
+ This is the sample build_defaults.yaml file from Hiera:
100
+ ```yaml
101
+ ---
102
+ packaging_url: 'git@github.com:puppetlabs/packaging --branch=master'
103
+ packaging_repo: 'packaging'
104
+ default_cow: 'base-squeeze-i386.cow'
105
+ cows: 'base-lucid-amd64.cow base-lucid-i386.cow base-natty-amd64.cow base-natty-i386.cow base-oneiric-amd64.cow base-oneiric-i386.cow base-precise-amd64.cow base-precise-i386.cow base-sid-amd64.cow base-sid-i386.cow base-squeeze-amd64.cow base-squeeze-i386.cow base-testing-amd64.cow base-testing-i386.cow base-wheezy-i386.cow'
106
+ pbuild_conf: '/etc/pbuilderrc'
107
+ packager: 'puppetlabs'
108
+ gpg_name: 'info@puppetlabs.com'
109
+ gpg_key: '4BD6EC30'
110
+ # Whether to require tarball signing as a prerequisite of other package building
111
+ sign_tar: FALSE
112
+ # a space separated list of mock configs, one set for final releases, another for devel
113
+ final_mocks: 'pl-5-i386 pl-5-x86_64 pl-6-i386 pl-6-x86_64 fedora-15-i386 fedora-15-x86_64 fedora-16-i386 fedora-16-x86_64 fedora-17-i386 fedora-17-x86_64'
114
+ rc_mocks: 'pl-5-i386-dev pl-5-x86_64-dev pl-6-i386-dev pl-6-x86_64-dev fedora-15-i386-dev fedora-15-x86_64-dev fedora-16-i386-dev fedora-16-x86_64-dev fedora-17-i386-dev fedora-17-x86_64-dev'
115
+ # The host that contains the yum repository to ship to
116
+ yum_host: 'burji.puppetlabs.com'
117
+ # The remote path the repository on the yum_host
118
+ yum_repo_path: '~/repo/'
119
+ # The host that contains the apt repository to ship to
120
+ apt_host: 'burji.puppetlabs.com'
121
+ # The URL to use for the apt dependencies in cow building
122
+ apt_repo_url: 'http://apt.puppetlabs.com'
123
+ # The path on the remote apt host that debs should ship to
124
+ apt_repo_path: '/opt/repository/incoming'
125
+ # Whether to present the gem and apple tasks
126
+ build_gem: TRUE
127
+ build_dmg: TRUE
128
+ ```
129
+ This is the sample project_data.yaml file:
130
+ ```yaml
131
+ ---
132
+ project: 'hiera'
133
+ author: 'Puppet Labs'
134
+ email: 'info@puppetlabs.com'
135
+ homepage: 'https://github.com/puppetlabs/hiera'
136
+ summary: 'Light weight hierarchical data store'
137
+ description: 'A pluggable data store for hierarcical data'
138
+ # file containing hard coded version information, if present
139
+ version_file: '/lib/hiera.rb'
140
+ # files and gem_files are space separated lists
141
+ # files to be packaged into a tarball and released with deb/rpm
142
+ files: '[A-Z]* ext lib bin spec acceptance_tests'
143
+ # space separated list of files to *exclude* from the tarball
144
+ # note that each listing in files, above, is recursively copied into the tarball, so
145
+ # 'tar_excludes' only needs to include any undesired subdirectories/files of the 'files'
146
+ # list to exclude
147
+ tar_excludes: 'ext/packaging lib/some_excluded_file'
148
+ # files to be packaged into a gem
149
+ gem_files: '{bin,lib}/**/* CHANGELOG COPYING README.md LICENSE'
150
+ # To exclude specific files from inclusion in a gem:
151
+ gem_excludes: 'lib/hiera/file_to_exclude.rb lib/hiera/directory_to_exclude'
152
+ # If gem name differs in some way from project name, e.g. only build gem for a client end
153
+ gem_name: hiera_the_gem
154
+ # If gem summary and/or description differs from general summary
155
+ gem_summary: 'A sub-set of the Hiera pluggable data store'
156
+ gem_description: 'A gem of the pluggable data store for hierarchical data'
157
+ gem_require_path: 'lib'
158
+ gem_test_files: 'spec/**/*'
159
+ gem_executables: 'hiera'
160
+ gem_default_executables: 'hiera'
161
+ # To add gem dependencies, indent.
162
+ # This is an example only, hiera doesn't really depend on hiera-puppet/json/facter
163
+ # For no specific version, leave version empty
164
+ gem_runtime_dependencies:
165
+ hiera-puppet: '1.0.0rc'
166
+ hiera-json:
167
+ gem_development_dependencies:
168
+ facter: '>= 1.6.11'
169
+ # rdoc options as an array
170
+ gem_rdoc_options:
171
+ - --line-numbers
172
+ - --main
173
+ - Hiera.README
174
+ ```
175
+ For basic mac packaging, add an osx directory in ext containing the following files:
176
+ 1. a preflight.erb template for any pre-flight actions, perhaps removing the old package if present.
177
+ 2. a prototype.plist.erb that is templated into the pkginfo.plist file for the package. This is the one from puppet. Note that these variable names aren't mutable here, but there's no need to worry about their value assignment, it's done in the apple task:
178
+ ```
179
+ <?xml version="1.0" encoding="UTF-8"?>
180
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
181
+ <plist version="1.0">
182
+ <dict>
183
+ <key>CFBundleIdentifier</key>
184
+ <string><%= @title %></string>
185
+ <key>CFBundleShortVersionString</key>
186
+ <string><%= @version %></string>
187
+ <key>IFMajorVersion</key>
188
+ <integer><%= @package_major_version %></integer>
189
+ <key>IFMinorVersion</key>
190
+ <integer><%= @package_minor_version %></integer>
191
+ <key>IFPkgBuildDate</key>
192
+ <date><%= @build_date %></date>
193
+ <key>IFPkgFlagAllowBackRev</key>
194
+ <false/>
195
+ <key>IFPkgFlagAuthorizationAction</key>
196
+ <string>RootAuthorization</string>
197
+ <key>IFPkgFlagDefaultLocation</key>
198
+ <string>/</string>
199
+ <key>IFPkgFlagFollowLinks</key>
200
+ <true/>
201
+ <key>IFPkgFlagInstallFat</key>
202
+ <false/>
203
+ <key>IFPkgFlagIsRequired</key>
204
+ <false/>
205
+ <key>IFPkgFlagOverwritePermissions</key>
206
+ <false/>
207
+ <key>IFPkgFlagRelocatable</key>
208
+ <false/>
209
+ <key>IFPkgFlagRestartAction</key>
210
+ <string><%= @pm_restart %></string>
211
+ <key>IFPkgFlagRootVolumeOnly</key>
212
+ <true/>
213
+ <key>IFPkgFlagUpdateInstalledLanguages</key>
214
+ <false/>
215
+ </dict>
216
+ </plist>
217
+ ```
218
+ A file_mapping.yaml file that specifies a set of files and a set of directories from the source to install, with destinations, ownership, and permissions. The directories are top level directories in the source to install. The files are files somewhere in the source to install. This is the one from puppet 3.x:
219
+ ```yaml
220
+ ---
221
+ directories:
222
+ # this will take the contents of lib, e.g. puppet/lib/* and place them in /usr/lib/ruby/site_ruby/1.8
223
+ lib:
224
+ path: 'usr/lib/ruby/site_ruby/1.8'
225
+ owner: 'root'
226
+ group: 'wheel'
227
+ perms: '0644'
228
+ bin:
229
+ path: 'usr/bin'
230
+ owner: 'root'
231
+ group: 'wheel'
232
+ perms: '0755'
233
+ 'man/man8':
234
+ path: 'usr/share/man/man8'
235
+ owner: 'root'
236
+ group: 'wheel'
237
+ perms: '0755'
238
+ files:
239
+ # this will take the file puppet/conf/auth.conf and place it in /private/etc/puppet/, creating the directory if not present
240
+ 'conf/auth.conf':
241
+ path: 'private/etc/puppet'
242
+ owner: 'root'
243
+ group: 'wheel'
244
+ perms: '0644'
245
+ 'man/man5/puppet.conf.5':
246
+ path: 'usr/share/man/man5'
247
+ owner: 'root'
248
+ group: 'wheel'
249
+ perms: '0644'
250
+ '[A-Z]*':
251
+ path: 'usr/share/doc/puppet'
252
+ owner: 'root'
253
+ group: 'wheel'
254
+ perms: '0644'
255
+ ```