puppet/puppet.spec
Breno Brand Fernandes 18faf10035 Update to 6.26.0
2022-01-26 15:09:57 -05:00

217 lines
8.1 KiB
RPMSpec

%global nm_dispatcher_dir %{_prefix}/lib/NetworkManager
%global puppet_libdir %{ruby_vendorlibdir}
Name: puppet
Version: 6.26.0
Release: 1%{?dist}
Summary: Network tool for managing many disparate systems
License: ASL 2.0
URL: https://puppetlabs.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
Source3: https://forge.puppet.com/v3/files/puppetlabs-mount_core-1.0.4.tar.gz
Source4: https://forge.puppet.com/v3/files/puppetlabs-host_core-1.0.3.tar.gz
Source5: https://forge.puppet.com/v3/files/puppetlabs-augeas_core-1.1.1.tar.gz
Source6: https://forge.puppet.com/v3/files/puppetlabs-cron_core-1.0.4.tar.gz
Source7: https://forge.puppet.com/v3/files/puppetlabs-scheduled_task-2.2.1.tar.gz
Source8: https://forge.puppet.com/v3/files/puppetlabs-selinux_core-1.0.4.tar.gz
Source9: https://forge.puppet.com/v3/files/puppetlabs-sshkeys_core-2.2.0.tar.gz
Source10: https://forge.puppet.com/v3/files/puppetlabs-yumrepo_core-1.0.7.tar.gz
Source11: https://forge.puppet.com/v3/files/puppetlabs-zfs_core-1.1.0.tar.gz
Source12: https://forge.puppet.com/v3/files/puppetlabs-zone_core-1.0.3.tar.gz
Source13: puppet-nm-dispatcher.systemd
Source14: start-puppet-wrapper
Source15: logrotate
BuildArch: noarch
# ruby-devel does not require the base package, but requires -libs instead
BuildRequires: ruby
BuildRequires: ruby-devel
BuildRequires: ruby-facter
BuildRequires: hiera
BuildRequires: systemd
Requires: hiera >= 3.3.1
Requires: facter >= 3.9.6
Requires: ruby-facter >= 3.9.6
Requires: rubygem-semantic_puppet >= 1.0.2
Requires: rubygem-puppet-resource_api
Requires: rubygem-deep_merge
Requires: rubygem-httpclient
Requires: rubygem-multi_json
Requires: rubygem-json
Requires: ruby-augeas >= 0.5.0
Requires: augeas >= 1.10.1
Requires: augeas-libs >= 1.10.1
Requires: cpp-hocon >= 0.2.1
Requires: rubygem-concurrent-ruby >= 1.0.5
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
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.
%prep
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup
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|/opt/puppetlabs/puppet/bin|%{_bindir}|' \
-e 's|/opt/puppetlabs/puppet/cache|%{_sharedstatedir}/puppet|' \
-e 's|/opt/puppetlabs/puppet/share/locale|%{_datadir}/puppetlabs/puppet/locale|' \
-e 's|/opt/puppetlabs/puppet/modules|%{_datadir}/puppetlabs/puppet/modules|' \
-e 's|/opt/puppetlabs/puppet/vendor_modules|%{_datadir}/puppetlabs/puppet/vendor_modules|' \
'{}' +
%install
ruby install.rb --destdir=%{buildroot} \
--bindir=%{_bindir} \
--logdir=%{_localstatedir}/log/puppetlabs/puppet \
--rundir=%{_rundir}/puppet \
--localedir=%{_datadir}/puppetlabs/puppet/locale \
--vardir=%{_sharedstatedir}/puppet \
--sitelibdir=%{puppet_libdir}
mkdir -p %{buildroot}/usr/share/puppetlabs/puppet/vendor_modules
for d in $(find -mindepth 1 -maxdepth 1 -type d -name 'puppetlabs-*'); do
modver=${d#*-}
mod=${modver%-*}
cp -a $d %{buildroot}%{_datadir}/puppetlabs/puppet/vendor_modules/$mod
done
install -Dp -m0644 %{SOURCE15} %{buildroot}%{_sysconfdir}/logrotate.d/puppet
%{__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 -Dpv -m0755 %{SOURCE13} \
%{buildroot}%{nm_dispatcher_dir}/dispatcher.d/98-%{name}
# Install the ext/ directory to %%{_datadir}/puppetlabs/%%{name}
install -d %{buildroot}%{_datadir}/puppetlabs/%{name}
cp -a ext/ %{buildroot}%{_datadir}/puppetlabs/%{name}
# Install wrappers for SELinux
install -Dp -m0755 %{SOURCE14} %{buildroot}%{_bindir}/start-puppet-agent
sed -i 's|^ExecStart=.*/bin/puppet|ExecStart=%{_bindir}/start-puppet-agent|' \
%{buildroot}%{_unitdir}/puppet.service
# Setup tmpfiles.d config
mkdir -p %{buildroot}%{_tmpfilesdir}
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}/puppetlabs/puppet/ext/{debian,solaris,suse,windows}
rm %{buildroot}%{_datadir}/puppetlabs/puppet/ext/redhat/*.init
rm %{buildroot}%{_datadir}/puppetlabs/puppet/ext/{build_defaults.yaml,project_data.yaml}
%files
%attr(-, puppet, puppet) %{_localstatedir}/log/puppetlabs
%attr(-, puppet, puppet) %{_datadir}/puppetlabs/puppet
%dir %attr(-, puppet, puppet) %{_datadir}/puppetlabs
%{_unitdir}/puppet.service
%{_unitdir}/puppetagent.service
%{_tmpfilesdir}/%{name}.conf
%dir %{nm_dispatcher_dir}
%dir %{nm_dispatcher_dir}/dispatcher.d
%{nm_dispatcher_dir}/dispatcher.d/98-puppet
%{_bindir}/start-puppet-agent
%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
%{_sharedstatedir}/puppet
%{_bindir}/puppet
%{_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-status.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-key.8*
%{_mandir}/man8/puppet-lookup.8*
%{_mandir}/man8/puppet-man.8*
%{_mandir}/man8/puppet-module.8*
%{_mandir}/man8/puppet-node.8*
%{_mandir}/man8/puppet-parser.8*
%config(noreplace) %attr(-, puppet, puppet) %dir %{_sysconfdir}/puppetlabs
%config(noreplace) %attr(-, puppet, puppet) %dir %{_sysconfdir}/puppetlabs/puppet
%config(noreplace) %attr(-, puppet, puppet) %dir %{_sysconfdir}/puppetlabs/code
%config(noreplace) %attr(644, puppet, puppet) %{_sysconfdir}/puppetlabs/puppet/auth.conf
%config(noreplace) %attr(644, puppet, puppet) %{_sysconfdir}/puppetlabs/puppet/puppet.conf
%config(noreplace) %attr(644, puppet, puppet) %{_sysconfdir}/puppetlabs/puppet/hiera.yaml
%config(noreplace) %attr(644, root, root) %{_sysconfdir}/logrotate.d/%{name}
%ghost %attr(755, puppet, puppet) %{_rundir}/%{name}
%pre
getent group puppet &>/dev/null || groupadd -r puppet -g 52 &>/dev/null
getent passwd puppet &>/dev/null || \
useradd -r -u 52 -g puppet -d /usr/local/puppetlabs -s /sbin/nologin \
-c "Puppet" puppet &>/dev/null
%post
%systemd_post puppet.service
%postun
%systemd_postun_with_restart puppet.service
%changelog
* Wed Jan 26 2022 Breno Brand Fernandes <brandfbb@gmail.com> - 6.26.0-1
- Update to 6.26.0
* Thu Nov 18 2021 Breno Brand Fernandes <brandfbb@gmail.com> - 6.25.1-1
- Update to 6.25.1
* Thu Oct 22 2020 Igor Raits <ignatenkobrain@fedoraproject.org> - 6.19.0-1
- Update to 6.19.0
* Sat Sep 26 2020 Igor Raits <ignatenkobrain@fedoraproject.org> - 6.18.0-1
- Update to 6.18.0
* Fri Aug 28 2020 Igor Raits <ignatenkobrain@fedoraproject.org> - 6.17.0-1
- Update to 6.17.0
- Verify GPG key of the main tarball
- Drop unneeded BuildRequires
- Trivial fixes in packaging
* Mon Jul 13 2020 Breno Brand Fernandes <brandfbb@gmail.com> - 6.14.0-1
- Build of puppet 6.