Patch by František Dvořák

https://bugzilla.redhat.com/show_bug.cgi?id=1066559

diff -urN id3lib-3.8.3.old/configure.in id3lib-3.8.3/configure.in
--- id3lib-3.8.3.old/configure.in	2003-03-02 00:23:00.000000000 +0000
+++ id3lib-3.8.3/configure.in	2014-02-24 21:46:57.974108875 +0000
@@ -15,11 +15,13 @@
 # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
-# require autoconf 2.13
-AC_PREREQ(2.13)
+# require autoconf 2.69
+AC_PREREQ(2.69)
 
 # init autoconf (and check for presence fo reconf)
-AC_INIT(reconf)
+AC_INIT([id3lib], [3.8.3])
+AC_CONFIG_SRCDIR([reconf])
+AC_CONFIG_MACRO_DIR([m4])
 
 ID3LIB_NAME=id3lib
 
@@ -83,14 +85,14 @@
 
 AC_SUBST(ID3LIB_FULLNAME)
 
-AM_CONFIG_HEADER(config.h)
+AC_CONFIG_HEADERS(config.h)
 
-AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
+AM_INIT_AUTOMAKE
 
 AC_ISC_POSIX
 
 dnl Initialize libtool
-AM_PROG_LIBTOOL
+LT_INIT
 
 dnl Initialize maintainer mode
 AM_MAINTAINER_MODE
@@ -168,7 +170,7 @@
 		iconv_oldstyle=1, iconv_oldstyle=0)
   if test $iconv_oldstyle = 1; then
     AC_MSG_RESULT(const char **)
-    AC_DEFINE(ID3LIB_ICONV_OLDSTYLE)
+    AC_DEFINE(ID3LIB_ICONV_OLDSTYLE, [], [Old-style iconv interface])
     #we'll check out the need of
     #typecast in the call of iconv_open
     AC_MSG_CHECKING(whether to typecast in iconv)
@@ -184,7 +186,7 @@
                    iconv_cast=0, iconv_cast=1)
     if test $iconv_cast = 1; then
       AC_MSG_RESULT(yes)
-      AC_DEFINE(ID3LIB_ICONV_CAST_OK)
+      AC_DEFINE(ID3LIB_ICONV_CAST_OK, [], [iconv type cast])
     else
       AC_MSG_RESULT(no)
     fi
@@ -206,7 +208,7 @@
                    iconv_cast=0, iconv_cast=1)
     if test $iconv_cast = 1; then
       AC_MSG_RESULT(yes)
-      AC_DEFINE(ID3LIB_ICONV_CAST_OK)
+      AC_DEFINE(ID3LIB_ICONV_CAST_OK, [], [iconv type cast])
     else
       AC_MSG_RESULT(no)
     fi
diff -urN id3lib-3.8.3.old/examples/Makefile.am id3lib-3.8.3/examples/Makefile.am
--- id3lib-3.8.3.old/examples/Makefile.am	2003-03-02 00:23:00.000000000 +0000
+++ id3lib-3.8.3/examples/Makefile.am	2014-02-24 21:21:51.645554552 +0000
@@ -30,7 +30,7 @@
 
 LDADD =  $(top_builddir)/src/libid3.la $(zlib_lib) $(ID3_DEBUG_LIBS) $(getopt_lib)
 
-INCLUDES = @ID3LIB_DEBUG_FLAGS@ -I$(top_srcdir)/include
+AM_CPPFLAGS = @ID3LIB_DEBUG_FLAGS@ -I$(top_srcdir)/include
 
 bin_PROGRAMS            = id3info id3convert id3tag id3cp
 check_PROGRAMS          = \
diff -urN id3lib-3.8.3.old/m4/id3_cxx.m4 id3lib-3.8.3/m4/id3_cxx.m4
--- id3lib-3.8.3.old/m4/id3_cxx.m4	2003-03-02 00:23:00.000000000 +0000
+++ id3lib-3.8.3/m4/id3_cxx.m4	2014-02-24 21:21:51.650554401 +0000
@@ -68,7 +68,7 @@
 dnl #undef CXX_HAS_NO_BOOL
 dnl END ACCONFIG
 
-AC_DEFUN(ID3_CXX_PORTABILITY,[
+AC_DEFUN([ID3_CXX_PORTABILITY],[
 
   AC_PROVIDE([$0])
 
diff -urN id3lib-3.8.3.old/m4/id3_unicode.m4 id3lib-3.8.3/m4/id3_unicode.m4
--- id3lib-3.8.3.old/m4/id3_unicode.m4	2003-03-02 00:23:00.000000000 +0000
+++ id3lib-3.8.3/m4/id3_unicode.m4	2014-02-24 21:21:51.654554280 +0000
@@ -5,7 +5,7 @@
 dnl #undef ID3_ICONV_FORMAT_ASCII
 dnl END ACCONFIG
 
-AC_DEFUN(ID3_CHECK_ICONV_FORMAT,[
+AC_DEFUN([ID3_CHECK_ICONV_FORMAT],[
   if eval "test \"x\$$1\" = \"xno\""; then
     AC_MSG_CHECKING(whether iconv supports $2)
     AC_TRY_RUN([#include <iconv.h>
diff -urN id3lib-3.8.3.old/Makefile.am id3lib-3.8.3/Makefile.am
--- id3lib-3.8.3.old/Makefile.am	2003-03-02 00:23:00.000000000 +0000
+++ id3lib-3.8.3/Makefile.am	2014-02-24 21:21:51.659554129 +0000
@@ -11,6 +11,7 @@
 
 # require automake 1.5
 AUTOMAKE_OPTIONS = 1.5
+ACLOCAL_AMFLAGS = -I m4
 
 EXTRA_DIST =                    \
         HISTORY                 \
@@ -30,7 +31,7 @@
 SUBDIRS =  . m4 $(zlib_subdir) doc include id3com src examples
 DIST_SUBDIRS = . m4 zlib doc include id3com src examples prj libprj
 
-INCLUDES = @ID3LIB_DEBUG_FLAGS@
+AM_CPPFLAGS = @ID3LIB_DEBUG_FLAGS@
 
 config.h.win32: $(top_builddir)/config.status $(top_srcdir)/config.h.win32.in 
 	cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff -urN id3lib-3.8.3.old/src/Makefile.am id3lib-3.8.3/src/Makefile.am
--- id3lib-3.8.3.old/src/Makefile.am	2003-03-02 00:23:00.000000000 +0000
+++ id3lib-3.8.3/src/Makefile.am	2014-02-24 21:21:51.664553979 +0000
@@ -17,7 +17,7 @@
 zlib_include = 
 endif
 
-INCLUDES = \
+AM_CPPFLAGS = \
   @ID3LIB_DEBUG_FLAGS@ -I$(top_srcdir)/include/id3 -I$(top_srcdir)/include $(zlib_include)
 
 noinst_HEADERS =                \
diff -urN id3lib-3.8.3.old/zlib/configure.in id3lib-3.8.3/zlib/configure.in
--- id3lib-3.8.3.old/zlib/configure.in	2003-03-02 00:23:00.000000000 +0000
+++ id3lib-3.8.3/zlib/configure.in	2014-02-24 21:49:18.990854419 +0000
@@ -14,16 +14,13 @@
 AC_PREREQ(2.13)
 
 # init autoconf (and check for presence of reconf)
-AC_INIT(reconf)
+AC_INIT([zlib], [1.1.3])
 
-VERSION=1.1.3
-PACKAGE=zlib
-
-AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
-AM_CONFIG_HEADER(config.h)
+AM_INIT_AUTOMAKE
+AC_CONFIG_HEADERS(config.h)
 
 dnl Initialize libtool
-AC_PROG_LIBTOOL
+LT_INIT
 
 dnl Initialize maintainer mode
 AM_MAINTAINER_MODE
