From a34e68fc4b60eb6772afe53d942015d3dbabd880 Mon Sep 17 00:00:00 2001 From: cvsdist Date: Sep 09 2004 03:14:09 +0000 Subject: auto-import changelog data from at-3.1.8-12.src.rpm Wed Aug 23 2000 Crutcher Dunnavant - Well, we will likely never really close the UTC issues, - because of 1) fractional timezones, and 2) daylight savigns time. - but there is a slight tweak to the handling of dst in the UTC patch. Wed Aug 23 2000 Crutcher Dunnavant - fixed bug #15685 - which had at miscaluclating UTC times. Sat Jul 15 2000 Bill Nottingham - move initscript back Wed Jul 12 2000 Prospector - automatic rebuild Thu Jul 06 2000 Bill Nottingham - prereq /etc/init.d Sat Jul 01 2000 Nalin Dahyabhai - fix syntax error in init script Tue Jun 27 2000 Preston Brown - don't prereq, only require initscripts Mon Jun 26 2000 Preston Brown - move init script - add condrestart directive - fix post/preun/postun scripts - prereq initscripts >= 5.20 Sat Jun 17 2000 Bill Nottingham - fix verify of /var/spool/at/.SEQ (#12262) Mon Jun 12 2000 Nalin Dahyabhai - fix status checking and syntax error in init script Fri Jun 09 2000 Bill Nottingham - fix for long usernames (#11321) - add some bugfixes from debian Mon May 08 2000 Bernhard Rosenkraenzer - 3.1.8 Wed Mar 01 2000 Bill Nottingham - fix a couple of more typos, null-terminate some strings Thu Feb 10 2000 Bill Nottingham - fix many-years-old typo in atd.c Thu Feb 03 2000 Bill Nottingham - handle compressed man pages Mon Aug 16 1999 Bill Nottingham - initscript munging, build as non-root user Sun Jun 13 1999 Jeff Johnson - correct perms for /var/spool/at after defattr. Mon May 24 1999 Jeff Johnson - reset SIGCHLD before exec (#3016). Sun Mar 21 1999 Cristian Gafton - auto rebuild in the new build environment (release 8) Thu Mar 18 1999 Cristian Gafton - fix handling the 12:00 time Wed Jan 13 1999 Bill Nottingham - configure fix for arm Wed Jan 06 1999 Cristian Gafton - build for glibc 2.1 Tue May 05 1998 Prospector System - translations modified for de, fr, tr Wed Apr 22 1998 Michael K. Johnson - enhanced initscript Sun Nov 09 1997 Michael K. Johnson - learned to spell Wed Oct 22 1997 Michael K. Johnson - updated to at version 3.1.7 - updated lock and sequence file handling with %ghost - Use chkconfig and atd, now conflicts with old crontabs packages Thu Jun 19 1997 Erik Troan - built against glibc --- diff --git a/.cvsignore b/.cvsignore index e69de29..9368ec8 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1 @@ +at-3.1.8.tar.bz2 diff --git a/at-3.1.7-lockfile.patch b/at-3.1.7-lockfile.patch new file mode 100644 index 0000000..8788a1a --- /dev/null +++ b/at-3.1.7-lockfile.patch @@ -0,0 +1,11 @@ +--- at-3.1.7/at.c.lockfile Wed Oct 22 17:56:22 1997 ++++ at-3.1.7/at.c Wed Oct 22 17:56:40 1997 +@@ -199,7 +199,7 @@ + fscanf(fid, "%5lx", &jobno); + rewind(fid); + } else { +- fid = fopen(ATJOB_DIR "/.SEQ", "w"); ++ fid = fopen(LFILE, "w"); + if (fid == NULL) + return EOF; + } diff --git a/at-3.1.7-sigchld.patch b/at-3.1.7-sigchld.patch new file mode 100644 index 0000000..5a5c0b5 --- /dev/null +++ b/at-3.1.7-sigchld.patch @@ -0,0 +1,12 @@ +--- at-3.1.7/atd.c.sigchld Mon May 24 16:56:41 1999 ++++ at-3.1.7/atd.c Mon May 24 16:58:57 1999 +@@ -348,6 +348,9 @@ + if (setuid(uid) < 0) + perr("Cannot set user id"); + ++ if (SIG_ERR == signal(SIGCHLD, SIG_DFL)) ++ perr("Cannot reset signal handler to default"); ++ + chdir("/"); + + if (execle("/bin/sh", "sh", (char *) NULL, nenvp) != 0) diff --git a/at-3.1.7-typo.patch b/at-3.1.7-typo.patch new file mode 100644 index 0000000..4a862ad --- /dev/null +++ b/at-3.1.7-typo.patch @@ -0,0 +1,45 @@ +--- at-3.1.7/atd.c.tyop Wed Mar 1 14:32:47 2000 ++++ at-3.1.7/atd.c Wed Mar 1 14:34:52 2000 +@@ -247,7 +247,7 @@ + "aborting", jobno, filename); + + if (buf.st_nlink > 2) { +- perr("Someboy is trying to run a linked script for job %8lu (%.500s)", ++ perr("Somebody is trying to run a linked script for job %8lu (%.500s)", + filename); + } + if ((fflags = fcntl(fd_in, F_GETFD)) < 0) +@@ -493,6 +493,7 @@ + * Let's remove the lockfile and reschedule. + */ + strncpy(lock_name, dirent->d_name, sizeof(lock_name)); ++ lock_name[sizeof(lock_name)-1] = '\0'; + lock_name[0] = '='; + unlink(lock_name); + next_job = now; +@@ -500,7 +501,7 @@ + continue; + } + /* There's a job for later. Note its execution time if it's +- * the earlierst so far. ++ * the earliest so far. + */ + if (run_time > now) { + if (next_job > run_time) { +@@ -518,6 +519,7 @@ + run_batch++; + if (strcmp(batch_name, dirent->d_name) > 0) { + strncpy(batch_name, dirent->d_name, sizeof(batch_name)); ++ batch_name[sizeof(batch_name)-1] = '\0'; + batch_uid = buf.st_uid; + batch_gid = buf.st_gid; + batch_queue = queue; +@@ -553,7 +555,7 @@ + int + main(int argc, char *argv[]) + { +-/* Browse through ATJOB_DIR, checking all the jobfiles wether they should ++/* Browse through ATJOB_DIR, checking all the jobfiles whether they should + * be executed and or deleted. The queue is coded into the first byte of + * the job filename, the date (in minutes since Eon) as a hex number in the + * following eight bytes, followed by a dot and a serial number. A file diff --git a/at-noroot.patch b/at-noroot.patch new file mode 100644 index 0000000..c284537 --- /dev/null +++ b/at-noroot.patch @@ -0,0 +1,58 @@ +--- at-3.1.8/Makefile.in.noroot Fri Jun 9 11:45:52 2000 ++++ at-3.1.8/Makefile.in Fri Jun 9 11:46:39 2000 +@@ -87,11 +87,11 @@ + $(CC) -c $(CFLAGS) $(DEFS) $*.c + + install: all +- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(etcdir) +- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(bindir) +- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(sbindir) +- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(docdir) +- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(atdocdir) ++ $(INSTALL) -m 755 -d $(IROOT)$(etcdir) ++ $(INSTALL) -m 755 -d $(IROOT)$(bindir) ++ $(INSTALL) -m 755 -d $(IROOT)$(sbindir) ++ $(INSTALL) -m 755 -d $(IROOT)$(docdir) ++ $(INSTALL) -m 755 -d $(IROOT)$(atdocdir) + $(INSTALL) -m 755 -d $(IROOT)$(ATJOB_DIR) + $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 755 -d $(IROOT)$(ATSPOOL_DIR) + chmod 700 $(IROOT)$(ATJOB_DIR) $(IROOT)$(ATSPOOL_DIR) +@@ -99,25 +99,25 @@ + touch $(IROOT)$(LFILE) + chmod 600 $(IROOT)$(LFILE) + chown $(DAEMON_USERNAME):$(DAEMON_GROUPNAME) $(IROOT)$(LFILE) +- test -f $(IROOT)$(etcdir)/at.allow || test -f $(IROOT)$(etcdir)/at.deny || $(INSTALL) -o root -m 600 at.deny $(IROOT)$(etcdir)/ +- $(INSTALL) -g root -o root -m 4755 -s at $(IROOT)$(bindir) ++ test -f $(IROOT)$(etcdir)/at.allow || test -f $(IROOT)$(etcdir)/at.deny || $(INSTALL) -m 600 at.deny $(IROOT)$(etcdir)/ ++ $(INSTALL) -m 4755 -s at $(IROOT)$(bindir) + $(LN_S) -f at $(IROOT)$(bindir)/atq + $(LN_S) -f at $(IROOT)$(bindir)/atrm +- $(INSTALL) -g root -o root -m 755 batch $(IROOT)$(bindir) +- $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man1dir) +- $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man5dir) +- $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man8dir) +- $(INSTALL) -g root -o root -m 755 -s atd $(IROOT)$(sbindir) +- $(INSTALL) -g root -o root -m 755 atrun $(IROOT)$(sbindir) +- $(INSTALL) -g root -o root -m 644 at.1 $(IROOT)$(man1dir)/ ++ $(INSTALL) -m 755 batch $(IROOT)$(bindir) ++ $(INSTALL) -d -m 755 $(IROOT)$(man1dir) ++ $(INSTALL) -d -m 755 $(IROOT)$(man5dir) ++ $(INSTALL) -d -m 755 $(IROOT)$(man8dir) ++ $(INSTALL) -m 755 -s atd $(IROOT)$(sbindir) ++ $(INSTALL) -m 755 atrun $(IROOT)$(sbindir) ++ $(INSTALL) -m 644 at.1 $(IROOT)$(man1dir)/ + cd $(IROOT)$(man1dir) && $(LN_S) -f at.1 atq.1 && $(LN_S) -f at.1 batch.1 && $(LN_S) -f at.1 atrm.1 +- $(INSTALL) -g root -o root -m 644 atd.8 $(IROOT)$(man8dir)/ ++ $(INSTALL) -m 644 atd.8 $(IROOT)$(man8dir)/ + sed "s,\$${exec_prefix},$(exec_prefix),g" tmpman +- $(INSTALL) -g root -o root -m 644 tmpman $(IROOT)$(man8dir)/atrun.8 ++ $(INSTALL) -m 644 tmpman $(IROOT)$(man8dir)/atrun.8 + rm -f tmpman +- $(INSTALL) -g root -o root -m 644 at_allow.5 $(IROOT)$(man5dir)/ ++ $(INSTALL) -m 644 at_allow.5 $(IROOT)$(man5dir)/ + cd $(IROOT)$(man5dir) && $(LN_S) -f at_allow.5 at_deny.5 +- $(INSTALL) -g root -o root -m 644 $(DOCS) $(IROOT)$(atdocdir) ++ $(INSTALL) -m 644 $(DOCS) $(IROOT)$(atdocdir) + rm -f $(IROOT)$(mandir)/cat1/at.1* $(IROOT)$(mandir)/cat1/batch.1* \ + $(IROOT)$(mandir)/cat1/atq.1* + rm -f $(IROOT)$(mandir)/cat1/atd.8* diff --git a/at.spec b/at.spec new file mode 100644 index 0000000..74c5f3d --- /dev/null +++ b/at.spec @@ -0,0 +1,193 @@ +Summary: Job spooling tools. +Name: at +Version: 3.1.8 +Release: 12 +Copyright: GPL +Group: System Environment/Daemons +Source: ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/at-3.1.8.tar.bz2 +Source2: atd.init +Patch0: at-3.1.7-lockfile.patch +Patch1: at-3.1.7-noon.patch +Patch2: at-3.1.7-paths.patch +Patch3: at-3.1.7-sigchld.patch +Patch4: at-noroot.patch +Patch5: at-3.1.7-typo.patch +Patch6: at-debian.patch +Patch7: at-3.1.8-buflen.patch +Patch8: at-3.1.8-UTC.patch +Prereq: fileutils chkconfig /etc/init.d +Conflicts: crontabs <= 1.5 +Buildroot: %{_tmppath}/%{name}-root + +%description +At and batch read commands from standard input or from a specified file. +At allows you to specify that a command will be run at a particular time +(now or a specified time in the future). Batch will execute commands +when the system load levels drop to a particular level. Both commands +use /bin/sh to run the commands. + +You should install the at package if you need a utility that will do +time-oriented job control. Note: you should use crontab instead, if it is +a recurring job that will need to be repeated at the same time every +day/week/etc. + +%prep +%setup -q +%patch0 -p1 -b .lockfile +# The next path is a brute-force fix that will have to be updated +# when new versions of at are released. +%patch2 -p1 -b .paths + +%patch3 -p1 -b .sigchld +%patch6 -p1 -b .debian +%patch4 -p1 -b .noroot +%patch5 -p1 -b .tyop +%patch7 -p1 -b .buflen +%patch8 -p1 + +%build +%configure --with-atspool=/var/spool/at/spool --with-jobdir=/var/spool/at + +make + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}/etc/rc.d/init.d + +%makeinstall DAEMON_USERNAME=`id -nu` \ + DAEMON_GROUPNAME=`id -ng` \ + etcdir=%{buildroot}/etc \ + ATJOB_DIR=%{buildroot}/var/spool/at \ + ATSPOOL_DIR=%{buildroot}/var/spool/at/spool +echo > %{buildroot}/etc/at.deny +mkdir docs +cp ${RPM_BUILD_ROOT}%{_prefix}/doc/at/* docs/ +install -m 755 $RPM_SOURCE_DIR/atd.init %{buildroot}/etc/rc.d/init.d/atd + +%clean +rm -rf %{buildroot} + +%post +touch /var/spool/at/.SEQ +chmod 600 /var/spool/at/.SEQ +chown daemon.daemon /var/spool/at/.SEQ +/sbin/chkconfig --add atd + +%preun +if [ "$1" = 0 ] ; then + service atd stop >/dev/null 2>&1 + /sbin/chkconfig --del atd +fi + +%postun +if [ "$1" -ge "1" ]; then + service atd condrestart >/dev/null 2>&1 +fi + +%files +%defattr(-,root,root) +%doc docs/* +%config /etc/at.deny +%config /etc/rc.d/init.d/atd +%attr(0700,daemon,daemon) %dir /var/spool/at +%attr(0700,daemon,daemon) %verify(not md5 size mtime) %ghost /var/spool/at/.SEQ +%attr(0700,daemon,daemon) %dir /var/spool/at/spool +%{_prefix}/sbin/atrun +%{_prefix}/sbin/atd +%{_mandir}/man*/* +%{_prefix}/bin/batch +%{_prefix}/bin/atrm +%{_prefix}/bin/atq +%attr(4755,root,root) %{_prefix}/bin/at + +%changelog +* Wed Aug 23 2000 Crutcher Dunnavant +- Well, we will likely never really close the UTC issues, +- because of 1) fractional timezones, and 2) daylight savigns time. +- but there is a slight tweak to the handling of dst in the UTC patch. + +* Wed Aug 23 2000 Crutcher Dunnavant +- fixed bug #15685 +- which had at miscaluclating UTC times. + +* Sat Jul 15 2000 Bill Nottingham +- move initscript back + +* Wed Jul 12 2000 Prospector +- automatic rebuild + +* Thu Jul 6 2000 Bill Nottingham +- prereq /etc/init.d + +* Sat Jul 1 2000 Nalin Dahyabhai +- fix syntax error in init script + +* Tue Jun 27 2000 Preston Brown +- don't prereq, only require initscripts + +* Mon Jun 26 2000 Preston Brown +- move init script +- add condrestart directive +- fix post/preun/postun scripts +- prereq initscripts >= 5.20 + +* Sat Jun 17 2000 Bill Nottingham +- fix verify of /var/spool/at/.SEQ (#12262) + +* Mon Jun 12 2000 Nalin Dahyabhai +- fix status checking and syntax error in init script + +* Fri Jun 9 2000 Bill Nottingham +- fix for long usernames (#11321) +- add some bugfixes from debian + +* Mon May 8 2000 Bernhard Rosenkraenzer +- 3.1.8 + +* Wed Mar 1 2000 Bill Nottingham +- fix a couple of more typos, null-terminate some strings + +* Thu Feb 10 2000 Bill Nottingham +- fix many-years-old typo in atd.c + +* Thu Feb 3 2000 Bill Nottingham +- handle compressed man pages + +* Mon Aug 16 1999 Bill Nottingham +- initscript munging, build as non-root user + +* Sun Jun 13 1999 Jeff Johnson +- correct perms for /var/spool/at after defattr. + +* Mon May 24 1999 Jeff Johnson +- reset SIGCHLD before exec (#3016). + +* Sun Mar 21 1999 Cristian Gafton +- auto rebuild in the new build environment (release 8) + +* Thu Mar 18 1999 Cristian Gafton +- fix handling the 12:00 time + +* Wed Jan 13 1999 Bill Nottingham +- configure fix for arm + +* Wed Jan 06 1999 Cristian Gafton +- build for glibc 2.1 + +* Tue May 05 1998 Prospector System +- translations modified for de, fr, tr + +* Wed Apr 22 1998 Michael K. Johnson +- enhanced initscript + +* Sun Nov 09 1997 Michael K. Johnson +- learned to spell + +* Wed Oct 22 1997 Michael K. Johnson +- updated to at version 3.1.7 +- updated lock and sequence file handling with %ghost +- Use chkconfig and atd, now conflicts with old crontabs packages + +* Thu Jun 19 1997 Erik Troan +- built against glibc + diff --git a/atd.init b/atd.init new file mode 100755 index 0000000..59bec5e --- /dev/null +++ b/atd.init @@ -0,0 +1,83 @@ +#!/bin/bash +# +# /etc/rc.d/init.d/atd +# +# Starts the at daemon +# +# chkconfig: 345 40 60 +# description: Runs commands scheduled by the at command at the time \ +# specified when at was run, and runs batch commands when the load \ +# average is low enough. +# processname: atd + +# Source function library. +. /etc/init.d/functions + +test -x /usr/sbin/atd || exit 0 + +RETVAL=0 + +# +# See how we were called. +# + +start() { + # Check if atd is already running + if [ ! -f /var/lock/subsys/atd ]; then + echo -n 'Starting at daemon: ' + daemon /usr/sbin/atd + RETVAL=$? + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/atd + echo + fi + return $RETVAL +} + +stop() { + echo -n 'Stopping at daemon: ' + killproc /usr/sbin/atd + RETVAL=$? + [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/atd + echo + return $RETVAL +} + + +restart() { + stop + start +} + +reload() { + restart +} + +status_at() { + status /usr/sbin/atd +} + +case "$1" in +start) + start + ;; +stop) + stop + ;; +reload|restart) + restart + ;; +condrestart) + if [ -f /var/lock/subsys/atd ]; then + restart + fi + ;; +status) + status_at + ;; +*) + echo "Usage: atd {start|stop|restart|condrestart|status}" + exit 1 +esac + +exit $? +exit $RETVAL diff --git a/sources b/sources index e69de29..43e0dae 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +f5194baac29a30b0d90604422dad7037 at-3.1.8.tar.bz2