Hello community, here is the log from the commit of package libshout for openSUSE:Factory checked in at 2020-10-12 13:46:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libshout (Old) and /work/SRC/openSUSE:Factory/.libshout.new.3486 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libshout" Mon Oct 12 13:46:22 2020 rev:25 rq:840487 version:2.4.4 Changes: -------- --- /work/SRC/openSUSE:Factory/libshout/libshout.changes 2019-09-11 10:21:40.123501268 +0200 +++ /work/SRC/openSUSE:Factory/.libshout.new.3486/libshout.changes 2020-10-12 13:46:25.877899789 +0200 @@ -1,0 +2,13 @@ +Fri Oct 9 19:39:02 UTC 2020 - Dirk Mueller <dmuel...@suse.com> + +- update to 2.4.4: + * Fixed handling of blocking/non-blocking mode + * Fixed ICY port increment + * Fixed reusing of handles + * Fixed error handling of Ogg sync layer + * Fixed passing of errors between connection and instance layer + (Without this fix, dead connections were not correctly + detected) + * Fixed and improved build scripts + +------------------------------------------------------------------- Old: ---- libshout-2.4.3.tar.gz New: ---- libshout-2.4.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libshout.spec ++++++ --- /var/tmp/diff_new_pack.VSwUzN/_old 2020-10-12 13:46:26.773900152 +0200 +++ /var/tmp/diff_new_pack.VSwUzN/_new 2020-10-12 13:46:26.777900155 +0200 @@ -1,7 +1,7 @@ # # spec file for package libshout # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,19 +17,19 @@ Name: libshout -Version: 2.4.3 +Version: 2.4.4 Release: 0 Summary: Library for communcating with Icecast servers License: LGPL-2.1-or-later Group: Productivity/Multimedia/Sound/Utilities URL: https://icecast.org/ +#Git-Clone: https://gitlab.xiph.org/xiph/icecast-libshout/ Source: https://downloads.xiph.org/releases/libshout/%name-%version.tar.gz Source1: baselibs.conf -BuildRequires: libtheora-devel BuildRequires: libtool -BuildRequires: libvorbis-devel -BuildRequires: pkgconfig -BuildRequires: speex-devel +BuildRequires: pkgconfig(speex) +BuildRequires: pkgconfig(theora) +BuildRequires: pkgconfig(vorbis) %description libshout is a library for communicating with and sending data to an @@ -56,12 +56,12 @@ applications that want to use libshout. %prep -%setup -q +%autosetup -p1 %build autoreconf --force --install %configure --disable-static -make %{?_smp_mflags} +%make_build %install %make_install @@ -78,7 +78,8 @@ %_libdir/*.so.3* %files devel -%doc README COPYING doc/*.xml examples/*.c +%doc README doc/*.xml examples/*.c +%license COPYING %_libdir/*.so %_includedir/shout %_datadir/aclocal/*.m4 ++++++ libshout-2.4.3.tar.gz -> libshout-2.4.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libshout-2.4.3/NEWS new/libshout-2.4.4/NEWS --- old/libshout-2.4.3/NEWS 2019-05-29 23:23:35.000000000 +0200 +++ new/libshout-2.4.4/NEWS 2020-10-02 00:34:44.000000000 +0200 @@ -1,3 +1,13 @@ +libshout 2.4.4 (20201001) + +* Fixed handling of blocking/non-blocking mode +* Fixed ICY port increment +* Fixed reusing of handles +* Fixed error handling of Ogg sync layer +* Fixed Passing of errors between connection and instance layer + Without this fix died connections were not correctly detected. +* Fixed and improved build scripts + libshout 2.4.3 (20190529) * Fixed building with OpenSSL 1.1.0. * Fixed static building with OpenSSL. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libshout-2.4.3/aclocal.m4 new/libshout-2.4.4/aclocal.m4 --- old/libshout-2.4.3/aclocal.m4 2019-05-28 21:31:17.000000000 +0200 +++ new/libshout-2.4.4/aclocal.m4 2020-10-02 00:16:32.000000000 +0200 @@ -982,35 +982,6 @@ fi ]) -# -*- Autoconf -*- -# Obsolete and "removed" macros, that must however still report explicit -# error messages when used, to smooth transition. -# -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -AC_DEFUN([AM_CONFIG_HEADER], -[AC_DIAGNOSE([obsolete], -['$0': this macro is obsolete. -You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl -AC_CONFIG_HEADERS($@)]) - -AC_DEFUN([AM_PROG_CC_STDC], -[AC_PROG_CC -am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc -AC_DIAGNOSE([obsolete], -['$0': this macro is obsolete. -You should simply use the 'AC][_PROG_CC' macro instead. -Also, your code should no longer depend upon 'am_cv_prog_cc_stdc', -but upon 'ac_cv_prog_cc_stdc'.])]) - -AC_DEFUN([AM_C_PROTOTYPES], - [AC_FATAL([automatic de-ANSI-fication support has been removed])]) -AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) - # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libshout-2.4.3/configure new/libshout-2.4.4/configure --- old/libshout-2.4.3/configure 2019-05-28 21:31:20.000000000 +0200 +++ new/libshout-2.4.4/configure 2020-10-02 00:16:32.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libshout 2.4.3. +# Generated by GNU Autoconf 2.69 for libshout 2.4.4. # # Report bugs to <icecast-...@xiph.org>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='libshout' PACKAGE_TARNAME='libshout' -PACKAGE_VERSION='2.4.3' -PACKAGE_STRING='libshout 2.4.3' +PACKAGE_VERSION='2.4.4' +PACKAGE_STRING='libshout 2.4.4' PACKAGE_BUGREPORT='icecast-...@xiph.org' PACKAGE_URL='' @@ -1389,7 +1389,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 libshout 2.4.3 to adapt to many kinds of systems. +\`configure' configures libshout 2.4.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1459,7 +1459,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libshout 2.4.3:";; + short | recursive ) echo "Configuration of libshout 2.4.4:";; esac cat <<\_ACEOF @@ -1597,7 +1597,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libshout configure 2.4.3 +libshout configure 2.4.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2260,7 +2260,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libshout $as_me 2.4.3, which was +It was created by libshout $as_me 2.4.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2610,8 +2610,11 @@ + + ac_config_headers="$ac_config_headers config.h" + # config.h guard @@ -2623,10 +2626,10 @@ $as_echo "#define LIBSHOUT_MINOR 4" >>confdefs.h -$as_echo "#define LIBSHOUT_MICRO 3" >>confdefs.h +$as_echo "#define LIBSHOUT_MICRO 4" >>confdefs.h -VERSION=2.4.3 +VERSION=2.4.4 am__api_version='1.14' @@ -3143,7 +3146,7 @@ # Define the identity of the package. PACKAGE='libshout' - VERSION='2.4.3' + VERSION='2.4.4' cat >>confdefs.h <<_ACEOF @@ -11901,8 +11904,8 @@ case "$ac_cv_host" in - *openbsd* | *solaris* | *irix*) - ;; + *openbsd* | *solaris* | *irix* | *darwin*) + ;; *) $as_echo "#define _XOPEN_SOURCE 600" >>confdefs.h @@ -15300,6 +15303,7 @@ ac_libobjs= ac_ltlibobjs= +U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' @@ -15763,7 +15767,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libshout $as_me 2.4.3, which was +This file was extended by libshout $as_me 2.4.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15829,7 +15833,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libshout config.status 2.4.3 +libshout config.status 2.4.4 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/libshout-2.4.3/configure.ac new/libshout-2.4.4/configure.ac --- old/libshout-2.4.3/configure.ac 2019-05-28 21:30:53.000000000 +0200 +++ new/libshout-2.4.4/configure.ac 2020-10-02 00:06:56.000000000 +0200 @@ -3,13 +3,16 @@ m4_define(libshout_major, 2) m4_define(libshout_minor, 4) -m4_define(libshout_micro, 3) +m4_define(libshout_micro, 4) m4_define(libshout_version, libshout_major.libshout_minor.libshout_micro) AC_INIT([libshout], libshout_version, [icecast-...@xiph.org]) AC_PREREQ([2.54]) + AC_CONFIG_SRCDIR([src/shout.c]) -AM_CONFIG_HEADER(config.h) +AC_CONFIG_MACRO_DIRS([m4]) +AC_CONFIG_HEADERS([config.h]) + # config.h guard AH_TOP([#ifndef __CONFIG_H__ #define __CONFIG_H__ 1]) @@ -32,14 +35,17 @@ ]) AC_PROG_CC -AM_PROG_LIBTOOL +LT_INIT dnl Set some options based on environment dnl openbsd headers break when _XOPEN_SOURCE is defined but without it seems dnl to be fine case "$ac_cv_host" in - *openbsd* | *solaris* | *irix*) + *openbsd* | *solaris* | *irix* | *darwin*) + dnl On darwin, do not define _XOPEN_SOURCE as it will narrow us down too + dnl much regarding function availability, so functions like strcasestr + dnl would be unavailable. ;; *) AC_DEFINE(_XOPEN_SOURCE, 600, [Define if you have POSIX and XPG specifications]) ;; @@ -91,7 +97,7 @@ dnl Allow examples not to be build AC_ARG_ENABLE([examples], - AC_HELP_STRING([--disable-examples],[Do not build example code])) + AS_HELP_STRING([--disable-examples],[Do not build example code])) AM_CONDITIONAL([HAVE_EXAMPLES],[test "${enable_examples}" != "no"]) dnl Module checks @@ -99,7 +105,7 @@ dnl Extra dependencies AC_ARG_ENABLE([thread], - AC_HELP_STRING([--disable-thread],[do not build with thread support even if it is available])) + AS_HELP_STRING([--disable-thread],[do not build with thread support even if it is available])) SHOUT_THREADSAFE="0" if test "$enable_thread" != "no" @@ -130,7 +136,7 @@ XIPH_CFLAGS="$XIPH_CFLAGS $VORBIS_CFLAGS" AC_ARG_ENABLE([theora], - AC_HELP_STRING([--disable-theora],[do not build with Theora support])) + AS_HELP_STRING([--disable-theora],[do not build with Theora support])) if test "x$enable_theora" != "xno"; then PKG_CHECK_MODULES(THEORA, theora, [ @@ -149,7 +155,7 @@ fi AC_ARG_ENABLE([speex], - AC_HELP_STRING([--disable-speex],[do not build with Speex support])) + AS_HELP_STRING([--disable-speex],[do not build with Speex support])) if test "x$enable_speex" != "xno"; then PKG_CHECK_MODULES(SPEEX, speex, [ @@ -170,7 +176,7 @@ dnl If pkgconfig is found, install a shout.pc file. AC_ARG_ENABLE([pkgconfig], - AC_HELP_STRING([--disable-pkgconfig],[disable pkgconfig data files (auto)]), + AS_HELP_STRING([--disable-pkgconfig],[disable pkgconfig data files (auto)]), [dopkgconfig="$enableval"], [dopkgconfig="maybe"]) if test "$dopkgconfig" = "maybe" then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libshout-2.4.3/include/shout/shout.h.in new/libshout-2.4.4/include/shout/shout.h.in --- old/libshout-2.4.3/include/shout/shout.h.in 2019-05-22 11:05:32.000000000 +0200 +++ new/libshout-2.4.4/include/shout/shout.h.in 2019-08-24 13:52:16.000000000 +0200 @@ -85,6 +85,11 @@ #define SHOUT_TLS_RFC2818 ( 11) /* Use TLS for transport layer like HTTPS [RFC2818] does. */ #define SHOUT_TLS_RFC2817 ( 12) /* Use TLS via HTTP Upgrade:-header [RFC2817]. */ +/* Possible values for blocking */ +#define SHOUT_BLOCKING_DEFAULT (255) /* Use the default blocking setting. */ +#define SHOUT_BLOCKING_FULL ( 0) /* Block in all I/O related functions */ +#define SHOUT_BLOCKING_NONE ( 1) /* Do not block in I/O related functions */ + #define SHOUT_AI_BITRATE "bitrate" #define SHOUT_AI_SAMPLERATE "samplerate" #define SHOUT_AI_CHANNELS "channels" @@ -244,7 +249,8 @@ unsigned int shout_get_protocol(shout_t *self); /* Instructs libshout to use nonblocking I/O. Must be called before - * shout_open (no switching back and forth midstream at the moment). */ + * shout_open (no switching back and forth midstream at the moment). + * nonblocking is one of SHOUT_BLOCKING_xxx. */ int shout_set_nonblocking(shout_t* self, unsigned int nonblocking); unsigned int shout_get_nonblocking(shout_t *self); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libshout-2.4.3/src/Makefile.am new/libshout-2.4.4/src/Makefile.am --- old/libshout-2.4.3/src/Makefile.am 2019-05-20 20:33:51.000000000 +0200 +++ new/libshout-2.4.4/src/Makefile.am 2020-09-30 01:46:00.000000000 +0200 @@ -31,7 +31,7 @@ CODECS=codec_vorbis.c codec_opus.c $(MAYBE_THEORA) $(MAYBE_SPEEX) libshout_la_SOURCES = shout.c util.c queue.c connection.c $(PROTOCOLS) $(FORMATS) $(CODECS) $(MAYBE_TLS) AM_CFLAGS = @XIPH_CFLAGS@ -AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/common +AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/common @XIPH_CPPFLAGS@ libshout_la_LIBADD = common/net/libicenet.la common/timing/libicetiming.la common/avl/libiceavl.la\ common/httpp/libicehttpp.la $(MAYBE_THREAD_LIB) $(THEORA_LIBS) $(VORBIS_LIBS) $(SPEEX_LIBS) @XIPH_LIBS@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libshout-2.4.3/src/Makefile.in new/libshout-2.4.4/src/Makefile.in --- old/libshout-2.4.3/src/Makefile.in 2019-05-28 21:31:19.000000000 +0200 +++ new/libshout-2.4.4/src/Makefile.in 2020-10-02 00:16:33.000000000 +0200 @@ -431,7 +431,7 @@ CODECS = codec_vorbis.c codec_opus.c $(MAYBE_THEORA) $(MAYBE_SPEEX) libshout_la_SOURCES = shout.c util.c queue.c connection.c $(PROTOCOLS) $(FORMATS) $(CODECS) $(MAYBE_TLS) AM_CFLAGS = @XIPH_CFLAGS@ -AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/common +AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/common @XIPH_CPPFLAGS@ libshout_la_LIBADD = common/net/libicenet.la common/timing/libicetiming.la common/avl/libiceavl.la\ common/httpp/libicehttpp.la $(MAYBE_THREAD_LIB) $(THEORA_LIBS) $(VORBIS_LIBS) $(SPEEX_LIBS) @XIPH_LIBS@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libshout-2.4.3/src/connection.c new/libshout-2.4.4/src/connection.c --- old/libshout-2.4.3/src/connection.c 2019-05-20 21:32:59.000000000 +0200 +++ new/libshout-2.4.4/src/connection.c 2020-08-24 18:59:36.000000000 +0200 @@ -118,7 +118,7 @@ .tv_usec = (timeout % 1000) * 1000 }; return tv; - } else if (con->nonblocking) { + } else if (con->nonblocking == SHOUT_BLOCKING_NONE) { return tv_nonblocking; } else { return tv_blocking; @@ -167,7 +167,7 @@ } break; case SHOUT_SOCKSTATE_CONNECTING: - if (con->nonblocking) { + if (con->nonblocking == SHOUT_BLOCKING_NONE) { ret = shout_connection_iter__wait_for_io(con, shout, 1, 1, 0); if (ret != SHOUT_RS_DONE) { return ret; @@ -460,7 +460,7 @@ break; \ case SHOUT_RS_TIMEOUT: \ case SHOUT_RS_NOTNOW: \ - if (con->nonblocking) \ + if (con->nonblocking == SHOUT_BLOCKING_NONE) \ return SHOUTERR_RETRY; \ retry = 1; \ break; \ @@ -518,7 +518,7 @@ } int shout_connection_set_nonblocking(shout_connection_t *con, unsigned int nonblocking) { - if (!con) + if (!con || (nonblocking != SHOUT_BLOCKING_DEFAULT && nonblocking != SHOUT_BLOCKING_FULL && nonblocking != SHOUT_BLOCKING_NONE)) return SHOUTERR_INSANE; if (con->socket != SOCK_ERROR) @@ -563,13 +563,14 @@ if (con->socket != SOCK_ERROR || con->current_socket_state != SHOUT_SOCKSTATE_UNCONNECTED) return SHOUTERR_BUSY; - shout_connection_set_nonblocking(con, shout_get_nonblocking(shout)); + if (con->nonblocking == SHOUT_BLOCKING_DEFAULT) + shout_connection_set_nonblocking(con, shout_get_nonblocking(shout)); port = shout->port; - if (shout_get_protocol(shout) == SHOUT_PROTOCOL_ICY) + if (con->impl == shout_icy_impl) port++; - if (con->nonblocking) { + if (con->nonblocking == SHOUT_BLOCKING_NONE) { con->socket = sock_connect_non_blocking(shout->host, port); } else { con->socket = sock_connect(shout->host, port); @@ -620,6 +621,9 @@ if (con->current_message_state != SHOUT_MSGSTATE_SENDING1) return -1; + if (con->error == SHOUTERR_SOCKET) + return -1; + ret = shout_queue_data(&(con->wqueue), buf, len); if (ret != SHOUTERR_SUCCESS) { shout_connection_set_error(con, ret); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libshout-2.4.3/src/format_ogg.c new/libshout-2.4.4/src/format_ogg.c --- old/libshout-2.4.3/src/format_ogg.c 2019-05-20 20:33:51.000000000 +0200 +++ new/libshout-2.4.4/src/format_ogg.c 2020-08-12 18:31:46.000000000 +0200 @@ -92,6 +92,8 @@ ogg_page page; buffer = ogg_sync_buffer(&ogg_data->oy, len); + if (!buffer) + return self->error = SHOUTERR_INSANE; memcpy(buffer, data, len); ogg_sync_wrote(&ogg_data->oy, len); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libshout-2.4.3/src/shout.c new/libshout-2.4.4/src/shout.c --- old/libshout-2.4.3/src/shout.c 2019-05-22 11:05:32.000000000 +0200 +++ new/libshout-2.4.4/src/shout.c 2020-08-12 18:31:43.000000000 +0200 @@ -198,8 +198,12 @@ if (!self->connection) return self->error = SHOUTERR_UNCONNECTED; - if (self->connection && self->connection->current_message_state == SHOUT_MSGSTATE_SENDING1 && self->close) + if (self->connection && self->connection->current_message_state == SHOUT_MSGSTATE_SENDING1 && self->close) { self->close(self); + self->format_data = NULL; + self->send = NULL; + self->close = NULL; + } shout_connection_unref(self->connection); self->connection = NULL; @@ -417,7 +421,7 @@ #ifdef HAVE_OPENSSL shout_connection_select_tlsmode(connection, self->tls_mode); #endif - shout_connection_set_nonblocking(connection, 0); + shout_connection_set_nonblocking(connection, SHOUT_BLOCKING_FULL); connection->target_message_state = SHOUT_MSGSTATE_PARSED_FINAL; @@ -989,7 +993,10 @@ int shout_set_nonblocking(shout_t *self, unsigned int nonblocking) { - if (!self || (nonblocking != 0 && nonblocking != 1)) + if (nonblocking == SHOUT_BLOCKING_DEFAULT) + nonblocking = SHOUT_BLOCKING_FULL; + + if (!self || (nonblocking != SHOUT_BLOCKING_FULL && nonblocking != SHOUT_BLOCKING_NONE)) return SHOUTERR_INSANE; if (self->connection)