at-3.1.13-usePOSIXtimers.patch use POSIX timers, so we won't need
pm-utils hack anymore.
This commit is contained in:
parent
e85ff306c1
commit
197130ca9a
119
at-3.1.13-usePOSIXtimers.patch
Normal file
119
at-3.1.13-usePOSIXtimers.patch
Normal file
@ -0,0 +1,119 @@
|
||||
diff -ur -x configure at-3.1.13.orig/atd.c at-3.1.13/atd.c
|
||||
--- at-3.1.13.orig/atd.c 2011-11-16 11:30:22.424764253 -0500
|
||||
+++ at-3.1.13/atd.c 2011-11-16 16:41:12.102831656 -0500
|
||||
@@ -815,6 +815,54 @@
|
||||
return next_job;
|
||||
}
|
||||
|
||||
+#ifdef HAVE_CLOCK_GETTIME
|
||||
+timer_t timer;
|
||||
+struct itimerspec timeout;
|
||||
+
|
||||
+void timer_setup()
|
||||
+{
|
||||
+ struct sigevent sev;
|
||||
+
|
||||
+ sev.sigev_notify = SIGEV_SIGNAL;
|
||||
+ sev.sigev_signo = SIGHUP;
|
||||
+ sev.sigev_value.sival_ptr = &timer;
|
||||
+
|
||||
+ memset(&timeout, 0, sizeof(timeout));
|
||||
+
|
||||
+ if (timer_create(CLOCK_REALTIME, &sev, &timer) < 0)
|
||||
+ pabort("unable to create timer");
|
||||
+}
|
||||
+
|
||||
+time_t atd_gettime()
|
||||
+{
|
||||
+ struct timespec curtime;
|
||||
+
|
||||
+ clock_gettime(CLOCK_REALTIME, &curtime);
|
||||
+
|
||||
+ return curtime.tv_sec;
|
||||
+}
|
||||
+
|
||||
+void atd_setalarm(time_t next)
|
||||
+{
|
||||
+ timeout.it_value.tv_sec = next;
|
||||
+ timer_settime(timer, TIMER_ABSTIME, &timeout, NULL);
|
||||
+ pause();
|
||||
+}
|
||||
+#else
|
||||
+void timer_setup()
|
||||
+{
|
||||
+}
|
||||
+
|
||||
+time_t atd_gettime()
|
||||
+{
|
||||
+ return time(NULL);
|
||||
+}
|
||||
+
|
||||
+void atd_setalarm(time_t next)
|
||||
+{
|
||||
+ sleep(next - atd_gettime());
|
||||
+}
|
||||
+#endif
|
||||
/* Global functions */
|
||||
|
||||
int
|
||||
@@ -835,7 +883,6 @@
|
||||
struct sigaction act;
|
||||
struct passwd *pwe;
|
||||
struct group *ge;
|
||||
-
|
||||
#ifdef WITH_SELINUX
|
||||
selinux_enabled=is_selinux_enabled();
|
||||
#endif
|
||||
@@ -912,7 +959,7 @@
|
||||
sigaction(SIGCHLD, &act, NULL);
|
||||
|
||||
if (!run_as_daemon) {
|
||||
- now = time(NULL);
|
||||
+ now = atd_gettime();
|
||||
run_loop();
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
@@ -935,13 +982,15 @@
|
||||
act.sa_handler = set_term;
|
||||
sigaction(SIGINT, &act, NULL);
|
||||
|
||||
+ timer_setup();
|
||||
+
|
||||
daemon_setup();
|
||||
|
||||
do {
|
||||
- now = time(NULL);
|
||||
+ now = atd_gettime();
|
||||
next_invocation = run_loop();
|
||||
if (next_invocation > now) {
|
||||
- sleep(next_invocation - now);
|
||||
+ atd_setalarm(next_invocation);
|
||||
}
|
||||
} while (!term_signal);
|
||||
daemon_cleanup();
|
||||
diff -ur -x configure at-3.1.13.orig/config.h.in at-3.1.13/config.h.in
|
||||
--- at-3.1.13.orig/config.h.in 2011-11-16 11:30:22.424764253 -0500
|
||||
+++ at-3.1.13/config.h.in 2011-11-16 16:32:44.485426754 -0500
|
||||
@@ -38,6 +38,9 @@
|
||||
/* Define to 1 if you have the `getloadavg' function. */
|
||||
#undef HAVE_GETLOADAVG
|
||||
|
||||
+/* Define to 1 if you have the `clock_gettime' function. */
|
||||
+#undef HAVE_CLOCK_GETTIME
|
||||
+
|
||||
/* Define to 1 if you have the <getopt.h> header file. */
|
||||
#undef HAVE_GETOPT_H
|
||||
|
||||
diff -ur -x configure at-3.1.13.orig/configure.ac at-3.1.13/configure.ac
|
||||
--- at-3.1.13.orig/configure.ac 2011-11-16 11:30:22.425764254 -0500
|
||||
+++ at-3.1.13/configure.ac 2011-11-16 16:31:29.791561747 -0500
|
||||
@@ -274,5 +274,9 @@
|
||||
AC_SUBST(SELINUXLIB)
|
||||
AC_SUBST(WITH_SELINUX)
|
||||
|
||||
+dnl check for POSIX timer functions
|
||||
+AC_SEARCH_LIBS([clock_gettime],[rt])
|
||||
+AC_CHECK_FUNCS([clock_gettime])
|
||||
+
|
||||
AC_CONFIG_FILES(Makefile atrun atd.8 atrun.8 at.1 at.allow.5 batch)
|
||||
AC_OUTPUT
|
9
at.spec
9
at.spec
@ -12,7 +12,6 @@ Source: http://ftp.debian.org/debian/pool/main/a/at/at_%{version}.orig.tar.gz
|
||||
Source1: pam_atd
|
||||
Source2: atd.init
|
||||
Source3: atd.sysconf
|
||||
Source4: 56atd
|
||||
Source5: atd.systemd
|
||||
|
||||
Patch1: at-3.1.13-makefile.patch
|
||||
@ -24,6 +23,7 @@ Patch6: at-3.1.13-selinux.patch
|
||||
Patch7: at-3.1.12-nowrap.patch
|
||||
Patch8: at-3.1.12-fix_no_export.patch
|
||||
Patch9: at-3.1.13-mailwithhostname.patch
|
||||
Patch10: at-3.1.13-usePOSIXtimers.patch
|
||||
|
||||
BuildRequires: fileutils /etc/init.d
|
||||
BuildRequires: flex flex-static bison autoconf
|
||||
@ -75,6 +75,7 @@ cp %{SOURCE1} .
|
||||
%patch7 -p1 -b .nowrap
|
||||
%patch8 -p1 -b .export
|
||||
%patch9 -p1 -b .mail
|
||||
%patch10 -p1 -b .posix
|
||||
|
||||
%build
|
||||
# patch9 touches configure.in
|
||||
@ -122,9 +123,6 @@ install -m 755 %{SOURCE2} %{buildroot}%{_sysconfdir}/rc.d/init.d/atd
|
||||
mkdir -p %{buildroot}/etc/sysconfig
|
||||
install -m 644 %{SOURCE3} %{buildroot}/etc/sysconfig/atd
|
||||
|
||||
mkdir -p %{buildroot}/%{_libdir}/pm-utils/sleep.d/
|
||||
install -m 755 %{SOURCE4} %{buildroot}/%{_libdir}/pm-utils/sleep.d/56atd
|
||||
|
||||
# install systemd initscript
|
||||
mkdir -p %{buildroot}/%{_unitdir}/
|
||||
install -m 644 %{SOURCE5} %{buildroot}/%{_unitdir}/atd.service
|
||||
@ -183,7 +181,6 @@ fi
|
||||
%{_bindir}/atrm
|
||||
%{_bindir}/atq
|
||||
%attr(4755,root,root) %{_bindir}/at
|
||||
%attr(0755,root,root) %{_libdir}/pm-utils/sleep.d/56atd
|
||||
%attr(0644,root,root) /%{_unitdir}/atd.service
|
||||
|
||||
%files sysvinit
|
||||
@ -192,6 +189,8 @@ fi
|
||||
%changelog
|
||||
* Tue Apr 17 2012 Marcela Mašláňová <mmaslano@redhat.com> - 3.1.13-7
|
||||
- at-3.1.13-mailwithhostname.patch in email mention also hostname address
|
||||
- at-3.1.13-usePOSIXtimers.patch use POSIX timers, so we won't need
|
||||
pm-utils hack anymore
|
||||
|
||||
* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.13-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||
|
Loading…
Reference in New Issue
Block a user