mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Wolfram Sang <w.sang@pengutronix.de>
To: ptxdist@pengutronix.de
Subject: [ptxdist] [PATCH 1/3] libmikmod: add package
Date: Wed, 14 Mar 2012 11:00:44 +0100	[thread overview]
Message-ID: <1331719246-26938-2-git-send-email-w.sang@pengutronix.de> (raw)
In-Reply-To: <1331719246-26938-1-git-send-email-w.sang@pengutronix.de>

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, &micro) != 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

  reply	other threads:[~2012-03-14 10:00 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-14 10:00 [ptxdist] [PATCH 0/3] have 'supertux' with music Wolfram Sang
2012-03-14 10:00 ` Wolfram Sang [this message]
2012-03-14 10:40   ` [ptxdist] [PATCH V2 1/3] libmikmod: add package 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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1331719246-26938-2-git-send-email-w.sang@pengutronix.de \
    --to=w.sang@pengutronix.de \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox