Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package capnproto for openSUSE:Factory checked in at 2021-09-26 21:48:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/capnproto (Old) and /work/SRC/openSUSE:Factory/.capnproto.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "capnproto" Sun Sep 26 21:48:46 2021 rev:5 rq:921501 version:0.9.1 Changes: -------- --- /work/SRC/openSUSE:Factory/capnproto/capnproto.changes 2021-08-16 10:18:02.534617706 +0200 +++ /work/SRC/openSUSE:Factory/.capnproto.new.1899/capnproto.changes 2021-09-26 21:49:35.742843129 +0200 @@ -1,0 +2,10 @@ +Sun Sep 26 11:50:17 UTC 2021 - Luigi Baldoni <aloi...@gmx.com> + +- Update to version 0.9.1 + * only import fiber related headers when fibers are enabled + * use more accurate names for tests + * Fix copy-pasto resulting in uninitialized use of kind + * Fix capnp/capnpc --version when built using CMake + * Fix feed.xml + +------------------------------------------------------------------- Old: ---- capnproto-c++-0.9.0.tar.gz New: ---- capnproto-c++-0.9.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ capnproto.spec ++++++ --- /var/tmp/diff_new_pack.ldgRpX/_old 2021-09-26 21:49:36.222843722 +0200 +++ /var/tmp/diff_new_pack.ldgRpX/_new 2021-09-26 21:49:36.226843727 +0200 @@ -1,7 +1,7 @@ # # spec file for package capnproto # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %define _libver 0_9 Name: capnproto -Version: 0.9.0 +Version: 0.9.1 Release: 0 Summary: A Data Serialization Format License: MIT ++++++ capnproto-c++-0.9.0.tar.gz -> capnproto-c++-0.9.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/CMakeLists.txt new/capnproto-c++-0.9.1/CMakeLists.txt --- old/capnproto-c++-0.9.0/CMakeLists.txt 2021-08-15 01:27:30.000000000 +0200 +++ new/capnproto-c++-0.9.1/CMakeLists.txt 2021-09-22 17:46:46.000000000 +0200 @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.4) project("Cap'n Proto" CXX) -set(VERSION 0.9.0) +set(VERSION 0.9.1) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/Makefile.am new/capnproto-c++-0.9.1/Makefile.am --- old/capnproto-c++-0.9.0/Makefile.am 2021-08-08 19:08:05.000000000 +0200 +++ new/capnproto-c++-0.9.1/Makefile.am 2021-09-19 00:26:15.000000000 +0200 @@ -421,10 +421,15 @@ # Also attempt to run ldconfig, because otherwise users get confused. If # it fails (e.g. because the platform doesn't have it, or because the # user doesn't have root privileges), don't worry about it. +# +# We need to specify the path for OpenBSD. install-exec-hook: ln -sf capnp $(DESTDIR)$(bindir)/capnpc - ldconfig < /dev/null > /dev/null 2>&1 || true - + if [ `uname` == 'OpenBSD' ]; then \ + (ldconfig /usr/local/lib /usr/lib /usr/X11R6/lib > /dev/null 2>&1 || true); \ + else \ + ldconfig < /dev/null > /dev/null 2>&1 || true; \ + fi uninstall-hook: rm -f $(DESTDIR)$(bindir)/capnpc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/Makefile.in new/capnproto-c++-0.9.1/Makefile.in --- old/capnproto-c++-0.9.0/Makefile.in 2021-08-15 01:27:36.000000000 +0200 +++ new/capnproto-c++-0.9.1/Makefile.in 2021-09-22 17:46:52.000000000 +0200 @@ -4390,10 +4390,15 @@ # Also attempt to run ldconfig, because otherwise users get confused. If # it fails (e.g. because the platform doesn't have it, or because the # user doesn't have root privileges), don't worry about it. +# +# We need to specify the path for OpenBSD. @LITE_MODE_FALSE@install-exec-hook: @LITE_MODE_FALSE@ ln -sf capnp $(DESTDIR)$(bindir)/capnpc -@LITE_MODE_FALSE@ ldconfig < /dev/null > /dev/null 2>&1 || true - +@LITE_MODE_FALSE@ if [ `uname` == 'OpenBSD' ]; then \ +@LITE_MODE_FALSE@ (ldconfig /usr/local/lib /usr/lib /usr/X11R6/lib > /dev/null 2>&1 || true); \ +@LITE_MODE_FALSE@ else \ +@LITE_MODE_FALSE@ ldconfig < /dev/null > /dev/null 2>&1 || true; \ +@LITE_MODE_FALSE@ fi @LITE_MODE_FALSE@uninstall-hook: @LITE_MODE_FALSE@ rm -f $(DESTDIR)$(bindir)/capnpc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/configure new/capnproto-c++-0.9.1/configure --- old/capnproto-c++-0.9.0/configure 2021-08-15 01:27:35.000000000 +0200 +++ new/capnproto-c++-0.9.1/configure 2021-09-22 17:46:51.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Capn Proto 0.9.0. +# Generated by GNU Autoconf 2.69 for Capn Proto 0.9.1. # # Report bugs to <capnpr...@googlegroups.com>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='Capn Proto' PACKAGE_TARNAME='capnproto-c++' -PACKAGE_VERSION='0.9.0' -PACKAGE_STRING='Capn Proto 0.9.0' +PACKAGE_VERSION='0.9.1' +PACKAGE_STRING='Capn Proto 0.9.1' PACKAGE_BUGREPORT='capnpr...@googlegroups.com' PACKAGE_URL='' @@ -1365,7 +1365,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Capn Proto 0.9.0 to adapt to many kinds of systems. +\`configure' configures Capn Proto 0.9.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1436,7 +1436,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Capn Proto 0.9.0:";; + short | recursive ) echo "Configuration of Capn Proto 0.9.1:";; esac cat <<\_ACEOF @@ -1566,7 +1566,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Capn Proto configure 0.9.0 +Capn Proto configure 0.9.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2281,7 +2281,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Capn Proto $as_me 0.9.0, which was +It was created by Capn Proto $as_me 0.9.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3154,7 +3154,7 @@ # Define the identity of the package. PACKAGE='capnproto-c++' - VERSION='0.9.0' + VERSION='0.9.1' cat >>confdefs.h <<_ACEOF @@ -18169,7 +18169,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Capn Proto $as_me 0.9.0, which was +This file was extended by Capn Proto $as_me 0.9.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -18235,7 +18235,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Capn Proto config.status 0.9.0 +Capn Proto config.status 0.9.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/configure.ac new/capnproto-c++-0.9.1/configure.ac --- old/capnproto-c++-0.9.0/configure.ac 2021-08-15 01:27:30.000000000 +0200 +++ new/capnproto-c++-0.9.1/configure.ac 2021-09-22 17:46:46.000000000 +0200 @@ -1,6 +1,6 @@ ## Process this file with autoconf to produce configure. -AC_INIT([Capn Proto],[0.9.0],[capnpr...@googlegroups.com],[capnproto-c++]) +AC_INIT([Capn Proto],[0.9.1],[capnpr...@googlegroups.com],[capnproto-c++]) AC_CONFIG_SRCDIR([src/capnp/layout.c++]) AC_CONFIG_AUX_DIR([build-aux]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/capnp/CMakeLists.txt new/capnproto-c++-0.9.1/src/capnp/CMakeLists.txt --- old/capnproto-c++-0.9.0/src/capnp/CMakeLists.txt 2021-08-08 19:08:05.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/capnp/CMakeLists.txt 2021-09-19 00:26:15.000000000 +0200 @@ -187,8 +187,9 @@ set_target_properties(capnp_tool PROPERTIES CAPNP_INCLUDE_DIRECTORY $<JOIN:$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>,$<INSTALL_INTERFACE:${CMAKE_INSTALL_BINDIR}/..>> ) - set_target_properties(capnp_tool PROPERTIES - COMPILE_DEFINITIONS CAPNP_INCLUDE_DIR=\"${CMAKE_INSTALL_FULL_INCLUDEDIR}\" + target_compile_definitions(capnp_tool PRIVATE + "CAPNP_INCLUDE_DIR=\"${CMAKE_INSTALL_FULL_INCLUDEDIR}\"" + "VERSION=\"${VERSION}\"" ) add_executable(capnpc_cpp diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/capnp/c++.capnp.h new/capnproto-c++-0.9.1/src/capnp/c++.capnp.h --- old/capnproto-c++-0.9.0/src/capnp/c++.capnp.h 2021-08-15 01:27:30.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/capnp/c++.capnp.h 2021-09-22 17:46:46.000000000 +0200 @@ -6,7 +6,7 @@ #include <capnp/generated-header-support.h> #include <kj/windows-sanity.h> -#if CAPNP_VERSION != 9000 +#if CAPNP_VERSION != 9001 #error "Version mismatch between generated code and library headers. You must use the same version of the Cap'n Proto compiler and library." #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/capnp/common.h new/capnproto-c++-0.9.1/src/capnp/common.h --- old/capnproto-c++-0.9.0/src/capnp/common.h 2021-08-15 01:27:30.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/capnp/common.h 2021-09-22 17:46:46.000000000 +0200 @@ -48,7 +48,7 @@ #define CAPNP_VERSION_MAJOR 0 #define CAPNP_VERSION_MINOR 9 -#define CAPNP_VERSION_MICRO 0 +#define CAPNP_VERSION_MICRO 1 #define CAPNP_VERSION \ (CAPNP_VERSION_MAJOR * 1000000 + CAPNP_VERSION_MINOR * 1000 + CAPNP_VERSION_MICRO) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/capnp/compat/json.capnp.h new/capnproto-c++-0.9.1/src/capnp/compat/json.capnp.h --- old/capnproto-c++-0.9.0/src/capnp/compat/json.capnp.h 2021-08-15 01:27:30.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/capnp/compat/json.capnp.h 2021-09-22 17:46:46.000000000 +0200 @@ -9,7 +9,7 @@ #include <capnp/capability.h> #endif // !CAPNP_LITE -#if CAPNP_VERSION != 9000 +#if CAPNP_VERSION != 9001 #error "Version mismatch between generated code and library headers. You must use the same version of the Cap'n Proto compiler and library." #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/capnp/compiler/capnp-test.sh new/capnproto-c++-0.9.1/src/capnp/compiler/capnp-test.sh --- old/capnproto-c++-0.9.0/src/capnp/compiler/capnp-test.sh 2021-03-20 19:47:34.000000000 +0100 +++ new/capnproto-c++-0.9.1/src/capnp/compiler/capnp-test.sh 2021-09-19 00:26:15.000000000 +0200 @@ -76,8 +76,8 @@ $CAPNP convert json:binary $SCHEMA TestAllTypes < $TESTDATA/pretty.json | cmp $TESTDATA/binary - || fail json to binary $CAPNP convert json:binary $SCHEMA TestAllTypes < $TESTDATA/short.json | cmp $TESTDATA/binary - || fail short json to binary -$CAPNP convert json:binary $JSON_SCHEMA TestJsonAnnotations -I"$SRCDIR" < $TESTDATA/annotated.json | cmp $TESTDATA/annotated-json.binary || fail annotated json to binary -$CAPNP convert binary:json $JSON_SCHEMA TestJsonAnnotations -I"$SRCDIR" < $TESTDATA/annotated-json.binary | cmp $TESTDATA/annotated.json || fail annotated json to binary +$CAPNP convert json:binary $JSON_SCHEMA TestJsonAnnotations -I"$SRCDIR" < $TESTDATA/annotated.json | cmp $TESTDATA/annotated-json.binary - || fail annotated json to binary +$CAPNP convert binary:json $JSON_SCHEMA TestJsonAnnotations -I"$SRCDIR" < $TESTDATA/annotated-json.binary | cmp $TESTDATA/annotated.json - || fail annotated binary to json [ "$(echo '(foo = (text = "abc"))' | $CAPNP convert text:text "$SRCDIR/capnp/test.capnp" BrandedAlias)" = '(foo = (text = "abc"), uv = void)' ] || fail branded alias [ "$(echo '(foo = (text = "abc"))' | $CAPNP convert text:text "$SRCDIR/capnp/test.capnp" BrandedAlias.Inner)" = '(foo = (text = "abc"))' ] || fail branded alias diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/capnp/compiler/grammar.capnp.h new/capnproto-c++-0.9.1/src/capnp/compiler/grammar.capnp.h --- old/capnproto-c++-0.9.0/src/capnp/compiler/grammar.capnp.h 2021-08-15 01:27:30.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/capnp/compiler/grammar.capnp.h 2021-09-22 17:46:46.000000000 +0200 @@ -6,7 +6,7 @@ #include <capnp/generated-header-support.h> #include <kj/windows-sanity.h> -#if CAPNP_VERSION != 9000 +#if CAPNP_VERSION != 9001 #error "Version mismatch between generated code and library headers. You must use the same version of the Cap'n Proto compiler and library." #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/capnp/compiler/lexer.capnp.h new/capnproto-c++-0.9.1/src/capnp/compiler/lexer.capnp.h --- old/capnproto-c++-0.9.0/src/capnp/compiler/lexer.capnp.h 2021-08-15 01:27:30.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/capnp/compiler/lexer.capnp.h 2021-09-22 17:46:46.000000000 +0200 @@ -6,7 +6,7 @@ #include <capnp/generated-header-support.h> #include <kj/windows-sanity.h> -#if CAPNP_VERSION != 9000 +#if CAPNP_VERSION != 9001 #error "Version mismatch between generated code and library headers. You must use the same version of the Cap'n Proto compiler and library." #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/capnp/compiler/node-translator.c++ new/capnproto-c++-0.9.1/src/capnp/compiler/node-translator.c++ --- old/capnproto-c++-0.9.0/src/capnp/compiler/node-translator.c++ 2021-08-08 19:08:05.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/capnp/compiler/node-translator.c++ 2021-09-19 00:26:15.000000000 +0200 @@ -2395,7 +2395,7 @@ } } } - } else if (*kind != Declaration::ANNOTATION) { + } else { errorReporter.addErrorOn(name, kj::str( "'", expressionString(name), "' is not an annotation.")); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/capnp/persistent.capnp.h new/capnproto-c++-0.9.1/src/capnp/persistent.capnp.h --- old/capnproto-c++-0.9.0/src/capnp/persistent.capnp.h 2021-08-15 01:27:30.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/capnp/persistent.capnp.h 2021-09-22 17:46:46.000000000 +0200 @@ -9,7 +9,7 @@ #include <capnp/capability.h> #endif // !CAPNP_LITE -#if CAPNP_VERSION != 9000 +#if CAPNP_VERSION != 9001 #error "Version mismatch between generated code and library headers. You must use the same version of the Cap'n Proto compiler and library." #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/capnp/rpc-twoparty.capnp.h new/capnproto-c++-0.9.1/src/capnp/rpc-twoparty.capnp.h --- old/capnproto-c++-0.9.0/src/capnp/rpc-twoparty.capnp.h 2021-08-15 01:27:30.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/capnp/rpc-twoparty.capnp.h 2021-09-22 17:46:46.000000000 +0200 @@ -6,7 +6,7 @@ #include <capnp/generated-header-support.h> #include <kj/windows-sanity.h> -#if CAPNP_VERSION != 9000 +#if CAPNP_VERSION != 9001 #error "Version mismatch between generated code and library headers. You must use the same version of the Cap'n Proto compiler and library." #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/capnp/rpc.capnp.h new/capnproto-c++-0.9.1/src/capnp/rpc.capnp.h --- old/capnproto-c++-0.9.0/src/capnp/rpc.capnp.h 2021-08-15 01:27:30.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/capnp/rpc.capnp.h 2021-09-22 17:46:46.000000000 +0200 @@ -6,7 +6,7 @@ #include <capnp/generated-header-support.h> #include <kj/windows-sanity.h> -#if CAPNP_VERSION != 9000 +#if CAPNP_VERSION != 9001 #error "Version mismatch between generated code and library headers. You must use the same version of the Cap'n Proto compiler and library." #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/capnp/schema.capnp.h new/capnproto-c++-0.9.1/src/capnp/schema.capnp.h --- old/capnproto-c++-0.9.0/src/capnp/schema.capnp.h 2021-08-15 01:27:30.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/capnp/schema.capnp.h 2021-09-22 17:46:46.000000000 +0200 @@ -6,7 +6,7 @@ #include <capnp/generated-header-support.h> #include <kj/windows-sanity.h> -#if CAPNP_VERSION != 9000 +#if CAPNP_VERSION != 9001 #error "Version mismatch between generated code and library headers. You must use the same version of the Cap'n Proto compiler and library." #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/capnp/stream.capnp.h new/capnproto-c++-0.9.1/src/capnp/stream.capnp.h --- old/capnproto-c++-0.9.0/src/capnp/stream.capnp.h 2021-08-15 01:27:30.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/capnp/stream.capnp.h 2021-09-22 17:46:46.000000000 +0200 @@ -6,7 +6,7 @@ #include <capnp/generated-header-support.h> #include <kj/windows-sanity.h> -#if CAPNP_VERSION != 9000 +#if CAPNP_VERSION != 9001 #error "Version mismatch between generated code and library headers. You must use the same version of the Cap'n Proto compiler and library." #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/capnp/testdata/errors.capnp.nobuild new/capnproto-c++-0.9.1/src/capnp/testdata/errors.capnp.nobuild --- old/capnproto-c++-0.9.0/src/capnp/testdata/errors.capnp.nobuild 2021-03-20 19:47:34.000000000 +0100 +++ new/capnproto-c++-0.9.1/src/capnp/testdata/errors.capnp.nobuild 2021-09-19 00:26:15.000000000 +0200 @@ -142,6 +142,7 @@ const recursive: UInt32 = .recursive; struct Generic(T, U) { + foo @0 :UInt32 $T; } struct UseGeneric { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/capnp/testdata/errors.txt new/capnproto-c++-0.9.1/src/capnp/testdata/errors.txt --- old/capnproto-c++-0.9.0/src/capnp/testdata/errors.txt 2021-03-20 19:47:34.000000000 +0100 +++ new/capnproto-c++-0.9.1/src/capnp/testdata/errors.txt 2021-09-19 00:26:15.000000000 +0200 @@ -51,13 +51,14 @@ file:139:15-16: error: Duplicate ordinal number. file:138:15-16: error: Ordinal @2 originally used here. file:142:7-16: error: Declaration recursively depends on itself. -file:148:14-27: error: Not enough generic parameters. -file:149:15-47: error: Too many generic parameters. -file:150:18-49: error: Double-application of generic parameters. -file:151:38-43: error: Sorry, only pointer types can be used as generic parameters. -file:154:30-44: error: Embeds can only be used when Text, Data, or a struct is expected. -file:155:37-51: error: Couldn't read file for embed: no-such-file -file:161:23-27: error: Only pointer parameters can declare their default as 'null'. -file:162:10-16: error: 'stream' can only appear after '->', not before. -file:162:10-16: error: A method declaration uses streaming, but '/capnp/stream.capnp' is not found in the import path. This is a standard file that should always be installed with the Cap'n Proto compiler. -file:157:20-45: error: Import failed: nosuchfile-unused.capnp +file:145:19-20: error: 'T' is not an annotation. +file:149:14-27: error: Not enough generic parameters. +file:150:15-47: error: Too many generic parameters. +file:151:18-49: error: Double-application of generic parameters. +file:152:38-43: error: Sorry, only pointer types can be used as generic parameters. +file:155:30-44: error: Embeds can only be used when Text, Data, or a struct is expected. +file:156:37-51: error: Couldn't read file for embed: no-such-file +file:162:23-27: error: Only pointer parameters can declare their default as 'null'. +file:163:10-16: error: 'stream' can only appear after '->', not before. +file:163:10-16: error: A method declaration uses streaming, but '/capnp/stream.capnp' is not found in the import path. This is a standard file that should always be installed with the Cap'n Proto compiler. +file:158:20-45: error: Import failed: nosuchfile-unused.capnp diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/kj/async-inl.h new/capnproto-c++-0.9.1/src/kj/async-inl.h --- old/capnproto-c++-0.9.0/src/kj/async-inl.h 2021-08-08 19:08:05.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/kj/async-inl.h 2021-09-19 00:26:15.000000000 +0200 @@ -368,9 +368,15 @@ #if __GNUC__ >= 8 && !__clang__ // GCC 8's class-memaccess warning rightly does not like the memcpy()'s below, but there's no -// "legal" way for us to extract the contetn of a PTMF so too bad. +// "legal" way for us to extract the content of a PTMF so too bad. #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wclass-memaccess" +#if __GNUC__ >= 11 +// GCC 11's array-bounds is similarly upset with us for digging into "private" implementation +// details. But the format is well-defined by the ABI which cannot change so please just let us +// do it kthx. +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif #endif template <typename T, typename ReturnType, typename... ParamTypes> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/kj/async-io-test.c++ new/capnproto-c++-0.9.1/src/kj/async-io-test.c++ --- old/capnproto-c++-0.9.0/src/kj/async-io-test.c++ 2021-08-08 19:19:05.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/kj/async-io-test.c++ 2021-09-19 00:26:15.000000000 +0200 @@ -299,11 +299,11 @@ } #endif -// We only support ancillary messages on Unix. -// MacOS only supports SO_TIMESTAMP on datagram sockets, so this test won't work. -// Android fails this test for unknown reasons and I don't care because it's an extremely obscure -// feature anyway. -#if !_WIN32 && !__CYGWIN__ && !__APPLE__ && !__ANDROID__ +// This test uses SO_TIMESTAMP on a SOCK_STREAM, which is only supported by Linux. Ideally we'd +// rewrite the test to use some other message type that is widely supported on streams. But for +// now we just limit the test to Linux. Also, it doesn't work on Android for some reason, and it +// isn't worth investigating, so we skip it there. +#if __linux__ && !__ANDROID__ TEST(AsyncIo, AncillaryMessageHandler) { auto ioContext = setupAsyncIo(); auto& network = ioContext.provider->getNetwork(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/kj/async-io-unix.c++ new/capnproto-c++-0.9.1/src/kj/async-io-unix.c++ --- old/capnproto-c++-0.9.0/src/kj/async-io-unix.c++ 2021-08-08 19:08:05.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/kj/async-io-unix.c++ 2021-09-19 00:26:15.000000000 +0200 @@ -55,6 +55,11 @@ #include <sys/ucred.h> #endif +#if !defined(SOL_LOCAL) && (__FreeBSD__ || __DragonflyBSD__) +// On DragonFly or FreeBSD < 12.2 you're supposed to use 0 for SOL_LOCAL. +#define SOL_LOCAL 0 +#endif + namespace kj { namespace { @@ -1141,6 +1146,9 @@ ownFd.get(), IPPROTO_TCP, TCP_NODELAY, (char*)&one, sizeof(one))) { case EOPNOTSUPP: case ENOPROTOOPT: // (returned for AF_UNIX in cygwin) +#if __FreeBSD__ + case EINVAL: // (returned for AF_UNIX in FreeBSD) +#endif break; default: KJ_FAIL_SYSCALL("setsocketopt(IPPROTO_TCP, TCP_NODELAY)", error); @@ -1471,7 +1479,9 @@ // seen vague references on the internet saying that a PID of 0 and a UID of uid_t(-1) are used // as invalid values. -#if defined(SO_PEERCRED) +// OpenBSD defines SO_PEERCRED but uses a different interface for it +// hence we're falling back to LOCAL_PEERCRED +#if defined(SO_PEERCRED) && !__OpenBSD__ struct ucred creds; uint length = sizeof(creds); stream.getsockopt(SOL_SOCKET, SO_PEERCRED, &creds, &length); @@ -1483,7 +1493,7 @@ } #elif defined(LOCAL_PEERCRED) - // MacOS / FreeBSD + // MacOS / FreeBSD / OpenBSD struct xucred creds; uint length = sizeof(creds); stream.getsockopt(SOL_LOCAL, LOCAL_PEERCRED, &creds, &length); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/kj/async-test.c++ new/capnproto-c++-0.9.1/src/kj/async-test.c++ --- old/capnproto-c++-0.9.0/src/kj/async-test.c++ 2021-08-08 19:08:05.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/kj/async-test.c++ 2021-09-19 00:26:15.000000000 +0200 @@ -25,16 +25,7 @@ #include "mutex.h" #include "thread.h" -// TODO(later): Refactor this more cleanly so that the KJ library itself defines this. -#if !__BIONIC__ && !KJ_NO_EXCEPTIONS -#define KJ_FIBERS_AVAILABLE 1 -#else -#define KJ_FIBERS_AVAILABLE 0 -#endif - -#if !KJ_FIBERS_AVAILABLE -// For bionic, OpenBSD, and no-exception builds, enables the regression test for -// kj::TaskSet::~TaskSet potentially causing a stack overflow. +#if !KJ_USE_FIBERS #include <pthread.h> #endif @@ -759,7 +750,7 @@ } }; -#if KJ_FIBERS_AVAILABLE +#if KJ_USE_FIBERS EventLoop loop; WaitScope waitScope(loop); @@ -998,7 +989,7 @@ KJ_EXPECT(!joined.poll(waitScope)); } -#if KJ_FIBERS_AVAILABLE && !KJ_NO_EXCEPTIONS +#if KJ_USE_FIBERS KJ_TEST("start a fiber") { EventLoop loop; WaitScope waitScope(loop); @@ -1439,4 +1430,4 @@ } } // namespace -} // namespace kj \ No newline at end of file +} // namespace kj diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/kj/async.c++ new/capnproto-c++-0.9.1/src/kj/async.c++ --- old/capnproto-c++-0.9.0/src/kj/async.c++ 2021-08-08 19:19:05.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/kj/async.c++ 2021-09-19 00:26:15.000000000 +0200 @@ -53,8 +53,12 @@ #include <windows.h> // for Sleep(0) and fibers #include "windows-sanity.h" #else + +#if KJ_USE_FIBERS #include <ucontext.h> #include <setjmp.h> // for fibers +#endif + #include <sys/mman.h> // mmap(), for allocating new stacks #include <unistd.h> // sysconf() #include <errno.h> @@ -449,12 +453,14 @@ struct StartRoutine; +#if KJ_USE_FIBERS #if _WIN32 || __CYGWIN__ void* osFiber; -#elif !__BIONIC__ +#else struct Impl; Impl* impl; #endif +#endif [[noreturn]] void run(); @@ -1311,7 +1317,8 @@ namespace _ { // private -#if !(_WIN32 || __CYGWIN__ || __BIONIC__) +#if KJ_USE_FIBERS +#if !(_WIN32 || __CYGWIN__) struct FiberStack::Impl { // This struct serves two purposes: // - It contains OS-specific state that we don't want to declare in the header. @@ -1383,6 +1390,7 @@ } }; #endif +#endif struct FiberStack::StartRoutine { #if _WIN32 || __CYGWIN__ @@ -1436,14 +1444,13 @@ // Force stackSize to a reasonable minimum. : stackSize(kj::max(stackSizeParam, 65536)) { -#if KJ_NO_EXCEPTIONS - KJ_UNIMPLEMENTED("Fibers are not implemented because exceptions are disabled"); -#elif _WIN32 || __CYGWIN__ +#if KJ_USE_FIBERS +#if _WIN32 || __CYGWIN__ // We can create fibers before we convert the main thread into a fiber in FiberBase KJ_WIN32(osFiber = CreateFiber(stackSize, &StartRoutine::run, this)); -#elif !__BIONIC__ +#else // Note: Nothing below here can throw. If that changes then we need to call Impl::free(impl) // on exceptions... ucontext_t context; @@ -1460,6 +1467,10 @@ if (_setjmp(impl->originalJmpBuf) == 0) { setcontext(&context); } +#endif +#else +#if KJ_NO_EXCEPTIONS + KJ_UNIMPLEMENTED("Fibers are not implemented because exceptions are disabled"); #else KJ_UNIMPLEMENTED( "Fibers are not implemented on this platform because its C library lacks setcontext() " @@ -1467,14 +1478,17 @@ "We can likely make it happen using assembly, but didn't want to try unless it was " "actually needed."); #endif +#endif } FiberStack::~FiberStack() noexcept(false) { +#if KJ_USE_FIBERS #if _WIN32 || __CYGWIN__ DeleteFiber(osFiber); -#elif !__BIONIC__ +#else Impl::free(impl, stackSize); #endif +#endif } void FiberStack::initialize(FiberBase& fiber) { @@ -1545,24 +1559,28 @@ void FiberStack::switchToFiber() { // Switch from the main stack to the fiber. Returns once the fiber either calls switchToMain() // or returns from its main function. +#if KJ_USE_FIBERS #if _WIN32 || __CYGWIN__ SwitchToFiber(osFiber); -#elif !__BIONIC__ +#else if (_setjmp(impl->originalJmpBuf) == 0) { _longjmp(impl->fiberJmpBuf, 1); } #endif +#endif } void FiberStack::switchToMain() { // Switch from the fiber to the main stack. Returns the next time the main stack calls // switchToFiber(). +#if KJ_USE_FIBERS #if _WIN32 || __CYGWIN__ SwitchToFiber(getMainWin32Fiber()); -#elif !__BIONIC__ +#else if (_setjmp(impl->fiberJmpBuf) == 0) { _longjmp(impl->originalJmpBuf, 1); } #endif +#endif } void FiberBase::run() { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/kj/async.h new/capnproto-c++-0.9.1/src/kj/async.h --- old/capnproto-c++-0.9.0/src/kj/async.h 2021-08-08 19:08:05.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/kj/async.h 2021-09-19 00:26:15.000000000 +0200 @@ -27,6 +27,19 @@ KJ_BEGIN_HEADER +#ifndef KJ_USE_FIBERS + #if __BIONIC__ || __FreeBSD__ || __OpenBSD__ || KJ_NO_EXCEPTIONS + // These platforms don't support fibers. + #define KJ_USE_FIBERS 0 + #else + #define KJ_USE_FIBERS 1 + #endif +#else + #if KJ_NO_EXCEPTIONS && KJ_USE_FIBERS + #error "Fibers cannot be enabled when exceptions are disabled." + #endif +#endif + namespace kj { class EventLoop; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/kj/exception.c++ new/capnproto-c++-0.9.1/src/kj/exception.c++ --- old/capnproto-c++-0.9.0/src/kj/exception.c++ 2021-08-08 19:19:05.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/kj/exception.c++ 2021-09-19 00:26:15.000000000 +0200 @@ -1009,6 +1009,10 @@ return next.getThreadInitializer(); } +namespace _ { // private + uint uncaughtExceptionCount(); // defined later in this file +} + class ExceptionCallback::RootExceptionCallback: public ExceptionCallback { public: RootExceptionCallback(): ExceptionCallback(*this) {} @@ -1017,7 +1021,7 @@ #if KJ_NO_EXCEPTIONS logException(LogSeverity::ERROR, mv(exception)); #else - if (std::uncaught_exception()) { + if (_::uncaughtExceptionCount() > 0) { // Bad time to throw an exception. Just log instead. // // TODO(someday): We should really compare uncaughtExceptionCount() against the count at diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/kj/filesystem-disk-unix.c++ new/capnproto-c++-0.9.1/src/kj/filesystem-disk-unix.c++ --- old/capnproto-c++-0.9.0/src/kj/filesystem-disk-unix.c++ 2021-08-08 19:08:05.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/kj/filesystem-disk-unix.c++ 2021-09-19 00:26:15.000000000 +0200 @@ -1176,8 +1176,10 @@ if (S_ISDIR(stats.st_mode)) { return mkdirat(fd, candidatePath.cStr(), 0700); } else { -#if __APPLE__ - // No mknodat() on OSX, gotta open() a file, ugh. +#if __APPLE__ || __FreeBSD__ + // - No mknodat() on OSX, gotta open() a file, ugh. + // - On a modern FreeBSD, mknodat() is reserved strictly for device nodes, + // you cannot create a regular file using it (EINVAL). int newFd = openat(fd, candidatePath.cStr(), O_RDWR | O_CREAT | O_EXCL | MAYBE_O_CLOEXEC, 0700); if (newFd >= 0) close(newFd); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/capnproto-c++-0.9.0/src/kj/source-location.h new/capnproto-c++-0.9.1/src/kj/source-location.h --- old/capnproto-c++-0.9.0/src/kj/source-location.h 2021-08-08 19:08:05.000000000 +0200 +++ new/capnproto-c++-0.9.1/src/kj/source-location.h 2021-09-19 00:26:15.000000000 +0200 @@ -23,20 +23,33 @@ #include "string.h" -#if __clang__ && __clang_major__ >= 9 -#define KJ_CALLER_COLUMN() __builtin_COLUMN() // GCC does not implement __builtin_COLUMN() as that's non-standard but MSVC & clang do. // MSVC does as of version https://github.com/microsoft/STL/issues/54) but there's currently not any // pressing need for this for MSVC & writing the write compiler version check is annoying. +// Checking for clang version is problematic due to the way that XCode lies about __clang_major__. +// Instead we use __has_builtin as the feature check to check clang. +// Context: https://github.com/capnproto/capnproto/issues/1305 +#ifdef __has_builtin +#if __has_builtin(__builtin_COLUMN) +#define KJ_CALLER_COLUMN() __builtin_COLUMN() +#else +#define KJ_CALLER_COLUMN() 0 +#endif #else #define KJ_CALLER_COLUMN() 0 #endif #if __cplusplus > 201703L #define KJ_COMPILER_SUPPORTS_SOURCE_LOCATION 1 -#elif __clang__ && __clang_major__ >= 9 +#elif defined(__has_builtin) // Clang 9 added these builtins: https://releases.llvm.org/9.0.0/tools/clang/docs/LanguageExtensions.html -#define KJ_COMPILER_SUPPORTS_SOURCE_LOCATION 1 +// Use __has_builtin as the way to detect this because __clang_major__ is unreliable (see above +// about issue with Xcode-provided clang). +#define KJ_COMPILER_SUPPORTS_SOURCE_LOCATION ( \ + __has_builtin(__builtin_FILE) && \ + __has_builtin(__builtin_LINE) && \ + __has_builtin(__builtin_FUNCTION) \ + ) #elif __GNUC__ >= 5 // GCC 5 supports the required builtins: https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Other-Builtins.html #define KJ_COMPILER_SUPPORTS_SOURCE_LOCATION 1