From 6558c8e1a7e5cd9f1f5271718c10355f67573b4c Mon Sep 17 00:00:00 2001 From: Saul Wold Date: Fri, 29 Aug 2014 08:26:31 -0700 Subject: at: Upgrade to 3.1.15 Rebase pam.conf.patch Move to generic files -> at for patches directory Signed-off-by: Saul Wold Signed-off-by: Richard Purdie --- meta/recipes-extended/at/at/S99at | 45 +++ meta/recipes-extended/at/at/atd.service | 9 + .../at/at/configure-add-enable-pam.patch | 25 ++ .../at/at/file_replacement_with_gplv2.patch | 30 ++ .../at/at/fix_parallel_build_error.patch | 28 ++ meta/recipes-extended/at/at/pam.conf.patch | 27 ++ meta/recipes-extended/at/at/posixtm.c | 328 +++++++++++++++++++++ meta/recipes-extended/at/at/posixtm.h | 37 +++ meta/recipes-extended/at/at_3.1.14.bb | 68 ----- meta/recipes-extended/at/at_3.1.15.bb | 68 +++++ meta/recipes-extended/at/files/S99at | 45 --- meta/recipes-extended/at/files/atd.service | 9 - .../at/files/configure-add-enable-pam.patch | 25 -- .../at/files/file_replacement_with_gplv2.patch | 30 -- .../at/files/fix_parallel_build_error.patch | 28 -- meta/recipes-extended/at/files/pam.conf.patch | 21 -- meta/recipes-extended/at/files/posixtm.c | 328 --------------------- meta/recipes-extended/at/files/posixtm.h | 37 --- 18 files changed, 597 insertions(+), 591 deletions(-) create mode 100644 meta/recipes-extended/at/at/S99at create mode 100644 meta/recipes-extended/at/at/atd.service create mode 100644 meta/recipes-extended/at/at/configure-add-enable-pam.patch create mode 100644 meta/recipes-extended/at/at/file_replacement_with_gplv2.patch create mode 100644 meta/recipes-extended/at/at/fix_parallel_build_error.patch create mode 100644 meta/recipes-extended/at/at/pam.conf.patch create mode 100644 meta/recipes-extended/at/at/posixtm.c create mode 100644 meta/recipes-extended/at/at/posixtm.h delete mode 100644 meta/recipes-extended/at/at_3.1.14.bb create mode 100644 meta/recipes-extended/at/at_3.1.15.bb delete mode 100644 meta/recipes-extended/at/files/S99at delete mode 100644 meta/recipes-extended/at/files/atd.service delete mode 100644 meta/recipes-extended/at/files/configure-add-enable-pam.patch delete mode 100644 meta/recipes-extended/at/files/file_replacement_with_gplv2.patch delete mode 100644 meta/recipes-extended/at/files/fix_parallel_build_error.patch delete mode 100644 meta/recipes-extended/at/files/pam.conf.patch delete mode 100644 meta/recipes-extended/at/files/posixtm.c delete mode 100644 meta/recipes-extended/at/files/posixtm.h (limited to 'meta/recipes-extended') diff --git a/meta/recipes-extended/at/at/S99at b/meta/recipes-extended/at/at/S99at new file mode 100644 index 0000000000..eca379b3cd --- /dev/null +++ b/meta/recipes-extended/at/at/S99at @@ -0,0 +1,45 @@ +#!/bin/sh +# +# Starts at daemon +# + +umask 077 + +# Source function library. +. /etc/init.d/functions + +start() { + echo -n "Starting atd: " + start-stop-daemon --start --quiet --pidfile /var/run/atd.pid --background --exec /usr/sbin/atd -- -f + echo "OK" +} +stop() { + echo -n "Stopping atd: " + start-stop-daemon --stop --quiet --pidfile /var/run/atd.pid + echo "OK" +} +restart() { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + status) + status /usr/sbin/atd + ;; + *) + echo $"Usage: $0 {start|stop|restart|status}" + exit 1 +esac + +exit $? + diff --git a/meta/recipes-extended/at/at/atd.service b/meta/recipes-extended/at/at/atd.service new file mode 100644 index 0000000000..6dc844504a --- /dev/null +++ b/meta/recipes-extended/at/at/atd.service @@ -0,0 +1,9 @@ +[Unit] +Description=Job spooling tools +After=syslog.target + +[Service] +ExecStart=@SBINDIR@/atd -f + +[Install] +WantedBy=multi-user.target diff --git a/meta/recipes-extended/at/at/configure-add-enable-pam.patch b/meta/recipes-extended/at/at/configure-add-enable-pam.patch new file mode 100644 index 0000000000..1e5efef128 --- /dev/null +++ b/meta/recipes-extended/at/at/configure-add-enable-pam.patch @@ -0,0 +1,25 @@ +Upstream-Status: Pending + +--- at-3.1.12/configure.ac 2011-06-23 14:51:03.653572945 +0800 ++++ at-3.1.12/configure.ac.new 2011-06-27 16:12:14.903572945 +0800 +@@ -81,10 +81,18 @@ + AC_FUNC_VPRINTF + AC_FUNC_GETLOADAVG + AC_CHECK_FUNCS(getcwd mktime strftime setreuid setresuid sigaction waitpid) ++ ++AC_ARG_WITH([pam], ++ [AS_HELP_STRING([--without-pam], [without PAM support])]) ++ ++if test "x$with_pam" != xno; then + AC_CHECK_HEADERS(security/pam_appl.h, [ + PAMLIB="-lpam" +- AC_DEFINE(HAVE_PAM, 1, [Define to 1 for PAM support]) +-]) ++ AC_DEFINE(HAVE_PAM, 1, [Define to 1 for PAM support])], ++ [if test "x$with_pam" = xyes; then ++ AC_MSG_ERROR([PAM selected but security/pam_misc.h not found]) ++ fi]) ++fi + + dnl Checking for programs + diff --git a/meta/recipes-extended/at/at/file_replacement_with_gplv2.patch b/meta/recipes-extended/at/at/file_replacement_with_gplv2.patch new file mode 100644 index 0000000000..d5ef0032be --- /dev/null +++ b/meta/recipes-extended/at/at/file_replacement_with_gplv2.patch @@ -0,0 +1,30 @@ +Upstream-Status: Inappropriate [licensing] + +posixtm.[ch] files are replaced with gplv2 version from these locations: + +http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob;f=lib/posixtm.c;hb=5661ab9d49512b4cf3c19caa11bb581d8ce561ba +http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob;f=lib/posixtm.h;hb=5661ab9d49512b4cf3c19caa11bb581d8ce561ba + +update the Copyright file information to reflect the replaced files. + +Date: 2010/08/31 +Nitin A Kamble nitin.a.kamble@intel.com + +Index: at-3.1.12/Copyright +=================================================================== +--- at-3.1.12.orig/Copyright ++++ at-3.1.12/Copyright +@@ -31,10 +31,10 @@ The files posixtm.c and posixtm.h have t + Copyright (C) 1989, 1990, 1991, 1998, 2000, 2001, 2002, 2003, 2004, + 2005, 2006, 2007 Free Software Foundation Inc. + +- This program is free software: you can redistribute it and/or modify ++ This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ the Free Software Foundation; either version 2, or (at your option) ++ any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/meta/recipes-extended/at/at/fix_parallel_build_error.patch b/meta/recipes-extended/at/at/fix_parallel_build_error.patch new file mode 100644 index 0000000000..66ff3e1c11 --- /dev/null +++ b/meta/recipes-extended/at/at/fix_parallel_build_error.patch @@ -0,0 +1,28 @@ +make -j was failing sometimesa like this +| ccache i586-poky-linux-gcc -march=i586 --sysroot=/home/nitin/build/build0/tmp/sysroots/i586-poky-linux -I. -fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2 -ggdb -feliminate-unused-debug-types -o atd atd.o daemon.o -lfl -lpam -Wl,-O1 -Wl,--as-needed +| parsetime.l:5:19: fatal error: y.tab.h: No such file or directory +| compilation terminated. +| make: *** [lex.yy.o] Error 1 +| make: *** Waiting for unfinished jobs.... + +Fixed the issue by adding a dependency in the makefile. +Nitin +2010/09/02 + +Upstream-Status: Pending + +Signed-off-by: Scott Garman + +Index: at-3.1.12/Makefile.in +=================================================================== +--- at-3.1.12.orig/Makefile.in ++++ at-3.1.12/Makefile.in +@@ -83,6 +83,8 @@ y.tab.c y.tab.h: parsetime.y + lex.yy.c: parsetime.l + $(LEX) -i parsetime.l + ++parsetime.l: y.tab.h ++ + atrun: atrun.in + configure + diff --git a/meta/recipes-extended/at/at/pam.conf.patch b/meta/recipes-extended/at/at/pam.conf.patch new file mode 100644 index 0000000000..b5ceb9ae82 --- /dev/null +++ b/meta/recipes-extended/at/at/pam.conf.patch @@ -0,0 +1,27 @@ +oe doesn't support "@include", use the concrete directive instead. + +Upstream-Status: Pending + +Signed-off-by: Wenzong Fan +Index: at-3.1.15/pam.conf +=================================================================== +--- at-3.1.15.orig/pam.conf ++++ at-3.1.15/pam.conf +@@ -1,10 +1,11 @@ + # + # The PAM configuration file for the at daemon + # ++ ++auth required pam_env.so ++auth include common-auth ++account include common-account ++session include common-session-noninteractive ++session required pam_limits.so ++session required pam_loginuid.so + +-auth required pam_env.so +-@include common-auth +-@include common-account +-session required pam_loginuid.so +-@include common-session-noninteractive +-session required pam_limits.so diff --git a/meta/recipes-extended/at/at/posixtm.c b/meta/recipes-extended/at/at/posixtm.c new file mode 100644 index 0000000000..5514ba4fe2 --- /dev/null +++ b/meta/recipes-extended/at/at/posixtm.c @@ -0,0 +1,328 @@ +/* Parse dates for touch and date. + + Copyright (C) 1989, 1990, 1991, 1998, 2000, 2001, 2002, 2003, 2004, + 2005, 2006, 2007 Free Software Foundation Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Yacc-based version written by Jim Kingdon and David MacKenzie. + Rewritten by Jim Meyering. */ + +#include + +#include "posixtm.h" + +#include +#include +#include +#include + +#if USE_UNLOCKED_IO +# include "unlocked-io.h" +#endif + +/* ISDIGIT differs from isdigit, as follows: + - Its arg may be any int or unsigned int; it need not be an unsigned char + or EOF. + - It's typically faster. + POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to + isdigit unless it's important to use the locale's definition + of `digit' even when the host does not conform to POSIX. */ +#define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9) + +time_t mktime (); + +/* + POSIX requires: + + touch -t [[CC]YY]mmddhhmm[.ss] FILE... + 8, 10, or 12 digits, followed by optional .ss + (PDS_LEADING_YEAR | PDS_CENTURY | PDS_SECONDS) + + touch mmddhhmm[YY] FILE... (obsoleted by POSIX 1003.1-2001) + 8 or 10 digits, YY (if present) must be in the range 69-99 + (PDS_TRAILING_YEAR | PDS_PRE_2000) + + date mmddhhmm[[CC]YY] + 8, 10, or 12 digits + (PDS_TRAILING_YEAR | PDS_CENTURY) + +*/ + +static int +year (struct tm *tm, const int *digit_pair, size_t n, unsigned int syntax_bits) +{ + switch (n) + { + case 1: + tm->tm_year = *digit_pair; + /* Deduce the century based on the year. + POSIX requires that 00-68 be interpreted as 2000-2068, + and that 69-99 be interpreted as 1969-1999. */ + if (digit_pair[0] <= 68) + { + if (syntax_bits & PDS_PRE_2000) + return 1; + tm->tm_year += 100; + } + break; + + case 2: + if (! (syntax_bits & PDS_CENTURY)) + return 1; + tm->tm_year = digit_pair[0] * 100 + digit_pair[1] - 1900; + break; + + case 0: + { + time_t now; + struct tm *tmp; + + /* Use current year. */ + time (&now); + tmp = localtime (&now); + if (! tmp) + return 1; + tm->tm_year = tmp->tm_year; + } + break; + + default: + abort (); + } + + return 0; +} + +static int +posix_time_parse (struct tm *tm, const char *s, unsigned int syntax_bits) +{ + const char *dot = NULL; + int pair[6]; + int *p; + size_t i; + + size_t s_len = strlen (s); + size_t len = (((syntax_bits & PDS_SECONDS) && (dot = strchr (s, '.'))) + ? (size_t) (dot - s) + : s_len); + + if (len != 8 && len != 10 && len != 12) + return 1; + + if (dot) + { + if (!(syntax_bits & PDS_SECONDS)) + return 1; + + if (s_len - len != 3) + return 1; + } + + for (i = 0; i < len; i++) + if (!ISDIGIT (s[i])) + return 1; + + len /= 2; + for (i = 0; i < len; i++) + pair[i] = 10 * (s[2*i] - '0') + s[2*i + 1] - '0'; + + p = pair; + if (syntax_bits & PDS_LEADING_YEAR) + { + if (year (tm, p, len - 4, syntax_bits)) + return 1; + p += len - 4; + len = 4; + } + + /* Handle 8 digits worth of `MMDDhhmm'. */ + tm->tm_mon = *p++ - 1; + tm->tm_mday = *p++; + tm->tm_hour = *p++; + tm->tm_min = *p++; + len -= 4; + + /* Handle any trailing year. */ + if (syntax_bits & PDS_TRAILING_YEAR) + { + if (year (tm, p, len, syntax_bits)) + return 1; + } + + /* Handle seconds. */ + if (!dot) + { + tm->tm_sec = 0; + } + else + { + int seconds; + + ++dot; + if (!ISDIGIT (dot[0]) || !ISDIGIT (dot[1])) + return 1; + seconds = 10 * (dot[0] - '0') + dot[1] - '0'; + + tm->tm_sec = seconds; + } + + return 0; +} + +/* Parse a POSIX-style date, returning true if successful. */ + +bool +posixtime (time_t *p, const char *s, unsigned int syntax_bits) +{ + struct tm tm0 +#ifdef lint + /* Placate gcc-4's -Wuninitialized. + posix_time_parse fails to set all of tm0 only when it returns + nonzero (due to year() returning nonzero), and in that case, + this code doesn't use the tm0 at all. */ + = { 0, } +#endif + ; + struct tm tm1; + struct tm const *tm; + time_t t; + + if (posix_time_parse (&tm0, s, syntax_bits)) + return false; + + tm1 = tm0; + tm1.tm_isdst = -1; + t = mktime (&tm1); + + if (t != (time_t) -1) + tm = &tm1; + else + { + /* mktime returns -1 for errors, but -1 is also a valid time_t + value. Check whether an error really occurred. */ + tm = localtime (&t); + if (! tm) + return false; + } + + /* Reject dates like "September 31" and times like "25:61". */ + if ((tm0.tm_year ^ tm->tm_year) + | (tm0.tm_mon ^ tm->tm_mon) + | (tm0.tm_mday ^ tm->tm_mday) + | (tm0.tm_hour ^ tm->tm_hour) + | (tm0.tm_min ^ tm->tm_min) + | (tm0.tm_sec ^ tm->tm_sec)) + return false; + + *p = t; + return true; +} + +#ifdef TEST_POSIXTIME +/* + Test mainly with syntax_bits == 13 + (aka: (PDS_LEADING_YEAR | PDS_CENTURY | PDS_SECONDS)) + + This test data assumes Universal Time, e.g., TZ="UTC0". + + This test data also assumes that time_t is signed and is at least + 39 bits wide, so that it can represent all years from 0000 through + 9999. A host with 32-bit signed time_t can represent only time + stamps in the range 1901-12-13 20:45:52 through 2038-01-18 + 03:14:07 UTC, assuming POSIX time_t with no leap seconds, so test + cases outside this range will not work on such a host. + + Also, the first two lines of test data assume that the current + year is 2002. + +BEGIN-DATA +12131415.16 13 1039788916 Fri Dec 13 14:15:16 2002 +12131415.16 13 1039788916 Fri Dec 13 14:15:16 2002 +000001010000.00 13 -62167132800 Sun Jan 1 00:00:00 0000 +190112132045.52 13 -2147483648 Fri Dec 13 20:45:52 1901 +190112132045.53 13 -2147483647 Fri Dec 13 20:45:53 1901 +190112132046.52 13 -2147483588 Fri Dec 13 20:46:52 1901 +190112132145.52 13 -2147480048 Fri Dec 13 21:45:52 1901 +190112142045.52 13 -2147397248 Sat Dec 14 20:45:52 1901 +190201132045.52 13 -2144805248 Mon Jan 13 20:45:52 1902 +196912312359.59 13 -1 Wed Dec 31 23:59:59 1969 +197001010000.00 13 0 Thu Jan 1 00:00:00 1970 +197001010000.01 13 1 Thu Jan 1 00:00:01 1970 +197001010001.00 13 60 Thu Jan 1 00:01:00 1970 +197001010100.00 13 3600 Thu Jan 1 01:00:00 1970 +197001020000.00 13 86400 Fri Jan 2 00:00:00 1970 +197002010000.00 13 2678400 Sun Feb 1 00:00:00 1970 +197101010000.00 13 31536000 Fri Jan 1 00:00:00 1971 +197001000000.00 13 * * +197000010000.00 13 * * +197001010000.60 13 * * +197001010060.00 13 * * +197001012400.00 13 * * +197001320000.00 13 * * +197013010000.00 13 * * +203801190314.06 13 2147483646 Tue Jan 19 03:14:06 2038 +203801190314.07 13 2147483647 Tue Jan 19 03:14:07 2038 +203801190314.08 13 2147483648 Tue Jan 19 03:14:08 2038 +999912312359.59 13 253402300799 Fri Dec 31 23:59:59 9999 +1112131415 13 1323785700 Tue Dec 13 14:15:00 2011 +1112131415.16 13 1323785716 Tue Dec 13 14:15:16 2011 +201112131415.16 13 1323785716 Tue Dec 13 14:15:16 2011 +191112131415.16 13 -1831974284 Wed Dec 13 14:15:16 1911 +203712131415.16 13 2144326516 Sun Dec 13 14:15:16 2037 +3712131415.16 13 2144326516 Sun Dec 13 14:15:16 2037 +6812131415.16 13 3122633716 Thu Dec 13 14:15:16 2068 +6912131415.16 13 -1590284 Sat Dec 13 14:15:16 1969 +7012131415.16 13 29945716 Sun Dec 13 14:15:16 1970 +1213141599 2 945094500 Mon Dec 13 14:15:00 1999 +1213141500 2 976716900 Wed Dec 13 14:15:00 2000 +END-DATA + +*/ + +# define MAX_BUFF_LEN 1024 + +int +main (void) +{ + char buff[MAX_BUFF_LEN + 1]; + + buff[MAX_BUFF_LEN] = 0; + while (fgets (buff, MAX_BUFF_LEN, stdin) && buff[0]) + { + char time_str[MAX_BUFF_LEN]; + unsigned int syntax_bits; + time_t t; + if (sscanf (buff, "%s %u", time_str, &syntax_bits) != 2) + printf ("*\n"); + else + { + printf ("%-15s %2u ", time_str, syntax_bits); + if (posixtime (&t, time_str, syntax_bits)) + printf ("%12ld %s", (long int) t, ctime (&t)); + else + printf ("%12s %s", "*", "*\n"); + } + } + exit (0); + +} +#endif + +/* +Local Variables: +compile-command: "gcc -DTEST_POSIXTIME -g -O -Wall -W posixtm.c" +End: +*/ diff --git a/meta/recipes-extended/at/at/posixtm.h b/meta/recipes-extended/at/at/posixtm.h new file mode 100644 index 0000000000..e91749d736 --- /dev/null +++ b/meta/recipes-extended/at/at/posixtm.h @@ -0,0 +1,37 @@ +/* Parse dates for touch and date. + + Copyright (C) 1998, 2003, 2005, 2007 Free Software Foundation Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Yacc-based version written by Jim Kingdon and David MacKenzie. + Rewritten by Jim Meyering. */ + +#ifndef POSIXTM_H_ +# define POSIXTM_H_ + +# include +# include + +/* POSIX Date Syntax flags. */ +# define PDS_LEADING_YEAR 1 +# define PDS_TRAILING_YEAR 2 +# define PDS_CENTURY 4 +# define PDS_SECONDS 8 +# define PDS_PRE_2000 16 + +bool posixtime (time_t *p, const char *s, unsigned int syntax_bits); + +#endif diff --git a/meta/recipes-extended/at/at_3.1.14.bb b/meta/recipes-extended/at/at_3.1.14.bb deleted file mode 100644 index 68a24b8cd0..0000000000 --- a/meta/recipes-extended/at/at_3.1.14.bb +++ /dev/null @@ -1,68 +0,0 @@ -SUMMARY = "Delayed job execution and batch processing" -DESCRIPTION = "At allows for commands to be run at a particular time. Batch will execute commands when \ -the system load levels drop to a particular level." -SECTION = "base" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4" -DEPENDS = "flex flex-native \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" - -VIRTUAL-RUNTIME_initscripts ?= "initscripts" -RDEPENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_DEPS}', '', d)} \ - ${VIRTUAL-RUNTIME_initscripts} \ -" - -PAM_DEPS = "libpam libpam-runtime pam-plugin-env pam-plugin-limits" - -RCONFLICTS_${PN} = "atd" -RREPLACES_${PN} = "atd" - -SRC_URI = "${DEBIAN_MIRROR}/main/a/at/at_${PV}.orig.tar.gz \ - file://fix_parallel_build_error.patch \ - file://posixtm.c \ - file://posixtm.h \ - file://file_replacement_with_gplv2.patch \ - file://S99at \ - file://atd.service \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)}" - -PAM_SRC_URI = "file://pam.conf.patch \ - file://configure-add-enable-pam.patch" - -SRC_URI[md5sum] = "d41cfd79033b6e49a8838add59a42ac6" -SRC_URI[sha256sum] = "cd092bf05d29c25b286f55a960ce8b8c3c5beb571d86ed8eb1dfb3b61291b3ae" - -EXTRA_OECONF += "ac_cv_path_SENDMAIL=/bin/true \ - --with-daemon_username=root \ - --with-daemon_groupname=root \ - --with-jobdir=/var/spool/at/jobs \ - --with-atspool=/var/spool/at/spool \ - ac_cv_header_security_pam_appl_h=${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'yes', 'no', d)} " - -inherit autotools-brokensep systemd - -SYSTEMD_SERVICE_${PN} = "atd.service" - -PARALLEL_MAKE = "" - -do_compile_prepend () { - cp -f ${WORKDIR}/posixtm.[ch] ${S} -} - -do_install () { - oe_runmake -e "IROOT=${D}" install - - install -d ${D}${sysconfdir}/init.d - install -d ${D}${sysconfdir}/rcS.d - install -m 0755 ${WORKDIR}/S99at ${D}${sysconfdir}/init.d/atd - ln -sf ../init.d/atd ${D}${sysconfdir}/rcS.d/S99at - - # install systemd unit files - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/atd.service ${D}${systemd_unitdir}/system - sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/atd.service - - if [ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" = "pam" ]; then - install -D -m 0644 ${WORKDIR}/${BP}/pam.conf ${D}${sysconfdir}/pam.d/atd - fi -} diff --git a/meta/recipes-extended/at/at_3.1.15.bb b/meta/recipes-extended/at/at_3.1.15.bb new file mode 100644 index 0000000000..a465a76324 --- /dev/null +++ b/meta/recipes-extended/at/at_3.1.15.bb @@ -0,0 +1,68 @@ +SUMMARY = "Delayed job execution and batch processing" +DESCRIPTION = "At allows for commands to be run at a particular time. Batch will execute commands when \ +the system load levels drop to a particular level." +SECTION = "base" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4" +DEPENDS = "flex flex-native \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" + +VIRTUAL-RUNTIME_initscripts ?= "initscripts" +RDEPENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_DEPS}', '', d)} \ + ${VIRTUAL-RUNTIME_initscripts} \ +" + +PAM_DEPS = "libpam libpam-runtime pam-plugin-env pam-plugin-limits" + +RCONFLICTS_${PN} = "atd" +RREPLACES_${PN} = "atd" + +SRC_URI = "${DEBIAN_MIRROR}/main/a/at/at_${PV}.orig.tar.gz \ + file://fix_parallel_build_error.patch \ + file://posixtm.c \ + file://posixtm.h \ + file://file_replacement_with_gplv2.patch \ + file://S99at \ + file://atd.service \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)}" + +PAM_SRC_URI = "file://pam.conf.patch \ + file://configure-add-enable-pam.patch" + +SRC_URI[md5sum] = "f0f96db22e3a174b53ce4beeeb848839" +SRC_URI[sha256sum] = "03a84f5293d5a95ef4231b7faf5578f141f0c76a2b304dd655bc7e90e97bf7fc" + +EXTRA_OECONF += "ac_cv_path_SENDMAIL=/bin/true \ + --with-daemon_username=root \ + --with-daemon_groupname=root \ + --with-jobdir=/var/spool/at/jobs \ + --with-atspool=/var/spool/at/spool \ + ac_cv_header_security_pam_appl_h=${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'yes', 'no', d)} " + +inherit autotools-brokensep systemd + +SYSTEMD_SERVICE_${PN} = "atd.service" + +PARALLEL_MAKE = "" + +do_compile_prepend () { + cp -f ${WORKDIR}/posixtm.[ch] ${S} +} + +do_install () { + oe_runmake -e "IROOT=${D}" install + + install -d ${D}${sysconfdir}/init.d + install -d ${D}${sysconfdir}/rcS.d + install -m 0755 ${WORKDIR}/S99at ${D}${sysconfdir}/init.d/atd + ln -sf ../init.d/atd ${D}${sysconfdir}/rcS.d/S99at + + # install systemd unit files + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/atd.service ${D}${systemd_unitdir}/system + sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/atd.service + + if [ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" = "pam" ]; then + install -D -m 0644 ${WORKDIR}/${BP}/pam.conf ${D}${sysconfdir}/pam.d/atd + fi +} diff --git a/meta/recipes-extended/at/files/S99at b/meta/recipes-extended/at/files/S99at deleted file mode 100644 index eca379b3cd..0000000000 --- a/meta/recipes-extended/at/files/S99at +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh -# -# Starts at daemon -# - -umask 077 - -# Source function library. -. /etc/init.d/functions - -start() { - echo -n "Starting atd: " - start-stop-daemon --start --quiet --pidfile /var/run/atd.pid --background --exec /usr/sbin/atd -- -f - echo "OK" -} -stop() { - echo -n "Stopping atd: " - start-stop-daemon --stop --quiet --pidfile /var/run/atd.pid - echo "OK" -} -restart() { - stop - start -} - -case "$1" in - start) - start - ;; - stop) - stop - ;; - restart|reload) - restart - ;; - status) - status /usr/sbin/atd - ;; - *) - echo $"Usage: $0 {start|stop|restart|status}" - exit 1 -esac - -exit $? - diff --git a/meta/recipes-extended/at/files/atd.service b/meta/recipes-extended/at/files/atd.service deleted file mode 100644 index 6dc844504a..0000000000 --- a/meta/recipes-extended/at/files/atd.service +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -Description=Job spooling tools -After=syslog.target - -[Service] -ExecStart=@SBINDIR@/atd -f - -[Install] -WantedBy=multi-user.target diff --git a/meta/recipes-extended/at/files/configure-add-enable-pam.patch b/meta/recipes-extended/at/files/configure-add-enable-pam.patch deleted file mode 100644 index 1e5efef128..0000000000 --- a/meta/recipes-extended/at/files/configure-add-enable-pam.patch +++ /dev/null @@ -1,25 +0,0 @@ -Upstream-Status: Pending - ---- at-3.1.12/configure.ac 2011-06-23 14:51:03.653572945 +0800 -+++ at-3.1.12/configure.ac.new 2011-06-27 16:12:14.903572945 +0800 -@@ -81,10 +81,18 @@ - AC_FUNC_VPRINTF - AC_FUNC_GETLOADAVG - AC_CHECK_FUNCS(getcwd mktime strftime setreuid setresuid sigaction waitpid) -+ -+AC_ARG_WITH([pam], -+ [AS_HELP_STRING([--without-pam], [without PAM support])]) -+ -+if test "x$with_pam" != xno; then - AC_CHECK_HEADERS(security/pam_appl.h, [ - PAMLIB="-lpam" -- AC_DEFINE(HAVE_PAM, 1, [Define to 1 for PAM support]) --]) -+ AC_DEFINE(HAVE_PAM, 1, [Define to 1 for PAM support])], -+ [if test "x$with_pam" = xyes; then -+ AC_MSG_ERROR([PAM selected but security/pam_misc.h not found]) -+ fi]) -+fi - - dnl Checking for programs - diff --git a/meta/recipes-extended/at/files/file_replacement_with_gplv2.patch b/meta/recipes-extended/at/files/file_replacement_with_gplv2.patch deleted file mode 100644 index d5ef0032be..0000000000 --- a/meta/recipes-extended/at/files/file_replacement_with_gplv2.patch +++ /dev/null @@ -1,30 +0,0 @@ -Upstream-Status: Inappropriate [licensing] - -posixtm.[ch] files are replaced with gplv2 version from these locations: - -http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob;f=lib/posixtm.c;hb=5661ab9d49512b4cf3c19caa11bb581d8ce561ba -http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob;f=lib/posixtm.h;hb=5661ab9d49512b4cf3c19caa11bb581d8ce561ba - -update the Copyright file information to reflect the replaced files. - -Date: 2010/08/31 -Nitin A Kamble nitin.a.kamble@intel.com - -Index: at-3.1.12/Copyright -=================================================================== ---- at-3.1.12.orig/Copyright -+++ at-3.1.12/Copyright -@@ -31,10 +31,10 @@ The files posixtm.c and posixtm.h have t - Copyright (C) 1989, 1990, 1991, 1998, 2000, 2001, 2002, 2003, 2004, - 2005, 2006, 2007 Free Software Foundation Inc. - -- This program is free software: you can redistribute it and/or modify -+ This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 3 of the License, or -- (at your option) any later version. -+ the Free Software Foundation; either version 2, or (at your option) -+ any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/meta/recipes-extended/at/files/fix_parallel_build_error.patch b/meta/recipes-extended/at/files/fix_parallel_build_error.patch deleted file mode 100644 index 66ff3e1c11..0000000000 --- a/meta/recipes-extended/at/files/fix_parallel_build_error.patch +++ /dev/null @@ -1,28 +0,0 @@ -make -j was failing sometimesa like this -| ccache i586-poky-linux-gcc -march=i586 --sysroot=/home/nitin/build/build0/tmp/sysroots/i586-poky-linux -I. -fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2 -ggdb -feliminate-unused-debug-types -o atd atd.o daemon.o -lfl -lpam -Wl,-O1 -Wl,--as-needed -| parsetime.l:5:19: fatal error: y.tab.h: No such file or directory -| compilation terminated. -| make: *** [lex.yy.o] Error 1 -| make: *** Waiting for unfinished jobs.... - -Fixed the issue by adding a dependency in the makefile. -Nitin -2010/09/02 - -Upstream-Status: Pending - -Signed-off-by: Scott Garman - -Index: at-3.1.12/Makefile.in -=================================================================== ---- at-3.1.12.orig/Makefile.in -+++ at-3.1.12/Makefile.in -@@ -83,6 +83,8 @@ y.tab.c y.tab.h: parsetime.y - lex.yy.c: parsetime.l - $(LEX) -i parsetime.l - -+parsetime.l: y.tab.h -+ - atrun: atrun.in - configure - diff --git a/meta/recipes-extended/at/files/pam.conf.patch b/meta/recipes-extended/at/files/pam.conf.patch deleted file mode 100644 index dfe76d7487..0000000000 --- a/meta/recipes-extended/at/files/pam.conf.patch +++ /dev/null @@ -1,21 +0,0 @@ -oe doesn't support "@include", use the concrete directive instead. - -Upstream-Status: Pending - -Signed-off-by: Wenzong Fan ---- at-3.1.12/pam.conf.orig 2009-11-23 23:11:52.000000000 +0800 -+++ at-3.1.12/pam.conf 2011-07-15 11:14:04.132818950 +0800 -@@ -2,8 +2,8 @@ - # The PAM configuration file for the at daemon - # - --auth required pam_env.so --@include common-auth --@include common-account --@include common-session-noninteractive --session required pam_limits.so -+auth required pam_env.so -+auth include common-auth -+account include common-account -+session include common-session-noninteractive -+session required pam_limits.so diff --git a/meta/recipes-extended/at/files/posixtm.c b/meta/recipes-extended/at/files/posixtm.c deleted file mode 100644 index 5514ba4fe2..0000000000 --- a/meta/recipes-extended/at/files/posixtm.c +++ /dev/null @@ -1,328 +0,0 @@ -/* Parse dates for touch and date. - - Copyright (C) 1989, 1990, 1991, 1998, 2000, 2001, 2002, 2003, 2004, - 2005, 2006, 2007 Free Software Foundation Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* Yacc-based version written by Jim Kingdon and David MacKenzie. - Rewritten by Jim Meyering. */ - -#include - -#include "posixtm.h" - -#include -#include -#include -#include - -#if USE_UNLOCKED_IO -# include "unlocked-io.h" -#endif - -/* ISDIGIT differs from isdigit, as follows: - - Its arg may be any int or unsigned int; it need not be an unsigned char - or EOF. - - It's typically faster. - POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to - isdigit unless it's important to use the locale's definition - of `digit' even when the host does not conform to POSIX. */ -#define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9) - -time_t mktime (); - -/* - POSIX requires: - - touch -t [[CC]YY]mmddhhmm[.ss] FILE... - 8, 10, or 12 digits, followed by optional .ss - (PDS_LEADING_YEAR | PDS_CENTURY | PDS_SECONDS) - - touch mmddhhmm[YY] FILE... (obsoleted by POSIX 1003.1-2001) - 8 or 10 digits, YY (if present) must be in the range 69-99 - (PDS_TRAILING_YEAR | PDS_PRE_2000) - - date mmddhhmm[[CC]YY] - 8, 10, or 12 digits - (PDS_TRAILING_YEAR | PDS_CENTURY) - -*/ - -static int -year (struct tm *tm, const int *digit_pair, size_t n, unsigned int syntax_bits) -{ - switch (n) - { - case 1: - tm->tm_year = *digit_pair; - /* Deduce the century based on the year. - POSIX requires that 00-68 be interpreted as 2000-2068, - and that 69-99 be interpreted as 1969-1999. */ - if (digit_pair[0] <= 68) - { - if (syntax_bits & PDS_PRE_2000) - return 1; - tm->tm_year += 100; - } - break; - - case 2: - if (! (syntax_bits & PDS_CENTURY)) - return 1; - tm->tm_year = digit_pair[0] * 100 + digit_pair[1] - 1900; - break; - - case 0: - { - time_t now; - struct tm *tmp; - - /* Use current year. */ - time (&now); - tmp = localtime (&now); - if (! tmp) - return 1; - tm->tm_year = tmp->tm_year; - } - break; - - default: - abort (); - } - - return 0; -} - -static int -posix_time_parse (struct tm *tm, const char *s, unsigned int syntax_bits) -{ - const char *dot = NULL; - int pair[6]; - int *p; - size_t i; - - size_t s_len = strlen (s); - size_t len = (((syntax_bits & PDS_SECONDS) && (dot = strchr (s, '.'))) - ? (size_t) (dot - s) - : s_len); - - if (len != 8 && len != 10 && len != 12) - return 1; - - if (dot) - { - if (!(syntax_bits & PDS_SECONDS)) - return 1; - - if (s_len - len != 3) - return 1; - } - - for (i = 0; i < len; i++) - if (!ISDIGIT (s[i])) - return 1; - - len /= 2; - for (i = 0; i < len; i++) - pair[i] = 10 * (s[2*i] - '0') + s[2*i + 1] - '0'; - - p = pair; - if (syntax_bits & PDS_LEADING_YEAR) - { - if (year (tm, p, len - 4, syntax_bits)) - return 1; - p += len - 4; - len = 4; - } - - /* Handle 8 digits worth of `MMDDhhmm'. */ - tm->tm_mon = *p++ - 1; - tm->tm_mday = *p++; - tm->tm_hour = *p++; - tm->tm_min = *p++; - len -= 4; - - /* Handle any trailing year. */ - if (syntax_bits & PDS_TRAILING_YEAR) - { - if (year (tm, p, len, syntax_bits)) - return 1; - } - - /* Handle seconds. */ - if (!dot) - { - tm->tm_sec = 0; - } - else - { - int seconds; - - ++dot; - if (!ISDIGIT (dot[0]) || !ISDIGIT (dot[1])) - return 1; - seconds = 10 * (dot[0] - '0') + dot[1] - '0'; - - tm->tm_sec = seconds; - } - - return 0; -} - -/* Parse a POSIX-style date, returning true if successful. */ - -bool -posixtime (time_t *p, const char *s, unsigned int syntax_bits) -{ - struct tm tm0 -#ifdef lint - /* Placate gcc-4's -Wuninitialized. - posix_time_parse fails to set all of tm0 only when it returns - nonzero (due to year() returning nonzero), and in that case, - this code doesn't use the tm0 at all. */ - = { 0, } -#endif - ; - struct tm tm1; - struct tm const *tm; - time_t t; - - if (posix_time_parse (&tm0, s, syntax_bits)) - return false; - - tm1 = tm0; - tm1.tm_isdst = -1; - t = mktime (&tm1); - - if (t != (time_t) -1) - tm = &tm1; - else - { - /* mktime returns -1 for errors, but -1 is also a valid time_t - value. Check whether an error really occurred. */ - tm = localtime (&t); - if (! tm) - return false; - } - - /* Reject dates like "September 31" and times like "25:61". */ - if ((tm0.tm_year ^ tm->tm_year) - | (tm0.tm_mon ^ tm->tm_mon) - | (tm0.tm_mday ^ tm->tm_mday) - | (tm0.tm_hour ^ tm->tm_hour) - | (tm0.tm_min ^ tm->tm_min) - | (tm0.tm_sec ^ tm->tm_sec)) - return false; - - *p = t; - return true; -} - -#ifdef TEST_POSIXTIME -/* - Test mainly with syntax_bits == 13 - (aka: (PDS_LEADING_YEAR | PDS_CENTURY | PDS_SECONDS)) - - This test data assumes Universal Time, e.g., TZ="UTC0". - - This test data also assumes that time_t is signed and is at least - 39 bits wide, so that it can represent all years from 0000 through - 9999. A host with 32-bit signed time_t can represent only time - stamps in the range 1901-12-13 20:45:52 through 2038-01-18 - 03:14:07 UTC, assuming POSIX time_t with no leap seconds, so test - cases outside this range will not work on such a host. - - Also, the first two lines of test data assume that the current - year is 2002. - -BEGIN-DATA -12131415.16 13 1039788916 Fri Dec 13 14:15:16 2002 -12131415.16 13 1039788916 Fri Dec 13 14:15:16 2002 -000001010000.00 13 -62167132800 Sun Jan 1 00:00:00 0000 -190112132045.52 13 -2147483648 Fri Dec 13 20:45:52 1901 -190112132045.53 13 -2147483647 Fri Dec 13 20:45:53 1901 -190112132046.52 13 -2147483588 Fri Dec 13 20:46:52 1901 -190112132145.52 13 -2147480048 Fri Dec 13 21:45:52 1901 -190112142045.52 13 -2147397248 Sat Dec 14 20:45:52 1901 -190201132045.52 13 -2144805248 Mon Jan 13 20:45:52 1902 -196912312359.59 13 -1 Wed Dec 31 23:59:59 1969 -197001010000.00 13 0 Thu Jan 1 00:00:00 1970 -197001010000.01 13 1 Thu Jan 1 00:00:01 1970 -197001010001.00 13 60 Thu Jan 1 00:01:00 1970 -197001010100.00 13 3600 Thu Jan 1 01:00:00 1970 -197001020000.00 13 86400 Fri Jan 2 00:00:00 1970 -197002010000.00 13 2678400 Sun Feb 1 00:00:00 1970 -197101010000.00 13 31536000 Fri Jan 1 00:00:00 1971 -197001000000.00 13 * * -197000010000.00 13 * * -197001010000.60 13 * * -197001010060.00 13 * * -197001012400.00 13 * * -197001320000.00 13 * * -197013010000.00 13 * * -203801190314.06 13 2147483646 Tue Jan 19 03:14:06 2038 -203801190314.07 13 2147483647 Tue Jan 19 03:14:07 2038 -203801190314.08 13 2147483648 Tue Jan 19 03:14:08 2038 -999912312359.59 13 253402300799 Fri Dec 31 23:59:59 9999 -1112131415 13 1323785700 Tue Dec 13 14:15:00 2011 -1112131415.16 13 1323785716 Tue Dec 13 14:15:16 2011 -201112131415.16 13 1323785716 Tue Dec 13 14:15:16 2011 -191112131415.16 13 -1831974284 Wed Dec 13 14:15:16 1911 -203712131415.16 13 2144326516 Sun Dec 13 14:15:16 2037 -3712131415.16 13 2144326516 Sun Dec 13 14:15:16 2037 -6812131415.16 13 3122633716 Thu Dec 13 14:15:16 2068 -6912131415.16 13 -1590284 Sat Dec 13 14:15:16 1969 -7012131415.16 13 29945716 Sun Dec 13 14:15:16 1970 -1213141599 2 945094500 Mon Dec 13 14:15:00 1999 -1213141500 2 976716900 Wed Dec 13 14:15:00 2000 -END-DATA - -*/ - -# define MAX_BUFF_LEN 1024 - -int -main (void) -{ - char buff[MAX_BUFF_LEN + 1]; - - buff[MAX_BUFF_LEN] = 0; - while (fgets (buff, MAX_BUFF_LEN, stdin) && buff[0]) - { - char time_str[MAX_BUFF_LEN]; - unsigned int syntax_bits; - time_t t; - if (sscanf (buff, "%s %u", time_str, &syntax_bits) != 2) - printf ("*\n"); - else - { - printf ("%-15s %2u ", time_str, syntax_bits); - if (posixtime (&t, time_str, syntax_bits)) - printf ("%12ld %s", (long int) t, ctime (&t)); - else - printf ("%12s %s", "*", "*\n"); - } - } - exit (0); - -} -#endif - -/* -Local Variables: -compile-command: "gcc -DTEST_POSIXTIME -g -O -Wall -W posixtm.c" -End: -*/ diff --git a/meta/recipes-extended/at/files/posixtm.h b/meta/recipes-extended/at/files/posixtm.h deleted file mode 100644 index e91749d736..0000000000 --- a/meta/recipes-extended/at/files/posixtm.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Parse dates for touch and date. - - Copyright (C) 1998, 2003, 2005, 2007 Free Software Foundation Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* Yacc-based version written by Jim Kingdon and David MacKenzie. - Rewritten by Jim Meyering. */ - -#ifndef POSIXTM_H_ -# define POSIXTM_H_ - -# include -# include - -/* POSIX Date Syntax flags. */ -# define PDS_LEADING_YEAR 1 -# define PDS_TRAILING_YEAR 2 -# define PDS_CENTURY 4 -# define PDS_SECONDS 8 -# define PDS_PRE_2000 16 - -bool posixtime (time_t *p, const char *s, unsigned int syntax_bits); - -#endif -- cgit 1.2.3-korg