diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index b490e46..8f62a61 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ *.tar.gz.asc /puppet-*/ /.build*.log +results_puppet/ +/tests/*/log.txt diff --git a/0001-Avoid-closing-directory-we-re-iterating.patch b/0001-Avoid-closing-directory-we-re-iterating.patch new file mode 100644 index 0000000..4ff762a --- /dev/null +++ b/0001-Avoid-closing-directory-we-re-iterating.patch @@ -0,0 +1,41 @@ +From 2032d928c2520cba988fe57f888011a286bae1c8 Mon Sep 17 00:00:00 2001 +From: Ewoud Kohl van Wijngaarden +Date: Wed, 5 Mar 2025 14:01:47 +0100 +Subject: [PATCH] Avoid closing directory we're iterating + +Ruby 3.4 started error checking directory access and starts to raise +Errno::EBADF. + +This particular loop iterates on all open file descriptors and one is +the directory listing from Dir.foreach. + +In the past this could have led to leaked file descriptors, but it's +unlikely since it's likely the last opened file descriptor and have the +highest number. + +Link: https://github.com/ruby/ruby/commit/f2919bd11c570fc5f5440d1f101be38f61e3d16b +Link: https://bugzilla.redhat.com/show_bug.cgi?id=2349352 +--- + lib/puppet/util.rb | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/lib/puppet/util.rb b/lib/puppet/util.rb +index 06c7b11815db..37b37d614d3a 100644 +--- a/lib/puppet/util.rb ++++ b/lib/puppet/util.rb +@@ -478,8 +478,10 @@ module Util + $stderr = STDERR + + begin +- Dir.foreach('/proc/self/fd') do |f| +- if f != '.' && f != '..' && f.to_i >= 3 ++ d = Dir.new('/proc/self/fd') ++ ignore_fds = ['.', '..', d.fileno.to_s] ++ d.each_child do |f| ++ if !ignore_fds.include?(f) && f.to_i >= 3 + begin + IO.new(f.to_i).close + rescue +-- +2.49.0 + diff --git a/0001-Fix-puppet-paths.patch b/0001-Fix-puppet-paths.patch deleted file mode 100644 index 47d749f..0000000 --- a/0001-Fix-puppet-paths.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 23bcde066d9915952b9bf2c8fd0770a2ce9422ce Mon Sep 17 00:00:00 2001 -From: Haikel Guemar -Date: Wed, 29 Apr 2015 01:38:35 +0200 -Subject: [PATCH 1/5] Fix puppet paths - ---- - lib/puppet/util/run_mode.rb | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/lib/puppet/util/run_mode.rb b/lib/puppet/util/run_mode.rb -index cf6c461..777156a 100644 ---- a/lib/puppet/util/run_mode.rb -+++ b/lib/puppet/util/run_mode.rb -@@ -59,23 +59,23 @@ module Puppet - - class UnixRunMode < RunMode - def conf_dir -- which_dir("/etc/puppetlabs/puppet", "~/.puppetlabs/etc/puppet") -+ which_dir("/etc/puppet", "~/.puppet") - end - - def code_dir -- which_dir("/etc/puppetlabs/code", "~/.puppetlabs/etc/code") -+ which_dir("/etc/puppet", "~/.puppet/code") - end - - def var_dir -- which_dir("/opt/puppetlabs/puppet/cache", "~/.puppetlabs/opt/puppet/cache") -+ which_dir("/var/lib/puppet", "~/.puppet/cache") - end - - def run_dir -- which_dir("/var/run/puppetlabs", "~/.puppetlabs/var/run") -+ which_dir("/var/run/puppet", "~/.puppet/var/run") - end - - def log_dir -- which_dir("/var/log/puppetlabs/puppet", "~/.puppetlabs/var/log") -+ which_dir("/var/log/puppet", "~/.puppet/var/log") - end - end - --- -2.19.2 - diff --git a/0002-Revert-maint-Remove-puppetmaster.service.patch b/0002-Revert-maint-Remove-puppetmaster.service.patch deleted file mode 100644 index 365e21f..0000000 --- a/0002-Revert-maint-Remove-puppetmaster.service.patch +++ /dev/null @@ -1,46 +0,0 @@ -From f54a22b96e9e631991bad095a7b321273a2e6e3f Mon Sep 17 00:00:00 2001 -From: Gael Chamoulaud -Date: Wed, 29 Jul 2015 21:58:48 +0200 -Subject: [PATCH 2/5] Revert "(maint) Remove puppetmaster.service" - -This reverts commit c0e30daa53b6267c1c86b6e27c01b1c26cf49af5. ---- - ext/systemd/puppet.service | 2 +- - ext/systemd/puppetmaster.service | 12 ++++++++++++ - 2 files changed, 13 insertions(+), 1 deletion(-) - create mode 100644 ext/systemd/puppetmaster.service - -diff --git a/ext/systemd/puppet.service b/ext/systemd/puppet.service -index 7c16615..36769ac 100644 ---- a/ext/systemd/puppet.service -+++ b/ext/systemd/puppet.service -@@ -11,7 +11,7 @@ - [Unit] - Description=Puppet agent - Wants=basic.target --After=basic.target network.target -+After=basic.target network.target puppetmaster.service - - [Service] - EnvironmentFile=-/etc/sysconfig/puppetagent -diff --git a/ext/systemd/puppetmaster.service b/ext/systemd/puppetmaster.service -new file mode 100644 -index 0000000..dbbd627 ---- /dev/null -+++ b/ext/systemd/puppetmaster.service -@@ -0,0 +1,12 @@ -+[Unit] -+Description=Puppet master -+Wants=basic.target -+After=basic.target network.target -+ -+[Service] -+EnvironmentFile=-/etc/sysconfig/puppetmaster -+EnvironmentFile=-/etc/default/puppetmaster -+ExecStart=/usr/bin/puppet master $PUPPETMASTER_EXTRA_OPTS --no-daemonize -+ -+[Install] -+WantedBy=multi-user.target --- -2.19.2 - diff --git a/0003-Remove-Fedora-release-restrictions-from-DNF-provider.patch b/0003-Remove-Fedora-release-restrictions-from-DNF-provider.patch deleted file mode 100644 index f629d6b..0000000 --- a/0003-Remove-Fedora-release-restrictions-from-DNF-provider.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 5688991cd78f7c38a1edf28f76e9b7825a7d415a Mon Sep 17 00:00:00 2001 -From: Dominic Cleal -Date: Wed, 31 May 2017 10:07:04 +0100 -Subject: [PATCH 3/5] Remove Fedora release restrictions from DNF provider - -Ensure DNF provider will be used on all versions of Fedora, without new -ones being excluded. ---- - lib/puppet/provider/package/dnf.rb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/puppet/provider/package/dnf.rb b/lib/puppet/provider/package/dnf.rb -index 4823ebf..ee27322 100644 ---- a/lib/puppet/provider/package/dnf.rb -+++ b/lib/puppet/provider/package/dnf.rb -@@ -28,7 +28,7 @@ Puppet::Type.type(:package).provide :dnf, :parent => :yum do - end - end - -- defaultfor :operatingsystem => :fedora, :operatingsystemmajrelease => (22..30).to_a -+ defaultfor :operatingsystem => :fedora - defaultfor :osfamily => :redhat, :operatingsystemmajrelease => ["8"] - - def self.update_command diff --git a/0004-PUP-9069-Add-support-for-RHEL8.patch b/0004-PUP-9069-Add-support-for-RHEL8.patch deleted file mode 100644 index 3f1e578..0000000 --- a/0004-PUP-9069-Add-support-for-RHEL8.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 76031db0120ef8a3bdee576ca4aac9dc8b2859af Mon Sep 17 00:00:00 2001 -From: Emilien Macchi -Date: Wed, 15 Aug 2018 22:40:35 +0200 -Subject: [PATCH 4/5] (PUP-9069) Add support for RHEL8 - -This adds support for the next version of RHEL in the systemd provider. -Note: I have no idea when it'll be released but we need this patch as we -need to make Puppet systemd provider working. ---- - lib/puppet/provider/service/systemd.rb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/puppet/provider/service/systemd.rb b/lib/puppet/provider/service/systemd.rb -index c444861..a68ce96 100644 ---- a/lib/puppet/provider/service/systemd.rb -+++ b/lib/puppet/provider/service/systemd.rb -@@ -19,7 +19,7 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do - end - - defaultfor :osfamily => [:archlinux] -- defaultfor :osfamily => :redhat, :operatingsystemmajrelease => "7" -+ defaultfor :osfamily => :redhat, :operatingsystemmajrelease => ["7", "8"] - defaultfor :osfamily => :redhat, :operatingsystem => :fedora - defaultfor :osfamily => :suse - defaultfor :osfamily => :coreos --- -2.19.2 - diff --git a/0006-Remove-Fedora-release-restrictions-from-DNF-provider.patch b/0006-Remove-Fedora-release-restrictions-from-DNF-provider.patch deleted file mode 100644 index 5673c02..0000000 --- a/0006-Remove-Fedora-release-restrictions-from-DNF-provider.patch +++ /dev/null @@ -1,27 +0,0 @@ -From ffd3da258dd526369d63df022a2fa57f6ed6c473 Mon Sep 17 00:00:00 2001 -From: Dominic Cleal -Date: Wed, 31 May 2017 10:07:04 +0100 -Subject: [PATCH] Remove Fedora release restrictions from DNF provider - -Ensure DNF provider will be used on all versions of Fedora, without new -ones being excluded. ---- - lib/puppet/provider/package/dnf.rb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/puppet/provider/package/dnf.rb b/lib/puppet/provider/package/dnf.rb -index e144a1a..c0ed877 100644 ---- a/lib/puppet/provider/package/dnf.rb -+++ b/lib/puppet/provider/package/dnf.rb -@@ -28,7 +28,7 @@ Puppet::Type.type(:package).provide :dnf, :parent => :yum do - end - end - -- defaultfor :operatingsystem => :fedora, :operatingsystemmajrelease => ['22', '23', '24', '25'] -+ defaultfor :operatingsystem => :fedora - - def self.update_command - # In DNF, update is deprecated for upgrade --- -2.7.4 - diff --git a/README.md b/README.md new file mode 100644 index 0000000..fc68bd3 --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +# Puppet + +This is the packaging for [Puppet](https://puppet.com/). +The files are downloaded from [downloads.puppet.com](https://downloads.puppet.com/puppet/) since they contain GPG signed tarballs, unlike on Rubygems. +Additionally it vendors various Puppet modules to match upstream's [puppet-agent config](https://github.com/puppetlabs/puppet-agent). + +## Updating + +Typically you will be notified via [release-monitoring](https://release-monitoring.org/project/7018/), which creates a Bugzilla. +Start with bumping the spec and reference the Bugzilla number. + +``` +BZ=2151953 VERSION=7.21.0 +commit_message="Update to $VERSION (fixes rhbz#$BZ)" +rpmdev-bumpspec --new="$VERSION" --comment="$commit_message" puppet.spec +``` + +Then verify whether any vendored modules need to be updated. +See the lines in the spec file itself on how to do that. +In addition to that the dependencies should be verified. + +Once that's done, retrieve the sources: + +``` +spectool --get-files puppet.spec +``` + +Then upload the sources: +``` +spectool --list-files puppet.spec | awk '/https:/ { print $2 }' | xargs -n 1 basename | xargs fedpkg new-sources --offline +``` + +Test out a scratch build: +``` +koji build --scratch rawhide $(fedpkg srpm 2>/dev/null | grep ^Wrote | rev | cut -d "/" -f1 | rev) +``` + +If it looks all right, drop the `--offline` parameter from the spectool. + +Commit, push, build, update + +``` +# git additions/removals/etc at this point +fedpkg commit -m "$commit_message" +fedpk build --target rawhide +fedpkg update +``` + diff --git a/RPM-GPG-KEY-puppet-20250406 b/RPM-GPG-KEY-puppet-20250406 new file mode 100644 index 0000000..333b379 --- /dev/null +++ b/RPM-GPG-KEY-puppet-20250406 @@ -0,0 +1,31 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBFyrv4oBEADhL8iyDPZ+GWN7L+A8dpEpggglxTtL7qYNyN5Uga2j0cusDdOD +ftPHsurLjfxtc2EFGdFK/N8y4LSpq+nOeazhkHcPeDiWC2AuN7+NGjH9LtvMUqKy +NWPhPYP2r/xPL547oDMdvLXDH5n+FsLFW8QgATHk4AvlIhGng0gWu80OqTCiL0HC +W7TftkF8ofP8k90SnLYbI9HDVOj6VYYtqG5NeoCHGAqrb79G/jq64Z/gLktD3IrB +CxYhKFfJtZ/BSDB8Aa4ht+jIyeFCNSbGyfFfWlHKvF3JngS/76Y7gxX1sbR3gHJQ +hO25AQdsPYKxgtIgNeB9/oBp1+V3K1W/nta4gbDVwJWCqDRbEFlHIdV7fvV/sqiI +W7rQ60aAY7J6Gjt/aUmNArvT8ty3szmhR0wEEU5/hhIVV6VjS+AQsI8pFv6VB8bJ +TLfOBPDW7dw2PgyWhVTEN8KW/ckyBvGmSdzSgAhw+rAe7li50/9e2H8eiJgBbGid +8EQidZgkokh331CMDkIA6F3ygiB+u2ZZ7ywxhxIRO70JElIuIOiofhVfRnh/ODlH +X7eD+cA2rlLQd2yWf4diiA7C9R8r8vPrAdp3aPZ4xLxvYYZV8E1JBdMus5GRy4rB +Avetp0Wx/1r9zVDKD/J1bNIlt0SR9FTmynZj4kLWhoCqmbrLS35325sS6wARAQAB +tEhQdXBwZXQsIEluYy4gUmVsZWFzZSBLZXkgKFB1cHBldCwgSW5jLiBSZWxlYXNl +IEtleSkgPHJlbGVhc2VAcHVwcGV0LmNvbT6JAlQEEwEKAD4WIQTWgR7Tre64RBr1 +qo9FKLbNnmHvJgUCXKu/igIbAwUJC0c1AAULCQgHAwUVCgkICwUWAgMBAAIeAQIX +gAAKCRBFKLbNnmHvJg/vD/0eOl/pBb6ooGnzg2qoD+XwgOK3HkTdvGNZKGsIrhUG +q6O0zoyPW8v9b/i7QEDre8QahARmMAEQ+T3nbNVzw4kpE+YIrEkKjoJsrF8/K/1L +zBHJCc3S9oF9KubG5BuQ4bAmcvnI+qpEYbSTLHztYGUfXAGu+MnaDf4C60G7zM6m +ec4bX8lVnt+gcsGGGCdN89XsZLBNdv21z9xMeaAPiRYJpbqwrb8cYbKQeqFSQt2M +UylN5oVeN77Q8iyXSyVwpc6uKzXdQ8bVPbKUTWSXQ4SSp0HJjtAMiDH2pjty4PG6 +EgZ6/njJLOzQ29ZgFrS19XLONlptHwKzLYB8nJhJvGHfzzInmNttDtNwTA6IxpsR +4aCnrPWFJRCbmMBNXvBR9B/O+e/T5ngL21ipMEwzEOiQlRSacnO2pICwZ5pARMRI +dxq/5BQYry9HNlJDGR7YIfn7i0oCGk5BxwotSlAPw8jFpNU/zTOvpQAdPvZje2JP +6GS+hYxSdHsigREXI2gxTvpcLk8LOe9PsqJv631e6Kvn9P9OHiihIp8G9fRQ8T7y +elHcNanV192mfbWxJhDAcQ+JEy9883lOanaCoaf/7z4kdmCQLz5/oNg2K0qjSgZH +JY/gxCOwuAuUJlLcAXQG6txJshfMxyQUO46DXg0/gjwkKgT/9PbTJEN/WN/G6n1h +lQ== +=nKF2 +-----END PGP PUBLIC KEY BLOCK----- + diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..0da9f5a --- /dev/null +++ b/gating.yaml @@ -0,0 +1,16 @@ +--- !Policy +product_versions: + - epel-* + - fedora-* +decision_contexts: [bodhi_update_push_testing] +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} +--- !Policy +product_versions: + - epel-* + - fedora-* +decision_contexts: [bodhi_update_push_stable] +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} diff --git a/logrotate b/logrotate new file mode 100644 index 0000000..dcb57a2 --- /dev/null +++ b/logrotate @@ -0,0 +1,21 @@ +# Generic logrotate config for Red Hat systems. Works with both official +# Fedora and RHEL packages as well as PuppetLabs distributions. + +/var/log/puppetlabs/masterhttp.log /var/log/puppet/masterhttp.log { + compress + missingok + notifempty + nocreate +} + +/var/log/puppetlabs/puppetd.log /var/log/puppet/puppetd.log { + compress + missingok + notifempty + nocreate + sharedscripts + postrotate + ([ -x /etc/init.d/puppet ] && /etc/init.d/puppet rotate > /dev/null 2>&1) || + ([ -x /usr/bin/systemctl ] && /usr/bin/systemctl kill -s USR2 puppet.service > /dev/null 2>&1) || true + endscript +} diff --git a/openvox-dnf5.patch b/openvox-dnf5.patch new file mode 100644 index 0000000..770db7f --- /dev/null +++ b/openvox-dnf5.patch @@ -0,0 +1,84 @@ +commit 26d3405df7f35497ec07942c44c292bb25d60210 +Author: Lars Haugan +Date: Mon Dec 23 14:56:21 2024 +0100 + + Add fix for package running dnf5 on fedora + + Fedora 41 introduced dnf5 which has deprecated the use of the flags '-d' + and '-e'. This change removes the options + + Signed-off-by: Lars Haugan + +diff --git a/lib/puppet/provider/package/dnfmodule.rb b/lib/puppet/provider/package/dnfmodule.rb +index 8d58d2fdd8..de052ad744 100644 +--- a/lib/puppet/provider/package/dnfmodule.rb ++++ b/lib/puppet/provider/package/dnfmodule.rb +@@ -35,7 +35,7 @@ Puppet::Type.type(:package).provide :dnfmodule, :parent => :dnf do + + def self.instances + packages = [] +- cmd = "#{command(:dnf)} module list -y -d 0 -e #{error_level}" ++ cmd = "#{command(:dnf)} module list -y" + execute(cmd).each_line do |line| + # select only lines with actual packages since DNF clutters the output + next unless line =~ /\[[eix]\][, ]/ +@@ -90,7 +90,7 @@ Puppet::Type.type(:package).provide :dnfmodule, :parent => :dnf do + enable(args) + else + begin +- execute([command(:dnf), 'module', 'install', '-d', '0', '-e', self.class.error_level, '-y', args]) ++ execute([command(:dnf), 'module', 'install', '-y', args]) + rescue Puppet::ExecutionFailure => e + # module has no default profile and no profile was requested, so just enable the stream + # DNF versions prior to 4.2.8 do not need this workaround +@@ -117,20 +117,20 @@ Puppet::Type.type(:package).provide :dnfmodule, :parent => :dnf do + end + + def enable(args = @resource[:name]) +- execute([command(:dnf), 'module', 'enable', '-d', '0', '-e', self.class.error_level, '-y', args]) ++ execute([command(:dnf), 'module', 'enable', '-y', args]) + end + + def uninstall +- execute([command(:dnf), 'module', 'remove', '-d', '0', '-e', self.class.error_level, '-y', @resource[:name]]) ++ execute([command(:dnf), 'module', 'remove', '-y', @resource[:name]]) + reset # reset module to the default stream + end + + def disable(args = @resource[:name]) +- execute([command(:dnf), 'module', 'disable', '-d', '0', '-e', self.class.error_level, '-y', args]) ++ execute([command(:dnf), 'module', 'disable', '-y', args]) + end + + def reset +- execute([command(:dnf), 'module', 'reset', '-d', '0', '-e', self.class.error_level, '-y', @resource[:name]]) ++ execute([command(:dnf), 'module', 'reset', '-y', @resource[:name]]) + end + + def flavor +diff --git a/lib/puppet/provider/package/yum.rb b/lib/puppet/provider/package/yum.rb +index 15bc372c6b..6c0f85e31b 100644 +--- a/lib/puppet/provider/package/yum.rb ++++ b/lib/puppet/provider/package/yum.rb +@@ -247,7 +247,7 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do + update_command = self.class.update_command + # If not allowing virtual packages, do a query to ensure a real package exists + unless @resource.allow_virtual? +- execute([command(:cmd), '-d', '0', '-e', error_level, '-y', install_options, :list, wanted].compact) ++ execute([command(:cmd), '-y', install_options, :list, wanted].compact) + end + + should = @resource.should(:ensure) +@@ -307,10 +307,7 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do + end + end + +- # Yum on el-4 and el-5 returns exit status 0 when trying to install a package it doesn't recognize; +- # ensure we capture output to check for errors. +- no_debug = Puppet.runtime[:facter].value('os.release.major').to_i > 5 ? ["-d", "0"] : [] +- command = [command(:cmd)] + no_debug + ["-e", error_level, "-y", install_options, operation, wanted].compact ++ command = [command(:cmd)] + ["-y", install_options, operation, wanted].compact + output = execute(command) + + if output.to_s =~ /^No package #{wanted} available\.$/ + diff --git a/plans/lookup.fmf b/plans/lookup.fmf new file mode 100644 index 0000000..1a53fc5 --- /dev/null +++ b/plans/lookup.fmf @@ -0,0 +1,7 @@ +summary: Run puppet lookup +prepare: + how: install + package: puppet +execute: + how: tmt + script: puppet lookup --explain foo diff --git a/plans/smoke.fmf b/plans/smoke.fmf new file mode 100644 index 0000000..c1627f9 --- /dev/null +++ b/plans/smoke.fmf @@ -0,0 +1,5 @@ +summary: Basic smoke test +discover: + how: fmf +execute: + how: tmt diff --git a/puppet-nm-dispatcher b/puppet-nm-dispatcher deleted file mode 100644 index 6e9e0b3..0000000 --- a/puppet-nm-dispatcher +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -# -# Restart puppet on network changes to pickup changes to /etc/resolv.conf -# -# https://projects.puppetlabs.com/issues/2776 -# https://bugzilla.redhat.com/532085 - -[[ $2 =~ ^(up|down)$ ]] && /sbin/service puppet condrestart || : diff --git a/puppet.spec b/puppet.spec index c45daa1..e762f4e 100644 --- a/puppet.spec +++ b/puppet.spec @@ -1,66 +1,63 @@ -# Augeas and SELinux requirements may be disabled at build time by passing -# --without augeas and/or --without selinux to rpmbuild or mock - -# Specifically not using systemd on F18 as it's technically a break between -# using SystemV on 2.7.x and Systemd on 3.1.0. -%if 0%{?fedora} || 0%{?rhel} >= 7 -%global puppet_libdir %{ruby_vendorlibdir} -%else -%global puppet_libdir %(ruby -rrbconfig -e 'puts RbConfig::CONFIG["sitelibdir"]') -%endif - -%if 0%{?fedora} > 18 || 0%{?rhel} >= 7 || 0%{?suse_version} -%global _with_systemd 1 -%endif - -# FIXME(hguemar): RH products builds of facter and hiera have introduced epochs -# does not impact Fedora nor EPEL -%if 0%{?rhel} && 0%{?rhel} >= 7 && !0%{?epel} -%global has_epoch 1 -%endif - -%global confdir conf -%global pending_upgrade_path %{_localstatedir}/lib/rpm-state/puppet -%global pending_upgrade_file %{pending_upgrade_path}/upgrade_pending +%global nm_dispatcher_dir %{_prefix}/lib/NetworkManager +%global puppet_libdir %{ruby_vendorlibdir} +%global puppet_vendor_mod_dir %{_datadir}/%{name}/vendor_modules Name: puppet -Version: 5.5.10 -Release: 4%{?dist} -Summary: A network tool for managing many disparate systems -License: ASL 2.0 -URL: http://puppetlabs.com -Source0: http://downloads.puppetlabs.com/%{name}/%{name}-%{version}.tar.gz -Source1: http://downloads.puppetlabs.com/%{name}/%{name}-%{version}.tar.gz.asc -Source2: puppet-nm-dispatcher -Source3: puppet-nm-dispatcher.systemd -Source4: start-puppet-wrapper +Version: 8.10.0 +Release: 3%{?dist} +Summary: Network tool for managing many disparate systems +License: Apache-2.0 +URL: https://puppet.com +Source0: https://downloads.puppetlabs.com/puppet/%{name}-%{version}.tar.gz +Source1: https://downloads.puppetlabs.com/puppet/%{name}-%{version}.tar.gz.asc +Source2: RPM-GPG-KEY-puppet-20250406 +# Get these by checking out the right tag from https://github.com/puppetlabs/puppet-agent and: +# sed 's|.\+puppetlabs/\([a-z_-]\+\).git.\+tags/v\?\([0-9\.]\+\)"}|https://forge.puppet.com/v3/files/\1-\2.tar.gz|' configs/components/module-puppetlabs-*.json +Source3: https://forge.puppet.com/v3/files/puppetlabs-augeas_core-1.5.0.tar.gz +Source4: https://forge.puppet.com/v3/files/puppetlabs-cron_core-1.3.0.tar.gz +Source5: https://forge.puppet.com/v3/files/puppetlabs-host_core-1.3.0.tar.gz +Source6: https://forge.puppet.com/v3/files/puppetlabs-mount_core-1.3.0.tar.gz +Source7: https://forge.puppet.com/v3/files/puppetlabs-scheduled_task-3.2.0.tar.gz +Source8: https://forge.puppet.com/v3/files/puppetlabs-selinux_core-1.4.0.tar.gz +Source9: https://forge.puppet.com/v3/files/puppetlabs-sshkeys_core-2.5.0.tar.gz +Source10: https://forge.puppet.com/v3/files/puppetlabs-yumrepo_core-2.1.0.tar.gz +Source11: https://forge.puppet.com/v3/files/puppetlabs-zfs_core-1.6.1.tar.gz +Source12: https://forge.puppet.com/v3/files/puppetlabs-zone_core-1.2.0.tar.gz +Source13: puppet-nm-dispatcher.systemd +Source14: start-puppet-wrapper +Source15: logrotate -# Puppetlabs messed up with default paths -Patch01: 0001-Fix-puppet-paths.patch -Patch02: 0002-Revert-maint-Remove-puppetmaster.service.patch -Patch03: 0003-Remove-Fedora-release-restrictions-from-DNF-provider.patch -# Note: Puppet 5.5.7 is broken -# Backporting patches that add supports for RHEL > 7 -# https://github.com/puppetlabs/puppet/pull/7000 (PUP-9069) -Patch04: 0004-PUP-9069-Add-support-for-RHEL8.patch +Patch: 0001-Avoid-closing-directory-we-re-iterating.patch +Patch: openvox-dnf5.patch + +BuildArch: noarch -BuildArch: noarch -BuildRequires: git -BuildRequires: ruby-devel >= 1.8.7 # ruby-devel does not require the base package, but requires -libs instead -BuildRequires: ruby >= 1.8.7 - -Requires: puppet-headless = %{version}-%{release} - -%if 0%{?_with_systemd} -%{?systemd_requires} +BuildRequires: ruby +BuildRequires: ruby-devel +BuildRequires: rubygem-json +BuildRequires: facter +BuildRequires: hiera BuildRequires: systemd -%else -Requires(post): chkconfig -Requires(preun): chkconfig -Requires(preun): initscripts -Requires(postun): initscripts -%endif +BuildRequires: gnupg2 +Requires: hiera >= 3.3.1 +Requires: facter >= 4.3.0 +Requires: rubygem(concurrent-ruby) >= 1.1.9 +Requires: rubygem(deep_merge) >= 1.0 +Requires: rubygem(facter) >= 4.3.0 +Requires: rubygem(multi_json) >= 1.13 +Requires: rubygem(puppet-resource_api) >= 1.5 +Requires: rubygem(semantic_puppet) >= 1.0.2 +Requires: rubygem(scanf) >= 1.0 +Requires: ruby-augeas >= 0.5.0 +# racc was a default gem, is now a bundled gem but shipped as a sepeate package +Requires: (ruby-default-gems < 3.3 or rubygem(racc)) +Requires: augeas >= 1.10.1 +Requires: augeas-libs >= 1.10.1 +Requires: ruby(selinux) libselinux-utils +Obsoletes: puppet-headless < 6.0.0 +Obsoletes: puppet-server < 6.0.0 +Obsoletes: puppet < 6.0.0 %description Puppet lets you centrally manage every important aspect of your system using a @@ -68,321 +65,289 @@ cross-platform specification language that manages all the separate elements normally aggregated in different files, like users, cron jobs, and hosts, along with obviously discrete elements like packages, services, and files. -%package server -Summary: Server for the puppet system management tool -Requires: puppet = %{version}-%{release} -Requires: puppet-headless = %{version}-%{release} -%if 0%{?_with_systemd} -%{?systemd_requires} -BuildRequires: systemd -%else -Requires(post): chkconfig -Requires(preun): chkconfig -Requires(preun): initscripts -Requires(postun): initscripts -%endif - -%description server -Provides the central puppet server daemon which provides manifests to clients. -The server can also function as a certificate authority and file server. - -%package headless -Summary: Headless Puppet -Conflicts: puppet < 5.5.6-6 -%if 0%{?rhel} && 0%{?rhel} <= 6 -Requires: ruby(abi) = 1.8 -%else -Requires: ruby(release) -%endif -Requires: ruby(shadow) -Requires: rubygem(json) -Requires: rubygem(pathspec) -Requires: rubygem(rgen) -# Prevents jruby from being pulled in by dependencies (BZ #985208) -Requires: ruby -# Pull in ruby selinux bindings where available -%{!?_without_selinux:Requires: ruby(selinux), libselinux-utils} - -# Fedora 28 updates to facter3 where puppet needs to require the ruby bindings specifically -%if 0%{?fedora} >= 28 -BuildRequires: ruby-facter >= 3.0 -BuildRequires: ruby-facter < 4 -Requires: ruby-facter >= 3.0 -Requires: ruby-facter < 4 -%else -BuildRequires: facter >= %{?has_epoch:1:}2.0 -BuildRequires: facter < %{?has_epoch:1:}4 -Requires: facter >= %{?has_epoch:1:}2.0 -Requires: facter < %{?has_epoch:1:}4 -%endif -BuildRequires: hiera >= 2.0 -BuildRequires: hiera < %{?has_epoch:1:}4 -Requires: hiera >= 2.0 -Requires: hiera < %{?has_epoch:1:}4 -Obsoletes: hiera-puppet < 1.0.0-2 -Provides: hiera-puppet = %{version}-%{release} - -%{!?_without_augeas:Requires: ruby(augeas)} -Requires: tar -Requires(pre): shadow-utils - -%description headless -This puppet headless subpackage may be used when there is no need to -have puppet agent running as a service, for example, in a container -image. - %prep -%autosetup -S git -# Unbundle -rm -r lib/puppet/vendor/pathspec -# Note(hguemar): remove unrelated OS/distro specific folders -# These mess-up with RPM automatic dependencies compute by adding -# unnecessary deps like /sbin/runscripts -rm -r ext/{debian,freebsd,gentoo,ips,osx,solaris,suse,windows} -rm ext/redhat/*.init -rm ext/{build_defaults.yaml,project_data.yaml} +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%autosetup -p1 +cp -a %{sources} . +for f in puppetlabs-*.tar*; do + tar xvf $f +done +# Puppetlabs messed up with default paths +find -type f -exec \ + sed -i \ + -e 's|/etc/puppetlabs/puppet|%{_sysconfdir}/%{name}|' \ + -e 's|/etc/puppetlabs/code|%{_sysconfdir}/%{name}/code|' \ + -e 's|/opt/puppetlabs/puppet/bin|%{_bindir}|' \ + -e 's|/opt/puppetlabs/puppet/cache|%{_sharedstatedir}/%{name}|' \ + -e 's|/opt/puppetlabs/puppet/public|%{_sharedstatedir}/%{name}/public|' \ + -e 's|/opt/puppetlabs/puppet/share/locale|%{_datadir}/%{name}/locale|' \ + -e 's|/opt/puppetlabs/puppet/modules|%{_datadir}/%{name}/modules|' \ + -e 's|/opt/puppetlabs/puppet/vendor_modules|%{_datadir}/%{name}/vendor_modules|' \ + -e 's|/var/log/puppetlabs/puppet|%{_localstatedir}/log/%{name}|' \ + '{}' + - -%build -# Nothing to build +# Create a sysusers.d config file +cat >puppet.sysusers.conf <= 15 # Setup tmpfiles.d config mkdir -p %{buildroot}%{_tmpfilesdir} -echo "D /var/run/%{name} 0755 %{name} %{name} -" > \ - %{buildroot}%{_tmpfilesdir}/%{name}.conf -%endif - -# Create puppet modules directory for puppet module tool -mkdir -p %{buildroot}%{_sysconfdir}/%{name}/modules +echo "D %{_rundir}/%{name} 0755 %{name} %{name} -" > \ + %{buildroot}%{_tmpfilesdir}/%{name}.conf +# Unbundle +# Note(hguemar): remove unrelated OS/distro specific folders +# These mess-up with RPM automatic dependencies compute by adding +# unnecessary deps like /sbin/runscripts +# some other things were removed with the patch +rm -r %{buildroot}%{_datadir}/%{name}/ext/{debian,osx,solaris,suse,windows,systemd,redhat} +rm %{buildroot}%{_datadir}/%{name}/ext/{build_defaults.yaml,project_data.yaml} %files -%if 0%{?_with_systemd} -%{_unitdir}/puppet.service -%{_unitdir}/puppetagent.service -%else -%{_initrddir}/puppet -%config(noreplace) %{_sysconfdir}/sysconfig/puppet -%endif -%if 0%{?fedora} >= 15 +%attr(-, puppet, puppet) %{_localstatedir}/log/%{name} +%attr(-, root, root) %{_datadir}/%{name} +%{_unitdir}/%{name}.service %{_tmpfilesdir}/%{name}.conf -%endif -%config(noreplace) %{_sysconfdir}/logrotate.d/puppet -%dir %{_sysconfdir}/NetworkManager -%dir %{_sysconfdir}/NetworkManager/dispatcher.d -%{_sysconfdir}/NetworkManager/dispatcher.d/98-puppet +%dir %{nm_dispatcher_dir} +%dir %{nm_dispatcher_dir}/dispatcher.d +%{nm_dispatcher_dir}/dispatcher.d/98-puppet + +# Vendor modules +%doc %{_datadir}/%{name}/vendor_modules/*/*.md +%doc %{_datadir}/%{name}/vendor_modules/*/readmes +%license %{_datadir}/%{name}/vendor_modules/*/LICENSE +# Strip development files +%exclude %{_datadir}/%{name}/vendor_modules/*/.{github,puppet-lint.rc,sync.yml} +%exclude %{_datadir}/%{name}/vendor_modules/*/{CODEOWNERS,Gemfile,appveyor.yml,spec} -%files headless %doc README.md examples %license LICENSE +%{_datadir}/ruby/vendor_ruby/hiera +%{_datadir}/ruby/vendor_ruby/hiera_puppet.rb +%{_datadir}/ruby/vendor_ruby/puppet +%{_datadir}/ruby/vendor_ruby/puppet_pal.rb +%{_datadir}/ruby/vendor_ruby/puppet.rb +%{_datadir}/ruby/vendor_ruby/puppet_x.rb +%dir %{_sharedstatedir}/%{name} +%dir %{_sharedstatedir}/%{name}/public %{_bindir}/puppet -%{_bindir}/start-puppet-* -%{puppet_libdir}/* -%dir %{_sysconfdir}/puppet -%dir %{_sysconfdir}/%{name}/modules -%config(noreplace) %{_sysconfdir}/puppet/puppet.conf -%config(noreplace) %{_sysconfdir}/puppet/auth.conf -%{_datadir}/%{name} -# These need to be owned by puppet so the server can -# write to them -%attr(-, puppet, puppet) %{_localstatedir}/run/puppet -%attr(0750, puppet, puppet) %{_localstatedir}/log/puppet -%attr(-, puppet, puppet) %{_localstatedir}/lib/puppet -%attr(0750, puppet, puppet) %{_localstatedir}/cache/puppet -%{_mandir}/man5/puppet.conf.5.gz -%{_mandir}/man8/puppet.8.gz -%{_mandir}/man8/puppet-agent.8.gz -%{_mandir}/man8/puppet-apply.8.gz -%{_mandir}/man8/puppet-catalog.8.gz -%{_mandir}/man8/puppet-describe.8.gz -%{_mandir}/man8/puppet-ca.8.gz -%{_mandir}/man8/puppet-cert.8.gz -%{_mandir}/man8/puppet-certificate.8.gz -%{_mandir}/man8/puppet-certificate_request.8.gz -%{_mandir}/man8/puppet-certificate_revocation_list.8.gz -%{_mandir}/man8/puppet-config.8.gz -%{_mandir}/man8/puppet-device.8.gz -%{_mandir}/man8/puppet-doc.8.gz -%{_mandir}/man8/puppet-facts.8.gz -%{_mandir}/man8/puppet-filebucket.8.gz -%{_mandir}/man8/puppet-generate.8.gz -%{_mandir}/man8/puppet-help.8.gz -%{_mandir}/man8/puppet-epp.8.gz -%{_mandir}/man8/puppet-key.8.gz -%{_mandir}/man8/puppet-lookup.8.gz -%{_mandir}/man8/puppet-man.8.gz -%{_mandir}/man8/puppet-module.8.gz -%{_mandir}/man8/puppet-node.8.gz -%{_mandir}/man8/puppet-parser.8.gz -%{_mandir}/man8/puppet-plugin.8.gz -%{_mandir}/man8/puppet-report.8.gz -%{_mandir}/man8/puppet-resource.8.gz -%{_mandir}/man8/puppet-script.8.gz -%{_mandir}/man8/puppet-status.8.gz +%{_bindir}/start-puppet-agent +%{_mandir}/man5/puppet.conf.5* +%{_mandir}/man8/puppet-plugin.8* +%{_mandir}/man8/puppet-report.8* +%{_mandir}/man8/puppet-resource.8* +%{_mandir}/man8/puppet-script.8* +%{_mandir}/man8/puppet-ssl.8* +%{_mandir}/man8/puppet-agent.8* +%{_mandir}/man8/puppet.8* +%{_mandir}/man8/puppet-apply.8* +%{_mandir}/man8/puppet-catalog.8* +%{_mandir}/man8/puppet-config.8* +%{_mandir}/man8/puppet-describe.8* +%{_mandir}/man8/puppet-device.8* +%{_mandir}/man8/puppet-doc.8* +%{_mandir}/man8/puppet-epp.8* +%{_mandir}/man8/puppet-facts.8* +%{_mandir}/man8/puppet-filebucket.8* +%{_mandir}/man8/puppet-generate.8* +%{_mandir}/man8/puppet-help.8* +%{_mandir}/man8/puppet-lookup.8* +%{_mandir}/man8/puppet-module.8* +%{_mandir}/man8/puppet-node.8* +%{_mandir}/man8/puppet-parser.8* -%files server -%if 0%{?_with_systemd} -%{_unitdir}/puppetmaster.service -%else -%{_initrddir}/puppetmaster -%{_initrddir}/puppetqueue -%config(noreplace) %{_sysconfdir}/sysconfig/puppetmaster -%endif -%config(noreplace) %{_sysconfdir}/puppet/fileserver.conf -%dir %{_sysconfdir}/puppet/manifests -%{_mandir}/man8/puppet-master.8.gz +%config(noreplace) %attr(-, root, root) %dir %{_sysconfdir}/%{name} +%config(noreplace) %attr(-, root, root) %dir %{_sysconfdir}/%{name}/code +%config(noreplace) %attr(644, root, root) %{_sysconfdir}/%{name}/puppet.conf +%config(noreplace) %attr(644, root, root) %{_sysconfdir}/logrotate.d/%{name} + +%ghost %attr(755, puppet, puppet) %{_rundir}/%{name} +%{_sysusersdir}/puppet.conf -# Fixed uid/gid were assigned in bz 472073 (Fedora), 471918 (RHEL-5), -# and 471919 (RHEL-4) -%pre headless -getent group puppet &>/dev/null || groupadd -r puppet -g 52 &>/dev/null -getent passwd puppet &>/dev/null || \ -useradd -r -u 52 -g puppet -d %{_localstatedir}/lib/puppet -s /sbin/nologin \ - -c "Puppet" puppet &>/dev/null -# ensure that old setups have the right puppet home dir -if [ $1 -gt 1 ]; then - usermod -d %{_localstatedir}/lib/puppet puppet &>/dev/null -fi -exit 0 %post -%if 0%{?_with_systemd} -%systemd_post puppet.service -%else -# If there's a running puppet agent, restart it during upgrade. Fixes -# BZ #1024538. -if [ "$1" -ge 1 ]; then - pid="%{_localstatedir}/run/puppet/agent.pid" - if [ -e "$pid" ]; then - if ps -p "$(< "$pid")" -o cmd= | grep -q "puppet agent"; then - kill "$(< "$pid")" \ - && rm -f "$pid" \ - && /sbin/service puppet start - fi &>/dev/null - fi -fi -/sbin/chkconfig --add puppet -%endif -exit 0 - -%post server -%if 0%{?_with_systemd} -%systemd_post puppetmaster.service -%else -/sbin/chkconfig --add puppetmaster -%endif -exit 0 - -%preun -%if 0%{?_with_systemd} -%systemd_preun puppet.service -%else -if [ "$1" -eq 0 ]; then - /sbin/service puppet stop &>/dev/null - /sbin/chkconfig --del puppet -fi -%endif -exit 0 - -%preun server -%if 0%{?_with_systemd} -%systemd_preun puppetmaster.service -%else -if [ "$1" -eq 0 ]; then - /sbin/service puppetmaster stop &>/dev/null - /sbin/chkconfig --del puppetmaster -fi -%endif -exit 0 +%systemd_post %{name}.service %postun -%if 0%{?_with_systemd} -%systemd_postun_with_restart puppet.service -%else -if [ "$1" -ge 1 ]; then - /sbin/service puppet condrestart &>/dev/null -fi -%endif -exit 0 - -%postun server -%if 0%{?_with_systemd} -%systemd_postun_with_restart puppetmaster.service -%else -if [ "$1" -ge 1 ]; then - /sbin/service puppetmaster condrestart &>/dev/null -fi -%endif -exit 0 +%systemd_postun_with_restart %{name}.service %changelog +* Fri Oct 03 2025 Terje Rosten - 8.10.0-3 +- Add patch from openvox to fix dnf5 issue + +* Fri Jul 25 2025 Fedora Release Engineering - 8.10.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Apr 15 2025 Ewoud Kohl van Wijngaarden - 8.10.0-1 +- Update to 8.10.0 (fixes rhbz#2291351) +- Ruby 3.3 regexp incompability bugfix (fixes rhbz#2280109) +- Ruby 3.4 closedir bugfix (fixes rhbz#2349352) + +* Thu Jan 23 2025 Zbigniew Jędrzejewski-Szmek - 8.6.0-4 +- Add sysusers.d config file to allow rpm to create users/groups automatically + +* Sat Jan 18 2025 Fedora Release Engineering - 8.6.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Fri Jul 19 2024 Fedora Release Engineering - 8.6.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat Apr 20 2024 Breno Brand Fernandes - 8.6.0-1 +- Update to 8.6.0 (fixes rhbz#2274550) + +* Sun Mar 10 2024 Ewoud Kohl van Wijngaarden - 8.5.1-1 +- Update to 8.5.1 (fixes rhbz#2259039) + +* Fri Jan 26 2024 Fedora Release Engineering - 8.3.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 8.3.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Nov 14 2023 Ewoud Kohl van Wijngaarden - 8.3.1-1 +- Update to 8.3.1 (fixes rhbz#2233957) + +* Fri Jul 21 2023 Fedora Release Engineering - 8.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jun 8 2023 Breno Brand Fernandes - 8.1.0-1 +- Build 8.1.0 + +* Thu Jun 8 2023 Breno Brand Fernandes - 7.24.0-1 +- Build 7.24.0 + +* Fri Jan 20 2023 Fedora Release Engineering - 7.21.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Dec 17 2022 Ewoud Kohl van Wijngaarden - 7.21.0-1 +- Update to 7.21.0 (fixes rhbz#2151953) + +* Thu Oct 20 2022 Ewoud Kohl van Wijngaarden - 7.20.0-1 +- Update to 7.20.0 (fixes rhbz#2126546) + +* Sat Sep 17 2022 Ewoud Kohl van Wijngaarden - 7.19.0-1 +- Update to 7.19.0 (fixes rhbz#2126546) + +* Tue Aug 30 2022 Ewoud Kohl van Wijngaarden - 7.18.0-1 +- Update to 7.18.0 + +* Fri Jul 22 2022 Fedora Release Engineering - 7.17.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Jun 15 2022 Ewoud Kohl van Wijngaarden - 7.17.0-2 +- Require at least concurrent-ruby 1.1.9 (fixes rhbz#2077122) + +* Wed Jun 01 2022 Ewoud Kohl van Wijngaarden - 7.17.0-1 +- Update to 7.17.0 + +* Wed Apr 20 2022 Ewoud Kohl van Wijngaarden - 7.16.0-1 +- Update to 7.16.0 + +* Fri Jan 21 2022 Fedora Release Engineering - 7.12.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Sat Nov 27 2021 Igor Raits - 7.12.1-2 +- Drop obsolete dependency on cpp-hocon + +* Thu Nov 18 2021 Breno Brand Fernandes - 7.12.1-1 +- Update to 7.12.1 + +* Tue Aug 17 2021 Ewoud Kohl van Wijngaarden - 7.9.0-1 +- Update to 7.9.0 +- Revert paths to FHS standards + +* Fri Jul 23 2021 Fedora Release Engineering - 7.7.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jul 07 2021 Breno Brand Fernandes - 7.7.0-2 +- Updated puppet url + +* Mon Jul 05 2021 Breno Brand Fernandes - 7.7.0-2 +- Cleaning up the spec file, adding suggestions from ekohl (Ewoud Kohl van Wijngaarden) + +* Tue Jun 15 2021 Breno Brand Fernandes - 7.7.0-1 +- Update to 7.7.0 - latest version that supports ruby 3.0 + +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 5.5.20-4 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + +* Wed Jan 27 2021 Fedora Release Engineering - 5.5.20-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 5.5.20-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sat May 02 2020 Terje Rosten - 5.5.20-1 +- 5.5.20 +- Add patches to work (somewhat) with ruby 2.7 + +* Mon Feb 03 2020 Terje Rosten - 5.5.18-1 +- 5.5.18 + +* Thu Jan 30 2020 Fedora Release Engineering - 5.5.10-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Dec 04 2019 Alfrdo Moralejo - 5.5.10-9 +- Add rubygem-multi_json as dependency. + +* Sun Sep 22 2019 Terje Rosten - 5.5.10-8 +- Prefer /run over /var/run (rhbz#1710635) + +* Sun Sep 22 2019 Terje Rosten - 5.5.10-7 +- Drop buildroot prefix in nm_dispatcher_dir macro +- Fix wrong path for gem in puppetet_gem.rb (rhbz#1751385), + report and fix from Lucien Weller, thanks! + +* Thu Aug 22 2019 Lubomir Rintel - 5.5.10-6 +- Move the NetworkManager dispatcher script out of /etc + +* Fri Jul 26 2019 Fedora Release Engineering - 5.5.10-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Wed Mar 13 2019 Terje Rosten - 5.5.10-4 - Minor clean up diff --git a/sources b/sources index 0568f4a..7864b03 100644 --- a/sources +++ b/sources @@ -1,2 +1,12 @@ -SHA512 (puppet-5.5.10.tar.gz) = 70a5684289fc576853bf908adff44c1b1ce4b37d71236e7d7a8d140fa0e3cdd46a4b570cc7e493a3f47641f6be0c3b736ab04a178c30cce4244abe686378bf4b -SHA512 (puppet-5.5.10.tar.gz.asc) = 884e7f290c6dba7076f7e5c5038326d77997598252fbf432f0e6abcbb3fe676aa38ebe5d8df682e616fa757365de423dd074a174c5e4d4f699832fd6377bd487 +SHA512 (puppet-8.10.0.tar.gz) = 5fc7842695c12ba07ffafbc6e1b1bc0efab8d3b2587a01aabb8fd8c6de07c6e227b741190b138eeac94ae2ac557fe9909d836827f79292b981e5d0bd2f53b91b +SHA512 (puppet-8.10.0.tar.gz.asc) = 4f938b43edb84f99f6e2154f767452b954427f4f8604c6aa8baf76503b7b9924b1a579cad6666b84d1b5c8a5ede1df5a373882e3644f9e1c930c214a2aba64d8 +SHA512 (puppetlabs-augeas_core-1.5.0.tar.gz) = b480356bea541b26966a300cd4505e94fd8a21f93a3946824250bf1d864f2d65676c17be2c954769ee21c4cd7314c53cc5f4986651513079868fafca27873e48 +SHA512 (puppetlabs-cron_core-1.3.0.tar.gz) = 7687240dd12b90d57ac76e3553db8b3dd981ace76141abff3199dce6b08a2b1153e31ebc52aa1b2b3498cf5e4b5f717f3ba8cace1d70991fcffe463de0a8a8e5 +SHA512 (puppetlabs-host_core-1.3.0.tar.gz) = b2b3e4d64818189babb2958742cd8b1d71273fed7142ed0f5f556ea5519fa33acec0255008398d059fd9a22fefc095f25872f77e47ea5755e729b78202cfc1fb +SHA512 (puppetlabs-mount_core-1.3.0.tar.gz) = b99825a614e54a0d5bc99061cfa88de4fe7a8b1d4cfded04a113594ec4107a685fa872a8e2c956026d7f99284ac181549cb8243b94b46721c7617c82489a2cfd +SHA512 (puppetlabs-scheduled_task-3.2.0.tar.gz) = e6ba41bfc1b636c2c7a997a1b70e4a37f59abfd19ff338acd6c1a50fc8d9ac2f40feb9565cd52cb6ec1677c88d85cdda152f7ec05393ca94f3a01321fbca262d +SHA512 (puppetlabs-selinux_core-1.4.0.tar.gz) = c212d1ad6bd4aaf58723aa0a5902e1ef90c481e333fa6b04dec53ee7badfd5d4869f0f6851b469d54368b47eac807c794e630ddd8a6be50397360281acc80ab1 +SHA512 (puppetlabs-sshkeys_core-2.5.0.tar.gz) = 8793e4d198de50167bdde5e49f77ba62e2c08232bbc4d861dc7e3d6b24248c94f6c0d025679978efaf5d0413e1390b41224ca0222148feb8e7061950b6d567c4 +SHA512 (puppetlabs-yumrepo_core-2.1.0.tar.gz) = 3f129b1c2c8ca8eaf105839db4f07f51c1c1723b9d6545ea672b95c14915003f95b1fc92308e280552cee0e27505ce09db7ceb5c219ec274c63b91ca04dee758 +SHA512 (puppetlabs-zfs_core-1.6.1.tar.gz) = a1fa2b90beeb7f2798c59e5932d4320af8baf1b9f18775716bbdeee172331efb93c8e6510bf7798552d74982bd8999ee092968ecba251c590b6c921d2b8d8992 +SHA512 (puppetlabs-zone_core-1.2.0.tar.gz) = 0cae94798551875dbbb362956d39cdcf63f8c07a6ca330394966ce49385497028134927751c7f91a992a51be3acff5781788689b72af4b25ba8493931e635c87 diff --git a/tests/smoke/main.fmf b/tests/smoke/main.fmf new file mode 100644 index 0000000..ca3245b --- /dev/null +++ b/tests/smoke/main.fmf @@ -0,0 +1,4 @@ +summary: Basic smoke testing +require: puppet +test: ./test.sh +framework: beakerlib diff --git a/tests/smoke/test.sh b/tests/smoke/test.sh new file mode 100755 index 0000000..de07e21 --- /dev/null +++ b/tests/smoke/test.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +rlJournalStart + rlPhaseStartSetup + rlRun "tmp=\$(mktemp -d)" 0 "Create tmp directory" + rlRun "pushd $tmp" + rlRun "set -o pipefail" + rlAssertRpm puppet + rlPhaseEnd + + rlPhaseStartTest + rlRun -s "puppet --help" 0 "Check help message" + rlAssertNotGrep "warning" $rlRun_LOG -i + + rlRun "echo \"file { '${tmp}/applied-file': ensure => file, content => 'Hello World' }\" | puppet apply" 0 "Apply manifest" + rlAssertExists "${tmp}/applied-file" + rlAssertGrep "Hello World" "applied-file" + + rlRun "puppet resource exec test command='/usr/bin/rm ${tmp}/applied-file'" 0 "Exec resource" + rlAssertNotExists "${tmp}/applied-file" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $tmp" 0 "Remove tmp directory" + rlPhaseEnd +rlJournalEnd