diff --git a/.gitignore b/.gitignore index aa025ac..2b05148 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/insights-client-3.0.13.tar.gz +SOURCES/insights-client-3.1.0.tar.gz diff --git a/.insights-client.metadata b/.insights-client.metadata index 52ee5e9..69173ec 100644 --- a/.insights-client.metadata +++ b/.insights-client.metadata @@ -1 +1 @@ -45551b29abdd79a985f35198a8b04040ae2e591a SOURCES/insights-client-3.0.13.tar.gz +2c75dfb641d8e2f0a311531f90ba7644be759c8e SOURCES/insights-client-3.1.0.tar.gz diff --git a/SOURCES/0001-systemd-don-t-sleep-when-running-check-results.patch b/SOURCES/0001-systemd-don-t-sleep-when-running-check-results.patch new file mode 100644 index 0000000..aa8ea28 --- /dev/null +++ b/SOURCES/0001-systemd-don-t-sleep-when-running-check-results.patch @@ -0,0 +1,25 @@ +From 78f9a1cb2d36fa2d35f64280dc0caa06e1fefcc1 Mon Sep 17 00:00:00 2001 +From: Link Dupont +Date: Thu, 20 Aug 2020 10:31:47 -0400 +Subject: [PATCH] systemd: don't sleep when running "check-results" + +Resolves: RHBZ#1870186 +Signed-off-by: Link Dupont +--- + data/systemd/insights-client-results.service.in | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/data/systemd/insights-client-results.service.in b/data/systemd/insights-client-results.service.in +index 4f3b2c5..4866805 100644 +--- a/data/systemd/insights-client-results.service.in ++++ b/data/systemd/insights-client-results.service.in +@@ -17,6 +17,5 @@ After=network-online.target + [Service] + Type=oneshot + RemainAfterExit=no +-ExecStart=@bindir@/sleep 120 + ExecStart=@bindir@/insights-client --check-results + Restart=no +-- +2.25.1 + diff --git a/SPECS/insights-client.spec b/SPECS/insights-client.spec index 11c043b..4eb0c3c 100644 --- a/SPECS/insights-client.spec +++ b/SPECS/insights-client.spec @@ -1,257 +1,154 @@ -%if 0%{?rhel} != 8 -%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} -%endif %define _binaries_in_noarch_packages_terminate_build 0 Name: insights-client Summary: Uploads Insights information to Red Hat on a periodic basis -Version: 3.0.13 -Release: 1%{?dist} +Version: 3.1.0 +Release: 3%{?dist} Source0: https://github.com/redhatinsights/insights-client/archive/insights-client-%{version}.tar.gz +Patch0: 0001-systemd-don-t-sleep-when-running-check-results.patch Epoch: 0 License: GPLv2+ URL: http://cloud.redhat.com/insights Group: Applications/System Vendor: Red Hat, Inc. -Provides: redhat-access-insights = 1.0.13-3 Provides: redhat-access-insights = %{version}-%{release}%{?dist} -Obsoletes: redhat-access-insights -Obsoletes: redhat-access-proactive +Obsoletes: redhat-access-insights <= 1.0.13-2 +Obsoletes: redhat-access-proactive <= 1.0.13-2 + +BuildArch: noarch Requires: tar Requires: gpg Requires: pciutils -BuildArch: noarch -# RHEL 8 -%if 0%{?rhel} == 8 %{?__python3:Requires: %{__python3}} -Requires: platform-python-setuptools +%{?systemd_requires} Requires: python3-requests >= 2.6 Requires: python3-PyYAML Requires: python3-magic Requires: python3-six +Requires: platform-python-setuptools +Requires: coreutils +BuildRequires: wget +BuildRequires: binutils BuildRequires: python3-devel -BuildRequires: python3-six -BuildRequires: python3-setuptools - -# RHEL 6-7 -%else -Requires: python -Requires: python-setuptools -Requires: python-requests >= 2.6 -Requires: PyYAML -Requires: libcgroup -Requires: python-magic -Requires: python-six >= 1.9.0 -BuildRequires: python2-devel -BuildRequires: python-six -BuildRequires: python-setuptools -%endif - -# systemd/RHEL 6 deps -%if 0%{?rhel} == 6 -Requires: python-argparse -%else -%{?systemd_requires} -Requires: systemd BuildRequires: systemd -%endif +BuildRequires: pam + %description Sends insightful information to Red Hat for automated analysis %prep -%setup -q +%autosetup -p1 + + +%build +%{configure} PYTHON=%{_libexecdir}/platform-python +%{__make} + %install -rm -rf ${RPM_BUILD_ROOT} -%if 0%{?rhel} == 8 -%{__python3} setup.py install --root=${RPM_BUILD_ROOT} $PREFIX -pathfix.py -pni "%{__python3}" %{buildroot}%{python3_sitelib}/insights_client/{__init__.py,major_version.py,run.py} -pathfix.py -pni "%{__python3}" %{buildroot}%{_bindir}/insights-client -pathfix.py -pni "%{__python3}" %{buildroot}%{_bindir}/redhat-access-insights -%else -%{__python} setup.py install --root=${RPM_BUILD_ROOT} $PREFIX -%endif +%{make_install} +%{__install} -d -m 755 %{buildroot}/%{_localstatedir}/log/insights-client +%{__install} -d -m 755 %{buildroot}/%{_localstatedir}/lib/insights +%{__install} -D -m 644 %{_builddir}/%{name}-%{version}/data/insights-client.motd %{buildroot}/%{_sysconfdir}/insights-client/insights-client.motd -%post -%if 0%{?rhel} != 6 +%post %systemd_post %{name}.timer -%endif - -# Only perform migration from redhat-access-insights to insights-client -if [ $1 -eq 1 ]; then - #Migrate existing machine-id - if [ -f "/etc/redhat_access_proactive/machine-id" ]; then - cp /etc/redhat_access_proactive/machine-id /etc/insights-client/machine-id - fi - #Migrate OTHER existing machine-id - if [ -f "/etc/redhat-access-insights/machine-id" ]; then - cp /etc/redhat-access-insights/machine-id /etc/insights-client/machine-id - fi - #Migrate existing config - if [ -f "/etc/redhat-access-insights/redhat-access-insights.conf" ]; then - cp /etc/redhat-access-insights/redhat-access-insights.conf /etc/insights-client/insights-client.conf - sed -i 's/\[redhat-access-insights\]/\[insights-client\]/' /etc/insights-client/insights-client.conf - fi - #Migrate registration record - if [ -f "/etc/redhat-access-insights/.registered" ]; then - cp /etc/redhat-access-insights/.registered /etc/insights-client/.registered - fi - if [ -f "/etc/redhat-access-insights/.unregistered" ]; then - cp /etc/redhat-access-insights/.unregistered /etc/insights-client/.unregistered - fi - #Migrate last upload record - if [ -f "/etc/redhat-access-insights/.lastupload" ]; then - cp /etc/redhat-access-insights/.lastupload /etc/insights-client/.lastupload - fi - #Migrate remove.conf - if [ -f "/etc/redhat-access-insights/remove.conf" ]; then - cp /etc/redhat-access-insights/remove.conf /etc/insights-client/remove.conf +if [ -d %{_sysconfdir}/motd.d ]; then + if [ ! -e %{_sysconfdir}/motd.d/insights-client -a ! -L %{_sysconfdir}/motd.d/insights-client ]; then + if [ -e %{_localstatedir}/lib/insights/newest.egg ]; then + ln -sn /dev/null %{_sysconfdir}/motd.d/insights-client + else + ln -sn %{_sysconfdir}/insights-client/insights-client.motd %{_sysconfdir}/motd.d/insights-client + fi fi - if ! [ -d "/etc/redhat-access-insights" ]; then - mkdir /etc/redhat-access-insights - fi - # Symlink new cron job if the old one exists. Remove the old one - if [ -f "/etc/cron.daily/redhat-access-insights" ]; then - rm -f /etc/cron.daily/redhat-access-insights - %if 0%{?rhel} == 6 - ln -sf /etc/insights-client/insights-client.cron /etc/cron.daily/insights-client - %else - %_bindir/systemctl start insights-client.timer - %endif - fi fi -# if the logging directory isnt created then make it -if ! [ -d "/var/log/insights-client" ]; then -mkdir -m 750 /var/log/insights-client -fi +%systemd_post insights-register.path +%systemd_post insights-unregister.path -# if the library directory for eggs and such isn't present -# make it -if ! [ -d "/var/lib/insights" ]; then -mkdir -m 755 /var/lib/insights -fi - -%if 0%{?rhel} == 8 -#Link motd into place. Only do so if motd file doesn't exist and insights hasn't been used -if [ ! -e /etc/motd.d/insights-client -a ! -L /etc/motd.d/insights-client ]; then - mkdir -p /etc/motd.d - if [ -e /var/lib/insights/newest.egg ]; then - ln -sn /dev/null /etc/motd.d/insights-client - else - ln -sn /etc/insights-client/insights-client.motd /etc/motd.d/insights-client - fi -fi -%endif - -# always perform legacy symlinks -%posttrans -mkdir -p /etc/redhat-access-insights -ln -sf /etc/insights-client/insights-client.conf /etc/redhat-access-insights/redhat-access-insights.conf -ln -sf /etc/insights-client/insights-client.cron /etc/redhat-access-insights/redhat-access-insights.cron -ln -sf /etc/insights-client/.registered /etc/redhat-access-insights/.registered -ln -sf /etc/insights-client/.unregistered /etc/redhat-access-insights/.unregistered -ln -sf /etc/insights-client/.lastupload /etc/redhat-access-insights/.lastupload -ln -sf /etc/insights-client/machine-id /etc/redhat-access-insights/machine-id -# remove all ACLs on upgrade, forever and always -setfacl -Rb /var/lib/insights -setfacl -Rb /var/log/insights-client -setfacl -Rb /etc/insights-client %preun -%if 0%{?rhel} != 6 %systemd_preun %{name}.timer %systemd_preun %{name}.service -%endif +%systemd_preun insights-register.path +%systemd_preun insights-unregister.path %postun -if [ "$1" -eq 0 ]; then -# One run on removal, not upgrade -%if 0%{?rhel} != 6 -%_bindir/systemctl daemon-reload > /dev/null 2>&1 -%endif -rm -f /etc/cron.daily/insights-client -rm -f /etc/cron.weekly/insights-client -rm -f /etc/insights-client/.cache* -rm -f /etc/insights-client/.registered -rm -f /etc/insights-client/.unregistered -rm -f /etc/insights-client/.lastupload -rm -f /etc/insights-client/rpm.egg -rm -f /etc/insights-client/rpm.egg.asc -rm -f /etc/insights-client/.insights-core*.etag -rm -rf /var/lib/insights -# keep these to remove from previous install -rm -f /etc/ansible/facts.d/insights.fact -rm -f /etc/ansible/facts.d/insights_machine_id.fact -# remove symlink to old name on uninstall -rm -f %{_bindir}/redhat-access-insights -# remove symlinks to old configs -rm -rf /etc/redhat-access-insights/ -rm -f /etc/cron.daily/redhat-access-insights -rm -f /etc/cron.weekly/redhat-access-insights -%if 0%{?rhel} == 8 -rm -f /etc/motd.d/insights-client -%endif +%systemd_postun %{name}.timer +%systemd_postun %{name}.service +%systemd_postun insights-register.path +%systemd_postun insights-unregister.path +# Clean up files created by insights-client that are unowned by the RPM +if [ $1 -eq 0 ]; then + systemctl unmask insights-register.path + rm -f %{_sysconfdir}/cron.daily/insights-client + rm -f %{_sysconfdir}/ansible/facts.d/insights.fact + rm -f %{_sysconfdir}/ansible/facts.d/insights_machine_id.fact + rm -f %{_sysconfdir}/motd.d/insights-client + rm -f %{_localstatedir}/lib/insights/* fi + %clean -test "x$RPM_BUILD_ROOT" != "x" && rm -rf $RPM_BUILD_ROOT +rm -rf %{buildroot} + %files -%defattr(0600, root, root) -%config(noreplace) /etc/insights-client/*.conf -/etc/insights-client/.fallback.json -/etc/insights-client/.fallback.json.asc -/etc/insights-client/.exp.sed -%if 0%{?rhel} == 8 -%config(noreplace) %attr(644,root,root) /etc/insights-client/insights-client.motd -%endif - -%if 0%{?rhel} != 6 -%attr(644,root,root) %{_unitdir}/insights-client.service -%attr(644,root,root) %{_unitdir}/insights-client.timer -%endif - -%attr(440,root,root) /etc/insights-client/*.pem -%attr(440,root,root) /etc/insights-client/redhattools.pub.gpg - -%attr(755,root,root) %{_bindir}/insights-client -%attr(755,root,root) %{_bindir}/redhat-access-insights - -%if 0%{?rhel} == 6 -%attr(755,root,root) /etc/insights-client/insights-client.cron -%config(noreplace) %attr(644,root,root) /etc/sysconfig/insights-client -%endif - -%attr(644,root,root) /etc/insights-client/rpm.egg -%attr(644,root,root) /etc/insights-client/rpm.egg.asc - -%if 0%{?rhel} == 8 -%attr(755,root,root) %{python3_sitelib}/insights_client*.egg-info -%attr(644,root,root) %{python3_sitelib}/insights_client*.egg-info/* -%attr(644,root,root) %{python3_sitelib}/insights_client/*.py* -%attr(744,root,root) %{python3_sitelib}/insights_client/__pycache__ -%else -%attr(755,root,root) %{python_sitelib}/insights_client*.egg-info -%attr(644,root,root) %{python_sitelib}/insights_client*.egg-info/* -%attr(644,root,root) %{python_sitelib}/insights_client/*.py* -%endif - -%attr(750,root,root) /var/log/insights-client -%attr(755,root,root) /var/lib/insights +%config(noreplace) %{_sysconfdir}/insights-client/*.conf +%{_sysconfdir}/insights-client/insights-client.motd +%{_sysconfdir}/insights-client/.fallback.json* +%{_sysconfdir}/insights-client/.exp.sed +%{_sysconfdir}/insights-client/rpm.egg* +%{_bindir}/* +%{_unitdir}/* +%attr(440,root,root) %{_sysconfdir}/insights-client/*.pem +%attr(440,root,root) %{_sysconfdir}/insights-client/redhattools.pub.gpg +%{python3_sitelib}/insights_client/ +%{_localstatedir}/log/insights-client +%{_localstatedir}/lib/insights +%{_defaultdocdir}/%{name} + %doc %defattr(-, root, root) -/usr/share/man/man8/*.8.gz -/usr/share/man/man5/*.5.gz +%{_mandir}/man8/*.8.gz +%{_mandir}/man5/*.5.gz + %changelog +* Thu Aug 20 2020 Link Dupont - 3.1.0-3 +- Backport patch to disable sleeping a systemd unit (RHBZ#1870656) + +* Tue Aug 11 2020 Link Dupont - 3.1.0-2 +- Disable automatic registration of insights-client (RHBZ#1868116) + +* Thu Jul 23 2020 Link Dupont - 3.1.0-1 +- First release with core collection as the default collection medium +- Manpage and configuration updates for core collection parameters (RHCLOUD-4266) + +* Fri Jul 17 2020 Link Dupont - 3.0.15-1 +- Insights is automatically registered when a host is subscribed to RHSM (RHCLOUD-6538) +- Disable results checking by default (RHCLOUD-6204) + +* Thu Jun 11 2020 Link Dupont - 3.0.14-2 +- Backport patch that fixes shellcheck warnings (RHCLOUD-6204) + +* Wed Apr 29 2020 Link Dupont - 3.0.14-1 +- Removed printing to stdout in cron script (RHBZ#1828778) +- Add deprecation message when running legacy redhat-access-insights (RHCLOUD-5409) +- Update systemd timer to use timers.target (RHBZ#1798373) +- Fix an issue updating motd.d on relevant systems (RHCLOUD-6144) +- Update shipped core to version 3.0.161 (RHCLOUD-4457) +- Enable automatic checking for advisor results (RHCLOUD-4558) +- Ensure dependency on coreutils for timeout (RHCLOUD-5131) +- Build system converted to autotools (RHCLOUD-4333) + * Tue Feb 11 2020 Link Dupont - 3.0.13-1 - Resolves: RHBZ#1753991 @@ -303,6 +200,15 @@ test "x$RPM_BUILD_ROOT" != "x" && rm -rf $RPM_BUILD_ROOT * Tue Jun 5 2018 Jeremy Crafts - 3.0.4-0 - Initial RHEL 8 build +* Wed Mar 14 2018 Richard Brantley - 3.0.3-8 +- Resolves: rhbz#1555041 + +* Fri Feb 16 2018 Kyle Lape - 3.0.3-6 +- Persist systemd timer config between reboots + +* Wed Feb 7 2018 Kyle Lape - 3.0.3-2 +- Correct the version strings in Obsoletes and Provides in RPM spec + * Thu Jan 18 2018 Kyle Lape - 3.0.3-1 - RHEL 7 RPM now uses systemd service and timer instead of cron - Addition of IO and CPU cgroup constraints