Compare commits

...
Sign in to create a new pull request.

60 commits

Author SHA1 Message Date
Terje Røsten
3eddbf4082 Add patch from openvox to fix dnf5 issue 2025-10-03 11:27:30 +02:00
Fedora Release Engineering
9b710b2b23 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 06:16:56 +00:00
Ewoud Kohl van Wijngaarden
2c952e70a2
Update to 8.10.0
... rhbz#2291351
- Ruby 3.3 compatibility fix rhbz#2280109
- Ruby 3.4 compatibility fix rhbz#2349352
2025-04-15 16:07:03 +02:00
Zbigniew Jędrzejewski-Szmek
86d01f52bb Add sysusers.d config file to allow rpm to create users/groups automatically 2025-01-29 14:38:27 +01:00
Fedora Release Engineering
a5bd42b30d Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-18 11:04:53 +00:00
Fedora Release Engineering
f99c309c62 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-19 08:44:12 +00:00
Breno Brand Fernandes
e2a1828ffc Bugfix on readme 2024-04-20 02:25:33 -04:00
Breno Brand Fernandes
81ec2372e4 Testing and push steps in the readme 2024-04-20 02:17:34 -04:00
Breno Brand Fernandes
4f21b7c12e Update to 8.6.0 (fixes rhbz#2274550) 2024-04-20 02:06:10 -04:00
Ewoud Kohl van Wijngaarden
c9ee8964f8
Update to 8.5.1 (fixes rhbz#2259039) 2024-03-11 00:48:11 +01:00
Ewoud Kohl van Wijngaarden
d304672e2f
Add a small README to simplify updating 2024-03-10 23:29:00 +01:00
Ewoud Kohl van Wijngaarden
007a2a2a0e
Add EPEL to gating config 2024-03-10 16:30:09 +01:00
Fedora Release Engineering
2b273833ea Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-26 00:21:48 +00:00
Fedora Release Engineering
59844c2777 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-21 22:35:43 +00:00
Ewoud Kohl van Wijngaarden
59974bc913
Update command in comment for correct sources
The git tags are now prefixed by v so the regex needs to reflect that.
2023-11-17 15:22:25 +01:00
Ewoud Kohl van Wijngaarden
4ba8b5f472
Update to 8.3.1 (fixes rhbz#2233957) 2023-11-14 23:24:04 +01:00
Fedora Release Engineering
e61e5b0571 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-21 06:31:21 +00:00
Breno Brand Fernandes
0c86f5071f Include files for 8.1.0 2023-06-23 04:42:06 -04:00
Breno Brand Fernandes
b435333ebc Build puppet 8.1.0 2023-06-23 04:41:22 -04:00
Breno Brand Fernandes
145f512cd2 Update src files for 7.24 2023-06-08 00:40:23 -04:00
Breno Brand Fernandes
aecd12514f Update puppet to 7.24.0 2023-06-08 00:32:38 -04:00
Fedora Release Engineering
cd482a042b Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-20 10:29:45 +00:00
Ewoud Kohl van Wijngaarden
c3ff3326f1
Update to 7.21.0 2022-12-17 14:22:29 +01:00
Ewoud Kohl van Wijngaarden
5c59d45ff4
Add gating on tests 2022-10-20 14:11:06 +02:00
Ewoud Kohl van Wijngaarden
44f1d5e10b
Update to 7.20.0 2022-10-20 14:04:02 +02:00
Ewoud Kohl van Wijngaarden
870fc73fa1
Update to 7.19.0 2022-09-17 14:54:56 +02:00
Ewoud Kohl van Wijngaarden
9017a79c57
Update to 7.18.0 2022-08-30 18:51:06 +02:00
Fedora Release Engineering
b4b3086744 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-22 15:37:30 +00:00
Ewoud Kohl van Wijngaarden
786139b961
Add tests using tmt 2022-06-21 12:03:18 +02:00
Ewoud Kohl van Wijngaarden
65dda53fbe
Require at least concurrent-ruby 1.1.9
Fixes rhbz#2077122
2022-06-15 13:54:33 +02:00
Ewoud Kohl van Wijngaarden
ddd86b7d5d
Update to 7.17.0 2022-06-01 18:35:13 +02:00
Ewoud Kohl van Wijngaarden
4bc6604985
Update to 7.16.0 2022-04-20 11:39:10 +02:00
Fedora Release Engineering
73e16243b2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-21 09:39:28 +00:00
Igor Raits
bc15811b40
Drop unneded dependency on cpp-hocon
Signed-off-by: Igor Raits <ignatenkobrain@fedoraproject.org>
2021-11-27 17:32:09 +01:00
Breno Brand Fernandes
d3d27b1e3f Updating sources 2021-11-18 20:32:45 -05:00
Breno Brand Fernandes
4f3b23ce3b Update to 7.12.1 2021-11-18 20:32:28 -05:00
Ewoud Kohl van Wijngaarden
a9a7dc1d70
Update to 7.9.0
- Update bundled modules (and sort them)
- Update gem dependencies
- Revert paths to FHS standards
2021-08-18 18:32:37 +02:00
Ewoud Kohl van Wijngaarden
f132964acb
Remove unused file
In 4ecda1c3d8 this was removed from the
spec file but the file remained in the repository.

Fixes: 4ecda1c3d8
2021-08-17 12:43:15 +02:00
Ewoud Kohl van Wijngaarden
6ac02046f5
Ignore mockbuild's results_puppet directory 2021-08-17 12:43:15 +02:00
Fedora Release Engineering
f9f2ad1c13 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 04:16:15 +00:00
Breno Brand Fernandes
8535a17a66 Updated puppet url 2021-07-07 17:23:50 -04:00
Breno Brand Fernandes
2ab5939cfe Cleaning up the spec file, adding suggestions from ekohl (Ewoud Kohl van Wijngaarden) 2021-07-05 19:37:02 -04:00
Breno Brand Fernandes
f61ad04915 Changed ownership of files in /etc/puppetlabs 2021-07-04 10:41:18 -04:00
Breno Brand Fernandes
42eb2eff11 Updated sources with missing file 2021-07-01 10:42:41 -04:00
Breno Brand Fernandes
cfea9bd83e Removed old gpg 2021-07-01 10:31:50 -04:00
Breno Brand Fernandes
d4979b9a4d Changed back paths due to conflicts with other packages 2021-07-01 10:29:51 -04:00
Breno Brand Fernandes
4ecda1c3d8 Puppet 7.7 build -- ruby 3 2021-07-01 09:27:07 -04:00
Zbigniew Jędrzejewski-Szmek
a95697f47f Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
2021-03-02 16:12:58 +01:00
Fedora Release Engineering
e8e5fc2c0d - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 08:45:16 +00:00
Fedora Release Engineering
eae5785be4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-28 23:10:54 +00:00
Terje Rosten
0e3a651935 Update to 5.5.20 and add patches to work (somewhat) with ruby 2.7 2020-05-02 12:46:44 +02:00
Igor Raits
558a3731eb
Fixup conditionals for EL8
Signed-off-by: Igor Raits <ignatenkobrain@fedoraproject.org>
2020-04-13 16:38:50 +02:00
Terje Rosten
e3ee5466f4 5.5.18 2020-02-05 19:33:40 +01:00
Fedora Release Engineering
ef734ac796 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-30 09:58:50 +00:00
Alfredo Moralejo
1b29836c46 Add rubygem-multi_json as dependency
It's dependency upstream and without it fail to build modules in some cases, depending on the structure of metadata.json.

[1] https://github.com/puppetlabs/puppet/blob/5.5.x/.gemspec#L41
[2] https://github.com/puppetlabs/puppet/blob/5.5.x/lib/puppet/util/json.rb#L18
2019-12-04 16:59:26 +00:00
Terje Røsten
d9d4410a87 Prefer /run over /var/run (rhbz#1710635) 2019-09-22 11:54:12 +02:00
Terje Røsten
e24a065f4c 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!
2019-09-22 11:35:32 +02:00
Lucien Weller
d6582b3eec fix: fixed wrong path for gem in puppet_gem.rb
fixes issue https://bugzilla.redhat.com/show_bug.cgi?id=1751385
2019-09-12 07:29:41 +02:00
Lubomir Rintel
38afc62ebd Move the NetworkManager dispatcher script out of /etc
It's not user configuration and shouldn't ever have been there. Except for that
it used to be the only location NetworkManager looked into. With NetworkManager
1.20 that is no longer the case and the dispatcher scripts can be moved to
/usr/lib.
2019-08-22 17:07:29 +02:00
Fedora Release Engineering
f96b2ccfcc - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-26 11:30:58 +00:00
20 changed files with 600 additions and 514 deletions

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

2
.gitignore vendored
View file

@ -4,3 +4,5 @@
*.tar.gz.asc
/puppet-*/
/.build*.log
results_puppet/
/tests/*/log.txt

View file

@ -0,0 +1,41 @@
From 2032d928c2520cba988fe57f888011a286bae1c8 Mon Sep 17 00:00:00 2001
From: Ewoud Kohl van Wijngaarden <ewoud@kohlvanwijngaarden.nl>
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

View file

@ -1,45 +0,0 @@
From 23bcde066d9915952b9bf2c8fd0770a2ce9422ce Mon Sep 17 00:00:00 2001
From: Haikel Guemar <hguemar@redhat.com>
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

View file

@ -1,46 +0,0 @@
From f54a22b96e9e631991bad095a7b321273a2e6e3f Mon Sep 17 00:00:00 2001
From: Gael Chamoulaud <gchamoul@redhat.com>
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

View file

@ -1,24 +0,0 @@
From 5688991cd78f7c38a1edf28f76e9b7825a7d415a Mon Sep 17 00:00:00 2001
From: Dominic Cleal <dominic@cleal.org>
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

View file

@ -1,28 +0,0 @@
From 76031db0120ef8a3bdee576ca4aac9dc8b2859af Mon Sep 17 00:00:00 2001
From: Emilien Macchi <emilien@redhat.com>
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

View file

@ -1,27 +0,0 @@
From ffd3da258dd526369d63df022a2fa57f6ed6c473 Mon Sep 17 00:00:00 2001
From: Dominic Cleal <dominic@cleal.org>
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

48
README.md Normal file
View file

@ -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
```

View file

@ -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-----

16
gating.yaml Normal file
View file

@ -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}

21
logrotate Normal file
View file

@ -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
}

84
openvox-dnf5.patch Normal file
View file

@ -0,0 +1,84 @@
commit 26d3405df7f35497ec07942c44c292bb25d60210
Author: Lars Haugan <lars.haugan@sparebank1.no>
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 <lars.haugan@sparebank1.no>
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\.$/

7
plans/lookup.fmf Normal file
View file

@ -0,0 +1,7 @@
summary: Run puppet lookup
prepare:
how: install
package: puppet
execute:
how: tmt
script: puppet lookup --explain foo

5
plans/smoke.fmf Normal file
View file

@ -0,0 +1,5 @@
summary: Basic smoke test
discover:
how: fmf
execute:
how: tmt

View file

@ -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 || :

View file

@ -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 <<EOF
u puppet 52 'Puppet' - -
EOF
%install
rm -rf %{buildroot}
ruby install.rb --destdir=%{buildroot} \
--configdir=%{_sysconfdir}/puppet \
--bindir=%{_bindir} --vardir=%{_localstatedir}/cache/puppet \
--logdir=%{_localstatedir}/log/puppet \
--rundir=%{_localstatedir}/log/puppet \
--localedir=%{_datadir}/%{name}/locale \
--quick --no-rdoc --sitelibdir=%{puppet_libdir}
--bindir=%{_bindir} \
--configdir=%{_sysconfdir}/%{name} \
--codedir=%{_sysconfdir}/%{name}/code \
--logdir=%{_localstatedir}/log/%{name} \
--rundir=%{_rundir}/%{name} \
--localedir=%{_datadir}/%{name}/locale \
--vardir=%{_sharedstatedir}/%{name} \
--publicdir=%{_sharedstatedir}/%{name}/public \
--sitelibdir=%{puppet_libdir}
mkdir -p %{buildroot}%{_datadir}/%{name}/vendor_modules
for d in $(find -mindepth 1 -maxdepth 1 -type d -name 'puppetlabs-*'); do
modver=${d#*-}
mod=${modver%-*}
cp -a $d %{buildroot}%{_datadir}/%{name}/vendor_modules/$mod
done
install -d -m0755 %{buildroot}%{_sysconfdir}/puppet/manifests
install -d -m0755 %{buildroot}%{_datadir}/%{name}/modules
install -d -m0755 %{buildroot}%{_localstatedir}/lib/puppet
install -d -m0755 %{buildroot}%{_localstatedir}/run/puppet
install -d -m0750 %{buildroot}%{_localstatedir}/log/puppet
install -d -m0750 %{buildroot}%{_localstatedir}/cache/puppet
install -Dp -m0644 %{SOURCE15} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
%if 0%{?_with_systemd}
%{__install} -d -m0755 %{buildroot}%{_unitdir}
install -Dp -m0644 ext/systemd/puppet.service %{buildroot}%{_unitdir}/puppet.service
ln -s %{_unitdir}/puppet.service %{buildroot}%{_unitdir}/puppetagent.service
install -Dp -m0644 ext/systemd/puppetmaster.service %{buildroot}%{_unitdir}/puppetmaster.service
%else
install -Dp -m0644 %{confdir}/client.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/puppet
install -Dp -m0755 %{confdir}/client.init %{buildroot}%{_initrddir}/puppet
install -Dp -m0644 %{confdir}/server.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/puppetmaster
install -Dp -m0755 %{confdir}/server.init %{buildroot}%{_initrddir}/puppetmaster
install -Dp -m0755 %{confdir}/queue.init %{buildroot}%{_initrddir}/puppetqueue
%endif
install -Dp -m0644 %{confdir}/auth.conf %{buildroot}%{_sysconfdir}/puppet/auth.conf
install -Dp -m0644 %{confdir}/fileserver.conf %{buildroot}%{_sysconfdir}/puppet/fileserver.conf
install -Dp -m0644 %{confdir}/puppet.conf %{buildroot}%{_sysconfdir}/puppet/puppet.conf
install -Dp -m0644 ext/redhat/logrotate %{buildroot}%{_sysconfdir}/logrotate.d/puppet
install -d -m0755 %{buildroot}%{_unitdir}
install -Dp -m0644 ext/systemd/puppet.service %{buildroot}%{_unitdir}/%{name}.service
install -D -m0644 puppet.sysusers.conf %{buildroot}%{_sysusersdir}/puppet.conf
# Note(hguemar): Conflicts with config file from hiera package
rm %{buildroot}%{_sysconfdir}/puppet/hiera.yaml
rm %{buildroot}%{_sysconfdir}/%{name}/hiera.yaml
# Install a NetworkManager dispatcher script to pickup changes to
# /etc/resolv.conf and such (https://bugzilla.redhat.com/532085).
%if 0%{?_with_systemd}
install -Dpv -m0755 %{SOURCE3} \
%{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d/98-%{name}
%else
install -Dpv -m0755 %{SOURCE2} \
%{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d/98-%{name}
%endif
install -Dpv -m0755 %{SOURCE13} \
%{buildroot}%{nm_dispatcher_dir}/dispatcher.d/98-%{name}
# Install the ext/ directory to %%{_datadir}/%%{name}
install -d %{buildroot}%{_datadir}/%{name}
cp -a ext/ %{buildroot}%{_datadir}/%{name}
chmod 0755 %{buildroot}%{_datadir}/%{name}/ext/regexp_nodes/regexp_nodes.rb
# Install wrappers for SELinux
install -Dp -m0755 %{SOURCE4} %{buildroot}%{_bindir}/start-puppet-agent
install -Dp -m0755 %{SOURCE4} %{buildroot}%{_bindir}/start-puppet-master
install -Dp -m0755 %{SOURCE4} %{buildroot}%{_bindir}/start-puppet-ca
%if 0%{?_with_systemd}
sed -i 's|^ExecStart=.*/bin/puppet|ExecStart=/usr/bin/start-puppet-master|' \
%{buildroot}%{_unitdir}/puppetmaster.service
sed -i 's|^ExecStart=.*/bin/puppet|ExecStart=/usr/bin/start-puppet-agent|' \
%{buildroot}%{_unitdir}/puppet.service
%endif
install -Dp -m0755 %{SOURCE14} %{buildroot}%{_bindir}/start-puppet-agent
sed -i 's|^ExecStart=.*/bin/puppet|ExecStart=%{_bindir}/start-puppet-agent|' \
%{buildroot}%{_unitdir}/%{name}.service
%if 0%{?fedora} >= 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 <terjeros@gmail.com> - 8.10.0-3
- Add patch from openvox to fix dnf5 issue
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 8.10.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Tue Apr 15 2025 Ewoud Kohl van Wijngaarden <ewoud@kohlvanwijngaarden.nl> - 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 <zbyszek@in.waw.pl> - 8.6.0-4
- Add sysusers.d config file to allow rpm to create users/groups automatically
* Sat Jan 18 2025 Fedora Release Engineering <releng@fedoraproject.org> - 8.6.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Fri Jul 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 8.6.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sat Apr 20 2024 Breno Brand Fernandes <breno.brandfernandes@achievers.com> - 8.6.0-1
- Update to 8.6.0 (fixes rhbz#2274550)
* Sun Mar 10 2024 Ewoud Kohl van Wijngaarden <ewoud@kohlvanwijngaarden.nl> - 8.5.1-1
- Update to 8.5.1 (fixes rhbz#2259039)
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 8.3.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 8.3.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Tue Nov 14 2023 Ewoud Kohl van Wijngaarden <ewoud@kohlvanwijngaarden.nl> - 8.3.1-1
- Update to 8.3.1 (fixes rhbz#2233957)
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 8.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jun 8 2023 Breno Brand Fernandes <brandfbb@gmail.com> - 8.1.0-1
- Build 8.1.0
* Thu Jun 8 2023 Breno Brand Fernandes <brandfbb@gmail.com> - 7.24.0-1
- Build 7.24.0
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 7.21.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sat Dec 17 2022 Ewoud Kohl van Wijngaarden <ewoud@kohlvanwijngaarden.nl> - 7.21.0-1
- Update to 7.21.0 (fixes rhbz#2151953)
* Thu Oct 20 2022 Ewoud Kohl van Wijngaarden <ewoud@kohlvanwijngaarden.nl> - 7.20.0-1
- Update to 7.20.0 (fixes rhbz#2126546)
* Sat Sep 17 2022 Ewoud Kohl van Wijngaarden <ewoud@kohlvanwijngaarden.nl> - 7.19.0-1
- Update to 7.19.0 (fixes rhbz#2126546)
* Tue Aug 30 2022 Ewoud Kohl van Wijngaarden <ewoud@kohlvanwijngaarden.nl> - 7.18.0-1
- Update to 7.18.0
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 7.17.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jun 15 2022 Ewoud Kohl van Wijngaarden <ewoud@kohlvanwijngaarden.nl> - 7.17.0-2
- Require at least concurrent-ruby 1.1.9 (fixes rhbz#2077122)
* Wed Jun 01 2022 Ewoud Kohl van Wijngaarden <ewoud@kohlvanwijngaarden.nl> - 7.17.0-1
- Update to 7.17.0
* Wed Apr 20 2022 Ewoud Kohl van Wijngaarden <ewoud@kohlvanwijngaarden.nl> - 7.16.0-1
- Update to 7.16.0
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 7.12.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Sat Nov 27 2021 Igor Raits <ignatenkobrain@fedoraproject.org> - 7.12.1-2
- Drop obsolete dependency on cpp-hocon
* Thu Nov 18 2021 Breno Brand Fernandes <brandfbb@gmail.com> - 7.12.1-1
- Update to 7.12.1
* Tue Aug 17 2021 Ewoud Kohl van Wijngaarden <ewoud+fedora@kohlvanwijngaarden.nl> - 7.9.0-1
- Update to 7.9.0
- Revert paths to FHS standards
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 7.7.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jul 07 2021 Breno Brand Fernandes <brandfbb@gmail.com> - 7.7.0-2
- Updated puppet url
* Mon Jul 05 2021 Breno Brand Fernandes <brandfbb@gmail.com> - 7.7.0-2
- Cleaning up the spec file, adding suggestions from ekohl (Ewoud Kohl van Wijngaarden)
* Tue Jun 15 2021 Breno Brand Fernandes <brandfbb@gmail.com> - 7.7.0-1
- Update to 7.7.0 - latest version that supports ruby 3.0
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 5.5.20-4
- Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 5.5.20-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.5.20-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Sat May 02 2020 Terje Rosten <terje.rosten@ntnu.no> - 5.5.20-1
- 5.5.20
- Add patches to work (somewhat) with ruby 2.7
* Mon Feb 03 2020 Terje Rosten <terje.rosten@ntnu.no> - 5.5.18-1
- 5.5.18
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.5.10-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Dec 04 2019 Alfrdo Moralejo <amoralej@redhat.com> - 5.5.10-9
- Add rubygem-multi_json as dependency.
* Sun Sep 22 2019 Terje Rosten <terje.rosten@ntnu.no> - 5.5.10-8
- Prefer /run over /var/run (rhbz#1710635)
* Sun Sep 22 2019 Terje Rosten <terje.rosten@ntnu.no> - 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 <lkundrak@v3.sk> - 5.5.10-6
- Move the NetworkManager dispatcher script out of /etc
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.5.10-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Wed Mar 13 2019 Terje Rosten <terje.rosten@ntnu.no> - 5.5.10-4
- Minor clean up

14
sources
View file

@ -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

4
tests/smoke/main.fmf Normal file
View file

@ -0,0 +1,4 @@
summary: Basic smoke testing
require: puppet
test: ./test.sh
framework: beakerlib

29
tests/smoke/test.sh Executable file
View file

@ -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