mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-15 08:56:58 +02:00
app-admin/logrotate: Sync with Gentoo
It's from Gentoo commit fef4d6517bb66698022978cd835a56d5701e318a.
This commit is contained in:
parent
8a6b90ffc1
commit
40e891505e
@ -1 +1,2 @@
|
||||
DIST logrotate-3.18.1.tar.gz 225226 BLAKE2B 6f40dfe89f9c6202263f16204a9cff07b921abc9a298b58649bb4968c9f498626741be334c47d4092da564ed75642b687ff6ef8781f69f5e25364f8635646d9d SHA512 c40f920686aee014c652f087c64f2a85e9e866a8717d1bd3f32a9dd7959a02962e6174de28ae685428b442e12079d0c8d91485611ca34a873ffae872a54ec9fe
|
||||
DIST logrotate-3.20.1.tar.xz 166712 BLAKE2B 8481e0d746c6bcbe10f2686a921334c6f957c8d92520927de7bc8fb0b7631a444fedaa80f35bc2de7961b3d5833ce4ab885b1298b235b7f8b33cc3ae05438da6 SHA512 a9ed5796ab254f511d0029a8f29ef7557f62e12e3ea9af24e30b5b9f348b1c1a16df26d44314b78299916fb3b5000b9cd9eed7cee2cee8df11cfd8e40c79b092
|
||||
DIST logrotate-3.20.1.tar.xz.asc 833 BLAKE2B afc02177335bcd580e0617af8c50846b371c2d00ecd8fe329c2e298dc8c48823137625f455cea3d983a0d9971733297fa2c4d98ba3c6f72d2c07f8f21108cfe4 SHA512 2dd207feec431b223ff12f09f6cce14409d45e5bb3abaf2275dd773c7ee7c59ed7d32395e5869bfed70c970be4158fd299e6e269838378843dcb63ca5ebfa029
|
||||
|
@ -0,0 +1,147 @@
|
||||
https://bugs.gentoo.org/847382#c3
|
||||
https://github.com/logrotate/logrotate/commit/31cf1099ab8514dfcae5a980bc77352edd5292f8
|
||||
https://github.com/logrotate/logrotate/commit/7b1fa328bf70eb8434166f151bd075cd1440d0dc
|
||||
|
||||
From 31cf1099ab8514dfcae5a980bc77352edd5292f8 Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Fri, 27 May 2022 09:56:07 +0200
|
||||
Subject: [PATCH] lockState: do not print `error:` when exit code is unaffected
|
||||
|
||||
Closes: https://github.com/logrotate/logrotate/pull/448
|
||||
--- a/logrotate.c
|
||||
+++ b/logrotate.c
|
||||
@@ -3050,8 +3050,8 @@ static int lockState(const char *stateFilename, int skip_state_lock)
|
||||
}
|
||||
|
||||
if (sb.st_mode & S_IROTH) {
|
||||
- message(MESS_ERROR, "state file %s is world-readable and thus can"
|
||||
- " be locked from other unprivileged users."
|
||||
+ message(MESS_NORMAL, "warning: state file %s is world-readable"
|
||||
+ " and thus can be locked from other unprivileged users."
|
||||
" Skipping lock acquisition...\n",
|
||||
stateFilename);
|
||||
close(lockFd);
|
||||
|
||||
From 7b1fa328bf70eb8434166f151bd075cd1440d0dc Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Fri, 27 May 2022 16:02:57 +0200
|
||||
Subject: [PATCH] log: unify handling of log levels
|
||||
|
||||
Use MESS_WARN instead of MESS_NORMAL and make it always use
|
||||
the `warning:` prefix. MESS_WARN is now mapped to LOG_WARNING
|
||||
for syslog.
|
||||
|
||||
Also drop MESS_VERBOSE, which was not set anywhere.
|
||||
|
||||
Closes: https://github.com/logrotate/logrotate/pull/239
|
||||
Closes: https://github.com/logrotate/logrotate/pull/449
|
||||
--- a/config.c
|
||||
+++ b/config.c
|
||||
@@ -643,7 +643,7 @@ static void set_criterium(enum criterium *pDst, enum criterium src, int *pSet)
|
||||
{
|
||||
if (*pSet && (*pDst != src)) {
|
||||
/* we are overriding a previously set criterium */
|
||||
- message(MESS_VERBOSE, "warning: '%s' overrides previously specified '%s'\n",
|
||||
+ message(MESS_DEBUG, "note: '%s' overrides previously specified '%s'\n",
|
||||
crit_to_string(src), crit_to_string(*pDst));
|
||||
}
|
||||
*pDst = src;
|
||||
@@ -1021,7 +1021,7 @@ static int readConfigFile(const char *configFile, struct logInfo *defConfig)
|
||||
|
||||
if (getuid() == ROOT_UID) {
|
||||
if ((sb_config.st_mode & 07533) != 0400) {
|
||||
- message(MESS_NORMAL,
|
||||
+ message(MESS_WARN,
|
||||
"Potentially dangerous mode on %s: 0%o\n",
|
||||
configFile, (unsigned) (sb_config.st_mode & 07777));
|
||||
}
|
||||
@@ -1386,7 +1386,7 @@ static int readConfigFile(const char *configFile, struct logInfo *defConfig)
|
||||
RAISE_ERROR();
|
||||
}
|
||||
} else if (!strcmp(key, "errors")) {
|
||||
- message(MESS_NORMAL,
|
||||
+ message(MESS_WARN,
|
||||
"%s: %d: the errors directive is deprecated and no longer used.\n",
|
||||
configFile, lineNum);
|
||||
} else if (!strcmp(key, "mail")) {
|
||||
--- a/log.c
|
||||
+++ b/log.c
|
||||
@@ -40,9 +40,12 @@ static void log_once(FILE *where, int level, const char *format, va_list args)
|
||||
{
|
||||
switch (level) {
|
||||
case MESS_DEBUG:
|
||||
- case MESS_NORMAL:
|
||||
- case MESS_VERBOSE:
|
||||
break;
|
||||
+
|
||||
+ case MESS_WARN:
|
||||
+ fprintf(where, "warning: ");
|
||||
+ break;
|
||||
+
|
||||
default:
|
||||
fprintf(where, "error: ");
|
||||
break;
|
||||
@@ -78,10 +81,11 @@ void message(int level, const char *format, ...)
|
||||
priority |= LOG_DEBUG;
|
||||
break;
|
||||
case MESS_DEBUG:
|
||||
- case MESS_VERBOSE:
|
||||
- case MESS_NORMAL:
|
||||
priority |= LOG_INFO;
|
||||
break;
|
||||
+ case MESS_WARN:
|
||||
+ priority |= LOG_WARNING;
|
||||
+ break;
|
||||
case MESS_ERROR:
|
||||
priority |= LOG_ERR;
|
||||
break;
|
||||
--- a/log.h
|
||||
+++ b/log.h
|
||||
@@ -5,8 +5,7 @@
|
||||
|
||||
#define MESS_REALDEBUG 1
|
||||
#define MESS_DEBUG 2
|
||||
-#define MESS_VERBOSE 3
|
||||
-#define MESS_NORMAL 4
|
||||
+#define MESS_WARN 4
|
||||
#define MESS_ERROR 5
|
||||
#define MESS_FATAL 6
|
||||
|
||||
--- a/logrotate.c
|
||||
+++ b/logrotate.c
|
||||
@@ -3050,7 +3050,7 @@ static int lockState(const char *stateFilename, int skip_state_lock)
|
||||
}
|
||||
|
||||
if (sb.st_mode & S_IROTH) {
|
||||
- message(MESS_NORMAL, "warning: state file %s is world-readable"
|
||||
+ message(MESS_WARN, "state file %s is world-readable"
|
||||
" and thus can be locked from other unprivileged users."
|
||||
" Skipping lock acquisition...\n",
|
||||
stateFilename);
|
||||
@@ -3106,7 +3106,7 @@ int main(int argc, const char **argv)
|
||||
POPT_AUTOHELP { NULL, 0, 0, NULL, 0, NULL, NULL }
|
||||
};
|
||||
|
||||
- logSetLevel(MESS_NORMAL);
|
||||
+ logSetLevel(MESS_WARN);
|
||||
setlocale (LC_ALL, "");
|
||||
|
||||
optCon = poptGetContext("logrotate", argc, argv, options, 0);
|
||||
@@ -3117,7 +3117,7 @@ int main(int argc, const char **argv)
|
||||
switch (arg) {
|
||||
case 'd':
|
||||
debug = 1;
|
||||
- message(MESS_NORMAL, "WARNING: logrotate in debug mode does nothing"
|
||||
+ message(MESS_WARN, "logrotate in debug mode does nothing"
|
||||
" except printing debug messages! Consider using verbose"
|
||||
" mode (-v) instead if this is not what you want.\n\n");
|
||||
/* fallthrough */
|
||||
--- a/test/test-0080.sh
|
||||
+++ b/test/test-0080.sh
|
||||
@@ -10,4 +10,4 @@ cleanup 80
|
||||
preptest test.log 80 1 0
|
||||
|
||||
$RLR -d test-config.80 2>&1 | \
|
||||
- grep -q "warning: 'daily' overrides previously specified 'size'"
|
||||
+ grep -q "note: 'daily' overrides previously specified 'size'"
|
||||
|
@ -1,5 +1,13 @@
|
||||
# keep only the most recent old log.
|
||||
rotate 1
|
||||
#
|
||||
# Default logrotate(8) configuration file for Gentoo Linux.
|
||||
# See "man logrotate" for details.
|
||||
|
||||
# rotate log files weekly.
|
||||
weekly
|
||||
#daily
|
||||
|
||||
# keep 4 weeks worth of backlogs.
|
||||
rotate 4
|
||||
|
||||
# create new (empty) log files after rotating old ones.
|
||||
create
|
||||
@ -10,20 +18,25 @@ dateext
|
||||
# compress rotated log files.
|
||||
compress
|
||||
|
||||
missingok
|
||||
notifempty
|
||||
nomail
|
||||
noolddir
|
||||
|
||||
# accept user provided configuration files in /etc.
|
||||
# packages can drop log rotation information into this directory.
|
||||
include /etc/logrotate.d
|
||||
|
||||
# must match creation rules in /usr/lib/tmpfiles.d/var.conf
|
||||
# no packages own wtmp and btmp -- we'll rotate them here.
|
||||
/var/log/wtmp {
|
||||
monthly
|
||||
create 0664 root utmp
|
||||
size 1M
|
||||
minsize 1M
|
||||
rotate 1
|
||||
}
|
||||
/var/log/btmp {
|
||||
missingok
|
||||
monthly
|
||||
create 0600 root utmp
|
||||
size 1M
|
||||
rotate 1
|
||||
}
|
||||
|
||||
# system-specific logs may also be configured here.
|
||||
|
@ -1,5 +0,0 @@
|
||||
[Unit]
|
||||
Description=Rotate and Compress System Logs
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/logrotate /usr/share/logrotate/logrotate.conf
|
@ -1,2 +1 @@
|
||||
d /var/lib/misc
|
||||
d /etc/logrotate.d - - - - -
|
||||
|
@ -1,30 +1,37 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit systemd tmpfiles
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/kamildudka.asc
|
||||
inherit systemd tmpfiles verify-sig
|
||||
|
||||
DESCRIPTION="Rotates, compresses, and mails system logs"
|
||||
HOMEPAGE="https://github.com/logrotate/logrotate"
|
||||
SRC_URI="https://github.com/${PN}/${PN}/releases/download/${PV}/${P}.tar.gz"
|
||||
SRC_URI="https://github.com/${PN}/${PN}/releases/download/${PV}/${P}.tar.xz"
|
||||
SRC_URI+=" verify-sig? ( https://github.com/${PN}/${PN}/releases/download/${PV}/${P}.tar.xz.asc )"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
IUSE="acl +cron selinux"
|
||||
|
||||
DEPEND="
|
||||
>=dev-libs/popt-1.5
|
||||
DEPEND=">=dev-libs/popt-1.5
|
||||
selinux? ( sys-libs/libselinux )
|
||||
acl? ( virtual/acl )"
|
||||
RDEPEND="${DEPEND}
|
||||
selinux? ( sec-policy/selinux-logrotate )
|
||||
cron? ( virtual/cron )"
|
||||
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-kamildudka )"
|
||||
|
||||
STATEFILE="${EPREFIX}/var/lib/misc/logrotate.status"
|
||||
OLDSTATEFILE="${EPREFIX}/var/lib/logrotate.status"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-3.15.0-ignore-hidden.patch
|
||||
"${FILESDIR}"/${P}-log-changes.patch
|
||||
)
|
||||
|
||||
move_old_state_file() {
|
||||
elog "logrotate state file is now located at ${STATEFILE}"
|
||||
elog "See bug #357275"
|
||||
@ -39,13 +46,10 @@ install_cron_file() {
|
||||
newexe "${S}"/examples/logrotate.cron "${PN}"
|
||||
}
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-3.15.0-ignore-hidden.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
sed -i -e 's#/usr/sbin/logrotate#/usr/bin/logrotate#' examples/logrotate.{cron,service} || die
|
||||
default
|
||||
|
||||
sed -i -e 's#/usr/sbin/logrotate#/usr/bin/logrotate#' examples/logrotate.{cron,service} || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
@ -55,23 +59,17 @@ src_configure() {
|
||||
--with-state-file-path="${STATEFILE}"
|
||||
}
|
||||
|
||||
src_test() {
|
||||
emake test
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin logrotate
|
||||
doman logrotate.8
|
||||
dodoc ChangeLog.md
|
||||
|
||||
insinto /usr/share/logrotate
|
||||
insinto /etc
|
||||
doins "${FILESDIR}"/logrotate.conf
|
||||
|
||||
use cron && install_cron_file
|
||||
|
||||
systemd_dounit examples/logrotate.timer
|
||||
systemd_dounit "${FILESDIR}"/logrotate.service
|
||||
systemd_enable_service multi-user.target logrotate.timer
|
||||
systemd_dounit examples/logrotate.{service,timer}
|
||||
newtmpfiles "${FILESDIR}"/${PN}.tmpfiles ${PN}.conf
|
||||
|
||||
keepdir /etc/logrotate.d
|
Loading…
Reference in New Issue
Block a user