From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: From: Wolfram Sang Date: Wed, 14 Mar 2012 11:00:44 +0100 Message-Id: <1331719246-26938-2-git-send-email-w.sang@pengutronix.de> In-Reply-To: <1331719246-26938-1-git-send-email-w.sang@pengutronix.de> References: <1331719246-26938-1-git-send-email-w.sang@pengutronix.de> Subject: [ptxdist] [PATCH 1/3] libmikmod: add package Reply-To: ptxdist@pengutronix.de List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: ptxdist-bounces@pengutronix.de Errors-To: ptxdist-bounces@pengutronix.de To: ptxdist@pengutronix.de needed to extend SDL capabilities for tracker music. Signed-off-by: Wolfram Sang --- 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 ++#include ++#include ++#include ++ ++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 ++#include ++], [ 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 +# +# 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 ") + @$(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