diff --git a/logrotate-3.20.1.tar.xz b/logrotate-3.20.1.tar.xz deleted file mode 100644 index c658bfb..0000000 --- a/logrotate-3.20.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:742f6d6e18eceffa49a4bacd933686d3e42931cfccfb694d7f6369b704e5d094 -size 166712 diff --git a/logrotate-3.20.1.tar.xz.asc b/logrotate-3.20.1.tar.xz.asc deleted file mode 100644 index 3050d1a..0000000 --- a/logrotate-3.20.1.tar.xz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCAAdFiEEmSqW4HUFbnnNghT5hz2zdXKjezYFAmKOSz8ACgkQhz2zdXKj -ezZHew/+Oc/4nfltNNFkK1FPmkfqNrehh69ho0AXDoR4Wtocyz9RTPL8Llfm4gEd -As1vzySNbUoGTJfDdnrhHZbBkrcLknZ8di8lQu9hkh/n7jB83ZxOFrUQv1bt2xbJ -W+Y3shL4X3TMdVkvsmH0o4VyMEJYcPMbuAUuLwPhRYTwgNCgwhSdb2xyYbsKyFYU -mnrmqeYIy4sXtAv+JPZLogBXmhx9ZbKV4qBY9zPlwvXaKyqJu47bgoUcEH9Kf54C -8f9k48+vJ8iyK3j4IAAjXqR/x+GCPQU0Px2Ft4KgFIMoC94IsUwEJQlZ08yzBL7s -ohoJJ/+9rjJI45t1JYRYmPEcGj1CaB05CbwJOOEk+x4AfzkZj6dZ0vm8M7Ux6PNb -eph/rOyEeAVxkUP17BdA9GmUTBgCM7nI4yFtXdY73qgMWBOUJR8iKbVqvL7/ke+7 -rpTg7qp5VRFOQ1uEyRxAnqpfNZJ5asnj0PV5jxydN6chpg95fb/Q15ycydHXI+XD -LE7lLN0HhhMJTh5zttYFmoZzJ4EaO3F5WstTaKMu8s1/oOeEec1mfCnUgxM1K24V -acHOJEf8XQsz1vBVU3tQcuWQqYt7WMHzO9Rj3Nqs9/lDpHRfXAczuFkmGTO1EA1w -UaK2cdAgT2TfNfMmvKyYTWzIVFviF/A25jFK+eGDDL0rkh1DorI= -=M/va ------END PGP SIGNATURE----- diff --git a/logrotate-3.21.0.tar.xz b/logrotate-3.21.0.tar.xz new file mode 100644 index 0000000..f24c546 --- /dev/null +++ b/logrotate-3.21.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8fa12015e3b8415c121fc9c0ca53aa872f7b0702f543afda7e32b6c4900f6516 +size 168532 diff --git a/logrotate-3.21.0.tar.xz.asc b/logrotate-3.21.0.tar.xz.asc new file mode 100644 index 0000000..2d3ea81 --- /dev/null +++ b/logrotate-3.21.0.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEEmSqW4HUFbnnNghT5hz2zdXKjezYFAmOYt7kACgkQhz2zdXKj +ezamwg//Va0b3lXdqMoQEDjOqsUUlKg2QMbtY/iWRARpXun1UeSCGTJLNZqKjobg +kIiD1vaRhf2Zv4OgZRD9XijrIPgOPkhsZMjTJIX7qVsw6qiZsmy666gKk22kbuV7 +V4Yt02QYq7xVPwbxY/X0ohjW/PlGrlgWJzBu6avuTSkxjhpSs7/seFaWuRtIJljb +uxQ9oEAra5oWtfnFDpooNJYgKtKcJlGmbW8NToIUWOgpxHCWVneNuyp+PC53aHt7 +2U4yiP6lIEqGQGu2qDvAKoVICRM5u6wZtwN9yyT0nhDKBtL0gNihj8/n0uaX132k +batg7a1Tl/H74W+eQS2rQLT4/lDkorrXpkuiAExKEfxqqj9bGufSI2CggN4oipNy +11nGKM3YStr+77QudJOA4FtaWh7hddQweISK10sXAVVuR+g+ut19nGcEyvENaQtP +dwNuWWkXO6rcEidsLlt0bqHBg4RG970dvvCclNoEf3KyONV2V0uNurBoPNmqDK6Y +yCtgt4AHq8j8/j9toYCcsATc4rKwvZr92kVY8MzKpWJ+GcElGzXB+OIHXAI+bECH +votVhKOq/O+08Fm1ZNmPR6LWADjbsvKIlT+6QnIM+F+MMxMopAaWbLv6suSww8Bu +dYdTKs9mGbZf885XZ/TVBNF4aemp5IqW1HsVDwgFGCY7vET89cU= +=+x00 +-----END PGP SIGNATURE----- diff --git a/logrotate-all b/logrotate-all new file mode 100644 index 0000000..fc31cfa --- /dev/null +++ b/logrotate-all @@ -0,0 +1,28 @@ +#!/bin/sh +set -eu + +configs= + +# Only read /usr/etc/logrotate.conf if /etc/logrotate.conf does not exist +if ! [ -e /etc/logrotate.conf ]; then + configs="$configs /usr/etc/logrotate.conf" +else + configs="$configs /etc/logrotate.conf" +fi + +# Then read in all of {/usr,}/etc/logrotate.d/*, with /etc/ overriding /usr/etc/. +dirs= +[ -d /usr/etc/logrotate.d ] && dirs="/usr/etc/logrotate.d" +[ -d /etc/logrotate.d ] && dirs="$dirs /etc/logrotate.d" + +if [ -n "$dirs" ]; then + for confname in $(find $dirs -type f -printf "%P\n" | sort -u); do + if [ -e "/etc/logrotate.d/$confname" ]; then + configs="$configs /etc/logrotate.d/$confname" + else + configs="$configs /usr/etc/logrotate.d/$confname" + fi + done +fi + +exec /usr/sbin/logrotate $configs diff --git a/logrotate-rpmlintrc b/logrotate-rpmlintrc deleted file mode 100644 index eda65bc..0000000 --- a/logrotate-rpmlintrc +++ /dev/null @@ -1 +0,0 @@ -addFilter(".*incoherent-logrotate-file /etc/logrotate.d/wtmp") diff --git a/logrotate-vendor-dir.patch b/logrotate-vendor-dir.patch deleted file mode 100644 index 74fef08..0000000 --- a/logrotate-vendor-dir.patch +++ /dev/null @@ -1,74 +0,0 @@ -diff -Naur logrotate-3.20.1.org/config.c logrotate-3.20.1.patch/config.c ---- logrotate-3.20.1.org/config.c 2022-05-24 17:20:14.000000000 +0200 -+++ logrotate-3.20.1.patch/config.c 2022-09-14 12:48:02.293003630 +0200 -@@ -1847,11 +1847,19 @@ - for (k = 0; k < log->numFiles; k++) { - if (!strcmp(log->files[k], - globResult.gl_pathv[glob_count])) { -- message(MESS_ERROR, -+#ifdef ENABLE_VENDORDIR -+ message(MESS_DEBUG, -+ "%s:%d duplicate log entry for %s --> ignoring\n", -+ configFile, lineNum, -+ globResult.gl_pathv[glob_count]); -+ state = STATE_SKIP_CONFIG; -+#else -+ message(MESS_ERROR, - "%s:%d duplicate log entry for %s\n", - configFile, lineNum, - globResult.gl_pathv[glob_count]); -- logerror = 1; -+ logerror = 1; -+#endif - goto duperror; - } - } -diff -Naur logrotate-3.20.1.org/configure.ac logrotate-3.20.1.patch/configure.ac ---- logrotate-3.20.1.org/configure.ac 2021-07-27 10:25:23.000000000 +0200 -+++ logrotate-3.20.1.patch/configure.ac 2022-09-14 13:49:13.052981225 +0200 -@@ -58,6 +58,14 @@ - AS_IF([test "$ac_cv_lib_acl_acl_get_file" = yes], - echo "1" > ./test/test.ACL; WITH_ACL="yes";, echo "0" > ./test/test.ACL;) - -+AC_ARG_ENABLE([vendordir], -+ AS_HELP_STRING([--enable-vendordir],[ignore redefined logs; prefering user defined logs defintions])) -+ -+if test x"$enable_vendordir" = x"yes" ; then -+ AC_DEFINE([ENABLE_VENDORDIR],, -+ [ignore redefined logs; prefering user defined logs defintions]) -+fi -+ - DEFAULT_MAIL_COMMAND="/bin/mail" - COMPRESS_COMMAND="/bin/gzip" - UNCOMPRESS_COMMAND="/bin/gunzip" -diff -Naur logrotate-3.20.1.org/logrotate.8.in logrotate-3.20.1.patch/logrotate.8.in ---- logrotate-3.20.1.org/logrotate.8.in 2022-03-31 14:00:36.000000000 +0200 -+++ logrotate-3.20.1.patch/logrotate.8.in 2022-09-14 13:06:32.116996856 +0200 -@@ -48,6 +48,17 @@ - is given on the command line, every file in that directory is used as - a config file. - .P -+If \fBlogrotate\fR is called via \fBsystemd\fR(1), following order of -+parsed config files is defined in the \fIlogrotate.service\fR file: -+.TS -+tab(:); -+l l l. -+\fI/usr/etc/logrotate.conf\fR:Default configuration file defined by the vendor. -+\fI/usr/etc/logrotate.d/*\fR:Directory for additional configuration files defined by the vendor. -+\fI/etc/logrotate.conf\fR:Default configuration file defined by the administrator. (optional) -+\fI/etc/logrotate.d/*\fR:Directory for additional configuration files defined by the administrator. (optional) -+.TE -+.P - If no command line arguments are given, \fBlogrotate\fR will print - version and copyright information, along with a short usage summary. If - any errors occur while rotating logs, \fBlogrotate\fR will exit with -@@ -752,7 +763,8 @@ - tab(:); - l l l. - \fI@STATE_FILE_PATH@\fR:Default state file. --\fI/etc/logrotate.conf\fR:Configuration options. -+\fI/usr/etc/logrotate.conf\fR:Configuration options defined by the vendor. -+\fI/etc/logrotate.conf\fR:Configuration options defined by the administrator. - .TE - - diff --git a/logrotate.changes b/logrotate.changes index c2e8e0d..a3be005 100644 --- a/logrotate.changes +++ b/logrotate.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Tue Jan 24 07:53:00 UTC 2023 - Fabian Vogt + +- Update to 3.21.0: + * add ignoreduplicates directive to allow duplicate file matches + * add --wait-for-state-lock option to wait for lock on the state file + * avoid failure when an anonymous non-privileged user runs logrotate + * support home dir expansion in olddir + * reduce unnecessary rename operations with start N where N > 1 + * unify handling of log levels + * do not print error: when exit code is unaffected + +------------------------------------------------------------------- +Mon Jan 23 13:21:08 UTC 2023 - Fabian Vogt + +- Replace the vendor config logic: + * Remove logrotate-vendor-dir.patch and the code from logrotate.service + (also addresses boo#1202406) + * Add a wrapper script which collects all config files in the right + order +- Create logrotate.keyring with kdudka's public key +- Drop logrotate-rpmlintrc: rpmlint doesn't look at /usr/etc/logrotate.d/, + so the false positive doesn't trigger. + ------------------------------------------------------------------- Wed Sep 14 11:15:55 UTC 2022 - Stefan Schubert diff --git a/logrotate.keyring b/logrotate.keyring new file mode 100644 index 0000000..f3fd59f --- /dev/null +++ b/logrotate.keyring @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +lwvfpMesuQ== +=XhUt +-----END PGP PUBLIC KEY BLOCK----- diff --git a/logrotate.service b/logrotate.service index 9a4acaa..8ab8b81 100644 --- a/logrotate.service +++ b/logrotate.service @@ -6,15 +6,7 @@ ConditionACPower=true [Service] Type=oneshot -ExecStartPre=/bin/sh -c "/usr/bin/systemctl set-environment etc_conf=" ; \ - /bin/sh -c "if [ -f /etc/logrotate.conf ]; then /usr/bin/systemctl set-environment etc_conf=/etc/logrotate.conf; fi" ; \ - /bin/sh -c "/usr/bin/systemctl set-environment usr_etc_conf=" ; \ - /bin/sh -c "if [ -f /usr/etc/logrotate.conf ]; then /usr/bin/systemctl set-environment usr_etc_conf=/usr/etc/logrotate.conf; fi" ; \ - /bin/sh -c "/usr/bin/systemctl set-environment usr_etc_dir=" ; \ - /bin/sh -c "if [ -d /usr/etc/logrotate.d ]; then /usr/bin/systemctl set-environment usr_etc_dir=/usr/etc/logrotate.d; fi" ; \ - /bin/sh -c "/usr/bin/systemctl set-environment etc_dir=" ; \ - /bin/sh -c "if [ -d /etc/logrotate.d ]; then /usr/bin/systemctl set-environment etc_dir=/etc/logrotate.d; fi" -ExecStart=/bin/sh -c "/usr/sbin/logrotate ${usr_etc_conf} ${etc_conf} ${etc_dir} ${usr_etc_dir}" +ExecStart=/usr/sbin/logrotate-all # performance options Nice=19 diff --git a/logrotate.spec b/logrotate.spec index 9a91f66..5b0a292 100644 --- a/logrotate.spec +++ b/logrotate.spec @@ -1,7 +1,7 @@ # # spec file for package logrotate # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %{!?_distconfdir: %global _distconfdir %{_prefix}%{_sysconfdir}} Name: logrotate -Version: 3.20.1 +Version: 3.21.0 Release: 0 Summary: Cron service for rotating, compressing, mailing and removing system log files License: GPL-2.0-or-later @@ -30,9 +30,9 @@ Source0: https://github.com/%{name}/%{name}/releases/download/%{version}/ Source1: logrotate.wtmp Source2: logrotate.default Source3: logrotate.service +Source4: logrotate-all Source10: https://github.com/%{name}/%{name}/releases/download/%{version}/%{name}-%{version}.tar.xz.asc -Source100: %{name}-rpmlintrc -Patch0: logrotate-vendor-dir.patch +Source11: logrotate.keyring BuildRequires: acl BuildRequires: automake BuildRequires: libacl-devel @@ -52,16 +52,14 @@ daily cron job. It manages plain files only and is not involved in systemd's journal rotation. %prep -%setup -q -%autopatch -p1 +%autosetup -p1 %build autoreconf -f -i %configure \ --disable-silent-rules \ --with-state-file-path=%{_localstatedir}/lib/misc/logrotate.status \ - --disable-werror \ - --enable-vendordir + --disable-werror %make_build %check @@ -73,6 +71,7 @@ mkdir -p %{buildroot}%{_distconfdir}/logrotate.d install -m 644 %{SOURCE1} %{buildroot}%{_distconfdir}/logrotate.d/wtmp install -m 644 %{SOURCE2} %{buildroot}%{_distconfdir}/logrotate.conf install -D -m 644 %{SOURCE3} %{buildroot}%{_unitdir}/%{name}.service +install -D -m 755 %{SOURCE4} %{buildroot}%{_sbindir}/logrotate-all install -D -m 0644 examples/%{name}.timer %{buildroot}%{_unitdir}/%{name}.timer ln -s service %{buildroot}%{_sbindir}/rc%{name} @@ -102,6 +101,7 @@ fi %license COPYING %doc ChangeLog.md README.md %{_sbindir}/logrotate +%{_sbindir}/logrotate-all %{_sbindir}/rc%{name} %{_mandir}/man8/logrotate.8%{?ext_man} %{_mandir}/man5/logrotate.conf.5%{?ext_man}