diff --git a/media-sound/lame-3.100.PKGBUILD b/media-sound/lame-3.100.PKGBUILD new file mode 100644 index 0000000..4f21c2d --- /dev/null +++ b/media-sound/lame-3.100.PKGBUILD @@ -0,0 +1,63 @@ +pkgname=lame +pkgver=3.100 +pkgdesc='A high quality MPEG Audio Layer III (MP3) encoder' +arch=(x86_64) +homepage=http://lame.sourceforge.net/ +license=(LGPL-2.0-only) +depends=( + glibc +) +makedepends=(nasm) +_patches=("lame-3.100-pkgconfig.patch" + "lame-3.100-symbols.patch" + "lame-3.98-gtk-path.patch" + "lame-3.99.5-msse.patch" + "lame-3.99.5-tinfo.patch" +) +_patch_sums=("2c97e002918f7e62afe17d68947807c1260dd711694d0df89d7ef02acbde5dd89d31e97dae838443235283d6981e52eac6a6288fe2367ef4723529574d664cf6" + "ae7376cdaffbafecaa60dbaa08a7ebd73883935e65c7d7d408fb2cdf89ad04411940d2ab6313c80169a940207e9bed33917f88d1ca5bf6d35514e4c5313f330a" + "26e65b231a69142d6bc56bad268126985ed1bc9d14ff943a5374622184efeb78f2a1fd8bb5a3988c8ab8b4e8f10255ad3d91347276f5621d4adfeadc1230e301" + "9bf5a1b0f8955aeedff6effcab7f657961ad60ce00b5f455c05ce39ad5b03c2a809ba7225a3a33b61b84a36665fafac53e35b14e0d357289e66194a4f0ef9807" + "504428e0a0b43c467848296c219ac855ffc9bd83fadb54107e8f6b99290b91bc36457635a092fc121972a3c89918f2d81b42f98f6d007f9b571c7bc3f9c2895e" +) +sources=("${pkgname}-${pkgver}.tar.gz" + ${_patches[@]}) +urls=("https://downloads.sourceforge.net/${pkgname}/${sources[0]}" + ${_patches[@]}) +sha512sums=("0844b9eadb4aacf8000444621451277de365041cc1d97b7f7a589da0b7a23899310afd4e4d81114b9912aa97832621d20588034715573d417b2923948c08634b" + ${_patch_sums[@]}) + +src_prepare() { + tar -xf ${distdir}/${sources[0]} --strip-components=1 + + for _patch in ${_patches[@]}; do + patch -p1 -i ${filedir}/${_patch} + done + + sed -i -e '/define sp/s/+/ + /g' libmp3lame/i386/nasm.h + + mv configure.{in,ac} + + autoreconf -fiv -I . -I /usr/share/gettext/m4/ +} + +src_build() { + local conf_args=( + --prefix=/usr + --disable-mp3x + --enable-dynamic-frontends + --disable-frontend + --disable-mp3rtp + --enable-norm + --disable-static + --enable-nasm + ) + ./configure "${conf_args[@]}" + make +} + +src_install() { + make DESTDIR="${pkgdir}" pkghtmldir="/usr/share/doc/${pkgname}-${pkgver}/html" install +} + +# vim:ft=sh syn=sh et sw=2: diff --git a/media-sound/lame-3.100/lame-3.100-pkgconfig.patch b/media-sound/lame-3.100/lame-3.100-pkgconfig.patch new file mode 100644 index 0000000..9cb5215 --- /dev/null +++ b/media-sound/lame-3.100/lame-3.100-pkgconfig.patch @@ -0,0 +1,45 @@ +Based on a Debian patch: +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=829327 + +--- lame-3.100/configure.in ++++ lame-3.100/configure.in +@@ -1240,6 +1240,7 @@ + + AC_CONFIG_FILES([Makefile \ + libmp3lame/Makefile \ ++ libmp3lame/lame.pc \ + libmp3lame/i386/Makefile \ + libmp3lame/vector/Makefile \ + frontend/Makefile \ +--- lame-3.100/libmp3lame/Makefile.am ++++ lame-3.100/libmp3lame/Makefile.am +@@ -31,6 +31,7 @@ + + EXTRA_DIST = \ + lame.rc \ ++ lame.pc.in \ + vbrquantize.h \ + logoe.ico + +@@ -100,3 +101,8 @@ + #$(OBJECTS): libtool + #libtool: $(LIBTOOL_DEPS) + # $(SHELL) $(top_builddir)/config.status --recheck ++ ++pkgconfigdir = $(libdir)/pkgconfig ++pkgconfig_DATA = lame.pc ++ ++DISTCLEANFILES = $(pkgconfig_DATA) +--- lame-3.100/libmp3lame/lame.pc.in ++++ lame-3.100/libmp3lame/lame.pc.in +@@ -0,0 +1,10 @@ ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++libdir=@libdir@ ++includedir=@includedir@ ++ ++Name: @PACKAGE_NAME@ ++Description: MP3 encoding library ++Version: @PACKAGE_VERSION@ ++Libs: -L${libdir} -lmp3lame ++Cflags: -I${includedir}/lame diff --git a/media-sound/lame-3.100/lame-3.100-symbols.patch b/media-sound/lame-3.100/lame-3.100-symbols.patch new file mode 100644 index 0000000..eb3a3b5 --- /dev/null +++ b/media-sound/lame-3.100/lame-3.100-symbols.patch @@ -0,0 +1,16 @@ +--- lame-3.100/include/libmp3lame.sym 2017-09-06 14:33:35.000000000 -0500 ++++ lame-3.100/include/libmp3lame.sym 2017-10-22 16:18:44.708436200 -0500 +@@ -1,5 +1,4 @@ + lame_init +-lame_init_old + lame_set_num_samples + lame_get_num_samples + lame_set_in_samplerate +@@ -188,6 +187,7 @@ hip_decode_exit + hip_set_errorf + hip_set_debugf + hip_set_msgf ++hip_set_pinfo + hip_decode + hip_decode_headers + hip_decode1 diff --git a/media-sound/lame-3.100/lame-3.98-gtk-path.patch b/media-sound/lame-3.100/lame-3.98-gtk-path.patch new file mode 100644 index 0000000..98925c0 --- /dev/null +++ b/media-sound/lame-3.100/lame-3.98-gtk-path.patch @@ -0,0 +1,197 @@ +--- a/gtk.m4 ++++ b/gtk.m4 +@@ -0,0 +1,194 @@ ++# Configure paths for GTK+ ++# Owen Taylor 97-11-3 ++ ++dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) ++dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS ++dnl ++AC_DEFUN(AM_PATH_GTK, ++[dnl ++dnl Get the cflags and libraries from the gtk-config script ++dnl ++AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)], ++ gtk_config_prefix="$withval", gtk_config_prefix="") ++AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)], ++ gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="") ++AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program], ++ , enable_gtktest=yes) ++ ++ for module in . $4 ++ do ++ case "$module" in ++ gthread) ++ gtk_config_args="$gtk_config_args gthread" ++ ;; ++ esac ++ done ++ ++ if test x$gtk_config_exec_prefix != x ; then ++ gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix" ++ if test x${GTK_CONFIG+set} != xset ; then ++ GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config ++ fi ++ fi ++ if test x$gtk_config_prefix != x ; then ++ gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix" ++ if test x${GTK_CONFIG+set} != xset ; then ++ GTK_CONFIG=$gtk_config_prefix/bin/gtk-config ++ fi ++ fi ++ ++ AC_PATH_PROG(GTK_CONFIG, gtk-config, no) ++ min_gtk_version=ifelse([$1], ,0.99.7,$1) ++ AC_MSG_CHECKING(for GTK - version >= $min_gtk_version) ++ no_gtk="" ++ if test "$GTK_CONFIG" = "no" ; then ++ no_gtk=yes ++ else ++ GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags` ++ GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs` ++ gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \ ++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` ++ gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \ ++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` ++ gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \ ++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` ++ if test "x$enable_gtktest" = "xyes" ; then ++ ac_save_CFLAGS="$CFLAGS" ++ ac_save_LIBS="$LIBS" ++ CFLAGS="$CFLAGS $GTK_CFLAGS" ++ LIBS="$GTK_LIBS $LIBS" ++dnl ++dnl Now check if the installed GTK is sufficiently new. (Also sanity ++dnl checks the results of gtk-config to some extent ++dnl ++ rm -f conf.gtktest ++ AC_TRY_RUN([ ++#include ++#include ++#include ++ ++int ++main () ++{ ++ int major, minor, micro; ++ char *tmp_version; ++ ++ system ("touch conf.gtktest"); ++ ++ /* HP/UX 9 (%@#!) writes to sscanf strings */ ++ tmp_version = g_strdup("$min_gtk_version"); ++ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { ++ printf("%s, bad version string\n", "$min_gtk_version"); ++ exit(1); ++ } ++ ++ if ((gtk_major_version != $gtk_config_major_version) || ++ (gtk_minor_version != $gtk_config_minor_version) || ++ (gtk_micro_version != $gtk_config_micro_version)) ++ { ++ printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", ++ $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, ++ gtk_major_version, gtk_minor_version, gtk_micro_version); ++ printf ("*** was found! If gtk-config was correct, then it is best\n"); ++ printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); ++ printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); ++ printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); ++ printf("*** required on your system.\n"); ++ printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n"); ++ printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n"); ++ printf("*** before re-running configure\n"); ++ } ++#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION) ++ else if ((gtk_major_version != GTK_MAJOR_VERSION) || ++ (gtk_minor_version != GTK_MINOR_VERSION) || ++ (gtk_micro_version != GTK_MICRO_VERSION)) ++ { ++ printf("*** GTK+ header files (version %d.%d.%d) do not match\n", ++ GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); ++ printf("*** library (version %d.%d.%d)\n", ++ gtk_major_version, gtk_minor_version, gtk_micro_version); ++ } ++#endif /* defined (GTK_MAJOR_VERSION) ... */ ++ else ++ { ++ if ((gtk_major_version > major) || ++ ((gtk_major_version == major) && (gtk_minor_version > minor)) || ++ ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) ++ { ++ return 0; ++ } ++ else ++ { ++ printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", ++ gtk_major_version, gtk_minor_version, gtk_micro_version); ++ printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", ++ major, minor, micro); ++ printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); ++ printf("***\n"); ++ printf("*** If you have already installed a sufficiently new version, this error\n"); ++ printf("*** probably means that the wrong copy of the gtk-config shell script is\n"); ++ printf("*** being found. The easiest way to fix this is to remove the old version\n"); ++ printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n"); ++ printf("*** correct copy of gtk-config. (In this case, you will have to\n"); ++ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); ++ printf("*** so that the correct libraries are found at run-time))\n"); ++ } ++ } ++ return 1; ++} ++],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) ++ CFLAGS="$ac_save_CFLAGS" ++ LIBS="$ac_save_LIBS" ++ fi ++ fi ++ if test "x$no_gtk" = x ; then ++ AC_MSG_RESULT(yes) ++ ifelse([$2], , :, [$2]) ++ else ++ AC_MSG_RESULT(no) ++ if test "$GTK_CONFIG" = "no" ; then ++ echo "*** The gtk-config script installed by GTK could not be found" ++ echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in" ++ echo "*** your path, or set the GTK_CONFIG environment variable to the" ++ echo "*** full path to gtk-config." ++ else ++ if test -f conf.gtktest ; then ++ : ++ else ++ echo "*** Could not run GTK test program, checking why..." ++ CFLAGS="$CFLAGS $GTK_CFLAGS" ++ LIBS="$LIBS $GTK_LIBS" ++ AC_TRY_LINK([ ++#include ++#include ++], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ], ++ [ echo "*** The test program compiled, but did not run. This usually means" ++ echo "*** that the run-time linker is not finding GTK or finding the wrong" ++ echo "*** version of GTK. If it is not finding GTK, 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 "***" ++ echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that" ++ echo "*** came with the system with the command" ++ echo "***" ++ echo "*** rpm --erase --nodeps gtk gtk-devel" ], ++ [ echo "*** The test program failed to compile or link. See the file config.log for the" ++ echo "*** exact error that occured. This usually means GTK was incorrectly installed" ++ echo "*** or that you have moved GTK since it was installed. In the latter case, you" ++ echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ]) ++ CFLAGS="$ac_save_CFLAGS" ++ LIBS="$ac_save_LIBS" ++ fi ++ fi ++ GTK_CFLAGS="" ++ GTK_LIBS="" ++ ifelse([$3], , :, [$3]) ++ fi ++ AC_SUBST(GTK_CFLAGS) ++ AC_SUBST(GTK_LIBS) ++ rm -f conf.gtktest ++]) diff --git a/media-sound/lame-3.100/lame-3.99.5-msse.patch b/media-sound/lame-3.100/lame-3.99.5-msse.patch new file mode 100644 index 0000000..bf1995e --- /dev/null +++ b/media-sound/lame-3.100/lame-3.99.5-msse.patch @@ -0,0 +1,18 @@ +https://bugs.gentoo.org/542192 + +Description: Build xmm_quantize_sub.c with -msse +Author: Sebastian Ramacher +Bug: https://sourceforge.net/p/lame/bugs/443/ +Bug-Debian: https://bugs.debian.org/760047 +Last-Update: 2014-08-31 + +--- lame-3.99.5+repack1.orig/libmp3lame/vector/Makefile.am ++++ lame-3.99.5+repack1/libmp3lame/vector/Makefile.am +@@ -20,6 +20,7 @@ xmm_sources = xmm_quantize_sub.c + + if WITH_XMM + liblamevectorroutines_la_SOURCES = $(xmm_sources) ++liblamevectorroutines_la_CFLAGS = -msse + endif + + noinst_HEADERS = lame_intrin.h diff --git a/media-sound/lame-3.100/lame-3.99.5-tinfo.patch b/media-sound/lame-3.100/lame-3.99.5-tinfo.patch new file mode 100644 index 0000000..29d386d --- /dev/null +++ b/media-sound/lame-3.100/lame-3.99.5-tinfo.patch @@ -0,0 +1,23 @@ +initscr is not used anywhere in lame sourcetree, check for used tgetent instead +check for separate tinfo library optionally built out from libncurses source tree, +like used in debian and gentoo +- ssuominen@g.o + +http://bugs.gentoo.org/454322 + +--- a/configure.in ++++ b/configure.in +@@ -372,9 +372,10 @@ + + AC_CHECK_HEADERS(termcap.h) + AC_CHECK_HEADERS(ncurses/termcap.h) +-AC_CHECK_LIB(termcap, initscr, HAVE_TERMCAP="termcap") +-AC_CHECK_LIB(curses, initscr, HAVE_TERMCAP="curses") +-AC_CHECK_LIB(ncurses, initscr, HAVE_TERMCAP="ncurses") ++AC_CHECK_LIB(termcap, tgetent, HAVE_TERMCAP="termcap") ++AC_CHECK_LIB(curses, tgetent, HAVE_TERMCAP="curses") ++AC_CHECK_LIB(ncurses, tgetent, HAVE_TERMCAP="ncurses") ++AC_CHECK_LIB(tinfo, tgetent, HAVE_TERMCAP="tinfo") + + AM_ICONV +