* [ptxdist] [PATCH 1/3] libmikmod: add package
2012-03-14 10:00 [ptxdist] [PATCH 0/3] have 'supertux' with music Wolfram Sang
@ 2012-03-14 10:00 ` Wolfram Sang
2012-03-14 10:40 ` [ptxdist] [PATCH V2 " Wolfram Sang
2012-03-14 10:00 ` [ptxdist] [PATCH 2/3] sdl_mixer: enable MOD support Wolfram Sang
2012-03-14 10:00 ` [ptxdist] [PATCH 3/3] supertux: add library for music Wolfram Sang
2 siblings, 1 reply; 5+ messages in thread
From: Wolfram Sang @ 2012-03-14 10:00 UTC (permalink / raw)
To: ptxdist
needed to extend SDL capabilities for tracker music.
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
---
patches/libmikmod-3.1.12/CVE-2010-2971.patch | 24 +++
patches/libmikmod-3.1.12/autofoo.patch | 16 ++
patches/libmikmod-3.1.12/ldflags.patch | 12 ++
patches/libmikmod-3.1.12/m4.patch | 197 ++++++++++++++++++++++++++
patches/libmikmod-3.1.12/series | 5 +
rules/libmikmod.in | 8 +
rules/libmikmod.make | 76 ++++++++++
7 files changed, 338 insertions(+), 0 deletions(-)
create mode 100644 patches/libmikmod-3.1.12/CVE-2010-2971.patch
create mode 100644 patches/libmikmod-3.1.12/autofoo.patch
create mode 100644 patches/libmikmod-3.1.12/ldflags.patch
create mode 100644 patches/libmikmod-3.1.12/m4.patch
create mode 100644 patches/libmikmod-3.1.12/series
create mode 100644 rules/libmikmod.in
create mode 100644 rules/libmikmod.make
diff --git a/patches/libmikmod-3.1.12/CVE-2010-2971.patch b/patches/libmikmod-3.1.12/CVE-2010-2971.patch
new file mode 100644
index 0000000..94ea8f5
--- /dev/null
+++ b/patches/libmikmod-3.1.12/CVE-2010-2971.patch
@@ -0,0 +1,24 @@
+---
+ loaders/load_it.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- libmikmod-3.1.12.orig/loaders/load_it.c
++++ libmikmod-3.1.12/loaders/load_it.c
+@@ -743,6 +743,8 @@ BOOL IT_Load(BOOL curious)
+ #define IT_LoadEnvelope(name,type) \
+ ih. name##flg =_mm_read_UBYTE(modreader); \
+ ih. name##pts =_mm_read_UBYTE(modreader); \
++ if (ih. name##pts > ITENVCNT) \
++ ih. name##pts = ITENVCNT; \
+ ih. name##beg =_mm_read_UBYTE(modreader); \
+ ih. name##end =_mm_read_UBYTE(modreader); \
+ ih. name##susbeg=_mm_read_UBYTE(modreader); \
+@@ -756,6 +758,8 @@ BOOL IT_Load(BOOL curious)
+ #define IT_LoadEnvelope(name,type) \
+ ih. name/**/flg =_mm_read_UBYTE(modreader); \
+ ih. name/**/pts =_mm_read_UBYTE(modreader); \
++ if (ih. name/**/pts > ITENVCNT) \
++ ih. name/**/pts = ITENVCNT; \
+ ih. name/**/beg =_mm_read_UBYTE(modreader); \
+ ih. name/**/end =_mm_read_UBYTE(modreader); \
+ ih. name/**/susbeg=_mm_read_UBYTE(modreader); \
diff --git a/patches/libmikmod-3.1.12/autofoo.patch b/patches/libmikmod-3.1.12/autofoo.patch
new file mode 100644
index 0000000..22d8170
--- /dev/null
+++ b/patches/libmikmod-3.1.12/autofoo.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- libmikmod-3.2.0-beta2/configure.in~autofoo
++++ libmikmod-3.2.0-beta2/configure.in
+@@ -415,8 +415,6 @@
+
+ AC_CHECK_FUNCS(setenv snprintf srandom)
+ AC_REPLACE_FUNCS(strcasecmp strdup strstr)
+-# Change extension, as we use libtool
+-LIBOBJS="`echo $LIBOBJS|sed -e 's/\.o/\.lo/g'`"
+
+ AC_HEADER_EGREP(srandom,math.h,AC_DEFINE(SRANDOM_IN_MATH_H))
+
diff --git a/patches/libmikmod-3.1.12/ldflags.patch b/patches/libmikmod-3.1.12/ldflags.patch
new file mode 100644
index 0000000..4261379
--- /dev/null
+++ b/patches/libmikmod-3.1.12/ldflags.patch
@@ -0,0 +1,12 @@
+diff -urN libmikmod-3.1.12.orig/libmikmod/Makefile.in libmikmod-3.1.12/libmikmod/Makefile.in
+--- libmikmod-3.1.12.orig/libmikmod/Makefile.in 2004-01-21 17:43:52.000000000 +0000
++++ libmikmod-3.1.12/libmikmod/Makefile.in 2009-04-02 11:28:01.000000000 +0000
+@@ -72,7 +72,7 @@
+ rm -f Makefile
+
+ $(LIB): $(OBJ)
+- $(LIBTOOL) --mode=link $(CC) -version-info 2:4:0 -o $@ $(OBJ) $(LIBRARY_LIB) -rpath $(DESTDIR)$(libdir)
++ $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -version-info 2:4:0 -o $@ $(OBJ) $(LIBRARY_LIB) -rpath $(DESTDIR)$(libdir)
+
+ dl_hpux.lo: $(top_srcdir)/dlapi/dl_hpux.c \
+ $(top_srcdir)/dlapi/dlfcn.h
diff --git a/patches/libmikmod-3.1.12/m4.patch b/patches/libmikmod-3.1.12/m4.patch
new file mode 100644
index 0000000..ac7f2d7
--- /dev/null
+++ b/patches/libmikmod-3.1.12/m4.patch
@@ -0,0 +1,197 @@
+--- /dev/null
++++ libmikmod-3.2.0-beta2/m4/esd.m4
+@@ -0,0 +1,194 @@
++# Configure paths for ESD
++# Manish Singh 98-9-30
++# stolen back from Frank Belew
++# stolen from Manish Singh
++# Shamelessly stolen from Owen Taylor
++
++dnl AM_PATH_ESD([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
++dnl Test for ESD, and define ESD_CFLAGS and ESD_LIBS
++dnl
++AC_DEFUN(AM_PATH_ESD,
++[dnl
++dnl Get the cflags and libraries from the esd-config script
++dnl
++AC_ARG_WITH(esd-prefix,[ --with-esd-prefix=PFX Prefix where ESD is installed (optional)],
++ esd_prefix="$withval", esd_prefix="")
++AC_ARG_WITH(esd-exec-prefix,[ --with-esd-exec-prefix=PFX Exec prefix where ESD is installed (optional)],
++ esd_exec_prefix="$withval", esd_exec_prefix="")
++AC_ARG_ENABLE(esdtest, [ --disable-esdtest Do not try to compile and run a test ESD program],
++ , enable_esdtest=yes)
++
++ if test x$esd_exec_prefix != x ; then
++ esd_args="$esd_args --exec-prefix=$esd_exec_prefix"
++ if test x${ESD_CONFIG+set} != xset ; then
++ ESD_CONFIG=$esd_exec_prefix/bin/esd-config
++ fi
++ fi
++ if test x$esd_prefix != x ; then
++ esd_args="$esd_args --prefix=$esd_prefix"
++ if test x${ESD_CONFIG+set} != xset ; then
++ ESD_CONFIG=$esd_prefix/bin/esd-config
++ fi
++ fi
++
++ AC_PATH_PROG(ESD_CONFIG, esd-config, no)
++ min_esd_version=ifelse([$1], ,0.2.7,$1)
++ AC_MSG_CHECKING(for ESD - version >= $min_esd_version)
++ no_esd=""
++ if test "$ESD_CONFIG" = "no" ; then
++ no_esd=yes
++ else
++ AC_LANG_SAVE
++ AC_LANG_C
++ ESD_CFLAGS=`$ESD_CONFIG $esdconf_args --cflags`
++ ESD_LIBS=`$ESD_CONFIG $esdconf_args --libs`
++
++ esd_major_version=`$ESD_CONFIG $esd_args --version | \
++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
++ esd_minor_version=`$ESD_CONFIG $esd_args --version | \
++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
++ esd_micro_version=`$ESD_CONFIG $esd_config_args --version | \
++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
++ if test "x$enable_esdtest" = "xyes" ; then
++ ac_save_CFLAGS="$CFLAGS"
++ ac_save_LIBS="$LIBS"
++ CFLAGS="$CFLAGS $ESD_CFLAGS"
++ LIBS="$LIBS $ESD_LIBS"
++dnl
++dnl Now check if the installed ESD is sufficiently new. (Also sanity
++dnl checks the results of esd-config to some extent
++dnl
++ rm -f conf.esdtest
++ AC_TRY_RUN([
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <esd.h>
++
++char*
++my_strdup (char *str)
++{
++ char *new_str;
++
++ if (str)
++ {
++ new_str = malloc ((strlen (str) + 1) * sizeof(char));
++ strcpy (new_str, str);
++ }
++ else
++ new_str = NULL;
++
++ return new_str;
++}
++
++int main ()
++{
++ int major, minor, micro;
++ char *tmp_version;
++
++ system ("touch conf.esdtest");
++
++ /* HP/UX 9 (%@#!) writes to sscanf strings */
++ tmp_version = my_strdup("$min_esd_version");
++ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
++ printf("%s, bad version string\n", "$min_esd_version");
++ exit(1);
++ }
++
++ if (($esd_major_version > major) ||
++ (($esd_major_version == major) && ($esd_minor_version > minor)) ||
++ (($esd_major_version == major) && ($esd_minor_version == minor) && ($esd_micro_version >= micro)))
++ {
++ return 0;
++ }
++ else
++ {
++ printf("\n*** 'esd-config --version' returned %d.%d.%d, but the minimum version\n", $esd_major_version, $esd_minor_version, $esd_micro_version);
++ printf("*** of ESD required is %d.%d.%d. If esd-config is correct, then it is\n", major, minor, micro);
++ printf("*** best to upgrade to the required version.\n");
++ printf("*** If esd-config was wrong, set the environment variable ESD_CONFIG\n");
++ printf("*** to point to the correct copy of esd-config, and remove the file\n");
++ printf("*** config.cache before re-running configure\n");
++ return 1;
++ }
++}
++
++],, no_esd=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
++ CFLAGS="$ac_save_CFLAGS"
++ LIBS="$ac_save_LIBS"
++ AC_LANG_RESTORE
++ fi
++ fi
++ if test "x$no_esd" = x ; then
++ AC_MSG_RESULT(yes)
++ ifelse([$2], , :, [$2])
++ else
++ AC_MSG_RESULT(no)
++ if test "$ESD_CONFIG" = "no" ; then
++ echo "*** The esd-config script installed by ESD could not be found"
++ echo "*** If ESD was installed in PREFIX, make sure PREFIX/bin is in"
++ echo "*** your path, or set the ESD_CONFIG environment variable to the"
++ echo "*** full path to esd-config."
++ else
++ if test -f conf.esdtest ; then
++ :
++ else
++ echo "*** Could not run ESD test program, checking why..."
++ CFLAGS="$CFLAGS $ESD_CFLAGS"
++ LIBS="$LIBS $ESD_LIBS"
++ AC_LANG_SAVE
++ AC_LANG_C
++ AC_TRY_LINK([
++#include <stdio.h>
++#include <esd.h>
++], [ return 0; ],
++ [ echo "*** The test program compiled, but did not run. This usually means"
++ echo "*** that the run-time linker is not finding ESD or finding the wrong"
++ echo "*** version of ESD. If it is not finding ESD, you'll need to set your"
++ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
++ echo "*** to the installed location Also, make sure you have run ldconfig if that"
++ echo "*** is required on your system"
++ echo "***"
++ echo "*** If you have an old version installed, it is best to remove it, although"
++ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
++ [ echo "*** The test program failed to compile or link. See the file config.log for the"
++ echo "*** exact error that occured. This usually means ESD was incorrectly installed"
++ echo "*** or that you have moved ESD since it was installed. In the latter case, you"
++ echo "*** may want to edit the esd-config script: $ESD_CONFIG" ])
++ CFLAGS="$ac_save_CFLAGS"
++ LIBS="$ac_save_LIBS"
++ AC_LANG_RESTORE
++ fi
++ fi
++ ESD_CFLAGS=""
++ ESD_LIBS=""
++ ifelse([$3], , :, [$3])
++ fi
++ AC_SUBST(ESD_CFLAGS)
++ AC_SUBST(ESD_LIBS)
++ rm -f conf.esdtest
++])
++
++dnl AM_ESD_SUPPORTS_MULTIPLE_RECORD([ACTION-IF-SUPPORTS [, ACTION-IF-NOT-SUPPORTS]])
++dnl Test, whether esd supports multiple recording clients (version >=0.2.21)
++dnl
++AC_DEFUN(AM_ESD_SUPPORTS_MULTIPLE_RECORD,
++[dnl
++ AC_MSG_NOTICE([whether installed esd version supports multiple recording clients])
++ ac_save_ESD_CFLAGS="$ESD_CFLAGS"
++ ac_save_ESD_LIBS="$ESD_LIBS"
++ AM_PATH_ESD(0.2.21,
++ ifelse([$1], , [
++ AM_CONDITIONAL(ESD_SUPPORTS_MULTIPLE_RECORD, true)
++ AC_DEFINE(ESD_SUPPORTS_MULTIPLE_RECORD, 1,
++ [Define if you have esound with support of multiple recording clients.])],
++ [$1]),
++ ifelse([$2], , [AM_CONDITIONAL(ESD_SUPPORTS_MULTIPLE_RECORD, false)], [$2])
++ if test "x$ac_save_ESD_CFLAGS" != x ; then
++ ESD_CFLAGS="$ac_save_ESD_CFLAGS"
++ fi
++ if test "x$ac_save_ESD_LIBS" != x ; then
++ ESD_LIBS="$ac_save_ESD_LIBS"
++ fi
++ )
++])
diff --git a/patches/libmikmod-3.1.12/series b/patches/libmikmod-3.1.12/series
new file mode 100644
index 0000000..a773aab
--- /dev/null
+++ b/patches/libmikmod-3.1.12/series
@@ -0,0 +1,5 @@
+#taken from OE (as of 8a4bf368fc745d8e0d51c3f93be9936b82029165)
+m4.patch
+autofoo.patch
+ldflags.patch
+CVE-2010-2971.patch
diff --git a/rules/libmikmod.in b/rules/libmikmod.in
new file mode 100644
index 0000000..dc29e0f
--- /dev/null
+++ b/rules/libmikmod.in
@@ -0,0 +1,8 @@
+## SECTION=multimedia_sound
+
+config LIBMIKMOD
+ tristate
+ prompt "libmikmod "
+ help
+ libmikmod is a module player library supporting many formats,
+ including mod, s3m, it, and xm.
diff --git a/rules/libmikmod.make b/rules/libmikmod.make
new file mode 100644
index 0000000..bdc1bdc
--- /dev/null
+++ b/rules/libmikmod.make
@@ -0,0 +1,76 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2012 by Wolfram Sang <w.sang@pengutronix.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBMIKMOD) += libmikmod
+
+#
+# Paths and names
+#
+LIBMIKMOD_VERSION := 3.1.12
+LIBMIKMOD_MD5 := 9f3c740298260d5f88981fc0d51f6f16
+LIBMIKMOD := libmikmod-$(LIBMIKMOD_VERSION)
+LIBMIKMOD_SUFFIX := tar.gz
+LIBMIKMOD_URL := http://downloads.sourceforge.net/mikmod/$(LIBMIKMOD).$(LIBMIKMOD_SUFFIX)
+LIBMIKMOD_SOURCE := $(SRCDIR)/$(LIBMIKMOD).$(LIBMIKMOD_SUFFIX)
+LIBMIKMOD_DIR := $(BUILDDIR)/$(LIBMIKMOD)
+LIBMIKMOD_LICENSE := LGPLv2+
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+$(LIBMIKMOD_SOURCE):
+ @$(call targetinfo)
+ @$(call get, LIBMIKMOD)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LIBMIKMOD_PATH := PATH=$(CROSS_PATH)
+LIBMIKMOD_ENV := $(CROSS_ENV)
+
+#
+# autoconf
+#
+LIBMIKMOD_AUTOCONF := \
+ $(CROSS_AUTOCONF_USR) \
+ --disable-af \
+ --enable-alsa \
+ --disable-esd \
+ --disable-oss \
+ --disable-sam9407 \
+ --disable-ultra \
+ --disable-esdtest \
+ --enable-threads
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libmikmod.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libmikmod)
+ @$(call install_fixup, libmikmod, PRIORITY, optional)
+ @$(call install_fixup, libmikmod, SECTION, base)
+ @$(call install_fixup, libmikmod, AUTHOR, "Wolfram Sang <w.sang@pengutronix.de>")
+ @$(call install_fixup, libmikmod, DESCRIPTION, missing)
+
+ @$(call install_lib, libmikmod, 0, 0, 0644, libmikmod)
+
+ @$(call install_finish, libmikmod)
+
+ @$(call touch)
+
+# vim: syntax=make
--
1.7.9.1
--
ptxdist mailing list
ptxdist@pengutronix.de
^ permalink raw reply [flat|nested] 5+ messages in thread