From 7880e6f1a16d9a6f7a4b1983c8f2682a06072703 Mon Sep 17 00:00:00 2001 From: slin14 Date: Thu, 8 Nov 2018 02:26:15 +0800 Subject: [PATCH] refactor logrotate Package logrotate-config is created to config logrotate.conf and logrotate.cron for logrotate. Pass build and basic deploy test. And confirmed logrotate.conf and logrotate.cron is the same as before. Story: 2003768 Task: 27598 Change-Id: I4792366018f7c4d4960bf1182c8c2ffee5625676 Signed-off-by: slin14 --- centos_iso_image.inc | 1 + centos_pkg_dirs | 1 + .../logrotate-config/centos/build_srpm.data | 2 + .../centos/logrotate-config.spec | 44 ++++ logging/logrotate-config/files/LICENSE | 202 ++++++++++++++++++ .../files/logrotate-cron.d | 0 logging/logrotate-config/files/logrotate.conf | 38 ++++ logging/logrotate/centos/build_srpm.data | 3 +- ...te-package-versioning-for-TIS-format.patch | 2 - ....patch => 0002-Add-upstream-patches.patch} | 4 +- .../meta_patches/0002-crond-adjustment.patch | 50 ----- .../meta_patches/0004-Add-su-patch.patch | 32 --- .../logrotate/centos/meta_patches/PATCH_ORDER | 4 +- .../0003-Add-su-root-to-logrotate.conf.patch | 26 --- 14 files changed, 292 insertions(+), 117 deletions(-) create mode 100644 logging/logrotate-config/centos/build_srpm.data create mode 100644 logging/logrotate-config/centos/logrotate-config.spec create mode 100644 logging/logrotate-config/files/LICENSE rename logging/{logrotate => logrotate-config}/files/logrotate-cron.d (100%) create mode 100644 logging/logrotate-config/files/logrotate.conf rename logging/logrotate/centos/meta_patches/{0003-Add-upstream-patches.patch => 0002-Add-upstream-patches.patch} (90%) delete mode 100644 logging/logrotate/centos/meta_patches/0002-crond-adjustment.patch delete mode 100644 logging/logrotate/centos/meta_patches/0004-Add-su-patch.patch delete mode 100644 logging/logrotate/centos/patches/0003-Add-su-root-to-logrotate.conf.patch diff --git a/centos_iso_image.inc b/centos_iso_image.inc index 2bea31703..c5b55f12c 100644 --- a/centos_iso_image.inc +++ b/centos_iso_image.inc @@ -208,6 +208,7 @@ lighttpd-mod_mysql_vhost # logrotate logrotate +logrotate-config # ntp ntp diff --git a/centos_pkg_dirs b/centos_pkg_dirs index 463e86362..eb6a7eadd 100644 --- a/centos_pkg_dirs +++ b/centos_pkg_dirs @@ -26,6 +26,7 @@ python/python-smartpm python/python-voluptuous networking/lldpd logging/logrotate +logging/logrotate-config utilities/nova-utils base/ntp base/pam diff --git a/logging/logrotate-config/centos/build_srpm.data b/logging/logrotate-config/centos/build_srpm.data new file mode 100644 index 000000000..da1e20bd8 --- /dev/null +++ b/logging/logrotate-config/centos/build_srpm.data @@ -0,0 +1,2 @@ +SRC_DIR="files" +TIS_PATCH_VER=0 diff --git a/logging/logrotate-config/centos/logrotate-config.spec b/logging/logrotate-config/centos/logrotate-config.spec new file mode 100644 index 000000000..22c9e739a --- /dev/null +++ b/logging/logrotate-config/centos/logrotate-config.spec @@ -0,0 +1,44 @@ +Summary: StarlingX logrotate Configuration File +Name: logrotate-config +Version: 1.0 +Release: %{tis_patch_ver}%{?_tis_dist} +License: Apache-2.0 +Group: config-files +Packager: StarlingX +URL: unknown +Source: %name-%version.tar.gz + +BuildArch: noarch +Requires: logrotate + +%define debug_package %{nil} + +%description +StarlingX logrotate configuration file + +%prep + +%setup + +%build + +%install +mkdir -p %{buildroot}%{_sysconfdir}/cron.d +install -m 644 logrotate-cron.d %{buildroot}%{_sysconfdir}/cron.d/logrotate +install -d %{buildroot}%{_datadir}/starlingx +install -m 644 logrotate.conf %{buildroot}%{_datadir}/starlingx/logrotate.conf + + +%post +if [ $1 -eq 1 ] ; then + cp -f %{_datadir}/starlingx/logrotate.conf %{_sysconfdir}/logrotate.conf + chmod 644 %{_sysconfdir}/logrotate.conf + mv %{_sysconfdir}/cron.daily/logrotate %{_sysconfdir}/logrotate.cron + chmod 700 %{_sysconfdir}/logrotate.cron +fi + +%files +%defattr(-,root,root) +%license LICENSE +%{_sysconfdir}/cron.d/logrotate +%{_datadir}/starlingx/logrotate.conf diff --git a/logging/logrotate-config/files/LICENSE b/logging/logrotate-config/files/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/logging/logrotate-config/files/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/logging/logrotate/files/logrotate-cron.d b/logging/logrotate-config/files/logrotate-cron.d similarity index 100% rename from logging/logrotate/files/logrotate-cron.d rename to logging/logrotate-config/files/logrotate-cron.d diff --git a/logging/logrotate-config/files/logrotate.conf b/logging/logrotate-config/files/logrotate.conf new file mode 100644 index 000000000..c7a6f0823 --- /dev/null +++ b/logging/logrotate-config/files/logrotate.conf @@ -0,0 +1,38 @@ +# see "man logrotate" for details +# rotate log files weekly +weekly + +# keep 4 weeks worth of backlogs +rotate 4 + +# create new (empty) log files after rotating old ones +create + +# use date as a suffix of the rotated file +dateext + +# Use su to rotate as root to ensure we don't fail due to dir permissions +su root root + +# uncomment this if you want your log files compressed +#compress + +# RPM packages drop log rotation information into this directory +include /etc/logrotate.d + +# no packages own wtmp and btmp -- we'll rotate them here +/var/log/wtmp { + monthly + create 0664 root utmp + minsize 1M + rotate 1 +} + +/var/log/btmp { + missingok + monthly + create 0600 root utmp + rotate 1 +} + +# system-specific logs may be also be configured here. diff --git a/logging/logrotate/centos/build_srpm.data b/logging/logrotate/centos/build_srpm.data index be9600150..0eac83bbb 100644 --- a/logging/logrotate/centos/build_srpm.data +++ b/logging/logrotate/centos/build_srpm.data @@ -1,2 +1 @@ -COPY_LIST="$PKG_BASE/files/*" -TIS_PATCH_VER=3 +TIS_PATCH_VER=4 diff --git a/logging/logrotate/centos/meta_patches/0001-Update-package-versioning-for-TIS-format.patch b/logging/logrotate/centos/meta_patches/0001-Update-package-versioning-for-TIS-format.patch index e5a307e52..b5361a125 100644 --- a/logging/logrotate/centos/meta_patches/0001-Update-package-versioning-for-TIS-format.patch +++ b/logging/logrotate/centos/meta_patches/0001-Update-package-versioning-for-TIS-format.patch @@ -3,8 +3,6 @@ From: Scott Little Date: Mon, 2 Oct 2017 16:22:44 -0400 Subject: [PATCH] WRS: 0001-Update-package-versioning-for-TIS-format.patch -Conflicts: - SPECS/logrotate.spec --- SPECS/logrotate.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logging/logrotate/centos/meta_patches/0003-Add-upstream-patches.patch b/logging/logrotate/centos/meta_patches/0002-Add-upstream-patches.patch similarity index 90% rename from logging/logrotate/centos/meta_patches/0003-Add-upstream-patches.patch rename to logging/logrotate/centos/meta_patches/0002-Add-upstream-patches.patch index 33f78a294..271eda812 100644 --- a/logging/logrotate/centos/meta_patches/0003-Add-upstream-patches.patch +++ b/logging/logrotate/centos/meta_patches/0002-Add-upstream-patches.patch @@ -11,7 +11,7 @@ diff --git a/SPECS/logrotate.spec b/SPECS/logrotate.spec index 0eac8bf..99a22ac 100644 --- a/SPECS/logrotate.spec +++ b/SPECS/logrotate.spec -@@ -49,6 +49,9 @@ Patch17: logrotate-3.8.6-config-mode-err.patch +@@ -48,6 +48,9 @@ Patch17: logrotate-3.8.6-config-mode-err.patch # fix #1483800 - update references to project page Patch18: logrotate-3.8.6-upstream-url.patch @@ -21,7 +21,7 @@ index 0eac8bf..99a22ac 100644 Requires: coreutils >= 5.92 popt BuildRequires: libselinux-devel popt-devel libacl-devel acl BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -@@ -86,6 +89,9 @@ log files on your system. +@@ -85,6 +88,9 @@ log files on your system. %patch17 -p1 %patch18 -p1 diff --git a/logging/logrotate/centos/meta_patches/0002-crond-adjustment.patch b/logging/logrotate/centos/meta_patches/0002-crond-adjustment.patch deleted file mode 100644 index 258867267..000000000 --- a/logging/logrotate/centos/meta_patches/0002-crond-adjustment.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 29fcff1071739e05f6623ffb7f5af828e2261e87 Mon Sep 17 00:00:00 2001 -From: Scott Little -Date: Mon, 2 Oct 2017 16:22:44 -0400 -Subject: WRS: crond-adjustment.patch - ---- - SPECS/logrotate.spec | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/SPECS/logrotate.spec b/SPECS/logrotate.spec -index 0dbde7d..0eac8bf 100644 ---- a/SPECS/logrotate.spec -+++ b/SPECS/logrotate.spec -@@ -7,6 +7,7 @@ Group: System Environment/Base - URL: https://github.com/logrotate/logrotate - Source: https://fedorahosted.org/releases/l/o/logrotate/logrotate-%{version}.tar.gz - Source1: rwtab -+Source2: logrotate-cron.d - Patch0: logrotate-3.8.6-force.patch - Patch1: logrotate-3.8.6-r465.patch - Patch2: logrotate-3.8.6-sortglob.patch -@@ -105,6 +106,10 @@ install -p -m 755 examples/logrotate.cron $RPM_BUILD_ROOT/%{_sysconfdir}/cron.da - mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rwtab.d - install -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/rwtab.d/logrotate - -+mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d -+install -m 644 %{SOURCE2} $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/logrotate -+mv $RPM_BUILD_ROOT/%{_sysconfdir}/cron.daily/logrotate $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.cron -+ - %pre - # If /var/lib/logrotate/logrotate.status does not exist, create it and copy - # the /var/lib/logrotate.status in it (if it exists). We have to do that in pre -@@ -124,12 +129,13 @@ rm -rf $RPM_BUILD_ROOT - %attr(0755, root, root) %{_sbindir}/logrotate - %attr(0644, root, root) %{_mandir}/man8/logrotate.8* - %attr(0644, root, root) %{_mandir}/man5/logrotate.conf.5* --%attr(0700, root, root) %config(noreplace) %{_sysconfdir}/cron.daily/logrotate - %attr(0644, root, root) %config(noreplace) %{_sysconfdir}/logrotate.conf - %attr(0755, root, root) %dir %{_sysconfdir}/logrotate.d - %attr(0755, root, root) %dir %{_localstatedir}/lib/logrotate - %attr(0644, root, root) %ghost %verify(not size md5 mtime) %{_localstatedir}/lib/logrotate/logrotate.status - %config(noreplace) %{_sysconfdir}/rwtab.d/logrotate -+%{_sysconfdir}/cron.d/logrotate -+%attr(0700, root, root) %{_sysconfdir}/logrotate.cron - - %changelog - * Mon Sep 25 2017 Kamil Dudka - 3.8.6-15 --- -2.7.4 - diff --git a/logging/logrotate/centos/meta_patches/0004-Add-su-patch.patch b/logging/logrotate/centos/meta_patches/0004-Add-su-patch.patch deleted file mode 100644 index deddb5134..000000000 --- a/logging/logrotate/centos/meta_patches/0004-Add-su-patch.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 6944018ddd79b3b131b91eb1b5e569db5d73e952 Mon Sep 17 00:00:00 2001 -From: Don Penney -Date: Fri, 19 Jan 2018 23:38:21 -0500 -Subject: Add su patch - ---- - SPECS/logrotate.spec | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/SPECS/logrotate.spec b/SPECS/logrotate.spec -index 99a22ac..ba5fa45 100644 ---- a/SPECS/logrotate.spec -+++ b/SPECS/logrotate.spec -@@ -51,6 +51,7 @@ Patch18: logrotate-3.8.6-upstream-url.patch - - Patch10001: 0001-createOutputFile-rename-already-existing-file.patch - Patch10002: 0002-createOutputFile-eliminate-stat-open-TOCTOU-race.patch -+Patch10003: 0003-Add-su-root-to-logrotate.conf.patch - - Requires: coreutils >= 5.92 popt - BuildRequires: libselinux-devel popt-devel libacl-devel acl -@@ -91,6 +92,7 @@ log files on your system. - - %patch10001 -p1 - %patch10002 -p1 -+%patch10003 -p1 - - %build - make %{?_smp_mflags} RPM_OPT_FLAGS="$RPM_OPT_FLAGS" WITH_SELINUX=yes WITH_ACL=yes --- -2.7.4 - diff --git a/logging/logrotate/centos/meta_patches/PATCH_ORDER b/logging/logrotate/centos/meta_patches/PATCH_ORDER index 372b0fdc9..26e1a4ef1 100644 --- a/logging/logrotate/centos/meta_patches/PATCH_ORDER +++ b/logging/logrotate/centos/meta_patches/PATCH_ORDER @@ -1,4 +1,2 @@ 0001-Update-package-versioning-for-TIS-format.patch -0002-crond-adjustment.patch -0003-Add-upstream-patches.patch -0004-Add-su-patch.patch +0002-Add-upstream-patches.patch diff --git a/logging/logrotate/centos/patches/0003-Add-su-root-to-logrotate.conf.patch b/logging/logrotate/centos/patches/0003-Add-su-root-to-logrotate.conf.patch deleted file mode 100644 index e2b40f144..000000000 --- a/logging/logrotate/centos/patches/0003-Add-su-root-to-logrotate.conf.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 536a805bdb2be64b91df6fe18589340ad8aec066 Mon Sep 17 00:00:00 2001 -From: Don Penney -Date: Fri, 19 Jan 2018 23:36:54 -0500 -Subject: [PATCH] Add su root to logrotate.conf - ---- - examples/logrotate-default | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/examples/logrotate-default b/examples/logrotate-default -index 7da6bb7..c7a6f08 100644 ---- a/examples/logrotate-default -+++ b/examples/logrotate-default -@@ -11,6 +11,9 @@ create - # use date as a suffix of the rotated file - dateext - -+# Use su to rotate as root to ensure we don't fail due to dir permissions -+su root root -+ - # uncomment this if you want your log files compressed - #compress - --- -1.8.3.1 -