Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package mpd for openSUSE:Factory checked in 
at 2022-10-17 14:58:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mpd (Old)
 and      /work/SRC/openSUSE:Factory/.mpd.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mpd"

Mon Oct 17 14:58:10 2022 rev:44 rq:1011997 version:0.23.10

Changes:
--------
--- /work/SRC/openSUSE:Factory/mpd/mpd.changes  2022-08-24 15:11:54.424547589 
+0200
+++ /work/SRC/openSUSE:Factory/.mpd.new.2275/mpd.changes        2022-10-17 
14:58:11.094148634 +0200
@@ -1,0 +2,10 @@
+Mon Oct 17 07:12:07 UTC 2022 - ???????? ???????????? <[email protected]>
+
+- Updated to 0.23.10
+  * https://raw.githubusercontent.com/MusicPlayerDaemon/MPD/v0.23.10/NEWS
+  * storage: curl: fixed file time stamps
+  * decoder: ffmpeg: fixed libfmt 9 compiler warning
+  * encoder: flac: fixed failure when libFLAC is built without Ogg support
+  * output: alsa: fixed crash bug
+
+-------------------------------------------------------------------

Old:
----
  mpd-0.23.9.tar.xz
  mpd-0.23.9.tar.xz.sig

New:
----
  mpd-0.23.10.tar.xz
  mpd-0.23.10.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mpd.spec ++++++
--- /var/tmp/diff_new_pack.b0pHKb/_old  2022-10-17 14:58:11.834150055 +0200
+++ /var/tmp/diff_new_pack.b0pHKb/_new  2022-10-17 14:58:11.838150063 +0200
@@ -20,7 +20,7 @@
 %bcond_with    faad
 %bcond_without mpd_iso9660
 Name:           mpd
-Version:        0.23.9
+Version:        0.23.10
 Release:        0
 Summary:        Music Player Daemon
 License:        GPL-2.0-or-later
@@ -34,12 +34,11 @@
 Patch0:         %{name}-conf.patch
 Patch1:         %{name}-sndfile.patch
 BuildRequires:  cmake
-BuildRequires:  gcc
 BuildRequires:  gcc-c++
+BuildRequires:  group(audio)
 BuildRequires:  hicolor-icon-theme
 BuildRequires:  libboost_headers-devel
 BuildRequires:  libcue-devel
-BuildRequires:  group(audio)
 # MPD_ENABLE_AUTO_LIB
 BuildRequires:  libgcrypt-devel
 BuildRequires:  libmikmod-devel

++++++ mpd-0.23.9.tar.xz -> mpd-0.23.10.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/NEWS new/mpd-0.23.10/NEWS
--- old/mpd-0.23.9/NEWS 2022-08-18 18:20:54.000000000 +0200
+++ new/mpd-0.23.10/NEWS        2022-10-14 23:51:41.000000000 +0200
@@ -1,3 +1,15 @@
+ver 0.23.10 (2022/10/14)
+* storage
+  - curl: fix file time stamps
+* decoder
+  - ffmpeg: fix libfmt 9 compiler warning
+* encoder
+  - flac: fix failure when libFLAC is built without Ogg support
+* output
+  - alsa: fix crash bug
+* Windows
+  - log to stdout by default, don't require "log_file" setting
+
 ver 0.23.9 (2022/08/18)
 * input
   - cdio_paranoia: add options "mode" and "skip"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/android/AndroidManifest.xml 
new/mpd-0.23.10/android/AndroidManifest.xml
--- old/mpd-0.23.9/android/AndroidManifest.xml  2022-08-18 18:20:54.000000000 
+0200
+++ new/mpd-0.23.10/android/AndroidManifest.xml 2022-10-14 23:51:41.000000000 
+0200
@@ -2,8 +2,8 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android";
           package="org.musicpd"
           android:installLocation="auto"
-          android:versionCode="68"
-          android:versionName="0.23.9">
+          android:versionCode="69"
+          android:versionName="0.23.10">
 
   <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="30"/>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/doc/conf.py new/mpd-0.23.10/doc/conf.py
--- old/mpd-0.23.9/doc/conf.py  2022-08-18 18:20:54.000000000 +0200
+++ new/mpd-0.23.10/doc/conf.py 2022-10-14 23:51:41.000000000 +0200
@@ -38,7 +38,7 @@
 # built documents.
 #
 # The short X.Y version.
-version = '0.23.9'
+version = '0.23.10'
 # The full version, including alpha/beta/rc tags.
 #release = version + '~git'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/doc/user.rst new/mpd-0.23.10/doc/user.rst
--- old/mpd-0.23.9/doc/user.rst 2022-08-18 18:20:54.000000000 +0200
+++ new/mpd-0.23.10/doc/user.rst        2022-10-14 23:51:41.000000000 +0200
@@ -199,7 +199,7 @@
 You need:
 
 * Android SDK
-* `Android NDK r23 <https://developer.android.com/ndk/downloads>`_
+* `Android NDK r25b <https://developer.android.com/ndk/downloads>`_
 * `Meson 0.56.0 <http://mesonbuild.com/>`__ and `Ninja
   <https://ninja-build.org/>`__
 * cmake
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/meson.build new/mpd-0.23.10/meson.build
--- old/mpd-0.23.9/meson.build  2022-08-18 18:20:54.000000000 +0200
+++ new/mpd-0.23.10/meson.build 2022-10-14 23:51:41.000000000 +0200
@@ -1,7 +1,7 @@
 project(
   'mpd',
   ['c', 'cpp'],
-  version: '0.23.9',
+  version: '0.23.10',
   meson_version: '>= 0.56.0',
   default_options: [
     'c_std=c11',
@@ -251,6 +251,14 @@
 
 fmt_dep = dependency('fmt', fallback: ['fmt', 'fmt_dep'])
 
+if compiler.get_id() == 'clang' and compiler.version().version_compare('<15')
+  fmt_dep = declare_dependency(
+    dependencies: fmt_dep,
+    # suppress bogus clang 14 warning (the version in Android NDK r25b)
+    compile_args: ['-Wno-unused-local-typedef'],
+  )
+endif
+
 log = static_library(
   'log',
   'src/Log.cxx',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/python/build/libs.py 
new/mpd-0.23.10/python/build/libs.py
--- old/mpd-0.23.9/python/build/libs.py 2022-08-18 18:20:54.000000000 +0200
+++ new/mpd-0.23.10/python/build/libs.py        2022-10-14 23:51:41.000000000 
+0200
@@ -43,20 +43,22 @@
 )
 
 flac = AutotoolsProject(
-    'http://downloads.xiph.org/releases/flac/flac-1.3.4.tar.xz',
-    '8ff0607e75a322dd7cd6ec48f4f225471404ae2730d0ea945127b1355155e737',
+    'http://downloads.xiph.org/releases/flac/flac-1.4.0.tar.xz',
+    'af41c0733c93c237c3e52f64dd87e3b0d9af38259f1c7d11e8cbf583c48c2506',
     'lib/libFLAC.a',
     [
         '--disable-shared', '--enable-static',
+        '--disable-stack-smash-protection',
         '--disable-xmms-plugin', '--disable-cpplibs',
         '--disable-doxygen-docs',
+        '--disable-programs',
     ],
     subdirs=['include', 'src/libFLAC'],
 )
 
 zlib = ZlibProject(
-    'http://zlib.net/zlib-1.2.12.tar.xz',
-    '7db46b8d7726232a621befaab4a1c870f00a90805511c0e0090441dac57def18',
+    'http://zlib.net/zlib-1.2.13.tar.xz',
+    'd14c38e313afc35a9a8760dadf26042f51ea0f5d154b0630a31da0540107fb98',
     'lib/libz.a',
 )
 
@@ -112,16 +114,20 @@
 )
 
 libopenmpt = AutotoolsProject(
-    
'https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-0.5.12+release.autotools.tar.gz',
-    '892aea7a599b5d21842bebf463b5aafdad5711be7008dd84401920c6234820af',
+    
'https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-0.6.6+release.autotools.tar.gz',
+    '6ddb9e26a430620944891796fefb1bbb38bd9148f6cfc558810c0d3f269876c7',
     'lib/libopenmpt.a',
     [
         '--disable-shared', '--enable-static',
         '--disable-openmpt123',
+        '--disable-examples',
+        '--disable-tests',
+        '--disable-doxygen-doc',
         '--without-mpg123', '--without-ogg', '--without-vorbis', 
'--without-vorbisfile',
         '--without-portaudio', '--without-portaudiocpp', '--without-sndfile',
+        '--without-flac',
     ],
-    base='libopenmpt-0.5.12+release.autotools',
+    base='libopenmpt-0.6.6+release.autotools',
 )
 
 wildmidi = CmakeProject(
@@ -151,8 +157,8 @@
 )
 
 ffmpeg = FfmpegProject(
-    'http://ffmpeg.org/releases/ffmpeg-5.1.tar.xz',
-    '55eb6aab5ee235550fa54a33eaf8bf1b4ec66c01453182b12f6a993d75698b03',
+    'http://ffmpeg.org/releases/ffmpeg-5.1.2.tar.xz',
+    '619e706d662c8420859832ddc259cd4d4096a48a2ce1eefd052db9e440eef3dc',
     'lib/libavcodec.a',
     [
         '--disable-shared', '--enable-static',
@@ -387,8 +393,8 @@
 )
 
 curl = CmakeProject(
-    'https://curl.se/download/curl-7.84.0.tar.xz',
-    '2d118b43f547bfe5bae806d8d47b4e596ea5b25a6c1f080aef49fbcd817c5db8',
+    'https://curl.se/download/curl-7.85.0.tar.xz',
+    '88b54a6d4b9a48cb4d873c7056dcba997ddd5b7be5a2d537a4acb55c20b04be6',
     'lib/libcurl.a',
     [
         '-DBUILD_CURL_EXE=OFF',
@@ -422,8 +428,8 @@
 )
 
 libnfs = AutotoolsProject(
-    'https://github.com/sahlberg/libnfs/archive/libnfs-5.0.1.tar.gz',
-    '7ef445410b42f36b9bad426608b53ccb9ccca4101e545c383f564c11db672ca8',
+    'https://github.com/sahlberg/libnfs/archive/libnfs-5.0.2.tar.gz',
+    '637e56643b19da9fba98f06847788c4dad308b723156a64748041035dcdf9bd3',
     'lib/libnfs.a',
     [
         '--disable-shared', '--enable-static',
@@ -434,7 +440,7 @@
 
         '--disable-utils', '--disable-examples',
     ],
-    base='libnfs-libnfs-5.0.1',
+    base='libnfs-libnfs-5.0.2',
     autoreconf=True,
 )
 
@@ -445,7 +451,7 @@
 )
 
 boost = BoostProject(
-    
'https://boostorg.jfrog.io/artifactory/main/release/1.79.0/source/boost_1_79_0.tar.bz2',
-    '475d589d51a7f8b3ba2ba4eda022b170e562ca3b760ee922c146b6c65856ef39',
+    
'https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.bz2',
+    '1e19565d82e43bc59209a168f5ac899d3ba471d55c7610c677d4ccf2c9c500c0',
     'include/boost/version.hpp',
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/src/LogInit.cxx 
new/mpd-0.23.10/src/LogInit.cxx
--- old/mpd-0.23.9/src/LogInit.cxx      2022-08-18 18:20:54.000000000 +0200
+++ new/mpd-0.23.10/src/LogInit.cxx     2022-10-14 23:51:41.000000000 +0200
@@ -158,12 +158,15 @@
                            getenv("NOTIFY_SOCKET") != nullptr) {
                                /* if MPD was started as a systemd
                                   service, default to journal (which
-                                  is connected to fd=2) */
+                                  is connected to stdout&stderr) */
                                out_fd = STDOUT_FILENO;
                                return;
                        }
 #endif
-#ifndef HAVE_SYSLOG
+#ifdef _WIN32
+                       /* default to stdout on Windows */
+                       out_fd = STDOUT_FILENO;
+#elif !defined(HAVE_SYSLOG)
                        throw std::runtime_error("config parameter 'log_file' 
not found");
 #endif
 #ifdef HAVE_SYSLOG
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/src/android/Context.cxx 
new/mpd-0.23.10/src/android/Context.cxx
--- old/mpd-0.23.9/src/android/Context.cxx      2022-08-18 18:20:54.000000000 
+0200
+++ new/mpd-0.23.10/src/android/Context.cxx     2022-10-14 23:51:41.000000000 
+0200
@@ -46,7 +46,7 @@
 AllocatedPath
 Context::GetExternalFilesDir(JNIEnv *env, const char *type) noexcept
 {
-       assert(_type != nullptr);
+       assert(type != nullptr);
 
        jobject file = env->CallObjectMethod(Get(), getExternalFilesDir_method,
                                             Java::String::Optional(env, 
type).Get());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mpd-0.23.9/src/archive/plugins/Iso9660ArchivePlugin.cxx 
new/mpd-0.23.10/src/archive/plugins/Iso9660ArchivePlugin.cxx
--- old/mpd-0.23.9/src/archive/plugins/Iso9660ArchivePlugin.cxx 2022-08-18 
18:20:54.000000000 +0200
+++ new/mpd-0.23.10/src/archive/plugins/Iso9660ArchivePlugin.cxx        
2022-10-14 23:51:41.000000000 +0200
@@ -166,7 +166,7 @@
                        assert(fill <= data.size());
                        assert(position <= fill);
 
-                       return {&data[position], &data[fill]};
+                       return {data.data() + position, data.data() + fill};
                }
 
                void Consume(size_t nbytes) noexcept {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mpd-0.23.9/src/decoder/plugins/FfmpegDecoderPlugin.cxx 
new/mpd-0.23.10/src/decoder/plugins/FfmpegDecoderPlugin.cxx
--- old/mpd-0.23.9/src/decoder/plugins/FfmpegDecoderPlugin.cxx  2022-08-18 
18:20:54.000000000 +0200
+++ new/mpd-0.23.10/src/decoder/plugins/FfmpegDecoderPlugin.cxx 2022-10-14 
23:51:41.000000000 +0200
@@ -31,6 +31,7 @@
 #include "lib/ffmpeg/Format.hxx"
 #include "lib/ffmpeg/Codec.hxx"
 #include "lib/ffmpeg/SampleFormat.hxx"
+#include "lib/ffmpeg/LibFmt.hxx"
 #include "../DecoderAPI.hxx"
 #include "FfmpegMetaData.hxx"
 #include "FfmpegIo.hxx"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/src/encoder/plugins/FlacEncoderPlugin.cxx 
new/mpd-0.23.10/src/encoder/plugins/FlacEncoderPlugin.cxx
--- old/mpd-0.23.9/src/encoder/plugins/FlacEncoderPlugin.cxx    2022-08-18 
18:20:54.000000000 +0200
+++ new/mpd-0.23.10/src/encoder/plugins/FlacEncoderPlugin.cxx   2022-10-14 
23:51:41.000000000 +0200
@@ -38,6 +38,7 @@
 
        FLAC__StreamEncoder *const fse;
        const unsigned compression;
+       const bool oggflac;
 
        PcmBuffer expand_buffer;
 
@@ -122,7 +123,7 @@
 }
 
 static void
-flac_encoder_setup(FLAC__StreamEncoder *fse, unsigned compression,
+flac_encoder_setup(FLAC__StreamEncoder *fse, unsigned compression, bool 
oggflac,
                   const AudioFormat &audio_format)
 {
        unsigned bits_per_sample;
@@ -157,7 +158,7 @@
                throw FormatRuntimeError("error setting flac sample rate to %d",
                                         audio_format.sample_rate);
 
-       if (!FLAC__stream_encoder_set_ogg_serial_number(fse,
+       if (oggflac && !FLAC__stream_encoder_set_ogg_serial_number(fse,
                                                  GenerateSerial()))
                throw FormatRuntimeError("error setting ogg serial number");
 }
@@ -166,11 +167,12 @@
        :Encoder(_oggchaining),
         audio_format(_audio_format), fse(_fse),
         compression(_compression),
+        oggflac(_oggflac),
         output_buffer(8192)
 {
        /* this immediately outputs data through callback */
 
-       auto init_status = _oggflac ?
+       auto init_status = oggflac ?
                FLAC__stream_encoder_init_ogg_stream(fse,
                                                     nullptr, WriteCallback,
                                                     nullptr, nullptr, nullptr,
@@ -209,7 +211,7 @@
                throw std::runtime_error("FLAC__stream_encoder_new() failed");
 
        try {
-               flac_encoder_setup(fse, compression, audio_format);
+               flac_encoder_setup(fse, compression, oggflac, audio_format);
        } catch (...) {
                FLAC__stream_encoder_delete(fse);
                throw;
@@ -222,7 +224,7 @@
 FlacEncoder::SendTag(const Tag &tag)
 {
        /* re-initialize encoder since flac_encoder_finish resets everything */
-       flac_encoder_setup(fse, compression, audio_format);
+       flac_encoder_setup(fse, compression, oggflac, audio_format);
 
        FLAC__StreamMetadata *metadata = 
FLAC__metadata_object_new(FLAC__METADATA_TYPE_VORBIS_COMMENT);
        FLAC__StreamMetadata_VorbisComment_Entry entry;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/src/input/plugins/CurlInputPlugin.cxx 
new/mpd-0.23.10/src/input/plugins/CurlInputPlugin.cxx
--- old/mpd-0.23.9/src/input/plugins/CurlInputPlugin.cxx        2022-08-18 
18:20:54.000000000 +0200
+++ new/mpd-0.23.10/src/input/plugins/CurlInputPlugin.cxx       2022-10-14 
23:51:41.000000000 +0200
@@ -439,6 +439,8 @@
        request->SetVerifyPeer(verify_peer);
        request->SetVerifyHost(verify_host);
        request->SetOption(CURLOPT_HTTPHEADER, request_headers.Get());
+       request->SetProxyVerifyPeer(verify_peer);
+       request->SetProxyVerifyHost(verify_host);
 }
 
 void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/src/java/File.cxx 
new/mpd-0.23.10/src/java/File.cxx
--- old/mpd-0.23.9/src/java/File.cxx    2022-08-18 18:20:54.000000000 +0200
+++ new/mpd-0.23.10/src/java/File.cxx   2022-10-14 23:51:41.000000000 +0200
@@ -49,9 +49,6 @@
 AllocatedPath
 Java::File::ToAbsolutePath(JNIEnv *env, jobject _file) noexcept
 {
-       assert(env != nullptr);
-       assert(_file != nullptr);
-
        LocalObject file(env, _file);
 
        const jstring path = GetAbsolutePath(env, file);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/src/lib/curl/Request.hxx 
new/mpd-0.23.10/src/lib/curl/Request.hxx
--- old/mpd-0.23.9/src/lib/curl/Request.hxx     2022-08-18 18:20:54.000000000 
+0200
+++ new/mpd-0.23.10/src/lib/curl/Request.hxx    2022-10-14 23:51:41.000000000 
+0200
@@ -123,6 +123,14 @@
                easy.SetVerifyPeer(value);
        }
 
+       void SetProxyVerifyHost(bool value) {
+               easy.SetOption(CURLOPT_PROXY_SSL_VERIFYHOST, value ? 2L : 0L);
+       }
+
+       void SetProxyVerifyPeer(bool value) {
+               easy.SetOption(CURLOPT_PROXY_SSL_VERIFYPEER, value);
+       }
+
        void SetNoBody(bool value=true) {
                easy.SetNoBody(value);
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/src/lib/ffmpeg/LibFmt.hxx 
new/mpd-0.23.10/src/lib/ffmpeg/LibFmt.hxx
--- old/mpd-0.23.9/src/lib/ffmpeg/LibFmt.hxx    1970-01-01 01:00:00.000000000 
+0100
+++ new/mpd-0.23.10/src/lib/ffmpeg/LibFmt.hxx   2022-10-14 23:51:41.000000000 
+0200
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2003-2022 The Music Player Daemon Project
+ * http://www.musicpd.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#pragma once
+
+extern "C" {
+#include <libavutil/samplefmt.h>
+}
+
+#include <fmt/format.h>
+
+template<>
+struct fmt::formatter<AVSampleFormat> : formatter<string_view>
+{
+       template<typename FormatContext>
+       auto format(const AVSampleFormat format, FormatContext &ctx) {
+               const char *name = av_get_sample_fmt_name(format);
+               if (name == nullptr)
+                       name = "?";
+
+               return formatter<string_view>::format(name, ctx);
+       }
+};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/src/output/plugins/AlsaOutputPlugin.cxx 
new/mpd-0.23.10/src/output/plugins/AlsaOutputPlugin.cxx
--- old/mpd-0.23.9/src/output/plugins/AlsaOutputPlugin.cxx      2022-08-18 
18:20:54.000000000 +0200
+++ new/mpd-0.23.10/src/output/plugins/AlsaOutputPlugin.cxx     2022-10-14 
23:51:41.000000000 +0200
@@ -812,8 +812,12 @@
                                      fmt::format("Failed to open ALSA device 
\"{}\"",
                                                  GetDevice()).c_str());
 
+       const char *pcm_name = snd_pcm_name(pcm);
+       if (pcm_name == nullptr)
+               pcm_name = "?";
+
        FmtDebug(alsa_output_domain, "opened {} type={}",
-                snd_pcm_name(pcm),
+                pcm_name,
                 snd_pcm_type_name(snd_pcm_type(pcm)));
 
 #ifdef ENABLE_DSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/src/storage/plugins/CurlStorage.cxx 
new/mpd-0.23.10/src/storage/plugins/CurlStorage.cxx
--- old/mpd-0.23.9/src/storage/plugins/CurlStorage.cxx  2022-08-18 
18:20:54.000000000 +0200
+++ new/mpd-0.23.10/src/storage/plugins/CurlStorage.cxx 2022-10-14 
23:51:41.000000000 +0200
@@ -34,7 +34,6 @@
 #include "event/InjectEvent.hxx"
 #include "thread/Mutex.hxx"
 #include "thread/Cond.hxx"
-#include "time/Parser.hxx"
 #include "util/ASCII.hxx"
 #include "util/RuntimeError.hxx"
 #include "util/StringCompare.hxx"
@@ -171,8 +170,9 @@
        }
 };
 
+[[gnu::pure]]
 static unsigned
-ParseStatus(const char *s)
+ParseStatus(const char *s) noexcept
 {
        /* skip the "HTTP/1.1" prefix */
        const char *space = std::strchr(s, ' ');
@@ -182,37 +182,37 @@
        return strtoul(space + 1, nullptr, 10);
 }
 
+[[gnu::pure]]
 static unsigned
-ParseStatus(const char *s, size_t length)
+ParseStatus(const char *s, size_t length) noexcept
 {
        return ParseStatus(std::string(s, length).c_str());
 }
 
+[[gnu::pure]]
 static std::chrono::system_clock::time_point
-ParseTimeStamp(const char *s)
+ParseTimeStamp(const char *s) noexcept
 {
-       try {
-               // TODO: make this more robust
-               return ParseTimePoint(s, "%a, %d %b %Y %T");
-       } catch (...) {
-               return std::chrono::system_clock::time_point::min();
-       }
+       return std::chrono::system_clock::from_time_t(curl_getdate(s, nullptr));
 }
 
+[[gnu::pure]]
 static std::chrono::system_clock::time_point
-ParseTimeStamp(const char *s, size_t length)
+ParseTimeStamp(const char *s, size_t length) noexcept
 {
        return ParseTimeStamp(std::string(s, length).c_str());
 }
 
+[[gnu::pure]]
 static uint64_t
-ParseU64(const char *s)
+ParseU64(const char *s) noexcept
 {
        return strtoull(s, nullptr, 10);
 }
 
+[[gnu::pure]]
 static uint64_t
-ParseU64(const char *s, size_t length)
+ParseU64(const char *s, size_t length) noexcept
 {
        return ParseU64(std::string(s, length).c_str());
 }
@@ -278,6 +278,7 @@
                                  "<a:resourcetype/>"
                                  "<a:getcontenttype/>"
                                  "<a:getcontentlength/>"
+                                 "<a:getlastmodified/>"
                                  "</a:prop>"
                                  "</a:propfind>");
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/src/time/Parser.cxx 
new/mpd-0.23.10/src/time/Parser.cxx
--- old/mpd-0.23.9/src/time/Parser.cxx  2022-08-18 18:20:54.000000000 +0200
+++ new/mpd-0.23.10/src/time/Parser.cxx 1970-01-01 01:00:00.000000000 +0100
@@ -1,57 +0,0 @@
-/*
- * Copyright 2014-2019 Max Kellermann <[email protected]>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * - Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
- * FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "Parser.hxx"
-#include "Convert.hxx"
-
-#include <cassert>
-#include <stdexcept>
-
-#include <time.h>
-
-std::chrono::system_clock::time_point
-ParseTimePoint(const char *s, const char *format)
-{
-       assert(s != nullptr);
-       assert(format != nullptr);
-
-#ifdef _WIN32
-       /* TODO: emulate strptime()? */
-       (void)s;
-       (void)format;
-       throw std::runtime_error("Time parsing not implemented on Windows");
-#else
-       struct tm tm{};
-       const char *end = strptime(s, format, &tm);
-       if (end == nullptr || *end != 0)
-               throw std::runtime_error("Failed to parse time stamp");
-
-       return TimeGm(tm);
-#endif /* !_WIN32 */
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/src/time/Parser.hxx 
new/mpd-0.23.10/src/time/Parser.hxx
--- old/mpd-0.23.9/src/time/Parser.hxx  2022-08-18 18:20:54.000000000 +0200
+++ new/mpd-0.23.10/src/time/Parser.hxx 1970-01-01 01:00:00.000000000 +0100
@@ -1,43 +0,0 @@
-/*
- * Copyright 2014-2019 Max Kellermann <[email protected]>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * - Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
- * FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef TIME_PARSER_HXX
-#define TIME_PARSER_HXX
-
-#include <chrono>
-
-/**
- * Parse a time stamp.
- *
- * Throws std::runtime_error on error.
- */
-std::chrono::system_clock::time_point
-ParseTimePoint(const char *s, const char *format);
-
-#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/src/time/meson.build 
new/mpd-0.23.10/src/time/meson.build
--- old/mpd-0.23.9/src/time/meson.build 2022-08-18 18:20:54.000000000 +0200
+++ new/mpd-0.23.10/src/time/meson.build        2022-10-14 23:51:41.000000000 
+0200
@@ -1,6 +1,5 @@
 time = static_library(
   'time',
-  'Parser.cxx',
   'Convert.cxx',
   'ISO8601.cxx',
   'Math.cxx',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/subprojects/expat.wrap 
new/mpd-0.23.10/subprojects/expat.wrap
--- old/mpd-0.23.9/subprojects/expat.wrap       2022-08-18 18:20:54.000000000 
+0200
+++ new/mpd-0.23.10/subprojects/expat.wrap      2022-10-14 23:51:41.000000000 
+0200
@@ -1,12 +1,12 @@
 [wrap-file]
-directory = expat-2.4.8
-source_url = 
https://github.com/libexpat/libexpat/releases/download/R_2_4_8/expat-2.4.8.tar.xz
-source_filename = expat-2.4.8.tar.bz2
-source_hash = f79b8f904b749e3e0d20afeadecf8249c55b2e32d4ebb089ae378df479dcaf25
-patch_filename = expat_2.4.8-1_patch.zip
-patch_url = https://wrapdb.mesonbuild.com/v2/expat_2.4.8-1/get_patch
-patch_hash = 9aec253a2c6d1c0feb852c5c6920298d14701eeec7acc6832bb402438b52112a
+directory = expat-2.4.9
+source_url = 
https://github.com/libexpat/libexpat/releases/download/R_2_4_9/expat-2.4.9.tar.xz
+source_filename = expat-2.4.9.tar.bz2
+source_hash = 6e8c0728fe5c7cd3f93a6acce43046c5e4736c7b4b68e032e9350daa0efc0354
+patch_filename = expat_2.4.9-1_patch.zip
+patch_url = https://wrapdb.mesonbuild.com/v2/expat_2.4.9-1/get_patch
+patch_hash = 51b42d935008552f9d6c4d3e7511b84690a2a0c9d90165d1d192fc892f0a4787
+wrapdb_version = 2.4.9-1
 
 [provide]
 expat = expat_dep
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/subprojects/fmt.wrap 
new/mpd-0.23.10/subprojects/fmt.wrap
--- old/mpd-0.23.9/subprojects/fmt.wrap 2022-08-18 18:20:54.000000000 +0200
+++ new/mpd-0.23.10/subprojects/fmt.wrap        2022-10-14 23:51:41.000000000 
+0200
@@ -1,12 +1,12 @@
 [wrap-file]
-directory = fmt-8.1.1
-source_url = https://github.com/fmtlib/fmt/archive/8.1.1.tar.gz
-source_filename = fmt-8.1.1.tar.gz
-source_hash = 3d794d3cf67633b34b2771eb9f073bde87e846e0d395d254df7b211ef1ec7346
-patch_filename = fmt_8.1.1-2_patch.zip
-patch_url = https://wrapdb.mesonbuild.com/v2/fmt_8.1.1-2/get_patch
-patch_hash = cd001046281330a8862591780a9ea71a1fa594edd0d015deb24e44680c9ea33b
-wrapdb_version = 8.1.1-2
+directory = fmt-9.0.0
+source_url = https://github.com/fmtlib/fmt/archive/9.0.0.tar.gz
+source_filename = fmt-9.0.0.tar.gz
+source_hash = 9a1e0e9e843a356d65c7604e2c8bf9402b50fe294c355de0095ebd42fb9bd2c5
+patch_filename = fmt_9.0.0-1_patch.zip
+patch_url = https://wrapdb.mesonbuild.com/v2/fmt_9.0.0-1/get_patch
+patch_hash = 5f12924065e0fe7ccae40593d256a082955c273cb2880b3e3de05df9d8d10697
+wrapdb_version = 9.0.0-1
 
 [provide]
 fmt = fmt_dep
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/subprojects/sqlite3.wrap 
new/mpd-0.23.10/subprojects/sqlite3.wrap
--- old/mpd-0.23.9/subprojects/sqlite3.wrap     2022-08-18 18:20:54.000000000 
+0200
+++ new/mpd-0.23.10/subprojects/sqlite3.wrap    2022-10-14 23:51:41.000000000 
+0200
@@ -1,12 +1,12 @@
 [wrap-file]
-directory = sqlite-amalgamation-3380000
-source_url = https://sqlite.org/2022/sqlite-amalgamation-3380000.zip
-source_filename = sqlite-amalgamation-3380000.zip
-source_hash = e055f6054e97747a135c89e36520c0a423249e8a91c5fc445163f4a6adb20df6
-patch_filename = sqlite3_3.38.0-1_patch.zip
-patch_url = https://wrapdb.mesonbuild.com/v2/sqlite3_3.38.0-1/get_patch
-patch_hash = 49e30bf010ff63ab772d5417885e6905379025ceac80382e292c6dbd3a9da744
+directory = sqlite-amalgamation-3390300
+source_url = https://sqlite.org/2022/sqlite-amalgamation-3390300.zip
+source_filename = sqlite-amalgamation-3390300.zip
+source_hash = a89db3030d229d860ae56a8bac50ac9761434047ae886e47e7c8f9f428fa98ad
+patch_filename = sqlite3_3.39.3-1_patch.zip
+patch_url = https://wrapdb.mesonbuild.com/v2/sqlite3_3.39.3-1/get_patch
+patch_hash = f5c41ff7b3da1108ed221b9a820b41188550cafb8a6c3d247bb40bd598775050
+wrapdb_version = 3.39.3-1
 
 [provide]
 sqlite3 = sqlite3_dep
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/subprojects/vorbis.wrap 
new/mpd-0.23.10/subprojects/vorbis.wrap
--- old/mpd-0.23.9/subprojects/vorbis.wrap      2022-08-18 18:20:54.000000000 
+0200
+++ new/mpd-0.23.10/subprojects/vorbis.wrap     2022-10-14 23:51:41.000000000 
+0200
@@ -3,13 +3,12 @@
 source_url = https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.7.tar.xz
 source_filename = libvorbis-1.3.7.tar.xz
 source_hash = b33cc4934322bcbf6efcbacf49e3ca01aadbea4114ec9589d1b1e9d20f72954b
-patch_filename = vorbis_1.3.7-3_patch.zip
-patch_url = https://wrapdb.mesonbuild.com/v2/vorbis_1.3.7-3/get_patch
-patch_hash = 6cb90a61ede8c64d3e8e379b96dcc800c9dd69e925122b3d73d8f59a563c3afa
-wrapdb_version = 1.3.7-3
+patch_filename = vorbis_1.3.7-4_patch.zip
+patch_url = https://wrapdb.mesonbuild.com/v2/vorbis_1.3.7-4/get_patch
+patch_hash = 979e22b24b16c927040700dfd8319cd6ba29bf52a14dbc66b1cb4ea60504f14a
+wrapdb_version = 1.3.7-4
 
 [provide]
 vorbis = vorbis_dep
 vorbisfile = vorbisfile_dep
 vorbisenc = vorbisenc_dep
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/test/meson.build 
new/mpd-0.23.10/test/meson.build
--- old/mpd-0.23.9/test/meson.build     2022-08-18 18:20:54.000000000 +0200
+++ new/mpd-0.23.10/test/meson.build    2022-10-14 23:51:41.000000000 +0200
@@ -320,11 +320,6 @@
     include_directories: inc,
     dependencies: [
       curl_dep,
-
-      # Explicitly linking with zlib here works around a linker
-      # failure on Windows, because our Windows CURL build is
-      # statically linked and thus declares no dependency on zlib
-      zlib_dep,
     ],
   )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpd-0.23.9/test/net/meson.build 
new/mpd-0.23.10/test/net/meson.build
--- old/mpd-0.23.9/test/net/meson.build 2022-08-18 18:20:54.000000000 +0200
+++ new/mpd-0.23.10/test/net/meson.build        2022-10-14 23:51:41.000000000 
+0200
@@ -19,6 +19,7 @@
     include_directories: inc,
     dependencies: [
       net_dep,
+      util_dep,
       gtest_dep,
     ],
   ),

Reply via email to