From 5e0264be7dc784ca7c697ebb88c741ff1d810dba Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Fri, 3 Apr 2020 15:30:54 -0700 Subject: [PATCH] mpd: update to 0.21.22 Removed upstreamed patches. Only the first was really needed. Signed-off-by: Rosen Penev --- sound/mpd/Makefile | 6 +- ...st-lround-when-std-round-is-unavaila.patch | 227 ------------------ .../patches/020-fix-incorrect-rounding.patch | 34 --- ..._mapping-get-rid-of-exp10-workaround.patch | 52 ---- ...ide-get-rid-of-C-math-function-usage.patch | 162 ------------- 5 files changed, 3 insertions(+), 478 deletions(-) delete mode 100644 sound/mpd/patches/010-treewide-use-boost-lround-when-std-round-is-unavaila.patch delete mode 100644 sound/mpd/patches/020-fix-incorrect-rounding.patch delete mode 100644 sound/mpd/patches/030-volume_mapping-get-rid-of-exp10-workaround.patch delete mode 100644 sound/mpd/patches/040-treewide-get-rid-of-C-math-function-usage.patch diff --git a/sound/mpd/Makefile b/sound/mpd/Makefile index 4977d9227..969112240 100644 --- a/sound/mpd/Makefile +++ b/sound/mpd/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mpd -PKG_VERSION:=0.21.20 -PKG_RELEASE:=2 +PKG_VERSION:=0.21.22 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://www.musicpd.org/download/mpd/0.21/ -PKG_HASH:=422ef0a996d961f3ebc6856395f3a855b45fa0059910e878fb98281007e510e1 +PKG_HASH:=565687d1899b585350cd66b603e46e5b79affc0a0e36d96d8953c6ccc6f69ba2 PKG_MAINTAINER:=Ted Hess PKG_LICENSE:=GPL-2.0-or-later diff --git a/sound/mpd/patches/010-treewide-use-boost-lround-when-std-round-is-unavaila.patch b/sound/mpd/patches/010-treewide-use-boost-lround-when-std-round-is-unavaila.patch deleted file mode 100644 index 20bda3548..000000000 --- a/sound/mpd/patches/010-treewide-use-boost-lround-when-std-round-is-unavaila.patch +++ /dev/null @@ -1,227 +0,0 @@ -From 769cd0ee9f0cf8ceb026aa751b5d4a390bb5dbdc Mon Sep 17 00:00:00 2001 -From: Rosen Penev -Date: Sun, 2 Feb 2020 21:21:57 -0800 -Subject: [PATCH] treewide: use boost::lround when std::round is unavailable - -This is the case with uClibc-ng currently. - -Signed-off-by: Rosen Penev ---- - src/Stats.cxx | 4 +-- - src/command/PlayerCommands.cxx | 5 ++- - src/decoder/plugins/FaadDecoderPlugin.cxx | 3 +- - src/mixer/plugins/WinmmMixerPlugin.cxx | 2 +- - src/output/plugins/HaikuOutputPlugin.cxx | 3 +- - src/pcm/PcmMix.cxx | 5 ++- - src/player/CrossFade.cxx | 5 ++- - src/util/Math.hxx | 41 +++++++++++++++++++++++ - 8 files changed, 52 insertions(+), 16 deletions(-) - create mode 100644 src/util/Math.hxx - -diff --git a/src/Stats.cxx b/src/Stats.cxx -index 2208312d7..7467a3a17 100644 ---- a/src/Stats.cxx -+++ b/src/Stats.cxx -@@ -29,9 +29,9 @@ - #include "system/Clock.hxx" - #include "Log.hxx" - #include "time/ChronoUtil.hxx" -+#include "util/Math.hxx" - - #include --#include - - #ifndef _WIN32 - /** -@@ -121,7 +121,7 @@ stats_print(Response &r, const Partition &partition) - #else - (unsigned)std::chrono::duration_cast(std::chrono::steady_clock::now() - start_time).count(), - #endif -- std::lround(partition.pc.GetTotalPlayTime().count())); -+ lround(partition.pc.GetTotalPlayTime().count())); - - #ifdef ENABLE_DATABASE - const Database *db = partition.instance.GetDatabase(); -diff --git a/src/command/PlayerCommands.cxx b/src/command/PlayerCommands.cxx -index 7f3b4f296..4acb8f2ad 100644 ---- a/src/command/PlayerCommands.cxx -+++ b/src/command/PlayerCommands.cxx -@@ -34,13 +34,12 @@ - #include "util/StringBuffer.hxx" - #include "util/ScopeExit.hxx" - #include "util/Exception.hxx" -+#include "util/Math.hxx" - - #ifdef ENABLE_DATABASE - #include "db/update/Service.hxx" - #endif - --#include -- - #define COMMAND_STATUS_STATE "state" - #define COMMAND_STATUS_REPEAT "repeat" - #define COMMAND_STATUS_SINGLE "single" -@@ -154,7 +153,7 @@ handle_status(Client &client, gcc_unused Request args, Response &r) - - if (pc.GetCrossFade() > FloatDuration::zero()) - r.Format(COMMAND_STATUS_CROSSFADE ": %lu\n", -- std::lround(pc.GetCrossFade().count())); -+ lround(pc.GetCrossFade().count())); - - if (pc.GetMixRampDelay() > FloatDuration::zero()) - r.Format(COMMAND_STATUS_MIXRAMPDELAY ": %f\n", -diff --git a/src/decoder/plugins/FaadDecoderPlugin.cxx b/src/decoder/plugins/FaadDecoderPlugin.cxx -index 983103e0e..e1c9576d3 100644 ---- a/src/decoder/plugins/FaadDecoderPlugin.cxx -+++ b/src/decoder/plugins/FaadDecoderPlugin.cxx -@@ -26,11 +26,11 @@ - #include "util/ScopeExit.hxx" - #include "util/ConstBuffer.hxx" - #include "util/Domain.hxx" -+#include "util/Math.hxx" - #include "Log.hxx" - - #include - --#include - #include - - #include -diff --git a/src/mixer/plugins/WinmmMixerPlugin.cxx b/src/mixer/plugins/WinmmMixerPlugin.cxx -index 9661d6551..905e650ef 100644 ---- a/src/mixer/plugins/WinmmMixerPlugin.cxx -+++ b/src/mixer/plugins/WinmmMixerPlugin.cxx -@@ -20,13 +20,13 @@ - #include "mixer/MixerInternal.hxx" - #include "output/OutputAPI.hxx" - #include "output/plugins/WinmmOutputPlugin.hxx" -+#include "util/Math.hxx" - - #include - - #include - - #include --#include - #include - - class WinmmMixer final : public Mixer { -diff --git a/src/output/plugins/HaikuOutputPlugin.cxx b/src/output/plugins/HaikuOutputPlugin.cxx -index 952fb0c2f..01240aca9 100644 ---- a/src/output/plugins/HaikuOutputPlugin.cxx -+++ b/src/output/plugins/HaikuOutputPlugin.cxx -@@ -22,6 +22,7 @@ - #include "../OutputAPI.hxx" - #include "mixer/MixerList.hxx" - #include "util/Domain.hxx" -+#include "util/Math.hxx" - #include "system/Error.hxx" - #include "Log.hxx" - -@@ -37,8 +38,6 @@ - #include - #include - --#include -- - #include - - #define UTF8_PLAY "\xE2\x96\xB6" -diff --git a/src/pcm/PcmMix.cxx b/src/pcm/PcmMix.cxx -index 17e34b005..59179f54e 100644 ---- a/src/pcm/PcmMix.cxx -+++ b/src/pcm/PcmMix.cxx -@@ -22,11 +22,10 @@ - #include "Clamp.hxx" - #include "Traits.hxx" - #include "util/Clamp.hxx" -+#include "util/Math.hxx" - - #include "PcmDither.cxx" // including the .cxx file to get inlined templates - --#include -- - #include - - template> -@@ -225,7 +224,7 @@ pcm_mix(PcmDither &dither, void *buffer1, const void *buffer2, size_t size, - s = sin(M_PI_2 * portion1); - s *= s; - -- int vol1 = std::lround(s * PCM_VOLUME_1S); -+ int vol1 = lround(s * PCM_VOLUME_1S); - vol1 = Clamp(vol1, 0, PCM_VOLUME_1S); - - return pcm_add_vol(dither, buffer1, buffer2, size, -diff --git a/src/player/CrossFade.cxx b/src/player/CrossFade.cxx -index ce86d3f0a..8a91516f1 100644 ---- a/src/player/CrossFade.cxx -+++ b/src/player/CrossFade.cxx -@@ -23,10 +23,9 @@ - #include "AudioFormat.hxx" - #include "util/NumberParser.hxx" - #include "util/Domain.hxx" -+#include "util/Math.hxx" - #include "Log.hxx" - --#include -- - #include - - static constexpr Domain cross_fade_domain("cross_fade"); -@@ -112,7 +111,7 @@ CrossFadeSettings::Calculate(SignedSongTime total_time, - - if (mixramp_delay <= FloatDuration::zero() || - !mixramp_start || !mixramp_prev_end) { -- chunks = std::lround(duration / chunk_duration); -+ chunks = lround(duration / chunk_duration); - } else { - /* Calculate mixramp overlap. */ - const auto mixramp_overlap_current = -diff --git a/src/util/Math.hxx b/src/util/Math.hxx -new file mode 100644 -index 000000000..bd856f5a9 ---- /dev/null -+++ b/src/util/Math.hxx -@@ -0,0 +1,41 @@ -+/* -+ * Copyright (C) 2018 Max Kellermann -+ * -+ * 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 MATH_HXX -+#define MATH_HXX -+ -+#ifdef __UCLIBC__ -+#include -+using boost::math::lround; -+#else -+#include -+using std::lround; -+#endif -+ -+#endif diff --git a/sound/mpd/patches/020-fix-incorrect-rounding.patch b/sound/mpd/patches/020-fix-incorrect-rounding.patch deleted file mode 100644 index 80e7a6c4e..000000000 --- a/sound/mpd/patches/020-fix-incorrect-rounding.patch +++ /dev/null @@ -1,34 +0,0 @@ -From ab5183cbc45818114cc4c226ace299a1fb917ab0 Mon Sep 17 00:00:00 2001 -From: Rosen Penev -Date: Sun, 2 Feb 2020 16:34:09 -0800 -Subject: [PATCH] [clang-tidy] fix incorrect rounding - -Found with bugprone-incorrect-roundings - -Signed-off-by: Rosen Penev ---- - src/decoder/plugins/WavpackDecoderPlugin.cxx | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/decoder/plugins/WavpackDecoderPlugin.cxx b/src/decoder/plugins/WavpackDecoderPlugin.cxx -index 77751167f..97824de75 100644 ---- a/src/decoder/plugins/WavpackDecoderPlugin.cxx -+++ b/src/decoder/plugins/WavpackDecoderPlugin.cxx -@@ -26,6 +26,7 @@ - #include "fs/Path.hxx" - #include "util/Macros.hxx" - #include "util/Alloc.hxx" -+#include "util/Math.hxx" - #include "util/ScopeExit.hxx" - #include "util/RuntimeError.hxx" - -@@ -265,8 +266,7 @@ wavpack_decode(DecoderClient &client, WavpackContext *wpc, bool can_seek) - if (samples_got == 0) - break; - -- int bitrate = (int)(WavpackGetInstantBitrate(wpc) / 1000 + -- 0.5); -+ int bitrate = lround(WavpackGetInstantBitrate(wpc) / 1000); - format_samples(chunk, samples_got * audio_format.channels); - - cmd = client.SubmitData(nullptr, chunk, diff --git a/sound/mpd/patches/030-volume_mapping-get-rid-of-exp10-workaround.patch b/sound/mpd/patches/030-volume_mapping-get-rid-of-exp10-workaround.patch deleted file mode 100644 index efa245efb..000000000 --- a/sound/mpd/patches/030-volume_mapping-get-rid-of-exp10-workaround.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 6b3250a3fb4a854d19980868ed187ca21f0e5ed8 Mon Sep 17 00:00:00 2001 -From: Rosen Penev -Date: Mon, 3 Feb 2020 15:26:50 -0800 -Subject: [PATCH] volume_mapping: get rid of exp10 workaround - -exp10 is a GNU function, is not part of C++, and is not available -everywhere. - -pow(10,x) is an alternative that works just as well. - -Signed-off-by: Rosen Penev ---- - src/mixer/plugins/volume_mapping.c | 11 +++-------- - 1 file changed, 3 insertions(+), 8 deletions(-) - -diff --git a/src/mixer/plugins/volume_mapping.c b/src/mixer/plugins/volume_mapping.c -index 61a7138af..beecce640 100644 ---- a/src/mixer/plugins/volume_mapping.c -+++ b/src/mixer/plugins/volume_mapping.c -@@ -34,11 +34,6 @@ - #include - #include "volume_mapping.h" - --#ifdef __UCLIBC__ --/* 10^x = 10^(log e^x) = (e^x)^log10 = e^(x * log 10) */ --#define exp10(x) (exp((x) * log(10))) --#endif /* __UCLIBC__ */ -- - #define MAX_LINEAR_DB_SCALE 24 - - static inline bool use_linear_dB_scale(long dBmin, long dBmax) -@@ -111,9 +106,9 @@ static double get_normalized_volume(snd_mixer_elem_t *elem, - if (use_linear_dB_scale(min, max)) - return (value - min) / (double)(max - min); - -- normalized = exp10((value - max) / 6000.0); -+ normalized = pow(10, (value - max) / 6000.0); - if (min != SND_CTL_TLV_DB_GAIN_MUTE) { -- min_norm = exp10((min - max) / 6000.0); -+ min_norm = pow(10, (min - max) / 6000.0); - normalized = (normalized - min_norm) / (1 - min_norm); - } - -@@ -159,7 +154,7 @@ static int set_normalized_volume(snd_mixer_elem_t *elem, - } - - if (min != SND_CTL_TLV_DB_GAIN_MUTE) { -- min_norm = exp10((min - max) / 6000.0); -+ min_norm = pow(10, (min - max) / 6000.0); - volume = volume * (1 - min_norm) + min_norm; - } - value = lrint_dir(6000.0 * log10(volume), dir) + max; diff --git a/sound/mpd/patches/040-treewide-get-rid-of-C-math-function-usage.patch b/sound/mpd/patches/040-treewide-get-rid-of-C-math-function-usage.patch deleted file mode 100644 index 27cbaa379..000000000 --- a/sound/mpd/patches/040-treewide-get-rid-of-C-math-function-usage.patch +++ /dev/null @@ -1,162 +0,0 @@ -From 2a8e7c50743ec6a20c7bd9c8e84ccd36d59e69ad Mon Sep 17 00:00:00 2001 -From: Rosen Penev -Date: Mon, 3 Feb 2020 15:50:46 -0800 -Subject: [PATCH] treewide: get rid of C math function usage - -Boost does not seem to offer an overload for lrint. - -Signed-off-by: Rosen Penev ---- - src/ReplayGainGlobal.cxx | 2 +- - src/ReplayGainInfo.cxx | 3 +-- - src/decoder/Bridge.cxx | 5 +++-- - src/decoder/plugins/MpcdecDecoderPlugin.cxx | 3 +-- - src/mixer/plugins/AlsaMixerPlugin.cxx | 3 +-- - src/mixer/plugins/SoftwareMixerPlugin.cxx | 5 +++-- - src/util/Math.hxx | 6 ++++++ - 7 files changed, 16 insertions(+), 11 deletions(-) - -diff --git a/src/ReplayGainGlobal.cxx b/src/ReplayGainGlobal.cxx -index 741381dcb..01ba8769d 100644 ---- a/src/ReplayGainGlobal.cxx -+++ b/src/ReplayGainGlobal.cxx -@@ -21,11 +21,11 @@ - #include "ReplayGainConfig.hxx" - #include "config/Param.hxx" - #include "config/Data.hxx" -+#include "util/Math.hxx" - #include "util/RuntimeError.hxx" - - #include - #include --#include - - static float - ParsePreamp(const char *s) -diff --git a/src/ReplayGainInfo.cxx b/src/ReplayGainInfo.cxx -index a0685507a..76713aded 100644 ---- a/src/ReplayGainInfo.cxx -+++ b/src/ReplayGainInfo.cxx -@@ -19,8 +19,7 @@ - - #include "ReplayGainInfo.hxx" - #include "ReplayGainConfig.hxx" -- --#include -+#include "util/Math.hxx" - - float - ReplayGainTuple::CalculateScale(const ReplayGainConfig &config) const noexcept -diff --git a/src/decoder/Bridge.cxx b/src/decoder/Bridge.cxx -index 27d1a577a..7f9ffe02d 100644 ---- a/src/decoder/Bridge.cxx -+++ b/src/decoder/Bridge.cxx -@@ -31,11 +31,11 @@ - #include "Log.hxx" - #include "input/InputStream.hxx" - #include "util/ConstBuffer.hxx" -+#include "util/Math.hxx" - #include "util/StringBuffer.hxx" - - #include - #include --#include - - DecoderBridge::~DecoderBridge() - { -@@ -591,7 +592,7 @@ DecoderBridge::SubmitReplayGain(const ReplayGainInfo *new_replay_gain_info) noex - const auto &tuple = new_replay_gain_info->Get(rgm); - const auto scale = - tuple.CalculateScale(dc.replay_gain_config); -- dc.replay_gain_db = 20.0 * log10f(scale); -+ dc.replay_gain_db = 20.0 * std::log10(scale); - } - - replay_gain_info = *new_replay_gain_info; -diff --git a/src/decoder/plugins/MpcdecDecoderPlugin.cxx b/src/decoder/plugins/MpcdecDecoderPlugin.cxx -index c19aee75c..4e9ef798e 100644 ---- a/src/decoder/plugins/MpcdecDecoderPlugin.cxx -+++ b/src/decoder/plugins/MpcdecDecoderPlugin.cxx -@@ -26,6 +26,7 @@ - #include "util/Domain.hxx" - #include "util/Macros.hxx" - #include "util/Clamp.hxx" -+#include "util/Math.hxx" - #include "util/ScopeExit.hxx" - #include "Log.hxx" - -@@ -33,8 +34,6 @@ - - #include - --#include -- - struct mpc_decoder_data { - InputStream &is; - DecoderClient *client; -diff --git a/src/mixer/plugins/AlsaMixerPlugin.cxx b/src/mixer/plugins/AlsaMixerPlugin.cxx -index e3d774194..4b916319b 100644 ---- a/src/mixer/plugins/AlsaMixerPlugin.cxx -+++ b/src/mixer/plugins/AlsaMixerPlugin.cxx -@@ -26,6 +26,7 @@ - #include "event/Call.hxx" - #include "util/ASCII.hxx" - #include "util/Domain.hxx" -+#include "util/Math.hxx" - #include "util/RuntimeError.hxx" - #include "Log.hxx" - -@@ -35,8 +36,6 @@ extern "C" { - - #include - --#include -- - #define VOLUME_MIXER_ALSA_DEFAULT "default" - #define VOLUME_MIXER_ALSA_CONTROL_DEFAULT "PCM" - static constexpr unsigned VOLUME_MIXER_ALSA_INDEX_DEFAULT = 0; -diff --git a/src/mixer/plugins/SoftwareMixerPlugin.cxx b/src/mixer/plugins/SoftwareMixerPlugin.cxx -index c394a9628..9c48279f9 100644 ---- a/src/mixer/plugins/SoftwareMixerPlugin.cxx -+++ b/src/mixer/plugins/SoftwareMixerPlugin.cxx -@@ -22,8 +22,9 @@ - #include "filter/plugins/VolumeFilterPlugin.hxx" - #include "pcm/Volume.hxx" - -+#include -+ - #include --#include - - class SoftwareMixer final : public Mixer { - Filter *filter = nullptr; -@@ -73,7 +74,7 @@ PercentVolumeToSoftwareVolume(unsigned volume) noexcept - if (volume >= 100) - return PCM_VOLUME_1; - else if (volume > 0) -- return pcm_float_to_volume((exp(volume / 25.0) - 1) / -+ return pcm_float_to_volume((std::exp(volume / 25.0) - 1) / - (54.5981500331F - 1)); - else - return 0; -diff --git a/src/util/Math.hxx b/src/util/Math.hxx -index bd856f5a9..2206b045f 100644 ---- a/src/util/Math.hxx -+++ b/src/util/Math.hxx -@@ -31,10 +31,16 @@ - #define MATH_HXX - - #ifdef __UCLIBC__ -+#include - #include -+using boost::math::iround; -+using boost::math::pow; - using boost::math::lround; -+#define lrint iround - #else - #include -+using std::pow; -+using std::lrint; - using std::lround; - #endif -