diff --git a/.fmf/version b/.fmf/version deleted file mode 100644 index d00491f..0000000 --- a/.fmf/version +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/at-3.1.23-document-n.patch b/at-3.1.23-document-n.patch index 39e77e4..7028300 100644 --- a/at-3.1.23-document-n.patch +++ b/at-3.1.23-document-n.patch @@ -9,11 +9,10 @@ diff -up at-3.1.23/atd.8.in.document-n at-3.1.23/atd.8.in .RB [ \-s ] .SH DESCRIPTION .B atd -@@ -44,6 +45,11 @@ in the foreground. +@@ -44,6 +45,10 @@ in the foreground. Process the at/batch queue only once. This is primarily of use for compatibility with old versions of .BR at ; -+.TP +.B \-n +Append the hostname of the system to the subject of the e-mails sent by +.BR atd . diff --git a/at-3.2.2-lock-locks.patch b/at-3.2.2-lock-locks.patch index 5b97d34..6d97c82 100644 --- a/at-3.2.2-lock-locks.patch +++ b/at-3.2.2-lock-locks.patch @@ -19,7 +19,7 @@ diff -ur b/atd.c a/atd.c + int fd_out, fd_in, fd_std; char jobbuf[9]; char *mailname = NULL; - size_t mailsize = 128; + int mailsize = 128; @@ -390,6 +393,10 @@ fcntl(fd_in, F_SETFD, fflags & ~FD_CLOEXEC); diff --git a/at-3.2.5-address-sast.patch b/at-3.2.5-address-sast.patch deleted file mode 100644 index ecf981c..0000000 --- a/at-3.2.5-address-sast.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 43e8b5b5dd72bb9a80679dec8c15a24f00888a53 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jan=20Stan=C4=9Bk?= -Date: Wed, 26 Jun 2024 16:59:31 +0200 -Subject: [PATCH] Address issues from static analyzer -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -- Tweak types in run_file() to prevent overflow -- Initialize all members of of struct tm in posix_time_parse(). - -The static analyzer findings: https://issues.redhat.com/browse/RHEL-44999 - -Signed-off-by: Jan Staněk ---- - atd.c | 4 ++-- - posixtm.c | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/atd.c b/atd.c -index 64fdd83..3908de3 100644 ---- a/atd.c -+++ b/atd.c -@@ -279,7 +279,7 @@ run_file(const char *filename, uid_t uid, gid_t gid) - int fd_out, fd_in; - char jobbuf[9]; - char *mailname = NULL; -- int mailsize = 128; -+ size_t mailsize = 128; - char *newname; - FILE *stream; - int send_mail = 0; -@@ -292,7 +292,7 @@ run_file(const char *filename, uid_t uid, gid_t gid) - char queue; - char fmt[64]; - unsigned long jobno; -- int rc; -+ long rc; - #ifdef HAVE_PAM - int retcode; - #endif -diff --git a/posixtm.c b/posixtm.c -index cf4ec09..06b22fa 100644 ---- a/posixtm.c -+++ b/posixtm.c -@@ -188,7 +188,7 @@ posix_time_parse (struct tm *tm, const char *s, unsigned int syntax_bits) - bool - posixtime (time_t *p, const char *s, unsigned int syntax_bits) - { -- struct tm tm0; -+ struct tm tm0 = {0}; - struct tm tm1; - struct tm const *tm; - time_t t; --- -GitLab - diff --git a/at-3.2.5-mailwithhostname.patch b/at-3.2.5-mailwithhostname.patch index a601db4..cebfb76 100644 --- a/at-3.2.5-mailwithhostname.patch +++ b/at-3.2.5-mailwithhostname.patch @@ -23,7 +23,7 @@ diff -ur b/atd.c a/atd.c @@ -301,6 +306,7 @@ char fmt[64]; unsigned long jobno; - long rc; + int rc; + char hostbuf[MAXHOSTNAMELEN]; #ifdef WITH_PAM int retcode; diff --git a/at-3.2.5-pam.patch b/at-3.2.5-pam.patch index eba2f84..941da0a 100644 --- a/at-3.2.5-pam.patch +++ b/at-3.2.5-pam.patch @@ -131,7 +131,7 @@ diff -ur b/atd.c a/atd.c @@ -293,7 +289,7 @@ char fmt[64]; unsigned long jobno; - long rc; + int rc; -#ifdef HAVE_PAM +#ifdef WITH_PAM int retcode; diff --git a/at-3.2.5-past-date.patch b/at-3.2.5-past-date.patch deleted file mode 100644 index 6344c40..0000000 --- a/at-3.2.5-past-date.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 6c131df8c85cb2761faf551f8f9db179e216fc09 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= -Date: Wed, 25 Jun 2025 14:35:31 +0200 -Subject: [PATCH] Reject past dates when using -t option - --t option was missing validation to reject past dates, unlike the -regular time parsing. - -Add the same past date validation used by parsetime() to the posixtime() -code path to ensure consistent behavior when parsing time. ---- - at.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/at.c b/at.c -index 8d0feaa..3fb0582 100644 ---- a/at.c -+++ b/at.c -@@ -951,6 +951,11 @@ main(int argc, char **argv) - fprintf(stderr, "invalid date format: %s\n", optarg); - exit(EXIT_FAILURE); - } -+ /* Check if the parsed time is in the past */ -+ if (timer < time(NULL)) { -+ fprintf(stderr, "at: refusing to create job destined in the past\n"); -+ exit(EXIT_FAILURE); -+ } - break; - - case 'o': --- -2.49.0 - diff --git a/at-tmpfiles.conf b/at-tmpfiles.conf deleted file mode 100644 index 8eec9a7..0000000 --- a/at-tmpfiles.conf +++ /dev/null @@ -1,6 +0,0 @@ -# at - Tmpfiles configuration for at daemon -# Create /var/spool/at directory structure for the at daemon - -d /var/spool/at 0700 root root - - -d /var/spool/at/spool 0700 root root - - -f /var/spool/at/.SEQ 0600 root root - - diff --git a/at.spec b/at.spec index 60d9fd4..fe37818 100644 --- a/at.spec +++ b/at.spec @@ -3,20 +3,18 @@ Summary: Job spooling tools Name: at Version: 3.2.5 -Release: 20%{?dist} +Release: 3%{?dist} # http://packages.debian.org/changelogs/pool/main/a/at/current/copyright # + install-sh is MIT license with changes under Public Domain -License: GPL-3.0-or-later AND GPL-2.0-or-later AND ISC +License: GPLv3+ and GPLv2+ and ISC and MIT and Public Domain URL: http://ftp.debian.org/debian/pool/main/a/at Source: http://software.calhariz.com/at/at_%{version}.orig.tar.gz # git upstream source git://git.debian.org/git/collab-maint/at.git Source1: pam_atd -Source2: at-tmpfiles.conf Source3: atd.sysconf Source5: atd.systemd -Patch: at-3.2.5-address-sast.patch Patch: at-aarch64.patch Patch: at-3.2.5-make.patch Patch: at-3.2.5-pam.patch @@ -32,14 +30,12 @@ Patch: at-3.1.16-clear-nonjobs.patch Patch: at-3.2.2-lock-locks.patch Patch: at-3.1.23-document-n.patch Patch: at-3.1.20-log-jobs.patch -Patch: at-3.2.5-past-date.patch BuildRequires: gcc BuildRequires: flex flex-static bison autoconf BuildRequires: libselinux-devel >= 1.27.9 BuildRequires: perl(Test::Harness) BuildRequires: perl(Test::More) -BuildRequires: systemd-rpm-macros %if %{with pam} BuildRequires: pam-devel @@ -90,7 +86,7 @@ make install \ DAEMON_USERNAME=`id -nu` \ DAEMON_GROUPNAME=`id -ng` \ DESTDIR=%{buildroot} \ - sbindir=%{_bindir} \ + sbindir=%{_prefix}/sbin \ bindir=%{_bindir} \ datadir=%{_datadir} \ prefix=%{_prefix} \ @@ -117,24 +113,18 @@ install -m 644 %{SOURCE3} %{buildroot}/etc/sysconfig/atd mkdir -p %{buildroot}/%{_unitdir}/ install -m 644 %{SOURCE5} %{buildroot}/%{_unitdir}/atd.service -# install tmpfiles configuration -mkdir -p %{buildroot}%{_tmpfilesdir} -install -m 644 %{SOURCE2} %{buildroot}%{_tmpfilesdir}/at.conf - # remove unpackaged files from the buildroot rm -r %{buildroot}%{_prefix}/doc -# Remove .SEQ file created by make install - tmpfiles will create it -rm -f %{buildroot}%{_localstatedir}/spool/at/.SEQ %check make test %post +touch %{_localstatedir}/spool/at/.SEQ +chmod 600 %{_localstatedir}/spool/at/.SEQ +chown root:root %{_localstatedir}/spool/at/.SEQ %systemd_post atd.service -# Create directories and files using tmpfiles -%tmpfiles_create at.conf - %preun %systemd_preun atd.service @@ -159,78 +149,21 @@ make test %doc README timespec ChangeLog %attr(0644,root,root) %config(noreplace) %{_sysconfdir}/at.deny %attr(0644,root,root) %config(noreplace) %{_sysconfdir}/sysconfig/atd -%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/pam.d/atd %attr(0700,root,root) %dir %{_localstatedir}/spool/at +%attr(0600,root,root) %verify(not md5 size mtime) %ghost %{_localstatedir}/spool/at/.SEQ %attr(0700,root,root) %dir %{_localstatedir}/spool/at/spool -%{_tmpfilesdir}/at.conf -%{_bindir}/atrun -%attr(0755,root,root) %{_bindir}/atd +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/pam.d/atd +%{_sbindir}/atrun +%attr(0755,root,root) %{_sbindir}/atd %{_mandir}/man*/* %{_bindir}/batch %{_bindir}/atrm %{_bindir}/atq %attr(4755,root,root) %{_bindir}/at -%{_datadir}/at/ +%{_datadir}/at/batch-job %attr(0644,root,root) /%{_unitdir}/atd.service %changelog -* Fri Jan 16 2026 Fedora Release Engineering - 3.2.5-20 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Thu Sep 18 2025 Ondřej Pohořelský - 3.2.5-19 -- Add /var/spool/at and /var/spool/at/spool directories into %%files section -- Resolves: rhbz#2396330 - -* Wed Aug 27 2025 Ondřej Pohořelský - 3.2.5-18 -- Use systemd-tmpfiles for /var/spool/at directories - -* Wed Jul 23 2025 Fedora Release Engineering - 3.2.5-17 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Wed Jun 25 2025 Ondřej Pohořelský - 3.2.5-16 -- Fix past date handling with -t option - -* Mon May 05 2025 Ondřej Pohořelský - 3.2.5-15 -- Claim ownership of /usr/share/at -- Resolves: rhbz#2283298 - -* Mon Jan 27 2025 Ondřej Pohořelský - 3.2.5-14 -- Unify bin and sbin directories -- Resolves: rhbz#2339910 - -* Thu Jan 16 2025 Fedora Release Engineering - 3.2.5-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Thu Aug 8 2024 Ales Nezbeda - 3.2.5-12 -- Backport fixes from upstream PR -- https://salsa.debian.org/debian/at/-/merge_requests/34 - -* Wed Jul 17 2024 Fedora Release Engineering - 3.2.5-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Thu May 02 2024 Ondřej Pohořelský - 3.2.5-10 -- Corrected document-n patch -- Resolves: rhbz#2276918 - -* Mon Jan 22 2024 Fedora Release Engineering - 3.2.5-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 3.2.5-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Jul 19 2023 Fedora Release Engineering - 3.2.5-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Mon Jun 26 2023 Ondřej Pohořelský - 3.2.5-6 -- Convert licenses to SPDX format -- Dropped MIT and Public Domain license as they are not present in upstream sources - -* Wed Jan 18 2023 Fedora Release Engineering - 3.2.5-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Wed Jul 20 2022 Fedora Release Engineering - 3.2.5-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - * Thu Mar 31 2022 Jan Staněk - 3.2.5-3 - Add preceding newline to delimiter in at-3.2.2-shell.patch diff --git a/plans/ci.fmf b/plans/ci.fmf deleted file mode 100644 index c1627f9..0000000 --- a/plans/ci.fmf +++ /dev/null @@ -1,5 +0,0 @@ -summary: Basic smoke test -discover: - how: fmf -execute: - how: tmt diff --git a/tests/at b/tests/at new file mode 160000 index 0000000..30cccc8 --- /dev/null +++ b/tests/at @@ -0,0 +1 @@ +Subproject commit 30cccc88a2064eb05018a09d65164a26972cd5b5 diff --git a/tests/initscript/main.fmf b/tests/initscript/main.fmf deleted file mode 100644 index 275b067..0000000 --- a/tests/initscript/main.fmf +++ /dev/null @@ -1,12 +0,0 @@ -summary: Initscript sanity -description: '' -contact: Radek Biba -component: - - at -test: ./runtest.sh -framework: beakerlib -recommend: - - at -duration: 5m -extra-summary: /CoreOS/at/Sanity/initscript -extra-task: /CoreOS/at/Sanity/initscript diff --git a/tests/initscript/runtest.sh b/tests/initscript/runtest.sh index 67ecc2d..a84aecb 100755 --- a/tests/initscript/runtest.sh +++ b/tests/initscript/runtest.sh @@ -27,7 +27,7 @@ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Include rhts environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 +. /usr/share/rhts-library/rhtslib.sh PACKAGE="at" SERVICE="atd" diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..751a586 --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,13 @@ +--- +# This first play always runs on the local staging system +- hosts: localhost + roles: + - role: standard-test-beakerlib + tags: + - classic + - container + - atomic + tests: + - initscript + required_packages: + - at # Required to run initscript