Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package mt32emu for openSUSE:Factory checked in at 2026-11-03 18:32:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mt32emu (Old) and /work/SRC/openSUSE:Factory/.mt32emu.new.1257 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mt32emu" Tue Nov 3 18:32:12 2026 rev:18 rq:1394743 version:2.8.5 Changes: -------- --- /work/SRC/openSUSE:Factory/mt32emu/mt32emu.changes 2026-06-08 14:28:03.887888663 +0200 +++ /work/SRC/openSUSE:Factory/.mt32emu.new.1257/mt32emu.changes 2026-11-03 18:32:14.533555071 +0100 @@ -1,0 +2,15 @@ +Tue Nov 3 16:21:57 UTC 2026 - Martin Hauke <[email protected]> + +- Update to 2.8.5 + * Fixed a portability issue in unit tests. (#150). + +------------------------------------------------------------------- +Tue Nov 3 09:51:42 UTC 2026 - Martin Hauke <[email protected]> + +- Update to 2.8.4 + * Fixed a heap buffer overflow in the MIDI stream parser that + occurred when the client submitted a fragmented SysEx message + with the first fragment exceeding the maximum supported size. + (#149). + +------------------------------------------------------------------- Old: ---- munt-libmt32emu_2_8_3.tar.gz New: ---- munt-libmt32emu_2_8_5.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mt32emu.spec ++++++ --- /var/tmp/diff_new_pack.I1nUBT/_old 2026-11-03 18:32:16.833650210 +0100 +++ /var/tmp/diff_new_pack.I1nUBT/_new 2026-11-03 18:32:16.835650293 +0100 @@ -17,10 +17,10 @@ %define s_name munt-lib%{name}_%{s_ver} -%define s_ver 2_8_3 +%define s_ver 2_8_5 %define sover 2 Name: mt32emu -Version: 2.8.3 +Version: 2.8.5 Release: 0 Summary: An emulator of the Roland MT-32, CM-32L and LAPC-I synthesiser modules License: GPL-3.0-or-later AND LGPL-2.1-or-later ++++++ munt-libmt32emu_2_8_3.tar.gz -> munt-libmt32emu_2_8_5.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/.github/workflows/build-appimages.yml new/munt-libmt32emu_2_8_5/.github/workflows/build-appimages.yml --- old/munt-libmt32emu_2_8_3/.github/workflows/build-appimages.yml 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/.github/workflows/build-appimages.yml 2026-11-03 13:34:11.000000000 +0100 @@ -8,21 +8,20 @@ runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Checkout Qt uses: actions/download-artifact@v8 with: - path: ${{ github.workspace }} + name: ${{ vars.QT_ARTIFACT_LINUX }} github-token: ${{ secrets.GITHUB_TOKEN }} - repository: sergm/munt - run-id: 26723258340 - artifact-ids: 7319942079 + repository: munt/munt + run-id: ${{ vars.QT_RUN_LINUX }} - name: Unpack dependencies run: | mkdir qt - tar xf qt_6_11_1_linux_x64.tgz -C qt + tar xf ${{ vars.QT_ARTIFACT_LINUX }} -C qt - name: Get linuxdeploy run: | @@ -94,11 +93,11 @@ - uses: actions/upload-artifact@v7 name: Upload mt32emu_smf2wav-x86_64.AppImage with: - path: ${{ github.workspace }}/mt32emu-smf2wav-x86_64.AppImage + path: mt32emu-smf2wav-x86_64.AppImage archive: false - uses: actions/upload-artifact@v7 name: Upload MT-32_Emulator-x86_64.AppImage with: - path: ${{ github.workspace }}/MT-32_Emulator-x86_64.AppImage + path: MT-32_Emulator-x86_64.AppImage archive: false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/.github/workflows/build-mt32emu-qt.yml new/munt-libmt32emu_2_8_5/.github/workflows/build-mt32emu-qt.yml --- old/munt-libmt32emu_2_8_3/.github/workflows/build-mt32emu-qt.yml 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/.github/workflows/build-mt32emu-qt.yml 2026-11-03 13:34:11.000000000 +0100 @@ -1,7 +1,17 @@ name: Build fat mt32emu-qt binary on: - workflow_dispatch + workflow_dispatch: + inputs: + buildType: + required: true + type: choice + options: + - Snapshot + - Release + +env: + BUILD_SNAPSHOTS: ${{ case(inputs.buildType == 'Snapshot', 'ON', 'OFF') }} jobs: build-mt32emu-qt-windows: @@ -10,108 +20,116 @@ defaults: run: shell: cmd - working-directory: ${{ github.workspace }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - - name: Checkout portaudio + - name: Get Qt static binary uses: actions/download-artifact@v8 with: - name: portaudio-win64.tgz - path: ${{ github.workspace }} + name: ${{ vars.QT_ARTIFACT_WIN }} github-token: ${{ secrets.GITHUB_TOKEN }} - repository: sergm/munt - run-id: 26477630535 + repository: munt/munt + run-id: ${{ vars.QT_RUN_WIN }} - - name: Checkout Qt - uses: actions/download-artifact@v8 - with: - name: qt_6_11_1_win64.tgz - path: ${{ github.workspace }} - github-token: ${{ secrets.GITHUB_TOKEN }} - repository: sergm/munt - run-id: 26478191762 + - name: Unpack Qt + shell: bash + run: | + tar xf ${{ vars.QT_ARTIFACT_WIN }} + echo '#include <mt32emu/mt32emu.h> + #include <QtWidgets> + #undef NOMINMAX + #define NOMINMAX + #include <windows.h>' > pch.h - - name: Unpack dependencies + - name: Get munt icon run: | - mkdir portaudio - tar xf portaudio-win64.tgz -C portaudio - tar xf qt_6_11_1_win64.tgz + C:\msys64\usr\bin\wget -q https://github.com/sergm/munt_devel/raw/refs/heads/master/mt32emu_win32_installer/mt32emu-qt.ico.xz + xz -d mt32emu-qt.ico.xz + + - name: Get portaudio sources + run: git clone --depth=1 --revision=${{ vars.PORTAUDIO_REVISION }} https://github.com/PortAudio/portaudio - - name: Get Jack + - name: Get Jack sources run: | - git clone --depth=1 --revision=refs/tags/v1.9.22 https://github.com/jackaudio/jack2.git + git clone --depth=1 --revision=${{ vars.JACK_REVISION }} https://github.com/jackaudio/jack2.git type NUL > jack2\libjack64.lib - name: Assemble run: > - "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" && - cmake -S . -B build -G Ninja - -D BUILD_SNAPSHOTS=ON + "${{ vars.MSVC_ENV_INIT_SCRIPT }}" + && cmake -S portaudio -B portaudio/build -G Ninja + -D CMAKE_BUILD_TYPE=Release + -D CMAKE_POLICY_VERSION_MINIMUM=3.5 + -D PA_BUILD_SHARED=OFF + -D PA_LIBNAME_ADD_SUFFIX:BOOL=OFF + && cmake --build portaudio/build + && cmake -S . -B build -G Ninja + -D BUILD_SNAPSHOTS=%BUILD_SNAPSHOTS% -D BUILD_TESTING=OFF -D CMAKE_BUILD_TYPE=Release + -D CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING="/INCREMENTAL:NO /FORCE:MULTIPLE" -D CMAKE_MSVC_RUNTIME_LIBRARY:STRING="MultiThreaded$<$<CONFIG:Debug>:Debug>" -D CMAKE_PREFIX_PATH=${{ github.workspace }}/stage - -D JACK_INCLUDE_DIR:PATH=${{ github.workspace }}/jack2/common - -D JACK_LIBRARY:FILEPATH=${{ github.workspace }}/jack2/libjack64.lib - -D PORTAUDIO_INCLUDE_DIR=${{ github.workspace }}/portaudio/stage/include - -D PORTAUDIO_LIBRARY=${{ github.workspace }}/portaudio/stage/lib/portaudio_static_x64.lib + -D JACK_INCLUDE_DIR:PATH=jack2/common + -D JACK_LIBRARY:FILEPATH=jack2/libjack64.lib + -D PORTAUDIO_INCLUDE_DIR=portaudio/include + -D PORTAUDIO_LIBRARY=portaudio/build/portaudio.lib -D libmt32emu_PACKAGE_TYPE=Runtime + -D mt32emu-qt_PRECOMPILED_HEADER:FILEPATH=${{ github.workspace }}/pch.h -D mt32emu-qt_USE_JACK_DYNAMIC_LOADING:BOOL=ON -D munt_WITH_MT32EMU_SMF2WAV:BOOL=OFF - -D munt_WITH_MT32EMU_WIN32DRV:BOOL=OFF && - cmake --build build && - cmake --install build --prefix snapshot --component Runtime + -D munt_WITH_MT32EMU_WIN32DRV:BOOL=OFF + && cmake --build build + && cmake --install build --prefix snapshot --component Runtime - name: Package run: | cd snapshot move bin\mt32emu-qt.exe . - move share\doc . + move ..\mt32emu-qt.ico . + move share\doc\munt docs + move docs\mt32emu-qt\README.md . rmdir /s/q bin share - uses: actions/upload-artifact@v7 name: Upload with: - path: ${{ github.workspace }}/snapshot + path: snapshot name: mt32emu_qt_win11_x64 archive: true build-mt32emu-qt-macos: runs-on: macos-latest - defaults: - run: - shell: bash - working-directory: ${{ github.workspace }} - steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - - name: Checkout portaudio + - name: Get Qt static binary uses: actions/download-artifact@v8 with: - name: portaudio-macos.tgz - path: ${{ github.workspace }} + name: ${{ vars.QT_ARTIFACT_MACOS }} github-token: ${{ secrets.GITHUB_TOKEN }} - repository: sergm/munt - run-id: 26477630535 + repository: munt/munt + run-id: ${{ vars.QT_RUN_MACOS }} - - name: Checkout Qt - uses: actions/download-artifact@v8 - with: - name: qt_6_11_1_macos.tgz - path: ${{ github.workspace }} - github-token: ${{ secrets.GITHUB_TOKEN }} - repository: sergm/munt - run-id: 26478191762 - - - name: Unpack dependencies + - name: Unpack Qt run: | - mkdir portaudio - tar xf portaudio-macos.tgz -C portaudio - tar xf qt_6_11_1_macos.tgz + tar xf ${{ vars.QT_ARTIFACT_MACOS }} + + - name: Get portaudio sources + run: git clone --depth=1 --revision=${{ vars.PORTAUDIO_REVISION }} https://github.com/PortAudio/portaudio + + - name: Configure portaudio + run: > + cmake -S portaudio -B portaudio/build -G Ninja + -D CMAKE_BUILD_TYPE=Release + -D CMAKE_POLICY_VERSION_MINIMUM=3.5 + -D CMAKE_OSX_DEPLOYMENT_TARGET:STRING=${{ vars.OSX_DEPLOYMENT_TARGET }} + -D PA_BUILD_SHARED=OFF + + - name: Build portaudio + run: cmake --build portaudio/build - name: Build Resources run: | @@ -131,24 +149,24 @@ cd .. iconutil -c icns MT32Emu.iconset - - name: Configure + - name: Configure mt32emu-qt run: > cmake -S . -B build -G Ninja - -D BUILD_SNAPSHOTS=ON + -D BUILD_SNAPSHOTS=$BUILD_SNAPSHOTS -D BUILD_TESTING=OFF -D CMAKE_BUILD_TYPE=Release - -D CMAKE_OSX_DEPLOYMENT_TARGET:STRING=13.0 + -D CMAKE_OSX_DEPLOYMENT_TARGET:STRING=${{ vars.OSX_DEPLOYMENT_TARGET }} -D CMAKE_PREFIX_PATH=${{ github.workspace }}/stage -D MACOSX_BUNDLE_ICON_FILE:STRING=MT32Emu.icns - -D PORTAUDIO_INCLUDE_DIR=${{ github.workspace }}/portaudio/stage/include - -D PORTAUDIO_LIBRARY=${{ github.workspace }}/portaudio/stage/lib/libportaudio.a + -D PORTAUDIO_INCLUDE_DIR=portaudio/include + -D PORTAUDIO_LIBRARY=portaudio/build/libportaudio.a -D libmt32emu_PACKAGE_TYPE=Runtime -D munt_WITH_MT32EMU_SMF2WAV:BOOL=OFF - - name: Build + - name: Build mt32emu-qt run: cmake --build build - - name: Package + - name: Package mt32emu-qt run: | cmake --install build --prefix snapshot --component Runtime --strip cd snapshot @@ -161,7 +179,7 @@ tar czf ../mt32emu_qt_macos_arm64.tgz * - uses: actions/upload-artifact@v7 - name: Upload + name: Upload mt32emu-qt with: - path: ${{ github.workspace }}/mt32emu_qt_macos_arm64.tgz + path: mt32emu_qt_macos_arm64.tgz archive: false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/.github/workflows/build-mt32emu-smf2wav.yml new/munt-libmt32emu_2_8_5/.github/workflows/build-mt32emu-smf2wav.yml --- old/munt-libmt32emu_2_8_3/.github/workflows/build-mt32emu-smf2wav.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/munt-libmt32emu_2_8_5/.github/workflows/build-mt32emu-smf2wav.yml 2026-11-03 13:34:11.000000000 +0100 @@ -0,0 +1,61 @@ +name: Build mt32emu-smf2wav binary bundle + +on: + workflow_dispatch: + inputs: + buildType: + required: true + type: choice + options: + - Snapshot + - Release + +env: + BUILD_SNAPSHOTS: ${{ case(inputs.buildType == 'Snapshot', 'ON', 'OFF') }} + +jobs: + build-mt32emu-smf2wav-windows: + runs-on: windows-latest + + defaults: + run: + shell: cmd + + steps: + - uses: actions/checkout@v6 + + - name: Install dependencies + run: | + C:\msys64\usr\bin\pacman -Sy --noconfirm mingw-w64-x86_64-glib2 + + - name: Assemble + run: > + "${{ vars.MSVC_ENV_INIT_SCRIPT }}" + && cmake -S . -B build -G Ninja + -D BUILD_SNAPSHOTS=%BUILD_SNAPSHOTS% + -D BUILD_TESTING=OFF + -D CMAKE_BUILD_TYPE=Release + -D CMAKE_MSVC_RUNTIME_LIBRARY:STRING="MultiThreaded$<$<CONFIG:Debug>:Debug>" + -D CMAKE_PREFIX_PATH=C:/msys64/mingw64 + -D GLIB2_LIBRARY:FILEPATH=C:/msys64/mingw64/lib/libglib-2.0.dll.a + -D libmt32emu_PACKAGE_TYPE=Runtime + -D munt_WITH_MT32EMU_QT:BOOL=OFF + -D munt_WITH_MT32EMU_WIN32DRV:BOOL=OFF + && cmake --build build + && cmake --install build --prefix stage --component Runtime + + - name: Package + run: | + cd stage + move bin\mt32emu-smf2wav.exe . + for %%1 in (libgcc_s_seh-1.dll libglib-2.0-0.dll libiconv-2.dll libintl-8.dll libpcre2-8-0.dll libstdc++-6.dll libwinpthread-1.dll) do move "C:\msys64\mingw64\bin\%%1" . + move share\doc\munt docs + move docs\smf2wav\README.md . + rmdir /s/q bin share + + - uses: actions/upload-artifact@v7 + name: Upload + with: + path: stage + name: mt32emu_smf2wav_win64 + archive: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/.github/workflows/build-portaudio.yml new/munt-libmt32emu_2_8_5/.github/workflows/build-portaudio.yml --- old/munt-libmt32emu_2_8_3/.github/workflows/build-portaudio.yml 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/.github/workflows/build-portaudio.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1,75 +0,0 @@ -name: Build PortAudio - -on: - workflow_dispatch - -jobs: - build-portaudio-windows: - runs-on: windows-latest - - defaults: - run: - shell: cmd - working-directory: ${{ github.workspace }} - - steps: - - name: Get sources - run: git clone --depth=1 --revision=refs/tags/v19.7.0 https://github.com/PortAudio/portaudio - - - name: Assemble - run: > - "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" && - cmake -S portaudio -B build -G Ninja - -D CMAKE_BUILD_TYPE=Release - -D CMAKE_INSTALL_PREFIX=stage - -D CMAKE_POLICY_VERSION_MINIMUM=3.5 - -D PA_BUILD_SHARED=OFF && - cmake --build build && - cmake --install build --prefix stage - - - name: Pack - run: tar czf portaudio-win64.tgz stage - - - uses: actions/upload-artifact@v7 - name: Upload - with: - path: ${{ github.workspace }}/portaudio-win64.tgz - name: portaudio-win64 - archive: false - - build-portaudio-macos: - runs-on: macos-latest - - defaults: - run: - shell: bash - working-directory: ${{ github.workspace }} - - steps: - - name: Get sources - run: git clone --depth=1 --revision=refs/tags/v19.7.0 https://github.com/PortAudio/portaudio - - - name: Configure - run: > - cmake -S portaudio -B build -G Ninja - -D CMAKE_BUILD_TYPE=Release - -D CMAKE_INSTALL_PREFIX=stage - -D CMAKE_POLICY_VERSION_MINIMUM=3.5 - -D CMAKE_OSX_DEPLOYMENT_TARGET:STRING=13.0 - -D PA_BUILD_SHARED=OFF - - - name: Build - run: cmake --build build - - - name: Stage - run: cmake --install build --prefix stage - - - name: Pack - run: tar czf portaudio-macos.tgz stage - - - uses: actions/upload-artifact@v7 - name: Upload - with: - path: ${{ github.workspace }}/portaudio-macos.tgz - name: portaudio-macos - archive: false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/.github/workflows/build-qt.yml new/munt-libmt32emu_2_8_5/.github/workflows/build-qt.yml --- old/munt-libmt32emu_2_8_3/.github/workflows/build-qt.yml 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/.github/workflows/build-qt.yml 2026-11-03 13:34:11.000000000 +0100 @@ -4,94 +4,92 @@ workflow_dispatch jobs: - build-qt-windows: - runs-on: windows-latest - - defaults: - run: - shell: cmd - working-directory: ${{ github.workspace }} + fetch-qt: + runs-on: ubuntu-latest steps: + - name: Cache qt sources + id: cache-qt + uses: actions/cache@v5 + with: + key: qt-src-${{ vars.QT_REVISION }} + path: qt5 + enableCrossOsArchive: 'true' + lookup-only: 'true' + - name: Get super repo - run: git clone --depth=1 --revision=refs/tags/v6.11.1 https://code.qt.io/qt/qt5.git + if: steps.cache-qt.outputs.cache-hit != 'true' + run: git clone --depth=1 --revision=${{ vars.QT_REVISION }} https://code.qt.io/qt/qt5.git - name: Get submodules - working-directory: ${{ github.workspace }}/qt5 - run: git submodule update --init --depth=1 qtbase - - - name: Assemble - run: > - "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" && - cmake -S qt5 -B build -G Ninja - -D BUILD_SHARED_LIBS:BOOL=OFF - -D CMAKE_BUILD_TYPE=Release - -D CMAKE_INSTALL_PREFIX=stage - -D FEATURE_static_runtime:BOOL=ON - -D FEATURE_printsupport:BOOL=OFF - -D FEATURE_testlib:BOOL=OFF - -D FEATURE_sql:BOOL=OFF - -D FEATURE_xml:BOOL=OFF && - cmake --build build && - cmake --install build - - - name: Pack - run: tar czf qt_6_11_1_win64.tgz stage - - - uses: actions/upload-artifact@v7 - name: Upload - with: - path: ${{ github.workspace }}/qt_6_11_1_win64.tgz - archive: false + if: steps.cache-qt.outputs.cache-hit != 'true' + working-directory: qt5 + run: git submodule update --init --depth=1 qtbase qtshadertools qtmultimedia - build-qt-macos: - runs-on: macos-latest + build-qt: + needs: fetch-qt + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] defaults: run: shell: bash - working-directory: ${{ github.workspace }} - steps: - - name: Get super repo - run: git clone --depth=1 --revision=refs/tags/v6.11.1 https://code.qt.io/qt/qt5.git - - - name: Get submodules - working-directory: ${{ github.workspace }}/qt5 - run: git submodule update --init --depth=1 qtbase qtshadertools qtmultimedia - - - name: Configure - run: > - cmake -S qt5 -B build -G Ninja + env: + CMAKE_CONFIG_FLAGS: >- + -S qt5 -B build -G Ninja -D BUILD_SHARED_LIBS:BOOL=OFF -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=stage + QT_FEATURE_FLAGS: >- + -D FEATURE_androiddeployqt:BOOL=OFF + -D FEATURE_macdeployqt:BOOL=OFF + -D FEATURE_network:BOOL=OFF + -D FEATURE_pdf:BOOL=OFF -D FEATURE_printsupport:BOOL=OFF -D FEATURE_testlib:BOOL=OFF -D FEATURE_sql:BOOL=OFF + -D FEATURE_windeployqt:BOOL=OFF -D FEATURE_xml:BOOL=OFF + -D INPUT_libjpeg:STRING=no - - name: Build - run: cmake --build build - - - name: Stage - run: cmake --install build - - - name: Pack - run: tar czf qt_6_11_1_macos.tgz stage - - - uses: actions/upload-artifact@v7 - name: Upload + steps: + - name: Get qt sources + id: cache-qt + uses: actions/cache@v5 with: - path: ${{ github.workspace }}/qt_6_11_1_macos.tgz - archive: false + key: qt-src-${{ vars.QT_REVISION }} + path: qt5 + enableCrossOsArchive: 'true' + fail-on-cache-miss: 'true' + + - name: Assemble for Windows + if: runner.os == 'Windows' + shell: cmd + run: > + "${{ vars.MSVC_ENV_INIT_SCRIPT }}" + && cmake ${{ env.CMAKE_CONFIG_FLAGS }} + -D FEATURE_static_runtime:BOOL=ON + ${{ env.QT_FEATURE_FLAGS }} + && cmake --build build + && cmake --install build + && echo QT_ARTIFACT=${{ vars.QT_ARTIFACT_WIN }}>> %GITHUB_ENV% - build-qt-linux: - runs-on: ubuntu-latest + - name: Assemble for macOS + if: runner.os == 'macOS' + run: | + cmake ${{ env.CMAKE_CONFIG_FLAGS }} ${{ env.QT_FEATURE_FLAGS }} + cmake --build build + cmake --install build + echo QT_ARTIFACT="${{ vars.QT_ARTIFACT_MACOS }}" >> $GITHUB_ENV - steps: - - name: Assemble + - name: Assemble for Linux + if: runner.os == 'Linux' run: | + echo QT_ARTIFACT="${{ vars.QT_ARTIFACT_LINUX }}" >> $GITHUB_ENV cat <<'EOF' >> build.sh #!/bin/bash set -e @@ -101,27 +99,21 @@ xcb-util-keysyms-devel xcb-util-renderutil-devel xcb-util-wm-devel libxkbcommon-devel \ libxkbcommon-x11-devel pulseaudio-libs-devel source /opt/rh/gcc-toolset-10/enable - mkdir /home/munt/qt - cd /home/munt/qt - git clone --depth=1 --branch=v6.11.1 https://code.qt.io/qt/qt5.git - cd qt5 - git submodule update --init --depth=1 qtbase qtshadertools qtmultimedia - cd .. - cmake -S qt5 -B build -G Ninja -D BUILD_SHARED_LIBS:BOOL=OFF -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=stage \ - -D FEATURE_androiddeployqt:BOOL=OFF -D FEATURE_network:BOOL=OFF \ - -D FEATURE_pdf:BOOL=OFF -D FEATURE_printsupport:BOOL=OFF -D FEATURE_testlib:BOOL=OFF -D FEATURE_sql:BOOL=OFF \ - -D FEATURE_xml:BOOL=OFF -D INPUT_libjpeg:STRING=no + cd /home/munt + cmake ${{ env.CMAKE_CONFIG_FLAGS }} ${{ env.QT_FEATURE_FLAGS }} cmake --build build cmake --install build - tar czf qt_6_11_1_linux_x64.tgz stage EOF chmod a+x build.sh podman run --mount type=bind,source=.,destination=/home/munt \ --rm \ ghcr.io/almalinux/8-toolbox /home/munt/build.sh + - name: Pack + run: tar czf $QT_ARTIFACT stage + - uses: actions/upload-artifact@v7 name: Upload with: - path: ${{ github.workspace }}/qt/qt_6_11_1_linux_x64.tgz + path: ${{ env.QT_ARTIFACT }} archive: false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/.github/workflows/build-release-packages.yml new/munt-libmt32emu_2_8_5/.github/workflows/build-release-packages.yml --- old/munt-libmt32emu_2_8_3/.github/workflows/build-release-packages.yml 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/.github/workflows/build-release-packages.yml 2026-11-03 13:34:11.000000000 +0100 @@ -1,4 +1,4 @@ -name: Build release packages +name: Build Linux release packages on: workflow_dispatch @@ -7,13 +7,8 @@ build-ubuntu-packages: runs-on: ubuntu-latest - defaults: - run: - shell: bash - working-directory: ${{ github.workspace }} - steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install dependencies for libmt32emu run: | @@ -22,8 +17,7 @@ - name: Configure libmt32emu run: > - cmake -S mt32emu -B build - -G Ninja + cmake -S mt32emu -B build -G Ninja -D CMAKE_BUILD_TYPE=Release -D libmt32emu_PACKAGE_TYPE=Runtime -D libmt32emu_WITH_VERSION_TAGGING=ON @@ -33,34 +27,34 @@ run: cmake --build build - name: Test libmt32emu - working-directory: ${{ github.workspace }}/build + working-directory: build run: ctest -V - name: Package libmt32emu - working-directory: ${{ github.workspace }}/build + working-directory: build run: cpack -G DEB - uses: actions/upload-artifact@v7 name: Upload libmt32emu with: - path: ${{ github.workspace }}/build/libmt32emu-*.deb + path: build/libmt32emu-*.deb archive: false - name: Configure libmt32emu-dev run: cmake -D libmt32emu_PACKAGE_TYPE=Devel build - name: Package libmt32emu-dev - working-directory: ${{ github.workspace }}/build + working-directory: build run: cpack -G DEB - uses: actions/upload-artifact@v7 name: Upload libmt32emu-dev with: - path: ${{ github.workspace }}/build/libmt32emu-dev-*.deb + path: build/libmt32emu-dev-*.deb archive: false - name: Install dependencies for mt32emu-smf2wav - working-directory: ${{ github.workspace }}/build + working-directory: build run: | sudo dpkg -i libmt32emu-*.deb sudo dpkg -i libmt32emu-dev-*.deb @@ -71,21 +65,20 @@ - name: Configure mt32emu-smf2wav run: > - cmake -S mt32emu_smf2wav -B build - -G Ninja + cmake -S mt32emu_smf2wav -B build -G Ninja -D CMAKE_BUILD_TYPE=Release - name: Build mt32emu-smf2wav run: cmake --build build - name: Package mt32emu-smf2wav - working-directory: ${{ github.workspace }}/build + working-directory: build run: cpack -G DEB - uses: actions/upload-artifact@v7 name: Upload mt32emu-smf2wav with: - path: ${{ github.workspace }}/build/mt32emu-smf2wav-*.deb + path: build/mt32emu-smf2wav-*.deb archive: false - name: Clean build directory @@ -96,8 +89,7 @@ - name: Configure mt32emu-qt run: > - cmake -S mt32emu_qt -B build - -G Ninja + cmake -S mt32emu_qt -B build -G Ninja -D CMAKE_BUILD_TYPE=Release -D mt32emu-qt_USE_JACK_DYNAMIC_LOADING=ON -D mt32emu-qt_USE_PULSEAUDIO_DYNAMIC_LOADING=OFF @@ -106,20 +98,20 @@ run: cmake --build build - name: Package mt32emu-qt - working-directory: ${{ github.workspace }}/build + working-directory: build run: cpack -G DEB - uses: actions/upload-artifact@v7 name: Upload mt32emu-qt with: - path: ${{ github.workspace }}/build/mt32emu-qt-*.deb + path: build/mt32emu-qt-*.deb archive: false build-rpms: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Assemble run: | @@ -166,7 +158,7 @@ - uses: actions/upload-artifact@v7 name: Upload libmt32emu-devel with: - path: ${{ github.workspace }}/build/mt32emu/libmt32emu-devel-*.rpm + path: build/mt32emu/libmt32emu-devel-*.rpm archive: false - name: Wipe libmt32emu-devel @@ -175,17 +167,17 @@ - uses: actions/upload-artifact@v7 name: Upload libmt32emu with: - path: ${{ github.workspace }}/build/mt32emu/libmt32emu-*.rpm + path: build/mt32emu/libmt32emu-*.rpm archive: false - uses: actions/upload-artifact@v7 name: Upload mt32emu-smf2wav with: - path: ${{ github.workspace }}/build/mt32emu_smf2wav/mt32emu-smf2wav-*.rpm + path: build/mt32emu_smf2wav/mt32emu-smf2wav-*.rpm archive: false - uses: actions/upload-artifact@v7 name: Upload mt32emu-qt with: - path: ${{ github.workspace }}/build/mt32emu_qt/mt32emu-qt-*.rpm + path: build/mt32emu_qt/mt32emu-qt-*.rpm archive: false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/.github/workflows/build-snapshots.yml new/munt-libmt32emu_2_8_5/.github/workflows/build-snapshots.yml --- old/munt-libmt32emu_2_8_3/.github/workflows/build-snapshots.yml 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/.github/workflows/build-snapshots.yml 2026-11-03 13:34:11.000000000 +0100 @@ -1,10 +1,10 @@ -name: Build snapshots +name: Build dev snapshots on: push: - branches: [ "master" ] + branches: [ "master", "ci" ] pull_request: - branches: [ "master" ] + branches: [ "master", "ci" ] jobs: build-snapshots: @@ -19,7 +19,7 @@ shell: bash steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Prepare build environment if: runner.os == 'Windows' @@ -27,6 +27,7 @@ export MINGW64_PATH="/c/msys64/mingw64/bin:/c/msys64/usr/bin" echo $MINGW64_PATH >> $GITHUB_PATH echo BUILD_PATH="PATH=$MINGW64_PATH:\$PATH" >> $GITHUB_ENV + echo CMAKE_CONFIG_FLAGS="-D CMAKE_PREFIX_PATH=C:/msys64/mingw64" >> $GITHUB_ENV - name: Install Ubuntu dependencies if: runner.os == 'Linux' @@ -58,18 +59,20 @@ -D CMAKE_BUILD_TYPE=Release -D BUILD_SNAPSHOTS=ON -D libmt32emu_PACKAGE_TYPE=Runtime + -D libmt32emu_TESTS_DETAILED:BOOL=ON -D mt32emu-qt_USE_JACK_DYNAMIC_LOADING=ON -D mt32emu-qt_USE_PULSEAUDIO_DYNAMIC_LOADING=OFF + ${{ env.CMAKE_CONFIG_FLAGS }} - name: Build run: ${{ env.BUILD_PATH }} cmake --build build - name: Test - working-directory: ${{ github.workspace }}/build - run: ctest -V + working-directory: build + run: ${{ env.BUILD_PATH }} ctest -V - name: Package munt monolith - working-directory: ${{ github.workspace }}/build + working-directory: build run: > cpack -G ${{ case( runner.os == 'Linux', 'DEB', @@ -80,5 +83,5 @@ - uses: actions/upload-artifact@v7 name: Upload munt with: - path: ${{ github.workspace }}/build/munt-*.${{ case(runner.os == 'Linux', 'deb', runner.os == 'macOS', 'tar.xz', 'zip') }} + path: build/munt-*.${{ case(runner.os == 'Linux', 'deb', runner.os == 'macOS', 'tar.xz', 'zip') }} archive: false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/.github/workflows/build-win32drv.yml new/munt-libmt32emu_2_8_5/.github/workflows/build-win32drv.yml --- old/munt-libmt32emu_2_8_3/.github/workflows/build-win32drv.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/munt-libmt32emu_2_8_5/.github/workflows/build-win32drv.yml 2026-11-03 13:34:11.000000000 +0100 @@ -0,0 +1,65 @@ +name: Build mt32emu_win32drv binaries + +on: + workflow_dispatch + +jobs: + build-mt32emu_win32drv: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v6 + + - name: Checkout libwdi sources + run: git clone --depth=1 --revision=v1.3.1 https://github.com/pbatard/libwdi + + - name: Create driver build script + run: > + echo + 'cmake -S . -B %1 -G Ninja + -D BUILD_TESTING=OFF + -D CMAKE_BUILD_TYPE=Release + -D CMAKE_MSVC_RUNTIME_LIBRARY:STRING="MultiThreaded$<$<CONFIG:Debug>:Debug>" + -D libmt32emu_PACKAGE_TYPE=Runtime + -D munt_WITH_MT32EMU_QT:BOOL=OFF + -D munt_WITH_MT32EMU_SMF2WAV:BOOL=OFF + -D munt_WITH_MT32EMU_WIN32DRV:BOOL=ON + && cmake --build %1 + && cmake --install %1 --prefix stage --component Runtime' + > build.cmd + + - name: Assemble 32-bit driver and drvsetup + shell: cmd + run: > + "${{ vars.MSVC_ENV_INIT_SCRIPT_X86 }}" && build.cmd build_32 + && cmake -S mt32emu_win32drv_setup/drvsetup -B build_drvsetup -G Ninja + -D CMAKE_BUILD_TYPE=Release + -D CMAKE_MSVC_RUNTIME_LIBRARY:STRING="MultiThreaded$<$<CONFIG:Debug>:Debug>" + && cmake --build build_drvsetup + + - name: Assemble 64-bit driver and infinstall + shell: cmd + run: > + "${{ vars.MSVC_ENV_INIT_SCRIPT }}" && build.cmd build_64 + && cmake -S mt32emu_win32drv_setup/infinstall -B build_infinstall -G Ninja + -D CMAKE_BUILD_TYPE=Release + -D CMAKE_MSVC_RUNTIME_LIBRARY:STRING="MultiThreaded$<$<CONFIG:Debug>:Debug>" + -D libwdi_SRC_PATH:PATH=libwdi + && cmake --build build_infinstall + + - name: Package unsigned drivers and tools + shell: bash + run: | + cd stage + mv win32drv/* . + mv share/doc . + rm -rf win32drv share + mv ../build_drvsetup/drvsetup.exe . + mv ../build_infinstall/infinstall_x64.exe infinstall.exe + + - uses: actions/upload-artifact@v7 + name: Upload unsigned driver package + with: + path: stage + name: mt32emu_win32drv + archive: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/cmake/project_data.cmake new/munt-libmt32emu_2_8_5/cmake/project_data.cmake --- old/munt-libmt32emu_2_8_3/cmake/project_data.cmake 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/cmake/project_data.cmake 2026-11-03 13:34:11.000000000 +0100 @@ -4,5 +4,5 @@ set(munt_VERSION_MAJOR 2) set(munt_VERSION_MINOR 8) -set(munt_VERSION_PATCH 2) +set(munt_VERSION_PATCH 3) set(munt_VERSION "${munt_VERSION_MAJOR}.${munt_VERSION_MINOR}.${munt_VERSION_PATCH}") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/mt32emu/NEWS.txt new/munt-libmt32emu_2_8_5/mt32emu/NEWS.txt --- old/munt-libmt32emu_2_8_3/mt32emu/NEWS.txt 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/mt32emu/NEWS.txt 2026-11-03 13:34:11.000000000 +0100 @@ -1,3 +1,17 @@ +2026-11-03: + + 2.8.5 released. + + * Fixed a portability issue in unit tests. (#150) + +2026-11-02: + + 2.8.4 released. + + * Fixed a heap buffer overflow in the MIDI stream parser that occurred when the client + submitted a fragmented SysEx message with the first fragment exceeding the maximum + supported size. (#149) + 2026-06-06: 2.8.3 released. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/mt32emu/cmake/project_data.cmake new/munt-libmt32emu_2_8_5/mt32emu/cmake/project_data.cmake --- old/munt-libmt32emu_2_8_3/mt32emu/cmake/project_data.cmake 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/mt32emu/cmake/project_data.cmake 2026-11-03 13:34:11.000000000 +0100 @@ -4,5 +4,5 @@ set(libmt32emu_VERSION_MAJOR 2) set(libmt32emu_VERSION_MINOR 8) -set(libmt32emu_VERSION_PATCH 3) +set(libmt32emu_VERSION_PATCH 5) set(libmt32emu_VERSION "${libmt32emu_VERSION_MAJOR}.${libmt32emu_VERSION_MINOR}.${libmt32emu_VERSION_PATCH}") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/mt32emu/src/MidiStreamParser.cpp new/munt-libmt32emu_2_8_5/mt32emu/src/MidiStreamParser.cpp --- old/munt-libmt32emu_2_8_3/mt32emu/src/MidiStreamParser.cpp 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/mt32emu/src/MidiStreamParser.cpp 2026-11-03 13:34:11.000000000 +0100 @@ -129,9 +129,11 @@ // We deal with SysEx messages below 512 bytes long in most cases. Nevertheless, it seems reasonable to support a possibility // to load bulk dumps using a single message. However, this is known to fail with a real device due to limited input buffer size. +// Checks whether there is available space in the buffer, potentially reallocating it to the maximum capacity. +// Returns true iff it's possible to add a new byte to the buffer. bool MidiStreamParserImpl::checkStreamBufferCapacity(const bool preserveContent) { if (streamBufferSize < streamBufferCapacity) return true; - if (streamBufferCapacity < MAX_STREAM_BUFFER_SIZE) { + if (streamBufferSize < MAX_STREAM_BUFFER_SIZE && streamBufferCapacity < MAX_STREAM_BUFFER_SIZE) { Bit8u *oldStreamBuffer = streamBuffer; streamBufferCapacity = MAX_STREAM_BUFFER_SIZE; streamBuffer = new Bit8u[streamBufferCapacity]; @@ -244,14 +246,16 @@ } } - // Store incomplete SysEx message for further processing + // Store incomplete SysEx message for further processing if it fits into the allowed buffer size. streamBufferSize = sysexLength; if (checkStreamBufferCapacity(false)) { - memcpy(streamBuffer, stream, sysexLength); + // Better be paranoid about buffer overflows. + Bit32u bytesToCopy = sysexLength < streamBufferCapacity ? sysexLength : streamBufferCapacity; + memcpy(streamBuffer, stream, bytesToCopy); } else { - // Not enough buffer capacity, don't care about the real buffer content, just mark the first byte + // Not enough buffer capacity. We don't have to care about the real buffer content as the message is going to be discarded. + // We just mark the buffer as containing a SysEx, and streamBufferSize already indicates a buffer overrun. *streamBuffer = *stream; - streamBufferSize = streamBufferCapacity; } return sysexLength; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/mt32emu/src/test/MidiStreamParserTest.cpp new/munt-libmt32emu_2_8_5/mt32emu/src/test/MidiStreamParserTest.cpp --- old/munt-libmt32emu_2_8_3/mt32emu/src/test/MidiStreamParserTest.cpp 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/mt32emu/src/test/MidiStreamParserTest.cpp 2026-11-03 13:34:11.000000000 +0100 @@ -254,6 +254,46 @@ parser.checkRemainingEvents(); } +TEST_CASE("MidiStreamParser should handle fragmented SysEx messages of the maximum size") { + Bit8u *sysex = new Bit8u[MAX_STREAM_BUFFER_SIZE]; + sysex[0] = 0xF0; + memset(sysex + 1, 0x3C, MAX_STREAM_BUFFER_SIZE - 2); + sysex[MAX_STREAM_BUFFER_SIZE - 1] = 0xF7; + + const ParserEvent expected[] = { ParserEvent(sysex, MAX_STREAM_BUFFER_SIZE) }; + TestMidiStreamParser parser(expected); + parser.parseStream(sysex, MAX_STREAM_BUFFER_SIZE - 1); + parser.parseStream(sysex + MAX_STREAM_BUFFER_SIZE - 1, 1); + + parser.checkRemainingEvents(); + + delete[] sysex; +} + +TEST_CASE("MidiStreamParser should ignore fragmented SysEx messages above the maximum size") { + const ParserEvent expected[] = { "streamBuffer overrun" }; + TestMidiStreamParser parser(expected); + + Bit8u *bigSysexFragment = new Bit8u[MAX_STREAM_BUFFER_SIZE + 1]; + bigSysexFragment[0] = 0xF0; + memset(bigSysexFragment + 1, 0x3C, MAX_STREAM_BUFFER_SIZE); + + SUBCASE("when the first fragment has the maximum size") { + parser.parseStream(bigSysexFragment, MAX_STREAM_BUFFER_SIZE); + } + + SUBCASE("when the first fragment exceeds the maximum size") { + parser.parseStream(bigSysexFragment, MAX_STREAM_BUFFER_SIZE + 1); + } + + const Bit8u endOfSysex = 0xF7; + parser.parseStream(&endOfSysex, 1); + + parser.checkRemainingEvents(); + + delete[] bigSysexFragment; +} + } // namespace Test } // namespace MT32Emu diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/mt32emu/src/test/ROMInfoTest.cpp new/munt-libmt32emu_2_8_5/mt32emu/src/test/ROMInfoTest.cpp --- old/munt-libmt32emu_2_8_3/mt32emu/src/test/ROMInfoTest.cpp 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/mt32emu/src/test/ROMInfoTest.cpp 2026-11-03 13:34:11.000000000 +0100 @@ -364,6 +364,10 @@ REQUIRE(result != NULL_PTR); CHECK(result->getSize() == 2 * dataSize); CHECK(result->getSHA1() == expectedSHA1); + + const Bit8u *mergedData = result->getData(); + delete result; + delete[] mergedData; } TEST_CASE("Failed merge of files with partial ROM images") { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/mt32emu/src/test/ServiceTest.cpp new/munt-libmt32emu_2_8_5/mt32emu/src/test/ServiceTest.cpp --- old/munt-libmt32emu_2_8_3/mt32emu/src/test/ServiceTest.cpp 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/mt32emu/src/test/ServiceTest.cpp 2026-11-03 13:34:11.000000000 +0100 @@ -15,6 +15,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <cstdarg> + #include "../ROMInfo.h" #include "../Synth.h" @@ -218,6 +220,13 @@ return res; } +static void emitDebugMessage(ReportHandler3 *emitter, const char *fmt, ...) { + va_list va; + va_start(va, fmt); + emitter->printDebug(fmt, va); + va_end(va); +} + #define MT32EMU_createSubcase(reportedEventType, factory) \ SUBCASE(#reportedEventType) { \ static const ReportedEvent e = factory; \ @@ -251,7 +260,7 @@ ReportHandler3 *emitter = ensureNewContextReportHandler(service, rh); switch (reportedEvent->type) { case ReportedEvent::DEBUG_MESSAGE: - emitter->printDebug("Missing PCM ROM", 0); + emitDebugMessage(emitter, "Missing PCM ROM"); break; case ReportedEvent::ERROR_CONTROL_ROM: emitter->onErrorControlROM(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/mt32emu_qt/NEWS.txt new/munt-libmt32emu_2_8_5/mt32emu_qt/NEWS.txt --- old/munt-libmt32emu_2_8_3/mt32emu_qt/NEWS.txt 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/mt32emu_qt/NEWS.txt 2026-11-03 13:34:11.000000000 +0100 @@ -1,3 +1,9 @@ +2026-11-02: + + 1.12.3 released. + + * Updated mt32emu library to version 2.8.4. + 2026-06-06: 1.12.2 released. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/mt32emu_qt/cmake/project_data.cmake new/munt-libmt32emu_2_8_5/mt32emu_qt/cmake/project_data.cmake --- old/munt-libmt32emu_2_8_3/mt32emu_qt/cmake/project_data.cmake 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/mt32emu_qt/cmake/project_data.cmake 2026-11-03 13:34:11.000000000 +0100 @@ -4,5 +4,5 @@ set(mt32emu_qt_VERSION_MAJOR 1) set(mt32emu_qt_VERSION_MINOR 12) -set(mt32emu_qt_VERSION_PATCH 2) +set(mt32emu_qt_VERSION_PATCH 3) set(mt32emu_qt_VERSION "${mt32emu_qt_VERSION_MAJOR}.${mt32emu_qt_VERSION_MINOR}.${mt32emu_qt_VERSION_PATCH}") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/mt32emu_qt/src/Master.h new/munt-libmt32emu_2_8_5/mt32emu_qt/src/Master.h --- old/munt-libmt32emu_2_8_3/mt32emu_qt/src/Master.h 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/mt32emu_qt/src/Master.h 2026-11-03 13:34:11.000000000 +0100 @@ -3,11 +3,10 @@ #include <QtCore> -#include "SynthRoute.h" +#include "MidiSession.h" class AudioDriver; class MidiDriver; -class MidiSession; class MidiPropertiesDialog; class QSystemTrayIcon; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/mt32emu_smf2wav/cmake/project_data.cmake new/munt-libmt32emu_2_8_5/mt32emu_smf2wav/cmake/project_data.cmake --- old/munt-libmt32emu_2_8_3/mt32emu_smf2wav/cmake/project_data.cmake 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/mt32emu_smf2wav/cmake/project_data.cmake 2026-11-03 13:34:11.000000000 +0100 @@ -4,5 +4,5 @@ set(mt32emu_smf2wav_VERSION_MAJOR 1) set(mt32emu_smf2wav_VERSION_MINOR 9) -set(mt32emu_smf2wav_VERSION_PATCH 3) +set(mt32emu_smf2wav_VERSION_PATCH 4) set(mt32emu_smf2wav_VERSION "${mt32emu_smf2wav_VERSION_MAJOR}.${mt32emu_smf2wav_VERSION_MINOR}.${mt32emu_smf2wav_VERSION_PATCH}") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/mt32emu_win32drv/NEWS.txt new/munt-libmt32emu_2_8_5/mt32emu_win32drv/NEWS.txt --- old/munt-libmt32emu_2_8_3/mt32emu_win32drv/NEWS.txt 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/mt32emu_win32drv/NEWS.txt 2026-11-03 13:34:11.000000000 +0100 @@ -1,3 +1,9 @@ +2026-11-02: + + 1.9.3 released. + + * Updated mt32emu library to version 2.8.4. + 2026-06-06: 1.9.2 released. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munt-libmt32emu_2_8_3/mt32emu_win32drv/cmake/project_data.cmake new/munt-libmt32emu_2_8_5/mt32emu_win32drv/cmake/project_data.cmake --- old/munt-libmt32emu_2_8_3/mt32emu_win32drv/cmake/project_data.cmake 2026-06-06 15:58:54.000000000 +0200 +++ new/munt-libmt32emu_2_8_5/mt32emu_win32drv/cmake/project_data.cmake 2026-11-03 13:34:11.000000000 +0100 @@ -4,5 +4,5 @@ set(mt32emu_win32drv_VERSION_MAJOR 1) set(mt32emu_win32drv_VERSION_MINOR 9) -set(mt32emu_win32drv_VERSION_PATCH 2) +set(mt32emu_win32drv_VERSION_PATCH 3) set(mt32emu_win32drv_VERSION "${mt32emu_win32drv_VERSION_MAJOR}.${mt32emu_win32drv_VERSION_MINOR}.${mt32emu_win32drv_VERSION_PATCH}")
