diff options
Diffstat (limited to 'package')
43 files changed, 845 insertions, 371 deletions
diff --git a/package/adkinstall/Makefile b/package/adkinstall/Makefile index 8cea27683..9d5d74cfd 100644 --- a/package/adkinstall/Makefile +++ b/package/adkinstall/Makefile @@ -11,6 +11,8 @@ PKG_SECTION:= base PKG_DEPENDS:= parted sfdisk mke2fs PKG_URL:= http://openadk.org/ +PKG_ARCH_DEPENDS:= !m68k + WRKDIST= ${WRKDIR}/${PKG_NAME}-${PKG_VERSION} NO_DISTFILES:= 1 diff --git a/package/alsa-lib/Makefile b/package/alsa-lib/Makefile index 01d5fee2e..3be639ffa 100644 --- a/package/alsa-lib/Makefile +++ b/package/alsa-lib/Makefile @@ -24,8 +24,7 @@ $(eval $(call PKG_template,ALSA_LIB,alsa-lib,${PKG_VERSION}-${PKG_RELEASE},${PKG $(eval $(call PKG_template,ALSA_LIB_DEV,alsa-lib-dev,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_ALSA_LIB_DEV},${PKGSC_ALSA_LIB_DEV})) TARGET_CPPFLAGS+= -D_POSIX_C_SOURCE=1 -CONFIGURE_ARGS+= --disable-python \ - --without-versioned +CONFIGURE_ARGS+= --disable-python alsa-lib-install: ${INSTALL_DIR} ${IDIR_ALSA_LIB}/usr/lib ${IDIR_ALSA_LIB}/usr/share/alsa diff --git a/package/bcm2835-firmware/Makefile b/package/bcm2835-firmware/Makefile index 565064dda..f88910535 100644 --- a/package/bcm2835-firmware/Makefile +++ b/package/bcm2835-firmware/Makefile @@ -4,9 +4,10 @@ include ${TOPDIR}/rules.mk PKG_NAME:= bcm2835-firmware -PKG_VERSION:= 0.3 +# actually 5113ce63be622e50c1b3ec309798e5d091d219ac from 12.10.2013 +PKG_VERSION:= 0.4 PKG_RELEASE:= 1 -PKG_MD5SUM:= c05d3ceac71e884a95d7731cc2b5f39f +PKG_MD5SUM:= e7f4caa11f26d5af07ae45128b2ac328 PKG_DESCR:= firmware for raspberry pi (bcm2835) PKG_SECTION:= base PKG_SITES:= http://openadk.org/distfiles/ diff --git a/package/bcm2835-vc/Makefile b/package/bcm2835-vc/Makefile index 1251ce8d3..97c818199 100644 --- a/package/bcm2835-vc/Makefile +++ b/package/bcm2835-vc/Makefile @@ -13,11 +13,8 @@ PKG_SECTION:= base PKG_DEPENDS:= libpthread PKG_SITES:= http://openadk.org/distfiles/ -PKG_LIBC_DEPENDS:= eglibc glibc PKG_SYSTEM_DEPENDS:= raspberry-pi -PKG_SUBPKGS:= BCM2835_VC - include ${TOPDIR}/mk/package.mk $(eval $(call PKG_template,BCM2835_VC,bcm2835-vc,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) @@ -25,7 +22,7 @@ $(eval $(call PKG_template,BCM2835_VC,bcm2835-vc,${PKG_VERSION}-${PKG_RELEASE},$ CONFIG_STYLE:= manual do-configure: - (cd $(WRKBUILD) && cmake .) + (cd $(WRKBUILD) && cmake -DCMAKE_SYSTEM_NAME=Linux .) bcm2835-vc-install: $(INSTALL_DIR) ${IDIR_BCM2835_VC}/opt/vc/{bin,lib} diff --git a/package/bcm2835-vc/patches/patch-interface_vcos_pthreads_vcos_platform_h b/package/bcm2835-vc/patches/patch-interface_vcos_pthreads_vcos_platform_h new file mode 100644 index 000000000..95b5d480b --- /dev/null +++ b/package/bcm2835-vc/patches/patch-interface_vcos_pthreads_vcos_platform_h @@ -0,0 +1,12 @@ +--- bcm2835-vc-0.3.orig/interface/vcos/pthreads/vcos_platform.h 2013-09-27 14:22:08.000000000 +0200 ++++ bcm2835-vc-0.3/interface/vcos/pthreads/vcos_platform.h 2013-10-13 20:20:55.000000000 +0200 +@@ -120,9 +120,6 @@ typedef struct + + #define VCOS_ONCE_INIT PTHREAD_ONCE_INIT + +-#if defined(__arm__) && !defined(_HAVE_TIMER_T) && !defined(ANDROID) +-typedef __timer_t timer_t; +-#endif + typedef struct VCOS_TIMER_T + { + pthread_t thread; /**< id of the timer thread */ diff --git a/package/bcm2835-vc/patches/patch-interface_vcos_pthreads_vcos_pthreads_c b/package/bcm2835-vc/patches/patch-interface_vcos_pthreads_vcos_pthreads_c new file mode 100644 index 000000000..583fe04f3 --- /dev/null +++ b/package/bcm2835-vc/patches/patch-interface_vcos_pthreads_vcos_pthreads_c @@ -0,0 +1,11 @@ +--- bcm2835-vc-0.3.orig/interface/vcos/pthreads/vcos_pthreads.c 2013-09-27 14:22:08.000000000 +0200 ++++ bcm2835-vc-0.3/interface/vcos/pthreads/vcos_pthreads.c 2013-10-14 19:44:50.000000000 +0200 +@@ -580,7 +580,7 @@ const char ** vcos_get_argv(void) + */ + uint32_t _vcos_get_ticks_per_second(void) + { +- return HZ; ++ return 100; + } + + VCOS_STATUS_T vcos_once(VCOS_ONCE_T *once_control, diff --git a/package/bcm2835-vc/patches/patch-interface_vmcs_host_linux_vcfilesys_c b/package/bcm2835-vc/patches/patch-interface_vmcs_host_linux_vcfilesys_c new file mode 100644 index 000000000..c5419c90d --- /dev/null +++ b/package/bcm2835-vc/patches/patch-interface_vmcs_host_linux_vcfilesys_c @@ -0,0 +1,22 @@ +--- bcm2835-vc-0.3.orig/interface/vmcs_host/linux/vcfilesys.c 2013-09-27 14:22:08.000000000 +0200 ++++ bcm2835-vc-0.3/interface/vmcs_host/linux/vcfilesys.c 2013-10-14 20:10:02.000000000 +0200 +@@ -49,10 +49,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI + #include <ctype.h> + #include <limits.h> + +-#if !defined(ANDROID) && !defined( __USE_FILE_OFFSET64 ) +-#error "__USE_FILE_OFFSET64 isn't defined" +-#endif +- + #include "interface/vcos/vcos.h" + + /* Some hackery to prevent a clash with the Linux type of the same name */ +@@ -916,7 +912,7 @@ int vc_hostfs_set_attr(const char *path, + + if (pathbuf) + { +- __mode_t mode = 0; ++ mode_t mode = 0; + struct stat sb; + + backslash_to_slash(pathbuf); diff --git a/package/boost/Makefile b/package/boost/Makefile index d0ac60891..93f5fba55 100644 --- a/package/boost/Makefile +++ b/package/boost/Makefile @@ -9,15 +9,14 @@ PKG_RELEASE:= 2 PKG_MD5SUM:= efbfbff5a85a9330951f243d0a46e4b9 PKG_DESCR:= boost C++ library PKG_SECTION:= libs -PKG_BUILDDEP:= gettext-tiny PKG_URL:= http://www.boost.org/ PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=boost/} +PKG_ARCH_DEPENDS:= !avr32 + DISTFILES:= boost_1_54_0.tar.gz WRKDIST= ${WRKDIR}/${PKG_NAME}_1_54_0 -PKG_LIBC_DEPENDS:= eglibc glibc musl - PKG_SUBPKGS:= BOOST BOOST_DEV PKGSD_BOOST_DEV:= boost header files PKGSC_BOOST_DEV:= devel @@ -61,6 +60,8 @@ CONFIGURE_ARGS += \ --build=$(GNU_HOST_NAME) \ --prefix=${WRKINST}/usr \ +CONFIGURE_ARGS+=--without-locale + ifneq (${ADK_PACKAGE_BOOST_IOSTREAMS},) CONFIGURE_ARGS += -sNO_BZIP2=1 -sZLIB_INCLUDE=${STAGING_DIR}/usr/include -sZLIB_LIBPATH=${STAGING_DIR}/usr/lib else diff --git a/package/eglibc/Makefile b/package/eglibc/Makefile index 3261ba314..98c6b2de9 100644 --- a/package/eglibc/Makefile +++ b/package/eglibc/Makefile @@ -3,7 +3,6 @@ include $(TOPDIR)/rules.mk include $(TOPDIR)/toolchain/eglibc/Makefile.inc -include $(TOPDIR)/toolchain/eglibc/Makefile.multilib PKG_DESCR:= embedded GNU C library PKG_SECTION:= base diff --git a/package/ffmpeg/Makefile b/package/ffmpeg/Makefile index 131d1856a..9c4cea01c 100644 --- a/package/ffmpeg/Makefile +++ b/package/ffmpeg/Makefile @@ -4,16 +4,16 @@ include ${TOPDIR}/rules.mk PKG_NAME:= ffmpeg -PKG_VERSION:= 2.0.1 +PKG_VERSION:= 2.0.2 PKG_RELEASE:= 2 -PKG_MD5SUM:= dd71a1baedb2daa3e4d21e0651daa918 +PKG_MD5SUM:= 6c5cfed204d8a108325d1fc439ab734a PKG_DESCR:= record, convert and stream audio & video PKG_SECTION:= libs PKG_FDEPENDS:= libpthread PKG_URL:= http://www.ffmpeg.org/ PKG_SITES:= http://www.ffmpeg.org/releases/ -PKG_ARCH_DEPENDS:= !cris +PKG_ARCH_DEPENDS:= !avr32 !cris PKG_SUBPKGS:= LIBFFMPEG FFSERVER FFPROBE FFMPEG #PKGSD_FFPLAY:= ffmpeg based video player diff --git a/package/ffmpeg/patches/patch-libavcodec_arm_Makefile b/package/ffmpeg/patches/patch-libavcodec_arm_Makefile new file mode 100644 index 000000000..f504f60f9 --- /dev/null +++ b/package/ffmpeg/patches/patch-libavcodec_arm_Makefile @@ -0,0 +1,12 @@ +--- ffmpeg-2.0.1.orig/libavcodec/arm/Makefile 2013-08-11 01:23:24.000000000 +0200 ++++ ffmpeg-2.0.1/libavcodec/arm/Makefile 2013-10-14 17:47:19.000000000 +0200 +@@ -52,7 +52,8 @@ ARMV6-OBJS-$(CONFIG_VP8_DECODER) + + arm/vp8dsp_init_armv6.o \ + arm/vp8dsp_armv6.o + +-VFP-OBJS-$(HAVE_ARMV6) += arm/fmtconvert_vfp.o ++VFP-OBJS-$(HAVE_ARMV6) += arm/fmtconvert_vfp.o \ ++ arm/synth_filter_vfp.o + + NEON-OBJS += arm/fmtconvert_neon.o + diff --git a/package/ffmpeg/patches/patch-libavcodec_arm_fft_init_arm_c b/package/ffmpeg/patches/patch-libavcodec_arm_fft_init_arm_c new file mode 100644 index 000000000..dc562a061 --- /dev/null +++ b/package/ffmpeg/patches/patch-libavcodec_arm_fft_init_arm_c @@ -0,0 +1,25 @@ +--- ffmpeg-2.0.2.orig/libavcodec/arm/fft_init_arm.c 2013-10-08 19:52:31.000000000 +0200 ++++ ffmpeg-2.0.2/libavcodec/arm/fft_init_arm.c 2013-10-16 12:59:04.000000000 +0200 +@@ -32,6 +32,12 @@ void ff_mdct_calc_neon(FFTContext *s, FF + + void ff_rdft_calc_neon(struct RDFTContext *s, FFTSample *z); + ++void ff_synth_filter_float_vfp(FFTContext *imdct, ++ float *synth_buf_ptr, int *synth_buf_offset, ++ float synth_buf2[32], const float window[512], ++ float out[32], const float in[32], ++ float scale); ++ + void ff_synth_filter_float_neon(FFTContext *imdct, + float *synth_buf_ptr, int *synth_buf_offset, + float synth_buf2[32], const float window[512], +@@ -71,6 +77,9 @@ av_cold void ff_synth_filter_init_arm(Sy + { + int cpu_flags = av_get_cpu_flags(); + ++ if (have_vfp(cpu_flags)) ++ s->synth_filter_float = ff_synth_filter_float_vfp; ++ + if (have_neon(cpu_flags)) + s->synth_filter_float = ff_synth_filter_float_neon; + } diff --git a/package/ffmpeg/src/libavcodec/arm/synth_filter_vfp.S b/package/ffmpeg/src/libavcodec/arm/synth_filter_vfp.S new file mode 100644 index 000000000..451fe5ce9 --- /dev/null +++ b/package/ffmpeg/src/libavcodec/arm/synth_filter_vfp.S @@ -0,0 +1,206 @@ +/* + * Copyright (c) 2013 RISC OS Open Ltd + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: Ben Avison <bavison@riscosopen.org> + */ + +#include "libavutil/arm/asm.S" + +IMDCT .req r0 +ORIG_P_SB .req r1 +P_SB_OFF .req r2 +I .req r0 +P_SB2_UP .req r1 +OLDFPSCR .req r2 +P_SB2_DN .req r3 +P_WIN_DN .req r4 +P_OUT_DN .req r5 +P_SB .req r6 +J_WRAP .req r7 +P_WIN_UP .req r12 +P_OUT_UP .req r14 + +SCALE .req s0 +SBUF_DAT_REV0 .req s4 +SBUF_DAT_REV1 .req s5 +SBUF_DAT_REV2 .req s6 +SBUF_DAT_REV3 .req s7 +VA0 .req s8 +VA3 .req s11 +VB0 .req s12 +VB3 .req s15 +VC0 .req s8 +VC3 .req s11 +VD0 .req s12 +VD3 .req s15 +SBUF_DAT0 .req s16 +SBUF_DAT1 .req s17 +SBUF_DAT2 .req s18 +SBUF_DAT3 .req s19 +SBUF_DAT_ALT0 .req s20 +SBUF_DAT_ALT1 .req s21 +SBUF_DAT_ALT2 .req s22 +SBUF_DAT_ALT3 .req s23 +WIN_DN_DAT0 .req s24 +WIN_UP_DAT0 .req s28 + + +.macro inner_loop half, tail, head + .if (OFFSET & (64*4)) == 0 @ even numbered call + SBUF_DAT_THIS0 .req SBUF_DAT0 + SBUF_DAT_THIS1 .req SBUF_DAT1 + SBUF_DAT_THIS2 .req SBUF_DAT2 + SBUF_DAT_THIS3 .req SBUF_DAT3 + .ifnc "\head","" + vldr d8, [P_SB, #OFFSET] @ d8 = SBUF_DAT + vldr d9, [P_SB, #OFFSET+8] + .endif + .else + SBUF_DAT_THIS0 .req SBUF_DAT_ALT0 + SBUF_DAT_THIS1 .req SBUF_DAT_ALT1 + SBUF_DAT_THIS2 .req SBUF_DAT_ALT2 + SBUF_DAT_THIS3 .req SBUF_DAT_ALT3 + .ifnc "\head","" + vldr d10, [P_SB, #OFFSET] @ d10 = SBUF_DAT_ALT + vldr d11, [P_SB, #OFFSET+8] + .endif + .endif + .ifnc "\tail","" + .ifc "\half","ab" + vmls.f VA0, SBUF_DAT_REV0, WIN_DN_DAT0 @ all operands treated as vectors + .else + vmla.f VD0, SBUF_DAT_REV0, WIN_DN_DAT0 @ all operands treated as vectors + .endif + .endif + .ifnc "\head","" + vldr d14, [P_WIN_UP, #OFFSET] @ d14 = WIN_UP_DAT + vldr d15, [P_WIN_UP, #OFFSET+8] + vldr d12, [P_WIN_DN, #OFFSET] @ d12 = WIN_DN_DAT + vldr d13, [P_WIN_DN, #OFFSET+8] + vmov SBUF_DAT_REV3, SBUF_DAT_THIS0 + vmov SBUF_DAT_REV2, SBUF_DAT_THIS1 + vmov SBUF_DAT_REV1, SBUF_DAT_THIS2 + vmov SBUF_DAT_REV0, SBUF_DAT_THIS3 + .ifc "\half","ab" + vmla.f VB0, SBUF_DAT_THIS0, WIN_UP_DAT0 + .else + vmla.f VC0, SBUF_DAT_THIS0, WIN_UP_DAT0 + .endif + teq J_WRAP, #J + bne 2f @ strongly predictable, so better than cond exec in this case + sub P_SB, P_SB, #512*4 +2: + .set J, J - 64 + .set OFFSET, OFFSET + 64*4 + .endif + .unreq SBUF_DAT_THIS0 + .unreq SBUF_DAT_THIS1 + .unreq SBUF_DAT_THIS2 + .unreq SBUF_DAT_THIS3 +.endm + + +/* void ff_synth_filter_float_vfp(FFTContext *imdct, + * float *synth_buf_ptr, int *synth_buf_offset, + * float synth_buf2[32], const float window[512], + * float out[32], const float in[32], float scale) + */ +function ff_synth_filter_float_vfp, export=1 + push {r3-r7,lr} + vpush {s16-s31} + ldr lr, [P_SB_OFF] + add a2, ORIG_P_SB, lr, LSL #2 @ calculate synth_buf to pass to imdct_half + mov P_SB, a2 @ and keep a copy for ourselves + bic J_WRAP, lr, #63 @ mangled to make testing for wrap easier in inner loop + sub lr, lr, #32 + and lr, lr, #512-32 + str lr, [P_SB_OFF] @ rotate offset, modulo buffer size, ready for next call + ldr a3, [sp, #(16+6+2)*4] @ fetch in from stack, to pass to imdct_half +VFP vmov s16, SCALE @ imdct_half is free to corrupt s0, but it contains one of our arguments in hardfp case + bl ff_imdct_half_c +VFP vmov SCALE, s16 + + vmrs OLDFPSCR, FPSCR + ldr lr, =0x03030000 @ RunFast mode, short vectors of length 4, stride 1 + vmsr FPSCR, lr + ldr P_SB2_DN, [sp, #16*4] + ldr P_WIN_DN, [sp, #(16+6+0)*4] + ldr P_OUT_DN, [sp, #(16+6+1)*4] +NOVFP vldr SCALE, [sp, #(16+6+3)*4] + +#define IMM_OFF_SKEW 956 /* also valid immediate constant when you add 16*4 */ + add P_SB, P_SB, #IMM_OFF_SKEW @ so we can use -ve offsets to use full immediate offset range + add P_SB2_UP, P_SB2_DN, #16*4 + add P_WIN_UP, P_WIN_DN, #16*4+IMM_OFF_SKEW + add P_OUT_UP, P_OUT_DN, #16*4 + add P_SB2_DN, P_SB2_DN, #16*4 + add P_WIN_DN, P_WIN_DN, #12*4+IMM_OFF_SKEW + add P_OUT_DN, P_OUT_DN, #16*4 + mov I, #4 +1: + vldmia P_SB2_UP!, {VB0-VB3} + vldmdb P_SB2_DN!, {VA0-VA3} + .set J, 512 - 64 + .set OFFSET, -IMM_OFF_SKEW + inner_loop ab,, head + .rept 7 + inner_loop ab, tail, head + .endr + inner_loop ab, tail + add P_WIN_UP, P_WIN_UP, #4*4 + sub P_WIN_DN, P_WIN_DN, #4*4 + vmul.f VB0, VB0, SCALE @ SCALE treated as scalar + add P_SB, P_SB, #(512+4)*4 + subs I, I, #1 + vmul.f VA0, VA0, SCALE + vstmia P_OUT_UP!, {VB0-VB3} + vstmdb P_OUT_DN!, {VA0-VA3} + bne 1b + + add P_SB2_DN, P_SB2_DN, #(16+28-12)*4 + sub P_SB2_UP, P_SB2_UP, #(16+16)*4 + add P_WIN_DN, P_WIN_DN, #(32+16+28-12)*4 + mov I, #4 +1: + vldr.d d4, zero @ d4 = VC0 + vldr.d d5, zero + vldr.d d6, zero @ d6 = VD0 + vldr.d d7, zero + .set J, 512 - 64 + .set OFFSET, -IMM_OFF_SKEW + inner_loop cd,, head + .rept 7 + inner_loop cd, tail, head + .endr + inner_loop cd, tail + add P_WIN_UP, P_WIN_UP, #4*4 + sub P_WIN_DN, P_WIN_DN, #4*4 + add P_SB, P_SB, #(512+4)*4 + subs I, I, #1 + vstmia P_SB2_UP!, {VC0-VC3} + vstmdb P_SB2_DN!, {VD0-VD3} + bne 1b + + vmsr FPSCR, OLDFPSCR + vpop {s16-s31} + pop {r3-r7,pc} +endfunc + + .align 3 +zero: .word 0, 0 diff --git a/package/glibc/Makefile b/package/glibc/Makefile index 7f0a1f8c7..a03a5c8bd 100644 --- a/package/glibc/Makefile +++ b/package/glibc/Makefile @@ -7,7 +7,6 @@ TARGET_CFLAGS:= $(filter-out -fstack-protector,$(TARGET_CFLAGS)) TARGET_CFLAGS:= $(filter-out -flto,$(TARGET_CFLAGS)) include $(TOPDIR)/toolchain/glibc/Makefile.inc -include $(TOPDIR)/toolchain/glibc/Makefile.multilib PKG_DESCR:= GNU C library PKG_SECTION:= base diff --git a/package/libid3tag/Makefile b/package/libid3tag/Makefile index 972daf556..d2819bf9f 100644 --- a/package/libid3tag/Makefile +++ b/package/libid3tag/Makefile @@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk PKG_NAME:= libid3tag PKG_VERSION:= 0.15.1b -PKG_RELEASE:= 1 +PKG_RELEASE:= 2 PKG_MD5SUM:= e5808ad997ba32c498803822078748c3 PKG_DESCR:= an ID3 tag manipulation library PKG_SECTION:= libs diff --git a/package/libid3tag/patches/patch-compat_gperf b/package/libid3tag/patches/patch-compat_gperf new file mode 100644 index 000000000..a70837638 --- /dev/null +++ b/package/libid3tag/patches/patch-compat_gperf @@ -0,0 +1,13 @@ +--- libid3tag-0.15.1b.orig/compat.gperf 2004-01-23 10:41:32.000000000 +0100 ++++ libid3tag-0.15.1b/compat.gperf 2013-10-16 12:34:31.000000000 +0200 +@@ -236,6 +236,10 @@ int id3_compat_fixup(struct id3_tag *tag + + encoding = id3_parse_uint(&data, 1); + string = id3_parse_string(&data, end - data, encoding, 0); ++ if (!string) ++ { ++ continue; ++ } + + if (id3_ucs4_length(string) < 4) { + free(string); diff --git a/package/libid3tag/patches/patch-genre_dat b/package/libid3tag/patches/patch-genre_dat new file mode 100644 index 000000000..6b727397b --- /dev/null +++ b/package/libid3tag/patches/patch-genre_dat @@ -0,0 +1,22 @@ +--- libid3tag-0.15.1b.orig/genre.dat 2004-02-17 03:34:39.000000000 +0100 ++++ libid3tag-0.15.1b/genre.dat 2013-10-16 12:34:37.000000000 +0200 +@@ -277,8 +277,8 @@ static id3_ucs4_t const genre_PUNK_ROCK[ + { 'P', 'u', 'n', 'k', ' ', 'R', 'o', 'c', 'k', 0 }; + static id3_ucs4_t const genre_DRUM_SOLO[] = + { 'D', 'r', 'u', 'm', ' ', 'S', 'o', 'l', 'o', 0 }; +-static id3_ucs4_t const genre_A_CAPPELLA[] = +- { 'A', ' ', 'C', 'a', 'p', 'p', 'e', 'l', 'l', 'a', 0 }; ++static id3_ucs4_t const genre_A_CAPELLA[] = ++ { 'A', ' ', 'C', 'a', 'p', 'e', 'l', 'l', 'a', 0 }; + static id3_ucs4_t const genre_EURO_HOUSE[] = + { 'E', 'u', 'r', 'o', '-', 'H', 'o', 'u', 's', 'e', 0 }; + static id3_ucs4_t const genre_DANCE_HALL[] = +@@ -452,7 +452,7 @@ static id3_ucs4_t const *const genre_tab + genre_DUET, + genre_PUNK_ROCK, + genre_DRUM_SOLO, +- genre_A_CAPPELLA, ++ genre_A_CAPELLA, + genre_EURO_HOUSE, + genre_DANCE_HALL, + genre_GOA, diff --git a/package/libid3tag/patches/patch-genre_dat_in b/package/libid3tag/patches/patch-genre_dat_in new file mode 100644 index 000000000..592fd6746 --- /dev/null +++ b/package/libid3tag/patches/patch-genre_dat_in @@ -0,0 +1,11 @@ +--- libid3tag-0.15.1b.orig/genre.dat.in 2004-01-23 10:41:32.000000000 +0100 ++++ libid3tag-0.15.1b/genre.dat.in 2013-10-16 12:34:37.000000000 +0200 +@@ -153,7 +153,7 @@ Freestyle + Duet + Punk Rock + Drum Solo +-A Cappella ++A Capella + Euro-House + Dance Hall + Goa diff --git a/package/libid3tag/patches/patch-parse_c b/package/libid3tag/patches/patch-parse_c new file mode 100644 index 000000000..6e09c5e26 --- /dev/null +++ b/package/libid3tag/patches/patch-parse_c @@ -0,0 +1,12 @@ +--- libid3tag-0.15.1b.orig/parse.c 2004-01-23 10:41:32.000000000 +0100 ++++ libid3tag-0.15.1b/parse.c 2013-10-16 12:34:31.000000000 +0200 +@@ -165,6 +165,9 @@ id3_ucs4_t *id3_parse_string(id3_byte_t + case ID3_FIELD_TEXTENCODING_UTF_8: + ucs4 = id3_utf8_deserialize(ptr, length); + break; ++ default: ++ /* FIXME: Unknown encoding! Print warning? */ ++ return NULL; + } + + if (ucs4 && !full) { diff --git a/package/libid3tag/patches/patch-utf16_c b/package/libid3tag/patches/patch-utf16_c new file mode 100644 index 000000000..1466ebdf7 --- /dev/null +++ b/package/libid3tag/patches/patch-utf16_c @@ -0,0 +1,21 @@ +--- libid3tag-0.15.1b.orig/utf16.c 2004-01-23 10:41:32.000000000 +0100 ++++ libid3tag-0.15.1b/utf16.c 2013-10-16 12:34:27.000000000 +0200 +@@ -282,5 +282,18 @@ id3_ucs4_t *id3_utf16_deserialize(id3_by + + free(utf16); + ++ if (end == *ptr && length % 2 != 0) ++ { ++ /* We were called with a bogus length. It should always ++ * be an even number. We can deal with this in a few ways: ++ * - Always give an error. ++ * - Try and parse as much as we can and ++ * - return an error if we're called again when we ++ * already tried to parse everything we can. ++ * - tell that we parsed it, which is what we do here. ++ */ ++ (*ptr)++; ++ } ++ + return ucs4; + } diff --git a/package/libmad/Makefile b/package/libmad/Makefile index 58faf3463..eed9882bc 100644 --- a/package/libmad/Makefile +++ b/package/libmad/Makefile @@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk PKG_NAME:= libmad PKG_VERSION:= 0.15.1b -PKG_RELEASE:= 2 +PKG_RELEASE:= 4 PKG_MD5SUM:= 1be543bc30c56fb6bea1d7bf6a64e66c PKG_DESCR:= An high-quality MPEG audio decoding library PKG_SECTION:= libs @@ -21,17 +21,25 @@ include ${TOPDIR}/mk/package.mk $(eval $(call PKG_template,LIBMAD,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) $(eval $(call PKG_template,LIBMAD_DEV,libmad-dev,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_LIBMAD_DEV},${PKGSC_LIBMAD_DEV})) -#FIXME -XAKE_FLAGS+= GCC_HONOUR_COPTS=s - FPM:=default ifeq (${ARCH},i386) FPM:=intel endif -# MIPS optimization is broken for gcc 4.4 (removed h constraint) -#ifeq (${ARCH},mips) -#FPM:=mips -#endif +ifeq (${ARCH},arm) +FPM:=arm +endif +ifeq (${ARCH},mips) +FPM:=mips +endif +ifeq (${ARCH},ppc) +FPM:=ppc +endif +ifeq (${ARCH},sparc) +FPM:=sparc +endif +ifeq (${ARCH},x86_64) +FPM:=64bit +endif CONFIGURE_ARG |