diff --git a/at-3.1.8_massive_batch.patch b/at-3.1.8_massive_batch.patch new file mode 100644 index 0000000..42a7663 --- /dev/null +++ b/at-3.1.8_massive_batch.patch @@ -0,0 +1,58 @@ +Index: atd.c +=================================================================== +--- atd.c.orig 2008-04-08 17:29:40.000000000 +0200 ++++ atd.c 2008-04-08 17:30:39.611014070 +0200 +@@ -140,9 +140,10 @@ static char rcsid[] = "$Id: atd.c,v 1.28 + static double load_avg = LOADAVG_MX; + static time_t now; + static time_t last_chg; +-static int nothing_to_do; ++static int nothing_to_do = 0; + unsigned int batch_interval; + static int run_as_daemon = 0; ++static int hupped = 0; + + static volatile sig_atomic_t term_signal = 0; + +@@ -155,9 +156,10 @@ set_term(int dummy) + } + + RETSIGTYPE +-sdummy(int dummy) ++set_hup(int dummy) + { +- /* Empty signal handler */ ++ hupped = 1; ++ nothing_to_do = 0; + return; + } + +@@ -737,6 +739,7 @@ run_loop() + return next_job; + last_chg = buf.st_mtime; + ++ hupped = 0; + if ((spool = opendir(".")) == NULL) + perr("Cannot read " ATJOB_DIR); + +@@ -961,7 +964,7 @@ main(int argc, char *argv[]) + */ + + sigaction(SIGHUP, NULL, &act); +- act.sa_handler = sdummy; ++ act.sa_handler = set_hup; + sigaction(SIGHUP, &act, NULL); + + sigaction(SIGTERM, NULL, &act); +@@ -977,9 +980,10 @@ main(int argc, char *argv[]) + do { + now = time(NULL); + next_invocation = run_loop(); +- if (next_invocation > now) { ++ if ((next_invocation > now) && (!hupped)) { + sleep(next_invocation - now); + } ++ hupped = 0; + } while (!term_signal); + daemon_cleanup(); + exit(EXIT_SUCCESS); diff --git a/at.changes b/at.changes index 7d06afd..8cd3907 100644 --- a/at.changes +++ b/at.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Tue Apr 8 17:32:59 CEST 2008 - mrueckert@suse.de + +- add at-3.1.8_massive_batch.patch: (bnc#347126) + properly handle sighup when multiple jobs are submitted at the + same time + ------------------------------------------------------------------- Fri May 11 15:09:08 CEST 2007 - mrueckert@suse.de diff --git a/at.spec b/at.spec index aba86c3..1770be6 100644 --- a/at.spec +++ b/at.spec @@ -1,7 +1,7 @@ # # spec file for package at (Version 3.1.8) # -# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine # package are under the same license as the package itself. # @@ -10,14 +10,15 @@ # norootforbuild + Name: at BuildRequires: bison flex pam-devel -URL: ftp://ftp.debian.org/debian/pool/main/a/at -License: GNU General Public License (GPL) +Url: ftp://ftp.debian.org/debian/pool/main/a/at +License: GPL v2 or later Group: System/Daemons -Autoreqprov: on +AutoReqProv: on Version: 3.1.8 -Release: 971 +Release: 1031 Summary: A Job Manager Source: at_3.1.8-11.tar.gz Source1: atd.init @@ -33,8 +34,9 @@ Patch7: at-%{version}-pie.patch Patch8: at-%{version}-eal3-manpages.dif Patch9: at-%{version}-formatbugs.dif Patch10: at-3.1.8-pam.diff +Patch11: at-3.1.8_massive_batch.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build -Prereq: /usr/sbin/useradd /usr/sbin/groupadd %fillup_prereq %insserv_prereq +PreReq: /usr/sbin/useradd /usr/sbin/groupadd %fillup_prereq %insserv_prereq %description This program allows you to run jobs at specified times. @@ -60,6 +62,7 @@ Authors: %patch8 %patch9 %patch10 +%patch11 %build %{?suse_update_config:%{suse_update_config -f}} @@ -135,110 +138,114 @@ fi /var/adm/fillup-templates/sysconfig.atd %changelog -* Fri May 11 2007 - mrueckert@suse.de +* Tue Apr 08 2008 mrueckert@suse.de +- add at-3.1.8_massive_batch.patch: (bnc#347126) + properly handle sighup when multiple jobs are submitted at the + same time +* Fri May 11 2007 mrueckert@suse.de - remove postfix from the build requires. (#225469) -* Thu Mar 29 2007 - meissner@suse.de +* Thu Mar 29 2007 meissner@suse.de - buildrequires flex,bison -* Mon Mar 19 2007 - mrueckert@suse.de +* Mon Mar 19 2007 mrueckert@suse.de - readd at-3.1.8-pam.diff: (#222563) The breaking part of the setreuid(daemon_uid,daemon_uid) in perm.c. uid 25 can not write audit messages. As upstream removed the pam code in perm.c aswell, we do the same here. -* Mon Dec 18 2006 - ro@suse.de +* Mon Dec 18 2006 ro@suse.de - added sysconfig variables ATD_BATCH_INTERVAL and ATD_LOADAVG (fate#301318) -* Tue Nov 28 2006 - mrueckert@suse.de +* Tue Nov 28 2006 mrueckert@suse.de - remove at-3.1.8-pam.diff it just breaks at. -* Tue Nov 21 2006 - ro@suse.de +* Tue Nov 21 2006 ro@suse.de - added PRIV_START/END calls around pam_start sections (#222412) -* Fri Sep 01 2006 - kukuk@suse.de +* Fri Sep 01 2006 kukuk@suse.de - Add pam_loginuid.so to atd.pamd -* Wed Jan 25 2006 - mls@suse.de +* Wed Jan 25 2006 mls@suse.de - converted neededforbuild to BuildRequires -* Fri Jan 13 2006 - schwab@suse.de +* Fri Jan 13 2006 schwab@suse.de - Don't strip binaries. -* Mon Dec 05 2005 - kukuk@suse.de +* Mon Dec 05 2005 kukuk@suse.de - Disable SELinux -* Mon Aug 29 2005 - kukuk@suse.de +* Mon Aug 29 2005 kukuk@suse.de - Make pam config file non-executeable -* Thu Aug 25 2005 - kukuk@suse.de +* Thu Aug 25 2005 kukuk@suse.de - Remove pam_loginuid.so [may fix #112802] -* Mon Aug 15 2005 - kukuk@suse.de +* Mon Aug 15 2005 kukuk@suse.de - Update to at-3.1.8-11 tarball (includes old patches) - Add PAM support -* Thu Jun 02 2005 - kukuk@suse.de +* Thu Jun 02 2005 kukuk@suse.de - Compile with -fpie/-pie - Update SELinux patch -* Sat Feb 05 2005 - meissner@suse.de +* Sat Feb 05 2005 meissner@suse.de - mark up for format string using functions. - fixed one error output -* Tue May 25 2004 - ro@suse.de +* Tue May 25 2004 ro@suse.de - added "-t" docu to manpage -* Thu Mar 25 2004 - mmj@suse.de +* Thu Mar 25 2004 mmj@suse.de - Add postfix to # neededforbuild -* Tue Mar 23 2004 - thomas@suse.de +* Tue Mar 23 2004 thomas@suse.de - Added patch for EAL3 man-pages -* Tue Mar 23 2004 - thomas@suse.de +* Tue Mar 23 2004 thomas@suse.de - Added patch for LAuS -* Wed Jan 28 2004 - kukuk@suse.de +* Wed Jan 28 2004 kukuk@suse.de - Add patch for SELinux -* Mon Oct 27 2003 - ro@suse.de +* Mon Oct 27 2003 ro@suse.de - package /usr/bin/at as 4750,root,trusted as in permissions.secure - add verify (not mode) for /usr/bin/at - add run_permissions macro to postinstall -* Mon Oct 20 2003 - ro@suse.de +* Mon Oct 20 2003 ro@suse.de - don't build as root -* Tue Oct 07 2003 - ro@suse.de +* Tue Oct 07 2003 ro@suse.de - support "at -l -q queue" and "-t timespec" (#31957) (ported from FreeBSD) -* Fri Aug 29 2003 - kukuk@suse.de +* Fri Aug 29 2003 kukuk@suse.de - Create at as system account [Bug #29611] -* Fri Aug 15 2003 - ro@suse.de +* Fri Aug 15 2003 ro@suse.de - make "at -r" behave like "at -d" (#28753) - added restart_on_update/stop_on_removal macros -* Fri Jul 18 2003 - kukuk@suse.de +* Fri Jul 18 2003 kukuk@suse.de - Fix spec file/Makefile to be able to build as normal user -* Wed Jun 18 2003 - ro@suse.de +* Wed Jun 18 2003 ro@suse.de - added "X-UnitedLinux-Default-Enabled: no" to init-script -* Wed Jun 18 2003 - ro@suse.de +* Wed Jun 18 2003 ro@suse.de - don't activate by default -* Mon May 19 2003 - ro@suse.de +* Mon May 19 2003 ro@suse.de - fix filelist -* Tue May 13 2003 - ro@suse.de +* Tue May 13 2003 ro@suse.de - use defattr -* Tue Mar 11 2003 - ro@suse.de +* Tue Mar 11 2003 ro@suse.de - fix postinstall for updates (appeared in #24653) -* Thu Nov 07 2002 - tcrhak@suse.cz +* Thu Nov 07 2002 tcrhak@suse.cz - fixed for bison 1.75: end rules with semicolon -* Fri Aug 23 2002 - bk@suse.de +* Fri Aug 23 2002 bk@suse.de - mark /etc/at.deny as noreplace -* Mon Aug 19 2002 - kukuk@suse.de +* Mon Aug 19 2002 kukuk@suse.de - Use $time instead of xntp in init script. -* Thu Aug 01 2002 - ro@suse.de +* Thu Aug 01 2002 ro@suse.de - added prereqs -* Mon Jul 01 2002 - ro@suse.de +* Mon Jul 01 2002 ro@suse.de - add ntp to Required-Start in init-script (#15833) -* Mon May 27 2002 - ro@suse.de +* Mon May 27 2002 ro@suse.de - set SIGCHLD handler back to default when starting job -* Fri May 24 2002 - ro@suse.de +* Fri May 24 2002 ro@suse.de - create user in install section -* Wed May 22 2002 - kukuk@suse.de +* Wed May 22 2002 kukuk@suse.de - Create at user/group in preinstall script -* Tue Apr 02 2002 - ro@suse.de +* Tue Apr 02 2002 ro@suse.de - don't try to copy config.guess and config.sub (already done by suse_update_config) -* Wed Jan 16 2002 - ro@suse.de +* Wed Jan 16 2002 ro@suse.de - integrated two patches: at-3.1.8-heapcorruption.dif and at-3.1.8-o_excl.dif against heap corruption in time parser for commandline and for safer opening of a file (O_EXCL). - removed all generated files from patch and copy config.{sub,guess} from current automake -* Wed Jan 09 2002 - kukuk@suse.de +* Wed Jan 09 2002 kukuk@suse.de - Fix path to timespec in at.1 manual page [Bug #12784] -* Tue Jan 08 2002 - egmont@suselinux.hu +* Tue Jan 08 2002 egmont@suselinux.hu - removed colons from init script messages -* Wed Jan 02 2002 - kukuk@suse.de +* Wed Jan 02 2002 kukuk@suse.de - Remove warning about cron and at (never worked before and user cannot see it) - Rename init script from at to atd @@ -246,56 +253,56 @@ fi - Remove $route from init script dependencies (does not exist) [Bug #12689] - Use BuildRoot -* Fri Dec 14 2001 - ro@suse.de +* Fri Dec 14 2001 ro@suse.de - removed START_ATD -* Mon Aug 06 2001 - ro@suse.de +* Mon Aug 06 2001 ro@suse.de - updated rc script -* Fri Jun 15 2001 - schwab@suse.de +* Fri Jun 15 2001 schwab@suse.de - Add %%suse_update_config. -* Tue Nov 28 2000 - ro@suse.de +* Tue Nov 28 2000 ro@suse.de - startscript to etc/init.d -* Mon Sep 25 2000 - ro@suse.de +* Mon Sep 25 2000 ro@suse.de - sorted -* Wed Feb 16 2000 - dipa@suse.de +* Wed Feb 16 2000 dipa@suse.de - apply debian patch at_3.1.8-8.diff full section of: at.c, at.1.in, at.deny, at_allow.5, atd.8.in, at.8.in, batch config.guess, config.sub, daemon.c, lex.yy.c, panic.c, parsetime.y, y.tab.c (fix for bug #1766) -* Fri Feb 04 2000 - ro@suse.de +* Fri Feb 04 2000 ro@suse.de - fix missing getlock preload -* Fri Feb 04 2000 - ro@suse.de +* Fri Feb 04 2000 ro@suse.de - applied security fixes from thomas -* Mon Jan 17 2000 - ro@suse.de +* Mon Jan 17 2000 ro@suse.de - man -> usr/share/man -* Mon Sep 13 1999 - bs@suse.de +* Mon Sep 13 1999 bs@suse.de - ran old prepare_spec on spec file to switch to new prepare_spec. -* Tue Dec 08 1998 - ro@suse.de +* Tue Dec 08 1998 ro@suse.de - added reload to script (does a restart) -* Mon Dec 07 1998 - ro@suse.de +* Mon Dec 07 1998 ro@suse.de - added symlink /sbin/rcat -> init.d/at -* Mon Dec 07 1998 - ro@suse.de +* Mon Dec 07 1998 ro@suse.de - updated init-script -* Fri Feb 27 1998 - ro@suse.de +* Fri Feb 27 1998 ro@suse.de - installed timespec in docdir / fixed path in manpage -* Mon Oct 27 1997 - ro@suse.de +* Mon Oct 27 1997 ro@suse.de - update to version 3.1.8 ready for autobuild -* Sun Jun 22 1997 - florian@suse.de +* Sun Jun 22 1997 florian@suse.de - update to version 3.1.7 -* Sun Jun 01 1997 - bs@suse.de +* Sun Jun 01 1997 bs@suse.de - moved fillup stuff to var/adm/fillup-templates -* Thu Jan 02 1997 - bs@suse.de +* Thu Jan 02 1997 bs@suse.de boot script beautified. -* Thu Jan 02 1997 - bs@suse.de +* Thu Jan 02 1997 bs@suse.de recompiled and added README -* Thu Jan 02 1997 - bs@suse.de +* Thu Jan 02 1997 bs@suse.de - /var/spool/atspool/atspool fixed. -* Thu Jan 02 1997 - bs@suse.de +* Thu Jan 02 1997 bs@suse.de - new version 3.0 - fillup etc/rc.config and sbin/init.d/at added. -* Thu Jan 02 1997 - bs@suse.de +* Thu Jan 02 1997 bs@suse.de switched to version pre-3.0-960812. New: atd (daemon) fillup etc/rc.config and sbin/init.d-stuff added. -* Thu Jan 02 1997 - florian@suse.de +* Thu Jan 02 1997 florian@suse.de allow login names to be up to 16 characters long