forked from rpms/cronie
Compare commits
No commits in common. "c8s" and "c8s" have entirely different histories.
@ -1 +0,0 @@
|
|||||||
03e53a07f2a5b8724e8d7cf7124539b4e82414d3 SOURCES/cronie-1.5.2.tar.gz
|
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
SOURCES/cronie-1.5.2.tar.gz
|
SOURCES/cronie-1.5.2.tar.gz
|
||||||
|
/cronie-1.5.2.tar.gz
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
Summary: Cron daemon for executing programs at set times
|
Summary: Cron daemon for executing programs at set times
|
||||||
Name: cronie
|
Name: cronie
|
||||||
Version: 1.5.2
|
Version: 1.5.2
|
||||||
Release: 8%{?dist}
|
Release: 10%{?dist}
|
||||||
License: MIT and BSD and ISC and GPLv2+
|
License: MIT and BSD and ISC and GPLv2+
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
URL: https://github.com/cronie-crond/cronie
|
URL: https://github.com/cronie-crond/cronie
|
||||||
@ -53,6 +53,9 @@ Patch6: 0001-Add-random-within-range-operator.patch
|
|||||||
Patch7: 0002-get_number-Add-missing-NUL-termination-for-the-scann.patch
|
Patch7: 0002-get_number-Add-missing-NUL-termination-for-the-scann.patch
|
||||||
Patch8: 0003-Fix-regression-in-handling-x-crontab-entries.patch
|
Patch8: 0003-Fix-regression-in-handling-x-crontab-entries.patch
|
||||||
Patch9: 0004-Fix-regression-in-handling-1-5-crontab-entries.patch
|
Patch9: 0004-Fix-regression-in-handling-1-5-crontab-entries.patch
|
||||||
|
# Optimization to close fds from /proc/self/fd in case of high nofile limit after fork
|
||||||
|
# https://github.com/cronie-crond/cronie/commit/e3682c7135b9176b60d226c60ee4e78cf1ab711b
|
||||||
|
Patch10: optimization_to_close_fds.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Cronie contains the standard UNIX daemon crond that runs specified programs at
|
Cronie contains the standard UNIX daemon crond that runs specified programs at
|
||||||
@ -105,6 +108,7 @@ extra features.
|
|||||||
%patch7 -p1
|
%patch7 -p1
|
||||||
%patch8 -p1
|
%patch8 -p1
|
||||||
%patch9 -p1
|
%patch9 -p1
|
||||||
|
%patch10 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure \
|
%configure \
|
||||||
@ -233,6 +237,14 @@ exit 0
|
|||||||
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cron.d/dailyjobs
|
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cron.d/dailyjobs
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Nov 30 2023 Ondřej Pohořelský <opohorel@redhat.com> - 1.5.2-10
|
||||||
|
- Bump release because of CI issues
|
||||||
|
- Related: RHEL-2609
|
||||||
|
|
||||||
|
* Thu Nov 30 2023 Ondřej Pohořelský <opohorel@redhat.com> - 1.5.2-9
|
||||||
|
- Add `optimization_to_close_fds.patch`
|
||||||
|
- Resolves: RHEL-2609
|
||||||
|
|
||||||
* Mon Jul 11 2022 Jan Staněk <jstanek@redhat.com> - 1.5.2-8
|
* Mon Jul 11 2022 Jan Staněk <jstanek@redhat.com> - 1.5.2-8
|
||||||
- Set 'missingok' for /etc/cron.deny to not recreate it on update
|
- Set 'missingok' for /etc/cron.deny to not recreate it on update
|
||||||
|
|
6
gating.yaml
Normal file
6
gating.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
--- !Policy
|
||||||
|
product_versions:
|
||||||
|
- rhel-8
|
||||||
|
decision_context: osci_compose_gate
|
||||||
|
rules:
|
||||||
|
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier1.functional}
|
40
optimization_to_close_fds.patch
Normal file
40
optimization_to_close_fds.patch
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
--- ./src/do_command.c 2023-09-07 09:40:32.016272074 +0200
|
||||||
|
+++ ./src/do_command.c 2023-09-07 09:43:04.938995232 +0200
|
||||||
|
@@ -30,6 +30,7 @@
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
+#include <dirent.h>
|
||||||
|
|
||||||
|
#include "externs.h"
|
||||||
|
#include "funcs.h"
|
||||||
|
@@ -239,10 +240,26 @@
|
||||||
|
{
|
||||||
|
char *shell = env_get("SHELL", jobenv);
|
||||||
|
int fd, fdmax = getdtablesize();
|
||||||
|
+ DIR *dir;
|
||||||
|
+ struct dirent *dent;
|
||||||
|
|
||||||
|
- /* close all unwanted open file descriptors */
|
||||||
|
- for(fd = STDERR + 1; fd < fdmax; fd++) {
|
||||||
|
- close(fd);
|
||||||
|
+ /*
|
||||||
|
+ * if /proc is mounted, we can optimize what fd can be closed,
|
||||||
|
+ * but if it isn't available, fall back to the previous behavior.
|
||||||
|
+ */
|
||||||
|
+ if ((dir = opendir("/proc/self/fd")) != NULL) {
|
||||||
|
+ while ((dent = readdir(dir)) != NULL) {
|
||||||
|
+ if (!strcmp(dent->d_name, ".") || !strcmp(dent->d_name, ".."))
|
||||||
|
+ continue;
|
||||||
|
+ fd = atoi(dent->d_name);
|
||||||
|
+ if (fd > STDERR_FILENO)
|
||||||
|
+ close(fd);
|
||||||
|
+ }
|
||||||
|
+ } else {
|
||||||
|
+ /* close all unwanted open file descriptors */
|
||||||
|
+ for(fd = STDERR + 1; fd < fdmax; fd++) {
|
||||||
|
+ close(fd);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUGGING
|
Loading…
Reference in New Issue
Block a user