Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libopenmpt for openSUSE:Factory checked in at 2025-12-20 21:45:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libopenmpt (Old) and /work/SRC/openSUSE:Factory/.libopenmpt.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libopenmpt" Sat Dec 20 21:45:01 2025 rev:57 rq:1323566 version:0.8.4 Changes: -------- --- /work/SRC/openSUSE:Factory/libopenmpt/libopenmpt.changes 2025-09-15 19:54:21.602768067 +0200 +++ /work/SRC/openSUSE:Factory/.libopenmpt.new.1928/libopenmpt.changes 2025-12-20 21:45:02.967616492 +0100 @@ -1,0 +2,14 @@ +Thu Dec 18 19:43:48 UTC 2025 - Mia Herkt <[email protected]> + +- Update to 0.8.4: + * openmpt123: libsndfile float32 output was broken since 0.8.1. + * [Bug] build/download_externals.txt was missing from makefile + and msvc source archives. + * PT36: Some MODs with samples larger than 64k inside PT36 + containers were not read correctly. + * IT: Files are no longer interpreted as ModPlug-made (thus + disabling all compatibility settings) just because instrument + extensions are found (no such files are currently known to + exist in the wild). + +------------------------------------------------------------------- Old: ---- libopenmpt-0.8.3+release.autotools.tar.gz New: ---- libopenmpt-0.8.4+release.autotools.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libopenmpt.spec ++++++ --- /var/tmp/diff_new_pack.Ml8U57/_old 2025-12-20 21:45:05.579724567 +0100 +++ /var/tmp/diff_new_pack.Ml8U57/_new 2025-12-20 21:45:05.599725394 +0100 @@ -21,7 +21,7 @@ %define libopenmpt_modplug_version 0.8.9.0 Name: libopenmpt -Version: 0.8.3 +Version: 0.8.4 Release: 0 Summary: C++ and C library to decode tracker music files License: BSD-3-Clause ++++++ libopenmpt-0.8.3+release.autotools.tar.gz -> libopenmpt-0.8.4+release.autotools.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/README.md new/libopenmpt-0.8.4+release.autotools/README.md --- old/libopenmpt-0.8.3+release.autotools/README.md 2023-10-02 18:30:18.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/README.md 2025-10-03 23:18:44.000000000 +0200 @@ -62,14 +62,7 @@ - In order to build OpenMPT for Windows XP, the Visual Studio 2017 XP targeting toolset as well as the Windows 8.1 SDK need to be installed. The - SDK is optionally included with Visual Studio 2017, but must be separately - installed with later Visual Studio versions. - - The Windows 8.1 SDK is available from - <https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/> or - directly from - <https://download.microsoft.com/download/B/0/C/B0C80BA3-8AD6-4958-810B-6882485230B5/standalonesdk/sdksetup.exe> - . + SDK is optionally included with Visual Studio 2017. - Microsoft Foundation Classes (MFC) are required to build OpenMPT. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/common/mptTime.h new/libopenmpt-0.8.4+release.autotools/common/mptTime.h --- old/libopenmpt-0.8.3+release.autotools/common/mptTime.h 2025-03-15 20:23:09.000000000 +0100 +++ new/libopenmpt-0.8.4+release.autotools/common/mptTime.h 2025-12-09 10:08:53.000000000 +0100 @@ -12,6 +12,11 @@ #include "openmpt/all/BuildSettings.hpp" +#if defined(MODPLUG_TRACKER) +#include "../misc/mptOS.h" +#include <stdexcept> +#endif + #if MPT_CXX_AT_LEAST(20) && !defined(MPT_LIBCXX_QUIRK_NO_CHRONO) && !defined(MPT_LIBCXX_QUIRK_NO_CHRONO_DATE) #include <chrono> #include <exception> @@ -274,6 +279,13 @@ #if !defined(MPT_LIBCXX_QUIRK_CHRONO_DATE_NO_ZONED_TIME) try { +#if defined(MODPLUG_TRACKER) + if(mpt::OS::Windows::IsWine()) + { + // <https://bugs.openmpt.org/view.php?id=1933> + throw std::runtime_error("zoned_time is blacklisted on Wine"); + } +#endif std::chrono::time_point<std::chrono::local_t, std::chrono::seconds> local_tp = std::chrono::local_days { std::chrono::year{ local.year } / @@ -300,6 +312,13 @@ #if !defined(MPT_LIBCXX_QUIRK_CHRONO_DATE_NO_ZONED_TIME) try { +#if defined(MODPLUG_TRACKER) + if(mpt::OS::Windows::IsWine()) + { + // <https://bugs.openmpt.org/view.php?id=1933> + throw std::runtime_error("zoned_time is blacklisted on Wine"); + } +#endif std::chrono::zoned_time local_tp{ std::chrono::current_zone(), tp }; std::chrono::local_days dp = std::chrono::floor<std::chrono::days>(local_tp.get_local_time()); std::chrono::year_month_day ymd{dp}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/common/serialization_utils.h new/libopenmpt-0.8.4+release.autotools/common/serialization_utils.h --- old/libopenmpt-0.8.3+release.autotools/common/serialization_utils.h 2025-07-03 22:31:07.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/common/serialization_utils.h 2025-11-10 16:37:50.000000000 +0100 @@ -174,7 +174,7 @@ template <class T> inline void WriteItem(std::ostream& oStrm, const T& data) { - static_assert(std::is_trivial<T>::value == true, ""); + static_assert(std::is_trivially_default_constructible<T>::value && std::is_trivially_copyable<T>::value, ""); Binarywrite(oStrm, data); } @@ -237,7 +237,7 @@ template <class T> inline void ReadItem(std::istream& iStrm, T& data, const std::size_t nSize) { - static_assert(std::is_trivial<T>::value == true, ""); + static_assert(std::is_trivially_default_constructible<T>::value && std::is_trivially_copyable<T>::value, ""); if (nSize == sizeof(T) || nSize == invalidDatasize) Binaryread(iStrm, data); else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/common/version.cpp new/libopenmpt-0.8.4+release.autotools/common/version.cpp --- old/libopenmpt-0.8.3+release.autotools/common/version.cpp 2024-12-31 11:10:08.000000000 +0100 +++ new/libopenmpt-0.8.4+release.autotools/common/version.cpp 2025-10-14 18:41:38.000000000 +0200 @@ -626,7 +626,7 @@ "Thanks to:\n" "\n" "Konstanty for the XMMS-ModPlug resampling implementation\n" - "http://modplug-xmms.sourceforge.net/\n" + "https://modplug-xmms.sourceforge.net/\n" "\n" #ifdef MODPLUG_TRACKER "Geraint Luff for Signalsmith Stretch\n" @@ -638,7 +638,7 @@ #endif #ifdef MPT_WITH_VST "Hermann Seib for his example VST Host implementation\n" - "http://www.hermannseib.com/english/vsthost.htm\n" + "https://www.hermannseib.com/english/vsthost.htm\n" "\n" "Benjamin \"BeRo\" Rosseaux for his independent VST header\n" "https://blog.rosseaux.net/\n" @@ -646,7 +646,7 @@ #endif "Storlek for all the IT compatibility hints and testcases\n" "as well as the IMF, MDL, OKT and ULT loaders\n" - "http://schismtracker.org/\n" + "https://schismtracker.org/\n" "\n" "Sergei \"x0r\" Kolzun for various hints on Scream Tracker 2 compatibility\n" "https://github.com/viiri/st2play\n" @@ -693,7 +693,7 @@ #endif #ifdef MPT_WITH_PORTAUDIO "PortAudio contributors\n" - "http://www.portaudio.com/\n" + "https://www.portaudio.com/\n" "\n" #endif #ifdef MPT_WITH_RTAUDIO @@ -774,6 +774,9 @@ "Nobuyuki for file icon\n" "https://github.com/nobuyukinyuu/\n" "\n" + "ESI Audiotechnik GmbH for testing hardware\n" + "https://www.esi-audio.com/\n" + "\n" #endif "Daniel Collin (emoon/TBL) for providing test infrastructure\n" "https://mastodon.gamedev.place/@daniel_collin\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/common/versionNumber.h new/libopenmpt-0.8.4+release.autotools/common/versionNumber.h --- old/libopenmpt-0.8.3+release.autotools/common/versionNumber.h 2025-09-06 15:30:03.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/common/versionNumber.h 2025-12-14 13:25:24.000000000 +0100 @@ -15,5 +15,5 @@ // Version definitions. The only thing that needs to be changed when changing version number. #define VER_MAJORMAJOR 1 #define VER_MAJOR 32 -#define VER_MINOR 04 +#define VER_MINOR 06 #define VER_MINORMINOR 00 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/configure new/libopenmpt-0.8.4+release.autotools/configure --- old/libopenmpt-0.8.3+release.autotools/configure 2025-09-06 17:39:02.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/configure 2025-12-14 14:45:37.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for libopenmpt 0.8.3+release.autotools. +# Generated by GNU Autoconf 2.71 for libopenmpt 0.8.4+release.autotools. # # Report bugs to <https://bugs.openmpt.org/>. # @@ -621,8 +621,8 @@ # Identity of this package. PACKAGE_NAME='libopenmpt' PACKAGE_TARNAME='libopenmpt' -PACKAGE_VERSION='0.8.3+release.autotools' -PACKAGE_STRING='libopenmpt 0.8.3+release.autotools' +PACKAGE_VERSION='0.8.4+release.autotools' +PACKAGE_STRING='libopenmpt 0.8.4+release.autotools' PACKAGE_BUGREPORT='https://bugs.openmpt.org/' PACKAGE_URL='https://lib.openmpt.org/' @@ -1514,7 +1514,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 libopenmpt 0.8.3+release.autotools to adapt to many kinds of systems. +\`configure' configures libopenmpt 0.8.4+release.autotools to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1585,7 +1585,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libopenmpt 0.8.3+release.autotools:";; + short | recursive ) echo "Configuration of libopenmpt 0.8.4+release.autotools:";; esac cat <<\_ACEOF @@ -1772,7 +1772,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libopenmpt configure 0.8.3+release.autotools +libopenmpt configure 0.8.4+release.autotools generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2152,7 +2152,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libopenmpt $as_me 0.8.3+release.autotools, which was +It was created by libopenmpt $as_me 0.8.4+release.autotools, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3648,7 +3648,7 @@ # Define the identity of the package. PACKAGE='libopenmpt' - VERSION='0.8.3+release.autotools' + VERSION='0.8.4+release.autotools' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -23188,13 +23188,13 @@ -printf "%s\n" "#define MPT_SVNURL \"https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.8.3\"" >>confdefs.h +printf "%s\n" "#define MPT_SVNURL \"https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.8.4\"" >>confdefs.h -printf "%s\n" "#define MPT_SVNVERSION \"24141\"" >>confdefs.h +printf "%s\n" "#define MPT_SVNVERSION \"24629\"" >>confdefs.h -printf "%s\n" "#define MPT_SVNDATE \"2025-09-06T13:42:08.986313Z\"" >>confdefs.h +printf "%s\n" "#define MPT_SVNDATE \"2025-12-14T12:38:40.115071Z\"" >>confdefs.h printf "%s\n" "#define MPT_PACKAGE true" >>confdefs.h @@ -27166,7 +27166,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libopenmpt $as_me 0.8.3+release.autotools, which was +This file was extended by libopenmpt $as_me 0.8.4+release.autotools, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -27226,7 +27226,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -libopenmpt config.status 0.8.3+release.autotools +libopenmpt config.status 0.8.4+release.autotools 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/libopenmpt-0.8.3+release.autotools/configure.ac new/libopenmpt-0.8.4+release.autotools/configure.ac --- old/libopenmpt-0.8.3+release.autotools/configure.ac 2025-09-06 17:38:36.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/configure.ac 2025-12-14 14:45:03.000000000 +0100 @@ -1,4 +1,4 @@ -AC_INIT([libopenmpt], [0.8.3+release.autotools], [https://bugs.openmpt.org/], [libopenmpt], [https://lib.openmpt.org/]) +AC_INIT([libopenmpt], [0.8.4+release.autotools], [https://bugs.openmpt.org/], [libopenmpt], [https://lib.openmpt.org/]) AC_PREREQ([2.69]) # we do want 2.70, but distributions are not ready yet #AC_PREREQ([2.70]) @@ -88,9 +88,9 @@ AC_SUBST([LIBOPENMPT_LTVER_REVISION]) AC_SUBST([LIBOPENMPT_LTVER_AGE]) -AC_DEFINE([MPT_SVNURL], ["https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.8.3"], [svn version]) -AC_DEFINE([MPT_SVNVERSION], ["24141"], [svn version]) -AC_DEFINE([MPT_SVNDATE], ["2025-09-06T13:42:08.986313Z"], [svn date]) +AC_DEFINE([MPT_SVNURL], ["https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.8.4"], [svn version]) +AC_DEFINE([MPT_SVNVERSION], ["24629"], [svn version]) +AC_DEFINE([MPT_SVNDATE], ["2025-12-14T12:38:40.115071Z"], [svn date]) AC_DEFINE([MPT_PACKAGE], [true], [is package]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/doc/libopenmpt/changelog.md new/libopenmpt-0.8.4+release.autotools/doc/libopenmpt/changelog.md --- old/libopenmpt-0.8.3+release.autotools/doc/libopenmpt/changelog.md 2025-09-06 15:42:06.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/doc/libopenmpt/changelog.md 2025-12-14 13:38:21.000000000 +0100 @@ -5,6 +5,24 @@ For fully detailed change log, please see the source repository directly. This is just a high-level summary. +### libopenmpt 0.8.4 (2025-12-14) + + * [**Bug**] openmpt123: libsndfile float32 output was broken since 0.8.1. + * [**Bug**] `build/download_externals.txt` was missing from `makefile` and + `msvc` source archives. + + * PT36: Some MODs with samples larger than 64k inside PT36 containers were not + read correctly. + * IT: Files are no longer interpreted as ModPlug-made (thus disabling all + compatibility settings) just because instrument extensions are found (no + such files are currently known to exist in the wild). + + * mpg123: Update to v1.33.3 (2025-10-05). + * miniz: Update to v3.1.0 (2025-09-21). + * minimp3: Update to fork + <https://github.com/manxorist/minimp3/releases/tag/openmpt-2025-11-07-v5> + commit ec51f21ef59ecf6d87bdcb028fe8f76fe761e0fe (2025-11-07). + ### libopenmpt 0.8.3 (2025-09-06) * [**Bug**] libopenmpt is now compatible with most non-standard builds of diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/libopenmpt/libopenmpt_impl.cpp new/libopenmpt-0.8.4+release.autotools/libopenmpt/libopenmpt_impl.cpp --- old/libopenmpt-0.8.3+release.autotools/libopenmpt/libopenmpt_impl.cpp 2025-05-27 20:26:27.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/libopenmpt/libopenmpt_impl.cpp 2025-12-06 20:16:48.000000000 +0100 @@ -218,7 +218,14 @@ } else if ( key == "library_version_prerel" ) { return mpt::format_value_default<std::string>(OPENMPT_API_VERSION_PREREL); } else if ( key == "library_version_is_release" ) { +#if MPT_COMPILER_CLANG +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunreachable-code" +#endif // MPT_COMPILER_CLANG return ( std::string(OPENMPT_API_VERSION_PREREL).length() == 0 ) ? "1" : "0"; +#if MPT_COMPILER_CLANG +#pragma clang diagnostic push +#endif // MPT_COMPILER_CLANG } else if ( key == "library_features" ) { return get_library_features_string(); } else if ( key == "core_version" ) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/libopenmpt/libopenmpt_version.h new/libopenmpt-0.8.4+release.autotools/libopenmpt/libopenmpt_version.h --- old/libopenmpt-0.8.3+release.autotools/libopenmpt/libopenmpt_version.h 2025-09-06 15:42:06.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/libopenmpt/libopenmpt_version.h 2025-12-14 13:38:21.000000000 +0100 @@ -21,7 +21,7 @@ /*! \brief libopenmpt minor version number */ #define OPENMPT_API_VERSION_MINOR 8 /*! \brief libopenmpt patch version number */ -#define OPENMPT_API_VERSION_PATCH 3 +#define OPENMPT_API_VERSION_PATCH 4 /*! \brief libopenmpt pre-release tag */ #define OPENMPT_API_VERSION_PREREL "" /*! \brief libopenmpt pre-release flag */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/libopenmpt/libopenmpt_version.mk new/libopenmpt-0.8.4+release.autotools/libopenmpt/libopenmpt_version.mk --- old/libopenmpt-0.8.3+release.autotools/libopenmpt/libopenmpt_version.mk 2025-09-06 15:42:06.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/libopenmpt/libopenmpt_version.mk 2025-12-14 13:38:21.000000000 +0100 @@ -1,8 +1,8 @@ LIBOPENMPT_VERSION_MAJOR=0 LIBOPENMPT_VERSION_MINOR=8 -LIBOPENMPT_VERSION_PATCH=3 +LIBOPENMPT_VERSION_PATCH=4 LIBOPENMPT_VERSION_PREREL= LIBOPENMPT_LTVER_CURRENT=5 -LIBOPENMPT_LTVER_REVISION=3 +LIBOPENMPT_LTVER_REVISION=4 LIBOPENMPT_LTVER_AGE=5 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/man/openmpt123.1 new/libopenmpt-0.8.4+release.autotools/man/openmpt123.1 --- old/libopenmpt-0.8.3+release.autotools/man/openmpt123.1 2025-09-06 17:38:35.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/man/openmpt123.1 2025-12-14 14:45:01.000000000 +0100 @@ -1,12 +1,12 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. -.TH OPENMPT123 "1" "September 2025" "openmpt123 v0.8.3" "User Commands" +.TH OPENMPT123 "1" "December 2025" "openmpt123 v0.8.4" "User Commands" .SH NAME openmpt123 - command line module music player based on libopenmpt .SH SYNOPSIS .B openmpt123 [\fI\,options\/\fR] [\fI\,--\/\fR] \fI\,file1 \/\fR[\fI\,file2\/\fR] ... .SH DESCRIPTION -openmpt123 v0.8.3, libopenmpt 0.8.3+r24141 (OpenMPT 1.32.04.00 https://source.openmpt.org/svn/openmpt/tags/libopenmpt\-0.8.3@24141 (2025\-09\-06T13:42:08.986313Z) clean) +openmpt123 v0.8.4, libopenmpt 0.8.4+r24629 (OpenMPT 1.32.06.00 https://source.openmpt.org/svn/openmpt/tags/libopenmpt\-0.8.4@24629 (2025\-12\-14T12:38:40.115071Z) clean) Copyright \(co 2013\-2025 OpenMPT Project Developers and Contributors <https://lib.openmpt.org/> .PP openmpt123 plays module music files. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/openmpt123/openmpt123_sndfile.hpp new/libopenmpt-0.8.4+release.autotools/openmpt123/openmpt123_sndfile.hpp --- old/libopenmpt-0.8.3+release.autotools/openmpt123/openmpt123_sndfile.hpp 2025-06-09 18:42:58.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/openmpt123/openmpt123_sndfile.hpp 2025-12-06 13:48:29.000000000 +0100 @@ -124,7 +124,6 @@ return matched_result( format, format_info, subformat_info, match_mode ); } } - break; if ( format_info.extension && ( mpt::transcode<std::string>( sndfile_encoding, extension ) == format_info.extension ) ) { if ( flags.use_float && ( subformat_info.format == SF_FORMAT_FLOAT ) ) { return matched_result( format, format_info, subformat_info, match_mode ); @@ -137,15 +136,14 @@ if ( subformat_info.extension && ( mpt::transcode<std::string>( sndfile_encoding, extension ) == subformat_info.extension ) ) { if ( flags.use_float && ( subformat_info.format == SF_FORMAT_FLOAT || subformat_info.format == SF_FORMAT_DOUBLE ) ) { return matched_result( format, format_info, subformat_info, match_mode ); - } else if ( !flags.use_float && ( subformat_info.format & ( subformat_info.format == SF_FORMAT_PCM_16 || subformat_info.format == SF_FORMAT_PCM_24 || subformat_info.format == SF_FORMAT_PCM_32 ) ) ) { + } else if ( !flags.use_float && ( subformat_info.format == SF_FORMAT_PCM_16 || subformat_info.format == SF_FORMAT_PCM_24 || subformat_info.format == SF_FORMAT_PCM_32 ) ) { return matched_result( format, format_info, subformat_info, match_mode ); } } - break; if ( format_info.extension && ( mpt::transcode<std::string>( sndfile_encoding, extension ) == format_info.extension ) ) { if ( flags.use_float && ( subformat_info.format == SF_FORMAT_FLOAT || subformat_info.format == SF_FORMAT_DOUBLE ) ) { return matched_result( format, format_info, subformat_info, match_mode ); - } else if ( !flags.use_float && ( subformat_info.format & ( subformat_info.format == SF_FORMAT_PCM_16 || subformat_info.format == SF_FORMAT_PCM_24 || subformat_info.format == SF_FORMAT_PCM_32 ) ) ) { + } else if ( !flags.use_float && ( subformat_info.format == SF_FORMAT_PCM_16 || subformat_info.format == SF_FORMAT_PCM_24 || subformat_info.format == SF_FORMAT_PCM_32 ) ) { return matched_result( format, format_info, subformat_info, match_mode ); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/soundlib/Fastmix.cpp new/libopenmpt-0.8.4+release.autotools/soundlib/Fastmix.cpp --- old/libopenmpt-0.8.3+release.autotools/soundlib/Fastmix.cpp 2025-07-12 15:04:38.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/soundlib/Fastmix.cpp 2025-10-17 13:39:28.000000000 +0200 @@ -343,6 +343,8 @@ pOfsL = &mixState.nVolDecayL; } } +#else // NO_PLUGINS + MPT_UNUSED(channel); #endif // NO_PLUGINS return std::make_pair(pOfsL, pOfsR); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/soundlib/Load_it.cpp new/libopenmpt-0.8.4+release.autotools/soundlib/Load_it.cpp --- old/libopenmpt-0.8.3+release.autotools/soundlib/Load_it.cpp 2025-01-15 18:23:23.000000000 +0100 +++ new/libopenmpt-0.8.4+release.autotools/soundlib/Load_it.cpp 2025-09-09 19:24:42.000000000 +0200 @@ -997,7 +997,6 @@ // Load instrument and song extensions. const bool hasExtendedInstrumentProperties = LoadExtendedInstrumentProperties(file); - interpretModPlugMade |= hasExtendedInstrumentProperties; if(interpretModPlugMade && !isBeRoTracker) { m_playBehaviour.reset(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/soundlib/Load_pt36.cpp new/libopenmpt-0.8.4+release.autotools/soundlib/Load_pt36.cpp --- old/libopenmpt-0.8.3+release.autotools/soundlib/Load_pt36.cpp 2024-07-14 01:44:35.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/soundlib/Load_pt36.cpp 2025-11-09 17:11:32.000000000 +0100 @@ -122,6 +122,7 @@ return true; } + const auto startPos = file.GetPosition(); FileReader chunk = file.ReadChunk(iffHead.chunksize); if(!chunk.IsValid()) { @@ -147,7 +148,14 @@ break; case PT36IffChunk::idPTDT: - ok = ReadMOD(chunk, loadFlags); + // Some (all?) PT36 files with samples larger than 64k report incorrect chunk sizes (off by 65536 for each large sample). + // In those broken files, the PTDT chunk is the last chunk in the file anway, + // so we just pass the entire chunk plus the maximum possible extra size to the MOD loader. + // Example: megadream5 by Thunder + { + FileReader moduleChunk = file.GetChunkAt(startPos, iffHead.chunksize + 65536 * 31); + ok = ReadMOD(moduleChunk, loadFlags); + } break; } } while(file.ReadStruct(iffHead)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/soundlib/MIDIMacroParser.cpp new/libopenmpt-0.8.4+release.autotools/soundlib/MIDIMacroParser.cpp --- old/libopenmpt-0.8.3+release.autotools/soundlib/MIDIMacroParser.cpp 2024-12-01 15:23:38.000000000 +0100 +++ new/libopenmpt-0.8.4+release.autotools/soundlib/MIDIMacroParser.cpp 2025-10-17 13:40:31.000000000 +0200 @@ -95,6 +95,9 @@ MIDIMacroParser::MIDIMacroParser(const CSoundFile &sndFile, PlayState *playState, CHANNELINDEX nChn, bool isSmooth, const mpt::span<const char> macro, mpt::span<uint8> out, uint8 param, PLUGINDEX plugin) : m_data{out} { +#ifdef NO_PLUGINS + MPT_UNUSED(plugin); +#endif // NO_PLUGINS // Need to be able to add potentially missing F7 (End Of SysEx) MPT_ASSERT(out.size() > macro.size()); ModChannel *chn = (playState && nChn < playState->Chn.size()) ? &playState->Chn[nChn] : nullptr; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/soundlib/Snd_fx.cpp new/libopenmpt-0.8.4+release.autotools/soundlib/Snd_fx.cpp --- old/libopenmpt-0.8.3+release.autotools/soundlib/Snd_fx.cpp 2025-07-12 23:07:46.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/soundlib/Snd_fx.cpp 2025-10-17 13:41:56.000000000 +0200 @@ -5660,6 +5660,11 @@ channel.nLeftVU = channel.nRightVU = 0xFF; } } +#else // NO_PLUGINS + MPT_UNUSED(chn); + MPT_UNUSED(note); + MPT_UNUSED(volume); + MPT_UNUSED(plugin); #endif // NO_PLUGINS } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/soundlib/Sndfile.cpp new/libopenmpt-0.8.4+release.autotools/soundlib/Sndfile.cpp --- old/libopenmpt-0.8.3+release.autotools/soundlib/Sndfile.cpp 2025-08-31 17:10:41.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/soundlib/Sndfile.cpp 2025-11-15 15:03:20.000000000 +0100 @@ -930,6 +930,7 @@ m_PlayState.m_nNextRow = 0; m_PlayState.m_nTickCount = TICKS_ROW_FINISHED; m_PlayState.m_nBufferCount = 0; + m_PlayState.m_dBufferDiff = 0; m_PlayState.m_nPatternDelay = 0; m_PlayState.m_nFrameDelay = 0; m_PlayState.m_nextPatStartRow = 0; @@ -981,6 +982,7 @@ m_PlayState.m_nPattern = 0; m_PlayState.m_nTickCount = TICKS_ROW_FINISHED; m_PlayState.m_nBufferCount = 0; + m_PlayState.m_dBufferDiff = 0; m_PlayState.m_nPatternDelay = 0; m_PlayState.m_nFrameDelay = 0; m_PlayState.m_nextPatStartRow = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/soundlib/UpgradeModule.cpp new/libopenmpt-0.8.4+release.autotools/soundlib/UpgradeModule.cpp --- old/libopenmpt-0.8.3+release.autotools/soundlib/UpgradeModule.cpp 2025-08-31 17:10:41.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/soundlib/UpgradeModule.cpp 2025-10-17 13:43:13.000000000 +0200 @@ -352,6 +352,7 @@ } } +#ifndef NO_PLUGINS bool hasAnyPlugins = false; if(GetType() & (MOD_TYPE_IT | MOD_TYPE_MPT | MOD_TYPE_XM)) { @@ -365,7 +366,6 @@ } } -#ifndef NO_PLUGINS if(m_dwLastSavedWithVersion < MPT_V("1.22.07.01") && hasAnyPlugins) { // Convert ANSI plugin path names to UTF-8 (irrelevant in probably 99% of all cases anyway, I think I've never seen a VST plugin with a non-ASCII file name) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/soundlib/load_j2b.cpp new/libopenmpt-0.8.4+release.autotools/soundlib/load_j2b.cpp --- old/libopenmpt-0.8.3+release.autotools/soundlib/load_j2b.cpp 2025-06-19 12:53:22.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/soundlib/load_j2b.cpp 2025-09-21 19:04:42.000000000 +0200 @@ -14,12 +14,30 @@ #include "stdafx.h" #include "Loaders.h" +#include "mpt/base/detect.hpp" #include "mpt/io/base.hpp" #if defined(MPT_WITH_ZLIB) #include <zlib.h> #elif defined(MPT_WITH_MINIZ) +#if MPT_COMPILER_MSVC +#pragma warning(push) +#pragma warning(disable : 4505) // unreferenced function with internal linkage has been removed +#elif MPT_COMPILER_GCC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-function" +#elif MPT_COMPILER_CLANG +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-function" +#endif #include <miniz/miniz.h> +#if MPT_COMPILER_MSVC +//#pragma warning(pop) +#elif MPT_COMPILER_GCC +#pragma GCC diagnostic pop +#elif MPT_COMPILER_CLANG +#pragma clang diagnostic pop +#endif #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/soundlib/plugins/PluginManager.cpp new/libopenmpt-0.8.4+release.autotools/soundlib/plugins/PluginManager.cpp --- old/libopenmpt-0.8.3+release.autotools/soundlib/plugins/PluginManager.cpp 2025-07-20 18:31:16.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/soundlib/plugins/PluginManager.cpp 2025-10-18 11:15:14.000000000 +0200 @@ -565,6 +565,10 @@ CVstPluginManager::ReportPlugException(MPT_UFORMAT("Exception {} while trying to load plugin \"{}\"!\n")(mpt::ufmt::HEX0<8>(exception), fileName)); } +#else // !MPT_WITH_VST + + MPT_UNUSED(maskCrashes); + #endif // MPT_WITH_VST // Now it should be safe to assume that this plugin loaded properly. :) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/soundlib/plugins/dmo/DMOUtils.cpp new/libopenmpt-0.8.4+release.autotools/soundlib/plugins/dmo/DMOUtils.cpp --- old/libopenmpt-0.8.3+release.autotools/soundlib/plugins/dmo/DMOUtils.cpp 2024-03-16 21:56:54.000000000 +0100 +++ new/libopenmpt-0.8.4+release.autotools/soundlib/plugins/dmo/DMOUtils.cpp 2025-10-17 14:04:26.000000000 +0200 @@ -57,7 +57,7 @@ } // namespace DMO #else -MPT_MSVC_WORKAROUND_LNK4221(Distortion) +MPT_MSVC_WORKAROUND_LNK4221(DMOUtils) #endif // !NO_PLUGINS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/src/mpt/arch/x86_amd64.hpp new/libopenmpt-0.8.4+release.autotools/src/mpt/arch/x86_amd64.hpp --- old/libopenmpt-0.8.3+release.autotools/src/mpt/arch/x86_amd64.hpp 2025-03-21 13:27:09.000000000 +0100 +++ new/libopenmpt-0.8.4+release.autotools/src/mpt/arch/x86_amd64.hpp 2025-10-16 13:12:53.000000000 +0200 @@ -1228,7 +1228,11 @@ Virtualized = true; } } - if (VendorString.a >= 0x0000'0007u) { + if ((VendorString.a >= 0x0000'0007u) && Features.supports(feature::avx)) { + // Some Skylake Celerons wrongly report BMI1 even though they do not support it. + // They also do not support AVX. + // Guard BMI1/BMI2 with AVX, as all known CPUs with BMI1 also support AVX. + // See <https://mastodon.gamedev.place/@rygorous/115375820395748540>. cpuid_result ExtendedFeatures = cpuidex(0x0000'0007u, 0x0000'0000u); // clang-format off Features |= (ExtendedFeatures.b & (1u << 3)) ? (feature::bmi1) : feature::none; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/src/mpt/base/detect_os.hpp new/libopenmpt-0.8.4+release.autotools/src/mpt/base/detect_os.hpp --- old/libopenmpt-0.8.3+release.autotools/src/mpt/base/detect_os.hpp 2025-08-14 15:32:54.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/src/mpt/base/detect_os.hpp 2025-10-06 08:06:16.000000000 +0200 @@ -83,6 +83,7 @@ // MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x0e) // NTDDI_WIN11_ZN 23H2 Zinc 23H2 10.0.26100.? NTDDI_WIN11_GE // MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x0f) // NTDDI_WIN11_GA 24H1 Gallium 24H1 10.0.26100.? NTDDI_WIN11_GE #define MPT_WIN_11_24H2 MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x10) // NTDDI_WIN11_GE Win11.24H2 26100 Hudson Valley Germanium R1 Germanium 24H2 2024 Update 10.0.26100.? NTDDI_WIN11_GE +// MPT_WIN_11_25H2 MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x10) // Win11.24H2 26200 ? ? ? 25H2 2025 Update 10.0.26200.? NTDDI_WIN11_GE // MPT_WIN_API_DESKTOP : Windows 8/10 Desktop Application (Win32) // MPT_WIN_API_UNIVERSAL : Windows 10 Store App / Universal App diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/src/mpt/base/detect_quirks.hpp new/libopenmpt-0.8.4+release.autotools/src/mpt/base/detect_quirks.hpp --- old/libopenmpt-0.8.3+release.autotools/src/mpt/base/detect_quirks.hpp 2025-07-03 06:46:46.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/src/mpt/base/detect_quirks.hpp 2025-11-10 22:12:09.000000000 +0100 @@ -401,7 +401,7 @@ -#if MPT_OS_ANDROID && MPT_LIBCXX_LLVM_BEFORE(17000) +#if MPT_OS_ANDROID && MPT_LIBCXX_LLVM_BEFORE(170000) #define MPT_LIBCXX_QUIRK_NO_NUMBERS #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/src/mpt/base/float.hpp new/libopenmpt-0.8.4+release.autotools/src/mpt/base/float.hpp --- old/libopenmpt-0.8.3+release.autotools/src/mpt/base/float.hpp 2024-08-16 10:53:24.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/src/mpt/base/float.hpp 2025-11-10 16:34:34.000000000 +0100 @@ -33,7 +33,7 @@ } // namespace float_literals // fp double -using double_float = float; +using double_float = double; namespace float_literals { MPT_CONSTEVAL double_float operator""_fd(long double lit) noexcept { return static_cast<double_float>(lit); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/src/mpt/osinfo/windows_version.hpp new/libopenmpt-0.8.4+release.autotools/src/mpt/osinfo/windows_version.hpp --- old/libopenmpt-0.8.3+release.autotools/src/mpt/osinfo/windows_version.hpp 2025-08-14 15:32:23.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/src/mpt/osinfo/windows_version.hpp 2025-10-06 08:06:16.000000000 +0200 @@ -131,7 +131,10 @@ static mpt::osinfo::windows::Version FromSDK() noexcept { // Initialize to used SDK version -#if MPT_WINNT_AT_LEAST(MPT_WIN_11_24H2) +#if 0 +//#elif MPT_WINNT_AT_LEAST(MPT_WIN_11_25H2) +// return mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack(0, 0), 26200, 0); +#elif MPT_WINNT_AT_LEAST(MPT_WIN_11_24H2) return mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack(0, 0), 26100, 0); //#elif MPT_WINNT_AT_LEAST(MPT_WIN_11_23H2) // return mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack(0, 0), 22631, 0); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.8.3+release.autotools/test/test.cpp new/libopenmpt-0.8.4+release.autotools/test/test.cpp --- old/libopenmpt-0.8.3+release.autotools/test/test.cpp 2025-05-08 11:52:08.000000000 +0200 +++ new/libopenmpt-0.8.4+release.autotools/test/test.cpp 2025-09-21 19:05:04.000000000 +0200 @@ -111,7 +111,24 @@ #include <zlib.h> #elif defined(MPT_WITH_MINIZ) #define MINIZ_NO_ZLIB_COMPATIBLE_NAMES +#if MPT_COMPILER_MSVC +#pragma warning(push) +#pragma warning(disable : 4505) // unreferenced function with internal linkage has been removed +#elif MPT_COMPILER_GCC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-function" +#elif MPT_COMPILER_CLANG +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-function" +#endif #include <miniz/miniz.h> +#if MPT_COMPILER_MSVC +//#pragma warning(pop) +#elif MPT_COMPILER_GCC +#pragma GCC diagnostic pop +#elif MPT_COMPILER_CLANG +#pragma clang diagnostic pop +#endif #endif #define MPT_TEST_HAS_FILESYSTEM 1
