diff --git a/libmikmod-3.3.11.1.tar.gz b/libmikmod-3.3.11.1.tar.gz new file mode 100644 index 0000000..055553b Binary files /dev/null and b/libmikmod-3.3.11.1.tar.gz differ diff --git a/libmikmod-64bit.patch b/libmikmod-64bit.patch new file mode 100644 index 0000000..9bdb23c --- /dev/null +++ b/libmikmod-64bit.patch @@ -0,0 +1,27 @@ +diff -up libmikmod-3.3.7/include/mikmod.h~ libmikmod-3.3.7/include/mikmod.h +--- libmikmod-3.3.7/include/mikmod.h~ 2014-07-15 09:50:00.000000000 +0200 ++++ libmikmod-3.3.7/include/mikmod.h 2014-09-10 16:42:59.104289246 +0200 +@@ -142,7 +142,8 @@ typedef unsigned short int UWORD; + #endif + + /* 4 bytes, signed and unsigned: */ +-#if defined(_LP64) || defined(__LP64__) || defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(__powerpc64__) ++#include ++#if __WORDSIZE == 64 + /* 64 bit architectures: */ + typedef signed int SLONG; + #if !(defined(_WIN32) || defined(_MIKMOD_AMIGA)) +diff -up libmikmod-3.3.7/include/mikmod_internals.h~ libmikmod-3.3.7/include/mikmod_internals.h +--- libmikmod-3.3.7/include/mikmod_internals.h~ 2014-07-15 09:50:00.000000000 +0200 ++++ libmikmod-3.3.7/include/mikmod_internals.h 2014-09-10 16:42:55.969362911 +0200 +@@ -50,8 +50,8 @@ extern "C" { + /*========== More type definitions */ + + /* SLONGLONG: 64bit, signed */ +-#if !defined(_WIN32) && \ +- (defined(_LP64) || defined(__LP64__) || defined(__arch64__) || defined(__alpha) || defined(__x64_64) || defined(__powerpc64__)) ++#include ++#if __WORDSIZE == 64 + typedef long SLONGLONG; + #define NATIVE_64BIT_INT + #elif defined(_WIN64) /* win64 is LLP64, not LP64 */ diff --git a/libmikmod-cflags.patch b/libmikmod-cflags.patch new file mode 100644 index 0000000..b7772b6 --- /dev/null +++ b/libmikmod-cflags.patch @@ -0,0 +1,90 @@ +diff -up libmikmod-3.3.8/configure~ libmikmod-3.3.8/configure +--- libmikmod-3.3.8/configure~ 2015-11-11 11:02:00.000000000 +0100 ++++ libmikmod-3.3.8/configure 2015-11-16 14:04:21.559228528 +0100 +@@ -16783,86 +16783,6 @@ $as_echo "#define HAVE_RTLD_GLOBAL 1" >> + fi + fi + +-# If compiling with gcc, use adequate optimization flags +-if test $ac_cv_c_compiler_gnu = yes +-then +- # On at least x86 platforms, gcc 2.7.2.1 and earlier won't work if -O3 (or +- # -finline-functions) are used. Versions 2.7.2.3, 2.8.x and egcs are ok +- # (didn't test 2.7.2.2). +- # Until there's an easy way to catch broken inlining, we choose flags known +- # to work correctly depending of the compiler version. +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inlining functions is safe" >&5 +-$as_echo_n "checking if inlining functions is safe... " >&6; } +-if ${libmikmod_cv_gcc_inline_safe+:} false +-then : +- $as_echo_n "(cached) " >&6 +-else +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-int +-main (void) +-{ +- +-#if !(defined __GNUC__ && (__GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ > 7)) +-#error inlining functions is not safe +-#endif +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_compile "$LINENO" +-then : +- libmikmod_cv_gcc_inline_safe=yes +-else +- libmikmod_cv_gcc_inline_safe=no +-fi +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libmikmod_cv_gcc_inline_safe" >&5 +-$as_echo "$libmikmod_cv_gcc_inline_safe" >&6; } +- if test $libmikmod_cv_gcc_inline_safe = no +- then +- CFLAGS="$CFLAGS -fno-strength-reduce" +- fi +- CFLAGS="$CFLAGS -ffast-math" +- if test $libmikmod_darwin = yes +- then +- CFLAGS="$CFLAGS -fno-common" +- fi +- if test $libmikmod_debug = yes +- then +- CFLAGS="$CFLAGS -Wall -Werror" +- else +- CFLAGS="$CFLAGS -Wall" +- fi +- +- # pgcc 2.95.2 appears not to be able to compile libmikmod, although regular +- # gcc works fine. Issue a warning if the compiler is pgcc, until a reliable +- # way to detect flawed version (or, better, a reliable workaround) is +- # found. +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is pgcc" >&5 +-$as_echo_n "checking if compiler is pgcc... " >&6; } +- if ($CC -v 2>&1 | grep ^pgcc > /dev/null) 2>/dev/null +- then +- libmikmod_gcc_is_pgcc=yes +- else +- libmikmod_gcc_is_pgcc=no +- fi +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libmikmod_gcc_is_pgcc" >&5 +-$as_echo "$libmikmod_gcc_is_pgcc" >&6; } +- if test $libmikmod_gcc_is_pgcc = yes +- then +- echo " +-*** Version 2.95.2 of this compiler, and perhaps others, are unable to +-*** compile libmikmod. If compilation fails for playercode/virtch.c +-*** around line 650, with the error ``internal error--insn does not +-*** satisfy its constraints'', then you'll have to use another compiler. +-" >&2 +- fi +-fi +- + if test x$libmikmod_threads != xno + then + diff --git a/libmikmod-multilib.patch b/libmikmod-multilib.patch new file mode 100644 index 0000000..173b920 --- /dev/null +++ b/libmikmod-multilib.patch @@ -0,0 +1,12 @@ +diff -up libmikmod-3.3.4/libmikmod-config.in~ libmikmod-3.3.4/libmikmod-config.in +--- libmikmod-3.3.4/libmikmod-config.in~ 2013-11-28 09:00:00.000000000 +0100 ++++ libmikmod-3.3.4/libmikmod-config.in 2013-12-25 10:37:11.519191648 +0100 +@@ -50,7 +50,7 @@ while test $# -gt 0 ; do + echo @LIB_LDADD@ + ;; + --libs) +- echo -L@libdir@ -lmikmod @LIBRARY_LIB@ ++ echo -lmikmod @LIBRARY_LIB@ + ;; + *) + echo "${usage}" 1>&2 diff --git a/libmikmod.spec b/libmikmod.spec new file mode 100644 index 0000000..0ce0515 --- /dev/null +++ b/libmikmod.spec @@ -0,0 +1,72 @@ +Name: libmikmod +Version: 3.3.11.1 +Release: 5 +Summary: MOD Music File Player library +License: GPLv2 and LGPLv2+ +URL: http://mikmod.sourceforge.net/ +Source0: http://downloads.sourceforge.net/mikmod/libmikmod-%{version}.tar.gz +Patch0001: libmikmod-64bit.patch +Patch0002: libmikmod-multilib.patch +Patch0003: libmikmod-cflags.patch +BuildRequires: alsa-lib-devel pulseaudio-libs-devel + +%description +libmikmod is a library of mikmod MOD music file players for systems similar to +UNIX. Supported file formats include: MOD, STM, S3M, MTM, XM, ULT, and IT. + +%package devel +Summary: Header files and documentation for compiling mikmod applications +Provides: mikmod-devel = %{version}-%{release} +Requires: %{name} = %{version}-%{release} pulseaudio-libs-devel +Requires(post): info +Requires(preun): info + +%description devel +The libmikmod-devel package includes header files and libraries necessary +for the libmikmod library. + +%package help +Summary: This package contains help documents +Requires: %{name} = %{version}-%{release} + +%description help +Files for help with libmikmod. + +%prep +%autosetup -n %{name}-%{version} -p1 + +%build +%configure --enable-dl --enable-alsa --disable-simd +%make_build + +%install +%make_install +%delete_la_and_a +%ldconfig_scriptlets + +%post devel +/sbin/install-info %{_infodir}/mikmod.info %{_infodir}/dir || : + +%postun devel +/sbin/install-info --delete %{_infodir}/mikmod.info %{_infodir}/dir || : + +%files +%doc COPYING.LIB COPYING.LESSER +%{_libdir}/libmikmod.so.3* + +%files devel +%{_bindir}/%{name}-config +%{_libdir}/%{name}.so +%{_libdir}/pkgconfig/%{name}.pc +%{_datadir}/aclocal/%{name}.m4 +%{_includedir}/mikmod.h +%{_infodir}/mikmod.info* +%exclude %{_infodir}/dir + +%files help +%doc AUTHORS NEWS README TODO +%{_mandir}/man1/%{name}-config* + +%changelog +* Wed Nov 27 2019 gulining - 3.3.11.1-5 +- Pakcage init