Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libHX for openSUSE:Factory checked in at 2022-10-25 11:18:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libHX (Old) and /work/SRC/openSUSE:Factory/.libHX.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "libHX" Tue Oct 25 11:18:31 2022 rev:68 rq:1030598 version:4.7 Changes: -------- --- /work/SRC/openSUSE:Factory/libHX/libHX.changes 2022-07-06 15:41:33.542478286 +0200 +++ /work/SRC/openSUSE:Factory/.libHX.new.2275/libHX.changes 2022-10-25 11:18:36.845951355 +0200 @@ -1,0 +2,6 @@ +Sun Oct 23 12:12:50 UTC 2022 - Jan Engelhardt <jengelh@inai.de> + +- Update to release 4.7 + * string: new quoting modes HXQUOTE_BASE64URL & HXQUOTE_BASE64IMAP + +------------------------------------------------------------------- Old: ---- libHX-4.6.tar.asc libHX-4.6.tar.xz New: ---- libHX-4.7.tar.asc libHX-4.7.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libHX.spec ++++++ --- /var/tmp/diff_new_pack.LwiMuU/_old 2022-10-25 11:18:37.425952641 +0200 +++ /var/tmp/diff_new_pack.LwiMuU/_new 2022-10-25 11:18:37.429952649 +0200 @@ -18,7 +18,7 @@ Name: libHX %define lname libHX32 -Version: 4.6 +Version: 4.7 Release: 0 Summary: Collection of routines for C and C++ programming License: LGPL-2.1-or-later ++++++ libHX-4.6.tar.xz -> libHX-4.7.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libHX-4.6/Makefile.am new/libHX-4.7/Makefile.am --- old/libHX-4.6/Makefile.am 2022-06-27 16:03:09.000000000 +0200 +++ new/libHX-4.7/Makefile.am 2022-10-21 21:46:11.000000000 +0200 @@ -16,7 +16,7 @@ tarball: # do not use mkdir_p here. mkdir ${tmpdir} - pushd ${top_srcdir} && git archive --prefix=${PACKAGE_NAME}-${PACKAGE_VERSION}/ HEAD | tar -C ${tmpdir} -x && popd - pushd ${tmpdir}/${PACKAGE_NAME}-${PACKAGE_VERSION} && ./autogen.sh && popd + cd ${top_srcdir} && git archive --prefix=${PACKAGE_NAME}-${PACKAGE_VERSION}/ HEAD | tar -C ${tmpdir} -x + cd ${tmpdir}/${PACKAGE_NAME}-${PACKAGE_VERSION} && autoreconf -fi && rm -Rf autom4te.cache tar --use=${packer} -C ${tmpdir} -cf ${PACKAGE_NAME}-${PACKAGE_VERSION}${packext} --owner=root --group=root ${PACKAGE_NAME}-${PACKAGE_VERSION}/ rm -Rf ${tmpdir} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libHX-4.6/Makefile.in new/libHX-4.7/Makefile.in --- old/libHX-4.6/Makefile.in 2022-06-27 18:47:07.050604960 +0200 +++ new/libHX-4.7/Makefile.in 2022-10-21 21:46:20.455607099 +0200 @@ -904,8 +904,8 @@ tarball: # do not use mkdir_p here. mkdir ${tmpdir} - pushd ${top_srcdir} && git archive --prefix=${PACKAGE_NAME}-${PACKAGE_VERSION}/ HEAD | tar -C ${tmpdir} -x && popd - pushd ${tmpdir}/${PACKAGE_NAME}-${PACKAGE_VERSION} && ./autogen.sh && popd + cd ${top_srcdir} && git archive --prefix=${PACKAGE_NAME}-${PACKAGE_VERSION}/ HEAD | tar -C ${tmpdir} -x + cd ${tmpdir}/${PACKAGE_NAME}-${PACKAGE_VERSION} && autoreconf -fi && rm -Rf autom4te.cache tar --use=${packer} -C ${tmpdir} -cf ${PACKAGE_NAME}-${PACKAGE_VERSION}${packext} --owner=root --group=root ${PACKAGE_NAME}-${PACKAGE_VERSION}/ rm -Rf ${tmpdir} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libHX-4.6/autogen.sh new/libHX-4.7/autogen.sh --- old/libHX-4.6/autogen.sh 2022-06-27 16:03:09.000000000 +0200 +++ new/libHX-4.7/autogen.sh 1970-01-01 01:00:00.000000000 +0100 @@ -1,4 +0,0 @@ -#!/bin/bash - -autoreconf -fi; -rm -Rf autom4te*.cache; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libHX-4.6/configure new/libHX-4.7/configure --- old/libHX-4.6/configure 2022-06-27 18:47:06.586601524 +0200 +++ new/libHX-4.7/configure 2022-10-21 21:46:19.931610750 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for libHX 4.6. +# Generated by GNU Autoconf 2.71 for libHX 4.7. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -618,8 +618,8 @@ # Identity of this package. PACKAGE_NAME='libHX' PACKAGE_TARNAME='libhx' -PACKAGE_VERSION='4.6' -PACKAGE_STRING='libHX 4.6' +PACKAGE_VERSION='4.7' +PACKAGE_STRING='libHX 4.7' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1375,7 +1375,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 libHX 4.6 to adapt to many kinds of systems. +\`configure' configures libHX 4.7 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1446,7 +1446,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libHX 4.6:";; + short | recursive ) echo "Configuration of libHX 4.7:";; esac cat <<\_ACEOF @@ -1561,7 +1561,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libHX configure 4.6 +libHX configure 4.7 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2195,7 +2195,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libHX $as_me 4.6, which was +It was created by libHX $as_me 4.7, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3684,7 +3684,7 @@ # Define the identity of the package. PACKAGE='libhx' - VERSION='4.6' + VERSION='4.7' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -5926,10 +5926,6 @@ -enable_dlopen=yes - - - case `pwd` in *\ * | *\ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 @@ -9772,6 +9768,8 @@ + enable_dlopen=no + enable_win32_dll=no @@ -18761,7 +18759,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libHX $as_me 4.6, which was +This file was extended by libHX $as_me 4.7, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -18829,7 +18827,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -libHX config.status 4.6 +libHX config.status 4.7 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libHX-4.6/configure.ac new/libHX-4.7/configure.ac --- old/libHX-4.6/configure.ac 2022-06-27 16:03:09.000000000 +0200 +++ new/libHX-4.7/configure.ac 2022-10-21 21:46:11.000000000 +0200 @@ -1,4 +1,4 @@ -AC_INIT([libHX], [4.6]) +AC_INIT([libHX], [4.7]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) @@ -11,7 +11,6 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) AC_DISABLE_STATIC -AC_LIBTOOL_DLOPEN AM_PROG_LIBTOOL saved_CXXFLAGS="$CXXFLAGS" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libHX-4.6/doc/api.rst new/libHX-4.7/doc/api.rst --- old/libHX-4.6/doc/api.rst 2022-06-27 16:03:09.000000000 +0200 +++ new/libHX-4.7/doc/api.rst 2022-10-21 21:46:11.000000000 +0200 @@ -9,6 +9,8 @@ ====== ====== ====== ======================================== RMV MinVer FirstA Name ====== ====== ====== ======================================== +4.7 4.7 4.7 HXQUOTE_BASE64IMAP +4.7 4.7 4.7 HXQUOTE_BASE64URL 4.3 4.3 4.3 HX_unit_seconds 4.3 4.3 4.3 HX_strtoull_sec 4.2 4.2 4.2 HX_unit_size diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libHX-4.6/doc/changelog.rst new/libHX-4.7/doc/changelog.rst --- old/libHX-4.6/doc/changelog.rst 2022-06-27 16:03:09.000000000 +0200 +++ new/libHX-4.7/doc/changelog.rst 2022-10-21 21:46:11.000000000 +0200 @@ -1,3 +1,15 @@ +v4.7 (2022-10-21) +================= + +Enhancements: + +* string: new quoting modes HXQUOTE_BASE64URL & HXQUOTE_BASE64IMAP + +Fixes: + +* socket: make HX_socket_from_env functional on OpenBSD + + v4.6 (2022-06-27) ================= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libHX-4.6/doc/libHX_Documentation.rst new/libHX-4.7/doc/libHX_Documentation.rst --- old/libHX-4.6/doc/libHX_Documentation.rst 2022-06-27 16:03:09.000000000 +0200 +++ new/libHX-4.7/doc/libHX_Documentation.rst 2022-10-21 21:46:11.000000000 +0200 @@ -126,6 +126,7 @@ Miscellaneous ============= +* `Type-checking casts <typechecking_casts.rst>`_ * `Helper headers <helper_headers.rst>`_ for other software * `Macros <macros.rst>`_ * `Misc functions <misc_functions.rst>`_ that did not fit in any other category diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libHX-4.6/doc/string_ops.rst new/libHX-4.7/doc/string_ops.rst --- old/libHX-4.6/doc/string_ops.rst 2022-06-27 16:03:09.000000000 +0200 +++ new/libHX-4.7/doc/string_ops.rst 2022-10-21 21:46:11.000000000 +0200 @@ -175,6 +175,12 @@ ``HXQUOTE_BASE64`` Transforms the string to BASE64, as described in `RFC 4648`_. +``HXQUOTE_BASE64URL`` + Transforms the string to base64url, as described in `RFC 4648`_. + +``HXQUOTE_BASE64IMAP`` + Transforms the string to base64 for IMAP, as described in `RFC 3501`_. + ``HXQUOTE_URIENC`` Escapes the string so that it becomes a valid part for an URI. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libHX-4.6/doc/typecheck_casts.rst new/libHX-4.7/doc/typecheck_casts.rst --- old/libHX-4.6/doc/typecheck_casts.rst 2022-06-27 16:03:09.000000000 +0200 +++ new/libHX-4.7/doc/typecheck_casts.rst 2022-10-21 21:46:11.000000000 +0200 @@ -132,6 +132,21 @@ Conversion from ``const type��*`` to and from ``const void��*``. +Limitations +----------- + +Because the implementation of our ``static_cast`` involves a C99 compound +literals and those are not constant expressions, ``static_cast`` cannot be used +in such contexts. (Cf. `GCC issue 105510 +<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105510#c3>`_). + +.. code-block:: c + + static const int a = static_cast(int, 1U); + +Furthermore, because an implicit assignment is used in the implementation, it +can trigger `-Wsign-conversion` warnings. + ``const_cast`` ============== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libHX-4.6/dvconfigure new/libHX-4.7/dvconfigure --- old/libHX-4.6/dvconfigure 2022-06-27 16:03:09.000000000 +0200 +++ new/libHX-4.7/dvconfigure 1970-01-01 01:00:00.000000000 +0100 @@ -1,10 +0,0 @@ -#!/bin/bash - -topdir="${0%/*}"; -abstopdir=$(readlink -f "$topdir"); -if [ ! -e "${topdir}/configure" ]; then - pushd "$topdir"; - ./autogen.sh; - popd; -fi; -exec "$topdir/configure" CFLAGS="-O0 -ggdb3" CXXFLAGS="-O0 -ggdb3" "$@"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libHX-4.6/include/libHX/string.h new/libHX-4.7/include/libHX/string.h --- old/libHX-4.6/include/libHX/string.h 2022-06-27 16:03:09.000000000 +0200 +++ new/libHX-4.7/include/libHX/string.h 2022-10-21 21:46:11.000000000 +0200 @@ -28,6 +28,8 @@ HXQUOTE_URIENC, HXQUOTE_SQLSQUOTE, HXQUOTE_SQLBQUOTE, + HXQUOTE_BASE64URL, + HXQUOTE_BASE64IMAP, _HXQUOTE_MAX, }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libHX-4.6/qconf new/libHX-4.7/qconf --- old/libHX-4.6/qconf 1970-01-01 01:00:00.000000000 +0100 +++ new/libHX-4.7/qconf 2022-10-21 21:46:11.000000000 +0200 @@ -0,0 +1,12 @@ +#!/bin/sh +topdir="${0%/*}" +if [ "$topdir" = "$0" ]; then + topdir=. +fi +abstopdir=$(readlink -f "$topdir") +if [ ! -e "${topdir}/configure" ]; then + cd "$topdir" + autoreconf -fi + cd - +fi +exec "$topdir/configure" CFLAGS="-O0 -ggdb3" CXXFLAGS="-O0 -ggdb3" "$@" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libHX-4.6/src/socket.c new/libHX-4.7/src/socket.c --- old/libHX-4.6/src/socket.c 2022-06-27 16:03:09.000000000 +0200 +++ new/libHX-4.7/src/socket.c 2022-10-21 21:46:11.000000000 +0200 @@ -37,7 +37,13 @@ int value = 0; socklen_t optlen = sizeof(value); int ret = getsockopt(fd, SOL_SOCKET, SO_ACCEPTCONN, STUPIDWIN(&value), &optlen); - if (ret < 0 || value == 0) + if (ret < 0 && errno != ENOPROTOOPT) + /* + * E.g. OpenBSD's getsockopt does not recognize this - even + * though the flag with the same name exists and is known. + */ + return -1; + if (ret == 0 && value == 0) return -1; #ifdef _WIN32 WSAPROTOCOL_INFO protinfo; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libHX-4.6/src/string.c new/libHX-4.7/src/string.c --- old/libHX-4.6/src/string.c 2022-06-27 16:03:09.000000000 +0200 +++ new/libHX-4.7/src/string.c 2022-10-21 21:46:11.000000000 +0200 @@ -602,14 +602,16 @@ * Encode @src into BASE-64 according to RFC 4648 and write result to @dest, * which must be of appropriate size, plus one for a trailing NUL. */ -static char *HX_quote_base64(char *d, const char *s) +static char *HX_quote_base64(char *d, const char *s, char x1, char x2) { - static const char a[] = + char a[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxyz0123456789+/"; + "abcdefghijklmnopqrstuvwxyz0123456789??"; size_t len = strlen(s); char *ret = d; + a[62] = x1; + a[63] = x2; while (len > 0) { if (len >= 3) { len -= 3; @@ -758,6 +760,8 @@ case HXQUOTE_LDAPRDN: return HX_qsize_bsr(s, HX_quote_rules[type].chars, 2); case HXQUOTE_BASE64: + case HXQUOTE_BASE64URL: + case HXQUOTE_BASE64IMAP: return (strlen(s) + 2) / 3 * 4; case HXQUOTE_URIENC: return HX_qsize_bsa(s, HX_quote_rules[type].chars, 2); @@ -816,7 +820,11 @@ case HXQUOTE_LDAPRDN: return HX_quote_ldap(*free_me, src, rule->chars); case HXQUOTE_BASE64: - return HX_quote_base64(*free_me, src); + return HX_quote_base64(*free_me, src, '+', '/'); + case HXQUOTE_BASE64URL: + return HX_quote_base64(*free_me, src, '-', '_'); + case HXQUOTE_BASE64IMAP: + return HX_quote_base64(*free_me, src, '+', ','); case HXQUOTE_URIENC: return HX_quote_urlenc(*free_me, src); case HXQUOTE_SQLSQUOTE: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libHX-4.6/src/tc-strquote.c new/libHX-4.7/src/tc-strquote.c --- old/libHX-4.6/src/tc-strquote.c 2022-06-27 16:03:09.000000000 +0200 +++ new/libHX-4.7/src/tc-strquote.c 2022-10-21 21:46:11.000000000 +0200 @@ -26,6 +26,10 @@ static const char output4[] = "http%3A%2F%2Fuser%3Apass%40host.de%2F~path%2Ffile%28msvc%29%3Bstuff.php%3Fquery%5Bphpindex%5D%3Dvalue%26another%3Done%3Bstuff"; static const char input5[] = "echo hello `echo world`"; static const char output5[] = "echo hello ``echo world``"; +static const char input6[] = "\xfb\xef\xff"; +static const char output6[] = "++//"; +static const char input7[] = "\xfb\xef\xff"; +static const char output7[] = "--__"; static int test(const char *input, unsigned int mode, const char *expect) { @@ -65,6 +69,8 @@ tst(input3, HXQUOTE_BASE64, output3c); tst(input4, HXQUOTE_URIENC, output4); tst(input5, HXQUOTE_SQLBQUOTE, output5); + tst(input6, HXQUOTE_BASE64, output6); + tst(input7, HXQUOTE_BASE64URL, output7); return 0; #undef tst }