From ca463b87887d8151b83d222dc35d461991c1dd63 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sat, 21 Dec 2013 21:37:59 +0100 Subject: another musl fix round --- package/pam/Makefile | 11 ++- package/pam/patches/patch-Makefile_in | 24 ----- package/pam/patches/patch-conf_Makefile_in | 11 --- package/pam/patches/patch-configure | 15 ++- package/pam/patches/patch-modules_Makefile_in | 11 +++ .../patches/patch-modules_pam_group_pam_group_c | 19 ++-- .../patch-modules_pam_lastlog_pam_lastlog_c | 21 ++++ .../patch-modules_pam_succeed_if_pam_succeed_if_c | 47 ++------- .../pam/patches/patch-modules_pam_time_pam_time_c | 15 +-- .../patches/patch-modules_pam_timestamp_hmacfile | 107 --------------------- .../patches/patch-modules_pam_unix_pam_unix_acct_c | 10 -- 11 files changed, 79 insertions(+), 212 deletions(-) delete mode 100644 package/pam/patches/patch-Makefile_in delete mode 100644 package/pam/patches/patch-conf_Makefile_in create mode 100644 package/pam/patches/patch-modules_Makefile_in create mode 100644 package/pam/patches/patch-modules_pam_lastlog_pam_lastlog_c delete mode 100644 package/pam/patches/patch-modules_pam_timestamp_hmacfile delete mode 100644 package/pam/patches/patch-modules_pam_unix_pam_unix_acct_c (limited to 'package/pam') diff --git a/package/pam/Makefile b/package/pam/Makefile index c9a15a4b5..20db87238 100644 --- a/package/pam/Makefile +++ b/package/pam/Makefile @@ -4,13 +4,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:= pam -PKG_VERSION:= 1.1.4 -PKG_RELEASE:= 2 -PKG_MD5SUM:= ff8f3c4382b78ac211e11bcd56ab17bf +PKG_VERSION:= 1.1.8 +PKG_RELEASE:= 1 +PKG_MD5SUM:= 5107bbf54042400b6200e8367cc7feef PKG_DESCR:= Pluggable Authentication Modules PKG_BUILDDEP:= flex PKG_SECTION:= misc -PKG_SITES:= http://openadk.org/distfiles/ +PKG_URL:= http://www.linux-pam.org/ +PKG_SITES:= http://www.linux-pam.org/library/ PKG_OPTS:= dev DISTFILES:= Linux-PAM-$(PKG_VERSION).tar.gz @@ -20,7 +21,7 @@ include $(TOPDIR)/mk/package.mk $(eval $(call PKG_template,PAM,pam,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS})) -XAKE_FLAGS+= GCC_HONOUR_COPTS=s +#XAKE_FLAGS+= GCC_HONOUR_COPTS=s CONFIGURE_ARGS+= --disable-nis \ --enable-db=no diff --git a/package/pam/patches/patch-Makefile_in b/package/pam/patches/patch-Makefile_in deleted file mode 100644 index 12574da06..000000000 --- a/package/pam/patches/patch-Makefile_in +++ /dev/null @@ -1,24 +0,0 @@ ---- Linux-PAM-1.1.4.orig/Makefile.in 2011-06-24 12:48:16.000000000 +0200 -+++ Linux-PAM-1.1.4/Makefile.in 2011-10-07 11:42:21.000000000 +0200 -@@ -75,8 +75,8 @@ RECURSIVE_CLEAN_TARGETS = mostlyclean-re - distclean-recursive maintainer-clean-recursive - ETAGS = etags - CTAGS = ctags --DIST_SUBDIRS = libpam tests libpamc libpam_misc modules po conf doc \ -- examples xtests -+DIST_SUBDIRS = libpam tests libpamc libpam_misc modules po conf \ -+ examples - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - distdir = $(PACKAGE)-$(VERSION) - top_distdir = $(distdir) -@@ -258,8 +258,8 @@ top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - AUTOMAKE_OPTIONS = 1.9 gnu dist-bzip2 check-news --@STATIC_MODULES_FALSE@SUBDIRS = libpam tests libpamc libpam_misc modules po conf doc examples xtests --@STATIC_MODULES_TRUE@SUBDIRS = modules libpam libpamc libpam_misc tests po conf doc examples xtests -+@STATIC_MODULES_FALSE@SUBDIRS = libpam tests libpamc libpam_misc modules po conf examples -+@STATIC_MODULES_TRUE@SUBDIRS = modules libpam libpamc libpam_misc tests po conf examples - CLEANFILES = *~ - M4_FILES = m4/gettext.m4 m4/iconv.m4 m4/intlmacosx.m4 \ - m4/japhar_grep_cflags.m4 m4/jh_path_xml_catalog.m4 \ diff --git a/package/pam/patches/patch-conf_Makefile_in b/package/pam/patches/patch-conf_Makefile_in deleted file mode 100644 index b4a0d7afb..000000000 --- a/package/pam/patches/patch-conf_Makefile_in +++ /dev/null @@ -1,11 +0,0 @@ ---- Linux-PAM-1.1.4.orig/conf/Makefile.in 2011-06-24 12:48:02.000000000 +0200 -+++ Linux-PAM-1.1.4/conf/Makefile.in 2011-10-07 11:32:37.000000000 +0200 -@@ -236,7 +236,7 @@ target_alias = @target_alias@ - top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ --SUBDIRS = pam_conv1 -+SUBDIRS = - CLEANFILES = *~ - EXTRA_DIST = install_conf md5itall pam.conf - all: all-recursive diff --git a/package/pam/patches/patch-configure b/package/pam/patches/patch-configure index 728ff6492..50e967fd8 100644 --- a/package/pam/patches/patch-configure +++ b/package/pam/patches/patch-configure @@ -1,6 +1,6 @@ ---- Linux-PAM-1.1.4.orig/configure 2011-06-24 12:48:18.000000000 +0200 -+++ Linux-PAM-1.1.4/configure 2011-10-12 14:51:42.323559002 +0200 -@@ -2766,8 +2766,6 @@ then +--- Linux-PAM-1.1.8.orig/configure 2013-09-19 10:01:32.000000000 +0200 ++++ Linux-PAM-1.1.8/configure 2013-12-21 18:40:31.000000000 +0100 +@@ -10718,8 +10718,6 @@ then if test ${libdir} = '${exec_prefix}/lib' then case "`uname -m`" in @@ -9,3 +9,12 @@ *) libdir="/lib" ;; esac +@@ -13299,7 +13297,7 @@ $as_echo "$ac_cv_search_crypt" >&6; } + ac_res=$ac_cv_search_crypt + if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" +- LIBCRYPT="-l$ac_lib" ++ LIBCRYPT="" + else + LIBCRYPT="" + fi diff --git a/package/pam/patches/patch-modules_Makefile_in b/package/pam/patches/patch-modules_Makefile_in new file mode 100644 index 000000000..4185b299e --- /dev/null +++ b/package/pam/patches/patch-modules_Makefile_in @@ -0,0 +1,11 @@ +--- Linux-PAM-1.1.8.orig/modules/Makefile.in 2013-09-19 10:01:33.000000000 +0200 ++++ Linux-PAM-1.1.8/modules/Makefile.in 2013-12-21 18:45:07.000000000 +0100 +@@ -274,7 +274,7 @@ SUBDIRS = pam_access pam_cracklib pam_de + pam_group pam_issue pam_keyinit pam_lastlog pam_limits \ + pam_listfile pam_localuser pam_loginuid pam_mail \ + pam_mkhomedir pam_motd pam_namespace pam_nologin \ +- pam_permit pam_pwhistory pam_rhosts pam_rootok pam_securetty \ ++ pam_permit pam_pwhistory pam_rootok pam_securetty \ + pam_selinux pam_sepermit pam_shells pam_stress \ + pam_succeed_if pam_tally pam_tally2 pam_time pam_timestamp \ + pam_tty_audit pam_umask \ diff --git a/package/pam/patches/patch-modules_pam_group_pam_group_c b/package/pam/patches/patch-modules_pam_group_pam_group_c index 40c1897d2..bbf25bcfd 100644 --- a/package/pam/patches/patch-modules_pam_group_pam_group_c +++ b/package/pam/patches/patch-modules_pam_group_pam_group_c @@ -1,12 +1,17 @@ ---- Linux-PAM-1.1.4.orig/modules/pam_group/pam_group.c 2011-06-21 11:04:56.000000000 +0200 -+++ Linux-PAM-1.1.4/modules/pam_group/pam_group.c 2011-10-12 14:31:55.693559001 +0200 -@@ -656,7 +656,8 @@ static int check_account(pam_handle_t *p +--- Linux-PAM-1.1.8.orig/modules/pam_group/pam_group.c 2013-06-18 16:11:21.000000000 +0200 ++++ Linux-PAM-1.1.8/modules/pam_group/pam_group.c 2013-12-21 18:30:19.000000000 +0100 +@@ -655,10 +655,13 @@ static int check_account(pam_handle_t *p + continue; } /* If buffer starts with @, we are using netgroups */ ++#ifdef HAVE_INNETGR if (buffer[0] == '@') -- good &= innetgr (&buffer[1], NULL, user, NULL); -+ pam_syslog(pamh, LOG_ERR, "%s: no netgroup supported by C library", PAM_GROUP_CONF); -+ //good &= innetgr (&buffer[1], NULL, user, NULL); + good &= innetgr (&buffer[1], NULL, user, NULL); /* otherwise, if the buffer starts with %, it's a UNIX group */ - else if (buffer[0] == '%') +- else if (buffer[0] == '%') ++ else ++#endif ++ if (buffer[0] == '%') good &= pam_modutil_user_in_group_nam_nam(pamh, user, &buffer[1]); + else + good &= logic_field(pamh,user, buffer, count, is_same); diff --git a/package/pam/patches/patch-modules_pam_lastlog_pam_lastlog_c b/package/pam/patches/patch-modules_pam_lastlog_pam_lastlog_c new file mode 100644 index 000000000..b20bd413d --- /dev/null +++ b/package/pam/patches/patch-modules_pam_lastlog_pam_lastlog_c @@ -0,0 +1,21 @@ +--- Linux-PAM-1.1.8.orig/modules/pam_lastlog/pam_lastlog.c 2013-06-18 16:11:21.000000000 +0200 ++++ Linux-PAM-1.1.8/modules/pam_lastlog/pam_lastlog.c 2013-12-21 18:34:07.000000000 +0100 +@@ -10,6 +10,7 @@ + + #include "config.h" + ++#include + #include + #include + #include +@@ -50,6 +51,10 @@ struct lastlog { + # define _PATH_BTMP "/var/log/btmp" + #endif + ++#ifndef __GLIBC__ ++#define logwtmp(args...) ++#endif ++ + /* XXX - time before ignoring lock. Is 1 sec enough? */ + #define LASTLOG_IGNORE_LOCK_TIME 1 + diff --git a/package/pam/patches/patch-modules_pam_succeed_if_pam_succeed_if_c b/package/pam/patches/patch-modules_pam_succeed_if_pam_succeed_if_c index 63f82cc4b..93a79ebda 100644 --- a/package/pam/patches/patch-modules_pam_succeed_if_pam_succeed_if_c +++ b/package/pam/patches/patch-modules_pam_succeed_if_pam_succeed_if_c @@ -1,52 +1,23 @@ ---- Linux-PAM-1.1.4.orig/modules/pam_succeed_if/pam_succeed_if.c 2011-06-21 11:04:56.000000000 +0200 -+++ Linux-PAM-1.1.4/modules/pam_succeed_if/pam_succeed_if.c 2012-07-31 12:02:24.000000000 +0200 -@@ -230,6 +230,7 @@ evaluate_notingroup(pam_handle_t *pamh, - return PAM_AUTH_ERR; - } - /* Return PAM_SUCCESS if the (host,user) is in the netgroup. */ -+/* +--- Linux-PAM-1.1.8.orig/modules/pam_succeed_if/pam_succeed_if.c 2013-06-18 16:11:21.000000000 +0200 ++++ Linux-PAM-1.1.8/modules/pam_succeed_if/pam_succeed_if.c 2013-12-21 18:30:19.000000000 +0100 +@@ -233,16 +233,20 @@ evaluate_notingroup(pam_handle_t *pamh, static int evaluate_innetgr(const char *host, const char *user, const char *group) { -@@ -237,7 +238,9 @@ evaluate_innetgr(const char *host, const ++#ifdef HAVE_INNETGR + if (innetgr(group, host, user, NULL) == 1) return PAM_SUCCESS; ++#endif return PAM_AUTH_ERR; } -+*/ /* Return PAM_SUCCESS if the (host,user) is NOT in the netgroup. */ -+/* static int evaluate_notinnetgr(const char *host, const char *user, const char *group) { -@@ -245,6 +248,7 @@ evaluate_notinnetgr(const char *host, co ++#ifdef HAVE_INNETGR + if (innetgr(group, host, user, NULL) == 0) return PAM_SUCCESS; ++#endif return PAM_AUTH_ERR; } -+*/ - /* Match a triple. */ - static int -@@ -357,19 +361,23 @@ evaluate(pam_handle_t *pamh, int debug, - return evaluate_notingroup(pamh, user, right); - } - /* (Rhost, user) is in this netgroup. */ -+ /* - if (strcasecmp(qual, "innetgr") == 0) { - const void *rhost; - if (pam_get_item(pamh, PAM_RHOST, &rhost) != PAM_SUCCESS) - rhost = NULL; - return evaluate_innetgr(rhost, user, right); - } -+ */ - /* (Rhost, user) is not in this group. */ -+ /* - if (strcasecmp(qual, "notinnetgr") == 0) { - const void *rhost; - if (pam_get_item(pamh, PAM_RHOST, &rhost) != PAM_SUCCESS) - rhost = NULL; - return evaluate_notinnetgr(rhost, user, right); - } -+ */ - /* Fail closed. */ - return PAM_SERVICE_ERR; - } diff --git a/package/pam/patches/patch-modules_pam_time_pam_time_c b/package/pam/patches/patch-modules_pam_time_pam_time_c index e44b2f489..b8670e562 100644 --- a/package/pam/patches/patch-modules_pam_time_pam_time_c +++ b/package/pam/patches/patch-modules_pam_time_pam_time_c @@ -1,13 +1,14 @@ ---- Linux-PAM-1.1.4.orig/modules/pam_time/pam_time.c 2011-06-21 11:04:56.000000000 +0200 -+++ Linux-PAM-1.1.4/modules/pam_time/pam_time.c 2012-07-31 12:02:24.000000000 +0200 -@@ -555,7 +555,9 @@ check_account(pam_handle_t *pamh, const +--- Linux-PAM-1.1.8.orig/modules/pam_time/pam_time.c 2013-06-18 16:11:21.000000000 +0200 ++++ Linux-PAM-1.1.8/modules/pam_time/pam_time.c 2013-12-21 18:30:19.000000000 +0100 +@@ -554,9 +554,11 @@ check_account(pam_handle_t *pamh, const + continue; } /* If buffer starts with @, we are using netgroups */ ++#ifdef HAVE_INNETGR if (buffer[0] == '@') -- good &= innetgr (&buffer[1], NULL, user, NULL); -+ //good &= innetgr (&buffer[1], NULL, user, NULL); -+ pam_syslog(pamh, LOG_ERR, -+ "%s: no netgroup support in C library", PAM_TIME_CONF); + good &= innetgr (&buffer[1], NULL, user, NULL); else ++#endif good &= logic_field(pamh, user, buffer, count, is_same); D(("with user: %s", good ? "passes":"fails" )); + diff --git a/package/pam/patches/patch-modules_pam_timestamp_hmacfile b/package/pam/patches/patch-modules_pam_timestamp_hmacfile deleted file mode 100644 index 5cc35d24e..000000000 --- a/package/pam/patches/patch-modules_pam_timestamp_hmacfile +++ /dev/null @@ -1,107 +0,0 @@ ---- Linux-PAM-1.1.4.orig/modules/pam_timestamp/hmacfile 2011-06-21 11:37:55.000000000 +0200 -+++ Linux-PAM-1.1.4/modules/pam_timestamp/hmacfile 2012-07-31 12:03:27.000000000 +0200 -@@ -1,4 +1,4 @@ --#! /bin/sh -+#! /bin/bash - - # hmacfile - temporary wrapper script for .libs/hmacfile - # Generated by ltmain.sh (GNU libtool) 2.2.6 -@@ -11,7 +11,7 @@ - - # Sed substitution that helps us do robust quoting. It backslashifies - # metacharacters that are still active within double-quoted strings. --Xsed='/bin/sed -e 1s/^X//' -+Xsed='/Volumes/adk/openadk/scripts/sed -e 1s/^X//' - sed_quote_subst='s/\([`"$\\]\)/\\\1/g' - - # Be Bourne compatible -@@ -32,13 +32,13 @@ DUALCASE=1; export DUALCASE # for MKS sh - # if CDPATH is set. - (unset CDPATH) >/dev/null 2>&1 && unset CDPATH - --relink_command="" -+relink_command="(cd /Volumes/adk/openadk/build_qemu_i686_eglibc/w-pam-1.1.4-2/Linux-PAM-1.1.4/modules/pam_timestamp; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/Volumes/adk/openadk/scripts:/Volumes/adk/openadk/bin/tools:/Volumes/adk/openadk/host_i686_eglibc/bin:/Volumes/adk/openadk/host_i686_eglibc/usr/bin:/Volumes/adk/openadk/target_i686_eglibc/scripts:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/MacGPG2/bin:/usr/X11/bin; export PATH; /Volumes/adk/openadk/host_i686_eglibc/bin/i686-openadk-linux-gnu-gcc -I../../libpam/include -I../../libpamc/include -march=i686 -fwrapv -fno-ident -fhonour-copts -fomit-frame-pointer -Os -pipe -W -Wall -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wstrict-prototypes -Wwrite-strings -Winline -Wshadow -Wl,-O2 -Wl,-rpath -Wl,/usr/lib -Wl,-rpath-link -Wl,/Volumes/adk/openadk/target_i686_eglibc/usr/lib -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -o \$progdir/\$file hmacfile.o hmacsha1.o sha1.o -L/Volumes/adk/openadk/target_i686_eglibc/lib -L/Volumes/adk/openadk/target_i686_eglibc/usr/lib -L/Volumes/adk/openadk/build_qemu_i686_eglibc/w-pam-1.1.4-2/Linux-PAM-1.1.4/libpam /Volumes/adk/openadk/build_qemu_i686_eglibc/w-pam-1.1.4-2/Linux-PAM-1.1.4/libpam/.libs/libpam.so -ldl -Wl,-rpath -Wl,/Volumes/adk/openadk/build_qemu_i686_eglibc/w-pam-1.1.4-2/Linux-PAM-1.1.4/libpam/.libs)" - - # This environment variable determines our operation mode. - if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then - # install mode needs the following variables: - generated_by_libtool_version='2.2.6' -- notinst_deplibs=' /data/git/Linux-PAM/libpam/libpam.la' -+ notinst_deplibs=' /Volumes/adk/openadk/build_qemu_i686_eglibc/w-pam-1.1.4-2/Linux-PAM-1.1.4/libpam/libpam.la' - else - # When we are sourced in execute mode, $file and $ECHO are already set. - if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then -@@ -53,7 +53,7 @@ else - : - else - # Restart under the correct shell, and then maybe $ECHO will work. -- exec /bin/sh "$0" --no-reexec ${1+"$@"} -+ exec /bin/bash "$0" --no-reexec ${1+"$@"} - fi - fi - -@@ -62,7 +62,7 @@ else - test "x$thisdir" = "x$file" && thisdir=. - - # Follow symbolic links until we get to the real thisdir. -- file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'` -+ file=`ls -ld "$file" | /Volumes/adk/openadk/scripts/sed -n 's/.*-> //p'` - while test -n "$file"; do - destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'` - -@@ -75,7 +75,7 @@ else - fi - - file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'` -- file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'` -+ file=`ls -ld "$thisdir/$file" | /Volumes/adk/openadk/scripts/sed -n 's/.*-> //p'` - done - - -@@ -98,20 +98,38 @@ else - absdir=`cd "$thisdir" && pwd` - test -n "$absdir" && thisdir="$absdir" - -- program='hmacfile' -+ program=lt-'hmacfile' - progdir="$thisdir/.libs" - -+ if test ! -f "$progdir/$program" || -+ { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /Volumes/adk/openadk/scripts/sed 1q`; \ -+ test "X$file" != "X$progdir/$program"; }; then - -- if test -f "$progdir/$program"; then -- # Add our own library path to LD_LIBRARY_PATH -- LD_LIBRARY_PATH="/data/git/Linux-PAM/libpam/.libs:$LD_LIBRARY_PATH" -+ file="$$-$program" - -- # Some systems cannot cope with colon-terminated LD_LIBRARY_PATH -- # The second colon is a workaround for a bug in BeOS R4 sed -- LD_LIBRARY_PATH=`$ECHO "X$LD_LIBRARY_PATH" | $Xsed -e 's/::*$//'` -+ if test ! -d "$progdir"; then -+ mkdir "$progdir" -+ else -+ rm -f "$progdir/$file" -+ fi - -- export LD_LIBRARY_PATH -+ # relink executable if necessary -+ if test -n "$relink_command"; then -+ if relink_command_output=`eval $relink_command 2>&1`; then : -+ else -+ echo "$relink_command_output" >&2 -+ rm -f "$progdir/$file" -+ exit 1 -+ fi -+ fi -+ -+ mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null || -+ { rm -f "$progdir/$program"; -+ mv -f "$progdir/$file" "$progdir/$program"; } -+ rm -f "$progdir/$file" -+ fi - -+ if test -f "$progdir/$program"; then - if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then - # Run the actual program with our arguments. - diff --git a/package/pam/patches/patch-modules_pam_unix_pam_unix_acct_c b/package/pam/patches/patch-modules_pam_unix_pam_unix_acct_c deleted file mode 100644 index 2ce448f1a..000000000 --- a/package/pam/patches/patch-modules_pam_unix_pam_unix_acct_c +++ /dev/null @@ -1,10 +0,0 @@ ---- Linux-PAM-1.1.4.orig/modules/pam_unix/pam_unix_acct.c 2011-06-21 11:04:56.000000000 +0200 -+++ Linux-PAM-1.1.4/modules/pam_unix/pam_unix_acct.c 2012-07-31 13:08:58.000000000 +0200 -@@ -47,6 +47,7 @@ - #include /* for time() */ - #include - #include -+#include - - #include - -- cgit v1.2.3