Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
From f446686916e503dfb9fb928252d1b72a07573b29 Mon Sep 17 00:00:00 2001
|
||||
From: Dengke Du <dengke.du@windriver.com>
|
||||
Date: Tue, 18 Jul 2017 03:42:56 -0400
|
||||
Subject: [PATCH] remove glibc assumption
|
||||
|
||||
glibc time.h header has an undocumented __isleap macro
|
||||
that we are using anf musl is missing it.
|
||||
Since it is undocumented & does not appear
|
||||
on any other libc, stop using it and just define the macro in
|
||||
locally instead.
|
||||
|
||||
Upstream-Status: Submitted [ https://lists.debian.org/debian-accessibility/2017/07/msg00044.html ]
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
Signed-off-by: Dengke Du <dengke.du@windriver.com>
|
||||
---
|
||||
parsetime.y | 11 +++++++----
|
||||
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
Index: at-3.2.1/parsetime.y
|
||||
===================================================================
|
||||
--- at-3.2.1.orig/parsetime.y
|
||||
+++ at-3.2.1/parsetime.y
|
||||
@@ -14,6 +14,9 @@
|
||||
((y) % 4 == 0 && ((y) % 100 != 0 || (y) % 400 == 0))
|
||||
#endif
|
||||
|
||||
+#define is_leap_year(y) \
|
||||
+ ((y) % 4 == 0 && ((y) % 100 != 0 || (y) % 400 == 0))
|
||||
+
|
||||
struct tm exectm;
|
||||
static int isgmt;
|
||||
static char *tz = NULL;
|
||||
@@ -230,8 +233,8 @@ date : month_name day_number
|
||||
mnum == 12) && dnum > 31)
|
||||
|| ((mnum == 4 || mnum == 6 || mnum == 9 ||
|
||||
mnum == 11) && dnum > 30)
|
||||
- || (mnum == 2 && dnum > 29 && __isleap(ynum+1900))
|
||||
- || (mnum == 2 && dnum > 28 && !__isleap(ynum+1900))
|
||||
+ || (mnum == 2 && dnum > 29 && is_leap_year(ynum+1900))
|
||||
+ || (mnum == 2 && dnum > 28 && !is_leap_year(ynum+1900))
|
||||
)
|
||||
{
|
||||
yyerror("Error in day of month");
|
||||
@@ -274,8 +277,8 @@ date : month_name day_number
|
||||
mnum == 12) && dnum > 31)
|
||||
|| ((mnum == 4 || mnum == 6 || mnum == 9 ||
|
||||
mnum == 11) && dnum > 30)
|
||||
- || (mnum == 2 && dnum > 29 && __isleap(ynum+1900))
|
||||
- || (mnum == 2 && dnum > 28 && !__isleap(ynum+1900))
|
||||
+ || (mnum == 2 && dnum > 29 && is_leap_year(ynum+1900))
|
||||
+ || (mnum == 2 && dnum > 28 && !is_leap_year(ynum+1900))
|
||||
)
|
||||
{
|
||||
yyerror("Error in day of month");
|
||||
45
sources/poky/meta/recipes-extended/at/at/atd.init
Normal file
45
sources/poky/meta/recipes-extended/at/at/atd.init
Normal file
@@ -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 $?
|
||||
|
||||
9
sources/poky/meta/recipes-extended/at/at/atd.service
Normal file
9
sources/poky/meta/recipes-extended/at/at/atd.service
Normal file
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Job spooling tools
|
||||
After=syslog.target
|
||||
|
||||
[Service]
|
||||
ExecStart=@SBINDIR@/atd -f
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -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
|
||||
|
||||
@@ -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.2.1/Copyright
|
||||
===================================================================
|
||||
--- at-3.2.1.orig/Copyright
|
||||
+++ at-3.2.1/Copyright
|
||||
@@ -34,10 +34,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
|
||||
@@ -0,0 +1,32 @@
|
||||
From 150b63a936af71b992a3a7b0fc2d2497e51fc800 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Yang <liezhi.yang@windriver.com>
|
||||
Date: Wed, 28 Jan 2015 23:52:00 -0800
|
||||
Subject: [PATCH] Makefile: fix for parallel build
|
||||
|
||||
Fixed:
|
||||
y.tab.c:1001:0: error: unterminated #if
|
||||
|
||||
Let "$(YACC) -d parsetime.y" only run once will fix the problem.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
||||
---
|
||||
Makefile | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: at-3.2.1/Makefile.in
|
||||
===================================================================
|
||||
--- at-3.2.1.orig/Makefile.in
|
||||
+++ at-3.2.1/Makefile.in
|
||||
@@ -77,7 +77,9 @@ at: $(ATOBJECTS)
|
||||
atd: $(RUNOBJECTS)
|
||||
$(CC) $(LDFLAGS) -o atd $(RUNOBJECTS) $(LIBS) $(PAMLIB) $(SELINUXLIB)
|
||||
|
||||
-y.tab.c y.tab.h: parsetime.y
|
||||
+y.tab.h: y.tab.c
|
||||
+
|
||||
+y.tab.c: parsetime.y
|
||||
$(YACC) -d parsetime.y
|
||||
|
||||
lex.yy.c: parsetime.l
|
||||
35
sources/poky/meta/recipes-extended/at/at/pam.conf.patch
Normal file
35
sources/poky/meta/recipes-extended/at/at/pam.conf.patch
Normal file
@@ -0,0 +1,35 @@
|
||||
From 8c8a0b6ba199327d2eafefd6611353e1c483a854 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Wed, 5 Dec 2018 10:00:36 +0800
|
||||
Subject: [PATCH] fix pam.conf
|
||||
|
||||
oe doesn't support "@include", use the concrete directive instead.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
pam.conf | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/pam.conf b/pam.conf
|
||||
index 3674c0a..2f8d586 100644
|
||||
--- a/pam.conf
|
||||
+++ b/pam.conf
|
||||
@@ -2,9 +2,9 @@
|
||||
# The PAM configuration file for the at daemon
|
||||
#
|
||||
|
||||
-@include common-auth
|
||||
-@include common-account
|
||||
+auth include common-auth
|
||||
+account include common-account
|
||||
session required pam_loginuid.so
|
||||
-@include common-session-noninteractive
|
||||
+session include common-session-noninteractive
|
||||
session required pam_limits.so
|
||||
auth required pam_env.so user_readenv=1
|
||||
--
|
||||
2.7.4
|
||||
|
||||
328
sources/poky/meta/recipes-extended/at/at/posixtm.c
Normal file
328
sources/poky/meta/recipes-extended/at/at/posixtm.c
Normal file
@@ -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 <config.h>
|
||||
|
||||
#include "posixtm.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
#include <string.h>
|
||||
|
||||
#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:
|
||||
*/
|
||||
37
sources/poky/meta/recipes-extended/at/at/posixtm.h
Normal file
37
sources/poky/meta/recipes-extended/at/at/posixtm.h
Normal file
@@ -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 <stdbool.h>
|
||||
# include <time.h>
|
||||
|
||||
/* 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
|
||||
76
sources/poky/meta/recipes-extended/at/at_3.2.5.bb
Normal file
76
sources/poky/meta/recipes-extended/at/at_3.2.5.bb
Normal file
@@ -0,0 +1,76 @@
|
||||
SUMMARY = "Delayed job execution and batch processing"
|
||||
HOMEPAGE = "http://blog.calhariz.com/"
|
||||
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 = "GPL-2.0-or-later"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4"
|
||||
DEPENDS = "flex flex-native bison-native \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
|
||||
|
||||
PACKAGECONFIG ?= "\
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)} \
|
||||
"
|
||||
|
||||
PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux,"
|
||||
|
||||
RDEPENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_DEPS}', '', d)} \
|
||||
"
|
||||
|
||||
PAM_DEPS = "libpam libpam-runtime pam-plugin-env pam-plugin-limits"
|
||||
|
||||
RCONFLICTS:${PN} = "atd"
|
||||
RREPLACES:${PN} = "atd"
|
||||
|
||||
SRC_URI = "${DEBIAN_MIRROR}/main/a/at/${BPN}_${PV}.orig.tar.gz \
|
||||
file://posixtm.c \
|
||||
file://posixtm.h \
|
||||
file://file_replacement_with_gplv2.patch \
|
||||
file://atd.init \
|
||||
file://atd.service \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
|
||||
file://makefile-fix-parallel.patch \
|
||||
file://0001-remove-glibc-assumption.patch \
|
||||
"
|
||||
|
||||
PAM_SRC_URI = "file://pam.conf.patch \
|
||||
file://configure-add-enable-pam.patch"
|
||||
|
||||
SRC_URI[sha256sum] = "bb066b389d7c9bb9d84a35738032b85c30cba7d949f758192adc72c9477fd3b8"
|
||||
|
||||
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 update-rc.d
|
||||
|
||||
INITSCRIPT_NAME = "atd"
|
||||
INITSCRIPT_PARAMS = "defaults"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} = "atd.service"
|
||||
|
||||
do_patch[postfuncs] += "copy_posix_files"
|
||||
|
||||
copy_posix_files() {
|
||||
cp -f ${WORKDIR}/posixtm.[ch] ${S}
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_runmake -e "IROOT=${D}" install
|
||||
|
||||
install -d ${D}${sysconfdir}/init.d
|
||||
install -m 0755 ${WORKDIR}/atd.init ${D}${sysconfdir}/init.d/atd
|
||||
|
||||
# install systemd unit files
|
||||
install -d ${D}${systemd_system_unitdir}
|
||||
install -m 0644 ${WORKDIR}/atd.service ${D}${systemd_system_unitdir}
|
||||
sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_system_unitdir}/atd.service
|
||||
|
||||
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
|
||||
install -D -m 0644 ${WORKDIR}/${BP}/pam.conf ${D}${sysconfdir}/pam.d/atd
|
||||
fi
|
||||
rm -f ${D}${datadir}/at/batch-job
|
||||
}
|
||||
Reference in New Issue
Block a user