From c2e39386e5df376620264b820fde2994b12d035d Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Mon, 21 Dec 2020 09:36:47 -0500 Subject: tests: Fix tpmtool_test due to changes in trousers Recent changes to trousers now require an ownership of root:tss for the tcsd config file, older ones requires tss:tss. So, start tcsd using trial and error with either one of these ownership configurations until one works. Signed-off-by: Stefan Berger --- tests/tpmtool_test.sh | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/tests/tpmtool_test.sh b/tests/tpmtool_test.sh index c6e4bc42ef..137552d621 100755 --- a/tests/tpmtool_test.sh +++ b/tests/tpmtool_test.sh @@ -138,6 +138,7 @@ start_tcsd() local tcsd_conf=$workdir/tcsd.conf local tcsd_system_ps_file=$workdir/system_ps_file local tcsd_pidfile=$workdir/tcsd.pid + local owner start_swtpm "$workdir" [ $? -ne 0 ] && return 1 @@ -146,20 +147,36 @@ start_tcsd() port = $TCSD_LISTEN_PORT system_ps_file = $tcsd_system_ps_file _EOF_ + # older versions of trousers require tss:tss ownership of the + # config file, later ones root:tss + for owner in tss root; do + if [ "$owner" = "tss" ]; then + chmod 0600 $tcsd_conf + else + chmod 0640 $tcsd_conf + fi + chown $owner:tss $tcsd_conf - chown tss:tss $tcsd_conf - chmod 0600 $tcsd_conf + bash -c "TCSD_USE_TCP_DEVICE=1 TCSD_TCP_DEVICE_PORT=$SWTPM_SERVER_PORT tcsd -c $tcsd_conf -e -f &>/dev/null & echo \$! > $tcsd_pidfile; wait" & + BASH_PID=$! - bash -c "TCSD_USE_TCP_DEVICE=1 TCSD_TCP_DEVICE_PORT=$SWTPM_SERVER_PORT tcsd -c $tcsd_conf -e -f &>/dev/null & echo \$! > $tcsd_pidfile; wait" & - BASH_PID=$! + if wait_for_file $tcsd_pidfile 3; then + echo "Could not get TCSD's PID file" + return 1 + fi - if wait_for_file $tcsd_pidfile 3; then - echo "Could not get TCSD's PID file" - return 1 - fi + sleep 0.5 + TCSD_PID=$(cat $tcsd_pidfile) + kill -0 "${TCSD_PID}" + if [ $? -ne 0 ]; then + # Try again with other owner + continue + fi + return 0 + done - TCSD_PID=$(cat $tcsd_pidfile) - return 0 + echo "TCSD could not be started" + return 1 } stop_tcsd() -- cgit v1.2.1 From 40203390a48b8fa01d72c6a9739d963cf24556b8 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Mon, 28 Dec 2020 16:16:53 +0100 Subject: testpkcs11: use datefudge to trick certificate expiry The certificates stored in tests/testpkcs11-certs expired on 2020-12-13. To avoid verification failure due to that, use datefudge to set custom date when calling gnutls-cli, gnutls-serv, and certtool. Based on the patch by Andreas Metzler: https://gitlab.com/gnutls/gnutls/-/issues/1135#note_469682121 Signed-off-by: Daiki Ueno --- tests/scripts/common.sh | 5 +++++ tests/testpkcs11.sh | 12 +++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/tests/scripts/common.sh b/tests/scripts/common.sh index 6ae19fa586..69b5fd612a 100644 --- a/tests/scripts/common.sh +++ b/tests/scripts/common.sh @@ -187,6 +187,11 @@ launch_bare_server() { ${SERV} $* >${LOGFILE-/dev/null} & } +launch_bare_server2() { + wait_for_free_port "$PORT" + "$@" >${LOGFILE-/dev/null} & +} + wait_server() { local PID=$1 trap "test -n \"${PID}\" && kill ${PID};exit 1" 1 15 2 diff --git a/tests/testpkcs11.sh b/tests/testpkcs11.sh index 9458af2381..3d74bfea66 100755 --- a/tests/testpkcs11.sh +++ b/tests/testpkcs11.sh @@ -67,6 +67,8 @@ have_ed25519=0 P11TOOL="${VALGRIND} ${P11TOOL} --batch" SERV="${SERV} -q" +TESTDATE=2020-12-01 + . ${srcdir}/scripts/common.sh rm -f "${LOGFILE}" @@ -79,6 +81,8 @@ exit_error () { exit 1 } +skip_if_no_datefudge + # $1: token # $2: PIN # $3: filename @@ -523,6 +527,7 @@ write_certificate_test () { pubkey="$5" echo -n "* Generating client certificate... " + datefudge -s "$TESTDATE" \ "${CERTTOOL}" ${CERTTOOL_PARAM} ${ADDITIONAL_PARAM} --generate-certificate --load-ca-privkey "${cakey}" --load-ca-certificate "${cacert}" \ --template ${srcdir}/testpkcs11-certs/client-tmpl --load-privkey "${token};object=gnutls-client;object-type=private" \ --load-pubkey "$pubkey" --outfile tmp-client.crt >>"${LOGFILE}" 2>&1 @@ -900,7 +905,9 @@ use_certificate_test () { echo -n "* Using PKCS #11 with gnutls-cli (${txt})... " # start server eval "${GETPORT}" - launch_pkcs11_server $$ "${ADDITIONAL_PARAM}" --echo --priority NORMAL --x509certfile="${certfile}" \ + launch_bare_server2 datefudge -s "$TESTDATE" \ + $VALGRIND $SERV $DEBUG -p "$PORT" \ + ${ADDITIONAL_PARAM} --debug 10 --echo --priority NORMAL --x509certfile="${certfile}" \ --x509keyfile="$keyfile" --x509cafile="${cafile}" \ --verify-client-cert --require-client-cert >>"${LOGFILE}" 2>&1 @@ -908,13 +915,16 @@ use_certificate_test () { wait_server ${PID} # connect to server using SC + datefudge -s "$TESTDATE" \ ${VALGRIND} "${CLI}" ${ADDITIONAL_PARAM} -p "${PORT}" localhost --priority NORMAL --x509cafile="${cafile}" >"${LOGFILE}" 2>&1 && \ fail ${PID} "Connection should have failed!" + datefudge -s "$TESTDATE" \ ${VALGRIND} "${CLI}" ${ADDITIONAL_PARAM} -p "${PORT}" localhost --priority NORMAL --x509certfile="${certfile}" \ --x509keyfile="$keyfile" --x509cafile="${cafile}" >"${LOGFILE}" 2>&1 || \ fail ${PID} "Connection (with files) should have succeeded!" + datefudge -s "$TESTDATE" \ ${VALGRIND} "${CLI}" ${ADDITIONAL_PARAM} -p "${PORT}" localhost --priority NORMAL --x509certfile="${token};object=gnutls-client;object-type=cert" \ --x509keyfile="${token};object=gnutls-client;object-type=private" \ --x509cafile="${cafile}" >"${LOGFILE}" 2>&1 || \ -- cgit v1.2.1 From 5e79a3533d782340b346d92339d23f241ec13530 Mon Sep 17 00:00:00 2001 From: Fiona Klute Date: Thu, 7 Jan 2021 20:29:54 +0100 Subject: Update year of copyright notices in doc/gnutls.texi Static analysis in CI checks if this is up to date, and fails if not. This fixes the failure. Signed-off-by: Fiona Klute --- doc/gnutls.texi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/gnutls.texi b/doc/gnutls.texi index b2291a6867..4de9de79cf 100644 --- a/doc/gnutls.texi +++ b/doc/gnutls.texi @@ -16,8 +16,8 @@ This manual is last updated @value{UPDATED} for version @value{VERSION} of GnuTLS. -Copyright @copyright{} 2001-2020 Free Software Foundation, Inc.\\ -Copyright @copyright{} 2001-2020 Nikos Mavrogiannopoulos +Copyright @copyright{} 2001-2021 Free Software Foundation, Inc.\\ +Copyright @copyright{} 2001-2021 Nikos Mavrogiannopoulos @quotation Permission is granted to copy, distribute and/or modify this document -- cgit v1.2.1 From 7f33b4013f91396af88805643578873110f389c1 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Sat, 3 Apr 2021 06:27:50 +0200 Subject: gnulib: parse-datetime: port build fixes from upstream gnulib Signed-off-by: Daiki Ueno --- src/gl/override/modules/parse-datetime.diff | 128 ++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 src/gl/override/modules/parse-datetime.diff diff --git a/src/gl/override/modules/parse-datetime.diff b/src/gl/override/modules/parse-datetime.diff new file mode 100644 index 0000000000..6f08605514 --- /dev/null +++ b/src/gl/override/modules/parse-datetime.diff @@ -0,0 +1,128 @@ +From b4953c24746af418aa005c4f64c80623af1c68ad Mon Sep 17 00:00:00 2001 +From: Bruno Haible +Date: Wed, 29 Jul 2020 18:18:18 +0200 +Subject: [PATCH] parse-datetime: Fix compilation error with bison 3.7. + +* modules/parse-datetime (Makefile.am): Create a generated header file +parse-datetime-gen.h in the source directory. Correct #include and +--- + ChangeLog | 7 +++++++ + modules/parse-datetime | 18 ++++++++++++------ + 2 files changed, 19 insertions(+), 6 deletions(-) + +diff --git a/modules/parse-datetime b/modules/parse-datetime +index b4375fda43..39aaf6c592 100644 +--- a/modules/parse-datetime ++++ b/modules/parse-datetime +@@ -45,15 +45,21 @@ Makefile.am: + parse-datetime.c: parse-datetime.y + $(AM_V_YACC)$(PARSE_DATETIME_BISON) -d $(YFLAGS) $(AM_YFLAGS) $(srcdir)/parse-datetime.y \ + && test ':' = '$(PARSE_DATETIME_BISON)' || { \ +- sed -e 's|".*/parse-datetime.y"|"parse-datetime.y"|' < parse-datetime.tab.c > parse-datetime.c-t \ ++ sed -e 's|".*/parse-datetime\.y"|"parse-datetime.y"|' \ ++ -e 's|"parse-datetime\.tab\.c"|"parse-datetime.c"|' \ ++ -e 's|"parse-datetime\.tab\.h"|"parse-datetime-gen.h"|' \ ++ < parse-datetime.tab.c > parse-datetime.c-tmp \ ++ && sed -e 's|"parse-datetime\.tab\.h"|"parse-datetime-gen.h"|' \ ++ < parse-datetime.tab.h > parse-datetime-gen.h-tmp \ + && rm -f parse-datetime.tab.c parse-datetime.tab.h \ +- && mv parse-datetime.c-t $(srcdir)/parse-datetime.c; \ ++ && mv parse-datetime.c-tmp $(srcdir)/parse-datetime.c \ ++ && mv parse-datetime-gen.h-tmp $(srcdir)/parse-datetime-gen.h; \ + } + lib_SOURCES += parse-datetime.y +-BUILT_SOURCES += parse-datetime.c +-MOSTLYCLEANFILES += parse-datetime.tab.c parse-datetime.tab.h parse-datetime.c-t +-MAINTAINERCLEANFILES += parse-datetime.c +-EXTRA_DIST += parse-datetime.c ++BUILT_SOURCES += parse-datetime.c parse-datetime-gen.h ++MOSTLYCLEANFILES += parse-datetime.tab.c parse-datetime.tab.h parse-datetime.c-tmp parse-datetime-gen.h-tmp ++MAINTAINERCLEANFILES += parse-datetime.c parse-datetime-gen.h ++EXTRA_DIST += parse-datetime.c parse-datetime-gen.h + + Include: + "parse-datetime.h" +-- +2.30.2 + +From c6e65c2e9fc89cc1a3b743d370f69d222fbdb6bb Mon Sep 17 00:00:00 2001 +From: Bruno Haible +Date: Sat, 1 Aug 2020 16:02:16 +0200 +Subject: [PATCH] parse-datetime: Fix wrong #line statements. + +* modules/parse-datetime (Makefile.am): Correct #line statements also in +parse-datetime-gen.h. +--- + ChangeLog | 6 ++++++ + modules/parse-datetime | 3 ++- + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/modules/parse-datetime b/modules/parse-datetime +index 39aaf6c592..fb49ebb353 100644 +--- a/modules/parse-datetime ++++ b/modules/parse-datetime +@@ -49,7 +49,8 @@ parse-datetime.c: parse-datetime.y + -e 's|"parse-datetime\.tab\.c"|"parse-datetime.c"|' \ + -e 's|"parse-datetime\.tab\.h"|"parse-datetime-gen.h"|' \ + < parse-datetime.tab.c > parse-datetime.c-tmp \ +- && sed -e 's|"parse-datetime\.tab\.h"|"parse-datetime-gen.h"|' \ ++ && sed -e 's|".*/parse-datetime\.y"|"parse-datetime.y"|' \ ++ -e 's|"parse-datetime\.tab\.h"|"parse-datetime-gen.h"|' \ + < parse-datetime.tab.h > parse-datetime-gen.h-tmp \ + && rm -f parse-datetime.tab.c parse-datetime.tab.h \ + && mv parse-datetime.c-tmp $(srcdir)/parse-datetime.c \ +-- +2.30.2 + +From 8002ca7b56acb46b42eeac4a343e112a8ee283cf Mon Sep 17 00:00:00 2001 +From: Bruno Haible +Date: Sun, 13 Sep 2020 22:03:16 +0200 +Subject: [PATCH] parse-datetime: Make the build rule work with parallel + 'make'. + +Reported by Daiki Ueno in +. + +* modules/parse-datetime (Makefile.am): Use a phony target and the +general idiom for rules that produce multiple files. +--- + ChangeLog | 8 ++++++++ + modules/parse-datetime | 12 +++++++++++- + 2 files changed, 19 insertions(+), 1 deletion(-) + + 2020-09-13 Ben Pfaff + + getpass: Check for nonnull prompt argument while avoiding warnings. +diff --git a/modules/parse-datetime b/modules/parse-datetime +index 14675194eb..a16b90f7d5 100644 +--- a/modules/parse-datetime ++++ b/modules/parse-datetime +@@ -43,7 +43,10 @@ Makefile.am: + # Additionally, here we assume GNU Bison and therefore don't need the ylwrap + # script. + # Therefore we override this rule. +-parse-datetime.c: parse-datetime.y ++# Since this is a rule that produces multiple files, we apply the idiom from ++# , so that ++# it works also in parallel 'make'. ++generate-parse-datetime: + $(AM_V_YACC)$(PARSE_DATETIME_BISON) -d $(YFLAGS) $(AM_YFLAGS) $(srcdir)/parse-datetime.y \ + && test ':' = '$(PARSE_DATETIME_BISON)' || { \ + sed -e 's|".*/parse-datetime\.y"|"parse-datetime.y"|' \ +@@ -57,6 +60,13 @@ parse-datetime.c: parse-datetime.y + && mv parse-datetime.c-tmp $(srcdir)/parse-datetime.c \ + && mv parse-datetime-gen.h-tmp $(srcdir)/parse-datetime-gen.h; \ + } ++.PHONY: generate-parse-datetime ++# The above rule will generate files with time stamp order ++# parse-datetime.y <= parse-datetime.c <= parse-datetime-gen.h. ++parse-datetime.c: parse-datetime.y ++ @{ test -f $(srcdir)/parse-datetime.c && test ! $(srcdir)/parse-datetime.c -ot $(srcdir)/parse-datetime.y; } || $(MAKE) generate-parse-datetime ++parse-datetime-gen.h: parse-datetime.c ++ @{ test -f $(srcdir)/parse-datetime-gen.h && test ! $(srcdir)/parse-datetime-gen.h -ot $(srcdir)/parse-datetime.c; } || $(MAKE) generate-parse-datetime + lib_SOURCES += parse-datetime.y + BUILT_SOURCES += parse-datetime.c parse-datetime-gen.h + MOSTLYCLEANFILES += parse-datetime.tab.c parse-datetime.tab.h parse-datetime.c-tmp parse-datetime-gen.h-tmp +-- +2.30.2 + -- cgit v1.2.1