Update to version 1.1.13

OBS-URL: https://build.opensuse.org/package/show/games/zmusic?expand=0&rev=22
This commit is contained in:
Jan Engelhardt 2024-08-27 11:52:07 +00:00 committed by Git OBS Bridge
commit ebfe906a8a
9 changed files with 410 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

3
1.1.12.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:da818594b395aa9174561a36362332b0ab8e7906d2e556ec47669326e67613d4
size 2275316

BIN
1.1.13.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

71
dumb-dumb.patch Normal file
View File

@ -0,0 +1,71 @@
From: Jan Engelhardt <jengelh@inai.de>
Date: 2021-04-11 00:13:39.558383079 +0200
The code has a wrong #include directive that quickly breaks when not all -I flags
appear as compiler arguments.
The command line if you build with internal GME and whatnot:
/usr/bin/c++ -DHAVE_FLUIDSYNTH -DHAVE_MPG123 -DHAVE_SNDFILE -DHAVE_SYSTEM_MIDI
-Dstricmp=strcasecmp -Dstrnicmp=strncasecmp -Dzmusic_EXPORTS
-I/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/source/../include
-I/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/source
-I/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/source/zmusic
-I/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/thirdparty/dumb/include
-I/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/thirdparty/game-music-emu/gme/..
-I/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/thirdparty/adlmidi
-I/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/thirdparty/oplsynth
-I/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/thirdparty/opnmidi
-I/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/thirdparty/timidity
-I/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/thirdparty/timidityplus
-I/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/thirdparty/wildmidi
-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2
-fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables
-fstack-clash-protection -DNDEBUG -O2 -g -DNDEBUG -fPIC -ffp-contract=off -MD
-MT source/CMakeFiles/zmusic.dir/streamsources/music_dumb.cpp.o -MF
CMakeFiles/zmusic.dir/streamsources/music_dumb.cpp.o.d -o
CMakeFiles/zmusic.dir/streamsources/music_dumb.cpp.o -c
/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/source/streamsources/music_dumb.cpp
The command line actually is:
/usr/bin/c++ -DHAVE_FLUIDSYNTH -DHAVE_MPG123 -DHAVE_SNDFILE -DHAVE_SYSTEM_MIDI
-DZMUSIC_LITE=1 -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp
-Dzmusiclite_EXPORTS
-I/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/source/../include
-I/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/source
-I/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/source/zmusic
-I/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/thirdparty/dumb/include
-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2
-fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables
-fstack-clash-protection -g -DNDEBUG -O2 -g -DNDEBUG -fPIC -ffp-contract=off
-o CMakeFiles/zmusiclite.dir/streamsources/music_dumb.cpp.o -c
/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/source/streamsources/music_dumb.cpp
/home/abuild/rpmbuild/BUILD/ZMusic-1.1.6/source/streamsources/music_dumb.cpp:46:10: fatal error: ../dumb/include/dumb.h: No such file or directory
#include "../dumb/include/dumb.h"
^~~~~~~~~~~~~~~~~~~~~~~~
---
source/streamsources/music_dumb.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: source/streamsources/music_dumb.cpp
===================================================================
--- source/streamsources/music_dumb.cpp.orig
+++ source/streamsources/music_dumb.cpp
@@ -43,8 +43,8 @@
#undef CDECL // w32api's windef.h defines this
-#include "../dumb/include/dumb.h"
-#include "../dumb/include/internal/it.h"
+#include "../thirdparty/dumb/include/dumb.h"
+#include "../thirdparty/dumb/include/internal/it.h"
#include "zmusic/m_swap.h"
#include "zmusic/mididefs.h"
#include "zmusic/midiconfig.h"

67
system-fluidsynth.patch Normal file
View File

@ -0,0 +1,67 @@
From: Jan Engelhardt <jengelh@inai.de>
Date: 2022-11-24 00:30:41.636640680 +0100
Subject: Disintegrate the bundled libfluidsynth
Do a partial revert of this commit:
"""
commit 47475495f43c0e9fed55fbe861cf2cb94628f39c
Author: Christoph Oelckers <coelckers@users.noreply.github.com>
Date: Sun Jul 31 12:12:11 2022 +0200
- integrate FluidSynth directly into the project in source form.
The primary reason for this is to avoid dealing with FluidSynth's rather messy compile setup.
This also protects us from breaking API/ABI changes like between version 1 and 2.
"""
The primary reason for this revert is to avoid dealing with
FluidSynth's rather messy compile setup. Because it's already done in
the distro's fluidsynth package and need not be repeated for zmusic.
---
source/CMakeLists.txt | 7 +++++--
source/mididevices/music_fluidsynth_mididevice.cpp | 2 +-
thirdparty/CMakeLists.txt | 1 -
3 files changed, 6 insertions(+), 4 deletions(-)
Index: source/CMakeLists.txt
===================================================================
--- source/CMakeLists.txt.orig
+++ source/CMakeLists.txt
@@ -142,8 +142,11 @@ use_fast_math(zmusiclite)
target_include_directories(zmusic INTERFACE $<INSTALL_INTERFACE:include> $<BUILD_INTERFACE:${ZMusic_SOURCE_DIR}/include>)
target_include_directories(zmusiclite INTERFACE $<INSTALL_INTERFACE:include> $<BUILD_INTERFACE:${ZMusic_SOURCE_DIR}/include>)
-target_link_libraries_hidden(zmusic zmusic-obj adl oplsynth opn timidity timidityplus wildmidi fluidsynth)
-target_link_libraries_hidden(zmusiclite zmusic-obj fluidsynth)
+include(FindPkgConfig)
+pkg_search_module(FLUIDSYNTH REQUIRED fluidsynth)
+target_include_directories(zmusic-obj INTERFACE ${FLUIDSYNTH_INCLUDE_DIRS})
+target_link_libraries_hidden(zmusic zmusic-obj adl oplsynth opn timidity timidityplus wildmidi ${FLUIDSYNTH_LIBRARIES})
+target_link_libraries_hidden(zmusiclite zmusic-obj ${FLUIDSYNTH_LIBRARIES})
target_compile_definitions(zmusic PUBLIC $<$<STREQUAL:$<TARGET_PROPERTY:zmusic,TYPE>,STATIC_LIBRARY>:ZMUSIC_STATIC>)
target_compile_definitions(zmusiclite PRIVATE ZMUSIC_LITE=1 PUBLIC $<$<STREQUAL:$<TARGET_PROPERTY:zmusiclite,TYPE>,STATIC_LIBRARY>:ZMUSIC_STATIC>)
Index: source/mididevices/music_fluidsynth_mididevice.cpp
===================================================================
--- source/mididevices/music_fluidsynth_mididevice.cpp.orig
+++ source/mididevices/music_fluidsynth_mididevice.cpp
@@ -46,7 +46,7 @@
FluidConfig fluidConfig;
-#include "../thirdparty/fluidsynth/include/fluidsynth.h"
+#include <fluidsynth.h>
class FluidSynthMIDIDevice : public SoftSynthMIDIDevice
{
Index: thirdparty/CMakeLists.txt
===================================================================
--- thirdparty/CMakeLists.txt.orig
+++ thirdparty/CMakeLists.txt
@@ -45,4 +45,3 @@ add_subdirectory(timidity)
add_subdirectory(timidityplus)
add_subdirectory(wildmidi)
add_subdirectory(oplsynth)
-add_subdirectory(fluidsynth/src)

38
system-gme.patch Normal file
View File

@ -0,0 +1,38 @@
From: Jan Engelhardt <jengelh@inai.de>
Date: 2019-12-18 23:10:30.098185171 +0100
Use GME system libraries instead of bundled code.
How GME is released does not matter. The job of a distro is to string
together all its GME users with whatever GME version was chosen by
the distro. ABI incompatibilites are addressed, else our own stack
wouldn't work.
---
thirdparty/CMakeLists.txt | 6 ++++++
1 file changed, 6 insertions(+)
Index: thirdparty/CMakeLists.txt
===================================================================
--- thirdparty/CMakeLists.txt.orig
+++ thirdparty/CMakeLists.txt
@@ -25,6 +25,11 @@ endif()
#option(FORCE_INTERNAL_GME "Use internal gme (it is highly unlikely this should be turned off)" ON)
#mark_as_advanced(FORCE_INTERNAL_GME GME_INCLUDE_DIR GME_LIBRARY)
#find_package(GME QUIET)
+include(FindPkgConfig)
+pkg_check_modules(GME libgme)
+message(STATUS "Using system gme library, includes found at ${GME_INCLUDE_DIRS}")
+determine_package_config_dependency(ZMUSIC_PACKAGE_DEPENDENCIES TARGET gme MODULE GME)
+if(FALSE)
#if(GME_FOUND AND NOT FORCE_INTERNAL_GME)
# message(STATUS "Using system gme library, includes found at ${GME_INCLUDE_DIRS}")
# set_property(TARGET gme PROPERTY IMPORTED_GLOBAL TRUE)
@@ -37,6 +42,7 @@ endif()
mark_as_advanced(GME_YM2612_EMU)
add_subdirectory(game-music-emu)
#endif()
+endif()
add_subdirectory(dumb)
add_subdirectory(adlmidi)

102
zmusic.changes Normal file
View File

@ -0,0 +1,102 @@
-------------------------------------------------------------------
Tue Aug 27 08:16:10 UTC 2024 - ming li <mli@suse.com>
- update to 1.1.13:
* Add vcpkg.json
* Allow building with static configurations
* vcpkg improvements
* Statically link to libsndfile when pulled from vcpkg
* Pull in zlib from vcpkg
* Switch to miniz from zlib
* Make miniz an object library
* Don't directly link to libmpg123 on vcpkg
* Fix compressed format support on GME when using miniz
* Fix second VectorReader constructor
* Fixed incorrect number of bytes being reported to FluidSynth
when relaying a SysEx message
* Added a GS DT1 MODE SET SysEx message after GM System Enable
SysEx message to instruct the synth to switch to GS mode,
if one is supported.
* Updated fluidsynth chorus and reverb setting limits.
-------------------------------------------------------------------
Mon Jan 15 10:54:40 UTC 2024 - Dirk Müller <dmueller@suse.com>
- update to 1.1.12:
* fix crash when FluidSynth soundfont cannot be loaded
* fix velocities and volume on MUS input
* updated embedded libraries to new versions
- drop 0001-Add-missing-standard-library-includes-fix-build-with.patch
(upstream)
-------------------------------------------------------------------
Mon Mar 20 21:21:03 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
- Add 0001-Add-missing-standard-library-includes-fix-build-with.patch
to make gcc 13 happy.
-------------------------------------------------------------------
Wed Nov 23 23:15:36 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.1.11
* Added missing check for AMF format in module loader.
* Fixed EMIDI track designation checks.
- Add system-fluidsynth.patch
-------------------------------------------------------------------
Mon Jul 4 21:46:43 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Drop -msse/-msse2, CPUID guards do not help.
-------------------------------------------------------------------
Thu Jun 23 21:46:14 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.1.9
* Improve ALSA MIDI backend: No longer exclude builtin MIDI
passthrough ports
* Add handling for KeyPress events and avoid calling
snd_seq_sync_output_queue twice
* Add a 32-bit float sample type
* Add a new ZMusic_GetStreamInfoEx function
* Implement ZMusic_GetStreamInfo using GetStreamInfoEx
* Better handle various formats in SndFileSong
* Handle non-int16 samples in dumb_decode_vorbis
* Add missing GetStreamInfoEx for CDSong
* Fixes for gus and wildmidi emulation - fixed gus emulation
not working with DMXGUS and DMXGUSC lump
-------------------------------------------------------------------
Sat May 29 10:28:30 UTC 2021 - Ferdinand Thiessen <rpm@fthiessen.de>
- Update to release 1.1.8
* support dynamic loading of FluidSynth 2.2
* fixed file header in MIDI wave writer
- Drop 0001-made-sndfile-imported-library-global.patch, was merged
-------------------------------------------------------------------
Sat Apr 10 21:07:37 UTC 2021 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.1.6
* Add detection of Opus comment tags in Ogg files.
* Multiply master volume for module player by 4.
- Add 0001-made-sndfile-imported-library-global.patch,
dumb-dumb.patch.
-------------------------------------------------------------------
Sat Oct 31 12:02:30 UTC 2020 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.1.4
* MIDS-format MIDI support
* libADL/libOPN update
-------------------------------------------------------------------
Tue Sep 15 17:48:48 UTC 2020 - Jan Engelhardt <jengelh@inai.de>
- Demote Recommends to Suggests. Add suggests for Fluidsynth
as an alternative to EAW (and the OPL mixer that's built-in).
-------------------------------------------------------------------
Wed Jun 10 15:33:07 UTC 2020 - Jan Engelhardt <jengelh@inai.de>
- Initial package (v1.1.2) for build.opensuse.org
- Added system-gme.patch (carryover from gzdoom.spec; modified)

102
zmusic.spec Normal file
View File

@ -0,0 +1,102 @@
#
# spec file for package zmusic
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: zmusic
Version: 1.1.13
Release: 0
Summary: ZDoom component library for music handling
License: GPL-3.0-only
Group: Development/Libraries/C and C++
URL: https://zdoom.org/
#Git-Clone: https://github.com/ZDoom/ZMusic
Source: https://github.com/ZDoom/ZMusic/archive/%version.tar.gz
Patch1: system-fluidsynth.patch
Patch2: system-gme.patch
Patch3: dumb-dumb.patch
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: pkg-config
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(fluidsynth)
BuildRequires: pkgconfig(libgme)
BuildRequires: pkgconfig(libmpg123)
BuildRequires: pkgconfig(sndfile)
BuildRequires: pkgconfig(zlib)
Suggests: fluid-soundfont-gm
Suggests: fluid-soundfont-gs
Suggests: timidity
Suggests: timidity-eawpats
# DUMB is modified to read OggVorbis samples
Provides: bundled(dumb) = 0.9.3
%description
This is the music playback code from gzdoom, which was separated into its own
code repository starting with gzdoom-4.4.0.
%package -n libzmusic1
Summary: ZDoom component library for music handling
Group: System/Libraries
%description -n libzmusic1
This is the music playback code from gzdoom, which was separated into its own
code repository starting with gzdoom-4.4.0.
%package devel
Summary: Headers for the ZMusic library
Group: Development/Libraries/C and C++
Requires: libzmusic1 = %version
%description devel
This subpackage contains the headers for the zmusic library, which is ZDoom's
music component library.
%prep
%autosetup -p0 -n ZMusic-%version
%build
# There is handcrafted assembler, which LTO does not play nice with.
%define _lto_cflags %nil
%cmake -DNO_STRIP=1 \
-DCMAKE_SHARED_LINKER_FLAGS="" \
-DCMAKE_EXE_LINKER_FLAGS="" -DCMAKE_MODULE_LINKER_FLAGS="" \
-DINSTALL_DOCS_PATH="%_defaultdocdir/%name" \
-DDYN_FLUIDSYNTH=OFF \
-DDYN_SNDFILE=OFF -DDYN_MPG123=OFF
%cmake_build
%install
%cmake_install
b="%buildroot"
# Won't need lite (a subset with no GPL code) in openSUSE.
rm -f "$b/%_libdir"/libzmusiclite*
%post -n libzmusic1 -p /sbin/ldconfig
%postun -n libzmusic1 -p /sbin/ldconfig
%files -n libzmusic1
%_libdir/libzmusic.so.1*
%license licenses/*
%files devel
%_includedir/*
%_libdir/libzmusic.so
%_libdir/cmake/
%changelog